回転型クレーン / 倒立振子の制御 回転型クレーンの制御 状態方程式 コントローラ設計 ( 極配置法 ) コントローラ設計 ( 最適レギュレータ ) 回転型倒立振子の制御 状態方程式 コントローラ設計
コントローラの形式 : 状態フィードバック P-D コントローラ アームの P-D 振子の P-D 目標値
状態フィードバック制御 回転型クレーン コントローラ で
状態フィードバック制御 回転型クレーン コントローラ >> rotary_para; >> h = 0.01; Tf1 = 0.02; Tf2 = 0.05; >> K = [-10-10 0 0]; sfbk_crane.slx
状態フィードバック制御 各自で適当にゲイン を与えてみよう ただし, : アームの比例ゲイン : 振子の比例ゲイン : アームの微分ゲイン : 振子の微分ゲイン
状態フィードバック制御 動画 :NXT_crane.wmv
回転型クレーン / 倒立振子の制御 回転型クレーンの制御 状態方程式 コントローラ設計 ( 極配置法 ) コントローラ設計 ( 最適レギュレータ ) 回転型倒立振子の制御 状態方程式 コントローラ設計 7.2 節 (7.2.2)
モデルベース設計 開始 モデリング コントローラ設計 シミュレーション 評価 Good 実機実験 Bad Bad 評価 終了 Good
状態方程式の導出 アーム 振子 安定 振子の角度の基準 : 真下 振子を真下で静止 ( 振子の振れ止め )
状態方程式の導出 アーム 振子 線形近似 ( 近似線形化 )
状態方程式の導出 アーム 振子 非線形補償
状態方程式の導出 アーム 振子 状態変数 : アームの角度 : 振子の角度 : アームの角速度 : 振子の角速度
状態方程式の導出
状態方程式の導出
状態方程式の導出 状態方程式
回転型クレーン / 倒立振子の制御 回転型クレーンの制御 状態方程式 コントローラ設計 ( 極配置法 ) コントローラ設計 ( 最適レギュレータ ) 回転型倒立振子の制御 状態方程式 コントローラ設計 7.4 節 (7.4.1) (7.4.2)
コントローラの形式 : 状態フィードバック P-D コントローラ アームの P-D 振子の P-D 目標値
コントローラの形式 : 状態フィードバック 状態フィードバック形式のコントローラ
状態フィードバック制御 状態方程式 コントローラ
状態フィードバック制御 閉ループ系
状態フィードバック制御 微分信号のラプラス変換 閉ループ系 閉ループ系の解 : 遷移行列 ( 行列指数関数 )
遷移行列 ( 行列指数関数 ) の求め方 : 例 1 遷移行列 ( 行列指数関数 ) の固有値 ( システムの極 ) 特性方程式 の解 ( 互いに異なる負の実数 )
遷移行列 ( 行列指数関数 ) の求め方 : 例 1 遷移行列 ( 行列指数関数 )
遷移行列 ( 行列指数関数 ) の求め方 : 例 1 の固有値 ( システムの極 ) ( 互いに異なる負の実数 ) 振動せずに収束
遷移行列 ( 行列指数関数 ) の求め方 : 例 2 遷移行列 ( 行列指数関数 ) の固有値 ( システムの極 ) 特性方程式 の解 ( 実部が負の共役複素数 )
遷移行列 ( 行列指数関数 ) の求め方 : 例 2 遷移行列 ( 行列指数関数 )
遷移行列 ( 行列指数関数 ) の求め方 : 例 2 振動しながら収束 の固有値 ( システムの極 ) ( 実部が負の共役複素数 ) 実部 : 収束の速さ 虚部 : 振動周期
システムの極と時間応答 の固有値 : ( 実数 ) の固有値 : ( 共役複素数 ) 漸近安定性 の固有値の実部がすべて負で 過渡特性 固有値の実部が負側に大きい収束が速い 固有値の虚部が大きい振動周期が短い
システムの極と時間応答 収束が速くなる 0 Im 振動周期が短くなる Re の固有値
コントローラの設計 : 極配置法 極配置法 制御対象 が与えられたとき, の極が指定した値となるようにコントローラ を設計 MATLAB 関数 :acker, place
コントローラの設計 : 極配置法 rotary_crane_acker1.m
コントローラの設計 : 極配置法 rotary_crane_acker1.m 設計例 1 rotary_crane_acker2.m 設計例 2 rotary_crane_acker3.m 設計例 3
状態フィードバック制御 >> rotary_crane_acker1 >> rotary_crane_acker2 >> rotary_crane_acker3 sfbk_crane.slx 注 ) 離散化の方法 : 双一次変換
制御なし 動画 :NXT_crane_free.wmv
状態フィードバック制御 ( 極配置 ) 設計例 1 動画 :NXT_crane_acker1.wmv
状態フィードバック制御 ( 極配置 ) 設計例 2 動画 :NXT_crane_acker2.wmv
状態フィードバック制御 ( 極配置 ) 設計例 3 動画 :NXT_crane_acker3.wmv
状態フィードバック制御 各自で適当に固有値 を指定してみよう
回転型クレーン / 倒立振子の制御 回転型クレーンの制御 状態方程式 コントローラ設計 ( 極配置法 ) コントローラ設計 ( 最適レギュレータ ) 回転型倒立振子の制御 状態方程式 コントローラ設計 7.5 節 (7.5.1) (7.5.2)
コントローラの設計 : 最適レギュレータ 極配置法の問題点 固有値の選び方が不明瞭 振子の収束性を変えずにアームの収束性を向上させるには 入力の大きさは 各状態 入力 の収束性を定量的に評価 の大きさを定量的に評価
コントローラの設計 : 最適レギュレータ 状態 の収束の速さの評価 の 0 への収束が速い 二乗面積 が小さい
コントローラの設計 : 最適レギュレータ 入力 の大きさの評価 のエネルギー消費の抑制 二乗面積 が小さい
コントローラの設計 : 最適レギュレータ : ( アーム角度 ) の収束性 : ( 振子角度 ) の収束性 : ( アーム角速度 ) の収束性 : ( 振子角速度 ) の収束性 : のエネルギー消費の抑制
コントローラの設計 : 最適レギュレータ 評価関数 重みの選び方 : の収束性に関する重み 大きな値に選ぶとの収束性を重視 : の消費エネルギーに関する重み 大きな値に選ぶとの消費エネルギーの抑制を重視
コントローラの設計 : 最適レギュレータ 評価関数
コントローラの設計 : 最適レギュレータ 最適レギュレータ問題 制御対象 と重み が与えられたとき, 評価関数が となるようにコントローラ を設計 MATLAB 関数 :lqr
コントローラの設計 : 最適レギュレータ rotary_crane_lq1.m を最小化する を設計
状態フィードバック制御 >> rotary_crane_lq1 >> rotary_crane_lq2 >> rotary_crane_lq3 >> rotary_crane_lq_final sfbk_crane.slx
状態フィードバック制御 ( 最適レギュレータ ) 設計例 1 rotary_crane_lq1.m 1 に固定することが多い
状態フィードバック制御 ( 最適レギュレータ ) 設計例 1 動画 :NXT_crane_lq1.wmv
状態フィードバック制御 ( 最適レギュレータ ) 設計例 1 アームの収束が遅いので, アーム角の重みを大きくする 設計例 2
状態フィードバック制御 ( 最適レギュレータ ) 設計例 2 rotary_crane_lq2.m 負側に大きくなった! 設計例 1
状態フィードバック制御 ( 最適レギュレータ ) 設計例 2 動画 :NXT_crane_lq2.wmv
状態フィードバック制御 ( 最適レギュレータ ) 設計例 2 振子の収束が遅くなったので, 振子角の重みを大きくする 設計例 3
状態フィードバック制御 ( 最適レギュレータ ) 設計例 3 rotary_crane_lq3.m 負側に大きくなった! 設計例 2
状態フィードバック制御 ( 最適レギュレータ ) 設計例 3 まずまずの結果 動画 :NXT_crane_lq3.wmv
状態フィードバック制御 ( 最適レギュレータ ) 設計例 4 rotary_crane_lq_final.m 最後に重みを微調整
状態フィードバック制御 ( 最適レギュレータ ) 設計例 4 動画 :NXT_crane_lq_final.wmv
状態フィードバック制御 各自で適当に重み を与えてみよう
回転型クレーン / 倒立振子の制御 回転型クレーンの制御 状態方程式 コントローラ設計 ( 極配置法 ) コントローラ設計 ( 最適レギュレータ ) 回転型倒立振子の制御 状態方程式 コントローラ設計 7.2 節 (7.2.1)
回転型倒立振子の数学モデル : 状態方程式 振子を真上で安定化 アーム 振子 不安定 線形近似 ( 近似線形化 )
回転型倒立振子の数学モデル : 状態方程式 アーム 振子 非線形補償
回転型倒立振子の数学モデル : 状態方程式 アーム 振子 状態変数
回転型倒立振子の数学モデル : 状態方程式 状態方程式
回転型クレーン / 倒立振子の制御 回転型クレーンの制御 状態方程式 コントローラ設計 ( 極配置法 ) コントローラ設計 ( 最適レギュレータ ) 回転型倒立振子の制御 状態方程式 コントローラ設計 7.4 節 (7.4.3) 7.5 節 (7.5.3)
状態フィードバック制御 極配置法 rotary_ip_acker.m 最適レギュレータ rotary_ip_lq.m の固有値 :
状態フィードバック制御 >> rotary_ip_acker >> rotary_ip_lq ビープ音が鳴ったら 10 秒以内に振子を手動で真上に sfbk_ip.slx
状態フィードバック制御 ( 最適レギュレータ ) 動画 :NXT_ip_lq1.wmv 非線形補償あり 動画 :NXT_ip_lq2.wmv 非線形補償なし 振動抑制