视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
北理工自动控制实验
2025-09-29 16:42:32 责编:小OO
文档
控制理论基础实验

一、实验目的

1.掌握利用MATLAB建立控制系统模型的方法。

2.掌握系统的各种模型表述及相互之间的转换关系。

3.学习和掌握系统模型连接的等效变换。

二、实验原理

1.系统模型的MATLAB描述

系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的模型有很多种,如微分方程、传递函数模型、状态空间模型等。这里主要介绍系统传递函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型的MATLAB描述方法。

1)传递函数(TF)模型

传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般为

(1-1)

在MATLAB中,直接使用分子分母多项式的行向量表示系统,即

num=[b m,b m-1,…b1,b0]

den=[a n,a n-1,…a1,a0]

调用tf函数可以建立传递函数TF对象模型,调用格式如下:

Gtf=tf(num,den)

Tfdata函数可以从TF对象模型中提取分子分母多项式,调用格式如下:

[num,den]=tfdata(Gtf)返回cell类型的分子分母多项式系数

[num,den]=tfdata(Gtf,'v')返回向量形式的分子分母多项式系数

2)零极点增益(ZPK)模型

传递函数因式分解后可以写成

式中,m z,z,,z12⋯称为传递函数的零点,n p,p,,p12⋯称为传递函的极点,k为传递系数(系统增益)。

在MATLAB中,直接用[z,p,k]矢量组表示系统,其中z,p,k分别表示系统的零极点及其增益,即:

z=[z1,z2,…,z m];

p=[p1,p2,…,p n];

k=[k];

调用zpk函数可以创建ZPK对象模型,调用格式如下:

Gzpk=zpk(z,p,k)同样,MATLAB提供了zpkdata命令用来提取系统的零极点及其增益,调用格式如下:[z,p,k]=zpkdata(Gzpk)返回cell类型的零极点及增益

[z,p,k]=zpkdata(Gzpk,’v’)返回向量形式的零极点及增益

函数pzmap可用于求取系统的零极点或绘制系统得零极点图,调用格式如下:

pzmap(G)在复平面内绘出系统模型的零极点图。

[p,z]=pzmap(G)返回的系统零极点,不作图。

3)状态空间(SS)模型

由状态变量描述的系统模型称为状态空间模型,由状态方程和输出方程组成:

其中:x为n维状态向量;u为r维输入向量;y为m维输出向量;A为n×n方阵,称为系统矩阵;B为n×r矩阵,称为输入矩阵或控制矩阵;C为m×n矩阵,称为输出矩阵;D为m×r矩阵,称为直接传输矩阵。

在MATLAB中,直接用矩阵组[A,B,C,D]表示系统,调用ss函数可以创建ZPK对象模型,调用格式如下:

Gss=ss(A,B,C,D)

同样,MATLAB提供了ssdata命令用来提取系统的A、B、C、D矩阵,调用格式如下:[A,B,C,D]=ssdata(Gss)。它返回系统模型的A、B、C、D矩阵。

4)三种模型之间的转换

上述三种模型之间可以互相转换,MATLAB实现方法如下

TF模型→ZPK模型:zpk(SYS)或tf2zp(num,den)

TF模型→SS模型:ss(SYS)或tf2ss(num,den)

ZPK模型→TF模型:tf(SYS)或zp2tf(z,p,k)

ZPK模型→SS模型:ss(SYS)或zp2ss(z,p,k)

SS模型→TF模型:tf(SYS)或ss2tf(A,B,C,D)

SS模型→ZPK模型:zpk(SYS)或ss2zp(A,B,C,D)

2.系统模型的连接

在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连接、并联连接和反馈连接。图1-2分别为串联连接、并联连接和反馈连接的结构框图和等效总传递函数。

在MATLAB中可以直接使用“*”运算符实现串联连接,使用“+”运算符实现并联连接。反馈系统传递函数求解可以通过命令feedback实现,调用格式如下:

T=feedback(G,H)

T=feedback(G,H,sign)

其中,G为前向传递函数,H为反馈传递函数;当sign=+1时,GH为正反馈系统传递函数;当sign=-1时,GH为负反馈系统传递函数;默认值是负反馈系统。

三、实验内容

1.已知控制系统的传递函数如下

试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。

2.已知控制系统的状态空间方程如下

试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。

3已知三个系统的传递函数分别为

试用MATLAB求上述三个系统串联后的总传递函数。

4.已知如图E2-1所示的系统框图

试用MATLAB求该系统的闭环传递函数。

5已知如图E2-2所示的系统框图

试用MATLAB求该系统的闭环传递函数。

数据及代码:

第一题:

num=[21840];

den=[1586];

Gtf=tf(num,den);

Gzpk=zpk(Gtf);

pzmap(Gzpk);

grid on;

Gss=ss(Gzpk)

Gss =

a =

x1x2

x3x1-1

10

x2-1-1 2.515x300-3

b =

u1

x10

x2 1.778x3 1.414

c =

x1x2x3y1 3.374 1.1250

d =

u1y10

Continuous-time state-space model.

-5-4.5-4-3.5-3-2.5-2-1.5-1-0.50

P ole-Zero Map Real Axis (seconds -1)

I m a g i n a r

y

A x

i s (s

e c

o

n d s -

1)

第二题:

A=[0100;0010;0001;-1-2-3-4]; B=[0;0;0;1];

C=[10200];

D=[0];

Gss=ss(A,B,C,D);

Gtf=tf(Gss);

Gzpk=zpk(Gss);

pzmap(Gzpk);

grid on;

Gss=

a=

x1x2x3x4

x10100

x20010

x30001

x4-1-2-3-4

b=

u1

x10

x20

x30

x41

c=

x1x2x3x4

y110200

d=

u1

y10

Continuous-time state-space model. Gtf=

2s+10

-----------------------------

s^4+4s^3+3s^2+2s+1

Continuous-time transfer function.

Gzpk =

2(s+5)

---------------------------------------------(s+3.234)(s+0.6724)(s^2+0.0936s +0.4599)Continuous-time zero/pole/gain model.

-5-4.5-4-3.5-3-2.5-2-1.5-1-0.50

P ole-Zero Map Real Axis (seconds -1)

I

m a g i n a r

y

A x

i s

(s

e c

o n d s -

1)

第三题:

num1=[265];

den1=[1452];

Gtf1=tf(num1,den1)num2=[141];

den2=[1980];

Gtf2=tf(num2,den2)num3=conv(conv([05],[1

3]),[17]);den3=conv(conv([11],[14]),[16]);

Gtf3=tf(num3,den3)Gtf=Gtf1*Gtf2*Gtf3

2s^2+6s+5

---------------------

s^3+4s^2+5s+2

Continuous-time transfer function.

Gtf2=

s^2+4s+1

-----------------

s^3+9s^2+8s

Continuous-time transfer function.

Gtf3=

5s^2+50s+105

------------------------

s^3+11s^2+34s+24

Continuous-time transfer function.

Gtf=

10s^6+170s^5+1065s^4+3150s^3+4580s^2+2980s+525

-----------------------------------------------------------------------------

s^9+24s^8+226s^7+1084s^6+2905s^5+4516s^4+4044s^3

+1936s^2+384s

Continuous-time transfer function.

第四题:

num1=[01];

den1=[11];

g1=tf(num1,den1)num2=[01];

den2=[0.51];

g2=tf(num2,den2)

num3=[03];

den3=[10];

g3=tf(num3,den3)

g=(g1+g2)*g3

u=feedback(g,g2)

g1=

1

-----

s+1

Continuous-time transfer function. g2=

1

---------

0.5s+1

Continuous-time transfer function. g3=

3

-

s

Continuous-time transfer function. g=

4.5s+6

---------------------

0.5s^3+1.5s^2+s Continuous-time transfer function.u=

2.25s^2+7.5s+6

---------------------------------------

0.25s^4+1.25s^3+2s^2+5.5s+6

Continuous-time transfer function.

第五题:

num1=[02];

den1=conv([10],[11]);

g1=tf(num1,den1)

num2=[13];

den2=[12];

g2=tf(num2,den2)

f1=feedback(g1,g2,+1)

num3=[010];

den3=[11];

g3=tf(num3,den3)

f2=g3*f1

num4=[50];

den4=[168];

g4=tf(num4,den4)

