冲着先要爽一把的心理,先让电机动起来感觉更有劲儿一些,那咱们就行动!

    第一步:新建一个model,加入BLDC模型

    如下图所示,添加一个1处所示的Permanent Magnet Synchronous Machine。并且关键一步,将反电动势波形选择为梯形波,梯形波才是无刷直流电机,如果正弦波就是永磁同步电机了。因为我们只是需要电机转起来,不需要特地的设置电机参数,看一看就可以啦。

第二步:添加电机参数。因为这里不涉及到具体的控制嘛,所以电机参数并不重要,但是有个地方的参数我刚开始有点看不明白,就是下图所示的这个back EMF flat area。这是个啥,我查了一下官方的帮助文件,其注释如下,意思是半周期内反电动势平顶区角度范围(只针对无刷直流电机)。我们无刷直流电机一般都是按照120°平定波来,这和前面第一篇文章所讲的BLDC和PMSM的区别内容里面一致,所以这里选择120°即可。

第三步:添加逆变器,依据反馈位置生成PWM脉冲。

在这个里面我们需要确定电机的初始位置,我们假设设置这个初始位置为1°,看看霍尔信号的样子。示波器第四行是电机的转子位置,可以看到转子位置为1°的时候,霍尔信号为100。那么这里就和我们上面分析的东西吻合了,接下来需要看如何安排PWM序列了,安排PWM最关键的步骤就是第一步启动时候的通电方向。

下图可以看到我们现在这个电机参数里面极对数是4,那么极对数是4的电机的定转子磁极排布式如何的呢?

如果是按照初始位置在100的地方,要想电机正向转起来,那么箭头所示的H2附近线圈产生的磁极就应该是N极,即A相线圈方向为正,那么B线圈产生的磁极就应该是S极,即B相线圈方向为负,因此启动时的第一步通电方向为应该是 A+B-,总体六步通电顺序为 【A+B-】 ->  【A+C-】->  【B+C-】->  【B+A-】 -> 【C+A-】 ->  【C+B-】

那这个【A+B-】 ->  【A+C-】->  【B+C-】->  【B+A-】 -> 【C+A-】 ->  【C+B-】对应的PWM是什么呢?

这个需要与逆变器的结构匹配。通过查询matlab的帮助文档,可以看到三相mos回路的开关管排布如下所示。那么即可得到相应的PWM脉冲循环,

那么可以得到开关管表格:

第四步:施加脉冲到逆变器上。第四行是电机位置,可以看到电机转起来了。只不过我的PWM给的每秒换一次PWM,所以是60°60°走的。试着降低步长试试,0.01s换一次PWM。然后电机就转起来了。

整理不易,希望大家帮忙点个赞~
后续文章链接:
 永磁同步电机矢量控制到无速度传感器控制学习教程(PMSM)(一)

无刷直流电动机矢量控制(一)——无刷直流电机(BLDC)与永磁同步电机(PMSM)的相同点和区别

无刷直流电动机矢量控制(二)——无刷直流电机的工作原理及其内部结构

无刷直流电动机矢量控制(三)——位置检测和换相

无刷直流电动机矢量控制(四)——simulink仿真搭建(让电机动起来)

无刷直流电动机矢量控制(五)——开环调速原理(方波形式)

STM32电机库(ST-MC-Workbench)学习记录——电机参数及传感器设置

STM32电机库(ST-MC-Workbench)学习记录——电流采样部分

STM32电机库(ST-MC-Workbench)学习记录——电流采样参数设置

STM32电机库(ST-MC-Workbench)学习记录——无感FOC代码生成