Matlab/Simulink - BLDC直流无刷电机仿真基础教程(二) - 霍尔传感器件及换相逻辑的搭建

Matlab/Simulink - BLDC直流无刷电机仿真基础教程(二) - 霍尔传感器件的搭建

前言

本系列文章分享如何使用Matlab的Simulink功能来进行BLDC直流无刷电机的基础仿真,最终目标是通过Simulink中的模块搭建一个简单的BLDC电机控制模型,并实现速度闭环控制。

文章内容主要参考Matlab官网的BLDC仿真视频教程,主要是对官方视频教程的进一步详细说明,以及对BLDC电机控制原理、仿真过程部分问题点的简要讲解,希望大家通过此系列文章可以掌握Matlab电机仿真的基本技术,并在后续能够按照需要搭建更复杂的模型。

官方视频教程地址如下:
https://ww2.mathworks.cn/videos/series/how-to-design-motor-controllers-using-simscape-electrical.html

相关演示操作在Matlab2023b中进行。

一、BLDC电机霍尔传感器换相原理

如下图所示为BLDC电机六步换相控制方法下,转子在六个不同的逆变器状态下的静止位置。
可以看到,如果能够结合转子位置信息,并按照如下顺序对逆变电路的开关器件进行适时的导通、关断设置,转子将可以实现连续的旋转。

在这里插入图片描述

图片1.1 六步换相示意


为了实现转子的连续旋转,我们需要能够获知转子的位置信息,有感、无感算法均可;此外,我们还需要建立一张开关表,其接收转子位置信息作为输入,并根据转子位置判断目前应该输出给逆变电路的控制信号,实现电机的连续运行。

在这里插入图片描述

图片1.2 BLDC连续运行对应控制框图


二、仿真模型的搭建

在上一篇文章末尾,我们搭建了如下图所示的仿真模型。

在这里插入图片描述

图片2.1 BLDC电机及逆变电路基础模型


接下来,在开始进行霍尔传感器件及换相逻辑的搭建之前,为了使我们的模型在视觉上更简洁,我们可以将此前搭建的模型集成为一个子系统。
具体方式如下所示,按住左键将我们要集成的部分框选起来,在其上右键,点击“基于所选内容创建子系统”。

在这里插入图片描述

图片2.2 创建子系统


随后,我们刚刚选中的部分将会集成到一个单一的模块中,我们可以为其进行命名,这里命名为“Three-Phase Inverter”,即三相逆变器。

可以看到刚刚创建的子系统模块具有一个输入端口及三个输出端口,输入端口即开关信号的输入,输出端口对应电机A、B、C三相的控制端口。

在这里插入图片描述

图片2.3 子系统示意图


接下来,我么需要搭建模块以模拟霍尔传感器件的功能。

根据BLDC六步换相连续运行的原理,可以看到逆变电路的开关导通状态共有六种;我们可以认为,需要按照转子所在位置划定六个扇区,每个扇区对应于一种开关状态,以实现当转子处于任意位置时,逆变电路对励磁线圈的控制均可使得转子受到磁场作用而旋转。

这里我们设定A相线圈方向为参考的零度,结合上文的六步换向示意图,为了实现电机转子的连续运行,逆变电路的控制应当遵循如下的规律:

  • 电机转子处于270~330°范围时,A相上桥、C相下桥打开。
  • 电机转子处于330~30°(或者说正负30°)范围时,B相上桥、C相下桥打开。
  • 电机转子处于30~90°范围时,B相上桥、A相下桥打开。
  • 电机转子处于90~150°范围时,C相上桥、A相下桥打开。
  • 电机转子处于150~210°范围时,C相上桥、B相下桥打开。
  • 电机转子处于210~270°范围时,A相上桥、B相下桥打开。

这一点也可以结合BLDC电机换相时的电压波形来看,如下图所示,可以根据电压波形推断其各相的导通顺序,与我们这里推导的规律一致。

在这里插入图片描述

图片2.4 BLDC电机换相电压波形


我们可以参照第一篇文章,以1*6的向量来控制六个开关器件的导通状态(次序为:A相上下桥、B相上下桥、C相上下桥),由刚刚的推导可知,我们的开关表逻辑应该为:

开关表含义
[1 0 0 0 0 1]A相上桥、C相下桥打开
[0 0 1 0 0 1]B相上桥、C相下桥打开
[0 1 1 0 0 0]B相上桥、A相下桥打开
[0 1 0 0 1 0]C相上桥、A相下桥打开
[0 0 0 1 1 0]C相上桥、B相下桥打开
[1 0 0 1 0 0]A相上桥、B相下桥打开
表格2.1 BLDC换相开关表


在开始进行Matlab模块的搭建之前,我们可以通过伪代码简单梳理一下霍尔传感器件的输出逻辑。

angle = GetRotorPosition();  // angle为电机转子角度位置
angle = angle % 360;  // 对360取余,限制角度范围为0~360

// 以下逻辑参考自前文推断的换相规律
if(angle <= 330 && angle > 270)
  out = 1;

if(angle <= 30 || angle > 330)
  out = 2;
  
