Advertisement
Guest User

Untitled

a guest
Jan 17th, 2020
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.63 KB | None | 0 0
  1. clc
  2. clear all
  3. global M Re J2 %for state space
  4. Rvektor0=1000*[-2.3689 4.2406 6.502]; %km
  5. Vvektor0=[-6.8283,-1.5083,-0.428];%km/sec
  6. M=398603;%km^3/sec^2
  7. Re=6378;%km
  8. J2=1.082*10^(-3);
  9. R0=norm(Rvektor0);%|R|
  10. V0=norm(Vvektor0);%|V|
  11. Tamount=864e3; % Simulation duration [sec]
  12. t=0:8.64:864000;
  13.  
  14. %Q1a-
  15.  
  16. opts = odeset('RelTol',1e-8,'AbsTol',1e-10); % Acceptable error
  17. [t1,Rvektor]=ode45(@tr3statespace,t,[Rvektor0 Vvektor0]',opts);
  18. rvektor=[Rvektor(:,1),Rvektor(:,2),Rvektor(:,3)]; %the position vector in time [km]
  19. vvektor=[Rvektor(:,4),Rvektor(:,5),Rvektor(:,6)]; %the velocity vector in time [km/sec]
  20. for i=1:(length(t)/10)
  21. r(i)=norm(rvektor(i,:)); %radius value in time km
  22. v(i)=norm(vvektor(i,:)); %velocity value in time km/sec
  23. epsilon(i)=((v(i))^2)/2-M/r(i); %specific energy km^2/sec^2
  24. hv(i,:)=cross(rvektor(i,:),vvektor(i,:)); %Specific Angular Momentum Vector km^2/sec
  25. h(i)=norm(hv(i,:)); %Specific Angular Momentum km^2/sec
  26. %Orbit Angle [rad]:
  27. phi(i)=(acos(h(i)/(r(i)*v(i))));
  28. if((rvektor(i,:)*(vvektor(i,:))')<0)
  29.    phi(i)=-phi(i);
  30. end
  31. t_sug(i)=t(i);
  32. end
  33. figure(1)
  34. p=plot3(rvektor(:,1),rvektor(:,2),rvektor(:,3))
  35. p.LineWidth = 1;
  36. pbaspect([1 1 1]);
  37. title('The Satellite movement around earth')
  38. xlabel('x [km]');
  39. ylabel('y [km]');
  40. zlabel('z [km]');
  41.  
  42. figure(2)
  43. plot(t_sug,epsilon)
  44. title('Satellite Specific Energy - \epsilon(t)[km^2/sec^2]')
  45. ylabel('epsilon [km^2/sec^2]');
  46. xlabel('time [sec]');
  47. grid on
  48. figure(3)
  49. plot(t_sug,h)
  50. title('Satellite Specific Angular Momentum  h(t)[km^2/sec]')
  51. ylabel('h [km^2/sec]');
  52. xlabel('time [sec]');
  53. grid on
  54. figure(4)
  55. plot(t_sug,r)
  56. title('Satellite Motion Radius  r(t) [km]')
  57. ylabel('r [km]');
  58. xlabel('time [sec]');
  59. grid on
  60. figure(5)
  61. plot(t_sug,v)
  62. title('Satellite Motion Velocity  v(t) [km/sec]')
  63. ylabel('v [km/sec]');
  64. xlabel('time [sec]');
  65. grid on
  66. figure(6)
  67. plot(t_sug,phi)
  68. title('Satellite Orbit Angle - \phi (t) [rad]')
  69. ylabel('phi [rad]');
  70. xlabel('time [sec]');
  71. grid on
  72.  
  73. %Q1b-
  74.  
  75. opts = odeset('RelTol',1e-8,'AbsTol',1e-10); % Acceptable error
  76. [t,Rvektor2]=ode45(@tr3statespacenonsphere,t,[Rvektor0 Vvektor0]',opts);
  77. rvektor2=[Rvektor2(:,1),Rvektor2(:,2),Rvektor2(:,3)]; %the position vector in time [km]
  78. vvektor2=[Rvektor2(:,4),Rvektor2(:,5),Rvektor2(:,6)]; %the velocity value in time [km/sec]
  79. for i=1:(length(t)/10)
  80. r2(i)=norm(rvektor2(i,:)); %radius value in time km
  81. v2(i)=norm(vvektor2(i,:)); %velocity value in time km/sec
  82. epsilon2(i)=((v2(i))^2)/2-M/r2(i); %specific energy km^2/sec^2
  83. hv2(i,:)=cross(rvektor2(i,:),vvektor2(i,:)); %Specific Angular Momentum Vector km^2/sec
  84. h2(i)=norm(hv2(i,:)); %Specific Angular Momentum km^2/sec
  85. %Orbit Angle [rad]:
  86. phi2(i)=(acos(h2(i)/(r2(i)*v2(i))));
  87. if((rvektor2(i,:)*(vvektor2(i,:))')<0)
  88.    phi2(i)=-phi2(i);
  89. end
  90. t_sug2(i)=t(i);
  91. end
  92.  
  93. figure(7)
  94. p=plot3(rvektor2(:,1),rvektor2(:,2),rvektor2(:,3))
  95. p.LineWidth = 1;
  96. pbaspect([1 1 1]);
  97. title('The Satellite movement around earth')
  98. xlabel('x [km]');
  99. ylabel('y [km]');
  100. zlabel('z [km]')
  101.  
  102. figure(8)
  103. plot(t_sug2,epsilon2)
  104. title('Satellite Specific Energy - \epsilon(t)[km^2/sec^2]')
  105. ylabel('epsilon [km^2/sec^2]');
  106. xlabel('time [sec]');
  107. grid on
  108.  
  109. figure(9)
  110. plot(t_sug2,h2)
  111. title('Satellite Specific Angular Momentum  h(t)[km^2/sec]')
  112. ylabel('h [km^2/sec]');
  113. xlabel('time [sec]');
  114. grid on
  115. figure(10)
  116. plot(t_sug2,r2)
  117. title('Satellite Motion Radius  r(t) [km]')
  118. ylabel('r [km]');
  119. xlabel('time [sec]');
  120. grid on
  121. figure(11)
  122. plot(t_sug2,v2)
  123. title('Satellite Motion Velocity  v(t) [km/sec]')
  124. ylabel('v [km/sec]');
  125. xlabel('time [sec]');
  126. grid on
  127. figure(12)
  128. plot(t_sug2,phi2)
  129. title('Satellite Orbit Angle  \phi (t) [rad]')
  130. ylabel('\phi [rad]');
  131. xlabel('time [sec]');
  132. grid on
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement