MATLABの第2回目として,SIMULINKを体験する.SIMULINKは,MATLABの追加モジュールの一つとして,MATLABと連携して動くソフトウェアであり,様々なブロックをつなぎ合わせてブロック線図をつくり,シミュレーションを行うものである.特に信号処理や制御の分野では無くてはならないツールである.
機械工学実験,メカトロニクス実習,制御工学1・2,機械力学,メカトロニクス,ロボット工学,ゼミ及び卒業研究,大学院での研究等.
MATLABワークスペースの中で,
>> simulink
とタイプすると起動できる.MATLAB自体の起動方法は,第8回を参照せよ.
SIMULINKでは,様々なブロックをつなぎ合わせることでブロック線図を作る.ブロック線図を作る作業はマウスを使ってでき,スクリプトを書くよりも相互的(interactive)かつ直観的(intuiteve)でわかりやすい.
ブロックは,様々なものが既に用意されている.例えば,何らかの値を発生させるブロックは,Sourcesとして,値を読み込んで表示させたりするブロックは,Sinksとしてまとめられている.
例えば,以下の例はまず,SourcesよりSine Waveを,SinksよりScopeをドラッグドロップ*する.
次に,ブロック同士を線で繋ぐには,Sine Waveの右側にある出力ポート(>の部分)をマウスでポイントして線を引き出し,そのままドラッグして行き,
Scopeの左側にある入力ポート(>の部分)上でドロップする.
これで最初のSIMULINKのブロック線図は完成である.メニューにある,(実行ボタン)を押して,シミュレーションをしてみよう.
グラフには以下のような波形が表示される.
ここで,Sine Waveブロックをダブルクリックして,出力される波形を変更してみよう.例えば,振幅(Amplitude)を3に,周波数(Frequency)を2 (rad/sec)にしてみる.
ApplyまたはOKを押して確定してからシミュレーションを実行すると,グラフは以下のようになる.振幅と周波数が変更されていることに注意しよう.
それでは,Sine WaveとScopeをもう一つずつ追加してみよう.
また,わかりやすくするために,ブロックを追加した後に名前を変更してみよう.名前の部分をクリックすると変更できる.
また,Cos波形が出力されるようにCos Waveのブロックパラメータを変更する.Sinを使ってCosを出力するには,位相(Phase)をπ/2進ませて,
cosθ=sin(θ+pi/2)
とすれば良いから,パラメータの設定は以下のようになる.
Sine WaveのAmplitudeとFrequencyも元の1に戻しておく.これでもう一度シミュレーションを実行すると,CosとSinの両方の波形が出力される.
次にSinksからXY Graphを追加してみよう.
ここで,2つの矢印線からそれぞれ,分岐線を引き出してXY Graphに繋ぐ.分岐線を引き出すには,線の上でマウスの右ボタンを押すことでできる.
この状態でシミュレーションを再度実行すると,XY Graphが描かれる.
このグラフは円であるはずなので,円に見えるように,ウィンドウを上下に拡大して,円に見えるようにしよう.
それでは次に以下のブロックを作ってみよう.
1/s は積分(Integrate)を表す演算子(積分子:Integrator)であり,Continuousグループの中にある.
また,Pulse Genaratorはパルスを発生器である.ここでは周期(Period)を10,デューティ比(Duty ratio)を20%にしてみよう.設定は以下のようになる.
以上の設定で,シミュレーションを行うと,以下のようなグラフが得られる.
これらは,上から順に,加速度,速度,変位(位置,または移動距離)を表している.
例えば,自動車を例に取ると,2秒間アクセルを踏んだ時の車速と移動距離に対応する.速度のグラフでは,最初の2秒間,等加速度運動をしたあと,等速になっている様子がわかる.加速度1m/s2を2秒間続けたのであるから,速度は2m/sになる.
また,移動距離のグラフでは,最初の2秒間は曲線に,その後は直線的に移動していることが読み取れる.スタートから2秒後の移動量は2mであり,速度のグラフの三角形部分の面積に等しい.
或いはロボットの場合,ロボットの腕の関節のモータを2秒間加速したときの腕の回転角速度と回転角に相当する.
以上の様に,SIMULINKは様々な現象のシミュレーションを行うのに大変便利なツールであることがわかる.
その他にも様々なブロックがある.例えば,以下の例の様に,Constantは定数,Gainは係数のかけ算である.その他いろいろあるブロックを試してみると良い.
SIMULINKで作成したモデルはモデルファイル*.mdlとして保存することが出来る.ファイルメニューより保存するか,ディスクアイコンをクリックすればよい.
ファイル名命名規則
とする.ファイル名はすべて半角英数字であることに注意せよ.
提出期限は来週月曜午後5時までとする.
ファイル名を-(マイナス)から_(アンダースコア)に変更した.
SIMULINK単体の説明書はあまり無いのが現状である.これはSIMULINKが単体のソフトウェアではなく,MATLABの拡張モジュールであることに起因している.従って,本を探すときにはMATLABの解説書の中を見る他はない.またSIMULINKは一般的に,制御理論の学習や研究に最も良く用いられるので,その例題は多くの場合,制御理論である.従って,将来,制御の勉強を行うときに各自で実習をしてみると制御理論の理解がしやすくなるだろう.
次回はUNIXを用いたソフトウェア開発に関する演習を行う.UNIXについての必要最小限度の説明は行うが,細かな使用方法についての説明をすることはしないので,情報科学センターのテキストやインターネット等で予習をしておくこと.