[电机控制] 请教一下原厂PSC3M的PMSM_FOC_SL_with_3-shunt例程的给定-id为什么没有在弱磁中?

[复制链接]
 楼主| Burnon_FAE_4 发表于 2025-8-7 09:56 | 显示全部楼层 |阅读模式
根据例程“PMSM_FOC_SL_with_3-shunt”,在进入“Speed_CL”状态后,PHASE_ADV_RunISR0()会比FLUX_WEAKEN_RunISR0()先执行,PHASE_ADV_RunISR0()会根据电机参数Ld和Lq差值大小进行电流环输入的Id、Iq给定,只要电机参数满足,哪怕没有开启弱磁,也会输出Id为负值。
我的疑问是这个给定负值Id不是弱磁才会有的吗?为什么这一段代码没有放入弱磁函数中?这个应该也算弱磁吧?
PHASE_ADV_RunISR0()相关代码如下(vars.i_cmd_int是速度环的输出经过限制后的输出,ctrl.ph_adv.motor_type是程序根据电机参数自行判断的电机类型):
void PHASE_ADV_RunISR0()
{
    if (ctrl.ph_adv.motor_type == SPM)
    {
        vars.i_qd_r_ref.d = 0.0f;
        vars.i_qd_r_ref.q = vars.i_cmd_int;
    }
    else // IPM
    {
        vars.i_qd_r_ref.d = 0.25f * (ctrl.ph_adv.lam_over_dl - sqrtf(POW_TWO(ctrl.ph_adv.lam_over_dl) + 8.0f * POW_TWO(vars.i_cmd_int)));
        vars.i_qd_r_ref.q = sqrtf(POW_TWO(vars.i_cmd_int) - POW_TWO(vars.i_qd_r_ref.d)) * SIGN(vars.i_cmd_int);
    }
}



AdaMaYun 发表于 2025-8-18 23:16 | 显示全部楼层
了解一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

112

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部