线控实验报告电子版.docx
《线控实验报告电子版.docx》由会员分享,可在线阅读,更多相关《线控实验报告电子版.docx(49页珍藏版)》请在冰豆网上搜索。
线控实验报告电子版
实验报告
课程名称:
线性系统理论基础
院(系):
信息与控制工程学院
****************************
学号:
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-