Derivative ブロックを使用して正​しくない結果が得られ​るのはなぜですか?

13 次查看(过去 30 天)
MathWorks Support Team
Simulink の Derivative ブロックを使用して PID コントローラを作成しましたが、閉ループシステムの出力が期待する結果(閉ループの伝達関数から得られた出力結果)と一致しません。一致しない理由を教えて下さい。

采纳的回答

MathWorks Support Team
Derivative ブロックは、S 領域の理想的な微分 's' と等価ではありません。純粋な微分は、現在の値を知るために未来の入力が必要となりますが、Derivativeブロックは、下記のように現在の値と過去の値から微分値を計算します。
(u[t]-u[t-dt])/dt
ここで、dt は ODE ソルバでの最後のステップ幅を表します。可変ステップソルバを使用している場合、h(s)=s の結果に近づきますが、理想的な微分演算とは異なるため閉ループ伝達関数の出力と一致しません。
この問題を回避するには、下記のような近似微分を使用します。
G(s)=s/(1+a*s)
ここで a はプラントの時定数と比べて小さい値を指定します。近似微分を使用する結果、時間領域の矛盾を解消します。
なお、近似微分を使った PID ブロックが、Simulink Extras ライブラリ の Additional Linear に用意されています。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Continuous 的更多信息

Community Treasure Hunt

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

Start Hunting!