slide1
Download
Skip this Video
Download Presentation
第 六 章

Loading in 2 Seconds...

play fullscreen
1 / 56

第 六 章 - PowerPoint PPT Presentation


  • 96 Views
  • Uploaded on

第 六 章. MATLAB 在控制系统中的应用. §6 .1 控制系统的数学描述与建模. 一、微分方程 常微分方程是控制系统模型的基础。 MATLAB 提供了两个求解微分方程数值解的函数,龙格 — 库塔法 ode23 、 ode45 (采用 2 阶和 4 阶龙格 — 库塔公式)。 例:电路图如图所示, R=1.4 Ω,L=2H,C=0.32F 。初始状态:电感电流为零,电容电压为 0.5V 。 t=0 时接入 1V 的电压。求 0<t<15s 时 i(t) 和 v(t) 的值,并且画出电流和电容电压的关系曲线。 根据电流定律有:.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 第 六 章' - odessa


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

第 六 章

MATLAB在控制系统中的应用

slide2
§6.1 控制系统的数学描述与建模

一、微分方程

常微分方程是控制系统模型的基础。MATLAB提供了两个求解微分方程数值解的函数,龙格—库塔法ode23、ode45(采用2阶和4阶龙格—库塔公式)。

例:电路图如图所示,R=1.4Ω,L=2H,C=0.32F。初始状态:电感电流为零,电容电压为0.5V。t=0时接入1V的电压。求0<t<15s时i(t)和v(t)的值,并且画出电流和电容电压的关系曲线。

根据电流定律有:

1.4 Ω

2H

令: x1=v0, x2=i

得:

0.32F

Vs=1V

slide3

方程的M文件定义如下:

ELECTSYS.M

function xdot=electsys(t,x)

v=1; R=1.4; L=2; C=0.32;

xdot=[x(2)/C;1/L*(V-x(1)-R*x(2))];

下面的M文件使用ode23对系统进行仿真。

SIMU.M

t0=0;

tfinal=15; %时间间隔为0~15

x0=[0.5,0]; %初始化

tol=0.001; %精度

trace=0 %若非零则打印出每一步的计算值

