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

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

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 8 Oct 2010
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 に用意されています。

More Answers (0)

Community Treasure Hunt

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

Start Hunting!