控制系统特性分析的MATLAB的实现_第1页
控制系统特性分析的MATLAB的实现_第2页
控制系统特性分析的MATLAB的实现_第3页
控制系统特性分析的MATLAB的实现_第4页
控制系统特性分析的MATLAB的实现_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章控制系统特性分析的MATLAB的实现

3.1控制系统稳定性分析的MATLAB实现

一.直接求根判定系统稳定性求解控制系统闭环特征方程的根并判断所有根的实部是否小于零,在MATLAB里这是很容易用函数roots()实现的。【例3.1】已知系统开环传递函数为:,试判别系统的稳定性。【解】根据题意,利用roots()函数给出以下MATLAB程序段:

k=100;z=[-2];p=[0,-1,-20];[n1,d1]=zp2tf(z,p,k);

G=tf(n1,d1);

p=n1+d1;

roots(p)

%运行结果:n1=[00100200],d1=[121200];

%运行结果:Transferfunction:100s+200-------------------s^3+21s^2+20s

%运行结果:p=[121120200]ans=

-12.8990-5.0000-3.1010

【解】根据题意,利用roots()函数给出以下MATLAB程序段:【例3.2】已知系统的动态结构图如图3.1-1所示,试对系统闭环判别其稳定性。图3.1-1n1=[10];d1=[110];s1=tf(n1,d1);

n1=[20];d1=[01];s2=tf(n1,d1);s12=feedback(s1,s2);

%运行结果:Transferfunction:

10

------s^2+s

%运行结果:Transferfunction:2s

%运行结果:Transferfunction:

10----------s^2+21s

n3=[11];d3=[10];s3=tf(n3,d3);

sys1=s12*s3;

sys=feedback(sys1,1)

roots(sys.den{1})

%运行结果:Transferfunction:s+1-----s%运行结果:Transferfunction:10s+10------------s^3+21s^2%运行结果:Transferfunction:

10s+10------------------------s^3+21s^2+10s+10ans=

-20.5368-0.2316+0.6582i-0.2316-0.6582i补充知识:MATLAB基础Ⅱ

一.M文件

所谓M文件,就是用户把要实现的命令写在一个以.m为扩展名的文件中。与在命令窗口中输入命令行方式比,M文件的有的是可调试、可重复使用。M文件分为程序文件与函数(function)文件两大类。1.M程序文件

在MATLAB桌面建立新的M文件或打开已经建立好的M文件(点击桌面操作环境画面中File→New→mFile或File→Open→所需文件)等操作,或直接在命令窗口键入“edit”,或直接点击图标,都能进入图3.1-2所示的MATLAB编辑和调试操作环境的窗口画面。图3.1-2MATLAB编辑和调试操作环境的窗口画面如【例3.2】可以用M文件方式建立,文件名为:zhang3L2.m

2.函数式M文件

在函数文件的第一行必须是以关键字“function”开始的函数说明语句。下面是一个只有两行的函数文件的例子。

Functionc=myfile(a,b)C=sqrt((a^2)+(b^2));>>a=3;>>b=4;>>c=myfile(a,b);c=5>>二.MATLAB控制系统工具箱函数

1.主要模型建立函数表

举例:

feedback函数功能:两个系统的反馈连接格式:[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2);[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign);[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,inp1,out1);[num,den]=feedback(num1,den1,num2,den2);[num,den]=feedback(num1,den1,num2,den2,sign);[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign)可将两个系统按反馈方式连接,系统1的所有输出连接到系统2的输入,系统2的所有输出连接到系统1的输入;sign是用于反馈连接的符号,默认为负号。[num,den]=feedback(num1,den1,num2,den2,sign);用于传递函数形式所表示的系统,sign是用于反馈连接的符号,默认为负号。[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,inp1,out1)将系统1的指定输出(out1)连接到系统2的输入,系统2的输出连接到系统1的指定输入(inp1),以次构成闭环系统,如图所示。在【例3.2】就用到了该函数。

2.主要模型变换函数表

3.主要模型特性函数表

4.主要时域响应函数表

《线控》例2-11已知系统矩阵,输入矩阵,,且,单输入u(t)为单位阶跃函数,试求系统的状态响应和输出响应。解:直接用MATLAB的lsim命令求解A=[01;-2-3];B=[01]';C=[10];D=0;x0=[00.5];[y,x]=lsim(A,B,C,D,1+t*0,t,x0);plot(x);5.主要频域响应函数表

