Matlab

Diagramme de Bode

 

Log10 : logarithme décimal

Semilogx : identique à la fonction plot mais avec une échelle logarithmique pour laxe des abscisses

Loglog : identique à la fonction plot mais avec une échelle logarithmique pour laxe des abscisses et des ordonnées

 

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 :

 

Valeur de la fonction de transfert pour f = 0 Hz (régime continu) :

>> 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

 

Fichier de définition de la fonction t2 :

>> 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

 

© Fabrice Sincère