IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

affichage sur un graph BODE


Sujet :

MATLAB

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 80
    Points
    80
    Par défaut affichage sur un graph BODE
    Bonjour,

    je trace le Bode d'un filtre et j'aimerais indiqué quelques éléments (fréquence de coupure, etc...) directement sur les courbes. Le soucis est que quand j'utilise la fonction texte, il me place ce texte en fonction des coordonnées de la phase et nom du gain.
    Comment faire pour placer par exemple un texte (fréquence de coupure) à -3dB et fc? en règle général, je ne comprends pas bien la gestion de Matlab pour positionner les éléments textes ou autres (son référentiel est le dernier graph tracé!).

    PS: une solution consiste en un subplot etc.... amis j'aimerais comprendre comment changer de référentiel pour placer des rond, carré etc...


    Merci.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Salut,


    La fonction text positionne le texte à l'emplacement que tu lui indiques, si il le positionne en fonction des coordonnées de la phase, c'est que tu as du le lui indiquer quelque part... Peux-tu nous montrer comment tu fais l'affichage et comment tu utilises la fonction text?

    je ne vois pas bien ce que tu appelles referentiel... C'est la figure sur laquelle le tracé s'effectue? Si oui, pour les figures, MATLAB fonctionne avec des handle, cela permet de nommer les figures crées et ainsi de les appeler ultérieurement pour tracer des courbes dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    h1 = figure;
    h2 = figure;
    ...
    %traitement
    ...
    figure(h1)
    plot(...)
    % Ces 2 dernières lignes peuvent être remplacées par :
    % plot(h1,...)
    Le plot sera tracé sur la première figure créée.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 80
    Points
    80
    Par défaut
    j'utilise:

    FrequencyBandwidth=bandwidth(H)/(2*pi)
    [magnitude,phase,w]=bode(H,{2*pi*1e-1,2*pi*10});
    OptionBodeplot=getoptions(bodeplot(H));
    OptionBodeplot.FreqUnits='Hz'; % set frequancy unit
    OptionBodeplot.Grid='on'; % display grid
    setoptions(bodeplot(H),OptionBodeplot); % update the Bodeplot
    Ensuite une pauvre fonction
    text(FrequencyBandwidth,-3,'blablabla');

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    La fonction text prend en argument d'entrée X et Y qui sont les coordonnées (abscisse et ordonnée) de la position de ton texte.
    Donc dans ton cas, si j'ai bien compris, tu veux placer un texte au point (fc, gain_maximum-3).
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    J'ai regardé un peu vite fait sans trouver de solution pour le moment. L'ennui c'est que bodeplot utilise en interne de la fonction un subplot. Du coup quand on utilise un text derrière, il le place automatiquement dans la deuxième fenêtre. Celle-ci correspond à la phase et non au gain.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 80
    Points
    80
    Par défaut
    @Magelan: J'avais bine compris ça mais Matlab reste bloqué sur le graph de la phase et je ne sais pas comment revenir sur le graph du gain pour lui indiquer mes coordonnées

    @Merel: je pense que t'as saisi ma question (et elle est d'ordre général) quand tu utilise aussi la fonction suplabel (à télécharger) et qu'il y a plusieurs éléments que tu ne gère pas directement en subplot.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Ouep, j'ai regardé un peu plus. Tu peux mettre ton texte à partir d'un premier subplot si c'est toi qui le fait.... En gros ca donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    subplot(x,y,z)
    plot(...)
    hold on
    text(...)
    subplot(x,y,z)
    plot(...)
    Mais si tu as directement le graphe général, c'est galère. Même en passant par les handles, je vois pas. Faut appeller super Dut à la rescousse

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 80
    Points
    80
    Par défaut
    Salut!

    Justement, la fonction bode(...) ou (bodeplot(...) me trace automatiquement les deux graphs comme un subplot mais je n'ai pas d'handle pour chaque graph... c'est bien c'est automatique mais on ne maitrise rien sinon ouai je me trace moi meme mes graphs en subplot....

    Merci.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Je pense avoir trouvé une solution à ce problème. Il suffit en fait de rendre invisible la phase lors du tracé de Bodeplot. ensuite, tu poses ton texte et tu rends visible la phase. ton texte reste dans le subplot du Gain.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sys = rss(5);
    h = bodeplot(sys);
    setoptions(h,'FreqUnits','Hz','PhaseVisible','off');
    hold on
    text(1,-10,'blabla')
    setoptions(h,'PhaseVisible','on');
    Par contre, de temps en temps, le texte ne s'affiche pas. Ca marche si tu fais ces lignes en command window. A voir dans les handles ou les options pour une utilisation automatique.

    Mais je pense que l'idée est là ;-)
    Images attachées Images attachées   

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 80
    Points
    80
    Par défaut
    Salut!

    Merci je vais essayer ça. Je vais essayer de chercher voir comment fonctionne les handle pour ce genre de graph (j'ai pourtant regardé dans M-code du graph mais rien).

    Merci encore.

Discussions similaires

  1. Boucle pour affichage sur XY Graph
    Par Koko33 dans le forum LabVIEW
    Réponses: 0
    Dernier message: 05/06/2012, 20h51
  2. Réponses: 4
    Dernier message: 20/05/2011, 16h01
  3. Affichage sur un graphe déroulant d'intensité
    Par Forian dans le forum LabVIEW
    Réponses: 5
    Dernier message: 09/01/2009, 15h20
  4. Problème de dimension pour affichage sur graph
    Par Marc29 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 17/06/2008, 10h55
  5. graphe 3D et affichage sur feuille exel ou word
    Par dadou2002 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 05/04/2007, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo