打印
[电机控制专用MCU]

APM32F035 FOC零基础电机入门调试(二) - 电流环 PI 参数进行调整确认

[复制链接]
439|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

[i=s] 本帖最后由 lc115647 于 2025-1-24 10:38 编辑 [/i]<br /> <br />

一、了解APM32F035 软件运行状态机逻辑

035整体软件状态机有四个主状态:INIT 、STOP 、FAULT 、RUN;

对主状态机的描述如下:

  • Init:此主状态执行变量初始化。
  • Fault:当系统有错误发生时一直处于此状态,直到错误的标志位被清除。而后会延时一段时间,然后从Fault 状态跳转到STOP 状态等待起动命令。
  • Stop:系统完成初始化等待速度命令。此状态内下关闭PWM 输出。
  • Run:当在运行状态时,若有Stop 指令下发,便会执行系统停止运行操作。

同时主状态RUN 的五个子状态:run-calib 、run-ready 、run-align 、run-spin 、run-freewheel 。

当运行在Run 状态时,其子状态会相应被调用并执行:

  • Run-Calib:可以执行电流偏置ADC 自校准功能。执行完此状态后系统将切Ready 状态,同时禁止PWM 输出。
  • Run-Ready:使能PWM 输出,同步采样电流,并执行异常状态检查。
  • Run-Align:执行采样电流,调用预定位算法,同时更新PWM 。在指定时间内执行态,同时采样直流母线电压并滤波处理。
  • Run-Spin:采样电流,调用观测器估计转子转速和位置,调用相应算法,更新PWMPWM,电机开始切入闭环运行。
  • Run-Freewheel:使能PWM 输出,并采用短接制动的方式进行停机,由于转子惯性,需等待到电机停止运行后在进行状态的切换,进而切换到Ready 状态。如果有错误发生则将进入Fault 状态。

1.jpg

二、035有感FOC例程如何进行电流PI调整

第一步、设定芯片进入Align 状态

由上图的状态机所示Align状态是运行在主状态RUN下面,先由calib到ready再到align,而电流环PI调节在快速环中,结合代码可知,在快环Ready 中进入align状态,因此需要开启宏定义HALL_PHASE_TEST,否则将执行的是Spin

2.jpg

快环ready实现代码:

0

第二步、调节D、Q轴KP、KI值

打开“parameter. h”,修改下面定义值

3.jpg

PID整定的口诀:

参数整定找最佳,从小到大顺序查

先是比例后积分,最后再把微分加

曲线振荡很频繁,比例度盘要放大

曲线漂浮绕大湾,比例度盘往小扳

曲线偏离回复慢,积分时间往下降

曲线波动周期长,积分时间再加长

曲线振荡频率快,先把微分降下来

动差大来波动慢,微分时间应加长

理想曲线两个波,前高后低四比一

一看二调多分析,调节质量不会低

  • 先调比例系数 :逐步增大 D轴、Q轴的 M1_IQ_KP_Q15和M1_ID_KP_Q15 的值,但需保证两个数值一致,观察电流响应(即观察Motor_Type.Foc.stc_ldq.s16q15_Q的值是否能快速跟随上Motor_Type.Foc.stc_ldqCmd.s16q15_Q的值)。随着D轴、Q轴的 M1_IQ_KP_Q15和M1_ID_KP_Q15 的增大,电流响应速度会加快,但可能会出现超调甚至振荡。当电流响应出现轻微超调且能较快稳定时,认为比例系数初步合适。
  • 再调积分系数 :在确定了合适的D轴、Q轴的 M1_IQ_KP_Q15和M1_ID_KP_Q15 后,逐渐增大M1_IQ_KI_Q15和M1_ID_KI_Q15的值,同理也需要保证两个数值一致。这样做目的是消除电流稳态误差,但M1_IQ_KI_Q15和M1_ID_KI_Q15过大会导致系统不稳定或动态性能变差。观察电流在稳态时是否能完全跟踪给定值(即观察Motor_Type.Foc.stc_ldq.s16q15_Q的值是否能稳定),同时关注动态过程中的变化,直到电流能快速、稳定地跟踪给定值,且稳态误差基本消除。

具体效果可参照下图:

4.jpg

至此电流环的PI基本已经初步调好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

9

帖子

0

粉丝