%% Simulation / Modélisation de systèmes linéaires % Module : Ingénierie Electronique % pour le traitement de l'Information %-------------------------------------------------------------- % TD_09 : AOP en boucle ouverte - fermée / Comparaison %-------------------------------------------------------------- % Auteur : Julien VILLEMEJANE % Date : 12/09/2021 %-------------------------------------------------------------- clear all; close all; %% Fonction de transfert d'un AOP % Fonction de transfert d'un filtre passe-bas du premier ordre % --> H(jw) = A / (1 + jw/wc) A = 1e5; % Amplification différentielle A funitaire1 = 1e6; % Bande-passante unitaire funitaire2 = 1e7; fc1 = funitaire1/A; % Fréquence de coupure en boucle ouverte fc2 = funitaire2/A; % Fréquence de coupure en boucle ouverte wc1 = 2*pi*fc1; wc2 = 2*pi*fc2; f = logspace(-1,8,101); % vecteur des pulsations entre 10^-1 et 10^7 tf_num = A; tf_den1 = 1 + 1*j * (2*pi*f)/wc1; tf_den2 = 1 + 1*j * (2*pi*f)/wc2; % Fonction de transfert H_AOP_BO_1 = tf_num ./ tf_den1; H_AOP_BO_2 = tf_num ./ tf_den2; % Diagramme de Bode figure(1); subplot(2,1,1); semilogx(f, 20*log10(abs(H_AOP_BO_1)), f, 20*log10(abs(H_AOP_BO_2))); grid on; xlabel('fréquence (Hz)'); ylabel('Gain (dB)'); legend('AOP1 boucle ouverte - 1e6','AOP2 boucle ouverte - 1e7'); subplot(2,1,2); semilogx(f, angle(H_AOP_BO_1), f, angle(H_AOP_BO_2)); grid on; xlabel('fréquence (Hz)'); ylabel('Phase (rd)'); %% Fonction de transfert d'un AOP en boucle fermée (Gain de retour = 0dB) % Type suiveur H_RETOUR = 1; H_AOP_BF_1 = H_AOP_BO_1 ./ (1 + H_AOP_BO_1.*H_RETOUR); H_AOP_BF_2 = H_AOP_BO_2 ./ (1 + H_AOP_BO_2.*H_RETOUR); % Diagramme de Bode figure(2); subplot(2,1,1); semilogx(f, 20*log10(abs(H_AOP_BF_1)),f, 20*log10(abs(H_AOP_BF_2))); grid on; xlabel('pulsation (rd/s)'); ylabel('Gain (dB)'); legend('AOP1 boucle fermée','AOP2 boucle fermée'); subplot(2,1,2); semilogx(f, angle(H_AOP_BF_1),f, angle(H_AOP_BF_2)); grid on; xlabel('pulsation (rd/s)'); ylabel('Phase (rd)'); %% Fonction de transfert d'un AOP en boucle fermée (Gain de retour = 20dB) % Type inverseur R2 = 9*1e3; R1 = 1e3; H_RETOUR_2 = R1/(R1+R2); H_ALPHA = -R2/(R1+R2); H_AOP_BF_2 = H_ALPHA .* H_AOP_BO ./ (1 + H_AOP_BO.*H_RETOUR_2); % Diagramme de Bode figure(3); subplot(2,1,1); semilogx(f, 20*log10(abs(H_AOP_BO)),f, 20*log10(abs(H_AOP_BF)),f, 20*log10(abs(H_AOP_BF_2))); grid on; xlabel('pulsation (rd/s)'); ylabel('Gain (dB)'); legend('AOP boucle ouverte','AOP suiveur','AOP inverseur'); subplot(2,1,2); semilogx(f, angle(H_AOP_BO),f, angle(H_AOP_BF),f, angle(H_AOP_BF_2)); grid on; xlabel('pulsation (rd/s)'); ylabel('Phase (rd)');