| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #ifndef __TorqueCompensation_H_
- #define __TorqueCompensation_H_
- //#if (IQCOMPENSATEENBLE==1)
- typedef struct
- {
- //uint16 MotorStartHoldTime;//回油时间结束才启动转矩补偿判断
-
- int16 MotorCurrentSpeed;
- int16 MotorTargetSpeed;
- int16 MotorDeltaSpeed;
- int16 MotorDeltaSpeedFlt;
- int16 MotorDeltaSpeedFlt_LSB;
- int16 MachineDeltaTheta;
- int16 MachineTheta;
- int16 MotorDeltaSpeedAbs;
- int16 MotorDeltaSpeedAbsFlt;
- int16 MotorDeltaSpeedAbsFlt_LSB;
-
- int16 TorqueCompensateEnterSpeedValue;//进入转矩补偿转速
- int16 TorqueCompensateExitSpeedValue;//进入转矩补偿转速
-
- int16 TorqueCompensateTheta;
- int16 IqRef;
- int16 TorqueCompensateInitTheta;
- int16 TorqueCompensateCosTheta;
- int16 TorqueCompensateSinTheta;
- int16 TorqueCompensateInitTheta1;
-
- int16 TorqueCompensateD;
- int16 TorqueCompensateDFlt; //
- int16 TorqueCompensateDFlt_LSB;
-
- int16 TorqueCompensateC;
- int16 TorqueCompensateCFlt; //
- int16 TorqueCompensateCFlt_LSB;
-
- int16 TorqueCompensateIqCurrentPeakValue;//补偿电流的幅值
- int16 TorqueCompensateIqCurrentValue;//补偿电流随机械周期实时变化的值
- int16 TorqueCompensateMechDeltaThetaKValue;
- int16 TorqueCompensateCLpfFcKValue;
- int16 TorqueCompensateDLpfFcKValue;
- int16 TorqueCompensatePeakKValue;
- int16 TorqueCompensatePeakKValueRef;
- int16 TorqueCompensatePeakKValueInc;
- uint8 TorqueCompensatePeakKValueIncCycle;
- uint8 TorqueCompensatePeakKValueIncCycleCnt;
-
-
- int16 TorqueCompensateDeltaOmegaAbsLpfFcKValue;
- int16 TorqueCompensateDeltaOmegaLpfFcKValue;
- int16 TorqueCompensatePeakK;
- int16 TorqueCompensatePeakKStart0;
-
- }MCTorqueCompensation;
- typedef struct
- {
- int16 Err;
- int16 Err_last;
- int16 Uk;
- uint16 Kp;
- uint16 Ki;
- int16 outMax;
- int16 outMin;
- }PI_Typedef;
- #define TorqueCompensateMechDeltaThetaK _Q15(TPWM_VALUE * MOTOR_SPEED_BASE / 30.0)//转速标幺化后乘于该系数即可得到角度增量
- #define TorqueCompensateDeltaOmegaLpfFc (100.0)//HZ//1000
- #define TorqueCompensateDeltaOmegaLpfFc_K _Q15(_2PI * TPWM_VALUE * TorqueCompensateDeltaOmegaLpfFc)
- #define TorqueCompensateDeltaOmegaAbsLpfFc (2.0)//HZ 5
- #define TorqueCompensateDeltaOmegaAbsLpfFc_K _Q15(_2PI * TPWM_VALUE * TorqueCompensateDeltaOmegaAbsLpfFc)
- #define TorqueCompensateDLpfFc (100.0)//HZ1000
- #define TorqueCompensateDLpfFc_K _Q15(_2PI * TPWM_VALUE * TorqueCompensateDLpfFc)
- #define TorqueCompensateCLpfFc (5.0)//HZ 5.0
- #define TorqueCompensateCLpfFc_K _Q15(_2PI * TPWM_VALUE * TorqueCompensateCLpfFc)
- extern MCTorqueCompensation xdata mcTorqueCompensation;
- extern PI_Typedef xdata mcTorqueCompensationThetaPI;
- //extern PI_Typedef xdata SpeedPI;
- //extern void PI_Speed(PI_Typedef *PI);
- extern void MCTorqueCompensationCodeInit(void);
- extern void MCTorqueCompensationFunction(void);
- extern void PI_Increment(PI_Typedef *PI);
- extern void TorquePeakK(int16 power);
- //#endif
- #endif
|