现代控制理论入门5:观测器

2020-07-05  本文已影响0人  飞多多

到此,基本上对现代控制有了一个基础性的认识。但是在实际的应用中,前面的很多情况都是过于理想化的,譬如我们之前的所有推导计算都是建立在系统的状态变量x可知的基础上的,这一点在实际工程中,往往不是能够直接测量得到的。因此我们需要根据系统的模型和输出去估计系统状态变量。这里就要引出这里要说的问题--观测器。

PART I

所谓观测器就是根据系统的可测量的输出信号,去估计系统不可直接测量的状态信号。我们假设系统为:
\begin{matrix}\dot{x}=Ax+Bu \\ y=Cx+Du \tag{1}\end{matrix}
其中前式与之前的并无不同,是系统的动态过程,其中的x不可直接测量。而后式是系统的输出方程,y是系统的观测量,是可以直接测量的。观测器就是根据y的输出来估计x.
首先,我们将系统状态量记作x,其估计值记作\hat{x},系统的真实输出记作y,估计输出为\hat{y},于是我们有一个“估计系统”
\begin{matrix}\dot{\hat{x}}=A\hat{x}+Bu \\ \hat{y}=C\hat{x} +Du\tag{2}\end{matrix}
与之前一样,用过无数遍的思想:缩小误差。我们定义估计值与真实值之间的误差为e=x-\hat{x},则\dot{e}=\dot{x}-\dot{\hat{x}}我们的目标就是缩小这个e,希望它能随时间快速收敛。这最简单的方法就是让e成为一个时间系数为负的指数函数。Luenberger Observer就是这样做的。
我们让前面的(1)式和(2)式对应相减,可以得到
\begin{matrix}\dot{x}-\dot{\hat{x}}=A(x-\hat{x}) \\ y-\hat{y}=C(x-\hat{x}) \end{matrix}
稍加整理可得
\begin{matrix}\dot{e}=Ae \\ y-\hat{y}=Ce \tag{3}\end{matrix}
针对(3)式,我们为了让e随时间收敛,我们需要引入反馈来配置e的极点,即
\dot{e}=Ae+L\cdot (y-\hat{y})=Ae+L\cdot Ce=(A+LC)e \tag{4}
其中的L是反馈系数,我们可以通过选取合适的L来配置希望的极点。
式(4)只是误差模型,这是我们的目标,要达到这个目标,我们需要将“估计系统”进行闭环。注意到我们从(3)到(4)中引入的反馈项L(y-\hat{y}),因为e实际是从(1)减(2)中得出的,为了从(1)减(2)中凑出这个反馈项,我们调整(2),使其成为
\begin{matrix}\dot{\hat{x}}=A\hat{x}+Bu+L(y-\hat{y}) \\ \hat{y}=C\hat{x} \tag{5}\end{matrix}
这样(1)-(5)自然就能得到(4)的样子。这里的(5)就是Luenberger Observer。

PART II

实验部分,我们假设一个系统为:
\begin{matrix}\dot{x}=3x+2u \\ y=2x+u \tag{6}\end{matrix}
其中x是不可测的,我们只能测量y,依据前面的推导,我们记\hat{x}为估计变量,有
\begin{matrix}\dot{\hat{x}}=3\hat{x}+2u+L(y-\hat{y}) \\ \hat{y}=2\hat{x}+u \tag{7}\end{matrix}
由(6)-(7)可得:
\begin{matrix}\dot{e}=3e-L(y-\hat{y})=(3-2L)e \\ y=2x+u \tag{8}\end{matrix}
假设我们配置极点为-1,则L=2。带入到(7)中,我们得到观测器为:
\dot{\hat{x}}=3\hat{x}+2u+2(y-\hat{y}) \tag{7},据此我们绘制simulink仿真如下:

observer.jpg
图中,我选择real system的积分初始值为-3,估计系统的积分初始值为0,因此二者的差值会从-3逐渐收敛到0.

PART III

在我们使用观测器的估计值作为系统的控制反馈信号,我们通常会让观测器的极点相对于控制器的极点更靠右,使观测器的收敛速度更快,从而有一个可靠的反馈值来控制系统。
下面我们就利用上面的系统来最终我们得到控制信号。信号跟踪的部分参看第4讲。这里我们同样把控制器的极点也配置为-1,即观测器和控制器的极点都是-1,其中实际系统的积分初始值仍然为-3,观测器积分初值为0。simulink的控制图如下:

controlwithobserver.jpg

可以看到,控制信号很快跟踪上了目标信号。
以上!

上一篇下一篇

猜你喜欢

热点阅读