Я хотел бы отобразить график Боде повышающе-понижающего преобразователя с помощью Matlab, поэтому я получил рисунок, показанный ниже. Если мы посмотрим ближе на фазовый график, мы увидим, что он начинается с 360 °. Я хочу, чтобы график начинался с 0°, а не с 360°, чтобы мне было легче читать.
Возможным решением было бы использовать бодеплот, а затем изменить свойство PhaseMatchingValue. В качестве примера я использую :
sys = tf([1 0 0 0 1],[1 1]);
h = bodeplot(sys);
p = getoptions(h);
p.PhaseMatching = 'on';
p.PhaseMatchingFreq = 1;
p.PhaseMatchingValue = 0;
setoptions(h,p);
Это приводит к следующей диаграмме тела
Другое (не очень элегантное) решение с использованием команды bode
sys = tf([1 0 0 0 1],[1 1]);
wout = logspace(-2,2,201);
[mag,phase,wout] = bode(sys,wout);
wout = squeeze(wout);
mag = squeeze(mag);
phase = squeeze(phase);
%adjusting the phase
phase = phase - 360;
subplot(2,1,1);
% plot amplitude response
semilogx(wout,20*log10(mag));
hold on;
%mark a point at wout(101)
semilogx(wout(101),20*log10(mag(101)),'xr');
text(wout(101),20*log10(mag(101)),'\omega = 1')
%plot phase response
subplot(2,1,2);
semilogx(wout,phase);
Хуфи
изучать дизайн