随手记记,并不是很严谨的文章,只是作为一次尝试。
模型结构如下:
电流环阶跃响应曲线。
发现响应曲线初始段有个短暂的反向。问师兄说是因为这个系统不是最小相位系统,存在不稳定零点导致的。
使用的是5段式的SVPWM。如上图所示。上图中下半是采样和计算的触发信号,配合Simulink中的C++ block(代码如下,嵌入Simulink的方法我在之前的文章中写过,有兴趣可以参考交流一下),实现将单片机的运行模式搬到电脑上仿真。
void loop_ctrl(double PID_param[6], double target[2], double current[2], signed char sync_singal[1], double Systime[1], double output[2])
{
//...do some things
if(!states && (sync_singal[0]))
{
//...do some things
}
states = sync_singal[0];
}
电机三相电流:
速度位置双闭环结果:
效果一般,慢慢来吧。