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

"rakete" schiefem wurf folgen lassen

 

caelum
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 19.02.10
Wohnort: ---
Version: 2011b
     Beitrag Verfasst am: 19.02.2010, 21:01     Titel: "rakete" schiefem wurf folgen lassen
  Antworten mit Zitat      
Hallo leute, geduldige leser und noch geduldigere helfer.
Als ziemlicher neuling auf dem gebiet matlab wurde mir die aufgabe gestellt den schiefen wurf ohne luftwiederstand zu plotten und der kurve eine "rakete" folgen zu lassen.

den schiefen wurf habe ich mit


Code:
alpha=2*pi*(45/360)
v0=300*1000/3600
t=0:0.01:12.2;
vx=v0*cos(alpha);
vy=v0*sin(alpha);
g=9.81;
x=vx*t;
y=vy*t-g/2*t.^2;
plot(x,y)
hold on  
axis equal
grid on
 


plotten lassen und die rakete mit

Code:
d=[-20, -20, 0, 20, 20, -20];
e=[0, 50, 75, 50, 0, 0];
line(d,e)
 


gezeichnet und via rotationsmatrix

Code:
di=d*cos(-alpha)-e*sin(-alpha)
ed=d*sin(-alpha)+e*cos(-alpha)
line(di,ed)
 


in "startposition" gebracht. hier fängt dann das problem an ^_^
die rakete soll circa 10x geplottet werden und jeweils richtig gedreht werden.
Wie bekomme ich matlab nun dazu mir nur 9 weitere wertepaare auszugeben und wie bekomme ich den dazugehörigen rotationswinkel zustande?

Der winkel zum jeweiligen punkt müsste ja über die 1. ableitung der funktion zu erfahren sein auch wenn man hier mit dem vorzeichen nach dem scheitelpunkt wohl aufpassen muss.

leider sind meine "sprachkenntnisse" in matlab mehr alsmangelhaft und so hoffe ich nun auf euch Smile
Private Nachricht senden Benutzer-Profile anzeigen


InspectorGadget
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 52
Anmeldedatum: 16.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2010, 12:14     Titel:
  Antworten mit Zitat      
Hi,
das interessanteste zuerst:
Code:
alpha = vy - g*t;
alpha = alpha * pi/180 - pi/2;
for Counter1 = 1:140:1200
    di = d*cos(alpha(1,Counter1)) - e*sin(alpha(1,Counter1));
    ed = d*sin(alpha(1,Counter1)) + e*cos(alpha(1,Counter1));
    di = di + x(1,Counter1);
    ed = ed + y(1,Counter1);
    line(di,ed)
end

Jetzt die Erklärung:
Als erstes berechnerst Du den Winkel für jeden Punkt der Kurve, wie Du ja schon richitg gesagt hattest.
Wichtig ist, dass Matlab unter sin(a) das a in Rad erwartet. Gewöhnlich rechen wir ja da mit Grad. Das wäre in Matlab sind(a). Also sin'degree'.
Gleiches gilt natürlich für cos, tan,.....
Deshalb die Zeile, in der einfach nur Grad in Rad gewandelt werden. Das -pi/*2 dient dazu, die Rakete um einen konstanten Winkel zu drehen. Änder den Wert einfach mal, und schau Dir den plot an, dass siehst Du das gleich.
Jetzt kommt die for-Schleife, die dafür sorgt, dass die Rakete 10 mal auftaucht. Die folgenden beiden Zeilen hab ich von Dir übernommen, nur dass alpha ein Vektor ist, und ich mit der Anweisung in Klammern den Winkel auswähle, der zu dem Ort an der Parabel gehört, an dem sich die Rakete gerade befindet. Ausserdem hab ich das '-' vor dem alpha gelöscht. In der Regel gibt es bei Rotationsmatrizen kein negatives Vorzeichen vor dem Winkel. Nur das Vorzeichen vor dem sin ändert sich!
Die beiden nächsten Zeilen verschieben die Rakete erntlang der Kurve. Dazu addiere ich zu den Koordinaten der Rakete einfach die Koordinaten der Kurve, an der die Rakete sein soll.
Fertig!
Was aber auffällt: Die Spitze der Rakete liegt nicht auf der Parabel. Das liegt daran, dass der Fuss der Rakete an den Punkt gesetzt wird, für den der Winkel gilt. Wenn Dir das nicht gefällt, musst Du eben den Mittelpunkt der Rakete an den Punkt schieben, für den Du den Winkel ausgewählt hast. Dann ist der Fehler im Fuss und an der Spitze halbwegs gleichmässig. Ganz vermeiden lässt sich eine Abweichung aber nur mit einer punktförmigen Rakete. Das würde zwar nciht so toll aussehen, aber alles viiiiel einfacher machen Wink

Viel Spass weiterhin!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
caelum
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 19.02.10
Wohnort: ---
Version: 2011b
     Beitrag Verfasst am: 20.02.2010, 14:08     Titel:
  Antworten mit Zitat      
wow super und vielen vielen dank für die schnelle Hilfe Smile
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 - 2025 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.