[四川大学]控制系统CAD设计(cad第五次实验报告)

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

控制系统CAD设计
实验报告
1. 已知控制系统的状态方程为
采用状态反馈,将系统的极点配置到-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=0.0:0.01: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 =
1.0e-14 *
-0.7994 -0.5329 -0.1776
可以看到,配置状态反馈所用的K矩阵值几乎为0,这主要期望极点-1,-2,-3就是系统本身的极点,系统不需要进行极点配置所致。

2. 已知控制系统的状态方程为
设计全维状态观测器,将观测器极点配置到。

利用对偶原理,可以将状态观测器的极点配置转化为状态反馈的极点配置程序清单:
主程序
**************************************************************** %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
5.0000
-14.0000
8.0000
ans = ;配置后状态矩阵A-HC的特征值
0.4641 -6.4641 -5.0000
可以看到,重构状态和原状态响应基本上相同的,实际中只需要重构状态在允许时间收敛到原状态,考虑到状态观测器存在模型失配等问题,理想的重构状态是难以实现的。

3. 已知控制系统的状态方程为
a)采用状态反馈,将系统的极点配置到-1,-2,-3,求状态反馈矩阵K。

假设该系统的状态不可测量,同时设计全维状态观测器,将观测器极点配置到。

b)写出带有观测器下的6阶闭环系统的状态空间模型,判断此系统的可控和可观性,求此时系统的传递函数数学模型,并与不带观测器下系统闭环传递函数进行对比。

c)对带与不带观测器下闭环系统单位阶跃响应的y与x的曲线进行对比。

注:前者为6阶系统后者为3阶系统。

程序清单:
%4_4 调用程序
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=0.0:0.01:6;
k=place(a,b,p) %调用bass算法进行极点配置,并绘出
%配置后的单位阶跃响应
p1=[-3+2*sqrt(3) -3-2*sqrt(3) -5]';%观测器期望极点
l=place(a',c',p1)',%由对偶原理求出观测器反馈矩阵
a1=cat(2,a-b*k,b*k),
a2=cat(2,zeros(size(a-b*k)),a-l*c),%构造带状态反馈观测器的负反馈AA=cat(1,a1,a2)
BB=cat(1,b,[0;0;0])
CC=cat(2,c,[0,0,0])
DD=0 %拼接出带状态观测器的负反馈
rank_c=rank(ctrb(AA,BB))
rank_o=rank(ctrb(AA',CC'))
if rank_c==3&rank_o==3
disp('系统完全可控可观测')
end %对带状态观测器的负反馈进行可控可观性判别[xh,x,t]=simobsv(a,b,c,d,l)
sys0=ss(a,b,c,d);
sys0_cl=feedback(sys0,1);
sys1=ss(AA,BB,CC,DD);
sys1_cl=feedback(sys1,1); %产生原系统和状态反馈后%的闭环传函
step(sys0_cl,t),hold on,grid on
step(sys1_cl,t),%绘制单位阶跃响应
tf(sys0_cl),
tf(sys1_cl)
运行结果:
AA =
0 1.0000 0 0 0 0 0 0 1.0000 0 0 0 -6.0000 -11.0000 -6.0000 0 0 0 0 0 0 -5.0000 1.0000 0
0 0 0 14.0000 0 1.0000
-0.0000 -0.0000 0.0000 -14.0000 -11.0000 -6.0000
BB =
1
CC =
1 0 0 0 0 0
DD =
rankQc =
3
rankQo =
3
系统完全可控可观测
ans =
1
----------------------
s^3 + 6 s^2 + 11 s + 7
Continuous-time transfer function. ans =
1
----------------------
s^3 + 6 s^2 + 11 s + 7
4.试编写m文件,绘制零初始条件下下列系统的单位阶跃响应曲线。

具体要求。

(1) K=1,T=[0.001:0.1:4]秒;
T=0.5秒,K=[0.5:1:20]。

(2)构建下列系统的simulink模型,并对虚线内的子系统进行封装,讨论采样周期和开环增益对系统稳定性的影响。

(1)程序清单:
%绘制零初始条件下系统的单位阶跃响应
k=1; %开环增益K为1时
hold on
for T=0.001:0.1:4
%改变采样周期得到一组阶跃响应
g0=tf([k],conv([1,0],[1,1]));
%不带零阶保持器的开环传递函数
g0=c2d(g0,T);%将连续系统离散化
g1=feedback(g0,1);
step(g1);%得到输入输出脉冲传递函数阶跃响应end
hold off
figure %重新建立一个绘图窗口
hold on
T=0.5
for k=0.5:1:20
%改变开环增益,其他过程和上一个循环相同
g0=tf(k,conv([1,0],[1,1]));
g0=c2d(g0,T);
g1=feedback(g0,1);。

相关文档
最新文档