Pseudo coding a function help
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a code that i need to pseudo code and i am not fully understanding the script can someone please explain what the script is doing exactly.
Grav=6.67408*10^-11;
Mass=5.9722*10^24;
sat_mass=1000;
dt=10;
r(1,:)=[8*10^6,0,0];
r0=[8*10^6,0,0];
v(1,:)=[0, sqrt(Grav*Mass/norm(r0,2)),0];
for i=2:10000
a(i,:)=(-Grav*Mass)/norm(r(i-1,:),2)^2*r(i-1,:)/norm(r(i-1,:),2);
v(i,:)=v(i-1,:)+a(i-1,:)*dt;
r(i,:)=r(i-1,:)+v(i-1,:)*dt;
end
plot(r(:,1),r(:,2))
3 commentaires
Siyu Guo
le 11 Mai 2018
The code should be quite clear. r stands for the 3D coordinates of the sat, v its velocity vector, and a its acceleration vector. A straightforward Euler method to solve the Newtonian equation (an ODE).
Réponses (1)
Jan
le 11 Mai 2018
Modifié(e) : Jan
le 11 Mai 2018
- Some parameters are defined
- The start point is set to r0 and the initial velocity to v(1,:)
- A loop runs over 10000 time steps
- Inside the loop, the current acceleration a is calculated by the law of gravity
- The acceleration multiplied by a time step changes the current velocity
- The current velocity multiplied by a time step changes the current position
- Next iteration of the loop
- Plot the trajectory
"not fully understanding the script" is not useful as a question in the forum. Should we explain "sat_mass=1000;" also?! Prefer to ask a specific question.
By the way, isn't it suspicious that sat_mass is defined, but not used anywhere?
Maybe I've solved your homework now. This would be a pity. But you are working with Matlab for at least 1.5 years now, so you should be familiar with the basics.
0 commentaires
Voir également
Catégories
En savoir plus sur CubeSat and Satellites dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!