MATLAB: How to find bode plot,phase magnitude plot and template in control system

control systemMATLAB

z=1:0.5:10; a=1:0.5:5; num=kron(z,ones(1,length(a))); i=1:length(a); deno=zeros(9,3); deno(i,1)=1; deno(i,2)=a(i); den=repmat(deno,length(z),1); n=numel(num); for m=1:n sys(m)=tf(num(m),den(m,:)); end

Best Answer

This works, although you will have to plot 171 figures to see each of them with any detail. (You would have to have a very large monitor to see them all as the bode function plots them, since it plots an array of (2x171) subplots in one figure.)
The Code
[mag,phs,wout] = bode(sys);
Magnitude = squeeze(mag);
Phase = squeeze(phs);
figure(1)
subplot(2,1,1)
plot(wout,20*log10(Magnitude(1,:)))
title('Magnitude (dB)')
grid
subplot(2,1,2)
plot(wout,Phase(1,:))
title('Phase (°)')
grid
The ‘template’ is a Simulink function you will have to do yourself, since you have to specify how you want it.