f3=feedback(f2,g4)

g1=

2

-------

s^2+s

Continuous-time transfer function.

g2=

s+3

-----

s+2

Continuous-time transfer function.

f1=2s+4

---------------

s^3+3s^2-6

Continuous-time transfer function.

g3=

10

-----

s+1

Continuous-time transfer function.

f2=

20s+40

-----------------------------

s^4+4s^3+3s^2-6s-6

Continuous-time transfer function.

g4=

5s

-------------

s^2+6s+8

Continuous-time transfer function.

f3=

20s^3+160s^2+400s+320

----------------------------------------------------

s^6+10s^5+35s^4+44s^3+82s^2+116s-48 Continuous-time transfer function.

四.实验收获与心得

刚开始做这个实验,拿着讲义,感觉不熟悉实验内容和软件,但是,耐心看看讲义后,做实验,按照步骤一步一步的做,还是能完成,虽然比较慢。做完了,觉得收获很大的。在实际中掌握了自动控制的知识。

实验2控制系统的暂态特性分析

一、实验目的

1.学习和掌握利用MATLAB进行系统时域响应求解和仿真的方法。

2.考察二阶系统的时间响应,研究二阶系统参数对系统暂态特性的影响。

二、实验原理

1.系统的暂态性能指标

控制系统的暂态性能指标常以一组时域量值的形式给出,这些指标通常由系统的单位阶跃响应定义出来,这些指标分别为:

(1)延迟时间t d:响应曲线首次到达稳态值的50%所需的时间。

(2)上升时间t r:响应曲线从稳态值的10%上升到90%所需要的时间长,对于欠阻尼系统,通常指响应曲线首次到达稳态值所需的时间。

(3)峰值时间t p:响应曲线第一次到达最大值的时间。

(4)调整时间t s:响应曲线开始进入并保持在允许的误差(±2%或±5%)范围内所需要的时间。

(5)超调量σ:响应曲线的最大值和稳态值之差,通常用百分比表示

其中y(t)为响应曲线。

在MATLAB中求取单位阶跃响应的函数为step,其使用方法如下

step(sys)在默认的时间范围内绘出系统响应的时域波形

step(sys,T)绘出系统在0–T范围内响应的时域波形

step(sys,ts:tp:te)绘出系统在ts–te范围内,以tp为时间间隔取样的响应波形。[y,t]=step(…)该调用格式不绘出响应波形,而是返回响应的数值向量及其对应的时间向量。

系统的暂态性能指标可以根据上述定义,在响应曲线上用鼠标读取关键点或通过搜索曲线对应的数值向量中关键点来确定。

2.LTI Viewer工具

在MATLAB中提供了线性是不变系统仿真的工具LTI Viewer,可以方便地观察系统的响应曲线和性能指标。在命令窗口中键入litview即可启动LTI Viewer。这里简要介绍LTI Viewer工具(如图2-1所示)的使用方法。

1)【File】菜单

Import选项:可以从Workspace或MAT文件中导入系统模型。

Export选项:将当前窗口中的对象模型保存到Workspace或文件中。

Toolbox preferences选项:属性设置功能,可以设置控制系统中得各种属性值。

Page Setup选项:页面设置功能,可以对打印输出和显示页面进行设置。

2)【Edit】菜单

Plot Configuration选项:对显示窗口及显示内容进行配置。

Line Style选项:线型设置功能,可以对输出响应曲线的线型进行设置。

Viewer Preferences选项:对当前窗口的坐标、颜色、字体、响应曲线的特性参数等属性进行设置。

3)右键菜单

在运行界面上点击鼠标右键,将会弹出一个弹出式菜单,菜单上个选项的功能分别为:Plot Types:选择绘制的系统曲线类型,可选的类型有单位阶跃响应、单位冲击响应、波特图、奈奎斯特图、零极点图等。

System:选择需要仿真的系统。

Characteristic:系统的性能指标选项。

Grid:显示和关闭网格。

Normalize:正常显示模式。

Full View:满界面显示模式。

Properties:性能编辑器选项,可以设置画面的标题、坐标标志、坐标范围、线型、颜色、性能指标等。

三、实验内容

1.已知单位负反馈系统前向通道的传递函数为

