広島工業大学紀要教育編
第 ₁₁ 巻（₂₀₁₂）29 – 38

論

文

MATLAB/simulink を用いた倒立モデル Puppy のためのモデルベース開発教育システム
田中

武*・大村

道郎**・中野隆司***・有馬

仁志****（平成₂₃年₁₀月₃₁日受付）

Model base development education system for inverted model
Puppy using MATLAB/simulink
Takeshi TANAKA, Michiroh OHMURA, Ryuji NAKANO and Hitoshi ARIMA(Received Oct. 31, 2011)

Abstract
Hiroshima Institute of Technology has been teaching integrated circuit designs and semiconductor
processes since 1989. We made the lecture system about the fabrication of pMOS and CMOS FET using
semiconductor processing and testing apparatus in Kitakyushu Science and Research Park for students.
The education system was constructied from physical model to demonstration of electronic control
using two-wheeler inverted model.
Key Words: physical model, MATLAB, simulink, model based design, electronic control

用と体験が必要になる。

₁ ．まえがき

プリント基板から製作し，システム LSI を設計・実装し，近年，集積回路技術のめざましい進歩により，集積回路

動作確認と同時に，同様な内容を e-learning することによは，高速化，高性能化，および高集積化される中で，大学り理解を深め，ものづくりと e-learning システムの両立すにおける LSI 教育，およびその応用である電子制御技術教る高度なシステムの構築するために，北九州学術研究都市の育の重要性が指摘されている。本学においても，平成元年

共同研究開発センター ₃︶ で用いられている pMOS および度に簡単な集積回路の設計およびプロセス教育のできる

CMOSFET プロセスを，システム LSI 関連ものづくり教育「集積回路教育実習システム」が文部省教育装置助成で設置に取り込むために初歩的なシステム LSI の作成を試みた₄︶。

され，その実習内容を報告した₁︶。その後，平成₁₀年度に

本研究では，同軸 ₂ 輪倒立モデル（ここでは，㈱北斗電

日本私立学校振興・共済事業団の「特色のある教育研究の子製 Puppy）の物理モデルから，MATLAB/simulink モデ

推進」に採択され，集積回路関連設計・プロセス工学教育

ルの構築，dSPACE のラピッドコントロールプロトタイピ

₂︶ング，電子制御技術を用いて倒立モデルのモデルベース開システムの開発を行ってきた 。
今後の集積回路の高集積化，高密度化，および高性能化

発教育システムを構築したので報告する。

に伴い，半導体プロセス技術の発展が目覚ましい。その為，システム設計，回路設計，デバイス設計，半導体プロ
セス工学までを統合した知識・技術，および，それらの応* 広島工業大学工学部電子情報工学科** 広島工業大学工学部電気システム工学科***（株）北斗電子**** dSPACE Japan（株）
─ 29 ─

₂ ．モデルベース開発教育システムの説明
現在，社会人を対象にしたモデルベース開発教育システ

田中
表₁

₂ - ₁ - ₂ ．従来の制御ソフトのプロセスと課題

モデルベース開発教育システムの構築
₁ コマ目

₁ 週目

武・大村道郎・中野隆司・有馬仁志

はじめに

₂ コマ目
倒立モデル（Puppy）のための物理

マイコンの基礎と，倒立モ
₂ 週目 デル（Puppy）のためのマ MATLAB/simulink の説明
イコンプログラム
倒立モデル（Puppy）のた
₃ 週目 めの MATLAB/simulink プ 実習
ログラム

ムの構築を表 ₁ に示す。週に ₁ 日 ₂ コマで構成を試みた。
概要について，以下に説明する。
₂ - ₁ ．「はじめに」「はじめに」では，モデルベース開発を必要とする背景，
従来の制御ソフトの開発プロセスと課題，モデルベース開発で実現できること，モデルベース開発の効果，dSPACEの特性およびインタフェースについての説明を行う。

図₃

従来の制御ソフトのプロセスと課題

