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中进行。
一、速度闭环控制原理
这里借用一下其他人博客的图片。可以看到,如果我们想要实现速度的闭环控制,也就是要能够实现电机的实际速度输出,能够跟随我们给定的速度输入。
这其中我们需要能够获取电机的实际速度输出,也就是我们需要有类似框图中的“测量元件”;随后,比较我们的给定输入与转化后的系统实际输出(这里就是速度),以其差值作为误差,经典的PID控制方法就是以误差作为算法输入,以计算后续控制量的给定,进而影响系统的实际输出。
在实际的电机控制系统中,用于控制执行机构的控制量一般是单片机的PWM占空比,通过占空比的高低来决定电压的等效输出,而电压又可以直接影响电机三相电流,间接的控制了电机的力矩、转速等。
接下来我们将开始搭建速度闭环控制的BLDC无刷直流电机模型,我们将会测量电机的速度输出,以反馈到我们的比较环节,确定输出误差;随后我们会用到Simulink中的PID控制器模块,用于输出控制量;接下来,我们将会通过可控电压源,直接控制电压的输出幅度(也可搭建为PWM控制方式),来影响BLDC电机的转速,实现速度闭环控制。
关于闭环控制的部分原理,还可以继续查找其他博客,或翻阅《自动控制原理》相关教材。
二、仿真模型的搭建
在上一篇博客中,我们搭建了霍尔传感器件及换相逻辑模块,这里我们进入到霍尔传感器件子系统中。我们此前已经放置了一个理想旋转运动传感器以检测电机转子的角速度及角位置,这里我们将输出模块复制一个,连接到传感器模块的角速度输出侧,这个就会作为我们的电机速度的反馈测量元件。
接下来,为了实现电压输出可以被控制量控制,我们进入到三相逆变器子系统中。
在库浏览器搜索Controlled Voltage Source模块,并将其拖动到右侧,替换掉原本的直流电压源模块。该可控电压源模块可以根据左侧的Vs端口的输入,控制输出端口电压。
替换掉直流电压源模块,并复制一个输入模块,通过Simulink-PS Converter模块连接到可控电压源模块的控制端口。
接下来,我们使用重复序列模块来实现输入量的给定,也就是我们期望的速度值。搜索Repeating Sequence,并将其拖动到右侧。
搜索PID Controller模块,并将其拖动到右侧,这就是我们的校正环节。
接下来,我们可以修改重复序列模块给定数值,该模块按照时间值、输出值的给定,可以在指定时间段内,对两端的输出值进行线性插值,实现输出数值的单调变化。
如下图我们输入的参数,就是在时间0~1s内,输出值由0逐渐上升到500;在时间1~2s内,输出值保持为500,以此类推。
接下来,我们按照如下形式进行连接,霍尔传感器件子系统刚刚添加了角度速度的输出,我们将其连接到了一个Sum模块,并注意其连接到的符号是减号“-”,重复序列模块连接到该Sum模块的加号“+”处,表明其是我们期望的速度输出。
随后,为了避免代数环,在连接到PID控制模块前,通过一个单位延迟模块进行连接;PID控制模块的输出连接到三相逆变器模块的刚刚添加的电压控制端。
接下来,我们对PID控制模块的参数进行配置,我们这里将其时域选为“离散时间”,设定比例参数P为2,积分参数I为5,微分参数D保持为0.(这里只要能够使得速度输出收敛即可,可以自己进行修改测试)
三、仿真结果验证
完成了上述的配置后,我们就可以开始进行仿真测试,点击运行后,等待编译、运行完毕,我们可以打开霍尔传感器件子系统中的角速度示波器。可以看到,电机的实际输出速度从0时刻开始,在第1s时上升到接近500,在1到2s期间保持在500左右,之后又上升到1000,和我们此前设定的重复序列模块的输出相同。
我们也可以将电机的角速度输出和重复序列模块的输出,一起输入到示波器模块中;查看两条波形的情况,可以看到两条波形几乎重合,表明我们的系统能够较好的跟随速度指令以控制输出速度。
在后续,还可以将我们的受控电压源模块改为常规的直流电压源,并搭建PWM控制电路来实现电压输出的控制,更接近实际的电机控制系统的情况。在PWM方面,还可以尝试搭建SPWM、SVPWM等PWM控制策略模块,以验证不同算法的控制效果;以及也可以学习FOC的框架搭建等,最终能够将仿真与实验相结合。
参考链接
How to Design Motor Controllers Using Simscape Electrical
PID闭环控制算法解析(最透彻)