试用MATLAB绘制系统的单位阶跃响应曲线。

2.已知二阶系统

(1)ζ=6.0,ωn=5,试用MATLAB绘制系统单位阶跃响应曲线,并求取系统的暂态性能指标。

(2)ωn=1,ζ从0变化到2,求此系统的单位阶跃响应。

(3)ζ=5.0,ωn从0变化到1(ωn≠0),求此系统的单位阶跃响应。

(4)观察上述实验结果,分析这两个特征参数对系统暂态特性的影响。

数据及代码:

一代码:

num=80;

den=[120];

G=tf(num,den)

T=feedback(G,1)

step(T)

grid on

图形:

01234567

00.2

0.4

0.6

0.8

11.2

1.4

1.6

1.8

Step Response Time (seconds)

A m p

l i t u

d e 二代码:

(1)a=0.6;

w=5;

num=[w*w];

den=[1,2*w*a,w*w];

G=tf(num,den)

step(G)

grid on

ltiview

上升时间tr:响应曲线上升到90%所需要的时间为0.371s。

峰值时间tp:响应曲线第一次到达最大值的时间为0.787s。

调整时间ts:响应曲线开始进入并保持在允许的误差范围内所需要的时间为 1.19s。超调量σ:响应曲线的最大值和稳态值只差的百分比为σ=9%。

2)代码:

w=1;

a=[0,0.4,0.8,1.2,1.6,2];

for i=1:6

num=[w*w];

den=[1,2*w*a(i),w*w];

G=tf(num,den);

step(G,30)

hold on

end

legend('a=0','a=0.4','a=0.8','a=1.2','a=1.6','a=2');

图像:

0510********

00.2

0.4

0.6

0.8

1

1.2

1.41.61.82

Step Response Time (seconds)

A m

p l i t u

d e (3)代码:

w=[0.2,0.4,0.6,0.8,1];

a=0.5;

for i=1:5

num=[w(i)*w(i)];

den=[1,2*w(i)*a,w(i)*w(i)];

G=tf(num,den);

step(G,15)

hold on

end

legend('w=0.2','w=0.4','w=0.6','w=0.8','w=1.0');

图像:

05

1015

00.2

0.4

0.6

0.81

1.21.4

Step Response

Time (seconds)A m p l i t u d e (4)

1.由(2)中实验结果可知,在频率w 不变的情况下,阻尼比ζ越大,上升时间、峰值时间延长;超调量越小,过渡时间变快;

2.由(3)中实验结果可知,在阻尼比ζ不变的情况下,w 越大,上升时间、峰值时间减小;超调量不变,调节时间越短,快速性越好。

数据及代码:

四、实验心得

通过本次实验,我更加深刻的掌握了时域分析系统的方法,尤其是对于二阶系统的动态分析。这对于我自动控制的学习帮助很大。

一、实验目的

1.学习和掌握利用MATLAB绘制根轨迹图的方法。

2.学习和掌握利用系统根轨迹图分析系统的性能。

二、实验原理

1.根轨迹分析的MATLAB实现

根轨迹是指系统某一参数变化时,闭环特征根在s平面上运动的轨迹。在MATLAB中,提供了用于根轨迹分析的专门函数。

1)rlocus函数

该函数的使用方法如下:

rlocus(sys)绘制单输入单输出LTI系统的根轨迹图。

rlocus(sys,k)使用用户指定的根轨迹增益k来绘制系统的根轨迹图。

[r,k]=rlocus(sys)返回根轨迹增益值和闭环极点值,不绘制根轨迹图。

2)rlocfind函数

该函数的使用方法如下:

[k,poles]=rlocfind(sys)计算鼠标选取点处的根轨迹增益值和闭环极点值,可在图形窗口根轨迹图中显示出十字光标,当用户选择其中一点时,相应的增益值和极点值记录在k和poles 中。

[k,poles]=rlocfind(sys,p)计算最靠近给定闭环极点p处的根轨迹增益。

3)sgrid函数

该函数的使用方法如下:

Sgrid可在连续系统根轨迹或零极点图上绘制出栅格线,栅格线由等阻尼系数和等自然频率线构成。

