okay super danke.
so hab ichs mir eh gedacht (juhu ein erfolgserlebnis)
ich würde jetzt gerne von dieser Kurve einen bestimmten v-Wert ausgeben lassen. zB wenn der Weg 20m ist. und dann stoppen (also eine Abbruchbedingung wenn der Weg den Wert erreicht hat)..
aber ich komm mit dem ode-solver nicht klar. ich hab mir gedacht...
Damit bricht er auf jeden Fall die weitere Berechnung ab, sobald x_stop erreicht wurde, allerdings wird in die Zeit noch weiter laufen und die Kurven im Plot werden ab dem Punkt zu Geraden - weil konstant.
das kann ich nicht erkennen weil die kurve vorher eigenltich auchschon ziemlich konstant aussehen.. obs sies wwirklich ist weiß ich nicht.. ich hoffe mal nicht! sonst stimmt ja die ganze formel nicht..
muss ich da nicht break oder so einbauen, oder return? (funktioniert zwar nicht, aber mein kopf sagt es muss stimmen)
Wenn du die if-Abfrage folgendermaßen erweiterst, bricht er den ODE-Solver nach Erreichen von x_stop ab:
Code:
dq = zeros(4,1);
if dq(1) <= x_stop
dq(1) = q(2);
dq(2) = -1/m*k*q(2).*sqrt(q(2).^2+q(4).^2);
dq(3) = q(4);
dq(4) = -g - 1/m*k*q(4).*sqrt(q(2).^2+q(4).^2);
else return; % damit bricht Matlab diese Fkt. ab und kehrt zur vorherigen zurück end
es geht einfach nicht... also ich weiß nicht worans liegt. und ich bin nur mehr verzweifelt.. hier nochmal mein code,.. hab inwzischen einiges umgeändert und ziemlich viel auskommentiert... ich weiß echt nicht mehr worans liegt.
also noch mal zu klarheit.-... der läufer nimmt anlauf. springt ab und läuft nach der landung wieder (beschleunigt erneut) weiter.
geschwinddgkeit über weg.
(komisch ist auch obwohl ich immer die (end)-werte der vorigen kurve benutze liegt die neue an einem anderen Punkt.
% --- Bewegungsgleichungen --- % % Der schiefe Wurf in der x-y-Ebene mit Luftwiderstand wird % durch die Bewegungsgleichungen % % m*xdd = - k*xd*sqrt(xd^2+yd^2) % m*ydd = - m*g - k*yd*sqrt(xd^2+yd^2) % globale Variablen (werden auch von wurf_odefun benutzt) global k m g
% Parameter
m = 75; % (kg)
cw = 0.78;
A = 0.63; %1.80*0.35
rho = 1.204;
h = 1.067;
k = cw*A*rho*1/2;% (kg/m)
g = 9.81; % (m/s^2) % Endzeit
T = 1.27; % (s) % Anfangsbedingungen
x0 = 12.72; % (m)
y0 = 0; % (m)
alpha = (asin(sqrt(2*g*h/v1(end)^2))); % (rad)
% Plotten figure(1) hold on
%plot(qW(:,2)+qW(:,4),qW(:,1),'green','LineWidth',2)% Geschwindikgeit (vx+vy), sx plot(qW(:,1),qW(:,4)+qW(:,2),'green','LineWidth',2)% Geschwindikgeit (vx+vy), sx
% plot(qW(:,1),qW(:,2),'LineWidth',2) % plot(qW(:,3),qW(:,4),'LineWidth',2) hold on
% plot(qW(:,2),qW(:,1),'blue','LineWidth',2), % für v_x über sx % plot(qW(:,4),qW(:,1),'yellow','LineWidth',2), % für v_y über sx % plot(qW(:,4),qW(:,3),'black','LineWidth',2), % für v_y über sy % hold off,
%sa=(v0+cos(alpha)*(v0+sin(alpha)+sqrt(v0^2*sin(alpha)*sin(alpha)+2*g*h)))/g;
% Schiefer Wurf mit Luftwiderstand % ODE-Funktion function dq = testode(t,q) global k m g ddd
% Die Bewegungsgleichungen % % m*xdd = - k*xd*sqrt(xd^2+yd^2) % m*ydd = - m*g - k*yd*sqrt(xd^2+yd^2) % % werden mit % % q(1) = x % q(2) = xd % q(3) = y % q(4) = yd % % in ein DGL-System erster Ordnung ¨uberf¨uhrt:
Folgendes:
In der Solver-Funktion:
Entweder x_stop = 20 setzten oder bei der if-Bedingung q(1) <= x_stop(1) schreiben! Wichtig ist: q(1) <= ... nicht dq ... weil dq zwei Zeilen vorher immerwieder auf '0' setzt.
Dann die while-Zeile und das zugehörige end auskommentieren und es sollte laufen!
Verfasst am: 20.11.2008, 11:16
Titel: Prof. Dr. Dr. Dr.
also wir benutzen zurzeit ein programm das heißt Coach 6
kostet so 4
das ist sehr leicht zu bedienen die komplette berechnung wird sozusagen durch darstellungen ersetzt
mit diesem programm habe ich ein modell zum schiefen wurf mit luftreibung erstellt, dass wir morgen nun un der schule zum auswerten von einigen versuchen verwenden.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.