这段时间才开始接触Matlab中的Simulink模拟,我结合自己的专业,用它Simulink由于无刷直流电机的模拟,Simulink工具箱中有许多可用的模块,因此建模过程变得非常简单。
在Matlab界面中new->model之后,找到Simulink Library Browser,系统中有许多模块。接下来,我们需要找到我们需要的模块。在了解无刷直流电机的工作原理后,我们需要找到直流电源、三相逆变桥和无刷直流电机模型。Simulink这些模型也可以通过搜索关键字直接找到,即DC Voltage Source、Universal Bridge、Permanent Magnetic Synchronous Machine。下一步是连接相应的信号,如下图所示
其中,可以设置直流端电压,逆变桥可以选择开关设备类型,我们在这里选择Mosfet,PMSM我们选择反电势波形trapezoidal即梯形波,根据实际值设置电机参数相电阻、相电感、反电势常数和极对数。Universal Bridge对应以下桥式拓扑结构。
然后添加相应的负载Tm,通过给定函数,可以模拟突加载、突减载和任意变化的载荷。然后是开关信号g,下面将详细介绍。模型构建完成后,如下图所示。
PMSM通过输出端给出的信号Bus Selector选择,我们需要使用三相霍尔信号来获得相应的开关逻辑,这也是模拟的关键,在整个模型中Subsystem1是实现开关逻辑的算法。我们可以根据霍尔的真实值表通过相应的逻辑门实现,但模型不灵活、繁琐,无法模拟先进或滞后的外观。这就是为什么我在这里使用它Matlab Function来实现的。
如上图所示,这是一个换相逻辑模型,其中我使用下桥臂恒通和上桥臂恒通PWM调制方法导通Mosfet,目前空比的给定方法是常数,后续可以根据转速环进行PI给定。换相是根据换相真值表来的。
霍尔信号
Mosfet导通真值表
导通相
Ha
Hb
Hc
Q1
Q2
Q3
Q4
Q5
Q6
0
0
1
0
0
0
1
1
0
CB
0
1
0
0
1
1
0
0
0
BA
0
1
1
0
1
0
0
1
0
CA
1
0
0
1
0
0
0
0
1
AC
1
0
1
1
0
0
1
0
0
AB
1
1
0
0
0
1
0
0
1
BC
下一步是根据真值表编写相应的开关逻辑代码,
1 function [y1,y2,y3,y4,y5,y6] =fcn(ha,hb,hc,theta)2 y1=0;y2=0;y3=0;y4=0;y5=0;y6=0;3 tmp=hc*4 hb*2 ha;4 if tmp==4
5 y1=0;y2=0;y3=0;y4=1;y5=1;y6=0;6 end7 if tmp==6
8 y1=0;y2=1;y3=0;y4=0;y5=1;y6=0;9 end10 if tmp==2
11 y1=0;y2=1;y3=1;y4=0;y5=0;y6=0;12 end13 if tmp==3
14 y1=0;y2=0;y3=1;y4=0;y5=0;y6=1;15 end16 if tmp==1
17 y1=1;y2=0;y3=0;y4=0;y5=0;y6=1;18 end19 if tmp==5
20 y1=1;y2=0;y3=0;y4=1;y5=0;y6=0;21 end22
23 end
添加代码后,可以配置Mosfet上下桥臂的导通模式,我在这里使用上桥臂PWM调制,下桥臂导通模式,即H_PWM-L_ON方法。一切都准备好了。让我们来看看模拟结果。A相电流、霍尔信号和转子机械角度如下图所示。