西建大《现代控制理论基础实验报告》.docx
《西建大《现代控制理论基础实验报告》.docx》由会员分享,可在线阅读,更多相关《西建大《现代控制理论基础实验报告》.docx(38页珍藏版)》请在冰豆网上搜索。
西建大《现代控制理论基础实验报告》
实验报告
课程《线性系统理论基础》实验日期2013年5月日
专业班级姓名学号
同组人
实验名称MATLAB控制工具箱的应用及线性系统的运动分析评分批阅教师签字
一、实验目的
1、学习掌握MATLAB控制工具箱中的基本命令的操作方法;
2、掌握线性系统的运动分析方法。
二、实验内容
(1)自选控制对象模型,应用以下命令,并写出结果。
1)step,damp,pzmap,rlocus,rlocfind,bode,margin,nyquist;
2)tf2ss,ss2tf,tf2zp,zp2ss;
3)ss2ss,jordan,canon,eig。
(2)掌握线性系统的运动分析方法
1)已知
,求
。
(用三种方法求解)
2)利用MATLAB求解书上例2.8题,并画出状态响应和输出响应曲线,求解时域性能指标。
(加图标题、坐标轴标注及图标)
3)利用MATLAB求解书上例2.12题,并画出状态响应和输出响应曲线。
(加图标题、坐标轴标注及图标)
4)P361.4
(2)1.5(3);P562.3(3)
三、实验环境
大楼机房
MATLAB6.X软件
四、实验原理(或程序框图)及步骤
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.1]已知SISO系统的状态空间表达式为(1-3)式,求系统的传递函数。
(1-3)
程序:
%首先给A、B、C阵赋值;
A=[010;001;-4-3-2];B=[1;3;-6];C=[100];D=0;
%状态空间表达式转换成传递函数阵的格式为[num,den]=ss2tf(a,b,c,d,u)
[num,den]=ss2tf(A,B,C,D,1)
程序运行结果:
num=
01.00005.00003.0000
den=
1.00002.00003.00004.0000
从程序运行结果得到系统的传递函数为:
(1-4)
[例1.2]从系统的传递函数(1-4)式求状态空间表达式。
程序:
num=[153];
den=[1234];
[A,B,C,D]=tf2ss(num,den)
程序运行结果:
A=B=
-2-3-41
1000
0100
C=D=
1530
由于一个系统的状态空间表达式并不唯一,[例1.2]程序运行结果虽然不等于式(1-3)中的A、B、C阵,但该结果与式(1-3)是等效的。
不妨对上述结果进行验证。
[例1.3]对上述结果进行验证编程。
%将[例1.2]上述结果赋值给A、B、C、D阵;
A=[-2-3-4;100;010];
B=[1;0;0];C=[153];D=0;
[num,den]=ss2tf(A,B,C,D,1)
程序运行结果与[例1.1]完全相同。
[例1.4]给定系统
,求系统的零极点增益模型和状态空间模型,并求其单位脉冲响应及单位阶跃响应。
解:
num=[1213];den=[10.521];
sys=tf(num,den)%系统的传递函数模型
Transferfunction:
s^3+2s^2+s+3
-----------------------------
s^3+0.5s^2+2s+1
sys1=tf2zp(num,den)%系统的零极点增益模型
sys1=
-2.1746
0.0873+1.1713i
0.0873-1.1713i
sys2=tf2ss(sys)%系统的状态空间模型模型;或用[a,b,c,d]=tf2ss(num,den)形式
a=-0.5000-2.0000-1.0000
1.000000
01.00000
b=1
0
0
c=1.5000-1.00002.0000
d=1
impulse(sys2)%系统的单位脉冲响应
图1-1系统的单位脉冲响应
step(sys2)%系统的单位阶跃响应:
图1-2系统的单位阶跃响应
五、程序源代码
1)已知
,求
。
(用三种方法求解)
状态转移矩阵的指数矩阵计算法
a=[01;-2-3];
symst;
eat1=expm(a*t)
eat1=
[-exp(-2*t)+2*exp(-t),exp(-t)-exp(-2*t)]
[-2*exp(-t)+2*exp(-2*t),2*exp(-2*t)-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=
[-exp(-2*t)+2*exp(-t),exp(-t)-exp(-2*t)]
[-2*exp(-t)+2*exp(-2*t),2*exp(-2*t)-exp(-t)]
非奇异变换法
a=[01;-2-3];
symt;
[P,D]=eig(a);
Q=inv(P);
eat3=P*expm(D*t)*Q
eat3=
[-exp(-2*t)+2*exp(-t),exp(-t)-exp(-2*t)]
[-2*exp(-t)+2*exp(-2*t),2*exp(-2*t)-exp(-t)]
例2.8
a=[-10;0-2];b=[1;1];
c=[1.50.5];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=0.1*(I-1);
xt(:
I)=subs(x(:
),'t',tt);
yt(I)=subs(y,'t',tt);
end;
plot(0:
60,[xt;yt]);
x1=
[2*exp(-t)]
[3*exp(-2*t)]
x2=
[1-exp(-t)]
[1/2-1/2*exp(-2*t)]
x=
[exp(-t)+1]
[5/2*exp(-2*t)+1/2]
y=
3/2*exp(-t)+7/4+5/4*exp(-2*t)
输出响应
输出响应
输出响应
例2.12
a=[01;-0.16-1];
b=[1;1];
c=[10]
x0=[1;-1];
symsznk;
thta=inv(z*eye(size(a))-a)*z;
thtak=iztrans(thta,k)
uz=z/(z-1);
xk=iztrans(thta*x0+thta/z*b*uz)
y=c*xk
forI=1:
61;
tt=0.1*(I-1);
xt(:
I)=subs(x(:
),'t',tt);
yt(I)=subs(y,'t',tt);
end;
plot(0:
60,[xt;yt]);
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]
y=
-17/5*(-1/5)^n+22/5*(-4/5)^n+1
P361.4
(2)
a=[214;020;001];b=[10;34;21];c=[351];d=[00];
[num,den]=ss2tf(a,b,c,d,1)
num=
020.0000-29.0000-13.0000
den=
1-58-4
num=[1422;0311];
den=[12302];
[A,B,C,D]=tf2ss(num,den)
A=
-2-30-2
1000
0100
0010
B=
1
0
0
0
C=
1422
0311
D=
0
0
P361.5(3)
a=[01;-6-5];
b=[1;0];
c=[1-1];
d=0;
G=ss(a,b,c,d);
x0=[1;1];
symszk;
thta=inv(z*eye(size(a))-a)*z;
thtak=iztrans(thta,k)
uz=z/(z-1);
xk=iztrans(thta*x0+thta/z*b*uz)
y=c*xk
thtak=
[3*(-2)^k-2*(-3)^k,(-2)^k-(-3)^k]
[-6*(-2)^k+6*(-3)^k,-2*(-2)^k+3*(-3)^k]
xk=
[3*(-2)^n-5/2*(-3)^n+1/2]
[-6*(-2)^n+15/2*(-3)^n-1/2]
y=
9*(-2)^n-10*(-3)^n+1
P562.3(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
forI=1:
61;
tt=0.1*(I-1);
xt(:
I)=subs(x(:
),'t',tt);
yt(I)=subs(y,'t',tt);
end;
plot(0:
60,[xt;yt]);
实验报告
课程《线性系统理论基础》实验日期2013年5月日
专业班级姓名学号
同组人
实验名称系统的能控性、能观测性、稳定性分析及实现评分批阅教师签字
一、实验目的
加深理解能观测性、能控性、稳定性、最小实现等观念。
掌握如何使用MATLAB进行以下分析和实现。
1、系统的能观测性、能控性分析;
2、系统的稳定性分析;
3、系统的最小实现。
二、实验内容
(1)能控性、能观测性及系统实现
(a)了解以下命令的功能;自选对象模型,进行运算,并写出结果。
gram,ctrb,obsv,lyap,ctrbf,obsvf,mineral;
(b)已知连续系统的传递函数模型,
,当a分别取-1,0,1时,判别系统的能控性与能观测性;
(c)已知系统矩阵为
,
,
,判别系统的能控性与能观测性;
(d)求系统
的最小实现。
(2)稳定性
(a)代数法稳定性判据
已知单位反馈系统的开环传递函数为:
,试对系统闭环判别其稳定性
(b)根轨迹法判断系统稳定性
已知一个单位负反馈系统开环传递函数为
,试在系统的闭环根轨迹图上选择一点,求出该点的增益及其系统的闭环极点位置,并判断在该点系统闭环的稳定性。
(c)Bode图法判断系统稳定性
已知两个单位负反馈系统的开环传递函数分别为
用Bode图法判断系统闭环的稳定性。
(d)判断下列系统是否状态渐近稳定、是否BIBO稳定。
三、实验环境
大楼机房
MATLAB6.X软件
四、实验原理(或程序框图)及步骤
1、系统能控性、能观性分析
设系统的状态空间表达式如(1-1)所示。
系统的能控性、能观测性分析是多变量系统设计的基础,包括能控性、能观测性的定义和判别。
系统状态能控性定义的核心是:
对于线性连续定常系统(1-1),若存在一个分段连续的输入函数u(t),在有限的时间(t1-t0)内,能把任一给定的初态x(t0)转移至预期的终端x(t1),则称此状态是能控的。
若系统所有的状态都是能控的,则称该系统是状态完全能控的。
能控性判别分为状态能控性判别和输出能控性判别。
状态能控性分为一般判别和直接判别法,后者是针对系统的系数阵A是对角标准形或约当标准形的系统,状态能控性判别时不用计算,应用公式直接判断,是一种直接简易法;前者状态能控性分为一般判别是应用最广泛的一种判别法。
输出能控性判别式为:
(2-1)
状态能控性判别式为:
(2-2)
系统状态能观测性的定义:
对于线性连续定常系统(2-1),如果对t0时刻存在ta,t0,根据[t0,ta]上的y(t)的测量值,能够唯一地确定系统在t0时刻的任意初始状态x0,则称系统在t0时刻是状态完全能观测的,或简称系统在[t0,ta]区间上能观测。
状态能观测性也分为一般判别和直接判别法,后者是针对系统的系数阵A是对角标准形或约当标准形的系统,状态能观性判别时不用计算,应用公式直接判断,是一种直接简易法;前者状态能观测性分为一般判别是应用最广泛的一种判别法。
状态能观测性判别式为:
(2-3)
系统的传递函数阵和状态空间表达式之间的有(1-2)式所示关系。
已知系统的传递函数阵表述,求其满足(1-2)式所示关系的状态空间表达式,称为实现。
实现的方式不唯一,实现也不唯一。
其中,当状态矩阵A具有最小阶次的实现称为最小实现,此时实现具有最简形式。
[例2.1]对下面系统进行可控性、可观性分析。
解:
a=[-1-22;0-11;10-1];b=[201]';c=[120]
Qc=ctrb(a,b)%生成能控性判别矩阵
=200
010
11-1
rank(Qc)%求矩阵Qc的秩
ans=3%满秩,故系统能控
Qo=obsv(a,c)%生成能观测性判别矩阵
rank(Qo)%求矩阵Qo的秩
ans=3%满秩,故系统能观测
2、系统稳定性分析
系统稳定是系统正常工作的首要条件。
只要系统的状态矩阵A的特征根全部具有负实部,系统就是状态稳定的。
当状态方程是系统的最小实现时,式(1-2)中
,系统的状态渐近稳定与系统的BIBO(有界输入有界输出)稳定等价;当
时,若系统状态渐近稳定则系统一定是的BIBO稳定的,而系统的BIBO稳定不一定是系统的状态渐近稳定。
[例2.2]已知系统状态空间方程描述如下:
,
,
试判定其稳定性,并绘制出时间响应曲线来验证上述判断。
解:
A=[-10-35-50-24;1000;0100;0010];
B=[1;0;0;0];C=[172424];D=[0];
[z,p,k]=ss2zp(A,B,C,D,1);
Flagz=0;
n=length(A);
fori=1:
n
ifreal(p(i))>0
Flagz=1;
end
end
disp('系统的零极点模型为');z,p,k
系统的零极点模型为
z=
-2.7306+2.8531i
-2.7306-2.8531i
-1.5388
p=
-4.0000
-3.0000
-2.0000
-1.0000
k=
1.0000图2-1系统的阶跃响应
ifFlagz==1
disp('系统不稳定');
elsedisp('系统是稳定的');
end
运行结果为:
系统是稳定的
step(A,B,C,D);
五、程序源代码
(1)能控性、能观测性及系统实现
(b)已知连续系统的传递函数模型,
,当a分别取-1,0,1时,判别系统的能控性与能观测性;
num=[1-1];%a=-1
den=[1102718];
[a,b,c,d]=tf2ss(num,den);
Qc=ctrb(a,b)
Qc=
1-1073
01-10
001
>>rank(Qc)
ans=3
Qo=obsv(a,c)
Qo=
01-1
1-10
-11-27-18
>>rank(Qo)
ans=3
num=[10];%a=0
den=[1102718];
[a,b,c,d]=tf2ss(num,den);
Qc=ctrb(a,b)
Qc=
1-1073
01-10
001
>>rank(Qc)
ans=3
>>Qo=obsv(a,c)
Qo=
010
100
-10-27-18
>>rank(Qo)
ans=3
num=[11];%a=1
den=[1102718];
[a,b,c,d]=tf2ss(num,den);
Qc=ctrb(a,b)
Qc=
1-1073
01-10
001
>>rank(Qc)
ans=3
>>Qo=obsv(a,c)
Qo=
011
110
-9-27-18
>>rank(Qo)
ans=2
(c)已知系统矩阵为
,
,
,判别系统的能控性与能观测性
a=[6.666-10.6667-0.3333;101;012];b=[0;1;1];c=[102];
Qc=ctrb(a,b)
Qc=
0-11.0000-84.9926
1.00001.0000-8.0000
1.00003.00007.0000
>>rank(Qc)
ans=3
>>Qo=obsv(a,c)
Qo=
1.000002.0000
6.6660-8.66673.6667
35.7689-67.4375-3.5551
>>rank(Qo)
ans=3
(d)求系统
的最小实现。
num=[0011];
den=[1102718];
G=tf(num,den);
Gs=ss(G);
Gm=minreal(Gs);
1stateremoved.
>>Am=Gm.a
Am=
3.5391-12.1540
5.1323-12.5391
>>Bm=Gm.b
Bm=
0.0606
-0.242
>>Cm=Gm.c
Cm=
0.25000.0625
>>Dm=Gm.d
Dm=
0
(2)稳定性
(a)已知单位反馈系统的开环传递函
,试对系统闭环判别其稳定性
Anum=[100200];
den=[12120];
[A,B,C,D]=tf2ss(num,den)
[z,p,k]=ss2zp(A,B,C,D,1)
z=-2
p=-20
-1
k=100
step(A,B,C,D)
(b)已知一个单位负反馈系统开环
,试在系统的闭环根轨迹图上选择一点,求出该点的增益及其系统的闭环极点位置,并判断在该点系统闭环的稳定性传递函数为
num=[13];
den=[113548363];
W=tf(num,den)
rlocus(W);
>>title('系统根轨迹')
(c)已知两个单位负反馈系统的开环传递函数分别为
用Bode图法判断系统闭环的稳定性。
num=[2.7];
den=[1540];
bode(num,den);
title('系统的伯德图')
num=[2.7];
den=[15-40];
bode(num,den);
title('系统的伯德图')
实验报告
课程《线性系统理论基础》实验日期2013年5月日
专业班级姓名学号
同组人
实验名称状态反馈极点配置方法的研究
评分批阅教师签字
一、实验目的
1.掌握状态反馈系统的极点配置;
2.研究不同配置对系统动态特性的影响。
二、实验内容
原系统如图3-2所示。
图中,X1和X2是可以测量的状态变量。
图3-1系统结构图
试设计状态反馈矩阵
使系统加入状态反馈后其动态性能指标满足给定的要求:
(1)已知:
K=10,T=1秒,要求加入状态反馈后系统的动态性能指标为:
σ%≤20%,ts≤1秒。
(12)已知:
K=1,T=0.05秒,要求加入状态反馈后系统的动态性能指标为:
σ%≤5%,ts≤0.5秒。
状态反馈后的系统,如图3-3所示:
图3-2状态反馈后系统结构图
三、实验环境
大楼机房
MATLAB6.X软件
四、实验原理(或程序框图)及步骤
一个受控系统只要其状态是完全能控的,则闭环系统的极点可以任意配置。
极点配置有两种方法:
①采用变换矩阵T,将状态方程转换成可控标准型,然后将期望的特征方程和加入状态反馈增益矩阵K后的特征方程比较,令对应项的系数相等,从而决定状态反馈增益矩阵K;②基于Carlay-Hamilton理论,它指出矩阵状态矩阵A满足自身的特征方程,改变矩阵特征多项式
的值,可以推出增益矩阵K,这种方法推出增益矩阵K的方程式叫Ackermann公式。
[例4.1]某控制系统的状态方程描述如下:
通过状态反馈使系统的闭环极点配置在P=-30,-1.2,-2.4
4i位置上,求出状态反馈阵K,并绘制出配置后系统的时间响应曲线。
解:
A=[-10-35-50-24;1000;0100;0010];
B=[1;0;0;0];C=[172424];D=[0];
disp('原系统的极点为');p=eig(A)'
运算结果为:
原极点的极点为
p=
-4.0000-3.0000-2.0000-1.0000
P=[-30;-1.2;-2.4+sqrt(-16);-2.4-sqrt(-16)];
K=place(A,B,P)
K=
26.0000172.5200801.7120759.3600
disp('配