Simulink 自动代码生成电机控制:模型预测控制(MPC)模块使用总结(1)

目录

前言

MPC模块使用步骤和参数设计

 电机控制系统验证

 MPC参数调整

 MPC和PI控制器比较

总结 


前言

前面尝试了基于电机DQ轴电流环的传递函数设计PI控制器的参数,最近尝试了下模型预测控制(MPC)对电流环进行控制,这里总结一下方便日后回顾。关于MPC的基本原理随便搜一下一大堆资料这里不再多说,下面主要介绍怎么把电机控制的双电流环替换成MPC控制,如果用MPC模块设计MPC的参数。

永磁同步电机矢量控制电流环参数整定方法----Matlab controlSystemDesigner的使用_永磁同步电机模型传递函数-CSDN博客

MPC模块使用步骤和参数设计

新建一个Simulink模型,在模型窗口里找到MPC模块,如下图所示:

 取消勾选Measured disturbance, 暂且不用这个功能。

 创建模型如下 ,D1Q1分别是DQ轴的功率部分传递函数,参考PI参数整定的文章。

 双击MPC模型,配置默认选项

 Sample time: 采样时间,这里电机的控制频率是10K, 采样时间设置成0.0001s. 

Prediction Horizon: 预测的范围,越小响应越快,但是稳定性会差些,根据实际调整即可,先用默认的后面可在线调整

Number of manipulated variables: 这里设置为2是因为输入有两个DQ轴电流环一个两个输入和两个输出

Number of measured outputs: 设置为2,同上。

 配置好后点Design, 弹出如下窗口,选择MPC Structure.

 确定采样时间和输入输出数量,直接点Import

 左边窗口会弹出plant, mpc1, scenario1。这时候会生成一组默认参数,可以把下图中的响应放大看细节。

 如下,放大之后系统是能收敛的。这时候就可以点TUNING去调整MPC的参数。

 下图框里分别是采样时间,预测范围,控制范围

 把控制范围改小,响应变缓,可暂且设置一个收敛效果还不错的参数,一会把模型放到电机控制的系统仿真进行验证,在线调参等等。

 如下,需要设置约束条件,其实就是设置输入输出的上下限,还有变化率,根据电机控制环路的输入输出合理设计就行。变化率太快容易超调,太小响应慢,合理选择即可。

 配置好后,如下,ECR是软约束,前面配置后面就可以不用管:

 权重会默认生成,如果系统收敛了可以先不用动,后面慢慢优化。通过调节滑块优化控制性能,如果能正常收敛也可以先不用管。

 

 配置完成后点更新模块并运行仿真。

 可以看到DQ轴系统能正常的收敛,这是基于传递函数的验证,接下来直接上电机控制仿真系统。

 电机控制系统验证

把原先电机的控制系统PI控制输出断掉,换成MPC。如下,mo分别是DQ轴电流输入,ref就是DQ轴电流的给定参考值。输出是Vd和Vq。

 设计好MPC的参数后会有一个MPC控制器,如下图。可以在WorkSpace里导出设计好的MPC控制器,方便下一次运行的时候不需要再重新调参。

 在Others里调整数据类型,避免生成代码的时候不会报错。

 运行仿真,电流环控制,仿真结果如下,控制没有问题至少MPC控制器能正常工作。

 看看给定的电流和反馈的电流:

给定和反馈都能快速响应,会有些稳态误差,虽然能控住但是性能并不理想。

 看看细节,十几个周期之后才进入稳态。

 MPC参数调整

 下面对MPC的控制参数进行调整,先把预测范围从10改到2,效果有明显提升。

再看看细节,三四个周期就进入了稳态。那是不是再把预测范围改小还会更快?

 

 直接把预测范围改到1,系统还是能控住,不过有明显的超调了。

 把细节放大看看,也是几个周期就稳定了,不过相比之前的效果超调更大,运气比较好,系统响应都比较快,后面有时间再试试其他参数的特性。

 MPC和PI控制器比较

这里简单比较下响应和生成代码的复杂度,仅供参考。

先把电机控制的模型改成PI控制电流环。比对MPC,稳态误差更小,几乎重合在一起了。

 PI控制器的响应速度,给定Q轴电流和反馈的响应PI控制器甚至更快些。

 DQ轴响应都挺快

 MPC模块生成代码,下面只是生成的一部分代码,生成的代码比PI控制器的复杂太多。一个可能是MPC模块里添加的冗余功能太多,比如系统自带的PI控制器生成的代码就比自己搭的还复杂。仅供参考,也可以自己搭个MPC测试。

总结 

从仿真效果和生成代码的效果来看MPC在这种电机环路控制上优势并不明显,甚至表现不如PI,MPC同样依赖被控对象的传递函数,需要调整的参数也更多,对于算力低的MCU还是PI控制器更有性价比。当然MPC还有很多参数可以优化,这里并没有花太多时间优化,主要介绍一下MPC模块的使用。也没实际上硬件系统进行测试,结果仅供参考。

  • 11
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡洛斯伊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值