4

シミュレーション モデルをブロックとして Simulink に統合しようとしています。Derivatives、Outputs などの関数を含む m ファイルをロードするカスタム連続ブロックがあります。

私の質問は、現在どのソルバーがどのパラメーターで使用されているかを調べる方法はありますか? 私たちのモデルは可変時間ソルバーをサポートできないため、警告を発したいと思います。同様に、モデルは初期化のために一定のステップ時間を必要とします。

前もって感謝します。

4

2 に答える 2

3

を使用して現在のソルバー名を取得できます

get_param('modelName', 'SolverName');

その他の一般的なソルバー パラメータのいくつかは、次のとおりです。

AbsTol
FixedStep
InitialStep
ZcThreshold
ExtrapolationOrder
MaxStep
MinStep
RelTol
SolverMode

任意のテキスト エディターで.mdlファイルを開き、それを掘り下げることで、照会したい他のパラメーターを見つけることができます。

于 2012-08-08T16:14:30.010 に答える
1

ユースケースを正しく理解している場合、ブロックを含む最上位の simulink システムのソルバー (およびその他のソルバー パラメーター) のタイプを決定しようとしています。

私はあなたが望むものを次のように与えるべきだと思います:

get_param(bdroot, 'SolverType');  % //Returns 'Variable-step' or 'Fixed-step'
get_param(bdroot, 'FixedStep');   % //Returns the fixed step size

一般性/再利用性のために、これは(このシステムの名前を明示的に指定するのではなく) bdrootを使用して最上位システムを識別することに注意してください。

取得/設定できる他のモデル パラメータについて詳しく知りたい場合は、このドキュメントを参照してください。

さらに、あなたのモデルが可変ステップ ソルバーをサポートしていない理由を知りたいです。

于 2012-08-14T00:45:24.913 に答える