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

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

Réponse acceptée

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

Plus de réponses (1)

Popurakun
Popurakun le 7 Avr 2022
シンタニ様
ありがとうございました。大変助かりました。実行できました。
関連して、もう一点質問があります。
Simulinkモデルをエクスターナルモードで実行することはできたのですが、
実行結果の参照エラーが起きてしまいます。
どうやらビルドして、ハードウェア上で実行完了する間に、次の計算行を実行してしまっているようです。pauseで回避していますが、Simulinkで計算実行中は、一時停止する方法はありますでしょうか?
  2 commentaires
Toshinobu Shintai
Toshinobu Shintai le 8 Avr 2022
set_paramで実行した場合は、仰る通り終わるまでpauseで待つ必要があります。終わったかどうかは、以下のコマンドで 'stopped' が返ってくれば終わったことになりますので、それによって判別できます。
get_param('model_arduino','SimulationStatus')
Popurakun
Popurakun le 8 Avr 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')の実施時間を短縮できませんでしょうか?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Simulink Function dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!