最適サーボによる回転型倒立振子の制御
2011SE202 布目幸大
指導教員：大石泰章
表 1 物理パラメータ

はじめに

1

回転型倒立振子は，アームを回転させることにより，そa

モータやアームのの先端部に取り付けられた振子を倒立させるという実験装

asgnb
L1[m]
m2 [kg]l2[m]J2[kg · m2 ]c2 [kg · m2 /s]
g[m/s2 ]特性などにより置である．本研究では文献 [1] を参考に，コントローラを設計して，実機実験を行う．
具体的には，振子をおおよそ倒立角度に保持した状態から実験を開始し，アームをタイミング良く水平に移動させることにより，倒立を維持する．制御系には最適サーボシステムを用いて，アームを任意の目標角度に収束させる．モデル化や設計を経て得られた制御器は，Matlab/simulink を用いてシミュレーションを行うとともに，LEGO Mindstorms NXT で作成した実験機を用いて，実機実験しそれらを比較する．

決まる定数
アームの軸から

1.18 × 101
1.12 × 101
2.43 × 100
7.00 × 10−2先端までの長さ振子の質量振子の軸から4.40 × 10−3
8.00 × 10−2

重心までの長さ
振子の重心まわりの7.05 × 10−6

慣性モーメント
振子の粘性摩擦係数
重力加速度1.69 × 10−5
9.81 × 100

回転型倒立振子の数学モデルは以下の通りである:

2

制御対象とモデリング

2.1

物理パラメータと数学モデル

θ̈1 (t) = −aθ̇1 (t) − asgn sgnθ̇1 (t) + bv(t),(1)m2 L1 l2 cos θ2 (t) · θ̈1 (t) + J¯2 θ̈2 (t)= J¯2 θ̇1 (t)2 sin θ2 (t) cos θ2 (t)+m2 gl2 sin θ2 (t)−c2 θ̇2 (t)(2)2.2 線形化と状態空間表現

図 1 に回転型倒立振子の概略図を示す．

制御設計を行う前に，非線形項を含む (1), (2) の数学モ
デルを線形化し，状態空間表現を構築する．

(1) 式には動摩擦からなる非線形項が含まれているので，au(t) = v(t) − sgn
b sgnθ̇1 (t) という入力変換を行う．
また，(2) 式はアームが基準姿勢 θ1 = 0，振子が倒立姿
勢 θ2 = 0 近傍で振舞うとして，cos θ2 (t) ∼sin θ2 (t) ∼= 1,= θ2 (t)，2∼θ̇1 (t) sin θ2 (t) cos θ2 (t) = θ̇1 (t)2 θ2 (t) ∼=0のように近似し，線形化する．

図 1 回転型倒立振子の概略図

以上により，次の式が得られる:θ̈1 (t) = −aθ̇1 (t) + bu(t),m2 L1 l2 θ̈1 (t) + J¯2 θ̈2 (t) = m2 gl2 θ2 (t) − c2 θ̇2 (t).

ただし，観測量はアーム角度 θ1 (t)[deg] と，振子角度θ2 (t)[deg]，制御量はアーム角度 θ1 (t)[deg]，操作量は入力 v(t)[%] である．ここで v(t)[%] はモータの入力電圧のデューティ比である．また，θ2 (t) = 0 が倒立姿勢を意味

