概述
目 录
摘要 I
第1章 绪论 1
1.1 课题研究背景 1
1.2直接转矩控制技术的发展现状 1
1.2.1直接转矩控制的现状及发展趋势 1
1.2.2目前的热点研究问题及解决方法 2
1.3本文研究的主要内容 3
第2章 直接转矩控制系统理论 4
2.1概述 4
2.2 异步电动机的数学模型 4
2.3 逆变器的数学模型与电压空间矢量 6
2.4直接转矩控制系统的组成 8
2.5 磁链调节 10
2.6 转矩调节 10
2.7 空间电压矢量对定子磁链和转矩的影响 11
2.7.1 空间电压矢量对定子磁链的影响 11
2.7.2空间电压矢量对电磁转矩的影响 13
第3章 直接转矩控制系统的MATLAB仿真 15
3.1异步电机及PWM控制模块仿真 15
3.2三相-两相变换(3/2变换) 16
3.3转速调节器(ASR) 17
3.4定子磁链的计算和转矩计算模块 18
3.5空间电压矢量的选择模块 18
第4章 仿真结果及分析 20
致谢 22
参考文献 23
1.3本文研究的主要内容
本文主要研究和设计了异步电动机按定子磁链控制的直接转矩控制系统。首先阐述了异步电动机直接转矩控制系统的基本原理。通过了解定子电压矢量对定子磁链与电磁转矩的控制作用,以及对定子磁链和转矩计算模型的学习,利用Matlab/Simulink搭建直接转矩控制系统仿真模型,对系统进行仿真,验证理论的正确性和可行性。
本文的主要内容如下:
第 1 章为绪论部分,阐述了电机调速技术的发展概况,以及直接转矩控制的发展现状,提出异步电机的直接转矩控制理论以及目前的热点研究问题。最后论述论文研究的内容。
第 2 章阐述了课题设计的主要思想和直接转矩控制系统的基本原理。本章首先给出了最后搭建的仿真模型,介绍了异步电动机的数学模型,逆变器的数学模型和电压空间矢量。然后再对直接转矩控制系统的各部分模块作了理论的描述和分析,说明了设计的理论依据。
第3章利用 Matlab软件的Simulink模块对直接转矩控制系统进行仿真,针对直接转矩控制系统的各个组成环节分别建立仿真模型,构建直接转矩控制系统。
第4章对仿真的结果进行分析,并对所搭建的直接转矩控制系统进行简单评价。
第2章 直接转矩控制系统理论
2.1概述
自从70年代矢量控制技术发展以来,交流传动技术就从理论上解决了交流调速系统在静、动态性能上与直流传动相媲美的问题。矢量控制技术模仿直流电动机的控制方法,以转子磁场定向,用矢量变换的方法,实现了对交流电动机的转速和磁链控制的完全控制。它的提出具有跨时代的意义。然而在实际应用中,由于转子磁链难于准确观测、系统特性受电动机参数的影响较大以及在模拟直流电动机过程中所用矢量旋转变化的复杂性,使得实际的控制效果难以达到理论分析的结果。直接转矩控制针对电动机的核心变量作直接控制。
直接转矩控制系统的基本思想是根据定子磁链幅值偏差的正负符号和电磁转矩偏差的正负符号,再依据当前定子磁链矢量所在的位置,直接选取合适的电压空间矢量,减小定子磁链幅值的偏差和电磁转矩的偏差,实现电磁转矩与定子磁链的控制。根据直接转矩控制系统原理搭建的MATLAB模型如图2.1所示。
图2.1 MATLAB中搭建的直接转矩控制系统仿真模型
接下来,本章将从异步电动机的数学模型入手,阐述直接转矩控制系统的基本原理,对系统各部分的结构设计进行介绍和分析。
%
%=============================================================================
% mdlOutputs
% Return the block outputs.
%=============================================================================
%
function sys=mdlOutputs(t,x,u)
if(u(1)==0&u(2)==0)sn=1;
else
a1=u(1);
b1=u(1)*(-0.5)-(sqrt(3)/2)*u(2);
c1=u(1)*(-0.5)+(sqrt(3)/2)*u(2);
if(a1>0)sa1=0;
else sa1=1;
end
if (b1>0)sb1=0;
else sb1=1;
end
if(c1>0)sc1=0;
else sc1=1;
end
sn=sa1+2*sb1+4*sc1;
end
% k=sqrt(u(1)*u(1)+u(2)*u(2));
%
%
% if(u(1)>0)
%
if((-k)<=u(2)<=(-k/2))sn=6;
%
elseif((-k/2)<u(2)<k/2)sn=1;
%
elseif(k/2<=u(2)<=k)sn=2;
%
end
% elseif(u(1)<0)
%
if(-k<u(2)<=(-k/2))sn=5;
%
elseif((-k/2)<u(2)<k/2)sn=4;
%
elseif(k/2<=u(2)<k)sn=3;
%
end
% elseif(u(1)==0)
%
if(u(2)>0)sn=2;
%
elseif(u(2)<0)sn=6;
%
end
%
else sn=1;
% end
% %
% % elseif(u(1)==0&u(2)>0)sn=2;
% % elseif(u(1)==0&u(2)<0)sn=5;
% %
else sn=1;
% if(u(1)>0&(-(sqrt(3)))<=(u(2)/u(1))<sqrt(3))sn=1;
% elseif(u(1)>0&(sqrt(3)<=(u(2)/u(1))))sn=2;
% elseif(u(1)>0&((u(2)/u(1))<(-sqrt(3))))sn=6;
%
% elseif(u(1)<0&((-sqrt(3))<=(u(2)/u(1))<sqrt(3)))sn=4;
% elseif(u(1)<0&((-sqrt(3))<=(u(2)/u(1))))sn=5;
% elseif(u(1)<0&((u(2)/u(1))<(-sqrt(3))))sn=3;
%
% elseif(u(1)==0&u(2)>0)sn=3;
% elseif(u(1)==0&u(2)<0)sn=6;
% elseif(u(1)==0&u(2)==0)sn=1;
%
% elseif(u(2)==0&u(1)>0)sn=1;
% elseif(u(2)==0&u(1)<0)sn=4;
% elseif(u(2)==0&u(1)==0)sn=4;
% end
sys=[sn]
%=============================================================================
% mdlGetTimeOfNextVarHit
% Return the time of the next hit for this block.
Note that the result is
% absolute time.
Note that this function is only used when you specify a
% variable discrete-time sample time [-2 0] in the sample time array in
% mdlInitializeSizes.
%=============================================================================
%
% end mdlGetTimeOfNextVarHit
最后
以上就是洁净香烟为你收集整理的基于matlab的异步(感应)电机直接转矩控制系统的全部内容,希望文章能够帮你解决基于matlab的异步(感应)电机直接转矩控制系统所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复