12.3 台車型自立ロボットの立位安定化
Code 1p118の自由運動では,振り子はぶらんぶらんとスイングするのみであった.
ここでは,制御力f(t)をうまく調整して,振り子を倒立状態に保つ方法を紹介する.
一般に,何らかの測定値に応じて制御力を調整することをフィードバック制御という.
以下がその一例である.
12.3.1 P制御
振り子が立位を保つには,倒れそうになったときに,立位に復元すればよい.その ために,倒れ角θに比例した力f(t)で台車を押してやる.
f(t) =Kθ (12.7)
この制御方式を,比例制御(proportional control)と呼び,略してP制御という.比 例定数Kを比例ゲインという.
実習12.2 Code 1の5行目の力を「ft = 20*x(3);」に書きかえ,12行目の初期 値を「x0 = [0; -3; 0.5; 1.2];」に書きかえて実行せよ.比例ゲインK= 20の P制御の結果が観察できる.
12.3.2 PD制御
このように,P制御だけでは振動が起きて,立位に安定しない.そこで,角速度θ˙ に比例した力でも押してやる.
f(t) =Kθ+Lθ˙ (12.8)
Lθ˙の部分を微分制御(derivative control)と呼び,略してD制御という.比例定数 Lを微分ゲインという.P制御とD制御を合せた(12.8)の制御方式を,PD制御 (proportional-derivative control)という.
実習12.3 Code 1の5行目の力を「ft = 20*x(3)+2*x(4);」に書きかえ,12行 目の初期値を「x0 = [0; -3; 0.3; 1.2];」に書きかえて実行せよ.K= 20,L= 2のPD制御の結果が観察できる.
このように,D制御は振動を抑制する効果を持つ.以上,図11.2p112の倒立振り 子は,(12.8)のPD制御により自立状態に安定化できる.
12.3.3 自立ロボットのダイナミクス
実習12.4 Code 1の5行目「ft = 20*x(3)+2*x(4);」のK= 20, L= 2の値 を試行錯誤的に調整して,次の2種類の運動を実現せよ.
(1)振動しながら立位に向う運動.
(2)振動しないで立位に向う運動.
ここで見付けたK, Lの値は,実習13.2p128で再利用するので,メモしておくこと.
ちなみに,K, Lの値が悪いと,倒立を保てなくなる.
▶▶(等速直線運動) ロボットが倒立安定化した後(x(3),x(4)≈0),制御力はほとんど
0になる.このロボット・シミュレータには摩擦が無いので,このときロボットは自由運 動に近い状態となる.したがって,倒立安定化が完了した時点でロボットが速度を持って いれば,その速度は保たれる.
▶▶(初期値の調整) 上述の等速直線運動により,振子が画面から出て見えなくなる場合
は,12行目の初期値「x0 = [0; -3; 0.3; 1.2];」を調整せよ.初期値の各成分は,
x0 = [台車変位;台車速度;角度;角速度];
であった.これらの物理的な効果を考えて見当をつけよ.
12.3. 台車型自立ロボットの立位安定化 121
♣ 12 章の補足
● 例題12.1p116の解答例
新しい変数と,その微分x˙1= ˙x, x˙2= ¨x, x˙3= ˙θ, x˙4= ¨θを使うと,
˙
x1=x2 ∵x˙1= ˙x=x2
˙
x2=F(x1, x2, x3, x4)
˙
x3=x4 ∵x˙3= ˙θ=x4
˙
x4=G(x1, x2, x3, x4)
(12.9)
という1階化が得られる.
A12
使用した主要な関数●関数一覧
関数名 機能
// コメントアウト
= 代入
function 関数の定義
function y =関数名(引数) 内容;
y =返り値;
endfunction
dx(1),dx(2) ベクトルdxの第1,第2要素 x(1), x(2) ベクトルxの第1,第2要素
xx(i, :) 行列xxのi番目の行ベクトル
[a;b] 縦ベクトル
a b
tt=linspace(a,b,n) 等差数列tt=[t1, ... ,tn]の作成.a…始値, b…終値,n…等分数 xx=ode(x0,0,t,func) 連立1階常微分方程式を解く.※原理は12.1.2節を参照
xx…数値解,func…方程式,x0…初期値,0…初期時刻,t…解を求める時 刻列;
xx =
x(t1) x(t2) · · ·
˙
x(t1) x(t˙ 2) · · ·
plot(a,b) 2次元プロット.a…x軸の座標データ,b…y軸の座標データ
xgrid() グリッド(座標の格子)を表示する.
xtitle(”タイトル”) グラフに”タイトル”を付ける.
13
振動と固有値
物体の様々な運動形態のなかで,ロボットなどの自律的な機械装置の制御方法に深 く関わるのが,振動(vibration)という運動である.その基本となるのが,外から余 計な力がかからない場合の振動で,これを自由振動(free vibration)という.
13.1 振動とダイナミクス
13.1.1 振動
振動とは,同じ場所を行ったり来たりする形態の運動である.そのような運動が実 現するには,何が必要だろうか?—復元力(restoring force)である.復元力を持つ 物体を引っぱると,元の位置に戻ろうとする.戻りすぎて元の位置を行き過ぎること を,オーバーシュート(overshoot)という.オーバーシュートしてしまった物体は,
もう一度元に戻ろうとする.それがまたオーバーシュートして,元に戻ろうとし・・・と いう現象が繰り返される.これが振動のカラクリである.
13.1.2 ダイナミクス
振動を引き起す系は,条件を変えると表13.1p123のような6種類の動き方に変化 する可能性がある.このような事物を動き方を,ダイナミクス(dynamics)と総称す る.振動はその一形態である.また,個数を表す数に0を含めるのと似た発想で,一
定値の(動かない)動き方も表に含めた.(表中の「固有値」については後述する)
ちなみに,表13.1のようなダイナミクス(動き方)を示す事物は,物体の運動だけ ではない.それ以外にも,
• 電気回路 ※x(t)は電流,電圧など
• 化学反応 ※x(t)は物質の濃度など
• 経済現象 ※x(t)は株価,為替レート,GDPなど
• その他,時間変動する事物
など枚挙にいとまがない.恐らくは,森羅万象の全てについて,ダイナミクスを議論す ることができる.