计算机控制状态空间反馈课程设计.docx
《计算机控制状态空间反馈课程设计.docx》由会员分享,可在线阅读,更多相关《计算机控制状态空间反馈课程设计.docx(10页珍藏版)》请在冰豆网上搜索。
计算机控制状态空间反馈课程设计
控制系统状态空间设计
设计对象
系统的对象模型为:
设计目的
A:
试确定一个状态负反馈阵K,使相对于单位阵阶跃参考
输入的输出过渡过程,满足如下的期望指标:
超调量<=20%,
峰值时间<=0.4s。
B:
如果系统的状态变量在实际上无法测量,试确定一个状态观
测器(全维状态观测器),使得通过基于状态观测器的状态反馈,
满足上述期望的性能指标。
设计要求
1.要求学生掌握当Gc(s)设计好后如何将其变换为离散算法Gc(Z)
以及如何将Gc(Z)转换在计算机上可完成计算的迭代方程。
2.要求学生能掌握工业中常用的基本PID算法。
3.掌握一阶向前,向后差分及双线性变换离散化的具体做法及应用
场合。
4.熟悉PID两种基本算法的计算公式:
位置算法和增量算法。
5.熟练使用MATLAB软件,掌握其仿真的方法、步骤及参数设置。
6.了解计算机控制系统的组成及相应设备的选用等问题。
设计方法及步骤
1.利用Simulink进行仿真,判断是否满足期望的性能指标。
系统仿真方框图如下:
系统仿真结果如下:
有图可知,系统不满足期望的性能指标,需要进行配置。
2.由期望的性能指标求出闭环系统的期望极点。
首先有典型二阶系统性能指标与系统参数之间的关系,确定
统参数,然后再确定系统的主导极点和非主导极点。
由系统的性能指标:
超调量<=20%,峰值时间<=0.4s。
可以求
出ζ=0.456Wn=8.84。
因此选取ζ=0.60Wn=13.00为系统参数
由系统的特征方程可以求出系统的特征根为:
S1=-7.8+10.4j,S2=-7.8-10.4j
令系统的非主导极点为:
S3=-130
则需要配置的极点是是:
P=[-7.8+10.4j,-7.8-10.4j,-130];
3.求出系统空间表达式。
利用MATLAB有关模型转换函数可求得
A=
B=
C=
D=0
4.判断系统的能控能关性,确定系统是否能够通过状态反馈实现极
点的任意配置。
能控性判别矩阵Q=
系统的可控矩阵阶数为3,为满秩,则系统是能控的。
5.求出用于极点配置的状态矩阵K:
利用函数K=acker(A,B,P),
其中参数A、B为系统的状态方程参数矩阵,P为期望的极点向量,
K为状态反馈矩阵。
K=(134********9)
6.求出输入增益Nbar:
Nbar=21970
7.求出反馈后系统的闭环状态空间表达式:
At=
Bt=
Ct=(001)
Dt=0
系统的阶跃响应如下:
满足所给定的性能指标。
8.配置状态观测器:
由于期望极点为:
P=[-7.8+10.4j,-7.8-10.4j,-130];
又由于希望观测器的响应要快于原系统的响应,配置状态观测器
的极点应尽量离原极点距离远一些,故可设为为:
P=[-23.4+31.2j,-23.4-31.2j,-260];
9.a:
求系统的能关矩阵:
Qo=
可知系统能观测,可以进行配置。
b:
求状态观测器增益矩阵:
L=
10.求基于状态观测器的状态反馈闭环系统的状态空间表达式:
At=
Bt=
Ct=(001000)
Dt=0
系统运行如下:
由图可知,系统的阶跃响应比原系统有较快的响应,且满足所设
定的条件。
设计所用程序如下:
反馈程序
num=1;
den=[112321];
tf(num,den)
[A,B,C,D]=tf2ss(num,den)
n=length(A);
Q=ctrb(A,B)
m=rank(Q);
ifm==n
disp('systemstatevariablecanbetotallycontrolled(系统可控)')
P=[-7.8+10.4j,-7.8-10.4j,-130];
K=acker(A,B,P)
else
end
s=size(A,1);
Z=[zeros([1,s])1];
N=inv([A,B;C,D])*Z';
Nx=N(1:
s);
Nu=N(1+s);
Nbar=Nu+K*Nx
At=A-B*K
Bt=B*Nbar
Ct=C
Dt=D
step(At,Bt,Ct,Dt);
holdon;
grid;
观测器程序
num=1;
den=[112320];
tf(num,den);
[A,B,C,D]=tf2ss(num,den);
n=length(A);
Qo=obsv(A,C);
m=rank(Qo);
ifm==n
disp('systemstatevariablecanbetotallycontrolled(系统可观)')
P=[-7.8+10.4j,-7.8-10.4j,-130];
P0=[-23.4+31.2j,-23.4-31.2j,-260];
K=acker(A,B,P)
L=place(A',C',P0)'
else
end
s=size(A,1);
Z=[zeros([1,s])1];
N=inv([A,B;C,D])*Z';
Nx=N(1:
s);
Nu=N(1+s);
Nbar=Nu+K*Nx;
At=[A-B*KB*K
zeros(size(A))A-L*C]
Bt=[B*Nbar
zeros(size(B))]
Ct=[Czeros(size(C))]
Dt=D
figure(3)
step(At,Bt,Ct,Dt)
holdon
grid
课程设计总结:
这次实验让我学会如何运用MATLAB仿真实现系统的校正以达到预期效果,培养了我的逻辑思维能力,增强了实际编程能力。
在让我体会到了分析与设计系统的艰辛的同时,更让我体会到成功的喜悦和快乐。
我学会了耐心在设计过程中要从整体上把握;在设计过程中同学们之间的合作交流很重要,可以解决很多问题,并从中认识到自己学习和运用中的很多不足。
在这里,我非常感谢老师的指导,您丰富了我们的学习过程,教给我们良好的学习方式和学习态度。
同时,我要感谢我的同学们,
感谢他们给我的支持,在我停步不前的时候鼓励我并帮助我。
最后要感谢学校提供良好的学习环境和实验设备,没有这些我无法完成课程设计。
总之,这次实验让我收获颇丰,实践是获得知识、得到反馈的最好的方法。
参考文献:
1.吴晓燕、张双选.MATLAB在自动控制中的应用.西安电子科技大学出版社2006.9
2.胡寿松.自动控制原理.北京:
科学出版社.2007.6
3.刘豹、唐万生.现代控制理论.机械工业出版社.2012.3