Matlab在自动控制中的应用.docx
- 文档编号:2853580
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:11
- 大小:89.71KB
Matlab在自动控制中的应用.docx
《Matlab在自动控制中的应用.docx》由会员分享,可在线阅读,更多相关《Matlab在自动控制中的应用.docx(11页珍藏版)》请在冰点文库上搜索。
Matlab在自动控制中的应用
MATLAB在控制理论中的应用
摘要:
为解决控制理论计算复杂问题,引入了MATLAB。
以经典控制理论和现代控制理论中遇到的一些问题为具体实例,通过对比的手法,说明了MATLAB在控制理论应用中能节省大量的计算工作量,提高解题效率。
引言:
现代控制理论是自动化专业一门重要的专业基础课程,内容抽象,且计算量大,难以理解,不易掌握。
采用MATLAB软件计算现代控制理论中的问题可以很好的解决这些问题。
自动控制理论分为经典控制理论和现代控制理论,在控制理论学习中,经常要进行大量的计算。
这些工作如果用传统方法完成,将显得效率不高,额误差较大。
因此。
引用一种借助于计算机的高级语言来代替传统方法就显得十分必要。
MATLAB集科学计算,可视化,程序设计于一体,对问题的描述与求解较为方便,在控制理论的学习中是一种备受欢迎的软件。
MATLAB简介:
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(MatrixLaboratory)的简称,和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
1、MATLAB在系统的传递函数和状态空间模型之间的相互转换的应用:
例1:
求以下状态空间模型所表示系统的传递函数:
解:
执行以下的M-文件:
>>A=[010;001;-5-25-5];
>>B=[0;25;-120];
>>C=[100];
>>D=[0];
>>[num,den]=ss2tf(A,B,C,D)
可得到结果:
num=00.000025.00005.0000
den=1.00005.000025.00005.0000
因此,所求系统的传递函数为G(S)=
2、使用MATLAB对状态空间模型进行分析。
给出系统的单位阶跃响应曲线。
解:
编写和执行以下的M-文件:
>>A=[-1-1;6.50];
>>B=[11;10];
>>C=[10;01];
>>D=[00;00];
>>step(A,B,C,D)
可以得到如图所示的四条单位阶跃响应曲线。
3、稳定化状态反馈控制器的设计。
例3:
针对系统
试采用线性矩阵不等式处理方法,设计一个稳定化状态反馈控制器。
解:
编制并执行以下的M-文件:
>>%输入状态方程系数矩阵
>>A=[01;-10];
>>B=[0;1];
>>%以命令setlmis开始描述一个线性矩阵不等式
>>setlmis([])
>>%定义线性矩阵不等式中的决策变量
>>X=lmivar(1,[21]);
>>Y=lmivar(2,[12]);
>>%依次描述所涉及的线性矩阵不等式
>>%1stLMI
>>%描述线性矩阵不等式中的项AX+XA'
>>lmiterm([111X],A,1,'S');
>>%描述线性矩阵不等式中的项-BY-Y'B'
>>lmiterm([111Y],B,-1,'S');
>>%2ndLMI
>>lmiterm([211X],-1,1);
>>%以命令getlmis结束线性矩阵不等式系统的描述,并命名为lmis
>>lmis=getlmis;
>>%调用线性矩阵不等式系统可行性问题的求解器feasp
>>[tmin,xfeas]=feasp(lmis);
>>%将得到的决策变量值化为矩阵型式
>>XX=dec2mat(lmis,xfeas,X);
>>YY=dec2mat(lmis,xfeas,Y);
>>K=YY*inv(XX)
可以得到K=
0.31250.9375
4、连续系统与采样系统之间的转换
例4:
系统传递函数为
输入延时T(d)=0.35秒,试用一阶保持法对连续系统进行离散,采样周期T(s)=0.1秒
MATLAB程序为:
sys=tf([2,5,1],[1,2,3],'td',0.5);
>>sysd=c2d(sys,0.1,'foh')
Transferfunction:
2.039z^2-3.616z+1.587
z^(-5)*---------------------------
z^2-1.792z+0.8187
Samplingtime:
0.1
例5、计算如图所示的系统传递函数:
MATLAB源程序为:
>>s1=tf([2,5,1],[1,2,3])
Transferfunction:
2s^2+5s+1
---------------
s^2+2s+3
>>s2=zpk(-2,-10,5)
Zero/pole/gain:
5(s+2)
-------
(s+10)
>>sys=feedback(s1,s2)
Zero/pole/gain:
0.18182(s+0.2192)(s+2.281)(s+10)
-----------------------------------
(s+3.419)(s^2+1.763s+1.064)
5、MATLAB在控制系统的根轨迹应用
例6、由连续函数:
H(s)=
试绘出其零极点和根轨迹图。
MATLAB源程序为:
>>num=[2,5,1];den=[1,2,3];sys=tf(num,den);
>>figure
(1);pzmap(sys);title
>>figure
(2);rlocus(sys);sgrid;title
6、MATLAB在控制系统中的频域分析应用
频域分析法主要包括三种方法:
Bode图、Nyquist曲线、Nichols图。
(1)、MATLAB绘制Nyquist曲线
例7、试绘制开环系统H(s)的Nyquist曲线,判断闭环系统的稳定性,并求出闭环系统的单位冲击响应。
其中H(s)=
MATLAB程序为:
>>k=50;z=[];p=[-5,2];
>>sys=zpk(z,p,k);
>>figure
(1);nyquist(sys);title;
>>figure
(2);sb=feedback(sys,1);
>>impulse(sb);title;
(2)、用MATLAB绘制Bode图
例8、G(s)=
的bode图如下:
利用num=[1020];den=[1023262310];
G=tf(num,den);输入传递函数模型
bode(G)绘制bode图
绘图如下:
这样利用matlab画出的图形较精确,我们也可以通过在图形上直接操作得出我们所需要的数据,这在应用上给我们带来了很大的方便
7、MATLAB在系统相似变换函数中的应用
(1)、通用相似变换函数ss2ss()。
(2)变为规范形式的函数。
(3)、系统分解为可控和不可控两部分的函数。
(4)、系统分为可观和不可观两部分函数。
例9、设系统的状态空间方程为
x+
uy=
x将其作可控性结构分解。
MATLAB源程序为:
>>A=[-2,2,-1;0,-2,0;1,4,3];B=[0;0;1];C=[1,-1,1];D=0;
>>s1=ss(A,B,C,D);
>>[Abar,Bbar,Cbar,T,k]=ctrbf(A,B,C)
Abar=
-200
-2-2-1
-413
Bbar=
0
0
-1
Cbar=-1-1-1
T=010
-100
00-1
k=110
>>rA=rank(A)
rA=3
>>rc=sum(k)
rc=2
结束语:
以上是针对MATLAB在现代控制理论中的几个典型应用进行的举例分析,在《自动控制理论中》引入MATLAB编程软件,这种计算机语言生动形象,能帮助我们更好地理解抽象的理论知识,有助于在实践中的应用。
当然MATLAB的应用远不止这么多,任何涉及到矩阵计算的问题都可以应用MATLAB来简化计算过程。
参考文献:
[1]余立.现代控制理论.北京:
清华大学出版社.2007
[2]胡寿松.自动控制原理.北京:
科学出版社.2006
[3]李春泉.基于MATLAB的现代控制理论的教学改革.大学时代.2006年11期
(注:
文档可能无法思考全面,请浏览后下载,供参考。
可复制、编制,期待你的好评与关注)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 自动控制 中的 应用
![提示](https://static.bingdoc.com/images/bang_tan.gif)