Matlab在自动控制中的应用

Matlab在自动控制中的应用
Matlab在自动控制中的应用

MATLAB 在控制理论中的应用

摘要:为解决控制理论计算复杂问题,引入了MATLAB 。以经典控制理

论和现代控制理论中遇到的一些问题为具体实例,通过对比的手法,说明了MATLAB 在控制理论应用中能节省大量的计算工作量,提高解题效率。

引言:现代控制理论是自动化专业一门重要的专业基础课程,内容抽象,

且计算量大,难以理解,不易掌握。采用MATLAB 软件计算现代控制理论中的问题可以很好的解决这些问题。自动控制理论分为经典控制理论和现代控制理论,在控制理论学习中,经常要进行大量的计算。这些工作如果用传统方法完成,将显得效率不高,额误差较大。因此。引用一种借助于计算机的高级语言来代替传统方法就显得十分必要。MATLAB 集科学计算,可视化,程序设计于一体,对问题的描述与求解较为方便,在控制理论的学习中是一种备受欢迎的软件。

MATLAB 简介:MATLAB 是美国MathWorks 公司出品的商业数学软件,

用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB 和Simulink 两大部分。

MATLAB 是矩阵实验室(Matrix Laboratory )的简称,和Mathematica 、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

1、MATLAB 在系统的传递函数和状态空间模型之间的相互转换的应用:例1:求以下状态空间模型所表示系统的传递函数:

解:执行以下的M-文件: >> A=[0 1 0;0 0 1;-5 -25 -5]; >> B=[0;25;-120]; >> C=[1 0 0]; >> D=[0];

>> [num,den]=ss2tf(A,B,C,D) 可得到结果:

num =0 0.0000 25.0000 5.0000 den =1.0000 5.0000 25.0000 5.0000 因此,所求系统的传递函数为G(S)=

5

2555

2523++++s s s s

2、 使用MATLAB 对状态空间模型进行分析。

给出系统的单位阶跃响应曲线。 解:编写和执行以下的M-文件: >> A=[-1 -1;6.5 0]; >> B=[1 1;1 0]; >> C=[1 0;0 1]; >> D=[0 0;0 0]; >> step(A,B,C,D)

可以得到如图所示的四条单位阶跃响应曲线。

-0.4-0.200.2

0.4From: In(1)

T o : O u t (1)

0.511.52T o : O u t (2

)

From: In(2)

Step Response

Time (sec)

A m p l i t u d e

3 、稳定化状态反馈控制器的设计。

例3:针对系统

试采用线性矩阵不等式处理方法,设计一个稳定化状态反馈控制器。

解:编制并执行以下的M-文件:

>> %输入状态方程系数矩阵 >> A=[0 1;-1 0]; >> B=[0;1];

>> %以命令setlmis 开始描述一个线性矩阵不等式 >> setlmis([])

>> %定义线性矩阵不等式中的决策变量 >> X=lmivar(1,[2 1]); >> Y=lmivar(2,[1 2]);

>> %依次描述所涉及的线性矩阵不等式 >> %1st LMI

>> %描述线性矩阵不等式中的项AX+XA' >> lmiterm([1 1 1 X],A,1,'S'); >> %描述线性矩阵不等式中的项-BY-Y'B' >> lmiterm([1 1 1 Y],B,-1,'S'); >> %2nd LMI

>> lmiterm([2 1 1 X],-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.3125 0.9375

4、连续系统与采样系统之间的转换

例4:系统传递函数为3

21

5222++++s s s s

输入延时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')

Transfer function:

2.039 z^2 -

3.616 z + 1.587 z^(-5) * --------------------------- z^2 - 1.792 z + 0.8187

Sampling time: 0.1

例5、计算如图所示的系统传递函数:

MATLAB 源程序为:

>> s1=tf([2,5,1],[1,2,3])

Transfer function: 2 s^2 + 5 s + 1 --------------- s^2 + 2 s + 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)= 3

21

5222++++s s s s 试绘出其零极点和根轨迹图。

MATLAB 源程序为:

>> num=[2,5,1];den=[1,2,3];sys=tf(num,den); >> figure(1);pzmap(sys);title

-2.5

-2-1.5

-1-0.50

-1.5-1

-0.5

0.5

1

1.5

P ole-Zero Map

Real Axis

I m a g i n a r y A x i s

>> figure(2);rlocus(sys);sgrid;title

-2.5

-2

-1.5

-1

-0.5

-1.5-1

-0.5

0.5

1

1.5

Root Locus

Real Axis

I m a g i n a r y A x i s

6、MATLAB 在控制系统中的频域分析应用

频域分析法主要包括三种方法:

Bode 图、Nyquist 曲线、Nichols 图。

(1)、MATLAB 绘制Nyquist 曲线

例7、试绘制开环系统H(s)的Nyquist 曲线,判断闭环系统的稳定性,并求出闭环系统的单位冲击响应。其中 H (s )=

)

2)(5(50

-+s s

MATLAB 程序为:

>> k=50;z=[];p=[-5,2]; >> sys=zpk(z,p,k);

>> figure(1);nyquist(sys);title;

-1.5-1

-0.5

0.5

1

1.5

Nyquist Diagram

Real Axis

I m a g i n a r y A x i s

>> figure(2);sb=feedback(sys,1); >> impulse(sb);title;

-3

-2-10123

456Impulse Response

Time (sec)

A m p l i t u d e

(2)、用MATLAB 绘制Bode 图

例8、G(s)=

10

s 23 s^2 26 s^3 23 s^4 1020

s 10+++++的bode 图如下:

利用num=[10 20];den=[10 23 26 23 10]; G=tf(num,den); 输入传递函数模型 bode(G) 绘制bode 图 绘图如下:

-270

-180

-90

P h a s e (d e g )

-60

-40

-20

20

M a g n it u d e (d B )

这样利用matlab 出我们所需要的数据,这在应用上给我们带来了很大的方便

7、MATLAB 在系统相似变换函数中的应用

(1)、通用相似变换函数ss2ss ()。(2)变为规范形式的函数。(3)、系

统分解为可控和不可控两部分的函数。(4)、系统分为可观和不可观两部分函数。

例9、设系统的状态空间方程为??????????---341020122x+ ????

?

?????-111u y= []111-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 =

-2 0 0 -2 -2 -1 -4 1 3 Bbar = 0 0 -1

Cbar = -1 -1 -1 T = 0 1 0 -1 0 0 0 0 -1 k = 1 1 0 >> rA=rank(A) rA = 3

>> rc=sum(k) rc = 2

结束语:以上是针对MATLAB 在现代控制理论中的几个典型应用进行的举例分析,在

《自动控制理论中》引入MATLAB 编程软件,这种计算机语言生动形象,能帮助我们更好地理解抽象的理论知识,有助于在实践中的应用。当然MATLAB 的应用远不止这么多,任何涉及到矩阵计算的问题都可以应用MATLAB 来简化计算过程。

参考文献:

[1] 余立.现代控制理论.北京:清华大学出版社.2007 [2] 胡寿松.自动控制原理.北京:科学出版社.2006

[3] 李春泉.基于MATLAB 的现代控制理论的教学改革.大学时代.2006年11期

(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注)

相关主题
相关文档
最新文档