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

Plotten eines 3D Vektors

 

Matse1878
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 03.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2018, 09:48     Titel: Plotten eines 3D Vektors
  Antworten mit Zitat      
Hallo Leute,

ich war hier schonmal angemeldet und auch aktiv, aber leider weiß ich meinen Benutzername nicht mehr.

Ich hätte auch mal wieder eine Frage und zwar habe ich ein Problem mit der Funktion unten. Ich möchte einen Massepunkt mit dem Gewicht von 35kg und dem Abstand von meinem Koordinatensystems r=1m drehen, bzw. das Koordinatensystem dreht sich mit der Masse und ich möchte immer wissen in welchen Anteilen meine Gewichtskraft sich aufteilt. Dazu benutze ich die Rotationsmatrizen (hab die Tool-Box nicht für die in Matlab integrierten Matrizen). Vielleicht könnte einer mal kurz drüber schauen ob das richtig ist, aber meine eigentliche Frage ist:
-ich möchte jetzt z über y plotten (z ist die Achse in der meine Gewichtskraft zeigt), mein Moment welches erzeugt wird durch den Hebelarm r um die Z-Achse bei Neigung und die Kraft in X-Richtung

Code:
function [ x,y,z ] = RotationF(alpha,beta,phi )
%UNTITLED4 Summary of this function goes here
%   Detailed explanation goes here
phi = phi*pi/180;
alpha = alpha*pi/180;
beta = beta*pi/180;

m = 35;   %Gewicht
g = 10; %Erdbeschleunigung
r = 1;    %Abstand zum SP


Ralpha = [1 0 0;0 cos(beta) -sin(beta);0 sin(beta) cos(beta)];
Rbeta = [cos(alpha) 0 sin(alpha);0 1 0;-sin(alpha) 0 cos(alpha)];
Rphi = [cos(phi) -sin(phi) 0;sin(phi) cos(phi) 0; 0 0 1];

teta = [r; 0; -m*g;];



Rneu = Rphi*Rbeta*Ralpha;

v = Rneu*teta;

[x,y,z] = v


end


Bild2.png
 Beschreibung:
Schematische Aufbau für das Drehen um die X-Achse

Download
 Dateiname:  Bild2.png
 Dateigröße:  28.24 KB
 Heruntergeladen:  229 mal
Gui.PNG
 Beschreibung:
Die Gui die ich Baue

Download
 Dateiname:  Gui.PNG
 Dateigröße:  22.59 KB
 Heruntergeladen:  224 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 06.12.2018, 16:48     Titel: Re: Plotten eines 3D Vektors
  Antworten mit Zitat      
Hallo Matse1878,

Zitat:
-ich möchte jetzt z über y plotten (z ist die Achse in der meine Gewichtskraft zeigt), mein Moment welches erzeugt wird durch den Hebelarm r um die Z-Achse bei Neigung und die Kraft in X-Richtung

Was genau ist Deine Frage?

Was ist der Zweck von "[x,y,z] = v "?

Deine Rotation-Matrix verwendet die Euler-Winkel, um genau zu sein Cardanische Winkel. Ob das "richtig" ist hängt davon ab, wie alpha, beta, gamma definiert ist.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Matse1878
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 03.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.12.2018, 17:09     Titel:
  Antworten mit Zitat      
Hallo Jan,

meine Frage ist, wie Plotte ich den Vektor im 3D Plot. Ich habe meine Funktion schon selber überarbeitet und es funktioniert im 2D Plot.
Aber wie bekomme ich jetzt einen 3D Plot wie dem im angehängten Bild. Dieser Plot stammt von einem youtube Video der es in Python implementiert hat (http://www.cbcity.de/tutorial-rotationsmatrix-und-quaternion-einfach-erklaert-in-din70000-zyx-konvention), nur hat er einen Vektor in Fzg-Längsachse benutzt und ich möchte die Gewichtskraft in Abhängigkeit vom Winkel im 3D Plot darstellen.

Danke schon mal Smile


Code:
function [ x,y,z,v ] = RotationF(alpha,beta,phi,m )
%UNTITLED4 Summary of this function goes here
%   Detailed explanation goes here
phi = phi*pi/180;       %Türwinkel
alpha = alpha*pi/180;   %Nicken
beta = beta*pi/180;     %Rollen

%m = 1;   %Gewicht der Tür
g = 1;   %Erdbeschleunigung
%r = 0;   %Abstand zum SP


Ralpha = [1 0 0;0 cos(beta) -sin(beta);0 sin(beta) cos(beta)];
Rbeta = [cos(alpha) 0 sin(alpha);0 1 0;-sin(alpha) 0 cos(alpha)];
Rphi = [cos(phi) -sin(phi) 0;sin(phi) cos(phi) 0; 0 0 1];

teta = [0; 0; -m*g;];



Rneu = Rphi*Rbeta*Ralpha;

v = Rneu*teta;

x=v(1,1);
y=v(2,1);
z=v(3,1);

x = [v(1,1);0;0;];
y = [0;v(2,1);0];
z = [0;0;v(3,1)];


end


3d.PNG
 Beschreibung:
3D-Plot

Download
 Dateiname:  3d.PNG
 Dateigröße:  31.86 KB
 Heruntergeladen:  264 mal
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.