状态反馈控制器与状态观测器Word格式文档下载.docx
《状态反馈控制器与状态观测器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《状态反馈控制器与状态观测器Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
控制系统的动态性能,主要由其状态矩阵的特征值(即闭环极点)决定。
基于状态空间表达式,可以通过形成适当的反馈控制,进而配置系统的极点,使得闭环系统具有期望的动态特性。
状态反馈的定义:
将系统的每一个状态变量乘以相应的反馈系数,然后反馈到输入端,与参考输入相加形成控制律,作为受控系统的控制输入。
给定线性定常被控系统:
选取状态反馈控制律为:
代入可得,状态反馈系统:
1.2状态反馈控制器
系统仅有唯一的控制参数
可供调整,而对于N维控制系统,系统开环矩阵具有N个特征值或者开环传递函数具有N个极点,即
det(A-λI)=0或det(sI-A)=0
要想将所有这些系统根极点调整到需要的位置,控制器至少需要N个独立变量,因此仅仅将系统输出信号进行反馈将不能满足控制器设计的要求。
一个自然的想法就是将系统的所有状态变量X都进行反馈,这就产生了状态反馈控制器。
对于SISO系统,状态反馈后的系统输入变成
(1)
称为系统的反馈系数。
这样,闭环系统的状态方程可以写成
(2)
闭环系统框图如图1所示。
状态反馈控制系统的状态响应是由
的特征值决定的。
改变控制增益可以调整根极点的位置,以获得期望的状态响应。
事实上,如果该系统是完全可观的,增益矩阵的N个元素就可以完全确定
的所有特征值得期望位置。
1.3完全可控性
为了设计具有状态观测器的状态反馈控制器,让我们首先熟悉有关系统可控性的定义。
假设一个SISOLTI系统由式(3)描述
(3)
如果该系统能够构造一个无约束的输入信号u(t),使得系统能够在有限的时间间隔内(
≤t≤
)由初始状态运动到任何其它的状态,则可以说系统在
时刻是可控的。
如果系统的每个状态都是可控的,则称该系统是完全可控的。
不失一般性,假设X(
)=0,
=0,则
(4)
根据完全可控性的定义,有
(5)
或者
(6)
根据Sylvester积分公式
(7)
有
(8)
(9)
当如下矩阵非奇异时,系统满足完全可控的条件:
M=[BABA2B…AN-1B](10)
上面的矩阵又称为系统的可控矩阵。
1.4状态反馈控制器的极点配置
系统性能:
稳态性能和动态性能
稳态性能:
稳定性、静态误差
动态性能:
调节时间、响应速度、超调量
影响系统稳定性、动态性能的因素:
极点位置(系统矩阵的特征值),通过反馈控制器的设计,可使得闭环系统的极点位于预先给定的期望位置。
极点配置:
通过选择反馈增益矩阵K,将闭环系统的极点恰好配置在根平面上所期望的位置,以获得所希望的动态性能。
设计状态反馈控制器的最简单方法是采用极点配置。
其基本思想是首先确定闭环系统N个根极点的期望位置,然后设计适当的反馈增益,从而将系统的极点调整到期望的位置。
如果系统是完全可控的,则这一过程完全可以表示成包含N个未知参数的N个方程组的求解。
所需要设计的反馈控制增益就是该方程组的解。
如果系统比较简单,则完全可以通过手工计算完成系统的极点配置,但无论是手工计算,还是通过MATLAB函数自动计算,其基本步骤都是相同的,如下所示:
(1)检查系统的可控矩阵是否满秩。
(2)确定闭环系统的期望极点,μ1,μ2,…,μN。
(3)确定希望配置的极点位置后,可以建立期望的特征方程。
(4)最后建立闭环系统的特征方程,即(sI-
)=0,将(3)、(4)步建立的方程联立,由于其多项式的系数相等,由此可以建立N个位置参数的N个方程组,从而可以唯一地确定系统的反馈增益矩阵
。
MATLAB中的place函数可以通过极点配置方法确定状态反馈的增益矩阵。
2.状态观测器设计
问题的提出:
极点的任意配置离不开全状态反馈,而系统的状态变量并不都是易于直接检测得到的,有些甚至根本无法检测。
2.1系统状态观测器定义
设计状态反馈控制器的主要问题是要求系统的所有状态变量都是可测的。
然而对于一个实际系统而言,有些状态的信号值很难测量甚至不可能直接通过传感器进行测量,或者虽然可以进行直接测量,但在经济上却要增加相应的成本。
这样,如果不能得到系统的全状态向量,前面讲述的状态反馈控制就不可能实现。
解决以上问题的方法是利用系统某种数学形式的仿真来估计不能测量的状态值,这种方法称之为系统的状态观测器设计。
下面假定以SISOLTI系统为研究对象,这意味着系统有唯一的可控变量和唯一的可测量。
同时,假定系统输出y(t)是唯一能够测量的量,它将被引入到状态观测器中来提高状态值的估计过程。
这里采用
来表示状态向量X(t)的在t时刻的估计值。
状态观测器的框图如图2所示(注意变量xc表示
)。
该观测器使用u(t)和y(t)作为输入量,并且输出系统状态关于时间的估计值。
从框图中可以看出
(11)
这里的L为未知的增益,它是根据该子系统期望的暂态响应特性确定的,称为状态观测器的增益矩阵。
对于SISO系统,L是长度为N的列向量。
观测器的设计过程与前面讲述的标准状态反馈控制器类似。
这里的观测器的增益选择应使状态观测器的特征值是稳定的,同时使得观测器的动态变化快于整个闭环系统的动态属性。
观测器的特征值由下式确定:
det(sI-(A-L
))=0(12)
在状态反馈控制系统中加入状态观测器,可得到图3所示的系统框图。
对于该系统,系统输入为
(13)
如果系统模型与状态观测器模型都采用相同的状态空间矩阵A、B、CT进行描述,则对于被研究对象有
(14)
将式(13)的输入代入上面的方程,则得到系统的完整模型
(15)
对于状态观测器,将式(13)代入式(11)可以得到观测器的完整模型
(16)
(17)
定义误差向量:
(18)
将式(17)代入得到误差向量的动态模型
(19)
2.2完全可观性
如果系统的每个状态X(t0)都可以通过y(t)一段时间的观测值来确定,则该系统被称为是完全可观的。
考虑式(3)定义的SISOLTI系统,其时域解为
(20)
假设u(τ)=0,为方便计算,上式可以写成
(21)
其中
已知,y(t)可测。
因此状态向量X(0)可以通过y(t)的观测值间接计算得到。
对于SISO系统,方程(21)仅有一个方程,但包含N个未知参数。
然而,由于该方程独立于时间变量,因此,在多个时刻对y(t)进行测量,可以获得多个类似的方程,将它们联立,就可以唯一确定系统的初始状态X(0)。
下面给方程(21)两边同时乘以已知的系数矩阵,得到
(22)
变换方程有
(23)
(24)
将整个观测时间内的所有方程进行联立,得到
(25)
(26)
最后求解方程(25),得到
(27)
如果W是非奇异的,X(0)可以由y(t)的观测值唯一确定,从而系统是完全可观的。
再次使用Sylvester的积分公式,得到
(28)
(29)
定义
(30)
2.3观测器增益的确定
确定观测增益矩阵同样采用极点配置的方法。
然而在这里,我们确定的是状态观测器误差方程的极点位置。
误差极点位置的选择比较随意,但误差动态变化应该比被控系统的动态变化快一些。
如果系统完全可观,则
的N个特征值的位置应该唯一确定观测器增益矩阵的N个元素。
设计的过程如下:
(1)检查系统可观矩阵是否奇异。
(2)为误差方程
指定期望的极点位置(μ1,μ2,…,μN)。
这些极点位置与系统的主导极点相比较应该更靠近复平面的左手边。
(3)根据期望的极点位置创建期望的特征方程。
(4)最后创建误差方程的特征方程,从而得到含有N个位置参数的方程组。
3.带全观测器的状态反馈控制
用MATLAB的place函数设计状态反馈控制器与全状态观测器。
3.1仿真程序及分析
%SFSOTEST.MSISOLTI系统的状态反馈控制器与全状态观测器的设计
clearall,closeall,nfig=0;
%打开二进制文件保存结果
deletesfsotest.out
diarysfsotest.out
disp('
'
)
***SFSOTEST.OUT***DiaryFileforSFSOTEST.M'
%PartI.创建线性系统模型,显示其开环系统是不稳定的Setupbasedataforthelinear
A=[01;
20.60];
B=[01]'
;
%建立系统的状态空间模型
C=[10];
D=[0];
StateSpaceMatricesforthePlant'
A,B,C,D
%computeeigenvaluesofstatematrixforopenloopplant
Eigenvaluesofthe"
OpenLoopPlant"
'
);
%计算开环系统状态矩阵特征值
ev=eig(A)
%PartII.加入状态反馈控制器以稳定系统,对状态1的输出量进行仿真
%检查系统的可控性
ControllabilityMatrixforthissystem'
),M=ctrb(A,B)
RankofControllabilityMatrix'
),rank(M)
clp=[-1.8+2.4j-1.8-2.4j];
%计算状态反馈控制增益
Ks=place(A,B,clp);
Desiredclosedlooppolesforstatefeedbackcontroller'
clp
Statefeedbackgainsneededtogivedesiredpoles'
Ks
disp('
Calculatedeigenvaluesofsystemwithstatefeedback'
eig(A-B*Ks)
Nv=-1.0/(C*inv(A-B*Ks)*B);
%计算Nv
SetpointgainforzeroSSerror'
Nv
to=0;
tf=5;
nfig=0;
%对被控系统+控制器进行仿真
t=linspace(to,tf,101);
syscl1=ss(A-B*Ks,B*NV,C,D);
[y1,t,x1]=step(syscl1,t);
nfig=nfig+1;
figure(nfig)%绘制相关结果曲线
subplot(2,1,1),plot(t,x1(:
1),'
r-'
t,x1(:
2),'
g--'
),grid,
title('
StatesforStateFeedbackTestCase'
xlabel('
Time'
),ylabel('
StateVariables'
legend('
x1(t)'
'
x2(t)'
%PartIII.加入状态反馈控制器与全状态观测器,仿真状态1的阶跃响应特性
%检查系统的完全可观性
ObservabilityMatrixforthissystem'
),H=obsv(A,C)
RankofObservabilitymatrix'
),rank(H)
%针对指定的观测器极点计算观测器增益
op=3*clp;
%观测器的速度是闭环系统的3倍
L=place(A'
C'
op);
L=L'
disp(‘desiredobserverpolesforstatefeedbackcontroller'
op
Estimatorgainsneededtogivedesiredpoles'
L
Calculatedeigenvaluesofestimatorsystem'
eig(A-L*C)
A11=A;
A12=-B*Ks;
B1=B*Nv;
A21=L*C;
A22=A-L*C-B*Ks;
B2=B*Nv;
zz=0;
AB=[A11A12;
A21A22];
BB=[B1;
B2];
CB=[Czz*C];
%对控制系统进行仿真
syscl2=ss(AB,BB,CB,D);
[y2,t,x2]=step(syscl2,t);
%分离系统状态与观测器的估计状态
nn=max(size(A));
xp2=x2(:
1:
nn);
xe2=x2(:
nn+1:
2*nn);
%绘制全观测器情况下的计算结果
subplot(2,1,2),plot(t,xp2(:
t,xp2(:
StatesforStateFeedbackwithFullObserverTestCase'
xlabel('
),ylabel('
legend('
%绘制状态估计得误差
figure(nfig)
plot(t,xp2(:
1)-xe2(:
2)-xe2(:
DifferenceBetweenPlantandObserverStates'
ErrorinStateVariables'
e1(t)'
e2(t)'
diaryoff%关闭二进制文件
3.2程序运行结果
SFSOTEST.M程序运行结果
图4.无观测器的状态反馈控制器动态性能演示
图5.有观测器的状态反馈控制器性能演示
图6.动态误差的动态曲线
仿真结果分析说明:
图4,图5对状态反馈控制器有无观测器的两种不同情况进行了比较。
这里定义系统输出为
,控制系统具有10%的最大超调量和大约2.6s的稳定时间。
从结果来看,两种情况下的结果是相同的,它们都产生了符合设计要求的暂态响应曲线。
这是因为观测器的收敛过程与闭环系统比较快得多,因此实际误差
很小,如图6所示。
4.学习小结
此次设计初步学习了典型控制理论中状态观测与状态反馈的基本原理,学习控制器的设计方法,在此基础上初步学习解了设计计算机程序,以实现状态观测和反馈控制器设计的自动化,初步了解了状态控制器与观测器的作用以及意义。
在带全观测器的状态反馈控制中,很好地解决了N维控制系统中的极点调整问题以及一写状态无法观测的问题。
参考文献
[1]赵文峰《控制系统设计与仿真》西安电子科技大学出版社,2002年