#1 Le 14/12/2007, à 20:44
- kricket
[RESOLU] OCTAVE, débutant et petits soucis !
Bonsoir,
J'ai installé la semaine dernière OCTAVE. Je cherche à simuler et à tracer des diagrammes de Bode, comme sous MATLAB avec l'opérande simulink. J'obtiens, pour un simple tracé :
octave:1> x=0:0.1:10;
octave:2> y=sin(x);
octave:3> plot(x,y)
sh: gnuplot: not found
warning: in /usr/share/octave/2.1.73/m/plot/plot.m near line 181, column 3:
warning: connection to external plotter (pid = 14350) lost --
warning: please try your plot command(s) again
warning: broken pipe -- some output may be lost
sh: gnuplot: not found
sh: gnuplot: not found
warning: broken pipe -- some output may be lost
sh: gnuplot: not found
warning: connection to external plotter (pid = 14351) lost --
warning: please try your plot command(s) again
warning: connection to external plotter (pid = 14352) lost --
warning: please try your plot command(s) again
warning: broken pipe -- some output may be lost
Les initiés peuvent-ils m'aiguiller ?
Dernière modification par kricket (Le 21/12/2007, à 22:08)
MEDION Trisquel 5.0
IBM A31 Ubuntu 11.10
Hors ligne
#2 Le 14/12/2007, à 20:46
- slasher_fun
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Installe le paquet "gnuplot"
Hors ligne
#3 Le 14/12/2007, à 20:53
- kricket
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Salut slasher-fun,
Bon, effectivement, en ces temps de veille de fêtes, je n'avais pas trop réfléchi. Avec gnuplot d'installer, c'est beaucoup mieux. Merci !
Concernant, le tracé de diagrammes de Bode, aurais-tu une idée ?
MEDION Trisquel 5.0
IBM A31 Ubuntu 11.10
Hors ligne
#4 Le 14/12/2007, à 20:56
- slasher_fun
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Me parle pas d'élec siteplé
Hors ligne
#5 Le 14/12/2007, à 21:00
- kricket
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Désolé ! J'ai repris mon cartable, à l'aube de mes 40 ans, pour suivre un cursus de niveau II. Les asservissements linéaires et Bode sont, en ce moment, mon quotidien agrémenté d'électronique analogique et numérique, et le reste !
MEDION Trisquel 5.0
IBM A31 Ubuntu 11.10
Hors ligne
#6 Le 15/12/2007, à 02:23
- slasher_fun
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Wé, bah moi jsuis en école d'ingé depuis 2 ans et demi et j'y comprends toujours rien
Désolé de pas pouvoir t'aider là dessus donc
Hors ligne
#7 Le 16/12/2007, à 02:59
- slapierre
Re : [RESOLU] OCTAVE, débutant et petits soucis !
J'avais un super script Matlab(R) pour tracer des fonctions de transfert normalisées, mais la commande freqs pose certains problèmes dans Octave!
:P
% Tracer un filtre passe-bas de Butterworth du second ordre -- normalisé
H = tf ([1], [1 2 1])
bode (H) % H = 1 / s^2 + 2s + 1
% Tracer un filtre passe-bas de Butterworth du premier ordre -- normalisé
G = tf ([1], [1 1]) % G = 1 / s + 1
Voir les paramètres que l'on peut passer à tf pour dénormaliser le filtre ou appliquer les transformations (bêta je crois, alpha c'est pour l'impédance?) vues au cours...
>>> http://web.mit.edu/6.302/www/compare/report.html
Simon
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#8 Le 16/12/2007, à 12:08
- kricket
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Salut,
Après quelques heures passées sur Internet, j'ai trouvé ceci : http://www.math.temple.edu/computing/oc … ve_26.html
Je n'ai pas eu encore le temps de tout éplucher mais je pense trouver mon bonheur... et enfin tracer quelques diagrammes de Bode !
Merci à slapierre pour son complément de résultats. A propos, ton lien me renvoi à une page d'erreur !
Dernière modification par kricket (Le 16/12/2007, à 12:10)
MEDION Trisquel 5.0
IBM A31 Ubuntu 11.10
Hors ligne
#9 Le 16/12/2007, à 14:09
- slapierre
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Ton lien est très intéressant! J'ai (re)testé le mien et il fonctionne -- au Canada
Pour tracer un diagrame de Bode à partir d'un vecteur H contenant quelques points (nombres complexes), tu peux faire :
h_db = 20 * log10(abs(H)); % Attention!
h_phase = angle(H);
loglog (h_db);
figure
semilogx (h_phase)
Attention! Pour utiliser le logarithme en base 10, tu dois utiliser la fonction log10, car log <=> ln !!! Aussi, si tu traites un signal "de puissance", le facteur multiplicatif sera 10 et non 20
Simon
Dernière modification par slapierre (Le 16/12/2007, à 15:23)
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#10 Le 16/12/2007, à 14:13
- slapierre
Re : [RESOLU] OCTAVE, débutant et petits soucis !
En fait, tu peux aussi utiliser des nombres réels, mais le diagrame de phase sera constant @ zéro!
Regarde du cà´té du module Scicos de Scilab, qui est l'équivalent de Simulink(R)
> http://www.scicos.org/
Simon
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#11 Le 17/12/2007, à 19:46
- kricket
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Salut,
En fait, le code suivant ne fonctionne pas avec Octave :
h_db = 20 * log10(abs(H)); % Attention!
h_phase = angle(H);
loglog (h_db);
figure
semilogx (h_phase)
Les opérandes trouvaient sur le lien cités plus haut semblent efficaces... mais je n'ai pas encore trouvé comment les interpréter dans le cas d'un diagramme simple comme la fonction de transfert d'un filtre passe-bas du 1er ordre, par exemple. Le week-end prochain sera plus propice à des essais et recherches !
MEDION Trisquel 5.0
IBM A31 Ubuntu 11.10
Hors ligne
#12 Le 17/12/2007, à 21:14
- slapierre
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Les opérandes trouvaient sur le lien cités plus haut semblent efficaces...
Il apparait plus intéressant d'utiliser semilogx et que loglog, étant donné les valeurs négatives associés aux décibels... Je résume les deux méthodes :
1 - Tracer une réponse en fréquence à partir d'une fonction de transfert normalisée :
% Tracer un filtre passe-bas de Butterworth du second ordre -- normalisé
H = tf ([1], [1 2 1]);
bode (H) % H = 1 / s^2 + 2s + 1
% Tracer un filtre passe-bas de Butterworth du premier ordre -- normalisé
G = tf ([1], [1 1]);
bode (G) % G = 1 / s + 1
2 - Tracer une fonction de transfert à partir d'un vecteur contenant des points (nombres complexes ou réels)
t = [0:.1:2*pi];
H = cos(t);
h_db = 20 * log10(abs(H)); % Attention!
h_phase = angle(H);
plot(t, H);
figure
semilogx (h_db);
figure
semilogx (h_phase);
Simon
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#13 Le 21/12/2007, à 22:08
- kricket
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Salut,
Merci slapierre ! Cela fonctionne bien avec semilogx ! Tu viens de faire un heureux, encore merci !
MEDION Trisquel 5.0
IBM A31 Ubuntu 11.10
Hors ligne
#14 Le 14/01/2008, à 14:14
- saq__d__aus
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Salut, je suis moi aussi entrain d'essayer de dompter Octave poru tracer du Bode, en utilisant les fonctions: tf() et bode() seul pb, il me fait les tracer en rad/s alors que je les voudrait en Hz! quelqu'un sait il comment gérer ce pb ? merci
-----BEGIN GEEK CODE BLOCK-----
GED/CS/IT/MS d- s-:- a-- c++++/++ L/*++++ P+ L++ E--->E W+>++ N++ o-- K- w o M-- V-->V? PS+++ PE+++ Y>+/- PGP>++ t 5? X++ R>- tv/-/-- b+ DI++++ D++/+++ G/+ e++ h/--*! r++ y++
------END GEEK CODE BLOCK------
Hors ligne
#15 Le 16/01/2008, à 01:47
- slapierre
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Heu... Si tu es un dur à cuire, tu peux modifier - en sauvant sous un autre nom - la fonction Bode (fichier bode.m)!
$ sudo updatedb # Mettre à jour la base de donnée de recherche - facultatif
$ slocate bode.m
Simon
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#16 Le 18/01/2008, à 20:33
- saq__d__aus
Re : [RESOLU] OCTAVE, débutant et petits soucis !
Ta pas plus simple slapierre? une variable d'environnement a changer ou autre?
-----BEGIN GEEK CODE BLOCK-----
GED/CS/IT/MS d- s-:- a-- c++++/++ L/*++++ P+ L++ E--->E W+>++ N++ o-- K- w o M-- V-->V? PS+++ PE+++ Y>+/- PGP>++ t 5? X++ R>- tv/-/-- b+ DI++++ D++/+++ G/+ e++ h/--*! r++ y++
------END GEEK CODE BLOCK------
Hors ligne
#17 Le 19/01/2008, à 16:09
- slapierre
Re : [RESOLU] OCTAVE, débutant et petits soucis !
J'ai pensé à une solution, que je trouve légèrement tordue : puisque H(s) est une fonction rationnelle, utilisons polyval! L'affichage est moins beau que Bode cependant.
Je crois que tu devras manipuler le vecteur t (facteur de 2*pi) pour un affichage en fréquence ou rad/s, je te laisse ce calcul...
H = tf([1], [1 2 1]);
n = H.num;
d = H.den;
t = j .* linspace (.01,10);
out = polyval(n, t) ./ polyval(d, t);
out_dB = 20*log10(abs(out));
out_ph = angle (out) .* (180.0 / pi);
%% Affichage des résultats
% Amplitude
subplot(2,1,1);
semilogx (out_dB);
title('Amplitude H(jw)');
ylabel('Amplitude [dB]');
xlabel('W [rad/s]');
grid on;
% Phase
subplot(2,1,2);
semilogx (out_ph);
title('Phase H(jw)');
ylabel('Angle [deg.]');
xlabel('W [rad /s]');
grid on;
% Diagramme de Bode
% figure;
% bode (H)
Simon
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#18 Le 19/01/2008, à 16:16
- slapierre
Re : [RESOLU] OCTAVE, débutant et petits soucis !
En fait le script ci-dessus donne une bonne idée mais la fréquence de coupure est pour w=10 rad/s et non 1rad/s, ce qui est bien embêtant!
Simon
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#19 Le 20/01/2008, à 20:59
- saq__d__aus
Re : [RESOLU] OCTAVE, débutant et petits soucis !
ok, mais moi je veux juste que le diagramme s'affiche en Hz et non pas en rad/s
-----BEGIN GEEK CODE BLOCK-----
GED/CS/IT/MS d- s-:- a-- c++++/++ L/*++++ P+ L++ E--->E W+>++ N++ o-- K- w o M-- V-->V? PS+++ PE+++ Y>+/- PGP>++ t 5? X++ R>- tv/-/-- b+ DI++++ D++/+++ G/+ e++ h/--*! r++ y++
------END GEEK CODE BLOCK------
Hors ligne