北理工自动控制理论实验报告.docx
- 文档编号:8106873
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:29
- 大小:587.90KB
北理工自动控制理论实验报告.docx
《北理工自动控制理论实验报告.docx》由会员分享,可在线阅读,更多相关《北理工自动控制理论实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
北理工自动控制理论实验报告
本科实验报告
实验名称:
控制理论基础(实验)
课程名称:
控制理论基础
实验时间:
任课教师:
王卫江
实验地点:
10-906
实验教师:
闫宇松
实验类型:
■原理验证
□综合设计
□自主创新
学生姓名:
王雅珊
学号/班级:
19/05111361
组号:
学院:
信息与电子学院
同组搭档:
专业:
信息工程菁英班
成绩:
实验一:
控制系统的模型建立
一、实验目的
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=[21840];
den=[1586];%描述系统的传递函数模型的分子分母多项式系数向量
Gtf=tf(num,den);%调用tf函数建立系统模型
Gzpk=zpk(Gtf);%调用zpk函数,实现从函数模型到零极点增益模型的转换
Gss=ss(Gtf);%调用ss函数建立系统模型
pzmap(Gzpk);
gridon;
实验结果:
(1)首先建立系统的传递函数模型描述,上述程序的运行结果为:
Gtf=
2s^2+18s+40
---------------------
s^3+5s^2+8s+6
(2)零极点增益模型为:
Gzpk=
2(s+5)(s+4)
--------------------
(s+3)(s^2+2s+2)
(3)系统的状态空间方程模型
Gss=
a=
x1x2x3
x1-5-2
x2400
x3010
b=
u1
x14
x20
x30
c=
x1x2x3
y1
d=
u1
y10
(4)系统零极点图
2、已知控制系统的状态空间方程如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
实验代码:
a=[0100;0010;0001;-1-2-3-4];
b=[0;0;0;1];
c=[10200];
d=[0];%写出系统的A、B、C、D矩阵
Gss=ss(a,b,c,d);%调用ss函数建立系统模型
Gtf=tf(Gss);%调用tf函数建立系统模型
Gzpk=(Gss);%调用zpk函数,实现从函数模型到零极点增益模型的转换
pzmap(Gzpk);
gridon;
实验结果:
(1)系统矩阵
>>a
a=
0100
0010
0001
-1-2-3-4
>>b
b=
0
0
0
1
>>c
c=
10200
>>d
d=
0
(2)再创建ZPK对象模型:
Gzpk=
a=
x1x2x3x4
x10100
x20010
x30001
x4-1-2-3-4
b=
u1
x10
x20
x30
x41
c=
x1x2x3x4
y110200
d=
u1
y10
(3)传递函数:
Gtf=
2s+10
-----------------------------
s^4+4s^3+3s^2+2s+1
(4)零极点图:
3、已知三个系统的传递函数分别为
试用MATLAB求上述三个系统串联后的总传递函数。
实验代码:
num1=[265];
den1=[1452];%描述系统的传递函数模型的分子分母多项式系数向量
G1=tf(num1,den1);%调用tf函数建立系统模型
num2=[141];
den2=[1980];%同上
G2=tf(num2,den2);%同上
z=[-3-7];
p=[-1-4-6];
k=[5];%用[z,p,k]矢量组表示系统
G3=zpk(z,p,k);%调用zpk函数,实现从函数模型到零极点增益模型的转换
G=G1*G2*G3
实验结果:
G1=
2s^2+6s+5
---------------------
s^3+4s^2+5s+2
Continuous-timetransferfunction.
>>G2
G2=
s^2+4s+1
-----------------
s^3+9s^2+8s
Continuous-timetransferfunction.
>>G3
G3=
5(s+3)(s+7)
-----------------
(s+1)(s+4)(s+6)
Continuous-timezero/pole/gainmodel.
>>G
G=
10(s+(s+3)(s+7)(s+(s^2+3s+
----------------------------------------------------
s(s+8)(s+6)(s+4)(s+2)(s+1)^4
4、已知如下图所示的系统框图
试用MATLAB求该系统的闭环传递函数。
实验代码:
num1=[1];
den1=[11];%描述系统的传递函数模型的分子分母多项式系数向量
G1=tf(num1,den1);%调用tf函数建立系统模型
num2=[1];
den2=[1];%同上
G2=tf(num2,den2);%同上
num3=[3];
den3=[10];
G3=tf(num3,den3);
H=G2;
G=(G1+G2)*G3;
Gtf=feedback(G,H,-1)
实验结果
Gtf=
s^2+s+6
---------------------------------------
s^4+s^3+2s^2+s+6
5、已知如下图所示的系统框图
实验代码:
num1=[10];
den1=[11];%描述系统的传递函数模型的分子分母多项式系数向量
G1=tf(num1,den1);%调用tf函数建立系统模型
num2=[2];
den2=[110];
G2=tf(num2,den2);
num3=[13];
den3=[12];
H2=tf(num3,den3);
num4=[50];
den4=[168];
H1=tf(num4,den4);
G=G1*feedback(G2,H2,+1);
Gtf=feedback(G,H1,-1)
实验结果:
Gtf=
20s^3+160s^2+400s+320
----------------------------------------------------
s^6+10s^5+35s^4+44s^3+82s^2+116s-48
四、实验体会
本次实验比较基础,学习如何用matlab创建传递函数模型,并得到对应的零极点模型和状态空间方程。
在理论课上学习的内容,通过软件matlab让我更直观的感受传函的几种描述方式,还有各个模式之间的转换关系。
实验2控制系统的暂态特性分析
一、实验目的
1.学习和掌握利用MATLAB进行系统时域响应求解和仿真的方法。
2.考察二阶系统的时间响应,研究二阶系统参数对系统暂态特性的影响。
二、实验原理
系统的暂态性能指标
控制系统的暂态性能指标常以一组时域量值的形式给出,这些指标通常由系统的单位阶跃响应定义出来,这些指标分别为:
(1)延迟时间:
响应曲线首次到达稳态值的50%所需的时间。
(2)上升时间:
响应曲线从稳态值的10%上升到90%所需要的时间长,对于欠阻尼系统,通常指响应曲线首次到达稳态值所需的时间。
(3)峰值时间:
响应曲线第一次到达最大值的时间。
(4)调整时间:
响应曲线开始进入并保持在允许的误差(±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(…)该调用格式不绘出响应波形,而是返回响应的数值向量及其对应的时间向量。
系统的暂态性能指标可以根据上述定义,在响应曲线上用鼠标读取关键点或通过搜索曲线对应的数值向量中关键点来确定。
三、实验内容
1.已知单位负反馈系统前向通道的传递函数为
试用MATLAB绘制系统的单位阶跃响应曲线。
实验代码:
num=[80];
den=[120];
G=tf(num,den)
T=feedback(G,1);
step(T)
实验结果:
实验分析:
根据开环传递函数(前向通路)及反馈类型找到系统闭环传递函数,绘制阶跃响应曲线。
由响应曲线可以看出,二阶单位负反馈系统单位阶跃响应的稳态值为1,系统震荡逐渐衰减。
2.已知二阶系统
(1)ζ=,ωn=5,试用MATLAB绘制系统单位阶跃响应曲线,并求取系统的暂态性能指标。
(2)ωn=1,ζ从0变化到2,求此系统的单位阶跃响应。
(3)ζ=,ωn从0变化到1(ωn≠0),求此系统的单位阶跃响应。
(4)观察上述实验结果,分析这两个特征参数对系统暂态特性的影响。
(1)实验代码:
v=5;
e=;
t=[0:
:
10];
num=[v^2];
den=[1,2*e*v,v^2];
G=tf(num,den);
step(G,8)
系统的单位阶跃响应曲线:
Tp=
Td=
Tr=
Ts=
(2)实验代码:
fora=0:
:
2
num=[1];
den=[12*1*a1];
G=tf(num,den);
step(G,20)
holdon
end
legend('=0','=','=1','=','=2');
实验结果:
系统的单位阶跃响应曲线:
实验分析:
随着ζ从0增加到2,频响逐步减弱,在ζ=0时候,是无阻尼振荡,表现为等幅振荡,不稳定;随着ζ增大,进入欠阻尼状态,振荡减小。
ζ=1的时候为临界阻尼振荡,ζ>1的时候是过阻尼状态,此时已经没有振荡产生。
(3)实验代码:
fora=:
:
1
num=[a^2];
den=[12**aa^2];
G=tf(num,den);
step(G,20)
holdon
end
legend('=','=','=','=','=1');
此系统的单位阶跃响应曲线:
(4)由
(2)中实验结果可知,在频率ωn不变的情况下,阻尼比ζ越大,上升时间和峰值时间就越长;超调量越小,响应的振荡倾向越弱,平衡性越好;由(3)中实验结果可知,在阻尼比ζ不变的情况下,ωn越大,延迟时间、上升时间和峰值时间就越短;调节时间越短,快速性越好。
四、实验心得体会
在本次实验中,我们对于一个系统的动态性能有了一个较好的认识和理解。
通过实验中对于频率和阻尼比的改变,观察到这两个参数会影响系统的哪些动态指标。
通过matlab实验我能够将课堂上学习到的东西在实验中得到验证,对课堂上的知识有了更深的认识。
同时通过这次实验,我深化认识了系统的开环、闭环区别。
实验4系统的频率特性分析
一、实验目的
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图,并讨论其稳定性。
实验代码:
num1=[1000];
den1=[132];
G1=tf(num1,den1);
num2=[1];
den2=[15];
G2=tf(num2,den2);
G=G1*G2;
nyquist(G);
实验结果:
在(-1,j0)左侧正穿越0次,负穿越2次,所以正负穿越之差为-2,不满足稳定判据,所以是闭环不稳定的。
2.已知系统的开环传递函数为
(1)绘制系统的零极点图,根据零极点分布判断系统的稳定性。
(2)绘制系统Bode图,求出幅度裕度和相位裕度,判断闭环系统的稳定性。
(1)实验代码:
num1=10*[25/165/41];
den1=conv([1,0,0],conv([10/3,1],conv([3,1],[1/40,1])));
G1=tf(num1,den1);
pzmap(G1);
实验结果:
极点全部在左半平面,所以系统是稳定的。
(2)
bode(G1);
margin(G1);
相位裕度是
,幅值裕度为。
在Bode图中,相位裕度是
,大于
,所以系统是稳定的。
3.已知系统的开环传递函数为
分别判断当开环放大系数K=5和K=20时闭环系统的稳定性,并求出幅度裕度和相位裕度。
实验代码:
k=input('k=');
num1=[k];
den1=conv([1,0],conv([1,1],[,1]));
G1=tf(num1,den1)
bode(G1);
margin(G1);
当k=5时的实验结果:
由图可知:
相位裕度:
度幅值裕度:
闭环稳定
当k=20时的实验结果
相位裕度:
度幅值裕度:
闭环不稳定
四、实验心得
这次实验是画出开环的系统的Nyquist图和Bode图并作出对于系统的分析。
实际中闭环函数往往不好求得,但是只要通过系统的开环传递函数的耐奎斯特图和波特图就通过开环函数的特性便可以简便地判定闭环稳定性。
这也是我们课堂上的主要内容。
本次实验使我对课堂上的内容有了更深的了解。
实验6极点配置与全维状态观测器的设计
一、实验目的
1.加深对状态反馈作用的理解。
2.学习和掌握状态观测器的设计方法。
二、实验原理
在MATLAB中,可以使用acker和place函数来进行极点配置,函数的使用方法如下:
K=acker(A,B,P)A,B为系统系数矩阵,P为配置极点,K为反馈增益矩阵。
K=place(A,B,P)A,B为系统系数矩阵,P为配置极点,K为反馈增益矩阵。
[K,PREC,MESSAGE]=place(A,B,P)A,B为系统系数矩阵,P为配置极点,K为反馈增益矩阵,PREC为特征值,MESSAGE为配置中的出错信息。
三、实验内容
1.已知系统
(1)判断系统稳定性,说明原因。
(2)若不稳定,进行极点配置,期望极点:
-1,-2,-3,求出状态反馈矩阵k。
(3)讨论状态反馈与输出反馈的关系,说明状态反馈为何能进行极点配置
(4)使用状态反馈的前提条件是什么
(1)
(2)代码:
a=[-2-11;101;-101];
b=[1,1,1]';
p=[-1,-2,-3]';
K=acker(a,b,p)
结果:
K=
-124
(3)在经典控制理论中,一般只考虑由系统的输出变量来构成反馈律,即输出反馈。
在现代控制理论的状态空间分析方法中,多考虑采用状态变量来构成反馈律,即状态反馈。
从状态空间模型输出方程可以看出,输出反馈可视为状态反馈的一个特例。
状态反馈可以提供更多的补偿信息,只要状态进行简单的计算再反馈,就可以获得优良的控制性能。
给定线性定常连续系统
确定反馈控制律
使得状态反馈闭环系统的闭环极点配置在指定的n个期望的闭环极点,即
(4)使用状态反馈配置极点的前提是系统的状态是完全可控的。
2.已知系统
设计全维状态观测器,使观测器的极点配置在-2±j。
(1)给出原系统的状态曲线。
(2)给出观测器的状态曲线并加以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北理工 自动控制 理论 实验 报告