MATLABで双一次変換を使った離散PID制御と連続PID制御の応答を確認する

MATLAB/simulink

双一次変換を使った離散PID制御と連続PID制御の応答を確認する。双一次変換は連続時間の伝達関数に対して\(s\)を

\begin{align}
s=\frac{2(z-1)}{T(z+1)}
\end{align}

に置き換えればいい。\(T\)はサンプル時間。結果のグラフは青が連続、赤が離散。

以下コード。

clc
clear
close all

Ts=1;
s=tf("s");
z=tf("z",Ts);

delta=2*(z-1)/(Ts*(z+1));

Kp=0.5;
Ki=0.2;
Kd=0.1;

C=Kp+Ki/s+Kd*s;
dC=Kp+Ki/delta+Kd*delta;

P=1/(s+1);
dP=c2d(P,Ts,'tustin');

figure
step(C*P/(1+C*P))
hold on
step(dC*dP/(1+dC*dP))
grid on

コメント

タイトルとURLをコピーしました