₂ - ₁ - ₁ ．モデルベース開発を必要とする背景
₂ - ₁ - ₃ ．モデルベース開発で実現できること（₁）カーエレクトロニクス化の進展（₁）問題の早期発見と早期対応
・開発の初期段階から検証ループを細かく回すことが可能。
（₂）自動コード生成
・設計されたモデルを自動で，ソフトウェア（コード）に変換。
・コミュニケーション，打ち込みミスなどの人間系エ
ラーの発生を防止する。
（₃）仮想負荷（バーチャル）による効率的な検証 HILS
・単体および複数のシステム評価を仮想負荷を用いて検証。
図₁

カーエレクトロニクス化の進展（₂）ソフトウェア業界と自動車業界との共存

図₄

モデルベース開発で実現できること

₂ - ₁ - ₄ ．モデルベース開発の効果（₁）効率化のための前提条件
モデルベース開発で，開発効率を上げるには，標準化が良い。
・最初にモデルを作る時点では，当然，従来の開発よ
図₂

り工数がかかる。

ソフトウェア業界と自動車業界との共存─ 30 ─

MATLAB/simulink を用いた倒立モデル Puppy のためのモデルベース開発教育システム

・モデルやインタフェースの標準化が重要。

の回転運動エネルギ－は車輪の軸回りの慣性モーメントが・条件を網羅したテストシナリオが必要。

J なので，（₂）モデルベース開発の効果予測

TWr =・標 準 化 が う ま く い っ た と 仮 定 し た 場 合 の 効果予

2
1
J ϕ + θ ……（₁-₁）
2()

ここで，回転角速度が ϕ だけではなく θ が加算されてい測。約₃₀％工数削減。

るのは，傾斜することによっても車輪が回転するためであ
₂ - ₂ ．「倒立モデル（Puppy）のための物理」

る。

「倒立モデル（Puppy）のための物理」では，同軸 ₂ 輪車

傾斜方向の回転運動エネルギーは，車軸回りに θ だけ回型倒立振子（ここでは，㈱北斗電子製 Puppy）の動作原

転するときには本体の重心回りに同じだけ回転しているこ理，Puppy のマイコンのプログラム変更に用いた関数につとに注目するといて説明を行う。

TBr =

構造的に不安定な Puppy を倒立させる制御の状態方程式

1 2
Iθ ……（₁-₂）
2について述べる。この制御を行うためには，Puppy 本体の並進運動エネルギーに関しては，車輪の並進運動エネル

傾斜角，角速度，車輪の角速度等から車輪に適切なトルク

ギーと本体の並進運動エネルギーをそれぞれ求めなければを求め，そのトルク値を，モータを用いて発生させることならない。車輪の並進運動エネルギーは，車輪 ₂ つの質量により，倒立振子の倒立状態を維持する。ここではサンプ

が m なので，重心が車軸の中心にあると考えて求めます。

ルプログラムでの Puppy の制御モデルを，制御系設計の方

車輪の動く速さを v とすると，車輪の並進運動エネルギー法を用いる。以下のように変数とパラメータの記号を定義は，(する。また，Puppy の側面模式図を図 ₅ に示す。

v = r θ + ϕ

)

(

)

1
1
  + ϕ 2 ……（₁-₃）
Twt = mv 2 = mr 2 θ 2 + 2θϕ
22

θ ： 本体の進行方向の傾斜角（鉛直軸から進行方向に傾斜したときが正）本体の並進運動エネルギーは，

φ： 本体から測った車輪の回転角

1
MV 2
2
1
= M V x2 + V y221
= M ϕ 2r 2 + θ2 r 2 + 2rL cos θ + L2
2
  r 2 + rL cos θ+2ϕθ……（₁-₄）

