Simulink电机控制框架

汇聚博主多年工程经验的新书《Simulink嵌入式开发实战》现已上市,针对Simulink与MBD开发技术,形成了一套完整的知识体系和方法论。详细介绍和优惠链接可以参考博客《Simulink嵌入式开发实战》新书上市,感谢粉丝长期以来的支持!

文章目录

  • [1 引入](#1 引入)
  • [2 算法框架生成流程](#2 算法框架生成流程)
  • [3 生成的文件研究](#3 生成的文件研究)
  • [4 总结](#4 总结)

1 引入

在Matlab新版的2026b上新增了STM32工具箱《STM32 Microcontroller Blockset》,打通了Simulink和STM32的接口。该工具箱结合以前的电机控制工具箱《Motor Control Blockset》,就可以在STM32开发板上跑电机控制了。

博主作为电机控制小白,记录学习电机的过程。本文先用官方示例《Generate Motor Control Models for Selected Algorithm and Hardware》来建立一个电机控制框架,再进行学习研究。

2 算法框架生成流程

  1. 点击链接,进入官方的示例页面;通过右侧的Copy Command按钮复制脚本命令;
  1. 在matlab命令窗口执行该指令,会自动在Example路径下生成组件文件,并打开一个交互式界面《Generate Motor Control Models for Selected Algorithm and Hardware》;

在该界面下可以选择电机控制模型的硬件和算法;

  1. 首先光标选择23行的代码,并点击上方的Run Section,运行这一节,在工作区加载出相关的参数;
  1. 在39行的选项卡用来选择硬件,这里以STM32为例;
  1. 在51行的选项卡用来选择电机控制算法,这里选择FOCQEP,表示使用编码器位置传感器的FOC算法 ;
  1. 光标选中58行,点击上方的Run Section,运行这一节,就可以生成点击框架;生成完毕后会自动打开target模型;

按照脚本的要求,后续还可进行配置参数、仿真、代码生成等操作。后续再进行进一步研究。

3 生成的文件研究

  1. 生成完成后,会把所有文件都生成到一个temp文件夹内;

注意,在这个temp文件夹中已经包含了本次生成所需的所有模型文件以及配置文件,不用依赖于任何外面的原始文件。所以可以将Temp文件夹拷贝到别处,并在该文件夹下操作模型。

  1. 在Temp文件夹中,Target模型和Host模型是顶层模型,其中通过模型引用调用了其他子模块;

其中,

  • Target模型是目标模型,仿真和烧录控制器都从该模型完成;
  • Host模型是上位机模型,用于和STM32通信

后续先以仿真的形式研究Target模型,慢慢学习建立对电机控制的基本认知。

4 总结

本文对Matlab的电机控制框架做了初步的摸索和尝试,后续基于官方的示例进行学习。

>>返回个人博客总目录

相关推荐
Evand J2 天前
【MATLAB例程,PMSM19】永磁同步电机(PMSM)基于多速率无迹卡尔曼滤波(UKF)的转速与转子位置估计。测量缺失、状态预测与恢复性能分析
开发语言·matlab·电机·ekf·卡尔曼·电机滤波
星夜离尘563 天前
MATLAB 离散数据分箱:半开区间、末端点与计数、加权和、平均
算法·matlab
Evand J5 天前
【MATLAB例程介绍】(17)永磁同步电机(PMSM)基于自适应无迹卡尔曼滤波(AUKF)的电流噪声在线估计。测量噪声协方差自适应与转速估计对比仿真
开发语言·matlab·卡尔曼滤波·无迹卡尔曼滤波·pmsm·电机滤波
严肃小白兔6 天前
MATLAB 绘图与科研论文插图制作:图形设计、统计表达与矢量导出
开发语言·matlab·科研绘图
严肃小白兔7 天前
MATLAB 数值计算中的精度与误差问题:浮点运算、误差传播与数值稳定性
人工智能·算法·matlab
Evand J8 天前
【PMSM例程】(14)永磁同步电机无迹卡尔曼滤波(UKF)定子电阻在线辨识与补偿。电阻变化跟踪及预测误差对比仿真。附完整代码的下载链接
matlab·电机·滤波·卡尔曼滤波·永磁同步电机·无迹卡尔曼滤波·pmsm
爱喝雪碧的可乐8 天前
MATLAB
开发语言·算法·matlab
严肃小白兔8 天前
MATLAB 优秀开源项目与工具箱推荐:涵盖通信、图像处理、脑机接口等九大领域
图像处理·matlab·信息与通信·开源项目
Evand J10 天前
【MATLAB例程12】永磁同步电机基于增广无迹卡尔曼滤波的未知负载转矩在线观测
开发语言·matlab
分享资料11 天前
MATLAB 中分号 (;)的作用
matlab