1.1K Views
August 04, 22
スライド概要
■ドローンやロボットを自作することを通じて制御や関連技術の生涯勉強情報を提供■工学博士■防大航空宇宙→筑波大博士■陸自→対戦車誘導弾等の装備品開発→高専教員→大学教員■ロボットランサー優勝→マイクロマウスニューテクノロジー賞受賞■指導者としてつくばチャレンジバンナム賞→飛行ロボコンマルチコプタ部門1位等々■北海道函館出身
ななめからの 最適レギュレータ #つぶやき制御工学
状態方程式で表されるシステム 𝑥̇ = 𝐴𝑥 + 𝐵𝑢 𝑦 = 𝐶𝑥 + 𝐷𝑢 状態フィードバック 𝑢 = −𝐾𝑥 #つぶやき制御工学
最適レギュレータ " 𝐽=. # # 𝑥 𝑄𝑥 + 𝑢 𝑅𝑢 𝑑𝑡 ! 上記、評価関数を最小化する制御入力を 見つける問題の解 解は状態フィードバックで与えられる #つぶやき制御工学
• 1次のシステム • 状態フィードバック • 2次形式評価関数の最小化 これだったら、フィードバックゲイン 自力でもとめらるんでないかな? #つぶやき制御工学
評価関数 " 𝐽=. $ 𝑄𝑥 + 𝑅𝑢 $ 𝑑𝑡 ! に、状態フィードバック則を代入 " 𝐽=. $ 𝑄𝑥 + 𝑅 −𝐾𝑥 ! #つぶやき制御工学 $ 𝑑𝑡
" 𝐽=. $ $ 𝑄 + 𝑅𝐾 𝑥 𝑑𝑡 ! 𝐽= 𝑄+ $ 𝑅𝐾 " . $ 𝑥 𝑑𝑡 ! 𝑥が分かればの𝐽の最小値問題として解けそう #つぶやき制御工学
状態方程式に状態フィードバックを代入して整理 𝑥̇ = 𝐴𝑥 + 𝐵𝑢 𝑢 = −𝐾𝑥 𝑥̇ = 𝐴𝑥 + 𝐵 −𝐾𝑥 𝑥̇ = (𝐴 − 𝐵𝐾)𝑥 #つぶやき制御工学
微分方程式は変数分離で解けるので 𝑥̇ = (𝐴 − 𝐵𝐾)𝑥 𝑥 = 𝐶𝑒 %&'( ) システムの初期値を𝑥! とすると、積分定数が判明 𝑥(0) = 𝑥! ! 𝑥 0 = 𝐶𝑒 = 𝐶 = 𝑥! #つぶやき制御工学
状態フィードバックをかけた応答は初期値応答 𝑥 = 𝑥! 𝑒 %&'( ) 評価関数に代入して整理すると 𝐽 = 𝑄 + 𝑅𝐾 ! # ' " ! = 𝑄 + 𝑅𝐾 𝑥" 𝑥" 𝑒 # !' " #つぶやき制御工学 𝑒 ! $%&' ( ! $%&' ( 𝑑𝑡 𝑑𝑡
積分していくと ! ! # 𝐽 = 𝑄 + 𝑅𝐾 𝑥" ' 𝑒 ! $%&' ( 𝑑𝑡 " ! = 𝑄 + 𝑅𝐾 𝑥" ! ! $%&' ( 𝑒 2(𝐴 − 𝐵𝐾) #つぶやき制御工学 # "
! $%&' ( 𝑒 ! ! 𝐽 = 𝑄 + 𝑅𝐾 𝑥" 2(𝐴 − 𝐵𝐾) −1 ! ! = 𝑄 + 𝑅𝐾 𝑥" 2(𝐴 − 𝐵𝐾) ! 𝑄 + 𝑅𝐾 𝑥" 𝐽=− 2(𝐴 − 𝐵𝐾) #つぶやき制御工学 ! # " 😭 ようやく辿り着いた・・
𝐽を最小にする𝐾を見つけるため 𝐾での微分を0とする𝐾をみつける # 𝑄 + 𝑅𝐾 𝑥$ 𝐽=− 2(𝐴 − 𝐵𝐾) 𝑑𝐽 = 𝑑𝐾 # # 微分 # # 2𝑅𝐾𝑥$ 2(𝐴 − 𝐵𝐾) − 𝑄 + 𝑅𝐾 𝑥$ −2𝐵 − # 4(𝐴 − 𝐵𝐾) #つぶやき制御工学
微分を0とする𝐾をみつける # # # 4𝑅𝐾𝑥$ 𝐴 − 𝐵𝐾 + 2𝐵 𝑄 + 𝑅𝐾 𝑥$ − = 0 4 𝐴 − 𝐵𝐾 # 2𝑅𝐾 𝐴 − 𝐵𝐾 + 𝐵 𝑄 + 𝑅𝐾 𝐾 は初期値に無関係とわかる # 𝑅𝐵𝐾 − 2𝑅𝐴𝐾 − 𝐵𝑄 = 0 𝐾を求める2次方程式が得られた #つぶやき制御工学 # =0
2次方程式を解くと 2𝑅𝐴 ± 4𝑅# 𝐴# + 4𝑅𝐵# 𝑄 𝐾= 2𝑅𝐵 𝑅𝐴 ± 𝑅# 𝐴# + 𝑅𝑄𝐵# = 𝑅𝐵 # # # 𝑅𝐴 + 𝑅 𝐴 + 𝑅𝑄𝐵 = 𝑅𝐵 #つぶやき制御工学
𝐴 𝐾= ± 𝐵 𝐴 𝐵 # 𝑄 + 𝑅 𝐾 > 0なので 𝐴 𝐾= + 𝐵 𝐴 𝐵 # 𝑄 + 𝑅 この式で最適フィードバックゲインが求まります #つぶやき制御工学
不安定なシステム 𝑥̇ = 𝑥 + 𝑢 MATLAB・python-controlの lqrコマンドの結果と一致し めでたしめでたし 𝐴=1 𝐵=1 重みを 𝑄 = 100 𝑅 = 1 最適フィードバックゲインを求めると 𝐴 𝐾= + 𝐵 𝐴 𝐵 # 𝑄 1 + = + 𝑅 1 1 1 # 100 + 1 = 1 + 1 + 100 = 1 + 10.05 = 11.05 #つぶやき制御工学
無制御の初期値応答 最適レギュレータの初期値応答 #つぶやき制御工学