当前位置:文档之家› 广东工业大学现代控制理论实验报告

广东工业大学现代控制理论实验报告

实验一系统的传递函数阵和状态空间表达式的转换
一.实验目的
学习多变量系统传递空间表达式的建立方法、了解系统状态空间表达式和传递函数相互转换的方法;
通过编程、伤及调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。

二.实验容
例1.1:
A=[0 1 0;0 0 1;-4 -3 -2];
B=[1;3;-6];
C=[1 0 0];
D=0;
%状态空间表达式转换成传递函数阵的格式为
%[num,den]=ss2tf(a,b,c,d,u)
[num,den]=ss2tf(A,B,C,D,1)
例1.2
num=[0 1 5 3];
den=[1 2 3 4];
[A,B,C,D]=tf2ss(num,den)
练习题
求A、B、C、D阵的程序和运行结果
程序如下:
%传递函数阵的格式转换成为状态空间表达式num=[0 0 1 2;0 1 5 3];
den=[1 2 3 4];
[A,B,C,D]=tf2ss(num,den)
验证:
程序如下: A=[-2 -3 -4;1 0 0;0 1 0];
B=[1;0;0];
C=[0 1 2;1 5 3];
D=[0;0];
%状态空间表达式转换成传递函数阵的格式为%[num,den]=ss2tf(a,b,c,d,u)
[num,den]=ss2tf(A,B,C,D,1)
实验二状态空间控制模型系统仿真及状态方程求解
一.实验目的
1.熟悉线性连续系统的状态空间控制模型的各种表示方法;
2.熟悉系统模型的转换功能;
3.利用MATLAB对线性定常系统进行动态分析。

例2.1
num=[1 2 1 3];
den=[1 0.5 2 1];
[z,p,k]=tf2zp(num,den)
[a,b,c,d]=tf2ss(num,den)
例2-2
A=[0 1;-10 -5];
B=[0;0];D=B;
C=[1 0;0 1];
x0=[2;1];
[y,x,t]=initial(A,B,C,D,x0);
plot(t,x(:,1),t,x(:,2))
grid
title('Response to Initial Condition') xlable('Time (sec)')
ylable('x1,x2')
text(0.55,1.15,'x1')
text(0.4,-2.9,'x2')
例2-3
A=[-1 -1;6.5 0];
B=[1 1;1 0];
C=[1 0;0 1];
D=[0 0;0 0];
step(A,B,C,D)
练习题
A=[0 -2;1 -3];
B=[2;0];
C=[1 0];
D=0;
x0=[1;1];
[y,x,t]=initial(A,B,C,D,x0);
plot(t,x(:,1),t,x(:,2))
grid
title('Response to Initial Condition')
xlable('Time (sec)')
ylable('x1,x2')
text(0.55,1.15,'x1')
text(0.4,-2.9,'x2')
初始状态x0=[1;2]时的阶跃输入响应:
A=[0 -2;1 -3];B=[2;0];C=[1,0;0 1];D=zeros(1,1);
x0=[1;2];t=[0:.04:15]; u=heaviside(t);
G=ss(A,B,C,D);
G1=tf(G);
[y1,t,x1]=initial(G,x0,t);
[y2,t,x2]=lsim(G,u,t);
y=y1+y2;
x=x1+x2;
plot(t,x);
grid on
实验三系统能控性、能观性的判别
一.实验目的
1.系统的能控性和能观测性的判别方法、系统的能观性和能观测性分解;
2.了解MATLAB中相应的函数。

二.实验容
例3-(1)判别系统能控性:
%判断系统状态的能控性
A=[0 1;-2 -3];
B=[0;1];
Qc=ctrb(A,B);
n=rank(Qc);
L=length(A);
if n==L
disp('系统状态完全能控')
else
disp('系统状态不完全能控')
end
例3-(2)能控性分解后的模型:A=[0 1;-2 -3];
B=[0;1];
C=[3 4];
[Ax,Bx,Cx,T,K]=ctrbf(A,B,C) sum(K)
练习题(1)
A=[0 0 -1;1 0 -3;0 1 -3];
C=[0 1 -2];
Qo=obsv(A,C);
n=rank(Qo);
L=length(A);
if n==L
disp('系统状态完全能观') else
disp('系统状态不完全能观') end
A=[0 0 -1;1 0 -3;0 1 -3];
B=[1;1;0];
C=[0 1 -2];
D=0;
[Ax,Bx,Cx,T,K]=ctrbf(A,B,C) sum(K)
3-(2)能观性分解:
A=[0 0 -1;1 0 -3;0 1 -3];
B=[1;1;0];
C=[0 1 -2];
D=0;
[Ax,Bx,Cx,T,K]=obsvf(A,B,C)
sum(K)
实验四系统稳定性仿真实验
一.实验目的
1.掌握线性系统稳定性的判别方法;
2.了解MATLAB中相应的函数
例题4-1:
A=[0 1;-1 -1];
%Q=eye(size(A,1));
Q=eye(2,2);
P=lyap(A,Q);
flag=0;
n=length(A);
for i=1:n
det(P(1:i,1:i))
if(det(P(1:i,1:i))<=0)
flag=1;
end
end
if flag==1
disp('System is Lypunov stable');
else
disp('System is not Lypunov stable'); end
练习题
A=[-3 -8 -2 -4;1 0 0 0; 0 1 0 0;0 0 1 0]; %Q=eye(size(A,1));
Q=eye(4,4);
P=lyap(A,Q);
flag=0;
n=length(A);
for i=1:n
det(P(1:i,1:i))
if(det(P(1:i,1:i))<=0)
flag=1;
end
end
if flag==1
disp('System is Lypunov stable');
else
disp('System is not Lypunov stable'); end
实验五状态反馈及状态观测器的设计
一.实验目的
1.熟悉状态反馈矩阵的方法;
2.熟悉状态观测器设计方法。

习题:
1. 程序如下A=[-10 -35 -50 -24;1 0 0 0;0 1 0 0;0 0 1 0];B=[1;0;0;0];C=[1,7,24,24];
P=[-30,-1.2,-2.4+4i,-2.4-4i];
K=acker(A,B,P)
A-B*K
响应曲线:
A=[-36 -207.52 -851.712 -783.36;1 0 0 0;0 1 0 0;0 0 1 0];
B=[1;0;0;0];
C=[1 7 24 24];
D=0
step(A,B,C,D)
2.程序如下:A=[0,1,0;980,0,-2.8;0,0,-100];B=[0;0;100];C=[1,0,0]; P=[-100,-102,-103];
A1=A';B1=C';C1=B';
K=acker(A1,B1,P);
E=(K)'
aEc=A-E*C。

相关主题