[t,x]=ode23(\'electsys\',t0,tfinal,x0,tol,trace);

subplot(211)

slide4

plot(t,x)

title(\'Time Response of a RLC series ciruit\');

xlabel(\'Time-sec\');

text(8,1.05,\'Capatitor Voltage\');

text(8,0.05,\'current\');

vc=x(:,1);

i=x(:,2);

subplot(212);

plot(vc,i)

title(\'current versus capatitor voltage\');

xlabel(\'Capacitor Voltage\');

ylabel(\'current\');

subplot(111);

slide5

二、传递函数

1. 多项式和特征多项式的根 root(P) poly(r) poly2sym(p)

例:求多项式s6+9s5+31.25s4+61.25s3+67.25s2+14.75s+15的根

多项式系数以降幂次序排列在一个行向量中,用roots( )函数求根。

P=[1 9 31.25 61.25 67.25 14.75 15]

r=roots(P)

例:多项式的根为-1,-2,-3+j4,-3-j4。求多项式方程。

r=[-1 –2 –3+j4 –3-j4]

p=poly(r)

poly2sym(p)

例:求下列矩阵的特征方程的根。

A=[0 –1 –1 ;-6 –11 6;-6 –11 5]

p=poly(A); r=roots(p); eig(A);

poly2sym(p)

slide6

2. 传递函数的零点和极点 tf2zp( )

例:求下列传递函数的零点、极点和增益。

程序如下:

num=[1 11 30 0];

den=[1 9 45 87 50];

[z,p,k]=tf2zp(unm,den)

例:已知系统的零点为-6,-5,0,极点为-3+4j,-3-4j,-2,-1,增益

为1,求其传递函数。

程序如下:

z=[-6 –5 0]’; k=1; p=[-3+4*j,-3-4*j,-2,-1]’;

[num,den]=zp2tf(z,p,k)

slide7

3. 部分分式展开 [r,p,k]=residue(b,a)

分解为微分单元和的形式,即:

例:对F(s)进行部分分式展开。

程序如下:

b=[2 0 9 1];

a=[1 1 4 4];

[r,p,k]=residue(b,a)

三、状态空间描述

1. 将微分方程化为状态方程

2. 矩阵的对角化

slide8

四、模型的转换与连接

1. 数学模型的转换(见下表: )

slide9

对部分常用函数用法举例如下:

(1) ss2tf—实现由状态空间描述到传递函数形式的转换。

[num,den]=ss2tf(A,B,C,D,iu)

例:将下列状态空间描述化为函数模型

程序如下:

a=[0 1 –1;-6 –11 6;-6 –11 5];

b=[0 0 1]’; c=[1 0 0]; d=0

[num,den]=ss2tf(a,b,c,d)

(2) ss2zp—由状态空间形式转化为零极点增益形式。

[z,p,k]=ss2zp(A,B,C,D,iu)

转换后的传函:

slide10

例:已知二输入二输出系统的状态空间模型为:例:已知二输入二输出系统的状态空间模型为:

求其零极点模型。

程序如下:

a=[0 1 –1;-6 –11 6;-6 –11 5];

b=[0 0 ;0 1;1 0]’; c=[1 0 0;0 1 0]; d=[2 0;0 2];

[num,den]=ss2zp(a,b,c,d,1);

[num,den]=ss2zp(a,b,c,d,2);

(3) tf2ss—由传递函数形式转化为状态空间形式。

[A,B,C,D]=tf2ss(num,den)

例:已知系统传递函数如下所示:

求其状态空间模型。

slide11

程序如下:

num=[0 0 –2;0 –1 –5; 1 2 0]; den=[1 6 11 6];

[A,B,C,D]=tf2ss(num,den)

2. 系统模型的连接(见下表: )

slide12

对部分函数的用法举例如下:

(1)append( )—将两个状态空间描述的动态特性连接在一起。

[A,B,C,D]=append(A1,B1,C1,D1,A2,B2,C2,D2)

(2) series( )—将两个状态空间形式表示的系统进行串联。

[A,B,C,D]=series(A1,B1,C1,D1,A2,B2,C2,D2)

(3) parallel( )—两个状态空间系统的并联。

[A,B,C,D]=parallel(A1,B1,C1,D1,A2,B2,C2,D2)

[num,den]=parallel(num1,den1,num2,den2)

(4) 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)

[num,den]=feedback(num1,den1,num2,den2)

[num,den]=parallel(num1,den1,num2,den2,sign)

slide13

u

y

例:两个子系统如下所示:

g(s)

-

h(s)

按右图方式连接,求闭环系统的传递函数。

程序如下:

numg=[2 5 1]; deng=[1 2 3];

numh=[5 10]; denh=[1 10];

[num,den]=feedback(numg,deng,numh,denh)

五、控制系统的模型属性

MATLAB提供了许多用来分析控制系统模型属性的函数,例如常

用的可控性,可观测性、阻尼系数、自然频率等,如下表:

slide15

对部分函数用法举例如下:

(1)gram( ),dgram( )—其可控、可观测的格来姆(Gram)矩阵。

Gc=gram(A,B,’c’) Gc=dgram(A,B,’c’)

Go= gram(A,B,’o’) Gc=dgram(A,B,’o’)

(2)ctrb( ),obsv( )—求系统的可控性和可观测性。

Ac=ctrb(A,B)

Ao=obsv(A,C)

例:一线性系统如下所示:

当α分别取-1,0,1时,判断系统的可控性和可观测性,并求出相

应的状态方程。

程序如下面的M文件所示:

CANDO.M

%判断系统在不同参数下的可控性和可观测性

slide16

for alpha=[-1 0 2]

alpha

num=[1 alpha];

den=[1 -15 14 0];

[A,B,C,D]=tf2ss(num,den)

Ac=ctrb(A,B);

rAc=rank(Ac)

Ao=obsv(A,C);

rAo=rank(Ao)

end

(3) damp( ),ddamp( )—求系统的阻尼系数和自然频率。其用法如下:

[Wn,z]=damp(A)

mag=ddamp(A) %得到A的特征值向量。

[mag,Wn,z]=ddamp(A,Ts) %Ts为抽样时间间隔。

slide17

damp( ),ddamp( )函数用于计算自然频率和阻尼系数,当不带输出变量时,可在屏幕上显示出特征值表、阻尼系数和自然频率。A变量可以取三种形式,如下表:

例1:求系统的特征值、阻尼系数和自然频率。

A=[1 2 –1 2;2 6 3 0;4 7 –8 –5;7 2 1 6]

damp(A)

slide18

例2:某离散系统如下所示:

求其特征值、幅值、阻尼系数和自然频率。

程序如下:

num=[3 –5.1 6];

den=[4 3.2 –1.9 8];

ddamp(den,0.01)

(4)printsys( )—显示或打印线性系统,其用法如下:

printsys(A,B,C,D)

printsys(A,B,C,D,ulabels,ylabels,xlabels)

printsys(unm,den,’s’)

printsys(unm,den,’z’)

slide19

例: A=[1 2 –1 2;2 6 3 0;4 7 –8 –5;7 2 1 6];

B=[-1 0 0 1]’;

C=[-2 5 6 1];

D=8;

printsys(A,B,C,D)

or: printsys(A,B,C,D,’current’,’voltage’,’Vr I1 Vc I’)

or: [num,den]=ss2tf(A,B,C,D)

printsys(num,den)

(5) dcgain( ),ddcgain( )—计算控制系统的稳态增益,其用法如下:

k=dcgain(A,B,C,D); k= ddcgain(A,B,C,D);

k= dcgain(num,den); k= ddcgain(num,den);

例: A=[1 2 –1 2;2 6 3 0;4 7 –8 –5;7 2 1 6];

B=[-1 0 0 1]’; C=[-2 5 6 1]; D=8;

k= dcgain(A,B,C,D)

slide20

六、控制系统常用数学方程求解

1)are( )——求解里卡第(ATx+xB=-C)方程,其用法为:

x=are(A,B,C)

例:求解某系统的代数里卡第方程的解。

A=[1 2 –1 2;2 6 3 0;4 7 –8 –5;7 2 1 6];

B=eye(size(A));

C=[1 2 3 0;2 4 4 6;3 4 1 5;0 6 5 0];

x=are(A,B,C)

2)lyap( ),lyap2( ),dlyap( )——求解李亚普诺夫方程。其用法如下:

x=lyap(A,B,C) 可求解连续系统的一般形式的李亚普诺夫方程:

Ax+xB=-C (A,B,C应当有适当的维数)

x=lyap(A,C)可求解特殊形式的李亚普诺夫方程:

Ax+xAT=-C

x=dlyap(A,B,C)用于求解离散系统的李亚普诺夫方程:

slide21

lyap2( )与lyap( )的功能相同,但采用了特征值分解技术求解李亚普

诺夫方程,因此一般来讲,运算速度比较快。

例:求解上例系统中的李亚普诺夫方程。

A=[1 2 –1 2;2 6 3 0;4 7 –8 –5;7 2 1 6];

B=eye(size(A));

C=[1 2 3 0;2 4 4 6;3 4 1 5;0 6 5 0];

x=lyap(A,B,C)

slide22
§6.2 控制系统的分析方法

一、控制系统的稳定性分析

由控制理论的一般规律可知:对线性系统而言,如果一个连续系统所有的极点都位于s平面的左半平面,则该系统为一个稳定系统。对离散系统而言,如果一个系统的全部极点都位于z平面的单位圆内部,则该系统是一个稳定系统。

从控制理论又可知,所谓最小相位系统首先是指一个稳定的系统,同时对于连续系统而言,系统的所有零点都位于s平面的左半平面,即零点实部小于零;对于一个离散系统而言,系统的所有零点都位于z平面的单位圆内部。

所以,只要知道了系统的模型,不论哪种形式的数学模型,都可以很方便的由MATLAB求出系统的零点、极点,从而判断系统的稳定以及判断系统是否为最小相位系统。

例1:已知某控制系统的模型为:

slide23

要求判断系统的稳定性以及系统是否为最小相位系统。要求判断系统的稳定性以及系统是否为最小相位系统。

程序如下:

function sstable(A,B,C,D)

% 判断系统的稳定性以及系统是否为最小相位系统

[z,p,k]=ss2zp(A,B,C,D); %求出系统的零点、极点

ii=find(real(z)>0);

n1=length(ii);

jj=find(real(p)>0);

n2=length(jj);

if (n1>0)

disp(\'The System is Unstable.\');

slide24

else

disp(\'The System is stable.\');

if (n2>0)

disp(\'The System is a Nonminimal Phase One.\');

else

disp(\'The System is a Minimal Phase One.\');

end

end

在程序中使用了find( )函数,find函数用法:ii=find(条件)

例2:已知系统模型如下所示:

判断系统的稳定性,以及系统是否为最小相位系统。

程序如下:

slide25

function sstable(A,B,C,D)

% 判断系统(A,B,C,D)的稳定性以及系统是否为最小相位系统

if(nargin==2)

[z,p,k]=tf2zp(A,B) %求出系统的零点、极点

elseif(nargin==4)

[z,p,k]=ss2zp(A,B,C,D); %求出系统的零点、极点

end

ii=find(real(z)>0);

n1=length(ii);

jj=find(real(p)>0);

n2=length(jj);

if (n1>0)

disp(\'The System is Unstable.\');

slide26

else

disp(\'The System is stable.\');

if (n2>0)

disp(‘But the System is a Nonminimal Phase One.\');

else

disp(\'The System is a Minimal Phase One.\');

end

end

二、控制系统的时域分析

1. 时域分析的一般方法

一个动态系统的性质常用典型输入下的响应来描述,响应是指零初

始条件下某种典型的输入作用下对象的响应,控制系统常用的输入

为单位阶跃函数和脉冲激励函数。在MATLAB的控制系统工具箱

中提供了求取两种输入下系统典型响应的函数step( )和impulse( )。

step( )—求取系统的阶跃响应。其用法:

slide27

[y,x]=step(num,den,t)

[y,x]=step(A,B,C,D,iu,t)

t为选定的仿真时间,y为系统在仿真时刻各个输出所组成的矩阵,x为自动选择的状态变量的时间响应数据。

绘制系统解阶跃响应曲线,可由如下格式完成:

step(num,den,t) or step(num,den)

step(A,B,C,D,iu,t) or step(A,B,C,D,iu)

例1:已知系统的开环传递函数如下所示:

求出该系统在单位反馈下的阶跃响应曲线。

首先求出系统的闭环传递函数模型:

slide28

对系统进行仿真,执行下面的M文件:

EXP4.M

num0=20;

den0=[1 8 36 40 0];

t=1:0.1:10;

numc=num0;

denc=[zeros(1,length(den0)-length(num0)),num0]+den0;

numc

denc

[y,T,x]=step(numc,denc,t);

plot(t,y,t,x);

title(\'The Step Response\')

xlabel(\'Time_Sce\');

text(4,1.5,\'The Output\');

text(5,6.5,\'The State\')

slide29

impulse( )—求取脉冲响应的函数,用法与step( )函数基本一致。

例子见EXP4.M。

2. 常用的时域分析函数 (见下表)

slide30

部分函数的用法举例如下:

(1) initial( )—求连续系统的零输入响应。用法如下:

[y,x,t]=iniial(A,B,C,D,x0)

[y,x,t]=iniial(A,B,C,D,x0,t)

例:某三阶系统如下所示:

当初始状态x0=[1 0 0]T时,求该系统的零输入响应。

执行程序如下:

A=[1 –1 0.5;2 –2 0.3;1 –4 –0.1];

B=[0 0 1]’; C=[0 0 1]; D=0;

slide31

x0=[1 0 0]’;

t=0:0.1:20;

initial(A,B,C,D,x0,t)

title(‘The Initial Condition Response’)

(2) dinitial( )—求离散系统的零输入响应。用法如下:

[y,x,t]=diniial(A,B,C,D,x0)

[y,x,t]=diniial(A,B,C,D,x0,n)

(3) lsim( )—对任意输入的连续系统进行仿真,用法如下:

[y,x]=lsim(A,B,C,D,u,t)

[y,x]=lsim(A,B,C,D,u,t,x0)

[y,x]=lsim(num,den,u,t)

例:已知某系统如下所示

slide32

求输入为正弦波的输出响应。

程序如下:

num=[1 6.8 13.85 8.05]

den=[1 11.2 46.4 88.4 77.4 25.2]

t=0:0.2*pi:2*pi

u=sin(t)

lsim(num,den,u,t)

3. 时域分析应用实例

例1:典型二阶系统如下所示:

其中ωn为自然频率(无阻尼振荡频率),ξ为阻尼系数,要求绘出当

ωn=4, ξ分别为0.1,0.2,…,1.0,2.0时系统的单位阶跃响应。

slide33

程序如下: (SysStepko.M)

wn=4;

kosai=[0.1:0.1:1,2];

figure(1)

hold on

for i=kosai

num=wn.^2;

den=[1,2*i*wn,wn.^2]

step(num,den)

end

title(\'The Step Response of Two Order System\');

在过阻尼和临界阻尼响应曲线中,临界阻尼响应具有最短的上升时间,响应速度最快;在欠阻尼(0< ξ<1)响应曲线中,阻尼系数越小,超调量越大,上升时间越短。一般取ξ=0.4~0.8。

slide34

例2:对例1中的典型二阶系统,绘出当ξ=0.6时, ωn取2,4,6,8,10,12时的单位阶跃响应。

程序如下: (SysStepwn.M)

w=2:2:12;

kosai=0.6

figure(1)

hold on

for wn=w

num=wn.^2;

den=[1,2*kosai*wn,wn.^2]

step(num,den)

end

title(\'The Step Response of Two Order System\');

slide35

例3:一伺服系统的方框图如图所示,求d和e的值,使系统的阶跃响应满足:(1)超调量不大于40%,(2)峰值时间为0.8s。例3:一伺服系统的方框图如图所示,求d和e的值,使系统的阶跃响应满足:(1)超调量不大于40%,(2)峰值时间为0.8s。

由控制理论可知,对于二阶系统,

计算超调量和峰值时间的公式如下:

R(s)

C(s)

1+es

由此得:

伺服系统的传递函数为:

二阶系统的传递函数标准形式为:

比较二式得:

slide36

程序如下: (SysStepde.M)

os=40;

tmax=0.8;

z=log(100/os)/sqrt(pi^2+(log(100/os))^2);

wn=pi/(tmax*sqrt(1-z^2));

num=wn^2;

den=[1 2*z*wn wn^2];

t=0:0.02:4;

c=step(num,den,t);

plot(t,c);

xlabel(\'Time-Sec\');

ylabel(\'y(t)\');

d=wn^2

e=(2*z*wn-1)/d

title(\'The Step Response of Two Order System\');

grid;

slide37

三、控制系统的频域分析

1. 频域分析的一般方法

1)对数频率特性图(波特图)

对数频率特性图包括了对数幅频特性图和相频特性图。画对数频

率特性图时横坐标的单位为十倍频程(lgw)。

MATLAB提供了函数bode( )来绘制波特图,其用法如下:

[mag,phase]=bode(num,den,w)

例1:典型二阶系统如下所示:

绘制出当ξ取不同值时的波特图。

取ωn=5, ξ取[0.1:0.2:2]时的波特图。

程序如下:(见Sysbodeko.M)

slide38

wn=5;

kosai=[0.1:0.2:2];

w=logspace(-1,1,100) %生成对数横坐标,区间为0.1~10

num=[wn.^2];

for ii=kosai

den=[1 2*ii*wn wn.^2];

[mag,pha,w1]=bode(num,den,w);

subplot(2,1,1);

hold on

semilogx(w1,mag);

subplot(2,1,2);

hold on

semilogx(w1,pha);

end

subplot(2,1,1);

slide39

grid on

title(\'Bode Plot\');

xlabel(\'Frequency(rad/sec)\');

ylabel(\'Gain dB\');

text(5.5,4.5,\'0.1\');

subplot(2,1,2);

grid on

xlabel(\'Frequency(rad/sec)\');

ylabel(\'Phase deg\');

text(4,-20,\'0.1\');

text(2.5,-90,\'2.0\');

2) 极坐标图(奈奎斯特图)

对于频率特性函数G(jω),给出ω从- 到+ 的一系列数值,分别求

出Im(G(jω))和Re(G(jω))。以Re(G(jω))为横坐标, Im(G(jω))为纵坐

标绘制成极坐标频率特性图。

slide40

MATLAB提供了函数nyquist来绘制系统的奈奎斯特图。

[re,im,w]=nyquist(num,den,w)

[re,im,w]=nyquist(A,B,C,D)

例1:已知系统的传递函数如下所示:

求当K分别取1300和5200时,系统的极坐标频率特性图。

程序如下:(Sysnyquist.M)

k1=1300;

k2=5200;

w=8:1:80;

num1=[k1];num2=[k2];

den=[1 52 100 0];

%subplot(2,1,1);

figure(1)

slide41

nyquist(num1,den,w);

axis([-1.0,0,-0.04,0.04]);

grid;

%subplot(2,1,2);

figure(2)

nyquist(num2,den,w)

grid;

3)频率响应

MATLAB提供了频率响应函数freqs( ),其用法如下:

y=freqs(num,den,w)

例1:系统的闭环函数如下所示:

要求画出系统的幅频特性。

程序如下:

slide42

%Sysfreqs.M

num=4;

den=[1 2 4];

w=0:0.01:3

g=freqs(num,den,w);

mag=abs(g);

plot(w,mag);

xlabel(\'Frequency -rad/s\');

ylabel(\'Magnitude\');

grid;

axis([0 3 0.5 1.2])

title(\'幅频特性\')

slide44

频域分析应用实例

  • 例1: 已知某开环系统如下所示:

要求(1)绘制系统的奈奎斯特曲线,判断闭环系统的稳定性,求

出系统的阶跃响应。(2)给系统增加一个开环极点p=2,求此时

的奈奎斯特曲线,判断此时闭环系统的稳定性,并求出系统的阶

跃响应。

程序如下: (SysExp1.M)

%SysExp1.M

k=26;

z=[];p1=[1 -6];p2=[1 -6 2];

[num1,den1]=zp2tf(z,p1,k);

[num2,den2]=zp2tf(z,p2,k);

subplot(2,2,1);

nyquist(num1,den1);

slide45

subplot(2,2,2)

hold on

[numc1,denc1]=cloop(num1,den1);

impulse(numc1,denc1)

step(numc1,denc1)

subplot(2,2,3)

nyquist(num2,den2)

title(\'Nyquist Diagrams\');

subplot(2,2,4)

hold on

t=0:0.1:3

[numc2,denc2]=cloop(num2,den2);

impulse(numc2,denc2)

step(numc2,denc2,t);

axis([0,3,-100,20]);

slide46

例2:线性时不变系统如下所示:

要求绘制系统的波特图和奈奎斯特图,判断系统的稳定性,如果系统稳定,求出系统稳定裕度,并绘制出系统的单位脉冲响应以验证判断绪论。

程序如下: (SysExp2.M)

%SysExp2.M

a=[-0.6 -1.044 0 0;1.044 0 0 0;0 0.9578 -0.7 -0.3162;0 0 0.3162 0];

b=[1;0;0;0];

c=[0 0 0 0.3162];d=0;

w=logspace(-1,1,100); %生成对数横坐标,区间为0.1~10

slide47

figure(1);bode(a,b,c,d);

figure(2);

nyquist(a,b,c,d);

figure(3);

[ac,bc,cc,dc]=cloop(a,b,c,d);

margin(a,b,c,d);

figure(4);

impulse(ac,bc,cc,dc);

slide48

例3:一个系统如下所示:

要求(1)找出系统的主导极点;(2)求出系统的低阶模型;(3)比较原系统与低阶模型系统的阶跃响应和频率响应。

deno=[1 36 205 750];

r=roots(deno)

求得:r=-30.0000

-3.0000+4.0000i

-3.0000-4.0000i

因而传递函数可以写成如下形式:

因为极点s=-30远离原点。其对系统影响很小,可以忽略。因而系统的主导极点应该为-3±4i,于是系统的近似传递函数如下所示:

slide49

对两个系统的性能进行比较。程序如下:

%SysExp3.M

num1=25;den1=[1 6 25]; %近似的二阶系统

num2=750;den2=[1 36 205 750]; %原三阶系统

figure(1);

hold on;

bode(num1,den1,\'r\');

bode(num2,den2,\'g\'); %比较频率响应

figure(2);

hold on

step(num1,den1,\'r\');

step(num2,den2,\'g\'); %比较单位阶跃响应

slide50

四、根轨迹分析方法

MATLAB绘制轨迹的函数为rlocus(num,den,K),num和den分别是系

统开环传递函数的分子和分母多项式系统,K为开环增益,K的范围

可以指定,若不给定K的范围,则隐含K从0变至+∞,该函数可以精

确地绘制出根轨迹。常用的根轨迹函数如下表:

slide51

根轨迹分析应用实例

例4:设系统的开环传递函数如下所示:

要求绘制出闭环系统的根轨迹,并确定交点处的增益。

利用rlocus( )函数可绘出根轨迹,利用rlocfind( )函数可找出根轨迹

上任意一点处的增益和相应的极点,程序如下: (SysExp4.M)

%SysExp4.M

num=[1 5];den=[1 5 6 0];

rlocus(num,den);

[k,p]=rlocfind(num,den) %确定增益及相应的闭环极点

title(\'Root Locus\');

gtext(\'k=0.5\') %用鼠标标示文本

slide52

例5:已知开环传递函数如下所示:

要求绘制该系统的闭环根轨迹,分析其稳定性,并绘制出当K=55和K=56时系统的闭环脉冲响应。程序如下: (SysExp5.M)

%SysExp5.M

num=[1 2];

den1=[1 4 3];

den=conv(den1,den1);

k=0:0.1:150;

figure(1)

rlocus(num,den,k);

title(\'Root Locus\');

[k,p]=rlocfind(num,den);

%检验系统的稳定性

slide53

figure(2)

k1=55;

num1=k1*num;

[numc1,denc1]=cloop(num1,den,-1);

impulse(numc1,denc1);

title(\'Impulse Response(K=55)\');

figure(3)

k2=56;

num2=k2*num;

[numc2,denc2]=cloop(num2,den,-1);

impulse(numc2,denc2);

title(\'Impulse Response(K=56)\');

利用rlocfind( )函数来找出根轨迹与虚轴的交点,并求得交点K=55.3479,当K<55.3479时,闭环系统稳定;K>55.3479时,闭环系统不稳定。这也可从K=55,56的脉冲响应曲线中看出。

slide54

大作业题目:

  • 学号未位数为0、5的同学做第1题,学号未位数为1、6的同学做第2题,学号未位数为2、7的同学做第3题,学号未位数为3、8的同学做第4题,学号未位数为4、9的同学做第5题。
  • 1. 系统开环传递函数为:
  • 1)试绘制系统的Bode, Nyquist, Nichols图,并确定系统的幅值裕量、相位裕量及它们相应的转折频率;
  • 2)绘制 闭环系统的根轨迹,并确定临界稳定的K值;
  • 3)绘制开环系统、闭环系统的阶跃响应和脉冲响应曲线;
  • 4)结合上述要求进行理论分析。
  • 单位反馈系统的开环传递函数为:
  • 要求同上题。
slide55

通过绘制Nyquist曲线、Bode图,试分析下列开环系统传递函数为:通过绘制Nyquist曲线、Bode图,试分析下列开环系统传递函数为:

  • (1)
  • (2)
  • 的闭环系统的稳定性,对不稳定的系统通过什么措施使之稳定,并通过脉冲响应、阶跃响应加以验证。
  • 已知系统开环传递函数为
  • (1)求出闭环系统稳定的K值范围;
  • (2)计算闭环主导极点具有ζ=0.5时的性能指标δ%,ts(0.05) ;
  • (3)写出闭环传递函数近似为二阶系统的形式;
  • (4)通过Bode图、阶跃响应、脉冲响应比较原系统与近似二阶系统的差异。
  • 5. 已知单位反馈系统的开环传递函数分别为:
slide56

(1)

(2)

(3)

试分别求出r(t)=1、t、 ½ t2时的系统响应(解析解、曲线),并求出它们的稳态误差。

ad