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

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일

0 개 추천

'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개)

카테고리

도움말 센터File Exchange에서 Simulink Function에 대해 자세히 알아보기

태그

질문:

2021년 10월 6일

댓글:

2021년 10월 7일

Community Treasure Hunt

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

Start Hunting!