当前位置: 华文问答 > 数码

Kalman滤波器,观测器都会导致phase shift吗?

2017-03-13数码

#3月13日晚更新。


这个问题下的答案再次体现的控制领域内理论和实践的分歧。我以一个中立的角度,尝试让两边的人尽量理解对方的想法。

开始讨论前,先假定几个前提:

  1. 暂且讨论连续LTI系统;
  2. 考虑伦贝格形式的Kalman滤波器/观测器;
  3. 考察的是正弦输入时的稳态下,观测器估计输出值相对于系统实际输出值的相位延迟;
  4. 理想情况指的是无模型误差、无噪声、无纯时滞环节。

先放结论: 同意 @李崇 等的观点,以上前提及理想情况下,对于任何正弦输入频率,不存在相位延迟。

大家想当然地认为相位延迟存在,是因为工程上的相位延迟是经常能够观察到的。所以,我先反过来解释一下为什么@REX.X的回答是正确的。考虑如下的状态方程形式的系统:

\begin{align*} \dot{x} & =Ax+Bu\\ y & =Cx \end{align*}

以及Kalman观测器:

\begin{align*} \dot{\hat{x}} & =A_{0}\hat{x}+B_{0}u+L\left(y+n-C_{0}\hat{x}\right)\\ \hat{y} & =C_{0}\hat{x} \end{align*}

其中A,B,C 是系统参数的真实值,而A_0,B_0,C_0 是不一定准确的名义值,以及n 是噪声。那么@REX同学的论点是,倘若既没有噪声,也没有模型误差,即n=0 且名义值等于真实值的话,最终\hat{y} 将趋近于y ,因此不存在相位延迟。这一点其实非常好证明,很简单,定义\tilde{x}=\hat{x}-x 、\tilde{y}=\hat{y}-y ,然后拿下式减去上式即可得到

\begin{align*} \dot{\tilde{x}} & =\left(A-LC\right)\tilde{x}\\ \tilde{y} & =C\tilde{y} \end{align*}

在满足detectability和合适的选取L 的情况下,无论初始的观测误差有多大,这个误差都会收敛到零。既然\hat{y}=y ,那么相位延迟什么的就无从谈起了。


那为什么工程上一般都观察到了相位延迟呢?我想原因无外乎以下几点:

  1. 工程上不存在没有误差的模型;
  2. 工程上不存在没有噪声的传感器;
  3. 工程上控制器大多用离散系统实现,因此多多少少存在些许传输延迟。

个人认为,第三点对于相位延迟的贡献显而易见,第二点我认为并不影响,第一点应该可以通过理论证明。 对于第一点,可以从如下的角度去思考 @小小天涯:

定义u\rightarrow y 的传函为G(s) ,然后把系统和观测器整体当做一个系统,它的传函u\rightarrow \hat{y} 的传函为\hat{G}(s) 。想知道\hat{y} 相对于y 的幅度/相位差? 那直接求 \[ \frac{\hat{y}\left(s\right)}{y\left(s\right)}=\frac{\hat{G}\left(s\right)u\left(s\right)}{G\left(s\right)u\left(s\right)}=\frac{\hat{G}\left(s\right)}{G\left(s\right)} \] 的伯德图不就行了

我非常肯定有现成的文献讨论这一点(求文献),但是因为我懒,所以我就只举了个例子做了个仿真验证一下。系统为

% stable plant A=[0 1;-1 -1];B=[0;1];C=[1 0]; % plant model e_perc=0; % error percentage A_hat=A*(1-e_perc);B_hat=B*(1-e_perc);C_hat=C*(1-e_perc); noise_var=0.00; % noise variance % observer and tracking controller design L=lqr(A_hat',C_hat',eye(2),1)'; K=lqr(A_hat,B_hat,eye(2),1);

可以验证,当输入频率为1 rad/s时,如果e_perc=0,最终的相位差为0;如果e_perc=0.2,最终的相位差为约为-17.1483°。另一方面

G=tf(ss(A,B,C,0)) G_hat=tf(ss([A zeros(2);L*C A_hat-L*C_hat],[B;B_hat],[zeros(1,2),C_hat],0)) minreal(G_hat/G)

量出来相位差约为-17.2°。验证了这个方法的可靠性。

至于噪声带来的影响,因为\frac{y(s)}{n(s)} 的传函并不存在,所以我认为它并不会带来相位差(@李崇,欢迎讨论)。

(上图:无模型误差)

(上图:20%模型误差)

(上图:伯德图给出了同样的相位延迟)

仿真链接:http:// pan.baidu.com/s/1o8Q8o2 Y

看到这个问题引起来如此之多的争执,我感觉挺遗憾的,没有想到控制界的两端竟也有着几乎无法逾越的鸿沟。这多多少少让我想起了这个问题:作为控制工程师/理论家,该如何和理论家/工程师 交流沟通? 个人认为,辩论的双方倘若只是单纯地为了反驳对方而无视对方的论点,不利于问题的讨论和解决;不妨换个角度,从对方的认知和假设开始思考,进行讨论。总之,想要填平这条鸿沟,看来路漫漫其修远兮……