このエラーは、可変サンプル時間のブロックがモデル内にある場合に生じる可能性があります。
Simulink モデル内に、モデル内の固定ステップのブロックと同じレートで一定にアップデートされる可変サンプル時間のブロックが含まれるときに生じます。
たとえば、パルスジェネレータがサンプルベースではなく時間ベースで実行される場合などです。
パルスジェネレータの時間ベースを選択すると、Simulink はシミュレーションの効率を上げるために、ブロックの出力を出力が実際に変化するときのみ計算します。
結果として、このパルスジェネレータブロックは、可変サンプル時間のブロックとなります。
シミュレーション時間が長くなると、これらの可変サンプル時が、ソルバによって実行されて計算される時間ステップと、可変サンプル時間のブロックによって計算される時間ステップとの同期がとれなくなり、このワーニングにあるようなタイプの最小ステップ違反が生じます。
可変サンプル時間のブロックは、おおよそは、Simulink のソルバーと同じレートで更新されます。しかし、ブロックのメソッドと Simulink のメソッドのステップサイズにわずかな差が生じる場合、ソルバーが最小ステップサイズよりも小さなステップサイズを取る現象が生じます。
この現象がモデル内に生じるかどうかは、次のコマンドを実行することで確認できます。
sldebug(bdroot)
stimes
この結果が、[-2, 0] のサンプル時間となる場合、可変サンプル時間であることを確認できます。
回避策として、可変サンプル時間のブロックを、他の固定サンプルレートのブロックと同じ時間ステップで更新されるように、固定ステップにします。
たとえば、ブロックのパルスタイプのパラメータをサンプルベースに変更します。周期 T とパルス幅 50 % のパルスジェネレータに対しては、ブロックのサンプル時間を、ステップサイズを T/2 、周期 2 サンプル、パルス幅 1 サンプルにします。