Vous êtes sur la page 1sur 2

clear all;

clc;
% Définition des paramètres du circuit RC
R1 = 50 ; % Résistance en Ohms
R2 = 10 ; % Résistance en Ohms
R = R1 + R2 ; % Résistance en Ohms
C = 63e-6; % Capacité en Farads
L = 20e-3 ; % Inductance en Henry
% Calcul de la fonction de transfert du circuit RC
num = R2 / ( L*C*R ) ;
d1 = R1*R2 / ( L*R ) ;
d2 = 1 / ( L*C ) ;
H=tf( num, [1 d1 d2] ) ;
% Tracé de la réponse indicielle à un échelon unitaire
T_i = 0 ; % temps initial
T_f = 5*R*C ; % temps final
pas = 0.0001; %pas de temps
t = T_i :pas:T_f;
u = ones (size(t));
y = lsim(H, u, t); % fonction qui trace la réponse dynamique d'un système
% Calcul de la constante de temps tau à 63% de la réponse indicielle
s_63 = 0.63;
[~, idx_tau] = min( abs( y - s_63 ) );
tau = t( idx_tau );
%Calcul du temps de montée et du temps de réponse
tr = t ( find (y >= 0,9*y(end), 1)) - t ( find(y >= 0.1*y(end), 1));
ts = t ( find(y >= 0.98*y(end), 1)) – t ( find(y >=0.02*y(end), 1));
% Tracé de la réponse à une rampe de pente a=2
t_ramp = T_i:pas:T_f ;
ramp = 2*t_ramp;
y_ramp = lsim(H, ramp, t_ramp);
%Affichage des résultats
disp ( [ ' Constante de temps tau = ' num2str( tau ) ] ) ;
disp ( [ ' Temps de montée tr = ' num2str( tr ) ] ) ;
disp ( [ ' Temps de réponse ts = ' num2str( ts ) ] ) ;
figure ;
subplot( 2 , 1 , 1) ;
plot( t, y ) ;
title( ' Réponse indicielle à un échelon unitaire ' ) ;
xlabel( ' Temps (s) ' ) ;
ylabel( ' Tension (V) ' );
grid on ;
subplot( 2 , 1 , 2 ) ;
plot( t_ramp, y_ramp) ;
title( ' Réponse à une rampe de pente a = 2 ' ) ;
xlabel( ' Temps (s) ' ) ;
ylabel( ' Tension (V) ' ) ;
grid on ;

Vous aimerez peut-être aussi