Matlab
Diagramme de Bode
Fonctions :
Log10 : logarithme décimal
Semilogx : identique à la fonction plot mais avec une échelle logarithmique pour l’axe des abscisses
Loglog : identique à la fonction plot mais avec une échelle logarithmique pour l’axe des abscisses et des ordonnées
Premier exemple
Considérons un filtre passe-bas du 2ème ordre, de fonction de transfert :
avec : K = 10, f1 = 1 kHz et f2 = 10 kHz.
Il faut commencer par créer le fichier t4.m de la fonction de transfert :
>> t4(0) ans = 10
Valeur de la fonction de transfert pour f = 100 Hz : >> t4(100)
ans =
9.8901 - 1.0890i
Le module donne l'amplification : >> abs(t4(100))
ans = 9.9499
L'argument donne le déphasage (en radians) : >> angle(t4(100))
ans = -0.1097
Etudions la fonction de transfert sur la gamme de fréquence 100 Hz à 100 kHz : >> log10(100) ans = 2 >> log10(100000) ans = 5
Nous allons créer un vecteur logf : >> logf = 2 : 0.01 : 5
>> f = 10.^logf
f est un vecteur qui nous donne 300 points uniformément répartis de 100 Hz à 100 kHz (compte tenu de l’échelle logarithmique).
G est un vecteur qui nous retourne le gain (en dB) pour les fréquences précédentes : >> G = 20.*log10 (abs (t4(f)) )
>> semilogx ( f , G ) >> ylabel ( 'gain (dB)' )
>> xlabel ( 'fréquence (Hz)' )
>> title ( 'diagramme de Bode du gain' ) >> grid on
Déphasage en degrés :
>> dephasage = angle(t4(f))*180/pi >> semilogx ( f , dephasage )
>> grid on
Deuxième exemple : système du deuxième ordre
>> logpulsation = 3 : 0.01 : 6 >> pulsation = 10.^logpulsation >> G = 20.*log10(abs(t2(pulsation))) >>semilogx ( pulsation , G ) >> grid on
>> dephasage = angle(t2(pulsation))*180/pi >> semilogx ( pulsation , dephasage )
>> grid on
>> amplification = abs(t2(pulsation)) >> loglog ( pulsation , amplification) >> grid on
>> xlabel ( 'pulsation(rad/s)' ) >> ylabel ( 'amplification' ) >> title ( 'Diagramme de Bode' )
Compléments