FOC 调试电流环的时候, 目标值每次都是给固定正值0.8,但是电机有的时候是顺时针转,有时候逆时针转,但是关键是 iq id电流都能闭环闭起来 (iq都能闭到 0.8这个正值 也没有跑飞的情况) 不理解为什么顺逆时针都能转且iq闭环
以下是我的电流环控制的代码
void Set_Current(float Targetq)
{
// electricAngle() 是计算当前的电角度 并且已转换成 0- 2pi 范围内
// FOC_Iabc_2_Idq() -----> 三相电流Clark -- Park 获取 dq轴的电流
FOC_Iabc_2_Idq_temp = FOC_Iabc_2_Idq(Ia_convert, Ib_convert, Ic_convert, electricAngle());
//低通滤波 对 dq 电流滤波 后 PID计算
Cur_q = LowPassFilter(&LPF_current_Iq, FOC_Iabc_2_Idq_temp.FOC_P_Iq);
Cur_d = LowPassFilter(&LPF_current_Id, FOC_Iabc_2_Idq_temp.FOC_P_Id);
//PI计算
Iq = Iq_PI_Realize(&Iq_PI_Structure, Targetq, Cur_q);
Id = Id_PI_Realize(&Id_PI_Structure, 0, Cur_d);
//计算出 PWM 的 CCR
FOC_TcmTypedef Temp_CCR = FOC_Idq_2_TcmABC(Id, Iq, electricAngle(), PWM_ARR*2, 24);
TIM_CtrlPWMOutputs(TIM1, ENABLE);
//设置 TIM1 - PWM 三相占空比
SetCompare(&Temp_CCR);
}