1 Variable wird nicht in der Formel benötigt aber hat irgendwie relevanz
Show older comments
Ich habe eine Übungsaufgabe von meinem Prof. bekommen. Anbei haben wir eine Lösung bekommen in der eine Funktion beschrieben wird die im Hauptcode aufgerufen wird.
Diese Funktion Ue_6_1_f(t,x) hat 2 Variablen die ihr übergeben werden. Jedoch wird im Code die Variable "t" nicht verwendet, das Ergebnis verändert sich über die Zeit jedoch. Das sollen zwei Differenzialgleichungen sein, die in der Funktion bearbeitet werden. Vielleicht könnt ihr mir ja helfen.
%Übung 6 A1 DGL. DynamischeProbleme
clear all, close all, clc;
global a1 s1 a2 s2 m1 m2 TS1 TS2 g
a1=3;
s1=1.5;
a2=1.8;
s2=0.9;
m1=10;
m2=80;
TS1=7.5;
TS2=20;
g=9.81;
tend=1.59; %Zeitpunkt, an dem der Clown den Boden berührt(ausprobieren)
%Anfangswerte
a0=10; % anfänglicher Leiterwinkel
b0=11.03; % anfänglicher Clownwinkel
x0=[a0*pi/180; b0*pi/180; 0; 0]; %Angaben im Bogenmaß[rad]
%Runge/Kutta 4./5. Ordnung
[t,x]=ode45('Ue_6_1_f',[0 tend],x0);
alpha=x(:,1)*180/pi; % berechneter Leiterwinkel ueber der Zeit
beta=x(:,2)*180/pi; % berechneter Clownwinkel ueber der Zeit
plot(t,alpha,t,beta,'linewidth',2);
figure(2)
for i=1:length(t)
x1=a1*sin(x(i,1)); % Polarkoordinaten für Leiterwinkel
y1=a1*cos(x(i,1));
x2=x1+s2*sin(x(i,2)); %Polarkoordinaten für Clownwinkel
y2=y1+s2*cos(x(i,2));
%zeichne Leiter von 0;0 nach x1;y1, rote Linie, Bubble an Punkten...
plot([0 x1],[0 y1],'r-o',[x1 x2],[y1 y2],'b-o',...
'linewidth',2);
%Umskalieren zwischen den einzelnen Plots verhindern
xlim([-a1-s2 a1+s2]);
ylim([-a1-s2 a1+s2]);
axis off;
pause(0.05);
end
function xp = Ue_6_1_f(t,x)
%Aufgabe 6.1: Clown auf Leiter - Funktion
global a1 s1 a2 s2 m1 m2 TS1 TS2 g
a=x(1);
b=x(2);
ap=x(3);
bp=x(4);
%Kochrezept:
%DGLs in die Form bringen:
%y_1pp(Faktor_1) + y2pp(Faktor_2) + ...+ ynpp(Faktor_n) = restliche Terme
%Massenmatrix:
%M = [ app-Faktor-erste-DGL bpp-Faktor-erste-DGL
% app-Faktor-zweite-DGL bpp-Faktor-zweite-DGL]
M=[TS1+m1*s1^2+m2*a1^2 m2*a1*s2*cos(a-b)
m2*a1*s2*cos(a-b) TS2+m2*s2^2];
%Rechte Seite:
%h = [restliche_Terme_erste_DGL
% restliche_Terme_zweite_DGL]
h=[-m2*a1*s2*bp*sin(a-b)+(m1*s1+m2*a1)*g*sin(a);
m2*a1*s2*ap^2*sin(a-b)+m2*s2*g*sin(b)];
ypp=M\h;
xp=[ap; bp; ypp(1); ypp(2)];
end
Accepted Answer
More Answers (0)
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!