📄 bodepl.m
字号:
%
% BODEPL is the M-file which generate the required Bode
% diagram for the given system over the frequency range
% of w_range.
% Author: Ole Barup Sorensen, Rapid Data Ltd
% Copyright (c) 1989-94 by Rapid Data Ltd
% Revision 10:36 07/02/94
okflag=figflag(tit1,0);
if okflag==0
Fig7=figure('Numbertitle','off','Name',tit1,'Menubar','none',...
'Units','Normal','Position',[160/Scx 60/Scy 440/Scx 350/Scy]);
set(0,'currentfig',Fig7);
% design menu
pt_menu
uimenu(Han_fil,'Label','Close','Sep','on','Callback',...
'close(Fig7);clear Fig7');
end
w_range=logspace(w_start,w_end,pt);
config;
delete(gca);
set([gca],'color',[1 1 1])
if t_delay == 0
[mmm,ddd]=bode(num,den,w_range);
else
if cloop == 1
n0 = size(H_den);
if n0(2) == 1,
cmpc = num(1)/den(1)*ones(size(w_range'));
else
[mmm,ddd] = nyquist(H_num,H_den,w_range);
cmpc = mmm + sqrt(-1) * ddd;
end
end
[mmm,ddd] = timdly(cloop,num,den,w_range,t_delay,cmpc);
end
if id > 9
if t_delay == 0
[mmmx,dddx] = bode(numx,denx,w_range);
else
[mmmx,dddx] = timdly(cloop,numx,denx,w_range,t_delay,cmpc);
end
end
mmm = 20 * log10(mmm); mmm0 = mmm;
if id > 9
mmmx = 20*log10(mmmx);
mmm0 = [mmm0 mmmx]; ddd = [ddd dddx]; clear dddx
end
if ipp ~= 1,
md1 = asymp(num,den,mmm,w_range);
mmm0 = [mmm0 md1']; clear md1
if id > 9
md2 = asymp(numx,denx,mmmx,w_range);
mmm0 = [mmm0 md2']; clear md2 mmmx
end
end
subplot(1,1,1);
if choice == 1,
subplot(2,1,1);
end
if choice <=2;
semilogx(w_range,mmm0); grid
xlabel('Frequency')
ylabel('Magnitude (dB)')
end;
if ipp == 1
if id <= 9
title('Exact Bode Diagram')
else
title(' Exact Bode Diagram - Yellow: Compensated')
end
elseif ipp == 2
title('Exact and Asymptotic Bode Diagrams')
end
if choice == 1
subplot(2,1,2)
end
if ((choice ==1)|(choice==3)),
semilogx(w_range,ddd)
grid
ylabel('Phase')
xlabel('Frequency')
end
if choice == 2
if id <= 9
title('Exact Bode Diagram')
else
title(' Exact Bode Diagram - Yellow: Compensated')
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -