Simulink で特定の時間ステップにおいて、Timing Engine のワーニングが出るのはなぜですか?
5 ビュー (過去 30 日間)
古いコメントを表示
モデルを3000秒間実行しています。1571.55 秒の時に Simulink 6.4 (R2006a) から下記のワーニングが出力されます。
E3dof' variable sample time for tid 5 has a nextT of 1571.5500000000002 which will cause the solver to
take a step smaller than the minimum step size of 5.5830895462349872e-012 at time 1571.55.
Warning: Timing engine warning: In the model 'DSE3dof' variable sample time for tid 5 has a nextT of
1571.6000000000001 which will cause the solver to take a step smaller than the minimum step size of
5.5834185166791293e-012 at time 1571.5999999999999.
Warning: Timing engine warning: In the model 'DSE3dof' variable sample time for tid 5 has a nextT of
1571.6500000000001 which will cause the solver to take a step smaller than the minimum step size of
5.5835961571778936e-012 at time 1571.6499999999999.
Warning: Timing engine warning: In the model 'DSE3dof' variable sample time for tid 5 has a nextT of
1571.7 which will cause the solver to take a step smaller than the minimum step size of
5.5837737976766596e-012 at time 1571.6999999999998.
[snip]
採用された回答
MathWorks Support Team
2012 年 5 月 15 日
このエラーは、可変サンプル時間のブロックがモデル内にある場合に生じる可能性があります。
Simulink モデル内に、モデル内の固定ステップのブロックと同じレートで一定にアップデートされる可変サンプル時間のブロックが含まれるときに生じます。
たとえば、パルスジェネレータがサンプルベースではなく時間ベースで実行される場合などです。
パルスジェネレータの時間ベースを選択すると、Simulink はシミュレーションの効率を上げるために、ブロックの出力を出力が実際に変化するときのみ計算します。
結果として、このパルスジェネレータブロックは、可変サンプル時間のブロックとなります。
シミュレーション時間が長くなると、これらの可変サンプル時が、ソルバによって実行されて計算される時間ステップと、可変サンプル時間のブロックによって計算される時間ステップとの同期がとれなくなり、このワーニングにあるようなタイプの最小ステップ違反が生じます。
可変サンプル時間のブロックは、おおよそは、Simulink のソルバーと同じレートで更新されます。しかし、ブロックのメソッドと Simulink のメソッドのステップサイズにわずかな差が生じる場合、ソルバーが最小ステップサイズよりも小さなステップサイズを取る現象が生じます。
この現象がモデル内に生じるかどうかは、次のコマンドを実行することで確認できます。
sldebug(bdroot)
stimes
この結果が、[-2, 0] のサンプル時間となる場合、可変サンプル時間であることを確認できます。
回避策として、可変サンプル時間のブロックを、他の固定サンプルレートのブロックと同じ時間ステップで更新されるように、固定ステップにします。
たとえば、ブロックのパルスタイプのパラメータをサンプルベースに変更します。周期 T とパルス幅 50 % のパルスジェネレータに対しては、ブロックのサンプル時間を、ステップサイズを T/2 、周期 2 サンプル、パルス幅 1 サンプルにします。
0 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!