%%%%%%%%%%%%%%%%%%%%%%% %%% Programme pid.m %%% %%%%%%%%%%%%%%%%%%%%%%% clear all; close all; % Définition du système à corriger s=tf('s'); P=input('Fonction de transfert du système à corriger?') % Définition de la pulsation de coupure et de la marge de phase souhaitées w0=input('Pulsation de coupure souhaitée pour le système corrigé?') Mp=input('Marge de phase souhaitée (en radians)?') % Calcul du régulateur PDF: gain=1 et phase=phi_d à w0. [gain_P_w0,phase_P_w0]=bode(P,w0); phase_P_w0=phase_P_w0/180*pi; gain_K_PDF=1; phase_K_PDF=0.5*(-pi/2+Mp-phase_P_w0); K_PDF=calcul_pdf(gain_K_PDF,phase_K_PDF,w0); % Calcul du régulateur PI: gain=1 et phase=-phi_i à w0=4. gain_K_PI=1; phase_K_PI=-pi/2+phase_K_PDF; K_PI=calcul_pi(gain_K_PI,phase_K_PI,w0); % Calcul du gain kp de réajustement kp=1/gain_P_w0; % Calcul du régulateur PID K_PID=kp*K_PDF*K_PI; % Diagramme de Bode et de Black-Nichols L=P*K_PID; figure; bode(L,K_PID,'-.',P,'--'); grid % NOTA BENE: même remarque que pour le programme pdf.m