sim関数を用いたm​atlabからの変数​の渡し方が分からない​。

11 次查看(过去 30 天)
稔彦 廣瀬
稔彦 廣瀬 2021-10-6
sim関数によって、matlabから変数を渡そうとしているのですが、下記のコードに対して
% aは数値行列
sim('APF_LQ_LIN_2008highspeed','gene',a);
以下のようなエラーが発生します。
block_diagram does not have a parameter named 'gene'
以下のようにBlock Parametersを用いてPath_Planというmatlabブロックにaの値を渡したいのですが、公式ドキュメントを読んでも適切な方法が分かりません。適切な方法を教えていただければ幸いです。

采纳的回答

Hiroshi Miyagawa
Hiroshi Miyagawa 2021-10-7
'gene' を設定しているブロックはConstantブロックでしょうか?
であるならば、以下で動くと思います。
gene = a;
sim('APF_LQ_LIN_2008highspeed')
1行目によって、geneという変数がWorkspace上に生成されますので、simコマンド実行のさいに、SimulinkがgeneをSimulinkに読み込みます。
Constantブロックに設定している値を変更するには以下のようにします。
set_param('APF_LQ_LIN_2008highspeed/Constant','Value',num2str(a)) % aの値を直接書き込む
または、
set_param('APF_LQ_LIN_2008highspeed/Constant','Value','a')) % aという文字列を書き込む
その後、simコマンドでモデルを実行します。
以上、回答になりましたでしょうか?
  1 个评论
稔彦 廣瀬
稔彦 廣瀬 2021-10-7
ご指摘の通りに動かした結果、意図通りに動作しました。ありがとうございます。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 ブロック ライブラリ 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!