sgrid(‘new’)先清除当前的图形,然后绘制出栅格线,并将坐标轴属性设置成hold on。sgrid(z,Wn)指定阻尼系数z和自然频率Wn。

sgrid(z,Wn,’new’)指定阻尼系数z和自然频率Wn,在绘制栅格线之前清除当前的图形并将坐标轴属性设置成hold on。

2.Rltool工具

MATLAB提供了一个根轨迹设计工具Rltool,在命令窗口输入rltool命令即可启动该工具,也可输入rltool(sys)命令打开带系统模型sys的根轨迹设计器,运行界面如图3-1所示。Rltool工具既可以分析系统根轨迹也能对系统进行设计,具体使用方法请参考MATLAB帮助或查阅相关资料。

1.已知系统开环传递函数为

(1)使用MATLAB绘制系统的根轨迹图。

(2)求根轨迹的两条分支离开实轴时的K值,并确定该K值对应的所有闭环极点。(3)以区间[-40,-5]之间的值替代12−=s处的极点,重新绘制根轨迹图,观察其对

根轨迹图的影响。

2.已知系统开环传递函数为

(1)使用MATLAB绘制系统的根轨迹图。

(2)计算两条分支进入右半平面和两条分支复数极点出发在实轴相交处的K值。

(3)以区间[-20,-1]之间的值替代零点的位置,重新绘制根轨迹图,观察其对根轨迹图的影响。

3.已知单位负反馈系统的开环传递函数为

(1)使用MATLAB绘制系统的根轨迹图。

(2)分析使系统稳定的K值范围和使系统无超调的K值范围,并通过观察系统的单位阶跃响应曲线加以验证。

数据及代码:

第一题:

(1)试验代码:

z=-5;

p=[0,-1,-3,-12];

k=1;

zpk1=zpk(z,p,k)

rlocus(zpk1)

结果:

zpk1=

(s+5)

--------------------

s(s+1)(s+3)(s+12)

Continuous-time zero/pole/gain model.

-40-30-20-10

01020

-30-20

-10

01020

30Root Locus

Real Axis (seconds -1)I m a g i n a r y A x i s (s e c o n d s -1)(2)试验结果:

Select a point in the graphics window

selected_point =

-0.4700-0.0000i

k =

1.6041

poles =

-12.0094

-3.0555

-0.4700

-0.4650

>>rlocus(zpk1,1.6041)

分析:

k =1.6041

poles =-12.0094;-3.0555;-0.4700;-0.4650

(3)

s=-40:5:-5;

hold on;

for x=1:length(s)

p=[0,-1,-3,s(x)];

zpk2=zpk(z,p,k);

hold on;

rlocus(zpk2);

end

gtext('s=-40')

gtext('s=-35')

gtext('s=-30')

gtext('s=-25')

gtext('s=-20')

gtext('s=-15')

gtext('s=-10')

gtext('s=-5')

分析:

(1)以区间[-40,-5]之间的值替代s=-12极点对于根轨迹的分离点没有影响。(2)根轨迹在分离点分离后,代替的极点值越大,其趋向无穷大的速度越快,即变化率随极点值的增大而增大。而且极点的绝对值越大,渐近线的角度的绝对值越大。即:渐近线与虚轴交点绝对值越大。

2(1)实验代码:

num1=[1,8];

den1=[110480];g1=tf(num1,den1);zpk3=zpk(g1)rlocus(zpk3)

-25

-20-15-10-5051015

-25-20-15-10-5051015

20

25Root Locus

Real Axis (seconds -1)

I m a g i n a r y A x i s (s e c o n d s -1)

(2)实验代码:[k,poles]=rlocfind(zpk3)

Select a point in the graphics window

selected_point =-0.0237+3.91i

k =59.4119

poles =

-5.0947+3.3424i -5.0947-3.3424i 0.0947+3.5767i 0.0947-3.5767i

-25

-20-15-10-5051015

-25-20-15-10-5051015

20

25Root Locus

Real Axis (seconds -1)

I m a g i n a r y A x i s (s e c o n d s -1)

分析:两条分支进入右半平面的k 值为59.4119。[k,poles]=rlocfind(zpk3)

Select a point in the graphics window selected_point =-10.1659-0.0776i

k =

2.0693e+003

poles =

