有什么方法可以在不使用 MATLAB/GNU Octave 函数的情况下制作波特图bode()?
例如,这是我正在处理的一个函数:
有什么方法可以在不使用 MATLAB/GNU Octave 函数的情况下制作波特图bode()?
例如,这是我正在处理的一个函数:
听起来您想省略使用 MATLAB 工具包/Octave 包。当然,您可以从头开始构建波特图:
% transfert function as anonymous function
h = @(s)(1)./(2*s.^2+3*s+4);
% frequency vector
w = 2*pi*logspace(-2,2,1000);
% magnitude & phase estimation
mag = abs(h(1j*w));
magDB = 20*log10(mag);
phaseDeg = rad2deg(angle(h(1j*w)));
% plotting
clf;
subplot(211);
semilogx(w/2/pi,magDB);
xlabel('frequency [Hz]');
ylabel('magniude [dB]');
title('Bode diagram');
grid on;
subplot(212);
semilogx(w/2/pi,phaseDeg);
xlabel('frequency [Hz]');
ylabel('phase angle [°]');
title('Phase diagram');
grid on;
使用的等效代码bode()是:
try
pkg load control % required by octave
end
s = tf('s');
h = 1/(2*s^2+3*s+4);
bode(h);