における状態 '1' の導関数が有限ではありません

113 views (last 30 days)
Ken Inoue
Ken Inoue on 7 Nov 2017
Commented: Ken Inoue on 15 Nov 2017
Simulink, Simiscapeの以下の回路でシミュレーションをしたところ,このようなのメッセージがでました.
「ブロック 'STM32F334DiscoveryBuckBoost_500kHz_cancle2_softstart/Transfer Fcn3' の時間 0.0069162267731414408 における状態 '1' の導関数が有限ではありません。シミュレーションを停止します。解に特異点が存在する可能性があります。そうでない場合は、(固定ステップ サイズを小さくする、または許容誤差を厳しくすることによって) ステップ サイズを減らしてみてください」
デフォルトが可変ステップだったため,固定ステップにして,行ってみたところ,同じメッセージがでました.メッセージにあるようにさらに固定ステップを小さくすると,(例えば,0.00000000000001)シミュレーションがかなり遅く,途中でシミュレーションを止めました.何か良い方法はないでしょうか?よろしくお願いします.
シミュレーション回路,シミュレーションに必要なmファイルを以下のURLからダウンロードできます.
https://www.dropbox.com/sh/u2xglv6hp1dy6kg/AACptB-655a7NtfEWHYRBQLda?dl=0

Accepted Answer

Hiroumi Mita
Hiroumi Mita on 9 Nov 2017
問題箇所のステップ応答を確認したところ 数値が10^303のオーダーになることがわかりました。 このため、微分係数が計算可能な範囲を超え無限大になることで 該当のエラーが出ると考えられます。 この箇所は連続系のコントローラに相当すると考えられますが、 この正誤を再確認してください。 特に、以下の点を見てもらえればと思います。 (1)パラメータの工学単位等に間違いはありませんか? (2)式の係数に間違いはありませんか? (3)伝達関数*積分器で大丈夫ですか? 以上よろしくお願いいたします。
  2 Comments
Ken Inoue
Ken Inoue on 15 Nov 2017
試行錯誤した結果,Transfer Fcn2の分母を因数分解したときに出てくる1/(1-s/omr)が原因だということが分かりました.これは右半平面の極です.ありがとうございました.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!