情報処理学会 インタラクション 2022
IPSJ Interaction 2022

1D192022/2/21

インタラクティブな解軌道観察の可能な教育用慣性ロータ型倒立振子実験教材
古川 誉大1山本 欧1,a)

概要：本稿では，現代制御理論の学習支援を目的とし，状態空間における解軌道を実働状態でグラフィカ
ルかつインタラクティブに観察できる慣性ロータ型倒立振子実験教材の提案と実装について述べる．慣性ロータはロボットや人工衛星等の姿勢制御にも用いられ実用性が高く，その倒立動作も視覚的な面白さを持っているため，現代制御理論を学ぶ教材として優れている．本教材は倒立振子と制御用ボード，および実働状態で制御パラメータ変更や状態空間の解軌道を観察できるホスト PC 側のアプリケーションからなる．本教材により，学習者は振子の実働状態でインタラクティブにパラメータ変更や解軌道の観察が行え，現代制御理論の理解を深めることができる．また小型・安価な部品で構成されているため，多人数の実験授業においても学習者個々人に配備し易い．

1. はじめにして表される対象の振る舞いが状態フィードバック制御において重要な意味を持つ．例えば，状態変数を全て 0 とな倒立振子は古くから現代制御理論の実証のために研究がるよう制御するレギュレータ制御においては，解軌跡は初なされており，現在に至るまで，回転型や車輪型，慣性ロー期値に対応する点から原点に向かう曲線となるが，その曲タ型などの多くの倒立振子が開発されている．同時に初学線はフィードバックゲインの値により様々に変化し，振動者を対象とした教材用倒立振子の研究も数多く行われていが生じる場合は解軌跡は円運動を含む軌跡となる．個々のる [1][2] [3]．

状態変数の変化をリアルタイムに表示する倒立振子教材と慣性ロータ型倒立振子は，モータにより回転する慣性して [4] があるが，状態変数個々の変化を観察できても，状ロータに発生する反トルクを利用してバランスを取る倒立態空間における解軌跡のように対象の挙動を図形的・総括振子である．慣性ロータはロボットや人工衛星等の姿勢制的に把握することは困難である．

御にも用いられ実用性が高い．またその倒立動作の視覚的以上の背景から，本研究では多人数の実験授業においてな面白さは現代制御理論のデモンストレーションとしてもも学習者個々人に配備し易く，解軌跡を状態空間の曲線と優れており，初学者の工学に対する興味を引き出し，学習してリアルタイムに表示可能な小型・安価な慣性ロータ型意欲を向上させる作用が期待できる．

倒立振子実験教材の提案と実装を行った．

実験教材として考えた場合，学習者のグループに 1 台の装置を配備するより個々人に配備した方が，学習者が自身

2. 本教材の概要の裁量で学習を進めることができるため望ましい．しかし，

図 1 に本教材の概略図を示す．倒立振子のボディ角度 θb

従来の慣性ロータ型倒立振子の実験教材は，装置のサイズ・及び慣性ロータの角速度 θ̇b を各種センサにより取得し，制コストの面から多人数の実験授業での個人配備は難しい．

御用ボード（NUCLEO-F446RE）を用いて状態変数及び制また慣性ロータ型倒立振子の安定化制御には，現代制御理御量の算出を行う．また，制御用ボードは USB ケーブルを論による状態フィードバック制御を用いる．状態フィード介して PC と接続されており，シリアル通信にてフィードバック制御では，制御対象の状態を決める変数（状態変数）バックゲインや状態変数のデータの送受信を可能としていにフィードバックをかけることで安定化制御を行う手法でる．PC 側では，Processing で開発されたアプリケーショある．状態変数の作る空間（状態空間）において，制御対ンにより，フィードバックゲインの設定及び倒立動作の開象の状態は 1 つの点として表され，その軌跡（解軌跡）と始命令と各状態変数のグラフ及び解軌跡のリアルタイム表
示を行う．

1a)

東京電機大学
ou@mail.dendai.ac.jp© 2022 Information Processing Society of Japan206

情報処理学会 インタラクション 2022
IPSJ Interaction 2022

図 1

1D19
2022/2/21

システムの概略図

3. 倒立振子の安定化制御
図 2

図 2 に振子の力学モデルを示す．θb は倒立振子のボディ振子の力学モデル

