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