MATLAB - Wie kann ich parametrisch plotten?

Gast #1555395
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
Gast #1555427
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...
Gast #1555504
Nö, da muß ich Dich leider enttäuschen, geht trotzdem nicht.
Hier mal mein Code der entscheidenden for-Schleife:
1
for i=1:5
2

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

5
    % Amplitudengang
6
    hold on
7
    subplot(2,1,1)
8
    semilogx(f,20*log10(g1))  % in g1 wird der Amplitudengang berechnet
9
    hold off
10
    grid on
11
    title('Bode-Diagramm')
12
    ylabel('Verstärkung[dB]')
13

14
    % Phasengang
15
    hold on
16
    subplot(2,1,2)
17
    semilogx(f,g2*(180/pi))  % in g2 wird der Phasengang berechnet
18
    hold off
19
    grid on
20
    xlabel('Frequenz[Hz]')
21
    ylabel('Phase[°]')
22

23
end

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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.