simulink生成电机控制代码

前言:在之前的两篇文章中,分析了直流电机模型PID的理论原理。那么就可以把两者结合,做一个PID闭环控制的电机驱动啦🚀

并且本文中,将演示使用Matlab的C/C++ Code Generation直接生成控制器的代码!真是个懒人欢呼的事情呢🎊

建立闭环控制系统

先把图片安排上

模型图

该模型可以拆开成3部分理解:输入信号发生器、PID控制器、电机模型。其中电机模型是之前博文中建好的;PID控制器的输入为预设速度值和反馈的实际速度值的差值;输入信号发生器的波形如下图所示,以及系统的响应

响应情况

PID的参数使用的是Matlab自动计算的(I love matlab),可以看出系统的响应是不错的呢,过充很小,阶跃响应也很快(就不放大看波形了,模型已经上传到了我的仓库simulinkModel,欢迎白嫖实验)

生成PID控制器代码

  1. 打开“C code”面板中的“Settings”下的“Hardware Implementation”(也就是设置硬件实现目标)

    硬件目标面板

  2. 在该页面下,打开“hardware board”选项栏,选择“get hardware support Packages”。当然,如果你已经有了目标平台的包了就可以直接选择(本文目标为STM32平台)

    平台选择

  3. 找到STM32平台并且下载支持包。这边选择的是“nucleo”系列,这是ST公司官方的最小系统开发板

    下载包

  4. 漫长的等待…⛷(笔者打了把游戏的功夫还没下好…那再来一把…)

  5. 把“Device vendor”选为:STMicroelectronics

  6. 进入“Code Generation”,勾选“generate code only”。否则会产生可执行文件

  7. 回到主界面,选择“Quick Start”,一路next下去
    QuickStart

  8. 选择主界面的“Generate Code”
    GenerateCode

  9. 可以看到生成了许多代码(当然这是整个系统的代码)
    sysCode

  10. 在PID模块上右键,选取“C/C++ code”下的“build this subsystem”
    buildSubsys

  11. 在弹出的选项框里选择build

  12. 就可以看到只有PID的代码了!😝
    PIDcode

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022-2024 RY.J
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信