TBt =（前進回転方向が正）(I： 本体の傾斜方向の慣性モーメント
L： 車軸から測った本体の重心の距離
M： 本体の質量(

m： 車輪 ₂ つの質量
J： 車輪の慣性モーメント

ただし，

r： 車輪の半径

{

)

(

)}

d

V x = dt r (θ + ϕ ) + L sin θV = d ( L cos θ ) y dt{

Dφ：車輪の回転に伴う速度摩擦係数
Dθ： 車輪回りに本体が回転するときの速度摩擦係数

)

}

となる。
運動エネルギーの総和は式（₁-₁），式（₁-₂），式（₁-₃），式（₁-₄）を足しあわせたものとなる。
T = TWr + TBr + TWt + TBt ……（₁-₅）
₂ - ₂ - ₂ ．ポテンシャルエネルギー
ポテンシャルエネルギー U は重心の位置エネルギーなので，
図₅

U = MgL cos θ ……（₁-₆）

Puppy の側面模式図となる。
₂ - ₂ - ₃ ．ラグランジュ関数とラグランジュの運動方程式

₂ - ₂ - ₁ ．運動エネルギー
剛体の運動エネルギーは，重心回りの回転運動エネル
ギーと重心の並進運動エネルギーの和で与えられる。車輪

運動方程式を書き下すために必要なラグランジュ関数
L(ϕ ,ϕ ,θ ,θ ) は，運動エネルギーとポテンシャルエネルギー─ 31 ─

田中武・大村道郎・中野隆司・有馬仁志

から機械的に以下のように求められる。

θ = a21θ + a22θ + a23ϕ + b2τ
ϕ = a31θ + a32θ + a33ϕ + b3τ ……（₂-₂）

L = T − U ……（₁-₇）
ラグランジュの運動方程式は，車輪を駆動する軸トルクを t とすると以下のように与えられる。

ただし，(a + b) Dϕ
−aDθ
au
a22 =
a23 =
2
2
ac − bac − bac − b2− ( a + b)
(a + b) Dθ a = − (a + 2b + c ) Dϕ
a31 =
a32 =
33
2
ac − b2ac − b2ac − b− ( a + b)
(a + 2b + c )
b2 =
b3 =
ac − b2ac − b2d  ∂  ∂L + Dϕϕ = τ   L −
 dt  ∂ϕ  ∂ϕ……（₁-₈） d  ∂ L  − ∂ L + D θ = 0θ    dt  ∂θ  ∂θ

a21 =式（₁-₈）に式（₁-₇）を代入して計算を進めていくと以下の結果が導き出される。

{となりこの式を状態方程式の形にすると，

} {

{

{

θ( t )  0
d   
θ( t ) = a21dt 
ϕ( t ) a31}

 ( m + M ) r 2 + J ϕ + ( m + M ) r 2 + MrL cos θ + J θ− θ 2 MrL sin θ + Dϕϕ = τ2
 ( m + M ) r + MrL cos θ + J ϕ+ ( m + M ) r 2 + 2 MrL cos θ + ML2 + J + I θ− θ 2 MrL sin θ − MgL sin θ + Dθθ = 0
……（₁-₉）

}

}

1
a22
a32

0  θ( t )  0 
 
  
a23  θ( t ) + b2  τ (t ) ……（₂-₃）
a33  ϕ( t ) b3 となる。この式（₂-₃）が以降の制御設計の基礎となる状態方
程式となる。
表₂

式（₁-₉）の定数部分を変数変換して見通しを良くする。
a = ( m + M )r 2 + Jb = MrL2c = ML + I
u = MgLとおくと，
aϕ + ( a + b cos θ )θ − θ 2b sin θ + Dϕϕ = τ( a + b cos θ )ϕ + ( a + 2b cos θ + c )θ

2……（₁-₁₀） − θ b sin θ − u sin θ + Dθθ = 0

変数とパラメータの記号

車輪半径

r

₀.₀₂₉ [m]

車輪（ ₂ つ分）と車軸の質量m₀.₀₆ [kg]

本体の質量（乾電池含む）

M

₀.₂₇ [kg]

車輪と車軸の慣性モーメントJ₀.₀₀₁₁₅ [kg・m₂]

