自动控制理论实验报告.docx

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

自动控制理论实验报告.docx

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

自动控制理论实验报告.docx

自动控制理论实验报告

本科实验报告

实验名称:

自动控制理论实验

课程名称:

自动控制理论

实验时间:

周二下午

任课教师:

马俊

实验地点:

4-447

实验教师:

实验类型:

√原理验证

□综合设计

□自主创新

学生姓名:

学号/班级:

组号:

学院:

同组搭档:

专业:

成绩:

 

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

一、实验目的

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

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

图1-2分别为串联连接、并联连接和反馈连接的结构框图和等效总传递函数。

 

G(s)=G1(s)G2(s)G(s)=G1(s)+G2(s)

(a)串联系统(b)并联系统

 

(c)反馈连接

在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)

gtf=

2s^2+18s+40

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

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

Gzpk=zpk(gtf)

Gzpk=

2(s+5)(s+4)

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

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

pzmap(Gzpk);

gridon

Gss=ss(gtf)

Gss=

a=

x1x2x3

x1-5-2-1.5

x2400

x3010

b=

u1

x14

x20

x30

c=

x1x2x3

y10.51.1252.5

d=

u1

y10

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

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

实验代码及结果:

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

B=[0;0;0;1];

C=[10200];

D=[0];

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

Gss=

a=

x1x2x3x4

x10100

x20010

x30001

x4-1-2-3-4

b=

u1

x10

x20

x30

x41

c=

x1x2x3x4

y110200

d=

u1

y10

Gtf=tf(Gss)

Gtf=

2s+10

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

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

Gzpk=zpk(Gss)

Gzpk=

2(s+5)

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

(s+3.234)(s+0.6724)(s^2+0.0936s+0.4599)

pzmap(Gzpk);

gridon

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

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

实验代码及结果:

a1=[265];

b1=[1452];

a2=[141];

b2=[1980];

z=[-3-7];

p=[-1-4-6];

k=[5];

g1=tf(a1,b1)

g1=

2s^2+6s+5

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

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

g2=tf(a2,b2)

g2=

s^2+4s+1

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

s^3+9s^2+8s

g3=zpk(z,p,k)

g3=

5(s+3)(s+7)

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

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

G=g1*g2*g3

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求该系统的闭环传递函数。

 

实验代码:

a1=[1];

b1=[11];

a2=[1];

b2=[0.51];

a3=[3];

b3=[10];

g1=tf(a1,b1)

g1=

1

----------

s+1

g2=tf(a2,b2)

g2=1

----------

0.5s+1

g3=tf(a3,b3)

g3=3

-------

s

a4=[1];

b4=[0.51];

g4=tf(a4,b4)

g4=

1

---------

0.5s+1

G=(g1+g2)*g3

G=

4.5s+6

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

0.5s^3+1.5s^2+s

T=feedback(G,g4)

T=

2.25s^2+7.5s+6

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

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

5.已知如图E2-2所示的系统框图,试用MATLAB求该系统的闭环传递函数。

 

实验代码:

a1=[10];

b1=[11];

a2=[2];

b2=[110];

a3=[13];

b3=[12];

a4=[50];

b4=[168];

g1=tf(a1,b1)

g1=

10

--------

s+1

g2=tf(a2,b2)

g2=

2

-----------

s^2+s

g3=tf(a3,b3)

g3=

s+3

--------

s+2

g4=tf(a4,b4)

g4=

5s

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

s^2+6s+8

G1=feedback(g2,g3,1)

G1=

2s+4

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

s^3+3s^2–6

G=g1*G1

G=

20s+40

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

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

T=feedback(G,g4)

T=

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

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

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

四、实验心得

经过第一节的自动控制理论实验,我学到了对于不同类型系统怎么用MATLAB去描述,并分析其特点。

如多项式描述,零极点描述以及状态空间描述。

这是我对课堂上所讲的系统的理论有了更好的了解。

 

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

一、实验目的

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

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

二、实验原理

1.系统的暂态性能指标

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

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

实验结果:

2.已知二阶系统

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

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

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

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

(1)实验代码:

wn=input('wn=');

a=input('w=');

num=[wn^2];

den=[12*wn*awn^2];

G=tf(num,den);

Ltiviem;

 

系统的单位阶跃响应曲线:

(2)实验代码:

fora=0:

0.5:

2

num=[1];

den=[12*1*a1];

G=tf(num,den);

step(G,20)

holdon

end

legend('=0','=0.5','=1','=1.5','=2');

系统的单位阶跃响应曲线:

(3)实验代码:

fora=0.2:

0.2:

1

num=[a^2];

den=[12*0.5*aa^2];

G=tf(num,den);

step(G,20)

holdon

end

legend('=0.2','=0.4','=0.6','=0.8','=1');

此系统的单位阶跃响应曲线:

(4)观察上述实验结果可得分析:

1.由

