| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- #ifndef __MYPROJECT_H_
- #define __MYPROJECT_H_
- #include <FU68xx_5.h>
- #include <FU68xx_5_Type.h>
- #include <Customer.h>
- #include <ProtectSet.h>
- // math.h包含算术运算的数学函数
- #include <math.h>
- #include <Definition.h>
- typedef enum
- {
- mcReady = 0,
- mcInit = 1,
- mcCharge = 2,
- mcTailWind = 3,
- mcPosiCheck = 4,
- mcAlign = 5,
- mcStart = 6,
- mcRun = 7,
- mcStop = 8,
- mcFault = 9,
- mcBrake = 10
- } MotStaType;
- extern MotStaType mcState;
- void CMP0_Init(void);
- void CMP3_Init(void);
- void CMP3_Interrupt_Init(void);
- void CMP5_Init(void);
- void Timer2_Init(void);
- void Timer3_Init(void);
- void Timer4_Init(void);
- void SPI_Init(void);
- void WatchDogConfig(uint32 value, uint8 Status);
- unsigned short CRC_Check(unsigned char start_sector, unsigned char offset_sector);
- extern void FOC_Init(void);
- extern void Motor_Open(void);
- #if (FiledWeakenCompEnable)
- typedef struct
- {
- uint16 FieldWeakenActualUS_Q15;
- uint16 FieldWeakenActualDcbus_Q15;
- int16 FieldWeakenIsTheta;
- int16 mcIqref;
- int16 mcIdref;
- } FieldWeakeningTypeDef;
- FieldWeakeningTypeDef xdata mcFieldWeaken;
- void GetFieldWeakenUsAndUdc_Q15(int16 Ud, int16 Uq, uint16 Dcbus);
- void GetFieldWeakenIdRefAndIqRef_Q15(int16 Is);
- void GetFieldWeakenIsTheta_Q15(void);
- int16 mcFieldWeakenPI(int16 feedbackvalue, int16 referencevalue);
- void FiledWeakenControl(int16 Ud, int16 Uq, uint16 Dcbusk, int16 Is);
- #endif
- #define P_Power(POWER) _Q15(POWER*2/HW_BOARD_CURR_BASE/HW_BOARD_VOLTAGE_BASE/1.5)
- #define DAC_OvercurrentValue (_Q8(I_ValueX(OverHardcurrentValue ))+0x7F)
- typedef struct
- {
- uint16 Max_ia; // IA的最大值
- uint16 Max_ib; // IB的最大值
- uint16 Max_ic; // IC的最大值
- uint16 Max_is;
- uint16 time;
- } CurrentVarible;
- typedef struct
- {
- int16 mcDcbusFlt; // 母线电压
- int16 mcDcbus_max; // 母线电压最大值
- int16 mcDcbus_min; // 母线电压最小值
- int16 mcDcbus_chazhi; // 母线电压最小值
- int16 Powerlpf; // 功率滤波后的值
-
- int16 UQFlt; // UQ滤波后的值
- int16 UDFlt; // UD滤波后的值
-
- uint16 State_Count; // 电机各个状态的时间计数
- } FOCCTRL;
- extern CurrentVarible xdata mcCurVarible;
- extern FOCCTRL xdata mcFocCtrl;
- extern void Fault_Detection(void);
- extern void FaultProcess(void);
- extern void StarRampDealwith(void);
- uint32_t Abs_F32(int32_t Xn0);
- typedef enum
- {
- FaultNoSource = 0, // 无故障
- FaultHardOVCurrent = 1, // 硬件过流
- FaultSoftOVCurrent = 2, // 软件过流
- FaultUnderVoltage = 3, // 欠压保护
- FaultOverVoltage = 4, // 过压保护
- FaultLossPhase = 5, // 缺相保护
- FaultStall = 6, // 堵转保护
- FaultStart = 7, // 启动保护
- FaultIPMOTErr = 9, // IPM温度保护
- FaultOffsetError = 11, // pianzhi
- FaultOverPower = 12,
- FaultshuruLoss = 14,
- FaultPWMLoss = 15,
- } FaultStateType;
- typedef struct
- {
- uint16 SecondStartTimes; // 二次启动保护的次数
- uint16 StallTimes; // 堵转保护次数
- uint16 LossPHTimes; // 缺相保护次数
- uint16 CurrentPretectTimes; // 过流保护次数
- uint8 StartFlag; // 启动保护的标志位,用于判断哪个方法起作用
- uint8 StallFlag; // 堵转保护的标志位,用于判断哪个方法起作用
- uint8 IbusOffsetProtectTimes; //偏执电压保护次数
- uint8 shurulossTimes;
-
- } ProtectVarible;
- typedef struct
- {
- uint8 segment; // 分段执行
-
- //voltage protect
- uint16 OverVoltDetecCnt; // 过压检测计数
- uint16 UnderVoltDetecCnt; // 欠压检测计数
- uint16 VoltRecoverCnt; // 过压恢复计数
- uint16 OverTempDetecCnt; // 过温检测计数
- uint16 OverHuantempDetecCnt; // 过温检测计数
- uint16 OverGuantempDetecCnt; // 过温检测计数
- uint16 TempRecoverCnt; // 过温恢复计数
- uint16 HuantempRecoverCnt; // 过温恢复计数
- uint16 GuantempRecoverCnt; // 过温恢复计数
- uint32 CurrentRecoverCnt; // 过流保护恢复计数
-
- uint8 IbusOffsetRecoverCnt; ///偏执电压保护恢复次数
- //stall protect
- uint16 StallDelayCnt; // 堵转延迟判断计时
- uint16 StallDectEs; // method 1,与ES相关
- uint16 StallDectEs2; // method 1,与ES相关
- uint16 StallDectSpeed; // method 2,与速度相关
- uint32 StallReCount; // 堵转保护恢复计数
-
- //Loss Phase protect
- uint16 Lphasecnt; // 缺相保护计时
- uint16 AOpencnt ; // A缺相计数
- uint16 BOpencnt ; // B缺相计数
- uint16 COpencnt ; // C缺相计数
- uint16 mcLossPHRecCount; // 缺相恢复计数
- uint16 shurulossRecCount; // 缺相恢复计数
- int16 shurulossCnt;
-
- int32 CurrentASum;
- int32 CurrentBSum;
- int32 CurrentCSum;
-
- int16 CurrentAAlign;
- int16 CurrentBAlign;
- int16 CurrentCAlign;
-
- //start protect
- int16 StartESCount; // 启动保护判断ES的计数
- int16 StartEsCnt; // 启动保护判断ES的计时
- int16 StartDelay; // 启动保护判断ES的延迟
- int16 StartFocmode; // 启动保护判断FOCMODE状态的计时
- int16 StartSpeedCnt; // 启动保护判断速度和ES的计时
- uint32 commu_time;
- } FaultVarible;
- extern FaultStateType xdata mcFaultSource;
- extern ProtectVarible xdata mcProtectTime;
- extern FaultVarible idata mcFaultDect;
- extern void Fault_OverUnderVoltage(void);
- extern void Fault_Overcurrent(void);
- extern void Fault_OverCurrentRecover(void);
- extern void Fault_Stall(void);
- extern void Fault_phaseloss(void);
- extern void Fault_IPMOverTemp(void);
- extern void Fault_Detection(void);
- #endif
|