北京理工大学自动控制原理实验报告.docx

上传人:b****6 文档编号:5965665 上传时间:2023-01-02 格式:DOCX 页数:43 大小:78.34KB
下载 相关 举报
北京理工大学自动控制原理实验报告.docx_第1页
第1页 / 共43页
北京理工大学自动控制原理实验报告.docx_第2页
第2页 / 共43页
北京理工大学自动控制原理实验报告.docx_第3页
第3页 / 共43页
北京理工大学自动控制原理实验报告.docx_第4页
第4页 / 共43页
北京理工大学自动控制原理实验报告.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

北京理工大学自动控制原理实验报告.docx

《北京理工大学自动控制原理实验报告.docx》由会员分享,可在线阅读,更多相关《北京理工大学自动控制原理实验报告.docx(43页珍藏版)》请在冰豆网上搜索。

北京理工大学自动控制原理实验报告.docx

北京理工大学自动控制原理实验报告

课程名称:

控制理论基础

实验时间:

任课教师:

实验地点:

实验教师:

实验类型:

□ 原理验证

□ 综合设计

□ 自主创新

学生姓名:

学号/班级:

组        号:

学        院:

同组搭档:

专        业:

成        绩:

 

本科实验报告

 

实验名称:

控制理论基础实验

 

实验 1 控制系统的模型建立

一、实验目的

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

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

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

二、实验原理

1、系统模型的 MATLAB 描述

系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统

的模型有很多种,如微分方程、传递函数模型、状态空间模型等。

这里主要介绍系统传递

函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型的 MATLAB 描述方法。

1)传递函数(TF)模型

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

 

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

num = [bm, bm-1, … b1, b0]

den = [an, an-1, … a1, a0]

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

Gtf = tf(num,den)

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

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

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

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

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

 

式中, z1 , z2 , …,zm 称为传递函数的零点, p1,p2,…,pn 称为传递函数的极点,k 为传递

系数(系统增益)。

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

及其增益,即:

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

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

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、系统模型的连接

在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联

连接、并联连接和反馈连接。

下图分别为串联连接、并联连接和反馈连接的结构框图和等

效总传递函数。

 

在 MATLAB 中可以直接使用“*”运算符实现串联连接,使用“+”运算符实现并联

连接。

反馈系统传递函数求解可以通过命令 feedback 实现,调用格式如下:

T = feedback(G,H)

T = feedback(G,H,sign)

其中,G 为前向传递函数,H 为反馈传递函数;当 sign = +1 时,GH 为正反馈系统传

函数;当 sign = -1 时,GH 为负反馈系统传递函数;默认值是负反馈系统。

三、实验内容

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

 

试用 MATLAB 建立系统的传递函数模型、零极点增益模型及系统的状态空

间方程模型,并绘制系统零极点图。

实验代码:

num=[2 18 40];

den=[1 5 8 6];

Gtf=tf(num,den)

Gzpk=zpk(Gtf)

Gss=ss(Gtf)

pzmap(Gzpk);

grid on;

实验结果:

(1)首先建立系统的传递函数模型描述,上述程序的运行结果为:

Gtf =

2 s^2 + 18 s + 40

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

s^3 + 5 s^2 + 8 s + 6

(2)零极点增益模型为:

Gzpk =

2 (s+5) (s+4)

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

(s+3) (s^2 + 2s + 2)

系统零极点图为:

 

1.5

 

0.945

Pole-Zero Map

0.89 0.81

 

0.68

 

0.5

 

0.3

1

0.976

 

0.5 0.994

5

4

3

2

1

 

-0.5 0.994

 

-1

0.976

0.9450.890.810.680.50.3

-1.5

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

Real Axis (seconds-1)

(3)状态空间方程模型:

Gss =

a=

x1x2x3

x1-5-2 -1.5

x2400

x3010

 

b=

u1

x14

x20

x30

 

c=

x1x2x3

y10.5 1.1252.5

d=

u1

y10

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

 

试用 MATLAB 建立系统的传递函数模型、零极点增益模型及系统的状态空

间方程模型,并绘制系统零极点图。

实验代码:

