mikrocontroller.net

Forum: PC Hard- und Software MATLAB - Wie kann ich parametrisch plotten?


Autor: Diplomand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mahlzeit zusammen,

ich bin gerade dabei, einige Bode-Diagramme in die Ausarbeitung meiner 
Diplomarbeit einzufügen. Hierfür nutze ich MATLAB.
Da es in der DA um Schaltnetzteile geht, möche ich die Bode-Diagramme 
abhängig vom Tastverhältnis plotten. Also Amplituden- und Phasengang 
jeweils untereinander. Das geht wunderbar. Aber jeweils nur für ein 
Tastverhältnis. Ich hätte aber gerne jeweils den Amplituden- und 
Phasengang für verschiedene (sagen wir fünf) Tastverhältnisse in den 
beiden Koordinatensystemen, damit man den Verlauf sehen kann.

Hab auch schon etwas herumprobiert:
Also erstmal einen Vektor mit den gweünschten Tastverhältnissen 
angelegt:
D=[1. .3 .5 .7 .9];
Was ich gerne hätte, wäre so ein Konstrukt mit for-Schleife, das mir 
dann die Plots erzeugt:
x=[1:100:1e6];       %Freqeunzbereich
for i=1:5
  D_plot=D(i);       %Tastverhältnis für diesen Plot festlegen
  semilogx(x,Bode)   %"Bode" hier nur symbolisch für Ausgabe
  hold on            %nächsten Plot ins selbe Koordinatensystem
end

Mache ich das aber so, plottest das blöde MATLAB immer nur das letzte 
Bode-Diagramm (D=0,9).
Wie kann ich erreichen, daß die anderen vier auch erzeugt werden?

Würde mich freuen, wenn mir das jemand erklären könnte!

Danke schonmal,
Grüße vom Diplomand

Autor: ---- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem Kommando "hold on" kann das überschreiben des Plots verhindert 
werden das Kommando "hold off" hebt es wider auf.

Autor: Diplomand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, das dachte ich mir schon mit dem "hold off".
Wo genau bau ich das dann aber ein in meine Schleife? Nach dem "end"?
Würde dann aber wenig Sinn machen, da ja hier schon die Schleife zu Ende 
ist...

Autor: ---- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Zeit wo du den Beitrag geschriehen hast, hättest du das sicher 
selber herausgefunden!

clf
hold on
plot();
plot();
hold off

Autor: Diplomand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, da muß ich Dich leider enttäuschen, geht trotzdem nicht.
Hier mal mein Code der entscheidenden for-Schleife:
for i=1:5

    D=M(i);  % in M sind die einzelnen Werte für D abgelegt

    % Amplitudengang
    hold on
    subplot(2,1,1)
    semilogx(f,20*log10(g1))  % in g1 wird der Amplitudengang berechnet
    hold off
    grid on
    title('Bode-Diagramm')
    ylabel('Verstärkung[dB]')

    % Phasengang
    hold on
    subplot(2,1,2)
    semilogx(f,g2*(180/pi))  % in g2 wird der Phasengang berechnet
    hold off
    grid on
    xlabel('Frequenz[Hz]')
    ylabel('Phase[°]')

end

MATLAB plottet nur das Bode-Diagramm für D=0,9 (letzter Eintrag in M).

Autor: ozo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hold on, off sollte außerhalb der Schleife stehen, oder?

Autor: Tom Ekman (tkon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lass mal das "hold off" komplett raus

Autor: ---- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ganz einfach, hold on vor dem ersten oder zweiten plot Aufruf 
setzten und hold off nach dem letzten -> vor und nach der Schleife.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.