本体の慣性モーメントI

₀.₀₀₃₆₉₇₃ [kg・m₂]

車軸から本体重心までの距離

L

₀.₁₀₅ [m]車体の粘性摩擦抵抗Dθ

₂.₀₀e – ₇ [Nms/rad]

車軸の粘性摩擦抵抗

Dφ₁.₀₀e – ₄ [Nms/rad]₂ - ₃ ．「マイコンの基礎と，倒立モデル（Puppy）のためのマイコンプログラム」
Puppy のマイコンのプログラムは，パソコンを用いて，と表される。このラグランジュの運動方程式（₁-₁₀）を用いて制御の設計を行っている。

プログラム内容の変更，コンパイル，マイコンへの書き込

₂ - ₂ - ₄ ．Puppy の状態方程式

みにより変更が可能である。

Puppy が倒立状態にあるとき，θ と θ は小さな値をとりPuppy の動作を観察しながら，Puppy のプログラムの変続ける。前章で導いた運動方程式は，これらの変数に関し更をする必要があるため，プログラム中の簡単な変数の値て非線形な関数を含んでいたが，倒立状態を考えるとθ = 0 ,θ = 0 のまわりで線形近似した式に置き換えても問題が生じを変更するのであっても，プログラムの修正時間がかかる。また，修正前と修正後の Puppy の動作の比較は困難でないと考える。

ある。

このことから cos θ ≈ 1, sin θ ≈ θ と近似し， θ 等の非線形項をゼロとみなすと式（₁-₁₀）は，
aϕ + ( a + b)θ + Dϕϕ = τ( a + b)ϕ + ( a + 2b + c )θ − uθ + Dθθ = 0 ……（₂-₁）と表される。この式を変形すると，この問題を解決するため，制御モデルをリアルタイムで動作させ制御でき，パラメータをオンラインで調節可能な
dSPACE 社製のラピッドコントロールタイピングを用いてPuppy のプログラム修正を試みた。また，ラピッドコント
ロールタイピングを用いるために，Puppy の制御モデルをMATLAB/simulink を用いて記述することを試みた。
この状態方程式を用いて作成したソフトウェアを実装した Puppy の動作を図 ₆ に示す。

─ 32 ─

MATLAB/simulink を用いた倒立モデル Puppy のためのモデルベース開発教育システム

int_tb₁
タイマ B₁のオーバフロー割り込みで呼び出される関数。
タイマ B₁のカウンタオーバフローは ₂₀₀ m sec ごとに発生
し，関数内でモータ制御関数 control_current を呼び出す。
さらに，₅₀回に ₁ 回の割合（₁₀ msec 毎）で倒立制御フラグ（Cflag）をセットする。
current_sutatus
現在の Puppy の状態量を観測する関数。Puppy の倒立走行制御には車体傾斜角 θ ，車体傾斜角速度 θ ，車輪回転角
速度 ϕ が状態量として必要である。車体傾斜角速度は，傾図₆

斜角速度検出回路の出力を AD 変換して単位変換する。車Puppy の動作

輪回転角速度は車輪回転角を表す Count 値車体傾斜角は，
車体傾斜角速度を時間積分して求める。車輪回転角速度
は，車輪回転角を表す Count を時間微分した後，その結果を SI 単位系に変換し，あらかじめ制御の設計で用いた変数
dThetaG (θ )，dFai (ϕ ) に格納している。また，j を求める
ために dThetaG (θ ) を台形法により時間積分し ThetaG (θ )を算出している。この関数は制御周期ごとに呼び出されることを前提に作られているのでそれ以外のタイミングで呼び出されると時間微分，積分が正確に行われないので注意が必要である。
acrobat
倒立走行制御を行うための関数。フィードバックゲインと Puppy の現在の状態量を制御式に代入し，モータのトル

図₇

ク指令値を計算する。Puppy 制御説明書で説明したとお

倒立制御中の Puppy

