之前文章介绍了Simulink官方给的模板,随着学习得不断加深,对程序框图每部分充分理解,发现这个模板中开环阶段采用的是VF强拖,这样启动阶段的动态响应不是很好,因此本人着手于改进代码将开环阶段升级为IF强拖+开闭环切换。下面分别介绍在开环角度和电压控制量的设置。
(1)开环角度
原代码中开环的角速度是直接给定的,由参考速度积分获得角度。
博主参考了
永磁同步电机流频比(I/F)控制及Matlab/Simulink仿真分析_电机if控制_小师兄1995的博客-CSDN博客
的仿真思路,首先设计斜坡速度信号,由角速度累加得到角度值,将角度信号输出给电流Park变换和电压Park反变换环节。
(2)开环电压信号
在原始代码中开环使用恒定Vq、Vd,其中Vq置零,Vd为给定参考值,这个可以使给定的d’q‘电压落后于dq坐标系90°,使转子更容易拖入同步转速。
由于博主将上一节中启动时的角度减去了90°,所以也起到了加速拖入同步转速的效果。而在电压信号输出中,程序仍然采用电流闭环,下图给出了由Iq生成Vq的程序框图,可以看到在启动阶段,程序使用下半部的PI控制。为了在开环转闭环的过渡阶段,电流目标值改变,在前端加入了定时斜坡信号,前2.2s电流目标值保持不变,然后在2.2~2.5s中逐渐减小电流目标值,从而逐步减小强拖角,防止切换到闭环时电流波动过大,导致切换失败。
下图给出了博主设计的启动过程信号变化,分别包括三个阶段:
阶段1:IF强拖阶段Id目标值为0,Iq目标值为恒定0.61(无量纲参数,等于实际值/电流参考值),速度目标值为0.1(无量纲参数,等于实际值/速度参考值),强拖速度目标值从0开始以加速度0.05斜坡增加到0.1;
阶段2:强拖到0.1速度后,维持0.2s,然后Iq目标值从0.61缩小一半,开环转闭环中间过程;
阶段3:0.3s时刻,切入闭环程序,速度目标值增加到0.5,转速环启动运行。
相关文章地址补充:
使用Simulink代码生成工具基于STM32开发板对永磁同步电机进行开环控制_simulink stm32_GarminWilliam的博客-CSDN博客
使用Simulink代码生成工具基于STM32开发板对永磁同步电机进行无传感矢量控制_simulink stm32_GarminWilliam的博客-CSDN博客