Simulinkにはとても沢山のブロックが標準で用意されており、使いこなすことで様々なロジックをシンプルにモデルとして表すことが可能です。
しかしブロックがありすぎて、初めてSimulinkを触るような初心者の方は逆にどのブロックを使えば良いのか分からなくなってしまうこともあるかと思います。

そこで、ここではモデルベース開発の現場で実際に使用される頻度が高い、とりあえずこれだけ抑えておけばOKというブロック11個を厳選して紹介したいと思います。
ブロック紹介
ピックアップした11ブロックについて、使い方含めて紹介していきます。これさえ押さえておけば大体の処理をモデルにすることができるはずです。
Constantブロック

数値を出力するブロックです。
ブロックパラメーターの定数値欄に設定した値が出力されます。なお数値以外にも数式を入れることも可能です。
例えば定数値欄に”pi*2″と入力すると円周率の2倍の数値が出力されます。


Addブロック

足し算と引き算を行います。Addと言いながら引き算も担っています。
ブロックパラメーターの符号リスト欄に記載した演算が行われます。例えば”+-+”とした場合は1番目の入力から2番目を引いて3番目を足すという処理となります。


Productブロック

掛け算と割り算を行います。
こちらもブロックパラメーターの符号リスト欄に記載した演算が行われます。例えば”*/*”とした場合は1番目の入力を2番目で割って、さらに3番目をかけるという処理となります。


Sqrtブロック
入力値に対して平方根の計算を行います。
ブロックパラメーターの設定はデフォルトから変更しなくてOKです。

Math Functionブロック
対数、べき乗、余剰など諸々の計算などが行えます。
ブロックパラメーターの関数欄よりどの計算を行うか選択することができます。


Logical Operatorブロック
入力に対して論理演算を行った結果(True / False)を出力します。
ブロックパラメーターの演算子欄より演算のタイプを選択することができます。


Relational Operatorブロック
数値と数値の比較演算を行った結果(True / False)を出力します。
ブロックパラメーターの関係演算子欄より演算のタイプを選択することができます。


MinMaxブロック

入力の最大値もしくは最小値を出力します。
どちらを出力するかはブロックパラメーターの関数欄で選択します。


Absブロック

入力の絶対値を出力します。
ブロックパラメーターの設定はデフォルトのまま変更しなくてOKです。

Switchブロック

入力値により出力される値をスイッチするブロックです。
プログラム言語で言うところのIF文のようなものです。
2番目の入力により1番目の値が出力されるか3番目の値が出力されるか決まります。
1番目の入力が通過する条件として以下の3種類選べます。
- u2 >= しきい値・・・2番目の入力が閾値以上なら1番目の入力が、しきい値未満なら3番目の入力が出力される。
- u2 >= しきい値・・・2番目の入力が閾値より大なら1番目の入力が、しきい値以下なら3番目の入力が出力される。
- u2 ~= 0 ・・・2番目の入力がTrueなら1番目の入力が、Falseなら3番目の入力が出力される。


Unit Delayブロック

入力値を1サイクル遅らせて出力します。
たとえば1サンプリング時間前の入力値が1で今現在の入力値が2だった場合、今現在の出力結果として前回サンプリング時間の入力値である1が出力されます。
なお、初回はブロックパラメーターの初期条件欄に入力した値が出力されます。

他とは毛色の違うブロックなので少し取っつきにくいかもしれませんが、UnitDelayブロックはかなり使われることが多いブロックです。
例えば、以下のようなモデルを作成することで1サイクル毎に1ずつ加算されるカウンタを表現することができます。


終わりに
Simulink初心者の方向けということで、非常によく使われるブロック11個を紹介しました。
Simulinkには様々なブロックが準備されており、中にはとても複雑な計算を行うブロックもあるため取っつきにくく感じるかもしれません。
しかしここで紹介したブロックだけであれば数も少ないですし処理も簡単でイメージしやすいと思います。
まずはこのブロックたちを使ってみることから始めてみましょう!
コメント