3

私は以下をプロットしています

Cu4 = tf([1 2], [1 2 6]);

[magCu4 phaseCu4 wout] = bode(Cu4,logspace(-2,7,300));
magCu4 = squeeze(magCu4);
phaseCu4 = squeeze(phaseCu4);
semilogx(wout,20*log10(magCu4)),grid;
hold on
bode(Cu4,'r')

semilogxプロットは「bode」と同じプロットを返すと思います。ただし、そうではないようです。ここで何が悪いのか誰か知っていますか?

4

1 に答える 1

1

違いは、bode の 2 回目の呼び出しで周波数ベクトルを指定しないため、MATLAB が既定のベクトルを選択することです (コードでは長さが 46 でした)。

代わりに、次のことを試すことができます。

bode(Cu4,'r',logspace(-2,7,300))

次のコードで作成されたプロットを比較してください

[magCu4 phaseCu4 wout] = bode(Cu4,logspace(-2,7,300));
magCu4 = squeeze(magCu4);

figure(1);
semilogx(wout,20*log10(magCu4))
hold on; 
bode(Cu4,'r') 
hold off;

figure(2);
semilogx(wout,20*log10(magCu4))
hold on; 
bode(Cu4,'r',logspace(-2,7,300)) 
hold off;
于 2012-09-01T02:30:26.277 に答える