文档介绍:控制系统CAD设计
实验报告
已知控制系统的状态方程为
采用状态反馈,将系统的极点配置到-1,-2,-3,求状态反馈矩阵K。
程序清单:
主程序
%main 1
a=[0 1 0;0 0 1;-6 -11 -6];
b=[0 0 1]';
c=[1 0 0];
d=0;
p=[-1 -2 -3]'; %输入原系统状态空间矩阵和期望极点
t=::6
bass_pp(a,b,c,d,t,p) %调用bass算法进行极点配置,并绘出
%配置后的单位阶跃响应
bass配置状态反馈极点
%采用bass_pp算法进行极点配置
function k=bass_pp(A,b,c,d,t,p) %t是用于绘制单位阶跃响应的步长
if rank(ctrb(A,b))~= length(b),disp('No !!!'),%进行系统的可控性判别,
%只对可控的额系统进行极点配置
else
n=length(b);%得到系统的状态数
alpha=poly(diag(p',0));%构成期望的系统特征多项式
a=poly(A);%系统原有的特征多项式
aa=[a(n:-1:2),1];%将特征多项式的各阶系数按降次排列
W=hankel(aa);%建立用于第二可控规范型变换的hankel矩阵,
M=ctrb(A,b);%建立原系统能控型判别矩阵,和M矩阵一起合成对角变换阵
k=(alpha(n+1:-1:2)-a(n+1:-1:2))*inv(W)*inv(M);
%求解反馈增益矩阵,
sysnew=ss((A-b*k),b,c,d);
sysnew_cl=feedback(sysnew,1);
step(sysnew_cl,t),hold on,grid on
end
End
运行结果(配置后的闭环系统和状态反馈矩阵):
sysnew_cl =
a =
x1 x2 x3
x1 0 1 0
x2 0 0 1
x3 -7 -11 -6
b =
u1
x1 0
x2 0
x3 1
c =
x1 x2 x3
y1 1 0 0
d =
u1
y1 0
Continuous-time state-space model.
ans =
-14 *
- - -
可以看到,配置状态反馈所用的K矩阵值几乎为0,这主要期望极点-1,-2,-3就是系统本身的极点,系统不需要进行极点配置所致。
已知控制系统的状态方程为
设计全维状态观测器,将观测器极点配置到。
利用对偶原理,可以将状态观测器的极点配置转化为状态反馈的极点配置
程序清单:
主程序
****************************************************************
%4_3 调用函数
a=[0 1 0;0 0 1;-6 -11 -6];
b=[0 0 1]';
c=[1 0 0];
d=0;
p1=[-3+2*sqrt(3) -3-2*sqrt(3) -5]';%观测器期望极点
l=place(a',c',p1)',%由对偶原理求出观测器反馈矩阵
eig(a-l*c)'%极点配置后的特征值
[xh,x,t]=simobsv(a,b,c,d,l)%返回重构状态和受控状态的阶跃响应矩阵
****************************************************************
%全维观测器状态
function [xh,x,t]=simobsv(A,B,C,D,L)
G=ss(A,B,C,D);
[y,t,x]=step(G);%原系统的闭环阶跃响应
[y1,xh1]=step((A-L*C),B,C,D,1,t);
[y2,xh2]=lsim((A-L*C),L,C,D,y,t);
xh=xh1+xh2;
plot(t,x,'-',t,xh,':');grid on;
运行结果:
l = ;状态反馈矩阵H
-
ans = ;配置后状态矩阵A-HC的特征值
- -
可以看到,重构状态和原状态响应基本上相同的,实际中只需要重构状态在允许时间收敛到原状态,考虑到状态观测器存在模型失配等问题,理想的重构状态是难以实现的。
已知控制系统的状态方程为
a)采用状态反馈,将系统的极点配置到-1,-2,-3,