首页 > 编程知识 正文

matlab异步电机仿真教程,matlab异步电机建模

时间:2023-05-03 08:50:50 阅读:283144 作者:3297

众所周知,三相异步交流电动机的数学模型是一个高阶、非线性、强耦合的多变量系统,其动态和静态性能非常复杂,很难对转速和磁链进行高性能控制,所以,必须对电机模型进行解耦和优化,通过电机的坐标变换可以实现其模型的部分解耦。本文利用MATLAB/SIMULIK中的S-Function函数对基于两相静止坐标系下的异步交流电机进行建模,并给出仿真结果。一、以异步电机的数学模型在研究异步电机的多变量数学摸型时,常作如下的假设[1]:A.忽略空间谐波,设三相绕组对称(在空间上互差120电角度),所产生的磁动势沿气隙圆周按正弦规律分布:B.忽略磁路饱和,各绕组的自感和互感都是恒定的:C.忽略铁心损耗:D.不考虑频率和温度变化对绕组电阻的影响。在上述的假设下,为了解耦的目的,将三相坐标系变换到两相静止-坐标系下进行数学建模[2]。该模型状态方程为:(1)K=L2m-LLm式中:Lm定转子间互感U1,u1异步电机在,轴上定子电压分量;Lm,L定、转子自感:rr1,r2定、转子电阻:np极对数:D摩擦阻力距系数:J转动惯量:TL负载转矩。输出方程为:(2)模型中以定、转子电流(i1,i1,i2,i)和转子机械角速度作为状态变量,以定2r子端电压(u1,u1)和负载转矩TL作为输入变量,以定、转子电流(i1,i1,i2,i2)、转子机械角速度r和电磁转矩Te为输出变量。为转子角速度,所以电机的实际转r速:根据式(1)和(2)即可利用MATLAB中的S函数编写异步电机仿真模型,如图1所示[3]。使用时只需在Simulink中调用Sfunction模块,并将电机参数输入S函数即可。因此该电机仿真模型具有极强的通用性,且调用简单。图1异步电机坐标变换及仿真模块结构图二、异步电机的仿真模型基于matlab的异步电机系统仿真可以利用simulink模块搭建,但是,并非所有的数学模型都能利用模块轻易地搭建起来,有的模型更适合于matlab/simulink支持的S函数格式,用matlab语言或者C等语言格式来描述,构成S函数模块,像标淮的simulink模块直接调用。本文的方法是利用MATLAB/SIMULINK软件平台中提供了一个sfuntmpl.m的模板文件,利用这个模板文件进行修改,按自己的需要来构建自己的S-函数。根据matlab语言设计一个名为ac_motor2的S-函数,模型见图2。当仿真的时候,S-Funcction模块直接调用simulink中自己编写的ac_motor2.m文件,即可完成M文件所要求的运行功能。M文件的具体程序如下:function[sys,x0,str,ts]=ac_motor2(t,x,u,flag,Np,Lm,Lr,Ls,r1,r2,D,J)switchflag,case0,[sys,x0,str,ts]=mdlInitializeSizes;case1,sys=mdlDerivatives(t,x,u,Np,Lm,Lr,Ls,r1,r2,D,J);case2,sys=mdlUpdate(t,x,u);case3,Sys=mdlOutputs(t,x,u);case9,Sys=mdlTerminate(t,x,u);otherwiseerror(['Unhandledflag=',num2str(flag)]);endfunction[sys,x0,str,ts]=mdlInitializeSizessizes=simsizes;sizes.NumContStates=5;sizes.NumDiscStates=0;sizes.NumOutpu

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。