% Exemplo 16.19 - Compensador atraso ou lag: Usado em cascata com uma
% planta para reduzir a fase em uma faixa de frequência
% H(s)=0.1(s+10)/(s+1)
clear all
close all
clc

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Plotando o gráfico do módulo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
w = logspace(-2, 3);
for i = 1:length(w)
    MdB(i) = mag2db(sqrt(w(i)^2+(10)^2)/sqrt(w(i)^2+1))+mag2db(0.1); 
end
figure
semilogx(w,MdB,'k','LineWidth',2);
axis([10^(-1) 10^3 -30 10])
grid on
hold on

% Plotando assíntotas considerando H=H1*H2

% H1(wc=1):
w = [10^(-1) 10^0]; 
M = [0 0];
plot(w,M,'b:','LineWidth',2);

w = [10^(0) 10^3]; 
M = [-20*log10(w(1)) -20*log10(w(2))];
plot(w,M,'b:','LineWidth',2);

% H2(wc=10):
w = [10^(-1) 10^1]; 
M = [0 0];         
plot(w,M,'b:','LineWidth',2);

w = [10^(1) 10^3]; 
M = [-20+20*log10(w(1)) -20+20*log10(w(2))];         
plot(w,M,'b:','LineWidth',2);

% H1H2:
w = [10^(-1) 10^0]; 
M = [0 0];         
plot(w,M,'b','LineWidth',2);

w = [10^0 10^1];   
M = [-20*log10(w(1)) -20*log10(w(2))];
plot(w,M,'b','LineWidth',2);

w = [10^1 10^3];   
M = [-20*log10(w(1))-20+20*log10(w(1)) -20*log10(w(2))-20+20*log10(w(2))];
plot(w,M,'b','LineWidth',2);

title('Diagrama assintótico de módulo')
xlabel('\omega')
ylabel('M_{dB}(\omega)')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Plotando o gráfico da fase
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

w = logspace(-2, 3);
for i = 1:length(w)
    Phi(i) = (atan(w(i)/10)-atan(w(i)))*180/pi; 
end
figure
semilogx(w,Phi,'k','LineWidth',2);
axis([10^(-2) 10^3 -100 100])
grid on
hold on

% Plotando assíntotas considerando H=H1*H2

% H1 (wc=1):
wb = [10^(-2) 10^(-1)]; % Baixa frequência até w=0.1*wc=10^-1
PAb = [0 0];         % Assíntota de fase para baixa frequência
plot(wb,PAb,'b:','LineWidth',2);

w = [10^(-1) 10^1];      % Reta que liga w=0.1*wc a 10*wc
PA = [0 -90];           % Assíntota da fase para frequencias próximas a wc
plot(w,PA,'b:','LineWidth',2);

wa = [10^1 10^3];   % Alta frequência a partir de w=10*wc
PAa = [-90 -90];    % Assíntota de fase para alta frequência 
plot(wa,PAa,'b:','LineWidth',2);

% H2 (wc=10):
wb = [10^(-2) 10^(0)]; % Baixa frequência até w=0.1*wc=10^-1
PAb = [0 0];         % Assíntota de fase para baixa frequência
plot(wb,PAb,'b:','LineWidth',2);

w = [10^(0) 10^2];      % Reta que liga w=0.1*wc a 10*wc
PA = [0 90];           % Assíntota da fase para frequencias próximas a wc
plot(w,PA,'b:','LineWidth',2);

wa = [10^2 10^3];   % Alta frequência a partir de w=10*wc
PAa = [90 90];    % Assíntota de fase para alta frequência 
plot(wa,PAa,'b:','LineWidth',2);

% H1H2:
w = [10^(-2) 10^(-1)]; 
P = [0 0];         
plot(w,P,'b','LineWidth',2);

w = [10^(-1) 10^0];   
P = [0 -45];
plot(w,P,'b','LineWidth',2);

w = [10^0 10^1];   
P = [-45 -45];     
plot(w,P,'b','LineWidth',2);

w = [10^1 10^2];   
P = [-45 0];     
plot(w,P,'b','LineWidth',2);

w = [10^2 10^3];   
P = [0 0];     
plot(w,P,'b','LineWidth',2);

title('Diagrama assintótico de fase')
xlabel('\omega')
ylabel('\Phi(\omega)')
