三相感应电机的建模仿真(2)基于ABC相坐标系S-Fun的仿真模型

  1. 概述

  2. 三相感应电动机状态方程式

  3. 基于S-Function的仿真模型建立

  4. 瞬态分析实例

  5. 总结

  6. 参考文献

1. 概述

前面建立的三相感应电机在ABC相坐标系下的数学模型是一组周期性变系数微分方程(其电感矩阵是转子位置角的函数,转子位置角随时间按正弦规律变化),依目前的数值计算和计算机水平求解这组方程已完全没有问题。自然坐标系下的三相感应电机数学模型,将其用于电机控制系统的设计和控制策略的分析定制也许不太合适,有点勉为其难。而将其用于理解电机的基本物理原理和数学特性,设计更高效的电机和优化算法;对分析三相感应电机的启动、运行和制动等状态,深入理解电机的工作原理和学生工程师的教育培训;提供电机的故障诊断和分析的详细信息;用于电机与机械系统的耦合分析等也许是非常合适的。

电机的数学模型具有多样性,而根据数学模型建立的仿真模型更具多样性 ,因为同一个数学模型可以建立起对应的多个仿真模型。本文将根据前面所建立的三相感应电机在ABC相坐标系下的数学模型,用Matlab的动态分析工具Simulink建立基于S函数的仿真模型,这个仿真模型只对磁链方程和电磁转矩方程建立S函数,而电压方程和机械运动方程仍然用Simulink的基本功能模块建立,这样更方便对三相感应电机的某些运行状态或动态行为进行仿真。用建立的仿真模型对三相感应电动机在三相对称电源下直接起动和在不对称三相电源下直接起动的起动过程进行仿真分析。

2. 三相感应电动机相坐标系下的状态方程式

为阅读方便,将前面建立的三相感应电动机在ABC相坐标系下的状态方程式罗列如下:

(1)

(1)式中,

:定子绕组互感;:转子绕组互感;:定子绕组漏感;

:折算到定子绕组的转子绕组漏电感;:定转子绕组间的互感;

:定子A相绕组与转子a相绕组之间的夹角。

也可以将式(1)中的电压方程式写成以下矩阵形式:

(2)

方程(2)中,

设定、转子零序电流等于零,即设 ,则有

(3)

3. 基于S-Function的仿真模型

根据以上数学模型,用Simulink建立的ABC相坐标系下的三相感应电动机仿真模型如图1和图2所示,其中,左边图形为最后的封装形式,它由三个子系统所组成,如右边图形所示。图1中的子系统1表示的是定转子电压方程,子系统2是用S函数表示的磁链方程和电磁转矩方程,S函数取名为flux_torque,如图2所示,子系统3表示的是进行运动方程。这个仿真模型可以作为通用的仿真模型使用,可以用于为了三相感应电动机电源电压不对称、定转子绕组回路串电阻或电抗、起动、调速以及绕组开路故障等的动态行为的仿真分析。如果要考虑主磁路饱和因素,可以在S函数中加以补充。如果要对三相感应电机的定子绕组故障(一相开路,两相短路等)、定子绕组回路串电阻(电抗)起动以及转子绕组回路串电阻起动等可以在子系统1中进行修改来达到仿真的目的。如果要对转子的转动惯量对电机运行性能的影响进行仿真分析,可以修改子系统3来进行。S函数的程序代码如下:

图1. 三相感应电动机ABC相坐标数学模型

图2. 图1中子系统2的S-Fun(磁链和电磁转矩方程)模块

Matlab 复制代码
% This S function corresponds to the ABC phase coordinate 
% mathematical model of a three-phase induction motor

