Plotten einer Funktion < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Ich will die Vergerößerungsfunktion plotten. Wo ist mein Fehler? |
Wo ist mein Fehler?
% 1. Fall: Krafterregung oder Erregung über eine Feder
eta = 0:0.05:4;
D=1;
plot (eta, [mm] 1/sqrt((1-\eta^2)^2+(2*D*\eta)^2), [/mm] 'r-')
[mm] xlabel('\eta [/mm] = [mm] \Omega [/mm] / [mm] \omega_{0}')
[/mm]
ylabel('V')
title ('Krafterregung)
legend ('Legende',1)
grid on
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 13:30 Mi 16.12.2009 | Autor: | Frasier |
Hallo DER-Helmut,
du musst aufpassen, dass die Operationen * / und ^ elementweise auf den Vektor eta angewendet werden müssen.
Du erreichst das durch einen dem jeweiligen Operator vorangestellten Punkt ".".
1: | eta = 0:0.05:4;
| 2: | D=1;
| 3: | plot (eta, 1./sqrt((1-eta.^2).^2+(2*D*eta).^2),'r-')
| 4: | xlabel('\eta = \Omega / \omega_{0}','Interpreter','Tex')
| 5: | ylabel('V')
| 6: | title ('Krafterregung')
| 7: | legend ('D=1',1)
| 8: | grid on |
lg
F.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:02 Do 17.12.2009 | Autor: | DER-Helmut |
Ach man, stimmt ja - danke!!!
|
|
|
|
|
Aufgabe | Erstellen des zugehörigen Phasendiagramms:
|
Irgendiwe sieht mein Diagramm komisch aus, aber finde schon wieder den Fehler nicht =(
Hier mein Code:
eta = 0:0.01:3;
D=0.01;
plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
[mm] xlabel('\eta [/mm] = [mm] \Omega [/mm] / [mm] \omega_{0}')
[/mm]
[mm] ylabel('\phi')
[/mm]
title ('Phasendiagramm bei Kraft- und Fußpunktanregung')
legend ('D = 0, ..., 1',1)
grid on
hold on
D=0.1;
plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
hold on
D=0.2;
plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
hold on
D=0.4;
plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
hold on
D=0.6;
plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
hold on
D=0.8;
plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
hold on
D=1;
plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
hold on
Kann mir da vielleicht kurz jemand helfen?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 11:36 Do 17.12.2009 | Autor: | Frasier |
Hallo DER-Helmut,
jetzt müsste man wissen, was dir nicht gefällt.
Ist es die Darstellung am Pol eta=1?
Dann könntest du eta=1 durch nan ersetzen, das wird nicht geplottet.
Außerdem habe ich den inflationären Umgang mit hold on verbessert.
1: | eta = 0:0.001:3;
| 2: | eta(eta==1)=nan;
| 3: | D=0.01;
| 4: | plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
| 5: | xlabel('\eta = \Omega / \omega_{0}')
| 6: | ylabel('\phi')
| 7: | title ('Phasendiagramm bei Kraft- und Fußpunktanregung')
| 8: | legend ('D = 0, ..., 1',1)
| 9: | grid on
| 10: | hold on
| 11: | D=0.1;
| 12: | plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
| 13: |
| 14: | D=0.2;
| 15: | plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
| 16: |
| 17: | D=0.4;
| 18: | plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
| 19: |
| 20: | D=0.6;
| 21: | plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
| 22: |
| 23: | D=0.8;
| 24: | plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
| 25: |
| 26: | D=1;
| 27: | plot (eta, atan(2*D*eta./(1-eta.^2)),'b-')
| 28: | hold off; |
lg
F.
|
|
|
|
|
Aufgabe | Ich habe mir das ein wenig anders vorgestellt wie auf der beigefügten Abbildung im Punkt 1.
[Dateianhang nicht öffentlich] |
Muss ich da iwi die Grenzen ändern oder wie käm ich dann dadarauf?
PS:Danke für den Tip mit dem "hold on/off"
Dateianhänge: Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 10:31 Fr 18.12.2009 | Autor: | Frasier |
Hallo,
das liegt an der Mehrdeutigkeit des Arcustangens.
Sieh in der Hilfe mal nach atan, atan2. Dann wirst du auch unwrap und angle finden.
Wenn du die Control System Toolbox für Matlab hast kannst du auch ein Bode-Diagramm erstellen, das hat ja die gleichen Informationen.
1: | m=1;
| 2: | c=1;
| 3: | w=0:0.01:3;
| 4: | hold all;
| 5: | for d=[0.1 0.25 0.5 0.75 1 2]
| 6: | F=@(w)1./(m*(1i*w).^2+1i*w*d+c);
| 7: | V=@(w)abs(F(w));
| 8: | plot(w,V(w));
| 9: | end
| 10: | legend({'0.1','0.25','0.5','0.75','1','2'})
| 11: | grid on;
| 12: | hold off;
| 13: |
| 14: | figure;
| 15: | hold all;
| 16: | for d=[0.1 0.25 0.5 0.75 1 2]
| 17: | F=@(w)1./(m*(1i*w).^2+1i*w*d+c);
| 18: | phi=@(w)unwrap(angle(F(w)))*180/pi;
| 19: | plot(w,phi(w));
| 20: | end
| 21: | legend({'0.1','0.25','0.5','0.75','1','2'})
| 22: | grid on;
| 23: | hold off;
| 24: |
| 25: | figure;
| 26: | hold on;
| 27: | for d=[0.1 0.25 0.5 0.75 1 2]
| 28: | F=tf(1,[m d c]);
| 29: | bode(F,{0.1,10});
| 30: | end
| 31: | grid on;
| 32: | hold off;
| 33: | legend({'0.1','0.25','0.5','0.75','1','2'}) |
lg
F.
|
|
|
|