り， ₁ ステージ遅れの制御を実施するので，計算結果であ₂ - ₃ - ₁ ．プログラム中の関数

るモータ電流指令値 Id は，次にこの関数が呼び出されたときにモータ制御関数 control_current に渡される。

int_irq₀
IRQ₀端子に接続されたフォトロータリエンコーダ A 相の出力パルスが割り込み要因になったときに呼び出される関control_current数である。車輪の回転に応じてパルスカウント（Count）をモータトルク制御用関数。電流センサ入力の AD 変換値を増減する。図の要領で割り込み要因が立ち上がりエッジのSI 単位系に変換し，現在のモータ電流値を表す変数 I に格納

とき B 相が LO のとき，もしくは割り込み要因が立ち下がします。I と Id の差が制御偏差となり，PI 制御で制御偏差がりエッジのとき B 相が HI で Count をインクリメント，逆すみやかにゼロに収束，つまり電流値が指令値に収束する。

の条件でデクリメントする。割り込み要因を反転させ，次の割り込みに備える。

gyro_offset
傾斜角速度検出回路の出力は角速度がゼロのとき，ENC-

int_irq₁

₀₃M の内部基準電圧約（₁.₂ V）となる。本体基板の電源

IRQ₁端子に接続されたフォトロータリエンコーダ B 相の

電圧 Vcc（安定化 ₅ V）は単三乾電池 ₂ 本（約₃V）を昇圧

出力パルスが割り込み要因になったときに呼び出される関して作られており，電池の消耗具合によっては若干の変動

数。int_irq₀（void）と同様な関数だが Count の増減要因はが見られる。このことより，車体傾斜角速度ゼロ時の傾斜逆になる。int_irq₀，int_irq₁ の ₂ つの関数でロータリエン

角速度検出回路出力の AD 変換結果（GYRO_OFFSET）はコーダの A 相，B 相信号をデコードし車輪回転角を検出す

必ずしも毎回同じとは限らない。そこで，サンプルプログ

る。

ラムでは電源投入ごとに毎回 GYRO_OFFSET を計測する
─ 33 ─

田中武・大村道郎・中野隆司・有馬仁志

ことで，より安定した倒立走行制御を実現している。

ans=₂

wait_m
引数で指定した時間（msec）だけ待機する。この関数はとなる。また，タイマ B₁ のカウンタオーバフロー割り込みごとに立つフ 1 5 6
B =  −2 −3 8  9 4 7 ラグ（Cflag）を利用しているので割り込みをマスクした状態で実行すると意図しない無限ループに陥るので，必ずタイマ B₁ のカウンタオーバフロー割り込み許可，CCR の割
り込みマスクビットをクリアした状態で使用する。

を MATLAB を用いて計算すると，以下のようになる。

₂ - ₃ ．「マイコンの基礎と，倒立モデル（Puppy）のため>>B = [₁ ₅ ₆;-₂ -₃ ₈;₉ ₄ ₇];のマイコンプログラム」>>det(B)「マイコンの基礎と，倒立モデル（Puppy）のためのマイコンプログラム」では，同軸 ₂ 輪車型倒立振子（ここで

ans=
₄₉₁

は，㈱北斗電子製 Puppy）の動作原理，Puppy のマイコンのプログラム変更に用いた関数について説明を行う。
構造的に不安定な Puppy を倒立させる制御の状態方程式となる。では，次のような回路がある。

について述べる。この制御を行うためには，Puppy 本体の傾斜角，角速度，車輪の角速度等から車輪に適切なトルク

まず，実際にそれぞれの電流 I を計算して求める。キル
ヒホッフの法則から式をたてると，を求め，そのトルク値を，モータを用いて発生させることにより，倒立振子の倒立状態を維持する。ここではサンプ
ルプログラムでの Puppy の制御モデルを，制御系設計の方法を用いる。
₂ - ₄ ．「MATLAB/simulink の説明」
初歩的な電子制御技術に関連する教育を行うために，ソフトウェアとして，MATLAB/simulink および dSPACE 製の Controldesk を用いた。MATLAB/simulink の説明をするにあたって，本学で行っている ₃ 年次の電子情報工学実験

