離散システムのボード線図を書く

\begin{align}
G=\frac{1}{s+1}
\end{align}

を離散化する。c2dで離散化すると伝達関数は

\begin{align}
G=\frac{0.00995}{z-0.99}
\end{align}

となる。離散システムのボード線図を書くには\(z=e^{j \omega T}\)を代入すればいい。

ソース

j=sqrt(-1);
N=2;
omega=10^(-N):0.001:10^(N);
T=0.01;

s=tf('s');
 
G=1/(s+1);
 

bodegain1=zeros(size(omega));
bodeangle1=zeros(size(omega));

bodegain2=zeros(size(omega));
bodeangle2=zeros(size(omega));
 
 
for i=1:1:length(omega) 
    bodegain1(1,i)=20*log10(norm(1/(j*omega(1,i)+1))); 
    bodeangle1(1,i)=rad2deg(angle(1/(j*omega(1,i)+1)));
end
 
figure;
subplot(2,1,1)
semilogx(omega,bodegain1)
xlim([10^-2,10^2])
grid on
subplot(2,1,2)
semilogx(omega,bodeangle1)
ylim([-90 0])
xlim([10^-2,10^2])
yticks([-90 -45 0])
grid on

G2=c2d(G,T,'matched');

for i=1:1:length(omega) 
    bodegain2(1,i)=20*log10(norm(0.00995/(exp(j*omega(1,i)*T)-0.99))); 
    bodeangle2(1,i)=rad2deg(angle(0.00995/(exp(j*omega(1,i)*T)-0.99)));
end
figure
bode(G2)
grid on
xlim([10^-2,10^2])

figure;
subplot(2,1,1)
semilogx(omega,bodegain2)
grid on
subplot(2,1,2)
semilogx(omega,bodeangle2)
ylim([-135 0])
yticks([-135 -90 -45 0])
xlim([10^-2,10^2])

grid on

コメント

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