similinkにおいて、シミュレーションでsourceが思う通り動かない
15 views (last 30 days)
Show older comments
Simulinkにおいて、あるモデルのシミュレーションを行ったのですが、エラーがでてしまいその原因が「ブロック 'untitled7/Integrator' の時間 16.6 における状態 '1' の導関数が有限ではありません。シミュレーションを停止します。解に特異点が存在する可能性があります。そうでない場合は、(固定ステップ サイズを小さくする、または許容誤差を厳しくすることによって) ステップ サイズを減らしてみてください」と出ました。 なので、固定ステップサイズを0.000001にしたら、時間がかかりましたが出来ました。しかし、rampブロックをscopeで見てみたら、rampブロックが機能しませんでした。rampが機能しなかったのは、固定ステップサイズを小さくしたからでしょうか。
0 Comments
Accepted Answer
Hiroumi Mita
on 11 Dec 2017
見た限りでは、このモデルは圧力と流量に関連するものと思われますが、もしそうなら、問題点は 流量から圧力に変換する積分にあると考えられます。 そこで、次を確認してみてください。 (1)流量から圧力に変換する式は正しいか?それは積分でいいのか?他の微分方程式が適用できないか?アキュムレータ、配管、シリンダ等 理由は、単なる積分は発散しやすく、場合によっては発散の原因になるからです。
(2) 単位系はちゃんと統一されているか? そのあたりを改善すれば、通常の可変ソルバーで動かすことは可能と思われます。
0 Comments
More Answers (2)
Yoko
on 11 Dec 2017
添付のモデルを 可変ステップソルバーでシミュレーションしたところ、Integrator へ入力する信号(Divide4 の掛け算側の信号)が1e304 のオーダーになっていました。この信号は、これほど大きい値が出る信号でしょうか?そうでなければ、なぜそのような信号が出ているのか、モデルを見直しする必要があるかと思います。 Ramp ブロックに関して、ステップサイズを指定の通りにし、Ramp ブロックのみ配置して固定ステップソルバで確認する限り、(0.01sec までのシミュレーションでは)時間と共に線形で信号が増えていること確認でき、機能しないという事象までは確認できませんでした。 意図通りの結果を得るには、想定しているモデルができているか、検証することが大事かと思います。ブロックの名前など、変更変更できますので、理解しやすいよう書き換えたり、ある計算のまとまりはサブシステム化して見やすくするよう、工夫すると良いかと思います。
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!