LEGO Mindstormsを用いたオープンキャンパスプロジェクト2014
LEGO Mindstormsを用いた回転型倒立振子(石塚・篠﨑・山﨑)
目次
はじめに
構造
目的
プログラム概要
ブロック線図
動画
はじめに
このページでは,回転型倒立振子について説明します。
構造
この回転型倒立振子は,LEGO Mindstorms NXT 2.0 を用いて製作しました。
制御アルゴリズムは,MATLAB/Simulinkというソフトウェアで作成し,Run on targetという機能でLEGO Mindstorms 本体に書き込みました。
こうすることで,PCとの接続を解除しても,プログラムを実行することができます。
製作した回転型倒立振子を下図に示します。
アームを駆動するためのモータが1つ,また振子の角度とアームの角度を検出できるようにそれぞれセンサがついてます。
目的
この倒立振子は振子を自分で振り上げ,その後に振子の倒立状態を維持することを目的としています。
プログラム概要
回転型倒立振子は,制御しなければ振子の倒立を維持できない不安定なシステムであるため,制御することによって安定化を行います。アーム駆動用のモータを制御し,モータ軸に取り付けられたアームを水平面で回転させることにより,アーム先端に取り付けられた振子の倒立を維持します。振子の倒立を維持するために,状態フィードバック制御を行い安定化制御を実現しています。フィードバックしている状態としては,センサが振子とアームにそれぞれついているため,そこから振子の角度,アームの角度情報を取得し,またそれぞれ得た角度情報から角速度をコンピュータで算出して4つの状態を取得しています。コントローラの設計としては最適レギュレータ法によって設計を行っています。
そして,振子の振り上げ制御については,振子の角速度に比例したものを制御入力として電圧でモータに与えています。最初は振り上げ制御を行い,振子の振り上げが進み振子の角度が倒立維持可能な領域に入ったときに,倒立制御に切り替えます。
ブロック線図
プログラム全体図(MATLAB/Simulink)
(上図クリックで拡大)
(上図クリックで拡大)
(上図クリックで拡大)
動画
実際の回転型倒立振子の動作を示します
デモンストレーション動画A(WMV)を再生する。