#3月13日晚更新。
这个问题下的答案再次体现的控制领域内理论和实践的分歧。我以一个中立的角度,尝试让两边的人尽量理解对方的想法。
开始讨论前,先假定几个前提:
- 暂且讨论连续LTI系统;
- 考虑伦贝格形式的Kalman滤波器/观测器;
- 考察的是正弦输入时的稳态下,观测器估计输出值相对于系统实际输出值的相位延迟;
- 理想情况指的是无模型误差、无噪声、无纯时滞环节。
先放结论: 同意 @李崇 等的观点,以上前提及理想情况下,对于任何正弦输入频率,不存在相位延迟。
大家想当然地认为相位延迟存在,是因为工程上的相位延迟是经常能够观察到的。所以,我先反过来解释一下为什么@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 ,那么相位延迟什么的就无从谈起了。
那为什么工程上一般都观察到了相位延迟呢?我想原因无外乎以下几点:
- 工程上不存在没有误差的模型;
- 工程上不存在没有噪声的传感器;
- 工程上控制器大多用离散系统实现,因此多多少少存在些许传输延迟。
个人认为,第三点对于相位延迟的贡献显而易见,第二点我认为并不影响,第一点应该可以通过理论证明。 对于第一点,可以从如下的角度去思考 @小小天涯:
定义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)} 的传函并不存在,所以我认为它并不会带来相位差(@李崇,欢迎讨论)。