function [sys,x0,str,ts,simStateCompliance] =flux_torque(t,x,u,flag,Lsl,Lrl,Lm,np)
%==========================================================================
switch flag
  case 0
    [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
  case 1
    sys=mdlDerivatives(t,x,u);
  case 2
    sys=mdlUpdate(t,x,u);
  case 3
    sys=mdlOutputs(t,x,u,Lsl,Lrl,Lm,np);
  case 4
    sys=mdlGetTimeOfNextVarHit(t,x,u);
  case 9
    sys=mdlTerminate(t,x,u);
  otherwise
    DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
end
%==========================================================================
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 7;
sizes.NumInputs      = 7;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;   % at least one sample time is needed
sys = simsizes(sizes);
x0  = zeros(0,0);
str = [];
ts  = [0 0];
simStateCompliance = 'UnknownSimState';
%==========================================================================
function sys=mdlDerivatives(t,x,u)
sys  = [];

%==========================================================================
function sys=mdlUpdate(t,x,u)
sys = [];
%==========================================================================
function sys=mdlOutputs(t,x,u,Lsl,Lrl,Lm,np)
% Write inductance matrix for magnetic flux equation
ang=2/3*pi;
Lml=2/3*Lm;
Ls=Lsl+Lml;
Lr=Lrl+Lml;

% Stator inductance matrix
Lss=[Ls -Lml/2 -Lml/2;
    -Lml/2  Ls -Lml/2;
    -Lml/2 -Lml/2  Ls];


% Rotor inductance matrix
Lrr=[Lr -Lml/2 -Lml/2;
    -Lml/2  Lr -Lml/2;
    -Lml/2 -Lml/2  Lr];


% Matrix of mutual inductance between stator and rotor
Lsr=Lml*[cos(u(1)),cos(u(1)+ang),cos(u(1)-ang);
         cos(u(1)-ang),cos(u(1)),cos(u(1)+ang);
         cos(u(1)+ang),cos(u(1)-ang),cos(u(1))];


% Total inductance matrix
L=[Lss Lsr; Lsr' Lrr];


%The derivative of the total inductance matrix with respect to the rotor position angle
dLsrdtheta=Lml*[-sin(u(1)), -sin(u(1)+ang),-sin(u(1)-ang);
                -sin(u(1)-ang),-sin(u(1)), -sin(u(1)+ang);
                -sin(u(1)+ang),-sin(u(1)-ang),-sin(u(1))];

dLdtheta =[zeros(3,3) dLsrdtheta;dLsrdtheta' zeros(3,3)];


% Current state variable
Psi=[u(2);u(3);u(4);u(5);u(6);u(7)];
I=L\(Psi);


% Electromagnetic torque
Te=I'*dLdtheta*I*np;
sys=[I(1);I(2);I(3);I(4);I(5);I(6);Te];

%==========================================================================
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 1;    %  Example, set the next hit to be one second later.
sys = t + sampleTime;
%==========================================================================
function sys=mdlTerminate(t,x,u)
sys = [];
% end mdlTerminate

4. 瞬态分析实例

仿真计算用的电机参数如下:额定电压Un=220v,额定频率fn=50Hz,极对数np=2,转动惯量J=0.01,摩擦阻尼系数Bm=0.0006,定子电阻Rs=6.033欧,定子电感Lss=0.29614H,转子电阻Rr=4.467欧,转子电感Lrr=0.29614H,定子绕组互感Ms=0.1363H,转子绕组互感Mr=0.1363H,定转子绕组互感Msr=0.2726H;负载转矩TL=7.5N.m。

4.1 对称电源直接起动

在三相额定对称电压下带恒转矩负载TL=7.5N.m直接起动,起动过程的仿真结果图3所示。

设Y接三相对称电源电压为

图3. 三相感应电动机在三相对称电源电压下直接起动时的定子电流特性

图4. 三相感应电动机三相对称电源电压下直接起动时的电磁转矩和转速特性

从图3和图4的仿真结果来看,三相对称定子绕组感应电动机在三相对称电源下起动并稳定运行,起动电流倍数约为5.56,定子稳态电流幅值为3.6A,三相定子电流平衡。电机稳定运行时,电磁转矩无脉振现象,转速为1467r/min。

4.2 非对称电源直接起动

三相感应电动机在不对称电源电压下运行是实际中经常遇到的一个问题,因为当电网中有较大的单相负载(如电炉﹑电焊机等),或者电网中发生暂时性短路故障(两相短路﹑一相接地等),或电网一相断开等都将引起电网三相电压不平衡。

在电动机带恒转矩负载TL=7.5N.m,定子绕组端直接施加三相不对称电压:

直接起动时的仿真结果如图5和图6所示。

图5. 三相感应电动机在非对称三相电源电压下直接起动时的定子电流特性

图6. 三相感应电动机在非对称三相电源电压下直接起动时的转矩和转速特性

从图5和图6的仿真结果可见,三相对称定子绕组感应电动机在三相不对称电源下起动并稳定运行,起动时定子各相的冲击电流(起动过程中的最大电流幅值)与图3的定子电流相比较相差不大,但稳态时电机三相定子电流不平衡,A相电流幅值大为减小(约为0.5A),而另外两相电流幅值都有所增加(约为4.5A)。这种三相定子电流不平衡的程度会随三相电源电压的不平衡程度的增加而增加。电机稳定运行时,电磁转矩波形有明显的二倍频脉振现象,转速也有明显的波动(振动)。起动过程有所延长,稳定转速的数值也略有降低。

从上面的结果可以对称结论:三相电源电压不对称时,电动机的平均起动转矩较小,转速的过渡过程较长,电机的过载能力降低(转矩最大值有所减小);由于电流的波动加剧,使转矩的脉振程度增加,这将会加大电机的电磁噪声和机械振动。用瞬时对称分量法来分析,可知三相感应电动机在电源电压不对称情况下运行时的各不利因素,都是由于负序磁场分量造成的(负序磁场分量的存在还会增加电机的铁耗)。不对称程度增大时,负序磁场分量值变大,上述不利情形将会更为严重。因此,三相异步电动机一般不容许在较严重不对称电源电压下运行,否则必须相应地降低电动机的容量。

对三相感应电动机在电源电压不对称情况下运行的瞬态和稳态过程进行仿真,仿真的结果可以作为电机以及系统控制﹑调节﹑保护装置设计的直接理论依据,对完善电机及其系统的运行性能有实际意义。

5. 总结

本文根据三相感应电机在ABC相坐标系下的数学模型建立了基于S函数的仿真模型,然后应用这个仿真模型对 三相感应电动机在三相对称电源和不对称电源两种情况下的直接起动过程进行了仿真分析。得出了有用的分析结论。

  1. 参考文献

(1)黄守道,邓建国,罗德荣. 电机瞬态过程分析德Matlab建模仿真 北京 电子工业出版社,2013

(2)汤蕴璆等 交流电机动态分析. 北京 机械工业出版社 2004

相关推荐
passer__jw7671 小时前
【LeetCode】【算法】3. 无重复字符的最长子串
算法·leetcode
passer__jw7671 小时前
【LeetCode】【算法】21. 合并两个有序链表
算法·leetcode·链表
sweetheart7-71 小时前
LeetCode22. 括号生成(2024冬季每日一题 2)
算法·深度优先·力扣·dfs·左右括号匹配
景鹤4 小时前
【算法】递归+回溯+剪枝:78.子集
算法·机器学习·剪枝
_OLi_4 小时前
力扣 LeetCode 704. 二分查找(Day1:数组)
算法·leetcode·职场和发展
丶Darling.4 小时前
Day40 | 动态规划 :完全背包应用 组合总和IV(类比爬楼梯)
c++·算法·动态规划·记忆化搜索·回溯
风影小子5 小时前
IO作业5
算法
奶味少女酱~5 小时前
常用的c++特性-->day02
开发语言·c++·算法
passer__jw7675 小时前
【LeetCode】【算法】11. 盛最多水的容器
算法·leetcode
诸葛悠闲5 小时前
C++ 面试问题集合
算法