线控实验报告电子版.docx

上传人:b****6 文档编号:8405130 上传时间:2023-01-31 格式:DOCX 页数:49 大小:319.15KB
下载 相关 举报
线控实验报告电子版.docx_第1页
第1页 / 共49页
线控实验报告电子版.docx_第2页
第2页 / 共49页
线控实验报告电子版.docx_第3页
第3页 / 共49页
线控实验报告电子版.docx_第4页
第4页 / 共49页
线控实验报告电子版.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

线控实验报告电子版.docx

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

线控实验报告电子版.docx

线控实验报告电子版

实验报告

 

课程名称:

线性系统理论基础

院(系):

信息与控制工程学院

****************************

学号:

1

专业班级:

自动化1301

************************

 

2016年5月

 

实验报告

课程线性系统理论基础实验日期2016年5月24日

专业班级自动化1301姓名杨镭学号1同组人

实验名称实验一MATLAB控制工具箱的应用及线性系统的运动分析评分

批阅教师签字

一、实验目的

1、学习掌握MATLAB控制工具箱中的基本命令的操作方法;

2、掌握线性系统的运动分析方法。

二、实验内容

(1)自选控制对象模型,应用以下命令,并写出结果。

step,damp,pzmap,rlocus,rlocfind,bode,margin,nyquist;

tf2ss,ss2tf,tf2zp,zp2ss;

ss2ss,jordan,canon,eig。

(2)掌握线性系统的运动分析方法

1)已知

,求

(用三种方法求解)

2)利用MATLAB求解书上例题,并画出状态响应和输出响应曲线,求解时域性能指标。

(加图标题、坐标轴标注及图标)

3)利用MATLAB求解书上例题(

),并画出状态响应和输出响应曲线。

(加图标题、坐标轴标注及图标)

4)P36

(2)(3);P56(3)

三、实验环境

1、计算机120台;

2、软件1套。

四、实验原理(或程序框图)及步骤

学习掌握MATLAB控制工具箱中基本命令的操作

设系统的模型如式(1-1)所示:

(1-1)

其中A为n×n维系数矩阵;B为n×m维输入矩阵;C为p×n维输出矩阵;D为p×m维传递矩阵,一般情况下为0。

系统的传递函数阵和状态空间表达式之间的关系如式(1-2)所示:

(1-2)

式(1-2)中,

表示传递函数阵的分子阵,其维数是p×m;

表示传递函数阵的分母多项式,按s降幂排列的后,各项系数用向量表示。

五、程序源代码及运行结果

1、自选控制对象模型,应用以下命令,并写出结果。

Step:

系统单位阶跃响应。

Damp:

计算机系统模型固有频率。

Pzmap:

绘制连续系统零极点。

Rlocus:

求系统根轨迹。

Rlocfind:

计算与根轨迹上极点对应的根轨迹增益。

Bode:

绘制给定系统的伯德图。

Margin:

求给定系统的增益裕度和相位裕度。

Nyquist:

绘制给定系统的奈氏图。

tf2ss:

传递函数阵转换为状态空间模型。

ss2tf:

状态空间模型转换为传递函数阵。

tf2zp:

将系统传递函数形式转换为零极点增益形式。

zp2tf:

将零极点形式转换为传递函数形式。

Jordon:

计算广义特征向量。

Canco:

将传递函数模型转换得到状态空间模型规范形。

Eig:

求矩阵全部特征值。

1)step,damp,pzmap,rlocus,rlocfind,bode,margin,nyquist

a=[010;001;-4-3-2];

b=[1;3;-6];

c=[100];

d=0;

[num,den]=ss2tf(a,b,c,d,1);

sys=tf(num,den);

step(sys)

damp(sys)

pzmap(sys)

rlocus(sys)

rlocfind(sys)

bode(sys)

margin(sys)

nyquist(sys)

Step:

Damp:

damp(sys)

EigenvalueDampingFreq.(rad/s)

++000i+000