a=[0 1 0 0;0 0 1 0;0 0 0 1;-1 -2 -3 -4];

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

c=[10 2 0 0];

d=[0];

Gss=ss(a,b,c,d)

Gtf=tf(Gss)

Gzpk=(Gss)

pzmap(Gzpk);

grid on;

实验结果:

(1)系统矩阵

a=

x1 x2 x3 x4

x10100

x20010

x30001

x4 -1 -2 -3 -4

 

b=

u1

x10

x20

x30

x41

 

c=

x1 x2 x3 x4

y1 10200

 

d=

u1

y10

2)再创建 ZPK 对象模型:

Gzpk =

a=

x1 x2 x3 x4

x10100

x20010

x30001

x4 -1 -2 -3 -4

 

b=

u1

x10

x20

x30

x41

 

c=

x1 x2 x3 x4

y1 10200

 

d=

u1

y10

(3)传递函数:

Gtf =

0.984

0.993

0.999

4

0.964          0.935         0.87     0.74    0.45

3                         2                         1

0.999

0.993

0.984

0.964          0.935         0.87     0.74    0.45

 

2 s + 10

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

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

(4)零极点图:

 

 

 

-1

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

 

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

实验代码:

num1=[2 6 5];

den1=[1 4 5 2];

G1=tf(num1,den1)

num2=[1 4 1];

den2=[1 9 8 0];

G2=tf(num2,den2)

z=[-3 -7];

p=[-1 -4 -6];

k=[5];

G3=zpk(z,p,k)

G=G1*G2*G3

实验结果:

G1 =

2 s^2 + 6 s + 5

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

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

G2 =

s^2 + 4 s + 1

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

s^3 + 9 s^2 + 8 s

G3 =

5 (s+3) (s+7)

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

(s+1) (s+4) (s+6)

G=

10 (s+3.732) (s+3) (s+7) (s+0.2679) (s^2 + 3s + 2.5)

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

s (s+8) (s+6) (s+4) (s+2) (s+1)^4

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

 

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

实验代码:

num1=[1];

den1=[1 1];

G1=tf(num1,den1);

num2=[1];

den2=[0.5 1];

G2=tf(num2,den2);

num3=[3];

den3=[1 0];

G3=tf(num3,den3);

H=G2;

G=(G1+G2)*G3;

Gtf=feedback(G,H,-1)

实验结果:

Gtf =

 

2.25 s^2 + 7.5 s + 6

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

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

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

 

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

实验代码:

num1=[10];

den1=[1 1];

G1=tf(num1,den1)

num2=[2];

den2=[1 1 0];

G2=tf(num2,den2);

num3=[1 3];

den3=[1 2];

H2=tf(num3,den3);

num4=[5 0];

den4=[1 6 8];

H1=tf(num4,den4);

G=G1*feedback(G2,H2,+1);

Gtf=feedback(G,H1,-1)

实验结果:

Gtf =

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

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

s^6 + 10 s^5 + 35 s^4 + 44 s^3 + 82 s^2 + 116 s - 48

四、体会和建议

本次实验比较基础,学习如何创建传递函数模型,并得到对应的零极点模型和状态空

间方程。

零极点图之前在理论课上画过,这次实验用 MATLAB 得以实现,非常直观和准确。

在做框图问题时,要细心和耐心,注意连接顺序和反馈的部分。

 

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

一、实验目的

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

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

二、实验原理

1、系统的暂态性能指标

控制系统的暂态性能指标常以一组时域量值的形式给出,这些指标通常由系统的单位

跃响应定义出来,这些指标分别为:

(1)延迟时间 td :

响应曲线首次到达稳态值的 50%所需的时间。

(2)上升时间 tr :

响应曲线从稳态值的 10%上升到 90%所需要的时间长,对于欠阻

系统,通常指响应曲线首次到达稳态值所需的时间。

(3)峰值时间 tp :

响应曲线第一次到达最大值的时间。

(4)调整时间 ts :

