arduino によるball & beam実験装置

4
հɿಛ ڭޚҭͷΊͷ ࡐڭཧɾݧ໘ΒͷఏҊ Arduino ʹΑΔ Ball & Beam ݧ ˎ ˎӉٶڀݚՊ ݝӉࢢٶཅ౦ 7–1–2 ˎGraduate School of Engineering, Utsunomiya University, 7–1–2 Yoto, Ut- sunomiya, Tochigi, Japan ˎE-mail: [email protected] Ωʔϫʔυɿ ڭҭ ࡐڭ(educational materials)ɼΞʔϧσΟʔϊ (Arduino)ɼ ϥϐουϓϩτλΠϐϯά (rapid prototyping)ɽ JL 0003/15/5403–0188 C 2015 SICE 1 . Ίʹ ͷΛಈΊͷͰΔޚΛײΛ ཧղΔʹɼͰγεςϜΛޚΈΔͷҰ൪ ͰΔɽͷΊɼେͰɼҎલΒϞʔλޚͱݧஔΛɼޚͷश ݧΛߦ 1) ɽɼΕΒͷݧஔɼେڭһ ΛͷߴՁͳݧஔΛࡐڭϝʔ ΧΒߪೖͷଟɼੜΓɼඅ ͰߪೖΔͱɽ ɼΦʔϓϯιʔεϋʔυΤΞͰΒΕΔϚΠίϯ Ϙʔυͷ Arduino ϗϏʔ༻ͱٴਐΜͰΔ 2) ɽ ɼͷ Arduino MATLAB/Simulink R2012a Β αϙʔτΕ 3) ɼՃͷπʔϧϘοΫεͳͲΛߪೖΔ ͱͳɼϥϐουϓϩτλΠϐϯά༰қʹΔΑʹ ͳɽ ͰɼຊհͰɼචΒ։ Arduino Λ ՁͳࡐڭޚΛհΔ 4), 5) ɽΕΒͷࡐڭɼ ੜΒߪΔΑɼ௨ͷܕళͳͲͰ༰қʹ खͰɼɼՁͳ෦ͷΈΛߏஙಛ ͰΔɽ 2 . ثޚͱͷ Arduino 2.1 Arduino ʹ Arduino ΦʔϓϯιʔεϋʔυΤΞͰΓɼઃܭϑΝʔϜΤΞ։ΕΔɽ·ɼՁઍ ԁఔͰՁͰΓɼ Ͱೖख༰қͰΔɽ Arduino ͷΊͷιϑτΤΞʹɼ։ڥͰΔ Arduion IDE ϑϦʔͰ։ΕΔɽϚΠίϯͷॳظઃఆͱ ΘΒΘखଓͳʹɼඞཁݶͷϓϩάϥϜ ͰಈΔΑʹઃܭΕΔɽͳɼ Arduino Ͱϓ ϩάϥϜͷͱΛεέονͱݺͿɽ Arduino ʹ·· ͳόʔδϣϯଘΔɼຊߘͰ MATLAB/Simulink Βར༻ͰΔ Arduino UNO R3ʢҎԼɼ UNOʣͱ Ar- duino MEGA 2560 R3ʢҎԼɼ MEGAʣΛऔΓΔ ͱʹΔʢ1ʣɽ UNO Ͱ 10bit ͷΞφϩάೖΛ 6 νϟϯωϧɼσΟ δλϧೖग़Λ 14 νϟϯωϧɼσΟδλϧೖग़ϙʔ τͷΛ 8bit ͷ PWM ग़ͱ༻ͰΔɽ 1 Arduino MEGAʢʣͱ UNOʢӈʣ ͷ΄ʹɼγϦΞϧϙʔτΛɽ MEGA ೖग़ϙʔ τʹ UNO ͷҐίϯύνϒϧͱͳΓɼଟ ͷೖग़ϙʔτΛɽ 2.2 Arduino ͱ MATLAB/Simulink MATLAB/Simulink Β Arduino Λ༻Δ๏ೋ௨ ΓΔɽҰɼ ArduinoIO ͱݺΕΔαϙʔτύοέʔ δΛΠϯετʔϧར༻Δ๏ 6) ɼҰɼ MAT- LAB/Simulink R2012a ҎͰαϙʔτΕɼ Simulink ϞσϧΛίϯύΠϧ Arduino μϯϩʔυɼλʔ ήοτϋʔυΤΞͰߦΔ๏ʢRoTH: Run on Target Hardware ͱݺΕΔɼҎԼͰɼλʔήο τϞʔυɼͱݴʣͰΔɽ ArduinoIO ArduinoIO Ͱ Arduino Λ୯ͳΔೖग़σόΠεͱ ༻Δɽ MATLAB/Simulink Β Arduino ͷೖग़ ϙʔτγϦΞϧ௨৴ΛΞΫηεΔΈͱͳ ΔɽͷΊʹɼ Arduino ArduinoIO ͰఏڙΕ ΔεέονΛΒΊμϯϩʔυඞཁΔɽ ArduinoIO MATLAB/Simulink R2010a ͰςετΕ Γɼ R2010a ҎͷόʔδϣϯͰ༻ͰΔɽ ArduinoIO MATLAB ͷίϚϯυϥΠϯ m-file Β༻Δ๏ͱɼ Simulink ϞσϧΒ༻Δ๏ Δɽ ޙͰʮReal-Time PacerʯϒϩοΫΛ Simulink Ϟ σϧʹஔͱͰɼ Simulink ͷϊʔϚϧϞʔυʢ௨ৗͷγ ϛϡϨʔγϣϯΛߦϞʔυʣͰϦΞϧλΠϜޚ ߦΔɽɼ PC ͱ Arduino ͱͷΓͱΓʹγϦΞϧ ௨৴ΛΔΊɼ·ΓαϯϓϦϯάपظ ݱͰͳɽ·ɼ Windows ͳͲͷϚϧνλεΫ OS Ͱ 188 ܭଌͱ ޚ54 ר3 ߸ 2015 3 ߸