-+000i+000

+000+000+000

Pzmap:

Rlocus,rlocfind:

selected_point=

+

ans=

Bode,margin:

Nyquist

2、掌握线性系统的运动分析方法。

1)已知A=

,求

(用三种方法求解)

解法一程序:

A=[01;-2-3];

>>symst;

>>eat1=expm(A*t)

运行结果:

eat1=

[2/exp(t)-1/exp(2*t),1/exp(t)-1/exp(2*t)]

[2/exp(2*t)-2/exp(t),2/exp(2*t)-1/exp(t)]

解法二程序:

A=[01;-2-3];

symsst;

G=inv(s*eye(size(A))-A)

eat2=ilaplace(G)

运行结果:

G=

[(s+3)/(s^2+3*s+2),1/(s^2+3*s+2)]

[-2/(s^2+3*s+2),s/(s^2+3*s+2)]

eat2=

[2/exp(t)-1/exp(2*t),1/exp(t)-1/exp(2*t)]

[2/exp(2*t)-2/exp(t),2/exp(2*t)-1/exp(t)]

解法三程序:

A=[01;-2-3];

symss;

[P,D]=eig(A);

Q=inv(P);

eat3=P*expm(D*t)*Q

运行结果:

eat3=

[2/exp(t)-1/exp(2*t),1/exp(t)-1/exp(2*t)]

[2/exp(2*t)-2/exp(t),2/exp(2*t)-1/exp(t)]

2)利用MATLAB求解课本例题,并画出状态响应和输出响应曲线,求解时域性能指标。

(加图标题、坐标轴标注及图标)

实验程序:

a=[-10;0-2];b=[1;1];

c=[];d=0;

G=ss(a,b,c,d);

x0=[2;3];

symsst;

G0=inv(s*eye(size(a))-a);

x1=ilaplace(G0)*x0

G1=inv(s*eye(size(a))-a)*b;

x2=ilaplace(G1/s)

x=x1+x2

y=c*x

forI=1:

61;

tt=*(I-1);

xt(:

I)=subs(x(:

),'t',tt);

yt(I)=subs(y,'t',tt);

end;

plot(0:

60,[xt;yt]);

title('系统状态响应和输出响应');

xlabel('t(s)');

ylabel('输出');

legend('状态响应x2','状态响应x1','输出响应');

grid;

运行结果:

x1=

2/exp(t)

3/exp(2*t)

x2=

1-1/exp(t)

1/2-1/(2*exp(2*t))

x=

1/exp(t)+1

5/(2*exp(2*t))+1/2

y=

3/(2*exp(t))+5/(4*exp(2*t))+7/4

系统状态响应和输出响应:

利用MATLAB求解课本例题,并画出状态响应和输出响应曲线。

实验程序:

G=[01;-1];h=[1;1];

x0=[1;-1];

symsznk;

G0=inv(z*eye(size(G))-G)*z;

thtak=iztrans(G0,k)

uz=z/(z-1);

xk=iztrans(G0*x0+G0/z*h*uz)

n=0:

1:

60;

xk1=-17/6*(-1/5).^n+22/9*(-4/5).^n+25/18;

xk2=17/30*(-1/5).^n-88/45*(-4/5).^n+7/18;

plot(n,xk1,n,xk2)

运行结果:

thtak=

[4/3*(-1/5)^k-1/3*(-4/5)^k,5/3*(-1/5)^k-5/3*(-4/5)^k]

[-4/15*(-1/5)^k+4/15*(-4/5)^k,-1/3*(-1/5)^k+4/3*(-4/5)^k]

xk=

[-17/6*(-1/5)^n+22/9*(-4/5)^n+25/18]

[17/30*(-1/5)^n-88/45*(-4/5)^n+7/18]

完成以下实验。

P36

(2)

实验程序:

a=[214;020;001];

b=[10;34;21];

c=[351];

d=0;

[num,den]=ss2tf(a,b,c,d,1)