これを書き換えると，次の状態空間表現を得る:{ẋ(t) = Ax(t) + Bu(t),θ1 (t) = Cx(t).

する．
本研究で実験機として扱う回転型倒立振子にはアーム角度，振子角度を検出するために各関節にロータリエンコー
ダが組み込まれている．また，アーム基部にはバックラッ
シュが小さく，高い減速比が得られるモータが搭載されている．
また，モデリングに用いる物理パラメータを表 1 に示す．ただし a，asgn ，b，J2 [kg · m ]，c2 [kg · m /s] の値は，22それぞれ実測データに基づいて最小二乗法を使って求めたものである．求めた値は，物理法則から算出した値と比較したり，Matlab/Simulink でシミュレーションを行ったりして妥当性を確認した．

(3)
(4)

ただし，

0
0A = 00
C = [1(5)
0 01 0
B=0 ,0m2 gl2m 2 L 1 l2 bm2 L1 l2 ac2− J¯2− J¯2J¯2J¯2[]T0 0 0] ，x(t) = θ1 (t) θ2 (t) θ̇1 (t) θ̇2 (t)00010−a3制御設計

3.1

積分型コントローラの導出

本研究の制御には最適サーボを用いる．重み行列の数値を選ぶことで各要求を満たすことができ，目標値への追従性も期待できるからである．

(3), (4) 式に基づいて，拡大偏差システムを以下のように定める:
ẋe (t) = Ae xe (t) + Be u(t).
(6)
ただし，

[xe = θ1 (t)]T∫t
θ2 (t) θ̇1 (t) θ̇2 (t) 0 (θ1ref − θ1 )dt

00100[]  00010 A 0
0−a00 Ae == 0
,−C 0m2 gl2m 2 L 1 l2 ac2
 0− J¯2 0 J¯2J¯2−10000[]TT1 l2 b0
Be = [B 0] = 0 0 0 − m2 LJ¯2

図 2 アーム角度 θ1 (t) の変化であり，目標値は θ1ref = +30[deg] と定める．
最適レギュレータ理論に基づき，制御量を目標値に追従させる制御器を，評価関数を最小化することによって設計する [2]．すなわち，制御入力 u(t) は，∫ ∞u(t) = Kx(t) + G(θ1ref − θ1 (t))dt(7)0とし，∫ ∞J=2(xe (t)T Qxe (t) + r · u(t) )dt

図 3 振子角度 θ2 (t) の変化(8)0を最小化するようなゲイン K と G を定める．ただし，Q，r は重み行列であり，
Q = diag [10 500 0.001 0.0011] ，r = 10と定めた．

3.2

シミュレーション・実機実験の結果

導 出 し た 積 分 型 コ ン ト ロ ー ラ を 用 い て ，Mat図 4 入力 u(t) の変化

lab/simulink 上でシミュレーションを行った．また，実機実験を行った．シミュレーション上での初期値は，

x(0) = [0[deg]

20[deg]0[deg/s]0[deg/s]]T4

おわりにとし，実機実験においてもおおよそ同じ値に設定した．ま

本研究では，最適サーボを用いてアーム角度を目標の位た，実機実験においては，およそ 14[s] を過ぎたあたりで置に収束させながら，振子を倒立させる制御を行った．今振子をつつき，外乱を加えた．シミュレーションと実機実回の実機実験の結果から，途中加えられた外乱にも対応

験の比較は以下の図の通りである．

しながら，各角度を目標値に収束させる優れた結果を得る

図 2 では，シミュレーションではアーム角度 θ1 がゆることができた．しかし，実機実験では振子をおおよそ倒立

やかに収束するのに対し，実機実験では小刻みに振動しな角度に保持した状態から開始しなくてはならなかった．約

がら目標値 +30[deg] の周辺の値に落ち着いている．また， 25[deg] 以上振子を傾けた状態から実験を開始した場合，
図 3 においてシミュレーションでは振子角度 θ2 がすみや うまく倒立しなかった．今後の課題は，振り上げ運動を組かに収束し，実機実験においても 0[deg] を中心として小み込んだ振子の倒立制御を実現することである．

さく振動するようになることが確認できる．図 4 では，シ

参考文献

ミュレーション上で必要とする入力は約 93[%] が最大であり，過剰な電圧を要さないことが分かった．実機実験では実験開始直後に約 77[%] の入力を必要としているが，その後は外乱を加えられても −100[%] < u(t) < +100[%] の範囲内になっている．これらのシミュレーションと実機実験の間には差があるが，制御対象の線形モデル化が不十分であるか，摩擦の影響が原因であると考えられる．

[1] 川田昌克：『MATLAB/Simulink と実機で学ぶ制御工学 ―PID 制御から現代制御まで―』. TechShare，東京，2013[2] 川 田 昌 克：『MATLAB/Simulink に よ る 現 代 制 御 入門』．森北出版，2011．