6.主要的根轨迹函数表

二.用根轨迹法判断系统稳定性及其举例【例3.3】已知一个单位负反馈系统开环传递函数为G(s),试在系统闭环的根轨迹图上选择一点,求出该点的增益k及其系统的闭环极点位置,并判断在该点系统闭环的稳定性。【解】根据题目要求,调用函数命令rlocfind()的程序如下:num=[13];den=conv(conv(conv([10],[15]),[16]),[122]);sys=tf(num,den);rlocus(sys)

%运行结果:den=1135482600

%运行结果:Transferfunction:

s+3--------------------------------------------------s^5+13s^4+54s^3+82s^2+60s图3.1-2[k,poles]=rlocfind(sys)

selected_point=-0.6498-0.0585ik=7.2349poles=-5.8248-5.2067-0.6585+0.8155i-0.6585-0.8155i-0.6514

Selectapointinthegraphicswindow求给定一组根的系统根轨迹增益函数rlocfind()

函数命令调用格式:[k,poles]=rlocfind(sys)函数命令使用说明:【例3.4】续【例3.3】,试计算当k在33—37范围内时系统的闭环极点位置,并判断系统闭环的稳定性。【解】根据题目要求,用函数命令编写MATLAB程序如下:num=[13];den=conv(conv(conv([10],[15]),[16]),[122]);cpole=rlocus(num,den,[33:1:37]);

%运行结果:cpole=Columns1through4

-5.5745+0.6697i-5.5745-0.6697i-1.7990-0.0260+1.3210i-5.5768+0.6850i-5.5768-0.6850i-1.8154-0.0155+1.3340i-5.5791+0.7001i-5.5791-0.7001i-1.8313-0.0052+1.3467i-5.5815+0.7147i-5.5815-0.7147i-1.84660.0048+1.3591i-5.5838+0.7291i-5.5838-0.7291i-1.86150.0146+1.3712i

Column5

-0.0260-1.3210i-0.0155-1.3340i-0.0052-1.3467i0.0048-1.3591i0.0146-1.3712irange=[33:1:37]';[range,cpole]ans=

Columns1through4

33.0000-5.5745+0.6697i-5.5745-0.6697i-1.799034.0000-5.5768+0.6850i-5.5768-0.6850i-1.815435.0000-5.5791+0.7001i-5.5791-0.7001i-1.831336.0000-5.5815+0.7147i-5.5815-0.7147i-1.846637.0000-5.5838+0.7291i-5.5838-0.7291i-1.8615

Columns5through6

-0.0260+1.3210i-0.0260-1.3210i-0.0155+1.3340i-0.0155-1.3340i-0.0052+1.3467i-0.0052-1.3467i0.0048+1.3591i0.0048-1.3591i0.0146+1.3712i0.0146-1.3712i求系统根轨迹的函数rlocus()

函数命令调用格式:[r,k]=rlocus(a,b,c,d)[r,k]=rlocus(sys)函数命令使用说明:rlocus()函数命令用来绘制SISO系统的根轨迹图。给定前向通道传递函数G(s),反馈补偿为k*F(s)的受控对象,其闭环传递函数为:可以用以下程序来校核当k=35与k=36时闭环系统的阶跃给定响应曲线:n1=[13];d1=conv(conv(conv([10],[15]),[16]),[122]);fork=35:36n=k*n1;s1=tf(n,d1);G=feedback(s1,1);step(G);holdonendgtext('k=35'),gtext('k=36')图3.1-.3求连续系统单位阶跃响应的函数step()

函数命令调用格式如下:step(sys)

三.用Bode图法判断系统稳定性及其举例【例3.5】已知两个单位负反馈系统开环传递函数分别为:用Bode图法判断系统闭环的稳定性。【解】根据要求,对第一个系统用margin()函数命令给出如下程序:num=[0002.7];den=[1540];s1=tf(num,den);[Gm,Pm,Wcp,Wcg]=margin(s1)Gm=7.4074Pm=51.7320Wcp=2Wcg=0.5783margin(s1)

图3.1-4求系统幅值裕度与相位裕度的函数margin()函数命令调用格式:[Gm,Pm,Wcp,Wcg]=margin(sys)margin(sys)同样对第二个系统给出程序如下:n2=[0002.7];d2=[15-40];s2=tf(n2,d2);margin(s2)[Gm,Pm,Wcp,Wcg]=margin(s2)

Gm=1Pm=0