运行结果:

num=

0

den=

1-58-4

(3)

实验程序:

num=[1422;0311];

den=[1232];

[a,b,c,d]=tf2ss(num,den)

运行结果:

a=

-2-3-2

100

010

b=

1

0

0

c=

2-10

311

d=

1

0

P56(3)

实验程序:

a=[01;-6-5];

b=[1;0];

c=[1-1];d=0;

>>G=ss(a,b,c,d);

>>x0=[1;1];

>>symsst;

>>G0=inv(s*eye(size(a))-a);

>>x1=ilaplace(G0)*x0;

>>G1=inv(s*eye(size(a))-a)*b;

>>x2=ilaplace(G1/s);

>>x=x1+x2;

>>y=c*x

运行结果:

y=

-28/3*exp(-3*t)+15/2*exp(-2*t)+11/6

x1=

[-3*exp(-3*t)+4*exp(-2*t)]

[-8*exp(-2*t)+9*exp(-3*t)]

x2=

[2/3*exp(-3*t)-3/2*exp(-2*t)+5/6]

[-1+3*exp(-2*t)-2*exp(-3*t)]

x=

[-7/3*exp(-3*t)+5/2*exp(-2*t)+5/6]

 

 

实验报告

课程线性系统理论基础实验日期2016年5月24日

专业班级自动化1301姓名杨镭学号1同组人

实验名称实验二系统的能控性、能观测性、稳定性分析及实现评分

批阅教师签字

一、实验目的

加深理解能观测性、能控性、稳定性、最小实现等观念。

掌握如何使用MATLAB进行以下分析和实现:

1、系统的能观测性、能控性分析;

2、系统的稳定性分析;

3、系统的最小实现。

二、实验内容

(1)能控性、能观测性及系统实现

(a)了解以下命令的功能;自选对象模型,进行运算,并写出结果。

gram,ctrb,obsv,lyap,ctrbf,obsvf,minreal;

(b)已知连续系统的传递函数模型,

,当a分别取-1,0,1时,判别系统的能控性与能观测性;

(c)已知系统矩阵为

,判别系统的能控性与能观测性;

(d)求系统

的最小实现。

(2)稳定性

(a)代数法稳定性判据

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

,试对系统闭环判别其稳定性

(b)根轨迹法判断系统稳定性

已知一个单位负反馈系统开环传递函数为

,试在系统的闭环根轨迹图上选择一点,求出该点的增益及其系统的闭环极点位置,并判断在该点系统闭环的稳定性。

(c)Bode图法判断系统稳定性

已知两个单位负反馈系统的开环传递函数分别为

用Bode图法判断系统闭环的稳定性。

(d)判断下列系统是否状态渐近稳定、是否BIBO稳定。

三、实验环境

1、计算机120台;

2、软件1套。

四、实验原理(或程序框图)及步骤

系统能控性、能观性分析

系统的能控性、能观测性分析是多变量系统设计的基础,包括能控性、能观测性的定义和判别。

系统能控性

系统状态能控性定义的核心是:

对于线性连续定常系统,若存在一个分段连续的输入函数u(t),在有限的时间(t1-t0)内,能把任一给定的初态x(t0)转移至预期的终端x(t1),则称此状态是能控的。

若系统所有的状态都是能控的,则称该系统是状态完全能控的。

能控性判别分为状态能控性判别和输出能控性判别。

状态能控性分为一般判别和直接判别法,后者是针对系统的系数阵A是对角标准形或约当标准形的系统,状态能控性判别时不用计算,应用公式直接判断,是一种直接简易法;前者状态能控性分为一般判别是应用最广泛的一种判别法。

输出能控性判别式为:

(2-1)

状态能控性判别式为:

(2-2)

系统能观测性

系统状态能观测性的定义:

对于线性连续定常系统,如果对t0时刻存在ta,t0

