| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- #ifndef __MYPROJECT_H_
- #define __MYPROJECT_H_
- #include "FU6522_72.h"
- #include <Definition.h>
- #include <Customer.h>
- #include <Parameter.h>
- #include <Protect.h>
- #include <FU6522_72_MDU.h>
- #define S_Value(SpeedValue) _Q15(SpeedValue/MOTOR_SPEED_BASE)
- typedef struct
- {
- int16 IuOffset; //Iu的偏置电压
- int32 IuOffsetSum; //Iu的偏置电压总和
- int16 IvOffset; //Iv的偏置电压
- int32 IvOffsetSum; //Iv的偏置电压总和
- int16 Iw_busOffset; //Iw或Ibus的偏置电压
- int32 Iw_busOffsetSum;//Iw或Ibus的偏置电压总和
-
- int16 IbusOffset; //Ibus的偏置电压
- int32 IbusOffsetSum;//IIbus的偏置电压总和
-
-
-
- int16 OffsetCount; //偏置电压采集计数
- int8 OffsetFlag; //偏置电压结束标志位
-
- } CurrentOffset;
- extern CurrentOffset xdata mcCurOffset;
- extern int16 idata Power_Currt;
- extern uint8 Drv_SectionCheak(void);
- extern void GetCurrentOffset(void);
- extern void Motor_Ready (void);
- extern void Motor_Init (void);
- extern void FOC_Init(void);
- extern void Motor_Charge(void);
- extern void MC_Stop(void);
- extern void MC_Break(void);
- extern void Motor_Static_Open(void);
- extern void Motor_Align(void);
- typedef enum
- {
- mcReady = 0, ///< 准备状态,该状态电机空闲,等待控制命令
- mcInit = 1, ///< 初始化,该状态进行启动前的变量初始化
- mcCharge = 2, ///< 预充电,电机启动前给自举电容充电,一般用于高压驱动,低压驱动一般不需要
- mcTailWind = 3, ///< 顺逆风检测,该状态下电机进行顺逆风检测
- mcPosiCheck = 4, ///< 初始位置检测
- mcAlign = 5, ///< 预定位
- mcStart = 6, ///< 启动,用于配置启动代码
- mcRun = 7, ///< 运行,
- mcStop = 8, ///< 停止
- mcFault = 9, ///< 故障状态
- mcBrake = 10, ///< 刹车
- } MotStateType;
- typedef union
- {
- uint8 SetMode; ///< 整个配置模式使能位
- struct
- {
- uint8 CalibFlag : 1; ///< 电流校准的标志位
- uint8 ChargeSetFlag : 1; ///< 预充电配置标志位
- uint8 AlignSetFlag : 1; ///< 预定位配置标志位
- uint8 TailWindSetFlag : 1; ///< 顺逆风配置标志位
- uint8 StartSetFlag : 1; ///< 启动配置标志位
- uint8 PosiCheckSetFlag : 1; ///< 位置检测配置标志位
- uint8 Break : 1; ////</ 刹车配置标志位
- } SetFlag;
- } MotStaM;
- extern MotStateType data mcState;
- extern MotStaM McStaSet;
- extern void MC_Control(void);
- typedef struct
- {
- uint16 mcDcbusFlt; // 母线电压
- uint16 mcADCCurrentbus; // 母线电流
- int16 NTCTempFlt; // NTC电压值
- uint16 PowerCal;
- uint32 PowerFlt; // 功率滤波后的值
- int16 SpeedFlt; // 当前速度滤波后的值
-
- uint8 ChargeStep; // 预充电的步骤
- uint8 CtrlMode; // 控制模式
-
- int16 Max_ia;
- int16 Max_ib;
- int16 Max_ic;
-
- uint8 Flg_ATORampEnd;
-
- uint16 Ref; // 控制目标给定
- uint16 IqRef; // Q轴给定电流
- uint16 IdRef; // D轴给定电流
- uint16 IqSpeedRef; // Q轴速度给定电流
-
- uint8 Mode0HoldCnt; // MODE0切MODE1延迟时间计数
-
- uint16 EMFsquare; // 当前FOC_ESQU滤波后的值
-
- uint32 RunStateCnt; // 运行状态计数
-
- uint8 LoopTime; // 外环控制周期计数
-
- uint16 State_Count; // 电机各个状态的时间计数
-
-
- int16 mcPosCheckAngle; // 位置检测的角度
-
-
- uint8 CurrentAlignStatus; // 预定位状态
-
-
- float AngleProcess;
- int16 AngleStart;
- } FOCCTRL;
- typedef struct
- {
- uint16 RefValue;
- float OutValue_float;
- float IncValue;
- float DecValue;
- } MCRAMP;
- extern bool isCtrlPowOn;
- extern FOCCTRL xdata mcFocCtrl;
- extern MCRAMP xdata mcRefRamp;
- extern void HardwareInit(void);
- extern void SoftwareInit(void);
- extern void TargetRef_Process(void);
- extern void Speed_response(void);
- extern int16 Motor_Ramp(int16 ref);
- extern void ATORamp(void);
- extern void TickCycle_1ms(void);
- extern void Fault_GetCurrentOffset(void);
- extern uint32 Abs_F32(int32 value);
- extern uint16 Abs_F16(int16 value);
- extern int16 PowerSpeedLimit(int16 speedref);
- #define TIM3_Fre (750000.0) // TIM0计数频率750KHz
- #define TIM4_Fre (12000000.0) // TIM4计数频率
- /*************************************************************************************///External Function
- extern void Timer1_Init(void);
- extern void Timer2_Init(void);
- extern void Timer3_Init(void);
- extern void Timer4_Init(void);
- extern void TIM4_Init_RF(void);
- extern void PI_Init(void);
- extern void PI2_Init(void);
- extern void PI3_Init(void);
- void TSD_Init(void);
- void ADC_Init(void);
- void AMP_Init(void);
- void CMP3_Init(void);
- void CMP3_Interrupt_Init(void);
- unsigned short CRC_Check(unsigned char start_sector, unsigned char offset_sector);
- void Driver_Init(void);
- void GPIO_Init(void);
- typedef enum
- {
- FaultNoSource = 0, ///< 无故障
- FaultHardOVCurrent = 1, ///< 硬件过流
- FaultSoftOVCurrent = 2, ///< 软件过流
- FaultOverVoltageDC = 3, ///< 过压
- FaultUnderVoltageDC = 4, ///< 欠压
- FaultPhaseLost = 5, ///< 缺相
- FaultStall = 6, ///< 堵转
- FaultStart = 7, ///< 启动保护
- FaultFan = 8, ///< 风机保护
- FaultOverHeat = 9, ///< 电机过热保护
- FaultOverTemperature = 10, ///< NTC过温保护
- FaultOverPower = 11, ///<过功率
- FaultLVW = 12, ///< LVW
- FaultGetOffset = 13, ///< 偏置电压保护
- FaultOverSpeed = 14,
- FaultOverLSensor = 15,
- FaultOverRSensor = 16,
- FaultUartLost = 17,
- FaultFan1 = 18,
-
- FaultE = 18,
- } FaultStateType;
- extern FaultStateType data mcFaultSource;
- #endif
|