Upload: others

Post on 06-Apr-2022

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arduino によるBall & Beam実験装置

事例紹介:特集制御教育のための教材 –理論・実験両面からの提案

ArduinoによるBall & Beam実験装置

平 田 光 男**宇都宮大学 工学研究科 栃木県宇都宮市陽東 7–1–2*Graduate School of Engineering, Utsunomiya University, 7–1–2 Yoto, Ut-

sunomiya, Tochigi, Japan*E-mail: [email protected]

キーワード:教育教材 (educational materials),アールディーノ (Arduino),ラピッドプロトタイピング (rapid prototyping).JL 0003/15/5403–0188 C©2015 SICE

1. はじめにものを動かすための学問である制御工学を実感をもって

理解するには,自分で実システムを制御してみるのが一番である.そのため,大学等では,以前からモータ制御装置や倒立振子といった実験装置を使って,制御の実習や実験を行ってきた1).しかし,これらの実験装置は,大学教員が時間をかけて製作したものや高価な実験装置を教材メーカから購入したものが多く,学生自身が製作したり,自費で購入することは難しい.最近,オープンソースハードウエアで知られるマイコン

ボードの Arduinoがホビー用途として普及が進んでいる2).そして,この ArduinoがMATLAB/Simulink R2012aからサポートされ3),追加のツールボックスなどを購入することなく,ラピッドプロトタイピングが容易に試せるようになった.そこで,本事例紹介では,筆者らが開発した Arduinoを

使った安価な制御教材を紹介する4), 5).これらの教材は,学生自らが購入して試せるよう,普通の模型店などで容易に入手でき,かつ,安価な部品のみを使って構築した点が特徴である.

2. 制御器としてのArduino

2.1 ArduinoについてArduinoはオープンソースハードウエアであり,設計図や

ファームウエアがすべて公開されている.また,価格も数千円程度で安価であり,国内でも入手が容易である.Arduinoのためのソフトウエアについても,開発環境であるArduion

IDEがフリーで公開されている.マイコンの初期設定といったわずらわしい手続きなしに,必要最小限のプログラムだけで動作するように設計されている.なお,Arduinoではプログラムのことをスケッチと呼ぶ.Arduinoにはさまざまなバージョンが存在するが,本稿ではMATLAB/Simulink

から利用できる Arduino UNO R3(以下,UNO)と Ar-

duino MEGA 2560 R3(以下,MEGA)を取り上げることにする(図 1).UNO では 10bitのアナログ入力を 6チャンネル,ディ

