WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Modellierung einer Matlabfunktion für Geschwindigkeit/Weg

 

st070901
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.11.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2021, 22:20     Titel: Modellierung einer Matlabfunktion für Geschwindigkeit/Weg
  Antworten mit Zitat      
Hallo!
Ich habe folgende Aufgabe in Matlab zu lösen und auch schon ein paar Ansätze aber noch keine Idee wie ich das mittels for oder while bzw. if-else-end umsetzen soll:

Der Flug einer Modellrakete mit der Masse M = 0.05kg kann wie folgt modelliert werden. a Während
der ersten 0.15s wird die Rakete vom Raketenmotor mit der Kraft F = 16N angetrieben und fliegt im
Gravitationsfeld der Erde senkrecht nach oben. Auf die Rakete wirkt im Gravitationsfeld die Erdbeschleunigung g = 9.81m/s2

b) Die Rakete wird im weiteren Flug nach oben von der Gravitation abgebremst.
Nachdem sie den höchsten Punkt erreicht hat, fällt die Rakete im freien Fall zurück Richtung Erde.
c) ¨
Wenn die Fallgeschwindigkeit 20m/s erreicht hat öffnet sich ein Fallschirm und die Rakete schwebt weiter
mit der konstanten Geschwindigkeit von 20m/s zu Boden. Die drei Flugphasen werden dabei durch die
angegebenen Formeln beschrieben.

v(t) = (F/M -g)*t (für 0<= t <= t1)
v(t1) - g*(t-t1) (für t1<= t=< t2)
v(t2) (für t2<=t<=t3)

s(t) = (F/M − g)*t^2/2, (für 0 ≤ t ≤ t1)
s(t1) + v(t1)*(t − t1) − g*(t − t1)^2/2 (für t1 ≤ t ≤ t2)
s(t2) + v(t2)*(t − t2) (für t2 ≤ t ≤ t3)
Schreiben sie ein Matlab Script, das die Geschwindigkeit v(t) und Höhe s(t) der Rakete als Funktion
der Flugzeit t berechnet und in einem Diagramm darstellt.

Das wäre mein bisheriger Ansatz:
Code:

function[v] = bsp_projekt_fkt(t)
M = 0.05;
F = 16;
g = 9.81;
v = 0;
t0 = 0;
t1 = 0.15;
v3 = -20;


if t0<=t && t<=t1
v1 = ((F/M) - g)*t;
v = v + v1;
elseif t>=t1
t2 = solve(v(t1)- g*(t-t1)== -20, t);
v2 = v(t1)- g*(t-t1);
v = v + v2;

end
end

Weiter bin ich leider noch nicht gekommen
Vor allem benötige ich wahrscheinlich noch einen for bzw. while loop und die Frage ist wie man t2 und t3 definieren kann.

Ich wäre wirklich über jede Hilfe sehr dankbar!

Mfg
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.11.2021, 09:24     Titel:
  Antworten mit Zitat      
Hallo,

du sollst ja ein Skript schreiben, da würde ich die function-Zeile weglassen und t als Vektor definieren.
Statt mit solve zu arbeiten, würde ich die Gleichung händisch nach t2 auflösen (ist bei einer linearen Gleichung ja schnell gemacht) und MATLAB diese Lösung errechnen lassen. Ebenso dann für t3.
Am einfachsten wird es sein, wenn du drei t-Vektoren für die jeweiligen Abschnitte definierst. Dann kannst du leicht mit Vektoroperationen arbeiten und brauchst gar kein for/if/while.

Wenn du for/if/while besser verstehen willst, schau dir mal Teil 12 vom MATLAB Onramp an:
https://uk.mathworks.com/learn/tutorials/matlab-onramp.html

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
st070901
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.11.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2021, 10:18     Titel:
  Antworten mit Zitat      
Ich soll aber glaube ich explizit die Aufgabe als Funktion schreiben und dann for oder while verwenden. Könntest du mir dazu weiterhelfen?
Außerdem soll man t2 nicht händisch berechnen sondern Matlab soll das ja erledigen.

Mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.11.2021, 10:49     Titel:
  Antworten mit Zitat      
Hallo,

In der Aufgabenstellung steht:
Zitat:
Schreiben sie ein Matlab Script, das

... also im Gegenteil: explizit keine Funktion.

Wenn du unbedingt Schleifen verwenden möchtest (was ich nicht für sinnvoll halte), schau dir bitte den entsprechenden Teil im Onramp an. Dann solltest du zumindest einen ersten Ansatz hinschreiben können.

Mein Vorschlag war zudem nicht, t2 händisch zu berechnen, sondern nur die Gleichung so umzustellen, dass MATLAB die Berechnung direkt ausführen kann:
Code:
t2 = (v(t1) + 20) / g + t1;


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
st070901
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.11.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2021, 19:25     Titel:
  Antworten mit Zitat      
Ich hätte noch eine etwas dumme Frage

Aber wie berechne ich in Matlab nun t3 weil v(t2) = -20 je bereits gilt?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.434
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.11.2021, 19:41     Titel:
  Antworten mit Zitat      
Hallo,

meine Vermutung ist, dass t3 der Aufschlag auf dem Boden ist. Das wäre also s(t3) = 0.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.