MATLAB: Asymptotic magnitude bode plot for PI^alpha controller

bode plot

how do i add the first three plot to get the forth plot
individual plot
a) for fractional zero
close all;hold off;alpha=0.8;Wcr=3.948;ki=3;w1=logspace(-2,log10(Wcr),1000);w2=logspace(log10(Wcr),2,1000);
Mag1= (20*log10(abs(ki)))*ones(1,numel(w1));Mag2=@(w2) 20*alpha*log10(w2);semilogx(w1,Mag1);hold on;
semilogx(w2,Mag2(w2));grid on;xlabel('Frequency');ylabel('Magnitude dB');
b)fractional pole at origin
clear all;hold off;alpha=0.8;Wcr=1;w1=logspace(-2,log10(Wcr),1000);w2=logspace(log10(Wcr),2,1000); Mag1= 0;Mag2=@(w2) -(20*alpha*log10(w2));
semilogx(w1,Mag1);hold on;semilogx(w2,Mag2(w2));grid on;xlabel('Frequency(rad/sec)');ylabel('Magnitude dB');

Best Answer

Try this
Kp = 1;
Ki = 2;
alpha = 1.5;
w_cr = abs(Ki)^(1/alpha);
w = logspace(-1, 3, 1000);
mask = w < w_cr;
term1 = 20*log(Kp)*ones(size(w));
term2 = mask.*(20*log(Ki)) + (~mask).*(20*alpha*log(w));
term3 = -20*alpha*log(w);
combined = term1 + term2 + term3;
subplot(4,1,1);
semilogx(w, term1)
subplot(4,1,2);
semilogx(w, term2)
subplot(4,1,3);
semilogx(w, term3)
subplot(4,1,4);
semilogx(w, combined)