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

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

 채택된 답변

Toshinobu Shintai
Toshinobu Shintai 2022년 4월 7일

1 개 추천

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

추가 답변 (1개)

Popurakun
Popurakun 2022년 4월 7일

0 개 추천

シンタニ様
ありがとうございました。大変助かりました。実行できました。
関連して、もう一点質問があります。
Simulinkモデルをエクスターナルモードで実行することはできたのですが、
実行結果の参照エラーが起きてしまいます。
どうやらビルドして、ハードウェア上で実行完了する間に、次の計算行を実行してしまっているようです。pauseで回避していますが、Simulinkで計算実行中は、一時停止する方法はありますでしょうか?

댓글 수: 2

set_paramで実行した場合は、仰る通り終わるまでpauseで待つ必要があります。終わったかどうかは、以下のコマンドで 'stopped' が返ってくれば終わったことになりますので、それによって判別できます。
get_param('model_arduino','SimulationStatus')
Popurakun
Popurakun 2022년 4월 8일
シンタニ様
ご回答頂きありがとうございました。
get_param('model_arduino','SimulationStatus')が”Stopped"となるまで、while loopでwaitいたします。
続けて質問で申し訳ございません。
SimulinkをMatlabファイルから呼び出し、
set_param('model_arduino', 'SimulationMode', 'external')
を実行しているのですが、ビルド、ターゲットへのダウンロードを何度も行って、毎度時間がかかってしまいます。Simulinkのモデル内容自体は、何も変えていないのですが、set_param('model_arduino', 'SimulationMode', 'external')の実施時間を短縮できませんでしょうか?

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 ループと条件付きステートメント에 대해 자세히 알아보기

제품

릴리스

R2021b

질문:

2022년 4월 7일

댓글:

2022년 4월 8일

Community Treasure Hunt

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

Start Hunting!