みなさん,こんにちは
おかしょです.
現代制御を学び始めると必ず最初の方で出てくるLQR制御について解説します.
制御工学の参考書を見ると,制御入力の算出はソフトのコマンドで簡単に済ませてしまっているものが多いですが,ここではしっかり途中計算も解説していきます.
この記事を読むと以下のようなことがわかる・できるようになります.
- LQRとは何か
- LQR制御のメリット
- リカッチ方程式の解き方
この記事を読む前に
現代制御を学び始めた方は,LQRと極配置法というものを最初に学ぶと思います.
以下の記事では極配置法によって1次遅れ系のシステムを制御する方法について解説しているので,そちらを先に読んでおくことをおすすめします.
LQR制御とは
LQRはLinear Quadratic Regulatorの略です.
この制御器の特徴は何といっても,制御入力を最適計算によって算出することです.
この制御器を利用することで制御入力の大きさや状態量の収束性を考慮して最適な制御ゲインを求めることができます.
LQR制御のメリット
この制御器のメリットは最適計算をしてゲインを求めることにあります.
例えば極配置法のような任意の極を指定して制御ゲインを求めると,指定した極の位置にあった応答をさせることができます.
しかし,この時に指定した極の位置が制御対象の極の位置と大きく離れていたときは制御入力が過大になってしまい,現実には出力できない入力を加えるように要求されるかもしれません.
このような制御器は現実には使用することができないので,指定する極の位置をずらさなければなりません.
LQR制御の場合はこのように入力が過大になってしまう心配がありません.
最適化計算で制御入力の大きさも考慮に入れるため,制御入力が実現不可能な過大な値になることなく,状態量を収束させることができます.
LQR制御の設計方法
LQR制御器の設計は,参考書を見るとソフトのコマンドを使って簡単に算出していしまっていますが,手計算をしようとすると最適化計算なので少し大変です.
ですが,手計算をするのとコマンドで簡単に算出するのとでは理解度が大きく異なるので手計算を一度だけでもやっておくことをおすすめします.
さて,最適化計算をするためには評価関数,もしくは目的関数とも呼ばれる関数が必要になります.
文献によってさまざまな呼び方がありますが,ここでは評価関数と呼ぶことにします.
LQR制御の評価関数は以下のようになります.
\[
\int_0^1 \left(x^{T}(t)Qx(t)+u^{T}(t)Ru(t)\right) dt
\tag{1}
\]
上式において,QやRは重み行列と呼ばれるもので,制御入力が過大になるのを抑えることを重要視する場合はQを大きく,反対に状態量を速やかに収束させることを重要視する場合はRを大きくします.
QとRは正定対象行列でなけらばならないので注意してください.
この評価関数を最小化する制御入力が,制御入力を課題にすることなく状態量を速やかに収束させることのできる制御入力になります.
式(1)の評価関数を最小化する制御入力は以下のようになります.
\[
u=Kx(t)
\tag{2}
\]
ここで,Kは制御ゲインとしていて,これは以下の式で求められます.
\[
K=-R^{-1}B^{T}P
\tag{3}
\]
上式で新たに登場したPはリカッチ方程式という式の解になります.このPも正定対象行列になります.
リカッチ方程式にはリカッチ微分方程式とリカッチ代数方程式の2種類があります.
リカッチ微分方程式の場合はシステムの過渡応答まで含めた最適化ができ,リカッチ代数方程式の場合は定常期のみの最適化を行うことができます.
このように聞くとリカッチ微分方程式を解いた方が応答の過渡期から定常期までのすべてを最適化できるの良いように思えますが,リカッチ微分方程式の解を求めることは困難なためリカッチ代数方程式を用いることがほとんどです.
そのため,ここでもリカッチ代数方程式を扱うことにします.
リカッチ方程式の解き方
リカッチ方程式とは,以下のような式のことを言います.
\[
A^{T}P+PA-PBR^{-1}B^{T}P+Q=0
\tag{4}
\]
この式をPについて解くことで制御入力を求めることができます.
この式を解くのは非常に複雑なので具体例を交えて解説していきます.
ここでは以下のようなシステムを例としてリカッチ方程式を解きます.
\[
\dot{x}=Ax+Bu
\tag{5}\\
x=
\begin{bmatrix}
x_{1}\\
x_{2}
\end{bmatrix}\\
A=
\begin{bmatrix}
0&1\\
-1&-2
\end{bmatrix}\ \
B=
\begin{bmatrix}
0\\
1
\end{bmatrix}\\
\]
評価関数の重み行列QとRは以下のようにします.
\[
Q=
\begin{bmatrix}
10&0\\
0&1
\end{bmatrix}\ \
R=1
\tag{6}
\]
これらの情報(A,B,Q,R)を式(4)のリカッチ方程式に代入してPについて解きます.
まずは式(4)に単純に代入すると以下のようになります.
\[
\begin{bmatrix}
0&-1\\
1&-2
\end{bmatrix}P+P
\begin{bmatrix}
0&1\\
-1&-2
\end{bmatrix}-P
\begin{bmatrix}
0\\
1
\end{bmatrix}1
\begin{bmatrix}
0&1
\end{bmatrix}P+
\begin{bmatrix}
10&0\\
0&1
\end{bmatrix}=0
\tag{7}
\]
ここでPは正定対象行列なので,以下のように置きます.
\begin{eqnarray}
P=
\begin{bmatrix}
p_1&p_2\\
p_2&p_3
\end{bmatrix}
\end{eqnarray}
これを式(7)に代入して展開していきます.
\[
\begin{bmatrix}
0&-1\\
1&-2
\end{bmatrix}
\begin{bmatrix}
p_1&p_2\\
p_2&p_3
\end{bmatrix}+
\begin{bmatrix}
p_1&p_2\\
p_2&p_3
\end{bmatrix}
\begin{bmatrix}
0&1\\
-1&-2
\end{bmatrix}-
\begin{bmatrix}
p_1&p_2\\
p_2&p_3
\end{bmatrix}
\begin{bmatrix}
0\\
1
\end{bmatrix}
\begin{bmatrix}
0&1
\end{bmatrix}
\begin{bmatrix}
p_1&p_2\\
p_2&p_3
\end{bmatrix}+
\begin{bmatrix}
10&0\\
0&1
\end{bmatrix}=0
\tag{8}
\]
\[
\begin{bmatrix}
-p_2&-p_3\\
p_1-2p_2&p_2-2p_3
\end{bmatrix}+
\begin{bmatrix}
-p_2&p_1-2p_2\\
-p_3&p_2-2p_3
\end{bmatrix}-
\begin{bmatrix}
p_2\\
p_3
\end{bmatrix}
\begin{bmatrix}
0&1
\end{bmatrix}
\begin{bmatrix}
p_1&p_2\\
p_2&p_3
\end{bmatrix}+
\begin{bmatrix}
10&0\\
0&1
\end{bmatrix}=0
\tag{9}
\]
\[
\begin{bmatrix}
-p_2&-p_3\\
p_1-2p_2&p_2-2p_3
\end{bmatrix}+
\begin{bmatrix}
-p_2&p_1-2p_2\\
-p_3&p_2-2p_3
\end{bmatrix}-
\begin{bmatrix}
0&p_2\\
0&p_3
\end{bmatrix}
\begin{bmatrix}
p_1&p_2\\
p_2&p_3
\end{bmatrix}+
\begin{bmatrix}
10&0\\
0&1
\end{bmatrix}=0
\tag{10}
\]
\[
\begin{bmatrix}
-p_2&-p_3\\
p_1-2p_2&p_2-2p_3
\end{bmatrix}+
\begin{bmatrix}
-p_2&p_1-2p_2\\
-p_3&p_2-2p_3
\end{bmatrix}-
\begin{bmatrix}
p_2^2&p_2 p_3\\
p_2 p_3&p_3^2
\end{bmatrix}+
\begin{bmatrix}
10&0\\
0&1
\end{bmatrix}=0
\tag{11}
\]
\[
\begin{bmatrix}
-p_2^2-2p_2+10&p_1-2p_2-P_2 p_3-p_3\\
p_1-2p_2-P_2 p_3-p_3&-p_3^2+2p_2-4p_3+1
\end{bmatrix}=0
\tag{12}
\]
上の式から以下のような連立方程式が得られました.
\begin{eqnarray}
-p_2^2-2p_2+10=0 \tag{i} \\
p_1-2p_2-P_2 p_3-p_3 = 0 \tag{ii} \\
-p_3^2+2p_2-4p_3+1=0 \tag{iii}
\end{eqnarray}
この連立方程式を解きます.この式を見て気付いた方もいると思いますが,この連立方程式の解には複数の解が存在します.
しかし,最適な制御入力を求めることができるPは一つだけになります.
複数の解から最適制御入力に必要な買いを見つけるには,Pが正定行列であるという条件を使用します.
この条件に合致する解は必ず一つだけになるので,最適制御入力として利用できる解はただ一つだけとなります.
それでは上の連立方程式の解を求めてみましょう.
式(i)は\(p_2\)に関する2次式なので,これを解の公式を使って解くと以下のようになります.
\[
p_2=-1\pm \sqrt{11}
\]
\(p_2\)がわかれば,式(iii)は\(p_3\)に関する2次式になるので,こちらも解の公式を使って解くと以下のようになります.
\[
p_3=-2\pm \sqrt{-2p_2+5}
\]
この解に先ほど求めた\(p_2\)を代入すると,\(p_2=-1-\sqrt{11}\)の時は\(p_3\)が複素数となってしまうため\(p_2=-1+\sqrt{11}\)が解であると言えます.
ここまでで,\(p_2\)の解は\(-1+\sqrt{11}\)に決定しました.そして\(p_3\)はまだ二つの候補があります.
これらの結果を式(ii)に代入します.すると\(p_1\)は以下の二つの解を得ます.
\[
p_1=8.9240…,\ -12.490…
\]
ここで,行列Pは正定行列であるので\(p_1\)は正でなければなりません.
したがって,これですべての要素の値が決定されました.
リカッチ方程式の解は以下のようになります.
\[
P=
\begin{bmatrix}
8.9240&2.3166\\
2.3166&1.1037
\end{bmatrix} \tag{13}
\]
これを式(3)および(2)に代入することで式(1)の評価関数を最小化する制御入力を求めることができます.
まとめ
この記事ではLQR制御とは何なのか,制御入力の求め方などを解説しました.
多くの参考書ではソフトのコマンドで簡単に片づけてしまっていますが,私はそれでは理解しにくいと思ったので手計算で算出する方法を解説しました.
続けて読む
今回解説したLQRという制御器の性能を確認したい方は以下の記事で解説しているマス・スプリング・ダンパーに適用すると学習の役に立つと思うので,続けて読んでみてください.
Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.
それでは最後まで読んでいただきありがとうございました.
コメント