基于simulink的交流电机SPWM调速系统建模与动态仿真

目录

一、理论基础

1.1、实现步骤

1.2、数学公式

二、核心程序

三、仿真结论


一、理论基础

        正弦脉宽调制技术SPWM(Sine Pulse Width Modulation)是用所期望的正弦波为“调制波”(Modulation Wave),而以N倍于调制波频率的三角波为“载波”(Carrier Wave)的一种逆变器控制技术。SPWM技术的控制的特点是原理简单、通用性强、控制方便、调节灵活,能有效降低谐波分量、稳定输出电压,是一种比较好的波形改善法,在目前中小型逆变器中获得了广泛的应用。

       交流电机是一种广泛应用于工业生产中的电动机,具有转速调节范围广、工作可靠、噪声小等优点。而SPWM调速系统则是一种常用的交流电机调速系统,可以实现交流电机的调速和控制。本文将详细介绍基于simulink的交流电机SPWM调速系统建模与动态仿真,包括实现步骤、数学公式和应用案例等内容。

1.1、实现步骤

基于simulink的交流电机SPWM调速系统建模与动态仿真主要分为以下几个步骤:

建立模型:根据交流电机的工作原理和SPWM调速系统的控制原理,建立电机模型和控制模型。

扫描二维码关注公众号,回复: 15485756 查看本文章

参数设置:设置电机模型和控制模型的参数,包括电机的额定功率、额定电压、额定电流等,以及控制器的参数。

仿真设置:设置仿真的时间、仿真步长等参数。

仿真运行:运行仿真模型,进行动态仿真。

性能评估:根据仿真结果,评估系统的性能,包括转速响应、稳态误差等指标。

优化策略:根据性能评估结果,对系统进行优化策略的调整和优化。

1.2、数学公式

基于simulink的交流电机SPWM调速系统建模与动态仿真的数学公式如下:

电机模型
交流电机的动态方程可以表示为:

$$ \frac{d}{dt}\begin{bmatrix}i_a\i_b\i_c\\lambda_r^d\\lambda_r^q\end{bmatrix}=\begin{bmatrix}\frac{-R_s}{L_s} & \frac{\omega_r}{L_s} & 0 & 0 & -\frac{\lambda_r^q}{L_s}\-\frac{\omega_r}{L_s} & \frac{-R_s}{L_s} & 0 & \frac{\lambda_r^d}{L_s} & 0\0 & 0 & \frac{-R_s}{L_s} & 0 & \frac{\lambda_r^q}{L_s}\0 & -\frac{\lambda_r^d}{L_m} & 0 & \frac{-R_r}{L_m} & \frac{\omega_r}{L_m}\\frac{\lambda_r^q}{L_m} & 0 & -\frac{\omega_r}{L_m} & \frac{-\omega_r}{L_m} & \frac{-R_r}{L_m}\end{bmatrix}\begin{bmatrix}i_a\i_b\i_c\\lambda_r^d\\lambda_r^q\end{bmatrix}+\begin{bmatrix}\frac{1}{L_s} & 0 & 0\0 & \frac{1}{L_s} & 0\0 & 0 & \frac{1}{L_s}\0 & 0 & 0\0 & 0 & 0\end{bmatrix}\begin{bmatrix}v_a\v_b\v_c\end{bmatrix} $$

其中,i_a、i_b、i_c分别表示a、b、c三相电流,\lambda_r^d、\lambda_r^q分别表示d轴和q轴的磁链,R_s表示定子电阻,L_s表示定子电感,R_r表示转子电阻,L_m表示转子电感,\omega_r表示转子角速度,v_a、v_b、v_c分别表示a、b、c三相电压。

SPWM调速系统模型
SPWM调速系统的控制模型可以表示为:

$$ u_d=k_p(\omega_{ref}-\omega_m)+k_i\int_0^t(\omega_{ref}-\omega_m)dt$$

其中,u_d表示控制器输出的电压信号,\omega_{ref}表示期望的转速,\omega_m表示实际转速,k_p和k_i分别表示比例系数和积分系数。

SPWM调制信号
SPWM调制信号可以表示为:

$$ m(t)=\begin{cases}1 & 0\leqslant kt-T_s/2\-1 & kt-T_s/2 < 0\end{cases} $$

其中,T_s表示SPWM周期,k表示调制波的时间。

电机转速
电机转速可以表示为:

$$ \omega_m=\frac{2\pi}{P}\frac{d\theta_r}{dt} $$

其中,P表示极对数,\theta_r表示转子位置。

二、核心程序

       在图中,SPWM为正弦波脉冲生成器子系统,如图2-2所示。W为调制波角频率给定输入,m为调制波幅值信号给定输入。功能函数Fcn、Fcn1、Fcn2用来生成正弦调制波信号,表达式如下。

Fcn: y=cos(u[1])*u[2]

Fcn1:y=cos(u[1]-2.0944)*u[2]

Fcn2:y=cos(u[1]+2.0944)*u[2]

function [sys,x0,str,ts]=sanjiaobowave2(t,x,u,flag,A,Freq)
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 1,
sys=mdlDerivatives(t,x,u);
 case 2,    
sys=mdlUpdate(t,x,u);
    case 3,
sys=mdlOutputs(t,x,u,A,Freq);
case 4,
sys=mdlGetTimeOfNextVarhit(t,x,u);
case 9,
sys=mdlTerminate(t,x,u);
otherwise
error(['Unhandled flag=',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes=simsizes;
sizes.NumContStates=0;
sizes.NumDiscStates=0;
sizes.NumOutputs=1;
sizes.NumInputs=1;
sizes.DirFeedthrough=1;
sizes.NumSampleTimes=1;   %只有一种采样时间
sys=simsizes(sizes);
x0=[];
str=[];
ts=[0 0];
function sys =mdlDerivatives(t,x,u)
sys =[ ];
function sys =mdlUpdate(t,x,u)
sys =[ ];
function sys =mdlOutputs(T,x,u,A,Freq)
T=1/Freq;
m=rem(u,T);
K=floor(u/T);
r=4*A*Freq;
c=T/2;
if ((m>=0)&&(m<c))
    sys=r*(u-(K+0.25)*T);
elseif((m>=c)&&(m<=T))
    sys=-[r*(u-(K+0.75)*T)];
else
    sys=A;
end
function sys=mdlGetTimeOfNextVarhit(t,x,u)
 sampletime =1;   %采样周期为一秒
sys=t+sampletime;
function sys =mdlTerminate(t,x,u)
sys=[];
%end mdlTerminate
UP2154

三、仿真结论

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/131484889