北京理工大学自动控制原理实验报告.docx
- 文档编号:5965665
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:43
- 大小:78.34KB
北京理工大学自动控制原理实验报告.docx
《北京理工大学自动控制原理实验报告.docx》由会员分享,可在线阅读,更多相关《北京理工大学自动控制原理实验报告.docx(43页珍藏版)》请在冰豆网上搜索。
北京理工大学自动控制原理实验报告
课程名称:
控制理论基础
实验时间:
任课教师:
实验地点:
实验教师:
实验类型:
□ 原理验证
□ 综合设计
□ 自主创新
学生姓名:
学号/班级:
组 号:
学 院:
同组搭档:
专 业:
成 绩:
本科实验报告
实验名称:
控制理论基础实验
实验 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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京理工大学 自动控制 原理 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)