前言
磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩. PMSM的磁场定向控制框图如下图所示:
第19讲成功实现了基于NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH及MotorControl Workbench的单电阻FOC算法实现,本节就给大家介绍使用ST 电机库实现无感FOC算法让电机运转起来。本节工程代码直接在19讲基础上进行修改即可。
本节所用电机为2836无刷电机,电机有两组线(hall传感器线和电机三相线),工作电压24V,最大转速12000rpm:
示例详解
本节用到ST官方推出的NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH 开发板。
-
- 准备操作
按下图接好跳线端子(单电阻接线方式):
本节的MotorControl Workbench工程直接用第19讲的即可,直接复制上一讲生生成工程文件及代码工程文件,改名为Motor20:
在配置工程之前,先用Motor Profiler 5.3.3工具测量一下电机相关参数,具体操作可看《STM32 电机教程 1 - 用ST Motor Profiler 测量电机参数》一节,测得结果如下:
打开工程文件,按下图完成配置:
速度传感及位置传感选择Sensor-less(observer+pll 或 observer+cordic ):
按上述配置好后,这个时候在Firmware Drive Mangagement 下会多一个Start -up parameters 选项,选择该选项:
有了前面17-19节的基础,上面的一些启动参数保持默认基本都可以了,当然如有特殊需求可自行更改对应的参数,比如想要启动再快一点,可以适当减小相应的延时,如果想让电机启动后初始速度大一点则可以修改目标速度考虑到无感算法在低速时表达不是佳,建议启动时相应的速度尽量大些,可以增加无感起动的成功率,如下图是本例所使用的配置参数:
基础模式:
高级自定义模式:
需要注意的是第19讲是采用的单电阻方案,所涉及的一些硬件配置如下(三电阻方案有兴趣的同学可以自行去完成相关实验):
确认之后工程会有如下提示信息:
进到MCU模拟通道设置窗口看一下,确定配置正确(如下图)即可!
到这里就可以成生程代码了:
进入MDK-ARM目录,打开keil 工程:直接编译工程,编译成功后下载代码到开发板,记得勾选下载选项中的复位和运行选项:
程序下载完成后,用MotorControl Workbench工具调节试,操作如下,。
可以看到无感模式下,速度抖动有所增加:
OK,本期实验完成!本节内容到此结束,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!
文中源码及资料下载,关注十三公众号:
在公众号里给十三发送 “下载|STM32 电机教程 20” :