现代控制理论实验matlab 报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

实验内容及结果:
>>num=[0 0 1 2;0 1 5 3];
den=[1 2 3 4];
[A,B,C,D]=tf2ss(num,den)
实验二状态空间控制模型系统仿真及状态方程求解
实验目的:
1、熟悉线性连续系统的状态空间控制模型的各种表示方法;
2、熟悉系统模型之间的转换功能;
3、利用MATLAB对线性定常系统进行动态分析。

实验内容及结果(1)
>>num=[1 2 1 3]; den=[1 0.5 2 1];
sys=tf(num,den);
sys1=tf2zp(num,den); sys2=tf2ss(num,den); impulse(sys);
step(num,den,t);
>>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') xlabel('Time(sec)')
ylabel('x1,x2')
text(0.55,1.15,'x1')
text(0.4,-2.9,'x2')
>>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)
(4)思考
>>A=[0 -2;1 -3];
B=[2;0];
C=[1 0];
x0=[1;1];
U=1;
[t,x]=ode45(@solve_state_fun,[0 10],x0,[],A,B,U); plot(t,x(:,1),t,x(:,2));
grid
title('Response to initial condition')
xlabel('Time(sec)')
ylabel('x1,x2')
text(0.55,1.15,'x1')
text(0.4,-2.9,'x2')
实验三系统能控性、能观性的判别
实验目的:
1、系统的能控性和能观测性的判别方法、系统的能控性和能观测性的分解;
2、了解MATLAB中的相应的函数。

实验内容及结果:
(1)判别系统的能观性
>>A=[0 0 -1;1 0 -3;0 1 -3];
B=[1;1;0];C=[0 1 -2];
Qo=obsv(A,C);
n=rank(Qo);
L=length(A);
if n==L
str='系统状态完全能观'
else
str='系统状态不完全能观'
end
str =
系统状态不完全能观
(2)求系统的能观性分解后的模型
>> A=[0 0 -1;1 0 -3;0 1 -3];
B=[1;1;0];C=[0 1 -2];[D,E,F,T,K]=obsvf(A,B,C)
D =
-1.0000 -1.3416 -3.8341
0.0000 -0.4000 -0.7348
-0.0000 0.4899 -1.6000
E =
1.2247
-0.5477
-0.4472
F =
-0.0000 0.0000 -2.2361
T =
0.4082 0.8165 0.4082
-0.9129 0.3651 0.1826
0 -0.4472 0.8944
K =
1 1 0
>> sum(K)
ans =
2
实验四系统稳定性仿真实验
实验目的:
1、掌握线性系统稳定性的判别方法
2、了解MATLAB中相应的函数
实验内容及结果:
(1)判定如下系统的李亚普诺夫稳定性
>> A=[0 1;-1 -1];
Q=eye(size(A,1));
P=lyap(A,Q);
P_eig=eig(P);
if min(P_eig)>0
disp('The system is Lypunov stable.')
else
disp('The system is not Lypunov stable.')
end
The system is Lypunov stable.
(2)判定如下系统的李亚普诺夫稳定性
>>A=[-3 -8 -2 -4;1 0 0 0;0 1 0 0;0 0 1 0];
B=[1 0 0 0]';
C=[0 0 1 1];
D=0;
Q=eye(size(A,1));
P=lyap(A,Q);
P_eig=eig(P);
if min(P_eig)>0
disp('The system is Lypunov stable');
else
disp('The system is not Lypunov stable');
end
The system is Lypunov stable
实验五状态反馈及状态观测器的设计
实验目的:
1、熟悉状态反馈矩阵的求法
2、熟悉状态观测器的设计方法
实验内容及结果:
>>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];
D=0;
Pole=[-30,-1.2,-2.4+4i,-2.4-4i];
a_s_coefficient=poly(A);
a_d_coefficient=poly(Pole);
k_coefficient=a_d_coefficient-a_s_coefficient;
k_coefficient=fliplr(k_coefficient);
k_coefficient=k_coefficient(1,1:length(k_coefficient)-1)
k_coefficient =
759.3600 801.7120 172.5200 26.0000
>>Qc=ctrb(A,B);
Q=fliplr(Qc);
counter=-1;
n=length(A);
X=zeros(n,n);
while counter>=-n+1
x=diag(linspace(a_s_coefficient(-counter+1),a_s_coefficient(-counter+1),counter+n),counter);
X=X+x;
counter=counter-1;
end
X=X+eye(n);
P=eye(n)/(Q*X);
k=k_coefficient*P;
A=A-B*k;
[num,den]=ss2tf(A,B,C,D,1);
sys=tf(num,den);
[p,z]=pzmap(sys);
pzmap(sys);
step(A,B,C,D);
grid
零极点图:
阶跃响应曲线:。

相关文档
最新文档