台形則を使用して、Simulink で離散時間積分器の独自の単純な実装を設計しようとしていました。これは私の努力の結果です (時間積分間隔として 1 を使用していると考えてください):
次に、すべてが正しく行われたかどうかを再確認するために、結果を標準の Simulink 離散時間積分器ブロック (台形則を使用するように構成) と比較しましたもちろん):
時間 1 でステップを上昇させると、すべて正常に実行されます (カスタム インテグレーター ブロックとデフォルト インテグレーター ブロックの両方が初期条件として 0 を持っています)。
ステップが時間 0 で上昇している間、2 つの積分器ブロックの応答に違いがありました。
- カスタム ブロック: @ Integral(t=0)=0.5; @積分(t=1)=1.5
- デフォルトブロック: @ Integral(t=0)=0; @t=1 積分(t=1)=1
これは、t=0 と初期条件 = 0 の間を統合するカスタム ブロックに依存していると思います (つまり、0 と 1 の間に台形規則を適用すると、0.5 になります)。
これを修正し、カスタム ブロックがゼロ時間でもデフォルトのブロックと同じ動作を示すようにする最善の方法はどれですか? 不足しているパラメーター/設定はありますか?
ありがとうございました!