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
Mit dem Kommando "hold on" kann das überschreiben des Plots verhindert werden das Kommando "hold off" hebt es wider auf.
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...
In der Zeit wo du den Beitrag geschriehen hast, hättest du das sicher selber herausgefunden! clf hold on plot(); plot(); hold off
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).
hold on, off sollte außerhalb der Schleife stehen, oder?
Ist ganz einfach, hold on vor dem ersten oder zweiten plot Aufruf setzten und hold off nach dem letzten -> vor und nach der Schleife.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.