图3.1-5四.李雅普诺夫(Lyapunov)稳定性判据

[定理4.8]线性系统渐进稳定的判别方法设线性定常连续系统为则平衡状态为大范围渐进稳定的充要条件是:对任意给定的一个正定实对称矩阵Q,比必存在一个正定的实对称矩阵P,且满足李雅普诺夫方程

复习:《现代控制理论》并且是系统的李雅普诺夫函数。在《线代控制理论》的理论计算中,要判系统(3.1-1)是否稳定,需要做以下工作:①由式(3.1-4)求P,并验证P是正定的;②由式(3.1-3)求V(x),并判验证V(x)是正定的;③结论:系统是稳定的。在MATLAB中,Lyapunov方程(3.1-2)可以由控制系统工具箱中提供的lyap()函数求解,该函数的调用格式:

V=lyap(A,W)。[例3.6]已知系统的状态方程为:试分析系统的稳定性。3.2控制系统稳态误差分析的MATLAB实现

一.控制系统稳态误差分析的有关概念

2.自动控制系统的型别

3.控制系统的稳态误差系数

1.稳态误差ess(2)稳态速度误差系数kv(3)稳态加速度误差系数ka(1)稳态位置误差系数kp

二.控制系统稳态误差计算举例【例3.7】已知一个单位负反馈系统开环零极点增益模型为:试绘制出该系统的单位斜坡响应曲线并求单位斜坡响应稳态误差。【解】(1)对系统判稳程序:k=6;z=-0.5;p=[-210];[n1,d1]=zp2tf(z,p,k);s=tf(n1,d1);

sys=feedback(s,1);roots(sys.den{1})

%运行结果:

n1=0063d1=11-20%运行结果:

Transferfunction:6s+3---------------s^3+s^2-2s%Transferfunction:

6s+3

-------------------s^3+s^2+4s+3ans=

-0.1084+1.9541i-0.1084-1.9541i-0.7832

(2)求系统单位阶跃给定响应与稳态误差程序:k=6;z=-0.5;p=[-210];[n1,d1]=zp2tf(z,p,k);s=tf(n1,d1);sys=feedback(s,1);step(sys);t=[0:0.1:30]';y=step(sys,t);subplot(121),plot(t,y),grid;

subplot(122),ess=1-y;

plot(t,ess),grid

图4.6系统阶跃响应与阶跃误差响应曲线ess(length(ess))

ans=-0.0322%运行结果:y=00.0294::1.02241.0322求单位阶跃响应的稳态误差函数esst()

esst()函数的调用格式为:[ess]=esst(sys,t)%MATLABPROGRAMesst.m

function

[ess]=esst(sys,t)

y=step(sys,t);subplot(121),plot(t,y),gridsubplot(122),es=1-y;plot(t,es),gridess=es(length(es))如果运行以下调用esst.m函数的程序,会得到同样的结果。k=6;z=-0.5;p=[-210];[n1,d1]=zp2tf(z,p,k);s=tf(n1,d1);sys=feedback(s,1);t=[0:0.1:30]'[ess]=esst(sys,t);ans=-0.03223.3用MATLAB分析系统能控能观测性的方法

一.能控能观性判别

系统能控系统能观测利用这两个函数很容易判定系统的能控性和能观测性。

[例3.9]选自《现代控制理论》已知系统的状态空间表达式为:用MATLAB函数分析系统能控性与能观测性。MATLAB中,提供了可将连续或离散系统状态空间表达式化为对角线或约旦标准型的jordan()函数,该函数的格式为:

[v,j]=jordan(A)。

[例3.10]已知系统的状态空间表达式为:用MATLAB函数将系统化为对角线或约旦标准型,并分析系统能控性与能观测性。[例3.11]已知系统的状态空间表达式为:用MATLAB函数将系统化为对角线或约旦标准型,并分析系统能控性与能观测性。二.系统的结构分解

复习:定理[3.15]设一个不能控系统的状态方程为:能控子空间

不能控子空间

MATLAB中,提供了将系统进行能控与不能控分解的函数ctrbf(),该函数的调研格式为:[AB,BB,CB,T,K]=ctrbf(A,B,C)同样,设一个不能观测系统的状态方程为:能观测子空间

不能观测子空间

MATLAB中,提供了将系统进行能观测与不能观测分解的函数obsvf(),该函数的调研格式为:[AB,BB,CB,T,K]=obsvf(A,B,C)[例3.12]已

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论