基于MATLAB/SIMULINK的无刷直流电动机系统仿真
0 引言
无刷直流电机(Brushless DC Motor,以下简称BLDCM),是随着电力电子技术和永磁材料的发展而逐渐成熟起来的一种新型电机。为了有效的减少控制系统的设计时间,验算各种控制算法,优化整个控制系统,有必要建立BLDCM控制系统仿真模型。本文在BLDCM数学模型的基础上,利用MATLAB的SIMULINK和S-FUNCTION建立BLDCM的仿真模型,并通过仿真结果验证其有效性。
1 无刷直流电机仿真模型
本文在MATLAB的SIMULINK的环境下,利用其丰富的模块库,在分析BLDCM数学模型的基础上,建立BLDCM控制系统仿真模型,系统结构框图如图1所示。
图1 无刷直流电机控制原理框图
以图1为基础,按照模块化建模的思想搭建的系统的仿真模型如图2所示。整个控制系统主要包括电动机本体模块、逆变器模块、电流滞环控制模块、速度控制模块等。
图2 无刷直流电机控制系统仿真模型框图
1.1 电动机本体模块
在整个控制系统的仿真模型中,BLDCM本体模块是最重要的部分,该模块根据BLDCM电压方程求取BLDCM三相相电流,而要获得三相相电流信号ia,ib,ic必须首先求得三相反电动势信号ea,eb,ec,整个电动机本体模块的结果如下图3所示。电机本体模块包括反动电势求取模块,中性点求取模块,转矩计算模块和位置检测模块。
图3 电机本体模块
1. 反电势求取模块
本文直接采用了SIMULINK中的Lookup Table模块,运用分段线性化的思想,直观的实现了梯形波反电动势的模拟,具体实现如图4所示。
图 4 反电势求取模块
Lookup Table模块的实质是通过查表构造反电动势波形,只要把360°内的反电动势的单位波形预先输入至Lookup Table模块中,就能得到其单位理想波形,由前面的数学模型知道,反电势梯形波的幅值为:e=Ke*ω。其中Ke为电机的反电动势系数。具体的Lookup Table参数设置参照下表 1。
表 1 位置信号和单位反电动势的关系
位置 A B C 0 1 -1 1 60 1 -1 -1 120 1 1 -1 180 -1 1 -1 240 -1 1 1 300 -1 -1 1 360 1 -1 1 2. 转矩计算模块
依据数学模型建立转矩计算模型如图5所示。
图5 转矩计算模块
3. 中性点求取模块
求出反电动势后根据电压平衡方程来求中性点电压,具体模块如图6所示。
图6 中性点求取模块
4. 转子位置检测模块
图7 转子位置检测模块
1.2 速度PID控制模块
速度控制模块采用PID调节。
图 8 PID控制模块
1.3 参考电流模块
参考电流模块的作用是根据电流幅值信号Is和位置信号pos求出三相参考电 流。参考电流模块的功能通过S函数实现。
图9 参考电流模块
1.4 电流滞环控制模块
电流滞环控制模块的作用是实现滞环电流控制,输入端l、2、3为三相实际电流,4、5、6为三相参考电流,输出为脉冲信号,滞环的环宽设为0-1之间。模块结构框图如图10所示。
图 10 电流滞环控制模块
1.5 电压逆变模块
电压逆变器模块实现的是逆变器功能,输入为位置信号和电流滞环控制模块信号及电压逆变控制信号,输出为三相端电压,其中,可以通过编写S函数实现从转子位置信号得到六个MOSFET导通开关信号。如图11所示。
图 11 电压逆变模块
三相的上桥臂控制信号与电流滞环控制模块得到的信号进行逻辑与运算,即 可得到控制开关的逻辑信号,如图11所示。由于6个MOSFET只可能同时有两个导通,且两个管不能为同相,所以可选用二选一开关来得到三相端电压,如图12所示。在本文设计的模型中,额定电压设为72V,则端电压的一半为36V。
图 12 开关功率管模块
2 仿真结果
仿真中,BLDCM参数设置为:额定转速n=120rad/s,定子相绕组电阻R=1.25欧姆,定子相绕组自感L=0.055H,互感M=0.003H,转动惯量为0.006kg.m2,反
电势系数为Ke=0.22V/rad/s。极对数为np=1,72V直流电源供电。
在t=0.2s时,加负载2N.m。可得到系统转速,转矩,相电流,相反电动势仿真曲线如图13-16所示。
图13 转速响应曲线
图14 转矩响应曲线
图15 相电流波形
图16相反电动势波形
由仿真波形可以看出,在n=120rad/s参考转速下,系统响应快速且平稳相电流和反电动势波形较为理想,转矩脉动较大。仿真结果证明了本文所提出的这种BLDCM仿真建模方法的有效性。
3 总结
在Matlab/Simulink仿真环境下,可以方便地建立BLDCM的仿真模型。对于个别新的Simulink模块,应用S函数来实现,可以充分发挥Matlab编程的灵活性与Simulink的简单直观性,加速无刷直流电动机调速系统的开发。
参考文献
[1] 兰宝华. 无刷直流电动机无位置传感器位置检测技术的研究,中南大学.
[2] 叶长青,尹华杰,赵海波.无刷直流电动机驱动系统Matlab仿真建模及模型中S函数的实
现[J].微电机.
附录
referenceCurrent.m 参考电流模块S函数: function sys=mdlOutputs(t,x,u) if (u>=0)&(u elseif (u>=2*pi/3)&(u elseif (u>=4*pi/3)&(u<5*pi/3) sys=[-1;0;1]; else sys=[0;-1;1]; end inverter.m 电压模块S函数: function sys=mdlOutputs(t,x,u) if u>=0&u sys=[0 0 0 1 1 0]; end 因篇幅问题不能全部显示,请点此查看更多更全内容