MALTABを使ってボード線図を書く

MATLAB/simulink

MATLABでボード線図を描くとき

bode(sys)

とすれば即座に得られるが、今回は別の方法で描画する。

ボード線図はゲイン線図と位相線図からなり、その定義は

\begin{align}
gain &: 20 \log_{10} |G(j\omega)| \\
angle &: \angle G(j \omega)
\end{align}

である。

結果

コード

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

s=tf('s');

G=1/(s+1);

figure;
bode(G)

bodegain=zeros(size(omega));
bodeangle=zeros(size(omega));


for i=1:1:length(omega) 
    bodegain(1,i)=20*log10(norm(1/(j*omega(1,i)+1))); 
    bodeangle(1,i)=rad2deg(angle(1/(j*omega(1,i)+1)));
end

figure;
subplot(2,1,1)
semilogx(omega,bodegain)
grid on
subplot(2,1,2)
semilogx(omega,bodeangle)
ylim([-90 0])
yticks([-90 -45 0])
grid on

コメント

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