MATLAB - Wie kann ich parametrisch plotten?

Gast #1555395
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
Gast #1555427
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...
Gast #1555504
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren