\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
コメント