Simulating a free fall-project with ode45
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Lukas Menzel
le 22 Déc 2020
Commenté : Lukas Menzel
le 23 Déc 2020
Hallo everyone, I'm trying to simulate a free fall-project, from the stratosphere (about 50 km) to the ground. So, in order to conclude an appropriate solution, drag must be put in consideration. I've allready found a proper solution for the Euler-method, but not for the ode45-method. Furthermore I need to put the [vector-]solutions of the acceleration (the differnecial) for every single calculation-step, in the velocity terms, I mean you could realize this one easy, by putting a while-slope in the code, that the steps would repeat itself until completion. But now to my issue, I've tried many approches with the ode45-method, but non of those have worked out.
Here my code:
function [a] = Test2
start=[0];
tspan=[0 100];
[t,A] = ode45(@Beschleunigung, tspan, start);
%a(end+1) = - g + 1/(2*m)* c_w * A * rho(end)* (v(end))^2;
plot(t,A(:,1));
end
function dv = Beschleunigung(t, v)
g = 9.81;
m = 120;
c_w = 0.28;
A = 2.7;
rho = 1.2041;
dt = 0.5;
hi = 40000;
vi = 0;
t = [0]; % Deklaration des Zeit-Arrays
h = [hi]; % Deklaration des Höhe-Arrays
v = [vi]; % Deklaration des Geschwindigkeits-Arrays
a = [0]; % Deklaration des Beschleunigungs-Arrays
dv = zeros(2,1);
a=dv(1,end);
dv(1,end+1) = g-(1/2*m)*c_w*A*rho*v^2;
v(end+1)=v(end)+dv(1,end)*dt;
h(end+1)=h(end)+v(end)*dt;
t(end+1)=t(end)+dt;
end
Réponse acceptée
Alan Stevens
le 22 Déc 2020
More like this perhaps:
hi = 40000; % Initial height
start=[hi 0]; % [Initial height, initial velocity]
tspan=[0 100];
[t,A] = ode45(@Beschleunigung, tspan, start);
%a(end+1) = - g + 1/(2*m)* c_w * A * rho(end)* (v(end))^2;
subplot(2,1,1)
plot(t,A(:,1)),grid
xlabel('t'),ylabel('height')
subplot(2,1,2)
plot(t,A(:,2)),grid
xlabel('t'),ylabel('velocity')
function dv = Beschleunigung(~, hv)
g = 9.81;
m = 120;
c_w = 0.28;
A = 2.7;
rho = 1.2041;
v = hv(2); % velocity, positive downwards
dv = [-v; % dh/dt
g-1/(2*m)*c_w*A*rho*v^2]; % dv/dt
end
8 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Event Functions dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!