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

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

采纳的回答

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

更多回答(2 个)

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

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

类别

Help CenterFile Exchange 中查找有关 物理モデリング 的更多信息

Community Treasure Hunt

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

Start Hunting!