角度，θw は慣性ロータの角度，l は振子回転軸-慣性ロータ回転軸間の長さ，T m は慣性ロータによって発生する反トルクを表す．慣性ロータ型倒立振子は，反トルク T m を利用して倒立動作を行う．力学モデルから得られる運動方程式を一階連立微分方程式に変形することで状態方程式を求めることができる．状態ベクトルは状態変数からなるベクトルであり，本倒立振子では θb ：倒立振子のボディ角度，

θ̇b ：倒立振子のボディ角速度，θ̇w ：慣性ロータの角速度を状態変数として選んだ．

ẋ = Ax + Bu

図 3(1)

装置の外観図切削したものを用いた．これにより，剛性を確保しつつ振子の重量を抑えることができ，かつ製作コストの低減を実x : 状態ベクトル
u : 制御ベクトル現することができた．慣性ロータの円周上には等間隔でね

A : システム行列

じ穴が開けられており，そこに固定するキャップボルトのB : 配分行列個数によって慣性モーメントを調整することができる．

倒立振子の安定化制御には，状態フィードバック制御を4.2 DC モータ用いる．状態フィードバック制御では，状態変数（システDC モータには，安価な小型模型用モータ（F-05-12948-0）

ムの出力）とフィードバックゲインの積の総和から制御量を用いた．減速機などは介さず，出力軸に直接慣性ロータ（システムの入力）を算出する [5] [6]．

を圧入して組み付けている．

状態フィードバック制御系により得られる制御量 u の算

4.3 ポテンショメータと磁気式エンコーダ

出式を (2) 式に示す．

u = k1 θb + k2 θ̇b + k3 θ̇w(2)

u : 制御量kn : 状態フィードバックゲインポテンショメータ（Tocos：TCQ96A02）に対して，制御用ボード上の 12bitADC を用いることで振子ボディの回転角を取得している．また，本装置ではポテンショメータの軸を直接倒立振子の回転軸としており，これにより軸周りの構造の簡素化を図っている．

4. 倒立振子装置の構成
図 3 に装置の外観図を示す．本研究で開発した倒立振子装置は，高さ 51 mm，幅 42 mm，奥行 50 mm となってお磁気式エンコーダ（ams：AS5601）では，慣性ロータの回転角を取得している．I2C 通信を用いて AS5601 から 12bitの角度データを取得し，F446RE 内で微分演算を行い，角速度に変換している．

り，従来の慣性ロータ型倒立振子教材と比べて非常に小型になっている．

4.4 制御回路
本装置の制御回路は，制御用ボードとモータドライバ IC

4.1 慣性ロータ及び振子ボディ
慣性ロータと振子のボディ部はポリカーボネート板より© 2022 Information Processing Society of Japan（サンケン電気：STA6940M）により構成されている．制御用ボード NUCULEO-F446RE は，STM32 マイコンの開発

207

情報処理学会 インタラクション 2022
IPSJ Interaction 2022

図 4

本アプリケーションの表示画面

1D19
2022/2/21

図 5

倒立動作時の解軌跡（k1 = 1.8，k2 = 0.1，k3 = 0.0）

ボードである．ブラウザ上の開発環境を無料で利用することができるため，教育現場に適した開発ボードであるといえる．また，同価格帯の他の開発ボードに比べて高性能であるため，処理能力の制約に悩まされることなく，制御系設計を行うことができる．モータドライバには STA6940Mを用いており，DC モータの定電流制御によって倒立振子のトルク制御を行っている．制御用ボードのタイマー割り込み機能によって 20 ms の制御周期を設けてあり，この周期に則り，DC モータの制御及び PC-マイコン間のシリアル通信を行っている．

5. 解軌跡の可視化アプリケーション

図 6

倒立動作時の解軌跡（k1 = 1.6，k2 = 0.03，k3 = 0.003）

本教材における倒立振子は，3 つの状態変数 θb ，θ̇b ，θ̇wを持つ．したがって状態空間は 3 次元であり，安定化制御の下で解軌跡は平衡点（状態空間上の原点）に収束する．
本アプリケーションは，振子の挙動を 3 次元曲線としてリアルタイムに可視化することで，学習者の状態フィードバック制御に対する直感的・視覚的理解の支援を行う．
本アプリケーションは開発環境として Processing を用いている．図 4 に本アプリケーションの表示画面を示す．
本アプリケーションは，画面左側に状態空間の 3 次元解軌跡，右側には個別の状態変数のグラフを表示する．解軌
跡表示画面にある基準軸の色は右側のグラフと対応しており，赤色の軸は θb ，黄緑色の軸は θ̇b ，青色の軸は θ̇w となっている．なお，各軸は正常な倒立動作時に見やすい軌跡となるよう任意の定数倍にスケーリングしている．シリ
アル通信を用いて制御用ボードと PC 間のデータの送受信