ジタル入出力を 14チャンネルもち,ディジタル入出力ポートのいくつかを 8bitの PWM出力として使用できる.そ

図 1 Arduino MEGA(左)とUNO(右)

のほかに,シリアルポートをもつ.MEGAは入出力ポートに関して UNOの上位コンパチブルとなっており,多数の入出力ポートをもつ.2.2 Arduinoと MATLAB/SimulinkMATLAB/Simulinkから Arduinoを使用する方法は二通

りある.一つは,ArduinoIO と呼ばれるサポートパッケージをインストールして利用する方法6),もう一つは,MAT-

LAB/Simulink R2012a 以降でサポートされた,Simulink

モデルをコンパイルして Arduinoへダウンロードし,ターゲットハードウエア上で直接実行する方法(RoTH: Run

on Target Hardware と呼ばれるが,以下では,ターゲットモード,と言う)である.• ArduinoIO

ArduinoIO では Arduino を単なる入出力デバイスとして使用する.MATLAB/Simulinkから Arduino上の入出力ポートへはシリアル通信を使ってアクセスする仕組みとなっている.そのために,ArduinoへはArduinoIOで提供されるスケッチをあらかじめダウンロードしておく必要がある.ArduinoIO は MATLAB/Simulink R2010a でテストされており,R2010a以降のバージョンで使用できる.ArduinoIO は MATLABのコマンドラインや m-file か

ら使用する方法と,Simulinkモデルから使用する方法がある.後者では「Real-Time Pacer」ブロックを Simulinkモデルに置くことで,Simulinkのノーマルモード(通常のシミュレーションを行うモード)で疑似リアルタイム制御が行える.ただし,PCと Arduinoとのやりとりにシリアル通信を使っているため,あまり短いサンプリング周期は実現できない.また,Windows などのマルチタスク OSで

188 計測と制御 第 54巻 第 3号 2015 年 3月号

Page 2: Arduino によるBall & Beam実験装置

は,正確なサンプリング周期が保証されない.しかし,コンパイルと Arduinoへのダウンロードが不要なので,使いやすい.• ターゲットモードターゲットモードは,Simulinkモデルで作成した制御ア

ルゴリズムをコンパイルして Arduino にダウンロードし,Arduino上で実行するモードである.ArduinoIO と異なり,正確なサンプリング周期で動作し,ArduinoIO よりも短いサンプリング周期が実現できる.また,Arduino単体で動作するので,ホスト PCが不要となる.ただし,下記の制約がある.1. Arduino上で Simulinkモデルを実行しながら,PC上でパラメータの変更や信号のグラフ表示を行うにはSimulink を External mode にする必要がある.ただし,UNOは External modeが使えず,MEGAが必要になる.

2. RCサーボとシリアル通信は排他使用となる.Externalmode はシリアル通信を使用するため,RCサーボを使う場合は External modeが使用できない.

3. 製作した制御教材3.1 概要本稿では,Arduinoを使った制御教材として1. 角度制御実験装置2. Ball and beam 実験装置を紹介する.角度制御実験装置は,DCモータで駆動されるギアボックスの出力軸角度を目標値へ追従させるものであり,制御の基本である位置サーボが学べる.しかし,単に角度を制御するだけでは,面白みに欠ける.そこで,角度制御実験装置を使った応用例として,Ball and beam実験装置を製作した.Ball and beam実験装置は,レール上を動くボールの位置を,レールの傾きを変化させることで位置決めする装置である4), 5), 7).この装置は,後述するように,原点極をもつシステムになることから,制御教材としてよく知られる倒立振子に比べて安定化が容易である.以下では,各実験装置の詳細について述べる.3.2 角度制御実験装置角度制御実験装置は図 2に示すように,模型メーカであ

るタミヤ製のハイパワーギアボックス HE8) を使うこととした.出力軸角度の検出については,秋月電子通商の「サーボモータ学習キット」9) で製品化されているものと同様に,専用プレートを使ってポテンショメータを取り付ける方法を採用した.専用プレートおよび取り付けのようすを図 3

に示す.なお,「サーボモータ学習キット」ではマイコンにPICを使用しており,MATLAB/Simulinkとの連携ができないため,ポテンショメータの取り付け方法だけを流用することとした.なお,ハイパワーギアボックス HE は,2