,根据[t0,ta]上的y(t)的测量值,能够唯一地确定系统在t0时刻的任意初始状态x0,则称系统在t0时刻是状态完全能观测的,或简称系统在[t0,ta]区间上能观测。

状态能观测性也分为一般判别和直接判别法,后者是针对系统的系数阵A是对角标准形或约当标准形的系统,状态能观性判别时不用计算,应用公式直接判断,是一种直接简易法;前者状态能观测性分为一般判别是应用最广泛的一种判别法。

状态能观测性判别式为:

(2-3)

系统的传递函数阵和状态空间表达式之间的有(1-2)式所示关系。

已知系统的传递函数阵表述,求其满足(1-2)式所示关系的状态空间表达式,称为实现。

实现的方式不唯一,实现也不唯一。

其中,当状态矩阵A具有最小阶次的实现称为最小实现,此时实现具有最简形式。

五、程序源代码及运行结果

(1)能控性、能观测性及系统实现

(a)了解以下命令的功能;自选对象模型,进行运算,并写出结果。

gram,ctrb,obsv,lyap,ctrbf,obsvf,minreal;

1gram命令:

求解用状态空间向量表示的系统的能控性或能观性Gramian矩阵

实验程序:

a=[010;001;-6-11-6];b=[01;10;01];c=[101;010];d=0;

G=ss(a,b,c,d);

wc=gram(G,'c')

wo=gram(G,'o')

运行结果:

wc=

wo=

2ctrb命令:

求系统的能控性判别矩阵

实验程序:

Qc=ctrb(A,B)

n=length(A);

nc=rank(Qc);

ifn==nc,disp('系统完全能控'),

elsedisp('系统不完全能控'),end

运行结果:

Qc=

011001

1001-11-12

01-11-126061

系统完全能控

3obsv命令:

求系统的能观测性判别矩阵

实验程序:

Qo=obsv(A,C)

no=rank(Qo);

ifn==no,disp('系统完全能观'),

elsedisp('系统不完全能观'),end

运行结果:

Qo=

101

010

-6-10-6

001

366026

-6-11-6

系统完全能观

4lyap命令:

构造系统的Lyaponov函数

实验程序:

A1=A';

Q=eye(3,3);

P=lyap(A1,Q)

运行结果:

P=

5ctrbf命令:

对状态空间模型进行能控性分解

实验程序:

[A1,B1,C1,T,K]=ctrbf(A,B,C)

运行结果:

A1=

0

B1=

0

0

0

C1=

0

00

T=

0

00

0

K=

210

6obsvf命令:

对状态空间模型进行能观性分解

实验程序:

[A2,B2,C2,T,K]=obsvf(A,B,C)

运行结果:

A2=

0

B2=

0

0

0

C2=

0

00

T=

0

00

0

K=

210

7minreal命令:

求系统状态空间表达式的最小实现

实验程序:

Gm=minreal(G);

Am1=

Bm1=

Cm1=

Dm1=

运行结果:

Am1=

010

001

-6-11-6

Bm1=

01

10

01

Cm1=

101

010

Dm1=

00

00

(b)已知连续系统的传递函数模型,

,当a分别取-1,0,1时,判别系统的能控性与能观测性;

①a=-1时:

源程序:

num=[1-1];den=[1102718];a=-1;

[A,B,C,D]=tf2ss(num,den);

Qc=ctrb(A,B)

n=length(A);

nc=rank(Qc);

ifn==nc,disp('系统完全能控'),

elsedisp('系统不完全能控'),end

Qo=obsv(A,C)

no=rank(Qo);

ifn==no,disp('系统完全能观'),

elsedisp('系统不完全能观'),end

运行结果:

Qc=

1-1073

01-10

001

系统完全能控

Qo=

01-1

1-10

-11-27-18

系统完全能观

②a=0时:

源程序:

num=[10];

Qc=ctrb(A,B)

nc=rank(Qc);

ifn==nc,disp('系统完全能控'),

elsedisp('系统不完全能控'),end

Qo=obsv(A,C)

