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 :

[bodeplot] Tracer une droite semilogx dans un diagramme de Bode


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut [bodeplot] Tracer une droite semilogx dans un diagramme de Bode
    Bonjour à tous,

    Je souhaite pouvoir tracer automatiquement une droite sur un diagramme de Bode généré dans Matlab. Ci-dessous mon code pour le tracé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    f3=figure(3);
    opts = bodeoptions('cstprefs');
    opts.FreqUnits = 'kHz';
    opts.Title.String = 'Structure complète';
    opts.Title.FontSize = 16;
    opts.XLabel.String = 'Fréquence';
    opts.XLabel.FontWeight = 'Bold';
    opts.XLabel.FontSize = 14;
    opts.YLabel.String{1} = 'Amplitude';
    opts.YLabel.String{2} = 'Phase';
    opts.YLabel.FontWeight = 'Bold';
    opts.YLabel.FontSize = 14;
    opts.TickLabel.FontSize = 14;
    opts.Grid = 'on';
    courbe3 = bodeplot(sys3,opts);
    hold on
    semilogx([10e-10 10e2], [-3 -3]);
    hold off
    Nom : courbe.jpg
Affichages : 1868
Taille : 52,8 Ko

    Le problème c'est que la droite que je souhaite placer à -3dB ne s'affiche pas sur la bonne courbe. En effet, elle apparait sur la phase au lieu de l'amplitude.
    Savez-vous quelle commande me permet de forcer le tracé sur la première des deux courbes ?

    Merci d'avance pour votre aide.
    Bonne journée.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 309
    Points : 52 895
    Points
    52 895
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    f3=figure(3);
    opts = bodeoptions('cstprefs');
    opts.FreqUnits = 'kHz';
    opts.Title.String = 'Structure complète';
    opts.Title.FontSize = 16;
    opts.XLabel.String = 'Fréquence';
    opts.XLabel.FontWeight = 'Bold';
    opts.XLabel.FontSize = 14;
    opts.YLabel.String{1} = 'Amplitude';
    opts.YLabel.String{2} = 'Phase';
    opts.YLabel.FontWeight = 'Bold';
    opts.YLabel.FontSize = 14;
    opts.TickLabel.FontSize = 14;
    opts.Grid = 'on';
    courbe3 = bodeplot(sys3,opts);
     
    ax = findobj('type', 'axes', 'title', opts.Title.String);
    hold(ax, 'on');
    semilogx([10e-10 10e2], [-3 -3], 'parent', ax);
    hold(ax, 'off');

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut
    Merci pour ta réponse. Malheureusement ça ne fonctionne pas.

    J'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Error using hold (line 73)
    Unknown command option.
     
    Error in Bode_simulation_avant_essais (line 69)
    hold(ax, 'on');
    J'ai essayé de remplacer hold(ax,...) par hold on et hold off mais ça me met l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Error using semilogx
    Parent must be a scalar graphics handle.
     
    Error in Bode_simulation_avant_essais (line 70)
    semilogx([10e-10 10e2], [-3 -3], 'parent', ax);

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 309
    Points : 52 895
    Points
    52 895
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ax = findobj('type', 'axes');
    hold(ax(2), 'on');
    semilogx([10e-10 10e2], [-3 -3], 'parent', ax(2));
    hold(ax(2), 'off');

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut
    Ça fonctionne parfaitement .

    Merci beaucoup pour ton aide.
    Bonne journée.

Discussions similaires

  1. [Python 2.X] Tracer une droite dans un quadrillage
    Par Invité dans le forum Général Python
    Réponses: 6
    Dernier message: 15/12/2016, 22h58
  2. Tracer une droite dans une intervalle 3D
    Par AlphaJ dans le forum Mathématiques
    Réponses: 5
    Dernier message: 22/11/2007, 11h06
  3. Réponses: 11
    Dernier message: 26/08/2007, 14h07
  4. Tracer une droite verticale
    Par jmbonnaz dans le forum MATLAB
    Réponses: 1
    Dernier message: 16/05/2007, 11h10
  5. Comment tracer une ligne verticale dans un graphique
    Par developpeur82 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/04/2007, 14h06

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