図 7

倒立動作中に外部から衝撃を与えた時の解軌跡（k1 = 2.8，k2 = 0.08，k3 = 0.008）

5.1 解軌跡の表示例を行っており，状態変数のグラフ，解軌跡両方のリアルタ平衡点を（θb ，θ̇b ，θ̇w ）=(0，0，0) とし，状態変数 θb ，イムでの描画を可能としている．描画された解軌跡は，マθ̇b ，θ̇w のフィードバックゲイン k1 ，k2 ，k3 を 3 通りに変化

ウスのドラッグ操作により任意の角度からの観察を可能とさせた場合の解軌跡の表示例をそれぞれ図 5，図 6，図 7

している．また，画面上部には状態フィードバックゲインに示す．

kn を設定する GUI も併せ持つ．

© 2022 Information Processing Society of Japan

図 5 では，フィードバックゲインを k1 = 1.8，k2 = 0.1，208

情報処理学会 インタラクション 2022
IPSJ Interaction 2022

1D19
2022/2/21

k3 = 0.0 としてあり，慣性ロータの角速度 θ̇w にはフィードバックがかかっていない．3 次元軌跡から，θb ，θ̇b の成分は 0 付近で振動しており，θ̇w の成分は平衡点に収束せず微増していることが分かる．この解軌跡から，フィードバックのかかっていない項が時間経過により発散することが図形的に把握できる．
図 6 では，フィードバックゲインを k1 = 1.6，k2 = 0.03，k3 = 0.003 としてある．θ̇b の成分はほぼ収束しているが，θb ，θ̇w の成分は僅かに振動しており，解軌跡は θb θ̇w 平面上に小さい円環を形成している．この場合，システムは発散してはいないが平衡点付近に比較的長い周期の振動が残っていることでこのような解軌跡が描画される．この軌跡からは，制御量が僅かに不足していることがわかる．
図 7 では，フィードバックゲインを k1 = 2.8，k2 = 0.08，k3 = 0.008 とし，倒立状態において指で瞬間的に倒立振子を傾けた時の応答が図 7 に表示されている．この場合，速やかに倒立状態を回復するようなゲイン設定となっている
ため，傾けた瞬間は状態変数が大きく変動するが，解軌跡が螺旋を描きながら原点に向かって収束している．このように，本アプリケーションによって振子の挙動が解軌跡という曲線によって総括的に表されることがわかる．

6. まとめ本研究では，現代制御理論の学習支援を目的とし，状態空間における解軌道を実働状態でインタラクティブに観察できる慣性ロータ型倒立振子実験教材の提案と実装を行った．本教材は従来のものより安価な部品で構成できるため，学習者が多人数いる環境でも個々人に配備し易い．また，学習者は解軌跡の観察から振子の振る舞いを図形的に把握できる．
参考文献
[1]

[2]

[3]

[4]

[5]

[6]

中浦茂樹，三平満司： 学生のやる気を引き出す制御実験
MATLAB と LabVIEW を併用した倒立振子実験，計測と制御， Vol. 46, No. 9, pp. 705–708 (2007).
Gajamohan, M.，Muehlebach, M.，Widmer, T.，RaﬀaelloD Andrea： The Cubli: A reaction wheel based 3D inverted pendulum, IMU, Vol. 2, No. 2 (2013).
長谷川智洋，三谷祐一朗： 慣性ロータを用いた倒立振子実
験教材の開発，沼津工業高等専門学校研究報告，No. 47,pp. 415–420 (2013).
山下友矢，大村基将，鈴木裕貴，紅林秀治： 乗車可能な車輪型倒立振子教材の開発，日本産業技術教育学会誌，Vol. 61,
No. 4, pp. 277–286 (2019).
Gajamohan, M., Merz, M., Thommen, I. and D’Andrea,
R.: The cubli: A cube that can jump up and balance,
2012 IEEE/RSJ International Conference on Intelligent
Robots and Systems, IEEE, pp. 3722–3727 (2012).
川田昌克： LEGO MINDSTORMS と Simulink Support
Package を利用した制御工学教育コンテンツの開発，自動制御連合講演会講演論文集 第 57 回自動制御連合講演会，
自動制御連合講演会，pp. 598–605 (2014).

© 2022 Information Processing Society of Japan209