SDS Facebook-Gruppe
Moderator: (M) Mod.-Team Allgemein
Hallo Leute,
ihr habt mir schon viel weitergeholfen und es würde mich freuen wenn ihr euch mal meine Lösung angucken würdet, denn ich weiß nicht mehr weiter:
Transformationsmatrix habe ich so wie sie hier schon mal beschrieben wurde.
Energien:
Epot = m*g*(h-s*cos(beta)*cos(gamma)); %potentielle Energie
Ekin = 1/2*(m*vabsquadrat+m*((l+s*cos(gamma)*sin(beta))^2+s^2*(sin(gamma))^2)*dalpha^2+J*dalpha^2); %kinetische Energie
mit vabsquadrat = (vabs(1))^2+(vabs(2))^2+(vabs(3))^2;
vabs = fulldiff(rabs, {alpha, beta, gamma});
und rabs ist der transformierte Vektor [0 -s 0 1].
mit den Energien berechne ich L und leite das entsprechend ab.
Meine Reibkraft:
F = -my*normvabs*vabs;
normvabs = norm(vabs);
An dieser Stelle die Frage, ob die Reibkraft richtig ist, da die etwas anders ist als die Reibkraft, die hier schon gepostet wurde. ich habe mir das wie folgt hergeleitet:
F = my*|v|^2*v/|v| => F = my*|v|*v
Das sind dann die "rechten Seiten" der Lagrange-Gleichungen:
Q1 = F(1)*dalpharabs(1) + F(2)*dalpharabs(2) + F(3)*dalpharabs(3);
Q2 = F(1)*dbetarabs(1) + F(2)*dbetarabs(2) + F(3)*dbetarabs(3);
Q3 = F(1)*dgammarabs(1) + F(2)*dgammarabs(2) + F(3)*dgammarabs(3);
mit dalpharabs = diff(rabs, alpha);
und somit ergibt sich:
LagrEq1 = Ldtdalpha - Lalpha - Q1 - M;
LagrEq2 = Ldtdbeta - Lbeta - Q2;
LagrEq3 = Ldtdgamma - Lgamma - Q3;
mit dem Motormoment aus der Aufgabenstellung.
Das berechnete d2alpha, d2beta und d2gamma setzte ich (per kopie and paste) dann in meine craneODE Funktion ein:
function dydt = craneODE(q, u, s, params)
alpha = q(1);
beta = q(2);
gamma = q(3);
dalpha = q(4);
dbeta = q(5);
dgamma = q(6);
l = params.l;
h = params.h;
k1 = params.k1;
k2 = params.k2;
m = params.m;
g = params.g;
J = params.J;
my = params.my;
d2alpha = ...;
d2beta = ...;
d2gamma = ...;
dydt = [dalpha; dbeta; dgamma; d2alpha; d2beta; d2gamma];
end
und rufe sie auf mit:
params.l = 10;
params.h = 15.5;
params.k1 = 1000;
params.k2 = 1;
params.m = 1500;
params.g = 9.81;
params.J = 24000;
params.my = 50;
q = [0.1; 0.2; 0.3; 1; 2; 3];
u = 1;
s = 2;
dydt = craneODE(q, u, s, params);
heraus kommt dann:
dydt =
1.0000
2.0000
3.0000
0.2490
18.3605
-11.8092
Das entspricht leider nicht den Testwerten aus der Hilfestellung.
Wie gesagt ich bin mit meinem Latein am Ende und habe iwie alles ausprobiert was für mich Sinn ergibt.
Ich wäre euch sehr dankbar wenn ihr mir sagen könntet wo mein Fehler liegt, denn ich möchte unbedingt mit SDS in diesem Semester abschließen.
Vielen Dank!
ihr habt mir schon viel weitergeholfen und es würde mich freuen wenn ihr euch mal meine Lösung angucken würdet, denn ich weiß nicht mehr weiter:
Transformationsmatrix habe ich so wie sie hier schon mal beschrieben wurde.
Energien:
Epot = m*g*(h-s*cos(beta)*cos(gamma)); %potentielle Energie
Ekin = 1/2*(m*vabsquadrat+m*((l+s*cos(gamma)*sin(beta))^2+s^2*(sin(gamma))^2)*dalpha^2+J*dalpha^2); %kinetische Energie
mit vabsquadrat = (vabs(1))^2+(vabs(2))^2+(vabs(3))^2;
vabs = fulldiff(rabs, {alpha, beta, gamma});
und rabs ist der transformierte Vektor [0 -s 0 1].
mit den Energien berechne ich L und leite das entsprechend ab.
Meine Reibkraft:
F = -my*normvabs*vabs;
normvabs = norm(vabs);
An dieser Stelle die Frage, ob die Reibkraft richtig ist, da die etwas anders ist als die Reibkraft, die hier schon gepostet wurde. ich habe mir das wie folgt hergeleitet:
F = my*|v|^2*v/|v| => F = my*|v|*v
Das sind dann die "rechten Seiten" der Lagrange-Gleichungen:
Q1 = F(1)*dalpharabs(1) + F(2)*dalpharabs(2) + F(3)*dalpharabs(3);
Q2 = F(1)*dbetarabs(1) + F(2)*dbetarabs(2) + F(3)*dbetarabs(3);
Q3 = F(1)*dgammarabs(1) + F(2)*dgammarabs(2) + F(3)*dgammarabs(3);
mit dalpharabs = diff(rabs, alpha);
und somit ergibt sich:
LagrEq1 = Ldtdalpha - Lalpha - Q1 - M;
LagrEq2 = Ldtdbeta - Lbeta - Q2;
LagrEq3 = Ldtdgamma - Lgamma - Q3;
mit dem Motormoment aus der Aufgabenstellung.
Das berechnete d2alpha, d2beta und d2gamma setzte ich (per kopie and paste) dann in meine craneODE Funktion ein:
function dydt = craneODE(q, u, s, params)
alpha = q(1);
beta = q(2);
gamma = q(3);
dalpha = q(4);
dbeta = q(5);
dgamma = q(6);
l = params.l;
h = params.h;
k1 = params.k1;
k2 = params.k2;
m = params.m;
g = params.g;
J = params.J;
my = params.my;
d2alpha = ...;
d2beta = ...;
d2gamma = ...;
dydt = [dalpha; dbeta; dgamma; d2alpha; d2beta; d2gamma];
end
und rufe sie auf mit:
params.l = 10;
params.h = 15.5;
params.k1 = 1000;
params.k2 = 1;
params.m = 1500;
params.g = 9.81;
params.J = 24000;
params.my = 50;
q = [0.1; 0.2; 0.3; 1; 2; 3];
u = 1;
s = 2;
dydt = craneODE(q, u, s, params);
heraus kommt dann:
dydt =
1.0000
2.0000
3.0000
0.2490
18.3605
-11.8092
Das entspricht leider nicht den Testwerten aus der Hilfestellung.
Wie gesagt ich bin mit meinem Latein am Ende und habe iwie alles ausprobiert was für mich Sinn ergibt.
Ich wäre euch sehr dankbar wenn ihr mir sagen könntet wo mein Fehler liegt, denn ich möchte unbedingt mit SDS in diesem Semester abschließen.
Vielen Dank!
Code: Alles auswählen
m*((l+s*cos(gamma)*sin(beta))^2+s^2*(sin(gamma))^2)*dalpha^2
Bei mir sieht das folgendermaßen aus:
Code: Alles auswählen
% Geschwindigkeit berechnen
dr = fulldiff(r,{alpha,beta,gamma});
v = sqrt(sum(dr.^2));
% Kinetische und potentielle Energie aufstellen
T = 0.5*v^2*m+0.5*dalpha^2*J;
V = m*g*r(3);
L = T-V;
Zuletzt geändert von Supakane am Mi, 19. Mär. 14, 02:09, insgesamt 1-mal geändert.
Das kommt von:
1/2*Jm*dalpha^2
wobei Jm das Trägheitsmoment der Masse in Bezug auf die Drehachse ist.
Jm = m*r^2
mit r Abstand der Masse von der Drehachse:
r = l + s*cos(gamma)*sin(beta))^2 + s^2*sin^2(gamma)
Ich habe den Term weggelassen und jetzt funktioniert es.
Ganz dickes Dankeschön, dass du dir die Zeit genommen hast!
1/2*Jm*dalpha^2
wobei Jm das Trägheitsmoment der Masse in Bezug auf die Drehachse ist.
Jm = m*r^2
mit r Abstand der Masse von der Drehachse:
r = l + s*cos(gamma)*sin(beta))^2 + s^2*sin^2(gamma)
Ich habe den Term weggelassen und jetzt funktioniert es.
Ganz dickes Dankeschön, dass du dir die Zeit genommen hast!
Das Trägheitsmoment vom Kran war gegeben. Ayanda hat aber versucht, das Trägheitsmoment der Last aufzustellen. Das ist aber in diesem Fall nicht erforderlich, da es sich um eine Punktmasse handelt und die Energie, die in der Rotation um die Drehachse steckt, bereits in [tex]\frac{1}{2}mv^2[/tex] mit [tex]v[/tex] als Absolutgeschwindigkeit berücksichtigt wird.
https://www.google.com/search?q=fulldiff+matlabcheftony hat geschrieben:moin,
ich krieg bei matlab folgende fehlermeldung
Undefined function 'fulldiff' for input arguments of type 'sym'.
v0 = fulldiff(r0, {alpha, beta, gamma});
v0 und r0 sind im 0ten system
und
syms alpha beta gamma
weiß jemand was das sein könnte
Erster Eintrag. Runterladen und ins Arbeitsverzeichnis.
Moin! Hatte jmd. von euch schon die mündl. Prüfung in SDS (ist für eine Note ja erforderlich)?
Was wurde dabei so gefragt? Ein Protokoll ist leider nirgends auffindbar
Besten Dank für jede Info!
Was wurde dabei so gefragt? Ein Protokoll ist leider nirgends auffindbar
Besten Dank für jede Info!
0110100001110100011101000111000000111010001011110010111101100010011010010111010000101110011011000111100100101111011000010110010001010100011010010110100001000011
-
- TalkING. Freak
- Beiträge: 125
- Registriert: Mo, 03. Jan. 11, 07:51