2011-12-21 22 views
1

いくつかのSimulinkパラメータをプログラムで調整する、つまり外部入力と初期状態を指定したいと思います。 Data Import/ExportのMathworksヘルプドキュメントは、視覚的にもプログラム的にもそうする方法を示しています。外部入力の場合は、LoadExternalInputs'on'と指定する必要があります。そのリンクに記載されているように、ExternalInputから[myTimeVar, myInputVar]に既定の外部入力をオーバーライドしたいと思います。私は場合は 'ExternalInput'Simulink - 外部入力をプログラムで指定する

block_diagramの無効設定 'mySim' パラメータのために:コマンド

sim('mySim', 'LoadExternalInputs', 'on', 'ExternalInput', [myTimeVar, myInputVar]); 

を実行しようと

は、次のエラーメッセージを生成しますsim()コールで外部入力を指定する予定はありません。どこでそれを行うのですか?私は自分の入力と状態をどのように指定するのか、とても混乱しています。 MATLABで

答えて

3

外部入力パラメータは、このしようとすると、文字列でなければなりません:@MikeT、simコマンドで指摘したように

sim('mySim', 'LoadExternalInputs', 'on', 'ExternalInput', '[myTimeVar, myInputVar]'); 
+0

ありがとう!'ExternalInput'のデフォルトは' '[t、u]'ではなく '[t、u]'になっているので、ドキュメントは矛盾しています。 –

0

help simは、あなたが使用しているものとは異なるコマンドフォーマットを私に示しています

[t,x,y] = sim(model,timespan,options,ut); 

私は多分これはあなたが望むものであると思いますか?

sim('mySim', myTimeSpan, [], [myTimeVar, myInputVar]); 

myTimeSpanが終わっシミュレートするための期間である場合)

+0

これは廃止予定の呼び出しであり、初期状態を指定することもできません。私はそれを調べましたが、新しい構文ほど堅牢ではありません。 –

+0

ああ、私の謝罪、私は古いバージョンを使用していたし、新しい構文について知らなかった –

2

をパラメータ名と値の両方で動作するため、パラメータ名と値の両方が文字列でなければなりません。コマンドは次のようになります。

sim('mySim','LoadExternalInput', 'on', 'ExternalInput', [myTimeVar, myInputVar]); 

私はパラメータ'LoadExternalInput'が必要ではないが、いずれにしても、それは'LoadExternalInput'いうより'LoadExternalInputs'であると考えています。

備考#1:

simを使用する場合simがMATLAB内で実行される場合は、1つのエラーが発生する可能性がありますので、Simulinkは自動的に、モデルのワークスペースを切り替え、私はget_param('modelName','ObjectParameters')

いくつかの重要な発言とそれをチェックします関数またはunitTest。一対'ExternalInput','Inputs'

備考#2

'Inputs'は、すべての列ベクトル入力、時間ベクトルから始まるの列方向連結含むべきである:'[myTimeVar, myInputVar1, myInputVar2, ..., myInputVarN]'、それらのすべての列ベクトル。

+0

パラメータ '' LoadExternalInput'' **が必要です**。私はmathworksページでこのパラメータを探していましたが、ここで見つけました。 – Reza

関連する問題