响应曲线开始进入并保持在允许的误差(±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。

这里简要介绍

LTIViewer 工具的使用方法。

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 绘制系统的单位阶跃响应曲线。

实验代码:

num=[80];

den=[1 2 0];

G=tf(num,den);//建立系统传递函数模型

T=feedback(G,1);//负反馈连接

step(T)

实验结果 :

 

1.8Step Response

1.6

1.4

1.2

1

0.8

0.6

0.4

0.2

0

0       1       2       3       4       5       6       7

Time (seconds)

2、已知二阶系统

 

(1)ζ= 0.6, wn =5,试用 MATLAB 绘制系统单位阶跃响应曲线,并求取

系统的暂态性能指标。

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

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

 

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

(1)使用 step 函数可以绘制系统的单位阶跃响应曲线

实验代码:

num1=[25];

den1=[1 6 25];

G1=tf(num1,den1)

step(G1)

实验结果:

 

1.4Step Response

1.2

1

0.8

0.6

0.4

0.2

0

0     0.2    0.4    0.6    0.8     1     1.2    1.4    1.6

Time (seconds)

求系统的暂态性能指标 :

在 workspace 中输入 ltiview,弹出 LTI Viewer

1)找到纵坐标为 0.5 的点,对应的时间为 0.271s,即 td=0.271s。

2)找到纵坐标为首次为 1 的点,对应的时间为 0.556s,即 tr=0.556s。

3)找到纵坐标首次首次达到最大值的点(最大值为 1.09),对应的时间为 0.784s,即

tp=0.784s。

4)找到纵坐标为 1.02 的点,对应的时间为 1.16s,即允许的误差取 2%时,ts=1.16s。

找到纵坐标为首次为 1.05 的点,对应的时间为 1.03s,即 ts=1.03s。

5)超调量σ =(1.09-1)/1*100%=9%

(2)取 ζ 分别为 0,0.5,1,1.5,2,分别求出单位阶跃响应

实验代码:

num2=[1];

den2=[1 0 1];

G2=tf(num2,den2);

 

num3=[1];

den3=[1 1 1];

G3=tf(num3,den3);

 

num4=[1];

den4=[1 2 1];

G4=tf(num4,den4);

 

num5=[1];

den5=[1 3 1];

G5=tf(num5,den5);

 

num6=[1];

den6=[1 4 1];

G6=tf(num6,den6);

 

ltiview

然后加入 G2~G6,用不同颜色绘制出图像。

放大,得到如下图形:

2.5

 

2

 

1.5

 

1

 

0.5

 

0

 

-0.5

Step Response

G2

G3

G4

G5

G6

 

0     5    10    15    20    25    30    35    40    45    50

Time (seconds)

(3)分别取 wn =0.2,0.4,0.6,0.8,1

实验代码:

num7=[0.04];

den7=[1 0.2 0.04];

G7=tf(num7,den7);

 

num8=[0.16];

den8=[1 0.4 0.16];

G8=tf(num8,den8);

 

num9=[0.36];

den9=[1 0.6 0.36];

G9=tf(num9,den9);

 

num10=[0.64];

den10=[1 0.8 0.64];

G10=tf(num10,den10);

 

num11=[1];

den11=[1 1 1];

G11=tf(num11,den11);

系统单位阶跃响应的变化情况如图所示:

1.4

 

1.2

 

1

 

0.8

 

0.6

 

0.4

 

0.2

 

0

Step Response

 

0         10        20        30        40        50        60

Time (seconds)

(4)实验结果分析

ξ 为阻尼比, wn 称为无阻尼自振荡角频率。

可以看出,保持 wn 不变,ξ 从 0 变化到

2 时,系统由无阻尼邓福振荡变成欠阻尼振荡,再到临界阻尼,最后达到过阻尼;而保持

ξ=0.5 不变, wn 从 0 变化到 1 时,系统处于欠阻尼状态,而 wn 越大,系统的上升时间、

峰值时间和过渡时间越小,超调量不变,越快到达稳定状态。

四、体会和建议

这次实验是研究系统的暂态特性,主要分析了上升时间、峰值时间、过渡时间、超调

量等,并分析了当 ξ 和 ωn 变化时,系统的单位阶跃响应会发生怎样的变化。

这次实验还

学习了使用 LTIVIEWER,这个工具使用方便很有用处。

 

实验 3 根轨迹分析

一、实验目的

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 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1