68
回転型クレーン / 倒立振子の制御 回転型クレーンの制御 状態方程式 回転型倒立振子の制御 状態方程式 コントローラ設計 コントローラ設計 ( 配置法 ) コントローラ設計 ( 最適 レギュレータ )

回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

回転型クレーン/倒立振子の制御 回転型クレーンの制御

状態方程式

回転型倒立振子の制御

状態方程式

コントローラ設計

コントローラ設計 (極配置法)

コントローラ設計 (最適レギュレータ)

Page 2: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの形式:状態フィードバック

P-D コントローラ

目標値

…… アームの P-D

…… 振子の P-D

Page 3: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

回転型クレーン

コントローラ

Page 4: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

回転型クレーン

コントローラ

>> rotary_para;

>> h = 0.01; Tf1 = 0.02; Tf2 = 0.05;

>> K = [-10 -10 0 0];

sfbk_crane.slx

Page 5: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

各自で適当にゲイン

ただし,

:アームの比例ゲイン

:振子の比例ゲイン

を与えてみよう

:アームの微分ゲイン

:振子の微分ゲイン

Page 6: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

動画:NXT_crane.wmv

Page 7: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

回転型クレーン/倒立振子の制御 回転型クレーンの制御

状態方程式

回転型倒立振子の制御

状態方程式

コントローラ設計

コントローラ設計 (極配置法)

コントローラ設計 (最適レギュレータ)

7.2 節(7.2.2)

Page 8: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

モデルベース設計

シミュレーション

評価

実機実験

評価

モデリング

コントローラ設計

開始

終了

Good

Good

Bad

Bad

Page 9: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態方程式の導出

振子

アーム

振子の角度の基準:真下

振子を真下で静止(振子の振れ止め)

安定

Page 10: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態方程式の導出

振子

アーム

線形近似 (近似線形化)

Page 11: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態方程式の導出

振子

アーム

非線形補償

Page 12: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態方程式の導出

振子

アーム

状態変数:アームの角度

:振子の角度

:アームの角速度

:振子の角速度

Page 13: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態方程式の導出

Page 14: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態方程式の導出

Page 15: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態方程式の導出

状態方程式

Page 16: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

回転型クレーン/倒立振子の制御 回転型クレーンの制御

状態方程式

回転型倒立振子の制御

状態方程式

コントローラ設計

コントローラ設計 (極配置法)

コントローラ設計 (最適レギュレータ)

7.4 節(7.4.1)(7.4.2)

Page 17: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの形式:状態フィードバック

P-D コントローラ

…… アームの P-D

…… 振子の P-D

目標値

Page 18: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの形式:状態フィードバック

状態フィードバック形式のコントローラ

Page 19: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御 状態方程式

コントローラ

Page 20: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

閉ループ系

Page 21: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

閉ループ系の解

閉ループ系

微分信号のラプラス変換

:遷移行列 (行列指数関数)

Page 22: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

遷移行列 (行列指数関数) の求め方:例 1

遷移行列 (行列指数関数)

の固有値 (システムの極)

特性方程式

の解 (互いに異なる負の実数)

Page 23: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

遷移行列 (行列指数関数) の求め方:例 1

遷移行列 (行列指数関数)

Page 24: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

遷移行列 (行列指数関数) の求め方:例 1

の固有値 (システムの極)

(互いに異なる負の実数)

振動せずに収束

Page 25: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

遷移行列 (行列指数関数) の求め方:例 2

遷移行列 (行列指数関数)

の固有値 (システムの極)

特性方程式

の解 (実部が負の共役複素数)

Page 26: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

遷移行列 (行列指数関数) の求め方:例 2

遷移行列 (行列指数関数)

Page 27: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

遷移行列 (行列指数関数) の求め方:例 2

の固有値 (システムの極)

(実部が負の共役複素数)

実部:収束の速さ 虚部:振動周期

振動しながら収束

Page 28: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

システムの極と時間応答

の固有値: (実数)

漸近安定性

の固有値の実部がすべて負

の固有値: (共役複素数)

過渡特性

固有値の実部が負側に大きい

固有値の虚部が大きい

収束が速い

振動周期が短い

Page 29: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

システムの極と時間応答

の固有値

Im

Re

0

収束が速くなる

振動周期が短くなる

Page 30: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:極配置法

極配置法

制御対象

が与えられたとき, の極 が指定した値 となるようにコントローラ

を設計

MATLAB 関数:acker, place

Page 31: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:極配置法

rotary_crane_acker1.m

Page 32: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:極配置法

rotary_crane_acker1.m

rotary_crane_acker2.m

rotary_crane_acker3.m

設計例 1

設計例 2

設計例 3

Page 33: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

>> rotary_crane_acker1

sfbk_crane.slx

>> rotary_crane_acker2

>> rotary_crane_acker3

注)離散化の方法:双一次変換

Page 34: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

制御なし

動画:NXT_crane_free.wmv

Page 35: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(極配置)

動画:NXT_crane_acker1.wmv

設計例 1

Page 36: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(極配置)

動画:NXT_crane_acker2.wmv

設計例 2