図₈の内容を用いる。

30 I1 − 40 I 2 − 70 I 3 = 0 ……Ⅰ50 I 4 − 8 I5 − 70 I 3 = 0 ……Ⅱ
40 I 2 + 8 I5 = 100 ……Ⅲ
>> は，コマンド入力を示す。
₂ - ₄ - ₁ ．行列の演算
 2 2
A=
4 5となる。また，を計算して求めると，行列式 A はサラスの方式から，

 I 4 = I1 + I 3
I 5 = I 2 − I 3
I = I − I
12
6

A=₂×₅-₂×₄= ₁₀ - ₈= ₂であるので，となる。

式Ⅱ，Ⅲに I₄，I₅ を代入すると，
 3I1 − 4 I 2 − 7I 3 = 0 ……Ⅰ'
55I1 − 8 I 2 + 133I 3 = 0 ……Ⅱ'
12I 2 − 2I 3 = 25 ……Ⅲ'

この計算を MATLAB を用いて計算する場合，以下のよ
うにコマンド入力する。
>>A=[₂ ₂;₄ ₅];

計算例の回路図

Ⅰ× ₅₅ -Ⅱ' × ₃ より，- ₁₉₆I₂ - ₇₈₄I₃ = ₀>>det(A)I₂ + ₄I₃ = ₀
その結果，
─ 34 ─

……Ⅳ

MATLAB/simulink を用いた倒立モデル Puppy のためのモデルベース開発教育システム>>I=inv（R）*V

Ⅳ +Ⅲ' × ₂ より，
₂₅I₂ = ₅₀
I₂ = ₂……Ⅴ

I=
₁.₅₀₀₀

ⅤをⅣに代入して，₂.₀₀₀₀……Ⅵ－₀.₅₀₀₀

I₃ = -₀.₅

このように，I₁ = ₁.₅[A]，I₂ = ₂.₀[A]，I₃ = -₀.₅[A] を求め

Ⅴ，ⅥをⅠ' に代入して，
₃I₁ - ₄.₅ = ₀
I₁ = ₁.₅

ることができる。また，……Ⅶ

 I 4 = I1 + I 3
I 5 = I 2 − I 3
I = I − I6 1 2

V，Ⅵ，Ⅶを I₄，I₅，I₆ に代入して，
I₄ = ₁.₅ - ₀.₅であるので，I₄ = ₁.₀[A]，I₅ = ₂.₅，I₆ = ₃.₅[A] も求まる。
₂ - ₄ - ₂ ．Simulink の利用= ₁.₀

次のような RL 回路に直流電圧を加えたときの電流を求める。そして simulink モデルを用いてシミュレーションを

I₅ = ₂ + ₀.₅

行う。

= ₂.₅
I₆ = ₁.₅ + ₂= ₃.₅
よって，I₁ = ₁.₅[A]，I₂ = ₂.₀[A]，I₃ = -₀.₅[A]，I₄ = ₁.₀[A]，I₅ = ₂.₅[A]，I₆ = ₃.₅[A] が求まる。
実際にはこのような計算が必要となるが MATLAB を用

図₉

いると次のように求めることができる。

RL 回路

インダクタンスからコイルに電流 i(t) を流すとその周辺>>R=[₃₀ -₄₀ -₇₀;₅₅ -₈ ₁₃₃;₀ ₄₈ -₈]に儀きが生じる。これにより作られる磁束を f (t) とすると，

f (t)＝L・i (t)と表わされる。これにより電圧は，

R=
₃₀

－₄₀

－₇₀

₅₀

－₈

₁₃₃

₀

₄₈

－₈

V( t ) =dφ( t )
dtが成り立つ。そして，この式に先ほどの f (t) を代入すると，
V( t ) = L>>inv（R）

di( t )
dtとなり，電圧はそこから流れる電流 i(t) の時間微分に比例
する。

