目次[非表示]
はじめに
状態フィードバック(レギュレータ)の実システムへの適用について説明します。
一般のシステムでは、全ての状態をゼロに収束させるよりも、目標状態に保つことが要求される場合が多いため、状態フィードバック(レギュレータ)の実システムへの適用にはもう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 xx_{(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 件のコメント:
コメントを投稿