LoginSignup
28
31

『LEGO 部品と Arduino を利用した「倒立振子」の開発レシピ ― やっぱりモノを動かしてみたいでしょ!』のサポートページ

Last updated at Posted at 2024-01-30

title2.jpg

(とりあえず,暫定的に完成 …)

1. はじめに

 ここは,システム制御情報学会の学会誌「システム/制御/情報」における解説記事

川田昌克:LEGO 部品と Arduino を利用した「倒立振子」の開発レシピ ― やっぱりモノを動かしてみたいでしょ!,システム/制御/情報,Vol.68, No.3, pp.84-89 (2024)

のサポートページです.

 学会員以外の方は,無料のアーカイブを刊行から半年後(2024 年 3 月に刊行なので,おそらく 2024 年の 9 月頃)に閲覧することができます.3 月に読みたい方は,会員になってください!(大学だと,図書館で購入しているかもしれませんよ.)

 本記事の執筆のきっかけは,2022 年 5 月に開催された SCI'22(第 66 回システム制御情報学会研究発表講演会)での発表です.そのときのプレゼンについては,以下に公開していますので,興味があればご覧ください.

 なお,工作などの一連の作業はすべて自己責任でお願いします!

2. 実験動画

 まずは,実験動画をみてみましょう!

3. 使用した部品

 ここでは,実験装置の製作に使用した部品について説明します.

3.1 LEGO 部品

image.png

3.2 マイコンとモータ,センサ

3.2.1 MinSegShield M2V5 を使用する場合の部品

 円安で随分とお高くなりましたが,お財布に余裕がある場合は,こちらが楽です.解説記事では,こちらの構成を利用しています.

image.png

3.2.2 MinSegShield M2V5 を使用しない場合の部品

 お財布が厳しい場合は,こちらをお勧めします.純正の Arduino Mega を購入しても,合計 1 万 2 千円程度でマイコン部を構成することができます.

image.png

3.3 その他の部品

4. 組み立て

4.1 LEGO 部品を使って組み立てよう!

image.png

4.2 少しだけ電子工作しよう!

4.2.1 共通事項

4.2.2 MinSegShield M2V5 を使用する場合の電子工作

4.2.3 MinSegShield M2V5 を使用しない場合の電子工作

5. 配布する MATLAB/Simulink ファイル

5.1 RASPLib + Simulink Support Package 用

 MinSegShield M2V5 を使用する場合(3.2.1, 4.2.2),MinSegShield M2V5 を使用しない場合(3.2.2, 4.2.3 (b))のいずれであっても,

を併用して Simulink モデルを実装することができます.

5.2 Simulink Support Package 用

 MinSegShield M2V5 を使用しない場合(3.2.2, 4.2.3 (c)),

のみで Simulink モデルを実装することができます.

6. MATLAB/Simulink ファイルの実行例

 ソフトウェア環境については,付録を参照してください.

 Simulink モデルを実行する前に,以下の事項を確認してください.

確認事項

  • AC アダプタを Arduino Mega に接続してください.
  • MinSegShield M2V5 を使用する場合は,スイッチを以下のように設定してください.
    • Driver Enable:ON 側
    • Driver Voltage:BATT 側
    • Battery Switch:ON/OFF のいずれでも可(乾電池を使用しないこと)

6.1 動作確認

6.1.1 アーム用エンコーダの動作確認

6.1.2 振子用エンコーダの動作確認

6.1.3 モータの動作確認

6.2 回転型倒立振子の数理モデル

6.3 アーム駆動系のパラメータ同定

6.4 振子系のパラメータ同定

6.5 レギュレータ制御

6.5.1 クレーンの振れ止め制御

 この内容は本解説記事には未掲載です.

block_crane.gif

6.5.2 倒立振子の安定化制御

block_ip.gif

6.6 倒立振子の目標値追従制御

block_ip_servo.gif

6.7 外乱補償

 ここでは,岡島らにより提案されているモデル誤差抑制補償器 (MEC: Model Error Compensator) により外乱補償を行います.MEC に関する詳細は,たとえば,

を参照してください.また,MEC と外乱オブザーバの関係については

で議論されています.

6.7.1 外乱補償されたレギュレータ制御

 この内容は本解説記事には未掲載です.

block_ip_mec.gif

6.7.2 外乱補償された目標値追従制御

block_ip_servo_mec.gif

6.8 倒立振子の振り上げ安定化制御

7. おわりに

 本記事では,LEGO / Arduino / Simulink を利用して倒立振子を開発しました.なお,以下の方々が本実験装置のレプリカを製作されています.皆さんも是非,チャレンジしてみてください!

  • 山口大学

  • 熊本大学

  • 大阪大学

付録 ソフトウェア環境

A.1 インストール

 本解説記事では,Windows11 でバージョン R2023a の

  • MATLAB
  • Simulink
  • Control System Toolbox

に加えて,Arduino 用の無償の Simulink パッケージ(ライブラリ)

  • Simulink Support Package for Arduino Hardware
  • Rensselaer Arduino Support Package Library (RASPLib)

を使用して,制御系解析/設計および実機実験を行いました.Simulink Support Package や RASPLib のインストール方法については,

を参照してください.

A.2 Simulink Support Package for Arduino Hardware の使い方

28
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
31