(2)中实验结果可知,在频率ωn不变的情况下,阻尼比ζ越大,上升时间和峰值时间就越长;超调量越小,响应的振荡倾向越弱,平衡性越好;

2.由(3)中实验结果可知,在阻尼比ζ不变的情况下,ωn越大,延迟时间、上升时间和峰值时间就越短;调节时间越短,快速性越好。

四、实验心得体会

第二次试验相对于第一次对于MATLAB的应用更加熟练,但是对于LTIViewer的使用不太了解,几个参数的测量刚开始只会通过分成好几张,设定测量点然后自己测。

后来才知道了怎么将几个图片放在一起然后测量,比较得出结论。

在这个实验中,我们对于一个系统的动态性能有了一个较好的认识和理解。

并且通过实验中自己的对于频率和阻尼比的改变,观察到这两个参数对于系统的影响,并且清楚的知道,这个参数会影响哪些动态指标,而且是知道怎么影响的。

 

实验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图,求出幅度裕度和相位裕度,判断闭环系统的稳定性。

实验代码:

num1=10*[25/165/41];

den1=conv([1,0,0],conv([10/3,1],conv([0.2/3,1],[1/40,1])));

G1=tf(num1,den1);

pzmap(G1);

实验结果:

极点全部在左半平面,所以系统是稳定的。

bode(G1);

margin(G1);

在Bode图中,相位裕度是

,大于

,所以系统是稳定的。

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

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

实验代码:

k=input('k=');

num1=[k];

den1=conv([1,0],conv([1,1],[0.1,1]));

G1=tf(num1,den1)

bode(G1);

margin(G1);

当k=5时的实验结果:

当k=20时的实验结果:

 

四、实验心得

这次实验是画出开环的系统的Nyquist图和Bode图并作出对于系统的分析。

通过实验中的Nyquist图来判断系统的稳定性。

在Nyquist图中,虚轴右边的根轨迹的系统,一定不稳定。

在Bode图中,相位裕度大于0的系统是稳定系统。

所以当实验做出来后就可以根据各自的判定条件去判断系统的稳定性。

实验六极点配置与全维状态观测器

一.实验目的

1.加深对状态反馈的理解;

2.学习和掌握状态反馈观测器的设计;

二.实验原理

①acker函数:

用法为:

k=acker(A,B,P)。

其中,A、B为系统的状态空间模型矩阵,向量P中是期望的闭环极点位置,返回值是增益向量。

②place函数:

用法为:

K=place(A,B,P)或[K,prec,message]=place(A,B,P)。

其中,A、B为系统的状态空间模型矩阵,向量P中是期望的闭环极点位置,返回值是增益向量。

③estim函数:

用法为:

est=estim(sys,L)或est=estim(sys,L,sensors,known)。

其中,L是估计器增益矩阵,sys是线性定常系统的状态空间模型,返回值est是模型sys的状态估计器。

参数sensor和known是向量,它们指定可以测定的输出和已知的输入,产生的估计器est用它们计算输出和状态的估计。

④reg函数:

用法为:

rsys=reg(sys,K,L)和rsys=reg(sys,K,L,sensors,known,controls)。

其中,K和L分别是状态反馈增益矩阵和估计器增益矩阵.返回值rsys是模型sys的动态补偿器。

向量sensor和known的作用与函数estim中的参数相同,参数controls指定可控的输入。

三.实验内容

1.

(1)判断系统稳定性

A=[-2-11;101;-101];

eig(A)

ans=

-1.0000+1.0000i

-1.0000-1.0000i

1.0000+0.0000i

从系统的特征值可以看出,系统有位于右半平面的极点,所以系统不稳定;

(2)

极点配置后状态反馈矩阵:

实验代码:

A=[-2-11;101;-101];

B=[1;1;1];

P=[-1-2-3];

K=place(A,B,P)

K=

-1.00002.00004.0000

(3)状态反馈和输出反馈的关系

定义:

状态反馈是将系统的每一个状态变量乘以相应的反馈系数,然后反馈到输入端与参与输入相加形成控制律,作为受控系统的控制输入;输出反馈是采用输出矢量构成线性反馈律。

在经典控制理论中主要讨论这种反馈形式;

作用:

状态反馈阵K的引入,并不增加系统的维数,但可通过K的选择自由地改变闭环系统的特征值,从而使系统获得所要求的性能;输出反馈通过选择输出反馈增益阵H也可以改变闭环系统的特征值,从而改变系统的控制特性。

比较:

上述两种基本形式的反馈可以看出,输出反馈中的HC与状态反馈中的K相当。

但是H可供选择的自由度远比K小,因而输出反馈只能相当于一部分状态反馈。

因此,在不增加补偿器的条件下,输出反馈的效果显然不如状态反馈系统好。

但输出反馈在技术实现上的方便性则是其突出优点。

(4)使用状态反馈的前提:

只要给定的系

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

当前位置:首页 > 经管营销 > 销售营销

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

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