Page 37: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(極配置)

動画:NXT_crane_acker3.wmv

設計例 3

Page 38: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

各自で適当に固有値

を指定してみよう

Page 39: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

回転型クレーン/倒立振子の制御 回転型クレーンの制御

状態方程式

回転型倒立振子の制御

状態方程式

コントローラ設計

コントローラ設計 (極配置法)

コントローラ設計 (最適レギュレータ)

7.5 節(7.5.1)(7.5.2)

Page 40: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:最適レギュレータ

極配置法の問題点

固有値の選び方が不明瞭

振子の収束性を変えずにアームの収束性を向上させるには

各状態 の収束性を定量的に評価

入力の大きさは

入力 の大きさを定量的に評価

Page 41: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:最適レギュレータ

状態 の収束の速さの評価

の 0 への収束が速い

二乗面積

が小さい

Page 42: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:最適レギュレータ

入力 の大きさの評価

のエネルギー消費の抑制

二乗面積

が小さい

Page 43: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:最適レギュレータ

: (アーム角度) の収束性

: (振子角度) の収束性

: (アーム角速度) の収束性

: (振子角速度) の収束性

: のエネルギー消費の抑制

Page 44: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:最適レギュレータ

重みの選び方

評価関数

: の収束性に関する重み

・・・・・・ 大きな値に選ぶと の収束性を重視

: の消費エネルギーに関する重み

・・・・・・ 大きな値に選ぶと の消費エネルギーの抑制を重視

Page 45: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:最適レギュレータ

評価関数

Page 46: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:最適レギュレータ

最適レギュレータ問題

制御対象

と重み が与えられたとき,評価関数が

を設計

となるようにコントローラ

MATLAB 関数:lqr

Page 47: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

コントローラの設計:最適レギュレータ

を最小化する を設計

rotary_crane_lq1.m

Page 48: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

>> rotary_crane_lq1

sfbk_crane.slx

>> rotary_crane_lq2

>> rotary_crane_lq3

>> rotary_crane_lq_final

Page 49: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(最適レギュレータ)

rotary_crane_lq1.m

1 に固定することが多い

設計例 1

Page 50: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(最適レギュレータ)

動画:NXT_crane_lq1.wmv

設計例 1

Page 51: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(最適レギュレータ)

アームの収束が遅いので,

アーム角

の重み を大きくする

設計例 1

設計例 2

Page 52: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

設計例 1

状態フィードバック制御(最適レギュレータ)

rotary_crane_lq2.m

設計例 2

負側に大きくなった!

Page 53: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(最適レギュレータ)

動画:NXT_crane_lq2.wmv

設計例 2

Page 54: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(最適レギュレータ)

設計例 2

振子の収束が遅くなった

ので,振子角

の重み を大きくする

設計例 3

Page 55: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

設計例 2

状態フィードバック制御(最適レギュレータ)

rotary_crane_lq3.m

設計例 3

負側に大きくなった!

Page 56: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(最適レギュレータ)

動画:NXT_crane_lq3.wmv

設計例 3

まずまずの結果

Page 57: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(最適レギュレータ)

rotary_crane_lq_final.m

設計例 4 最後に重みを微調整

Page 58: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御(最適レギュレータ)

動画:NXT_crane_lq_final.wmv

設計例 4

Page 59: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

各自で適当に重み

を与えてみよう

Page 60: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

回転型クレーン/倒立振子の制御 回転型クレーンの制御

状態方程式

回転型倒立振子の制御

状態方程式

コントローラ設計

コントローラ設計 (極配置法)

コントローラ設計 (最適レギュレータ)

7.2 節(7.2.1)

Page 61: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

回転型倒立振子の数学モデル:状態方程式

振子

アーム振子を真上で安定化

線形近似 (近似線形化)

不安定

Page 62: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

回転型倒立振子の数学モデル:状態方程式

振子

アーム

非線形補償

Page 63: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

回転型倒立振子の数学モデル:状態方程式

振子

アーム

状態変数

Page 64: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

回転型倒立振子の数学モデル:状態方程式

状態方程式

Page 65: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

回転型クレーン/倒立振子の制御 回転型クレーンの制御

状態方程式

回転型倒立振子の制御

状態方程式

コントローラ設計

コントローラ設計 (極配置法)

コントローラ設計 (最適レギュレータ)

7.4 節(7.4.3)

7.5 節(7.5.3)

Page 66: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

rotary_ip_acker.m

極配置法

最適レギュレータ

rotary_ip_lq.m

の固有値:

Page 67: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御

ビープ音が鳴ったら 10 秒以内に振子を手動で真上に

>> rotary_ip_acker

>> rotary_ip_lq

sfbk_ip.slx

Page 68: 回転型クレーン 倒立振子の制御...動画:NXT_crane_lq3.wmv 設計例3 まずまず の結果 状態フィードバック制御 (最適レギュレータ) rotary_crane_lq_final.m

状態フィードバック制御 (最適レギュレータ)

非線形補償 あり 非線形補償 なし

振動抑制

動画:NXT_ip_lq1.wmv 動画:NXT_ip_lq2.wmv