Pseudo coding a function help
조회 수: 7 (최근 30일)
이전 댓글 표시
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
Siyu Guo
2018년 5월 11일
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).
답변 (1개)
Jan
2018년 5월 11일
편집: Jan
2018년 5월 11일
- 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
참고 항목
카테고리
Help Center 및 File Exchange에서 CubeSat and Satellites에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!