%% Simulation / Asservissement d'un système % Module : Ingénierie Electronique % pour le Traitement de l'Information %-------------------------------------------------------------- % TD_11 : Asservissement / Comparaison % Système d'asservissement d'un faisceau LASER %-------------------------------------------------------------- % Auteur : Julien VILLEMEJANE % Date : 12/12/2020 %-------------------------------------------------------------- clear all; close all; %% Système scanner asservissement wn=2*pi*55; xi=0.8; G0=40; Kcapt=400/G0; Te=1e-4; %% Système Scanner % En BO num = [G0]; den = [(1/wn^2 ) (2*xi/wn ) 1]; sys_bo = tf(num, den); figure; subplot(2,1,1); bode(sys_bo); grid on; subplot(2,1,2); step(sys_bo); grid on; % En BF sys_bf = feedback(sys_bo, Kcapt); figure; subplot(2,1,1); bode(sys_bf); grid on; subplot(2,1,2); step(sys_bf); grid on; %% Système corrigé % Avec correcteur P Kp1 = 10; sys_bf_P1 = feedback(Kp1*sys_bo, Kcapt); Kp2 = 0.1i; sys_bf_P2 = feedback(Kp2*sys_bo, Kcapt); figure; title('Comparaison systeme asservi / K = 1, K = 10 et K = 0.1') bode(sys_bf); grid on; hold on; bode(sys_bf_P1); hold on; bode(sys_bf_P2); legend('Boucle fermée','Boucle fermée K = 10','Boucle fermée K = 0.1'); figure; title('Comparaison systeme asservi / K = 1 et K = 10') subplot(3,1,1); step(sys_bf); grid on; legend('K = 1'); subplot(3,1,2); step(sys_bf_P1); grid on; legend('K = 10'); subplot(3,1,3); step(sys_bf_P2); grid on; legend('K = 0.1'); %% Avec correcteur PI 1 / a peu pres bien choisi Kp11 = 0.001; taui1 = 1/1000; sys_I1 = tf([1],[taui1 0]) sys_PI1 = Kp11*(1+sys_I1) sys_bo_PI1 = sys_PI1 * sys_bo; sys_bf_PI1 = feedback(sys_bo_PI1, Kcapt); figure; bode(sys_bf); hold on; bode(sys_bf_P1); hold on; bode(sys_bf_PI1); grid on; legend('Boucle fermée','Boucle fermée P','Boucle fermée PI'); figure; subplot(3,1,1); step(sys_bf); grid on; legend('BF'); subplot(3,1,2); step(sys_bf_P1); grid on; legend('BF P - G = 1/1000'); subplot(3,1,3); step(sys_bf_PI1); grid on; legend('BF PI - taui = 1/1000'); %% Avec correcteur PI 2 / Instable Kp22 = 0.01; taui2 = 1/1000; sys_I2 = tf([1],[taui2 0]) sys_PI2 = Kp22*(1+sys_I2) sys_bo_PI2 = sys_PI2 * sys_bo; sys_bf_PI2 = feedback(sys_bo_PI2, Kcapt); figure; bode(sys_bf); hold on; bode(sys_bf_P1); hold on; bode(sys_bf_PI2); grid on; legend('Boucle fermée','Boucle fermée P','Boucle fermée PI'); figure; subplot(3,1,1); step(sys_bf); grid on; legend('BF'); subplot(3,1,2); step(sys_bf_P1); grid on; legend('BF P - G = 1/100'); subplot(3,1,3); step(sys_bf_PI2); grid on; legend('BF PI - taui = 1/1000'); %% Comparaison figure; bode(sys_bf); hold on; bode(sys_bf_P1); hold on; bode(sys_bf_PI1); hold on; bode(sys_bf_PI2); grid on; legend('Boucle fermée','Boucle fermée P','Boucle fermée PI stable','Boucle fermée PI instable'); figure; subplot(3,1,1); step(sys_bf); grid on; legend('BF'); subplot(3,1,2); step(sys_bf_P1); grid on; legend('BF P - G = 1/1000'); subplot(3,1,3); step(sys_bf_PI1); grid on; legend('BF PI - taui = 1/1000');