ans=
₀.₀₁₆₁ ₀.₀₀₉₄

₀.₀₁₅₀－₀.₀₀₁₁₀.₀₀₀₆₀.₀₂₀₀－₀.₀₀₆₇

₀.₀₀₃₇－₀.₀₀₅₀すると回路方程式は，
E = R ⋅ i( t ) + L

di( t )
dtとなる。よって電流 i(t) は，>>V=[₀;₀;₁₀₀]i( t ) =1(E − Ri( t )) dt
L∫となる。この i(t) の式から RL 回路（図 ₉ ）を simulink でV=
₀モデリングすると図₁₀のようになる。その結果を図₁₁に示

₀

す。

₁₀₀
─ 35 ─

田中

図₁₀

武・大村道郎・中野隆司・有馬仁志

RL 回路の simulink モデル

図₁₃

倒立モデル（Puppy）の倒立制御用 simulink モデルを用いた。この controldesk は，Puppy を制御している時，コントローラーと Puppy が通信を行い，リアルタイムに変数値を取得し，グラフ表示を行う。さらに，Puppy を実際に制御中に制御パラメータを変更でき，制御性をリアルタ
イムに観測することができる。（図₁₄）図₁₁

RL 回路の simulink モデルのシミュレーション結果（黄：ステップ電圧，赤紫：出力波形）

₂-₅．
「倒立モデル（Puppy）のための MATLAB/simulink
プログラム」

図₁₄₂ - ₂ - ₁ で述べたように Puppy の制御モデルは（₂-₁）式

倒立モデル（Puppy）制御中の controldesk の画面で表される。この状態方程式を，MATLAB/simulink を用

ピッドコントロールプロトタイピングを用いることによいて図₁₂に示す。さらに周辺のモデルを付加した倒立モデ

り，プログラムの修正時間が₆₀分の ₁ に短縮することがでル（Puppy）の倒立制御用 simulink モデルを図₁₃に示す。

きた。実際にリアルタイム制御している Puppy を図₁₅に示

この制御モデルで Puppy を動作させることができた。こす。この応用として，Puppy の倒立時における車輪の回転の制御中の動作を調べるために，dSPACE 社製の controldeskに伴う速度摩擦係数 Dφ のパラメータを Puppy の車輪の下に紙を置くことによって変化させた。この実験によって，条件が変化したときにおいても，パラメータの値をリアル
タイムで制御できることを示した。この様子を図₁₆に示す。
以 上 よ り，同 軸 ₂ 輪 倒 立 モ デ ル の 物 理 モ デ ル か ら，
MATLAB/simulink モデルの構築，dSPACE のラピッドコ
ントロールプロトタイピング，電子制御技術を用いてPuppy の実演を行えた。物理モデルから数式化することが出来れば，そこからはソフトウェアにより処理を行うことができた。すなわち，MATLAB/Simulink のモデルが構築できれば，後はソフトウェアにより電子制御できる可能性が示された。その結果，電子制御したい自然現象の物理モ

図₁₂

倒立モデル（Puppy）の状態方程式の simulink モデル

デル化技術の重要性が示された。
─ 36 ─

MATLAB/simulink を用いた倒立モデル Puppy のためのモデルベース開発教育システム（₂）MATLAB R₂₀₀₆b から Puppy のプログラムデータを読み込む。コマンドウインドウに「PuppyGo」と入力しEnter で読み込まれる。

図₁₅

dspace 社製制御ユニットを用いて制御中の Puppy

図₁₈

MATLAB R₂₀₀₆b の画面

₂ - ₆ - ₂ ．ControlDesk（₁）ControlDesk を起動させる。
（₂）リアルタイムに変数値を取得し，グラフ表示を行う
ためのファイルを開く。

図₁₆

紙を置くことで摩擦係数のパラメータを変化させた状態のPuppy