if(angle <= 90 && angle > 30)
  out = 3;

if(angle <= 150 && angle > 90)
  out = 4;

if(angle <= 210 && angle > 150)
  out = 5;
  
if(angle <= 270 && angle > 210)
  out = 6;

接下来我们使用Simulink中的模块来实现相同的输入、输出逻辑。

这里的角度对于多对极电机而言,实际上是电角度,我们首先在库浏览器中查找Gain增益模块,并将其拖动到右侧。

在这里插入图片描述

图片2.5 搜索Gain增益模块


接下来,为了防止Simulink中出现代数环(在数字计算中,输入信号决定输出信号,同时输出信号也决定输入信号,由于数字计算的时序性,导致没有输出信号无法计算输入信号,没有输入信号又反过来无法计算输出信号,形成一个死锁(deadlock)或死循环,这就是代数环),我们需要使用单位延迟模块,搜索Unit Delay,并将其拖动到右侧。

在这里插入图片描述

图片2.6 搜索Unit Delay单位延迟模块


接下来,我们对转子角度位置进行取余处理,搜索Rem,并将其拖动到右侧。

在这里插入图片描述

图片2.7 搜索Rem模块


按照如下所示方式,在此前的理想旋转运动传感器模块的角位置端口进行连接,这里我们设定gain增益模块为1,因为我们设定的电机模块的极对数为1;在rem模块处,我们使用了一个赋值为360的常量模块,以及经过单位延迟处理后的角位置输出与其相连,并调整了其形状大小。

在这里插入图片描述

图片2.8 角度取余处理模块的搭建


为了实现我们刚刚写的伪代码的处理逻辑,我们需要使用到Simulink中的关系运算符和逻辑运算符,这里我们搜索Relational Operator。

在这里插入图片描述

图片2.9 搜索Relational Operator关系运算符模块


搜索Logical Operator。

在这里插入图片描述

图片2.10 搜索Logical Operator逻辑运算符模块


接下来,我们就可以通过关系运算符(大于、小于、等于的判定)、逻辑运算符(与、或、非条件),实现电机转子位置所在扇区的输出。

如下图所示,我们对0~360度范围内的电机转子位置进行了判断,在逻辑运算符后,我们使用了Data type conversion模块,实现逻辑运算符输出的布尔值到增益模块所需的数据类型的显式转化(实测不使用该模块也可以进行转化)。

最后,在右侧,我们通过add模块,将各个判断模块的输出加到一起,由于电机转子位置在同一时间数值唯一,因此六个判断模块中只有一个会满足条件并输出对应扇区数值,其余皆为0。这就是通过Simulink对霍尔传感器件位置信号输出的模拟。

在这里插入图片描述

图片2.11 霍尔传感器件位置输出模拟示意图


三、换相逻辑的搭建

完成了霍尔传感器件的搭建后,我们还需要将其扇区输出信号连接到我们的换相表,最终换相表模块输出逆变电路六个开关器件对应的开关状态。

这里我们需要使用到多端口开关模块,该模块可以根据最上方第一个输入信号,来控制输出信号的选择。

搜索Mutiport Switch,并将其拖动到右侧。

在这里插入图片描述

图片3.1 搜索Mutiport Switch模块


随后设置其数据端口为6。

在这里插入图片描述

图片3.2 修改Mutiport Switch模块数据端口数量


根据我们前面整理的开关表表格来完成搭建。

在这里插入图片描述

图片3.3 开关表模块示意图


接下来,将我们刚刚搭建的霍尔传感器件右侧add模块的输出,引入到多端口开关模块的上方,目前整个仿真模型结构如下图。

在这里插入图片描述

图片3.4 当前仿真模型示意图


接下来,我们可以开始进行模型的仿真测试,也可以在此之前通过集成子系统,来使得我们的模型看起来更简洁一些。

在这里插入图片描述

图片3.5 集成子系统后的模型示意图


四、仿真结果验证

在进行仿真验证之前,我们可以检查一下用于观察电机转子角度、角速度的示波器模块前的转换模块的单位是否符合我们预期,这里设置角速度示波器前的单位为 度/秒(deg/s)。
在这里插入图片描述

图片4.1 数据转换模块单位设置


由下图的角速度数据,可以看到我们的电机实现了连续平稳运行。

在这里插入图片描述

图片4.2 角速度仿真数据


下图为角度数据,角度不断增长表明电机转子在连续运行,符合预期。

在这里插入图片描述

图片4.3 角位置仿真数据


我们还可以打开集成的三相逆变器子系统,观察其中三相电压的变化情况。

在这里插入图片描述

图片4.4 逆变器三相电压情况


放大后,我们可以看到电机A、B、C三相电平周期性的高低变化,表明电机正在不断换相,三相逆变电路各相上下桥打开情况不断切换。

在这里插入图片描述

图片4.5 逆变器三相电压情况(局部放大)


参考链接

How to Design Motor Controllers Using Simscape Electrical
BLDC 电机的工作原理
matlab/simulink中代数环的问题及解决措施

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

关岭风尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值