MATLAB Answers

simulink Corderで作ったーコードの中身を都度変えたい

13 views (last 30 days)
SimulinkCoderでcコード化して以下のHPの流れでexe化にしました。
exeも正常に動いたのですが、simulinkモデルではFrom WorkspaceでMATLAB変数からデータを読み取っています。
cコード化するとその時の変数内容が表記されてしまいます。
任意で毎回値を変えたい時はどのようにすればよいのでしょうか。
・モデルの入力は変数によって毎回変わる。
・cコードにすると(exe化)コード化にした時の変数の値が入り値を変えられない。
宜しくお願いします。

  0 Comments

Sign in to comment.

Accepted Answer

Toshinobu Shintai
Toshinobu Shintai on 25 Sep 2019
Inportブロックを用いることで外部からの入力が行えるようになります。
サンプルモデルを添付しましたのでご確認ください。
今回の場合は、シミュレーション確認用のモデル「simulation_model」と、コード生成対象のモデル「controller_model」に分けています。「simulation_model」からモデル参照で「controller_model」を呼んでいます。
From workspaceは「simulation_model」の方で使っています。
生成されたコードでは、「controller_model_U.signal」に入力したい値を代入すればよいです。

  8 Comments

Show 5 older comments
Toshinobu Shintai
Toshinobu Shintai on 25 Sep 2019
分かりました。
基本的には、Simulinkの無い環境でモデルを実行させるにはコード生成で外部環境に出すしかありません。
例えば上記のVisual Studioで実行環境を構築し、そこにSimulinkモデルの生成コードを持ってくれば、qrqr様のやりたいことは実現可能と思われます。
これを行うのに向いているユースケースとしては、以下の例が挙げられます。
  • 配布数がそれなりに見込めて省コストに貢献する
  • 配布先(取引先/関連会社等)にMATLAB/Simulinkをインストールできない
  • MATLAB/Simulink未対応のOSやデバイス上でモデルロジックを動かしたい
  • エンドユーザはモデルの中身を知る必要は無い
  • モデル構造は変更せず、パラメータのみを変更して複数回実行
  • 開発者にライブラリ呼び出しやVBA等のプログラミング知識がある
qrqr
qrqr on 25 Sep 2019
ありがとうございます。
例えば、
mファイルでexeを実行させて都度MATLAB変数を読みにいくことは可能ですか?
simulinkモデルをMATLABだけで実行するイメージです。
Toshinobu Shintai
Toshinobu Shintai on 25 Sep 2019
その点につきまして、前のコメントにて出来ないという意味の回答を致しました。分かりづらくて申し訳ありませんでした。
MathWorksスタッフとしましては、なるべくライセンス購入を検討していただきたく思っております。

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!