Simulinkモデルを MATLAB ファイルやコマンドラ​インから起動し、ハー​ドウェアのIOを使っ​て実行する方法を教え​てください。

4 Ansichten (letzte 30 Tage)
Popurakun
Popurakun am 7 Apr. 2022
Kommentiert: Popurakun am 8 Apr. 2022
現在、ArduinoをSimulinkから制御を行っています。
Matlabファイルで設定値を入れて、Simulinkモデルを呼んで、結果をworkspaceに入れて、計算したいと考えています。
Matlabファイル上で、sim('model')でSimlinkモデルを実行させた場合、ハードウェア上で実行される出力、データの取り込みが実行されません。
Simulink モデルを MATLAB ファイルやコマンドラインから起動し、"ハードウェアのIO"を使ってSimulinkを実行する方法を教えてください。

Akzeptierte Antwort

Toshinobu Shintai
Toshinobu Shintai am 7 Apr. 2022
詳しくはこちらのリンク先ドキュメントをご確認ください。
例えば、Simulinkモデルをエクスターナルモードで実行するには、以下のようにコマンドを実行します。
set_param('model_arduino', 'SimulationMode', 'external')
set_param('model_arduino', 'SimulationCommand', 'start')
'model_arduino'は、エクスターナルモードで実行したいSimulinkモデルの名前です。

Weitere Antworten (1)

Popurakun
Popurakun am 7 Apr. 2022
シンタニ様
ありがとうございました。大変助かりました。実行できました。
関連して、もう一点質問があります。
Simulinkモデルをエクスターナルモードで実行することはできたのですが、
実行結果の参照エラーが起きてしまいます。
どうやらビルドして、ハードウェア上で実行完了する間に、次の計算行を実行してしまっているようです。pauseで回避していますが、Simulinkで計算実行中は、一時停止する方法はありますでしょうか?
  2 Kommentare
Toshinobu Shintai
Toshinobu Shintai am 8 Apr. 2022
set_paramで実行した場合は、仰る通り終わるまでpauseで待つ必要があります。終わったかどうかは、以下のコマンドで 'stopped' が返ってくれば終わったことになりますので、それによって判別できます。
get_param('model_arduino','SimulationStatus')
Popurakun
Popurakun am 8 Apr. 2022
シンタニ様
ご回答頂きありがとうございました。
get_param('model_arduino','SimulationStatus')が”Stopped"となるまで、while loopでwaitいたします。
続けて質問で申し訳ございません。
SimulinkをMatlabファイルから呼び出し、
set_param('model_arduino', 'SimulationMode', 'external')
を実行しているのですが、ビルド、ターゲットへのダウンロードを何度も行って、毎度時間がかかってしまいます。Simulinkのモデル内容自体は、何も変えていないのですが、set_param('model_arduino', 'SimulationMode', 'external')の実施時間を短縮できませんでしょうか?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Simulink Function finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!