代码链接:【免费】使用Simulink代码生成工具对永磁同步电机进行开环控制资源-CSDN文库
本文介绍使用Simulink代码生成功能在STM32开发板平台上运行永磁同步电机。
硬件基础:
Nucleo-G431RB开发板
X-NUCLEO-IHM07M1驱动扩展板
57BLDC-24V-210W时代超群直流电机
软件基础:
MATLAB 2022b 安装
- Motor Control Blockset
- Embedded Coder Support Package for STMicroelectronics STM32 Processors
STM32CubeMX 6.4
控制方法介绍:
本案例使用开环控制方法(也称为V/f控制)来运行永磁同步电机,这种方法通过改变钉子的电压和频率来控制转子速度,在这过程中不需要采用来自电机的任何反馈。该案例可以用来检查硬件是否连接完备。固定频率的供电电源保证电机速度恒定,改变电源频率可以调节转子运行速度。为了确保定子磁通量恒定,应该保证电源电压幅值正比于它的频率。该开环控制没有考虑影响电机速度的外部条件,因此它没办法自动校正输入速度与实际速度之间的偏差。
软件配置:
STM32CubeMX软件
核心芯片选择STM32G431RBTx,芯片引脚定义如下图所示,PA-P10为三相PWM信号,PA0、PC1为两相电流ADC输入信号。
PWM配置
TIM1被配置为生成更新事件,保证ADC与PWM同步,这种同步对于实时读取电流反馈信号非常重要。
ADC配置
ADC1对IN1、IN7选择Single-ended,两路信号使能Injected Coversions。
项目生成配置
所有外设设备基于底层驱动LL(取消HAL),函数初始化取消Do Not Generate Function Call和Visibility(Static)。
保存芯片配置文件xxx.ioc。
MATLAB软件
安装好Embedded Coder Support Package for STMicroelectronics STM32 Processors硬件支持包后本地会继承STM32平台的案例库。
在命令行输入:open_system('mcb_pmsm_foc_sensorless_nucleo_g474re.slx');
打开Simulink模板,然后Ctrl+E操作弹出硬件配置窗口,在STM32CubeMx项目文件选取上一步保存的.ioc文件。
配置模数转化器参数
本案例中的算法采用异步调度,脉宽调制(PWM)触发ADC转换,转换结束时,ADC发出一个中断,触发开环算法执行。
配置PWM输出
选择计数器启用后设置重复计数器参数,以在计时器的计数器溢出时更新事件。
操作步骤:
1. 将Nucleo-G431RB开发板与X-NUCLEO-IHM07M1板连接,Nucleo-G431RB开发板通过USB连接到PC端,X-NUCLEO-IHM07M1板上连好电机三相电线、24V直流电源;
2. 打开供电电源,在MATLAB的“Hardware”选项卡中,点机“Monitor&Tune”。在底部诊断查看器中可以看到正在生成模型代码,主机加载生成的可执行文件后,电路启动工作,可以看到开发板上呼吸灯闪烁;
3. 单机开发板上的蓝色按钮启动电机;注意:此示例可能不允许电机满负荷运行。开始低速运行电机。此外,建议分小步更改参考转速(例如,对于基本转速为 3000 rpm 的电机,以 500 rpm 的速度开始运行电机,然后以 200 rpm 的倍数增加或减少速度)。
如果电机不运行,按蓝色按钮停止电机,并更改模型中的转速常数。然后按蓝色按钮启动电机并再次运行。
附录 ADC偏移校准:文章来源:https://www.toymoban.com/news/detail-413449.html
本案例可以为永磁同步电机矢量控制提供准备工作,在电机空转时,通过Simulink数据查看器观察ADC信号数据,该数据就是ADC的偏移量,可以在矢量控制中校准电流值。文章来源地址https://www.toymoban.com/news/detail-413449.html
到了这里,关于使用Simulink代码生成工具基于STM32开发板对永磁同步电机进行开环控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!