if(PULSE_SINE == stru_Pulse.IPD_Mode) { s_Curr_d_q_ref.Id = 0; s_Curr_d_q_ref.Iq = s_StartVar.Iq_Ref; } else { s_Curr_d_q_ref.Iq = 0; s_Curr_d_q_ref.Id = s_StartVar.Iq_Ref; } s_Volt_d_q.Ud = PID_CALC2(&PID_ID, s_Curr_d_q_ref.Id, s_Curr_d_q.Id); PID_IQ.Upper_Output = Vector_Vq_Limit(&s_Volt_d_q.Ud); s_Volt_d_q.Uq = PID_CALC2(&PID_IQ, s_Curr_d_q_ref.Iq, s_Curr_d_q.Iq); s_Volt_alfa_beta = RevPark(s_SinCos_Val, s_Volt_d_q);
时间: 2023-08-26 19:04:33 浏览: 114
这段代码是一段嵌入式系统中的C语言代码,主要完成了以下几个功能:
1. 判断脉冲方式:根据变量stru_Pulse.IPD_Mode的值是否为PULSE_SINE,来决定电流的控制方式。
2. 设定电流参考值:根据变量s_StartVar.Iq_Ref,来设定电流参考值,以控制电机的运动。
3. 计算电流控制器的输出:根据电流的参考值和实际值,使用PID算法计算电流控制器的输出值。
4. 进行电压矢量限幅:限制电压的幅值不超过一定范围。
5. 进行反Park变换:将直角坐标系下的电压转换为三相交流电压。
总之,这段代码是嵌入式系统中电机控制部分的代码,用于实现电机的精确控制。
阅读全文