當前位置: 華文問答 > 數碼

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

看到這個問題引起來如此之多的爭執,我感覺挺遺憾的,沒有想到控制界的兩端竟也有著幾乎無法逾越的鴻溝。這多多少少讓我想起了這個問題:作為控制工程師/理論家,該如何和理論家/工程師 交流溝通? 個人認為,辯論的雙方倘若只是單純地為了反駁對方而無視對方的論點,不利於問題的討論和解決;不妨換個角度,從對方的認知和假設開始思考,進行討論。總之,想要填平這條鴻溝,看來路漫漫其修遠兮……