前言
磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩. PMSM的磁场定向控制框图如下图所示:
上一讲详细介绍了磁场定向控制的原理,有兴趣的同学可以自己写代码去实现它,ST官方对电机的控制有一套完整的库(最新版本已更新5.3了,开源),该电机库功能齐全,同时还配备了完整的图形界面开发工具,配合STCUBEMX工具可直接生生工程代码,从本节开始,后续的PMSM电机的相关控制将直接以ST电机库为基础进行介绍。关于ST电机库及工具下载与安装教程请看《STM32 电机教程 0 - MotorControl Workbench下载与安装》一节。
本节所用电机为2836无刷电机,电机有两组线(hall传感器线和电机三相线),工作电压24V,最大转速12000rpm:
示例详解
本节用到ST官方推出的NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH 开发板。
-
- 准备操作
按下图接好跳线端子:
打开MotorControl Workbench软件:
新建一个工程:
然后是配置速度传感器:
到此就可以生成工程了:
如果工程还未保存会先保存工程,工程保存完成后弹出代码生成窗口:
配置好后点生成:
生成后可在对应的文件夹中看到如下图所示工程文件:
进入MDK-ARM目录,打开keil 工程:
直接编译工程,编译无误后,下载并运行代码!发现电机不转,正常因为程序没有让电机运动,没关系,我们还可以用MotorControl Workbench 的图形界面工具让电机运动起来:
在电脑的设备管理器中找到STLINK对应的端口号:
在Workbench打开电机监视器
上面现象根据经验,很可能是PID控制器参数过大导致,需要调整参数:
直到响应跟踪目标曲线速度及稳定后的效果都达到可接受情况时,记住各控制参数值:
将控制参数值,写回到MotorControl Workbench的控制参数设置界面(Control Unit -> Firmware Drive Management ->Drive Setting ):
修改好参数后,更新一下代码工程:
重新编译KEIL工程下载,记得勾选下载选项中的复位和运行选项:
下载完成后便可直接按开发板上的蓝色控制按键来启动电机:
OK,本期实验完成!本节内容到此结束,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!
文中源码及资料下载,关注十三公众号:
在公众号里给十三发送 “下载|STM32 电机教程 17” :