はじめに
状態フィードバック(レギュレータ)の実システムへの適用について説明します。
一般のシステムでは、全ての状態をゼロに収束させるよりも、目標状態に保つことが要求される場合が多いため、状態フィードバック(レギュレータ)の実システムへの適用にはもう1段の検討が必要になります。
前走車追従制御への適用の場合
状態フィードバック(レギュレータ)は、制御目標との偏差をゼロにするので、モデルを制御目標との偏差のモデルに変更します。例えば、状態量を目標値(obj)とその偏差(d)に分けて
目標車間距離:\(L_{obj}\) 目標車間距離との偏差:\(L_{d}\)
目標車速:\(V_{obj}\) 目標車速との偏差:\(V_{d}\)
とすると
車間距離 \(L=L_{obj}+L_{d}\)
車速 \(V=V_{obj}+V_{d}\) と表現できます。
※加速度 \(A\) 加速度は目標状態が0なので、そのまま
制御目標との偏差の関係をモデルにすると、加速度と速度の関係は
\[\frac{d V_{d}}{d t}=A \hspace{0.5cm} \frac{d L_{d}}{d t}=-V_{d}\]加速指示の応答(Tは時定数、加速指示Acmdに対して加速度Aは一次遅れで追従)
\[\frac{d}{d t} A=-\frac{1}{T} A+\frac{1}{T} A_{cmd}\]加速指示Acmdから加速度、速度、車間距離の関係を状態方程式にまとめてモデル化すると
\[\frac{d}{d t}\left[\begin{array}{c}L_{d} \\ V_{d} \\ A\end{array}\right]=\left[\begin{array}{ccc}0 & -1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & -\frac{1}{T}\end{array}\right]\left[\begin{array}{c}L_{d} \\ V_{d} \\ A\end{array}\right]+\left[\begin{array}{c}0 \\ 0 \\ \frac{1}{T}\end{array}\right] A_{cmd}\]
連続系で状態フィードバックゲインK を設定してから離散時間モデル化する
状態フィードバックゲインK を設定します。状態フィードバック(レギュレータ)の基本式
\[\frac{dx(t)}{dt}=(A-BK) x(t)\]において、連続時間系の状態フィードバックが収束するための安定条件は、
特性方程式 \(\operatorname{det}(\lambda I-(A-B K))=0\)
の固有値 (解) λ の実部が負です。(安定条件はこちら)
今回のシステムは3次なので \(K=\left[k_{1} k_{2} k_{3}\right]\) とすると、特性方程式は
\[\operatorname{det}(\lambda I-(A-BK))\]\[=\operatorname{det}\left(\left[\begin{array}{lll}\lambda & 0 & 0 \\ 0 & \lambda & 0 \\ 0 & 0 & \lambda\end{array}\right]-\left[\begin{array}{ccc}0 & -1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & -\frac{1}{T}\end{array}\right]+\left[\begin{array}{ccc}0 & 0 & 0 \\ 0 & 0 & 0 \\ \frac{k_{1}}{T} & \frac{k_{2}}{T} & \frac{k_{3}}{T}\end{array}\right]\right)\]\[=\operatorname{det}\left(\left[\begin{array}{ccc}\lambda & 1 & 0 \\ 0 & \lambda & -1 \\ \frac{k_{1}}{T} & \frac{k_{2}}{T} & \lambda+\frac{k_{3}+1}{T}\end{array}\right]\right) \]\[=\lambda^{3}+\frac{k_{3}+1}{T} \lambda^{2}+\frac{k_{2}}{T} \lambda-\frac{k_{1}}{T}\] ・・・・①
一方、安定条件は「固有値 (解) λ の実部が負」より \(λ=−d\) (dは正の整数)とすると
\[(\lambda+d)^{3}=\lambda^{3}+3d \lambda^{2}+3d^{2} \lambda+d^{3}\] ・・・・② ※計算を簡単にするために重根にしています
式①と式②の係数比較から
\(k_{1}=-d^{3}T\) \(k_{2}=3d^{2}T\) \(k_{3}=3 dT-1\)
これで状態フィードバックのゲインKが設定できました。
※状態フィードバックゲインの計算は、このモデルでは手計算できましたが、3次以上のモデルの場合は制御設計ツールなどの利用が必要になることが多いと思います。
離散時間モデル化
状態フィードバック(レギュレータ)の基本式
\[\frac{d x(t)}{d t}=(A-B K) x_{(t)}\]を離散化する際、制御入力は分離して設計しました。
\[A \rightarrow P \quad B \rightarrow Q \quad u=-K x\]\[x_{(n+1)}=Px_{(n)}+Q\left(-Kx_{(n)}\right)\]
前走車追従制御モデルの状態方程式は\[\frac{d}{d t}\left[\begin{array}{c}L_{d} \\ V_{d} \\ A\end{array}\right]=\left[\begin{array}{ccc}0 & -1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & -\frac{1}{T}\end{array}\right]\left[\begin{array}{c}L_{d} \\ V_{d} \\ A\end{array}\right]+\left[\begin{array}{c}0 \\ 0 \\ \frac{1}{T}\end{array}\right] A_{cmd}\]
ですから、\(-Kx\) はシステムの入力である加速指示値Acmdです。この状態方程式を離散時間モデル化します。
ダウンロード
こちらから状態フィードバックによる前走車追従制御のEXCELファイルをダウンロードできます。
状態フィードバックのゲインKの計算と離散時間モデル化の処理は状態方程式のシートです。
制御目標との偏差のモデルに変更しているため、符号が違うところはありますが、車両走行モデルの離散化処理とほぼ同じです。
シミュレーション
状態フィードバックによる前走車追従制御の収束性をシミュレーションで確認します。
EXCELファイルのシミュレーションのシートです。
状態フィードバック(レギュレータ)制御は、目標車間距離との偏差(Ld)や目標車速との偏差(Vd)、加速度(A)をゼロに収束させることで以下の追従制御を実現しています。
- 車間距離を初期状態の60[m]から目標車間距離50[m]に短縮
- 走行速度は前走車の速度の15[m/s]を維持し追従走行
\(-Kx_{(n)}\)をシステムへの加速指示Acmdとして計算し制御入力とする部分(赤枠内の計算)がコントローラに実装する処理になります。
結果
車間距離を初期状態の60[m]から目標車間距離50[m]に短縮し、走行速度は前走車の速度の15[m/s]を維持し追従走行しています。
目標車間距離との偏差Ld、目標車速との偏差Vd、加速度Aで見ると、それぞれゼロに収束しています。
0 件のコメント:
コメントを投稿