種類のギヤ比(41.7:1と 64.8:1)が選択できるが,出力ト

図 2 角度制御実験装置

図 3 ポテンショメータを取り付けるための専用プレートと取り付けのようす

図 4 角度制御実験装置の構成

ルクを優先して,64.8:1を採用した.アンプ部については,角度制御の場合,モータの正転だ

けでなく逆転も必要となるため,Hブリッジにする必要がある.ここでは,性能よりも価格を優先し,ホビー用途で普及している東芝製の TA7291P10) をドライバ ICに採用することにした.製作した実験装置の全体構成を図 4に示す.本制御装置

において,モータのインダクタンスは十分小さいとして無視すると,入力電圧 u = va から出力角度 y = θ までの伝達関数は次式となる4).

y =K

s(Ts+ 1)u ( 1 )

計測と制御 第 54巻 第 3号 2015 年 3月号 189

Page 3: Arduino によるBall & Beam実験装置

本実験装置ではつぎのような課題が想定できる.(1) 本システムはゲインフィードバック Kp により安定化すると 2次遅れシステムとなる.その上で,ステップ応答試験を行い,固有角周波数 ωn と減衰比 ζ を同定する.そして,Kp,ωn,ζ から,(1) 式の T と K を求める.

(2) 角度制御系はPD制御で安定化できることを学ぶ.PDゲインについては,ハンドチューニングだけでなく,同定したモデルを使用し,極指定法等により求める.そして,実験を行い,実機とシミュレーションの応答を比較して考察を加える.

(3) 定常外乱がある場合,PD制御では不十分であり,積分器を追加した PID制御が必要になることを学ぶ.そして,上記と同様に実験を行い,実機とシミュレーションの応答を比較して考察を加える.

(4) 制御性能を向上させようとして,PDゲインや PIDゲインを大きくしてゆくと,実験結果とシミュレーション結果の間に乖離が見られるようになる.この現象を通じて,モデル化誤差とロバスト性について学ぶ.

(5) 発展課題として,I-PD制御や,モデルマッチング 2自由度制御,現代制御に挑戦する.なお,本実験装置は,ArduinoIO およびターゲットモー

ドのどちらでも動作させることができる.3.3 Ball and beam実験装置角度制御実験装置を使った応用例として Ball and beam

実験装置を製作した.実験装置の外観を図 5に,装置全体の構成を図 6に示す.実験装置の土台やアームなどの構造体は,入手が容易で

安価,かつ加工も容易なものとして,タミヤの構造材シリーズを使った11).使用した主なパーツはつぎのとおりである.

•ロングユニバーサルアームセット•ユニバーサルアームセット•ユニバーサル金具 4本セット•ユニバーサルプレート (2枚セット)

ボール位置の計測は PSD(Position Sensitive Detec-

tor)を使った光学距離計として知られるシャープ製のGP2Y0A2112)を使用することにした(図7).このセンサーは,E [V]を出力電圧,X [cm]を距離としたとき,両者は反比例の関係をもち,

X =a

E + b+ c ( 2 )

と近似できる 4).ここで,a,b,c は定数である.制御対象の伝達関数を導出するために,図 8に示すよう

に傾き θ [rad]の斜面を転がるボールの運動を考える.なお,運動方程式の導出が簡単になるよう,以下を仮定する.1. θ を制御入力と見なす.2. θ の変化によってボールに生じる上下方向の加速度は重力加速度に比べて十分小さいものとする.

図 5 Ball and beam実験装置

図 6 Ball and beam実験装置の構成

図 7 光学距離計GP2Y0A21

3. ボールの質量は十分小さく無視できるものとする.このとき,図 8からつぎの運動方程式が得られる.

Fx + Fφ = mg sin θ ( 3 )

ただし

Fx = mx, Fφ = Jφ/r ( 4 )

ここで,m [kg] はボールの質量,r [m] はボールの半径,J [kg m2]はボールの慣性モーメント,x [m]はボールの変位,φ [rad]はボールの回転角度,g [m/s2]は重力加速度を

190 計測と制御 第 54巻 第 3号 2015 年 3月号

Page 4: Arduino によるBall & Beam実験装置

