close all 
clear all
figure(1);


L=1;
C=1; 
R=1;
E0=1;




for R=0.3:0.3 % on peut faire varier un paramètre du circuit, par exemple la
               %résistance

gamma=R/(2*L);           %facteur d'amortissement
omega_r=sqrt(1/(L*C));    % fréquence de résonance





f=10.^(-4:0.05:1); %plage des fréquences d'affichage de la réponse fréquentielle
omega=2*pi*f; % fréquence angulaire 
p=j*omega; % p=jw
Zin=p*L+1./(p.*C)+R; % impédance du circuit
U_C_freq=E0.*1./(p.*C)./Zin; % amplitude complexe de la tension sur le condens. 

subplot(1,2,1);  semilogx(f, (abs(U_C_freq)));  hold on % on affiche... 
grid on







t=0:0.001:30; % intervalle d'affichage de la réponse impulsionnelle

if omega_r<gamma % selon le caractère des pôles du circuit 
      la1=-R/(2*L)+sqrt((R/(2*L))^2-1/(L*C)); % poles réelles du système
      la2=-R/(2*L)-sqrt((R/(2*L))^2-1/(L*C)); % 
      A_1=E0*C*la2/(la1-la2); % constantes libres
      A_2=E0*C*la1/(la2-la1); %
      U_C_time=1/C*(A_1*exp(t*la1)+ A_2*exp(t*la2)+E0*C); %tension sur le condensateur
 else % réponse oscillatoire  
      omega0=sqrt(omega_r^2-gamma^2); %pulsation des osccillations
      phi_0=atan(-gamma/omega0); %phase initiale 
      A_0=-E0*C/cos(phi_0); % amplitude initiale
      U_C_time= 1/C*(A_0.*exp(-t*gamma).*cos(omega0.*t+phi_0)+E0.*C); %tension sur le condensateur
end  

subplot(1,2,2);  plot(t, U_C_time); hold on;
grid on

end 
pause