no=rank(Qo);

ifn==no,disp('系统完全能观'),

elsedisp('系统不完全能观'),end

运行结果:

Qc=

1-1073

01-10

001

系统完全能控

Qo=

01-1

1-10

-11-27-18

系统完全能观

③a=1时:

源程序:

num=[11];

Qc=ctrb(A,B)

nc=rank(Qc);

ifn==nc,disp('系统完全能控'),

elsedisp('系统不完全能控'),end

Qo=obsv(A,C)

no=rank(Qo);

ifn==no,disp('系统完全能观'),

elsedisp('系统不完全能观'),end

运行结果:

Qc=

1-1073

01-10

001

系统完全能控

Qo=

01-1

1-10

-11-27-18

系统完全能观

(c)已知系统矩阵为

,判别系统的能控性与能观测性;

源程序:

A=[;101;012];B=[0;1;1];C=[102];

n=length(A);

Qc=ctrb(A,B)

nc=rank(Qc);

ifn==nc,disp('系统完全能控'),

elsedisp('系统不完全能控'),end

Qo=obsv(A,C)

no=rank(Qo);

ifn==no,disp('系统完全能观'),

elsedisp('系统不完全能观'),end

运行结果:

Qc=

0

系统完全能控

Qo=

0

系统完全能观

(d)求系统

的最小实现。

源程序:

num=[11];den=[1102718];

G=tf(num,den);Gs=ss(G);

Gm=minreal(Gs);

Am=

Bm=

Cm=

Dm=

运行结果:

1stateremoved.

Am=

Bm=

Cm=

Dm=

0

(2)稳定性

(a)代数法稳定性判据

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

,试对系统闭环判别其稳定性

源程序:

n1=[100];n2=[12];

d1=[10];d2=[11];d3=[120];

gkn=conv(n1,n2);gdk=conv(conv(C,D),E);

[num,den]=cloop(gkn,gdk);

disp('极点:

')

p=roots(den)

ss=find(real(p)>0);

tt=length(ss);

if(tt>0)

disp('系统不稳定')

else

disp('系统稳定')

end

运行结果:

极点:

p=

系统稳定

(b)根轨迹法判断系统稳定性

已知一个单位负反馈系统开环传递函数为

,试在系统的闭环根轨迹图上选择一点,求出该点的增益及其系统的闭环极点位置,并判断在该点系统闭环的稳定性。

源程序:

n1=1;

d1=conv([010],conv([015],conv([016],[122])));

s1=tf(n1,d1);

rlocus(s1);

[k,poles]=rlocfind(s1)

title('系统闭环根轨迹')

xlabel('实轴');ylabel('虚轴');

ss=find(real(poles)>0);

tt=length(ss);

if(tt>0)

disp('系统不稳定')

else

disp('系统稳定')

end

运行结果:

Selectapointinthegraphicswindow

selected_point=

-

k=

poles=

+

-

系统稳定

(c)Bode图法判断系统稳定性

已知两个单位负反馈系统的开环传递函数分别为

用Bode图法判断系统闭环的稳定性。

源程序:

p=bodeoptions;

='on';

='Hz';

num1=[];den1=[1540];num2=[];den2=[15-40];

G1=tf(num1,den1);G2=tf(num2,den2);

figure

(1);

bode(G1,p)

xlabel('频率');ylabel('相角');

title('伯德图');

运行结果:

源程序:

bode(G2,p)

xlabel('频率');ylabel('相角');

title('伯德图');

运行结果:

由伯德图上的标注“ClosedLoopStable”可知,当“Yes”时,系统闭环稳定;当“No”时,系统闭环不稳定。

由此可知,G1(s)闭环稳定,G2(s)闭环不稳定。

(d)判断下列系统是否状态渐近稳定、是否BIBO稳定。

①判断系统是否渐近稳定

源程序:

A=[010;001;2500-

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

当前位置:首页 > 人文社科 > 广告传媒

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

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