図 8 Ball and beam実験装置のモデル化

表す.(4) 式を (3) 式に代入し,x と φ の間に成り立つ関係式 rφ = x を使うと次式を得る.

(mr2 + J)x = mgr2 sin θ ( 5 )

ここで,θ � 0 を仮定して線形近似し,ラプラス変換を行うと θ から x までの伝達関数 P は次式のように二重積分系となる.

P =Kb

s2, Kb =

g

1 + Jmr2

( 6 )

なお,ボールとしてピンポン球の様に中空で殻の厚さが無視できる球殻を仮定すると,その慣性モーメントはJ = 2

3mr2

となる.これを (6) 式に代入すると,Kb はつぎのように重力加速度だけに依存したものとなる.

Kb =3

5g

本実験装置ではつぎのような課題が想定できる.(1) 光学距離計の特性(距離と出力電圧の関係)を実測し,

(2) 式における定数 a,b,c を求める.この時,最小二乗法が使える.

(2) (6) 式の伝達関数のパラメータ Kb を実験結果から同定する.

(3) 角度制御実験装置において,アームの角度 θ が目標値θref に精度良く追従するように制御系を設計する.すると,θ = θref と見なせるので,(6) 式を制御対象として制御系が設計できる.

(4) 実際は,θref に対して θ が遅れて追従するので,設計通りの性能が得られず,制御性能が劣化する.そこで,角度制御系のダイナミクスを考慮した設計を試みる.

(5) 観測ノイズや外乱の影響を考慮して制御系設計を行う.

4. まとめ

本事例紹介では,ArduinoとMATLAB/Simulinkを使う

ことを前提に製作した制御教材を紹介した.これらは,容易に入手できる部品や材料だけで作られているので,学生自ら試してみることができる.実験装置による体験を通して,制御工学の理解が深まることを期待する.今後の課題としては,本実験装置を活用することによる学習効果への影響を検証することなどが挙げられる.なお,ここで紹介した制御教材について,実験装置の詳

細や具体的な実験内容は書籍としてまとまっている4).PID制御だけでなく,PI-D制御,I-PD制御,2自由度制御,そして,現代制御の適用例も掲載されている.また,製作に必要な材料をすべて集めたものがキットとして販売されている.電子部品などをすべて買いそろえる時間がない,あるいはその手間を省きたい方にお勧めできる.

(2015 年 1 月 9 日受付)

参 考 文 献

1) 古田勝久,川路茂保,美多 勉,原 辰次:メカニカルシステム制御,オーム社 (1984)

2) Arduino, http://www.arduino.cc/

3) MATLAB/Simulink, http://www.mathworks.co.jp/

4) 平田光男:ArduinoとMATLABで制御系設計をはじめよう!,TechShare (2012)

5) 平田光男,重光貴明,桑山正彦:Arduinoと学生版MATLAB

を利用した安価な体験型制御教材の開発,第 55 回自動制御連合講演会,1031/1034 (2012)

6) Arduino Support from MATLAB (ArduinoIO), http:

//www.mathworks.co.jp/academia/arduino-software/

arduino-matlab.html

7) 大塚弘文,葉山清輝:授業内演習のためのボール&ビーム実験装置開発,第 57回自動制御連合講演会 資料,586/589 (2014)

8)(株)タミヤ,ハイパワーギヤーボックス HE,http://www.tamiya.com/japan/kousaku/k_products/

72003_highpower.htm

9) 秋月電子通商,サーボモータ学習キット,http://akizukidenshi.com/catalog/g/gK-01984/

10) 東芝 セミコンダクター&ストレージ社,Brush motor driver

IC,TA7291P,http://www.semicon.toshiba.co.jp/eng/

product_detail/linear/mcd/1262760_13385.html

11)(株)タミヤ,構造材,http://www.tamiya.com/japan/products/list/

structure/kit700F01.htm

12) シャープ(株),Distance Measuring Sensor Unit,GP2Y0A21YK0F,http://sharp-world.com/products/device/lineup/data/

pdf/datasheet/gp2y0a21yk_e.pdf

[著 者 紹 介]ひら平

た田

みつ光

お男 君(正会員)

(本号 p.151 参照)

計測と制御 第 54巻 第 3号 2015 年 3月号 191