similinkにお​いて、シミュレーショ​ンでsourceが思​う通り動かない

15 views (last 30 days)
saitoa
saitoa on 8 Dec 2017
Answered: saitoa on 12 Dec 2017
Simulinkにおいて、あるモデルのシミュレーションを行ったのですが、エラーがでてしまいその原因が「ブロック 'untitled7/Integrator' の時間 16.6 における状態 '1' の導関数が有限ではありません。シミュレーションを停止します。解に特異点が存在する可能性があります。そうでない場合は、(固定ステップ サイズを小さくする、または許容誤差を厳しくすることによって) ステップ サイズを減らしてみてください」と出ました。 なので、固定ステップサイズを0.000001にしたら、時間がかかりましたが出来ました。しかし、rampブロックをscopeで見てみたら、rampブロックが機能しませんでした。rampが機能しなかったのは、固定ステップサイズを小さくしたからでしょうか。

Accepted Answer

Hiroumi Mita
Hiroumi Mita on 11 Dec 2017
見た限りでは、このモデルは圧力と流量に関連するものと思われますが、もしそうなら、問題点は 流量から圧力に変換する積分にあると考えられます。 そこで、次を確認してみてください。 (1)流量から圧力に変換する式は正しいか?それは積分でいいのか?他の微分方程式が適用できないか?アキュムレータ、配管、シリンダ等 理由は、単なる積分は発散しやすく、場合によっては発散の原因になるからです。
(2) 単位系はちゃんと統一されているか? そのあたりを改善すれば、通常の可変ソルバーで動かすことは可能と思われます。

More Answers (2)

Yoko
Yoko on 11 Dec 2017
添付のモデルを 可変ステップソルバーでシミュレーションしたところ、Integrator へ入力する信号(Divide4 の掛け算側の信号)が1e304 のオーダーになっていました。この信号は、これほど大きい値が出る信号でしょうか?そうでなければ、なぜそのような信号が出ているのか、モデルを見直しする必要があるかと思います。 Ramp ブロックに関して、ステップサイズを指定の通りにし、Ramp ブロックのみ配置して固定ステップソルバで確認する限り、(0.01sec までのシミュレーションでは)時間と共に線形で信号が増えていること確認でき、機能しないという事象までは確認できませんでした。 意図通りの結果を得るには、想定しているモデルができているか、検証することが大事かと思います。ブロックの名前など、変更変更できますので、理解しやすいよう書き換えたり、ある計算のまとまりはサブシステム化して見やすくするよう、工夫すると良いかと思います。

saitoa
saitoa on 12 Dec 2017
お二方ありがとうございます。 改めてモデルの見直しをやってみます。 アドバイスありがとうございました。

Categories

Find more on 物理モデリング in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!