₂ - ₆ ．「実習」「実習」では MATLAB/simulink および controldesk を用いて倒立モデル（Puppy）の制御を行う。
広島工業大学オープンキャンパス₂₀₁₁で倒立モデル（Puppy）について説明した際に用いた制御マニュアルを用図₁₉

いて説明する。

ControlDesk の画面

₂ - ₆ - ₁ ．MATLAB R₂₀₀₆b（₁）MATLAB R₂₀₀₆b を起動させると，「Select dSPACER TI Platform Suppor t」とウインドウが表示されるので，「RTI₁₁₀₄」を選択する。

図₁₇

図₂₀

Select dSPACE RTI Platform Support の画面
─ 37 ─

パソコンに接続した Puppy

田中武・大村道郎・中野隆司・有馬仁志

₂ - ₆ - ₃ ．Puppy の制御した。

（₁）パソコンに接続した Puppy を持ち上げ，地面から離した状態でスイッチを ON にし，このときの Gyro の数値

₄ ） 以上一連の内容を，本学，また高大連携における教育に導入し，受講学生が実際に電子制御を行った。

を読み取り，スイッチを OFF にする。
（₂）読み取った Gyro の数値を参考にして Gyro/Value 値

物理モデルから MATLAB/simulink モデル，Controldeskを調節する。

による電子制御を実際に行うことは，学生にとって容易で（₃）実際に Puppy を走らせる。このとき，Puppy が直立あるが，内容を理解することは難しいので，今後はより分し，制止状態を保てていたら成功。Puppy が制止状態を保かりやすいマニュアルを作成し，学生一人一人に考えさせてず，前進または後進する場合は Gyro/value 値を調節す

る時間を設けることを試みる。さらに本学 NEXUS ₂F CADる。

室に MATLAB/simulink が₁₀₃ライセンス整備されているの（前進した場合，Gyro/value 値を上げる。後進した場合，で“オープン利用”時間に学生の技術のスキルアップのた

Gyro/value 値を下げる。）

めに利用を推進していきたいと思います。

謝

辞

本研究は，
「カーエレクトロニクスを題材とした電子情報技術の体験教育支援」の支援を頂いております。dSPACE
製制御ユニットに移植の協力をいただいた城所仁さんに謝意を表します。また，Puppy のマニュアルの利用させていただいた北斗電子（株）に謝意を表します。最後に，本研究論文の図面作成，文章清書等に協力頂いた上本亮君，藤原拓也君に謝意を表します。
図₂₁

文

制御中の Puppy

₁ ）川畑敬志，田中

₃ ．まとめ献

武，“学部課程におけるマイクロエレ

クトロニクス実験”，平成 ₃ 年度電気・情報関連学会中

₁ ） ルネサス製 SH マイコンを用いた倒立制御学習キットの動作を演示し，マイコンプログラムの変更も行った。
₂ ） 物理モデルから，MATLAB/simulink モデルを作成した。その MATLAB/simulink モデルを自動車用電子制御

国支部第₄₂回連合大会講演予稿集，p. ₃₄₂.
₂ ）田中武，水野議一朗，大村道郎，“基本的な 集積回

路設計および半導体プロセス工学教育システムの構
築”，応用物理教育₂₆（₂₀₀₂）₇.

ユニット開発用の dspace 製の制御ユニットを用いて，

₃ ）http://www.ksrp.or.jp/shisetsu/₀₂_center.html.

Puppy の制御を行った。パラメータの変更は，マイコンプ₄ ）田中

ログラムの変更に比べ₆₀倍程度高速であることがわかった。
₃ ） Puppy を動作する環境が変化しても，自動車用電子制御ユニット開発用の dSPACE 製の制御ユニットを用いれば，リアルタイムでパラメータの変更を行えることを実証─ 38 ─

武，安藤秀幸，山田明宏，“システム LSI 関連ものづくり教育における IC チップ作成”，広島工業大学
紀要，₂₀₀₅，pp. ₇ – ₁₂.
₅ ）㈱北斗電子，倒立制御学習キット Puppy．