|
|
@@ -579,6 +579,7 @@ u8 PMSM_FOC_CtrlMode(void) {
|
|
|
//ladrc_reset(&gFoc_Ctrl.vel_lim_adrc, gFoc_Ctrl.in.s_motVelocity, gFoc_Ctrl.in.s_targetTorque);
|
|
|
ladrc_copy(&gFoc_Ctrl.vel_lim_adrc, &gFoc_Ctrl.vel_adrc);
|
|
|
#else
|
|
|
+ gFoc_Ctrl.in.s_trqModeOutLim = gFoc_Ctrl.in.s_targetTorque;
|
|
|
PI_Controller_Reset(&gFoc_Ctrl.pi_vel_lim, gFoc_Ctrl.in.s_targetTorque);
|
|
|
#endif
|
|
|
}else if ((preMode == CTRL_MODE_TRQ) && (gFoc_Ctrl.out.n_RunMode == CTRL_MODE_SPD)) {
|
|
|
@@ -591,6 +592,7 @@ u8 PMSM_FOC_CtrlMode(void) {
|
|
|
#ifdef CONFIG_SPEED_LADRC
|
|
|
ladrc_reset(&gFoc_Ctrl.vel_lim_adrc, gFoc_Ctrl.in.s_motVelocity, gFoc_Ctrl.in.s_targetTorque);
|
|
|
#else
|
|
|
+ gFoc_Ctrl.in.s_trqModeOutLim = gFoc_Ctrl.in.s_targetTorque;
|
|
|
PI_Controller_Reset(&gFoc_Ctrl.pi_vel_lim, gFoc_Ctrl.in.s_targetTorque);
|
|
|
#endif
|
|
|
}else if ((preMode != gFoc_Ctrl.out.n_RunMode) && (gFoc_Ctrl.out.n_RunMode == CTRL_MODE_EBRAKE)) {
|
|
|
@@ -728,8 +730,8 @@ void PMSM_FOC_idqCalc(void) {
|
|
|
}else if (gFoc_Ctrl.out.n_RunMode == CTRL_MODE_TRQ) {
|
|
|
float refTorque = min(eCtrl_get_RefTorque(), eRamp_get_intepolation(&gFoc_Ctrl.rtLim.torqueLimRamp));
|
|
|
float maxTrq = PMSM_FOC_Limit_Speed(refTorque);
|
|
|
- maxTrq = PMSM_FOC_Limit_iDC(maxTrq);
|
|
|
- crosszero_step_towards(&gFoc_Ctrl.in.s_targetTorque, maxTrq);
|
|
|
+ gFoc_Ctrl.in.s_trqModeOutLim = PMSM_FOC_Limit_iDC(maxTrq);
|
|
|
+ crosszero_step_towards(&gFoc_Ctrl.in.s_targetTorque, gFoc_Ctrl.in.s_trqModeOutLim);
|
|
|
}else if (gFoc_Ctrl.out.n_RunMode == CTRL_MODE_SPD){
|
|
|
float maxSpeed = eCtrl_get_FinalSpeed();
|
|
|
float refSpeed = eCtrl_get_RefSpeed();
|