1

6 つの微分ブロック (du/dt) を使用する SimMechanics のプログラムがあります。10 秒のシミュレーションを実行するには、約 24 時間かかります。Simulink 派生ブロックの計算時間を短縮する方法はありますか?

4

2 に答える 2

1

統合時間ステップが何であるかは言いません。ミリ秒単位で、10 秒の合計過渡時間をシミュレートしている場合、それは 10,000 時間ステップを意味します。

タイム ステップの安定限界は、シミュレートする動的システムの特性によって決まります。

また、使用している統合スキームの影響も受けます。陽的積分は、時間ステップが大きくなると安定性の問題が生じることがよく知られているため、積分にオイラー法を使用している場合は、小さな時間ステップを使用する必要があります。

おそらく、積分スキームを陰解法、誤り訂正付きの 5 次ルンゲ クッタ、または Burlich-Storer に切り替えることができます。詳細については、ドキュメントを参照してください。

対象のシステムの物理学、モデルのサイズ、またはシミュレーションの選択について有用な情報を提供していないため、これはすべて私の知識に基づいた推測です.

于 2009-10-03T22:06:20.503 に答える
1

Runge-Kutta 法 (Matlab 方言では ODE45 または ODE23 と呼ばれる) は、可変タイム スライス設定で最高のパフォーマンスが得られるため、機械的な問題に対して常に役立つとは限りません。固定時間設定に移動し、許容できるエラーの順序を評価してソルバーを選択します。詳細については、両方の Matlab ドキュメント (およびいくつかの数値解析テキストも :-) を参照してください。

また、問題を解決するために「堅固な」技術が必要かどうかも検討してください。巨大な定数項は、適切に処理しないとソルバーが不安定になる可能性があります。

于 2009-10-03T22:13:22.517 に答える