我是靠谱客的博主 天真小蜜蜂,最近开发中收集的这篇文章主要介绍使用Simulink代码生成工具基于STM32开发板对永磁同步电机进行开环控制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文介绍使用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偏移校准:

本案例可以为永磁同步电机矢量控制提供准备工作,在电机空转时,通过Simulink数据查看器观察ADC信号数据,该数据就是ADC的偏移量,可以在矢量控制中校准电流值。

最后

以上就是天真小蜜蜂为你收集整理的使用Simulink代码生成工具基于STM32开发板对永磁同步电机进行开环控制的全部内容,希望文章能够帮你解决使用Simulink代码生成工具基于STM32开发板对永磁同步电机进行开环控制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部