5.2414+11.4175i 5.2414-11.4175i -10.2414+0.0257i -10.2414-0.0257i

-25

-20-15-10-5051015

-25-20-15-10-5051015

20

25Root Locus

Real Axis (seconds -1)

I m a g i n a r y A x i s (s e c o n d s -1)

分析:两条分支复数极点出发在实轴相交处K 值:2.0693e+003(3)实验代码:

for x=1:length(s)z=s(x);

p=[0-2-4+4j -4-4j];zpk4=zpk(z,p,k);rlocus(zpk4);end

-80

-60-40-200204060

-80-60

-40-20020

40

60

80Root Locus

Real Axis (seconds -1)

I m a g i n a r y A x i s (s e c o n d s -1)

分析:零点的绝对值越大,左半支根轨迹在负实轴上的汇合点绝对值越大。右半支根轨迹趋向无穷大的速度越快,与虚轴的相交点的绝对值越大。当零点为-1时,左边的根轨迹为直线。第三题:

(1)试验代码:

num2=1;

den2=[1450];g2=tf(num2,den2);zpk5=zpk(g2)rlocus(zpk5)

-6

-5-4-3-2-101

-4-3

-2-101

2

3

4Root Locus

Real Axis (seconds -1)

I m a g i n a r y A x i s (s e c o n d s -1)

(2)

系统稳定时,K 的取值范围为:0num3=20;

den3=[1450];g3=tf(num3,den3);t1=feedback(g3,1);step(t1)grid on

0102030405060708090100

0.20.40.60.811.2

1.41.61.8

2Step Response

Time (seconds)

A m p l i t u d e

K=10时,观察系统单位阶跃响应

num3=10;

den3=[1450];g3=tf(num3,den3);t1=feedback(g3,1);step(t1)grid on

0246810

1214161820

00.2

0.4

0.6

0.8

11.2

1.4

1.6

Step Response

Time (seconds)A m p l i t u d e 无超调时,K 的取值范围为:0K=0.5,1,1.5,2,2.5,3时,观察系统单位阶跃响应

k=0:0.5:3;

hold on;

for i=1:length(k)

num3=[k(i)];

den3=[1450];

g3=tf(num3,den3);

t1=feedback(g3,1);

step(t1)

grid on

end

0102030405060708090

00.2

0.4

0.6

0.81

1.2

1.4Step Response

Time (seconds)

A m p l i t u d e 分析:由实验结果知:系统稳定时,K 的取值范围为:0无超调量的

K 值范围为:0四、实验心得

通过本次实验,我加深了对于根轨迹图的理解和图形的画法与规则,在实际中绘制根轨迹,收获很大,也为以后的继续学习打下了基础。

一、实验目的

1.学习和掌握利用MATLAB绘制系统Nyquist图和Bode图的方法。

2.学习和掌握利用系统的频率特性分析系统的性能。

二、实验原理

系统的频率特性是一种图解方法,分析运用系统的开环频率特性曲线,分析闭环系统的

性能,如系统的稳态性能、暂态性能常用的频率特性曲线有Nyquist图和Bode图。在MATLAB 中,提供了绘制Nyquist图和Bode图的专门函数。

1.Nyquist图

nyquist函数可以用于计算或绘制连续时间LTI系统的Nyquist频率曲线,其使用方法如下:

nyquist(sys)绘制系统的Nyquist曲线。

nyquist(sys,w)利用给定的频率向量w来绘制系统的Nyquist曲线。

[re,im]=nyquist(sys,w)返回Nyquist曲线的实部re和虚部im,不绘图。

2.Bode图

bode函数可以用于计算或绘制连续时间LTI系统的Bode图,其使用方法如下:

bode(sys)绘制系统的Bode图。

bode(sys,w)利用给定的频率向量w来绘制系统的Bode图。

[mag,phase]=bode(sys,w)返回Bode图数据的幅度mag和相位phase,不绘图。

3.幅度和相位裕度计算

margin函数可以用于从频率响应数据中计算出幅度裕度、相位裕度及其对应的角频率,其使用方法如下:

margin(sys)

margin(mag,phase,w)

[Gm,Pm,Wcg,Wcp]=margin(sys)

