Simulink OnlineでMATLAB functionを使ったシステムをラズパイで動かしてみる
これまでSimulink Online上で用意されたブロックを使ってラズベリーパイを動かしてきたが、前回つくったモデルなどはMATLAB functionを使ってMATLABのコードで処理を記述した方がシンプルにモデルをつくることができる。
ということで、今回はMATLAB functionを使って前回のモデルを書き換えてみたいと思う。ちなみにSimulinkのモデルやラズパイの接続は以下の記事のものと全く同じなので、詳細は以下を参照。
実行環境
Raspberry Pi 4 Model B
Raspberry Pi OS (Buster)
MATLAB online (MATLAB R2022a)
Simulink online
SimulinkのブロックをMATLAB Functionブロックで置き換える
前回はString Compareブロック、String Constantブロックを2個ずつ配置して文字列の比較を行っていたが、今回はこのブロックをMATLAB Functionブロックで置き換えてみる。
MATLAB Functionブロックは以下のように配置して置き換えた。ちなみにMATLAB Functionブロックをドラッグ&ドロップしたときにデフォルトは1入力1出力だが、入出力の数はMATLAB Functionのコードを変えることで増やせる。
MATLAB FunctionブロックをダブルクリックするMATLAB Functionのコードを記述できるので、今回は以下のように1入力2出力の関数のコードを記述した。strcmp関数を使うことで、入力uと文字列”led”、”buz”を比較して、一致すればtrueを、一致しなければfalseを出力信号のledとbuzに出力 する。
あとはいつも通りラズパイで実行するだけ。動作としては前回と全く同じなので動画は割愛するが、MATLAB Functionを使うことで前回と比べてかなりスッキリとモデルを記述することができた。
今後もMATLAB Functionブロックを活用していきたい。
参考文献
この本のMATLAB/Simulink 6か月ライセンスを使ってやってます↓
Interface 2022年 9月号
MATLAB/Simulink記事まとめ
MATLABとSimulinkの記事は以下にまとめてます。