[Gm,Pm,Wcg,Wcp]=margin(mag,phase,w)

其中不带输出参数时,可绘制出标有幅度裕度和相位裕度值的Bode图,带输出参数时,返回幅度裕度Gm、相位裕度Pm及其对应的角频率Wcg和Wcp。

三、实验内容

1.已知系统开环传递函数为

绘制系统的Nyquist图,并讨论其稳定性。

2.已知系统的开环传递函数为

(1)绘制系统的零极点图,根据零极点分布判断系统的稳定性。

(2)绘制系统Bode 图,求出幅度裕度和相位裕度,判断闭环系统的稳定性。

3.

已知系统的开环传递函数为

分别判断当开环放大系数K =5和K =20时闭环系统的稳定性,并求出幅度裕度和相位裕度。

数据及代码:

第一题:

num1=[1000]den1=[181710]G=tf(num1,den1)nyquist(G)

结果:

-2002040

6080100

-80-60

-40

-20

02040

60

80

Nyquist Diagram

Real Axis I m a g i n a r y A x i s 分析:因为系统没有开环正实部极点,而Nyquist 围线有两次负穿越,因此系统不稳定。第二题:

num=10*[25/16,5/4,1]den=conv([1,0,0],conv([10/3,1],conv([0.2/3,1],[1/40,1])))

G=tf(num,den)G=zpk(G)pzmap(G)margin(G)

结果:

num =

15.625012.500010.0000

den =

0.00560.3072 3.4250 1.000000

G =

15.63s^2+12.5s +10

-------------------------------------------

0.005556s^5+0.3072s^4+3.425s^3+s^2

Continuous-time transfer function.

零级点图:

-40-35-30-25-20-15-10-50

P ole-Zero Map Real Axis (seconds -1)

I

m a g i n a r

y

A x

i s

(s

e c

o n d s

-

1)

分析:由图可知:系统有一开环极点存在于虚轴上,属于临界稳定,视为不稳定。

伯德图:

-150-100-50050100

150

M a g n i t u d e (d B )

10-210-1100101102103

P h a s e (d e g )Bode Diagram

Gm = -18.4 dB (at 0.661 rad/s) , P m = 60.7 deg (at 4.39 rad/s)Frequency (rad/s)

分析:由图可知:系统的相位裕度是60.7°,幅度裕度是-18.4dB 。由于系统的幅值裕度小于0,因此闭环系统不稳定。

第三题:

(1)

K=5num=[K]den=conv([1,0],conv([1,1],[0.1,1]))G=tf(num,den)margin(G)

结果:

K =

5

num =

5

den =

0.1000 1.1000 1.00000

G =

5

---------------------

0.1s^3+1.1s^2+s

Continuous-time transfer function.

伯德图:

-150-100-50050

100

M a g n i t u d e (d B )

10-210-1100101102103

P h a s e (d e g )Bode Diagram

Gm = 6.85 dB (at 3.16 rad/s) , P m = 13.6 deg (at 2.1 rad/s)Frequency (rad/s)

分析:由图可知:幅值裕度:6.85dB ,相位裕度:13.6°。由于系统的相位裕度和幅度裕度都大于0,所以闭环系统稳定。

(2)

K=20num=[K]den=conv([1,0],conv([1,1],[0.1,1]))G=tf(num,den)margin(G)

结果:

K =

20

num =

20

den =

0.1000 1.1000 1.00000

G =

20

---------------------

0.1s^3+1.1s^2+s

Continuous-time transfer function.

伯德图:

Bode Diagram

Gm = -5.19 dB (at 3.16 rad/s) , P m = -9.66 deg (at 4.23 rad/s)

Frequency (rad/s)

-150-100-50050100

M a g n i t u d e (d B )

10-210-1100101102103

P h a s e (d e g )分析:由图可知:幅度裕度:-5.19dB ,相位裕度:-9.66°。由于系统的相位裕度和幅度裕度都小于0,所以闭环系统不稳定。

四、实验心得

通过本次实验,我加深了对于频域分析系统的理解,基本掌握了Nyquist 和Bode 图的绘制方法,在实际中绘制了图像,体验到了matlab 的强大。实验虽然结束了,但我仍会继续学习下载本文

显示全文
专题