Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 140 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
140
Dung lượng
1,05 MB
Nội dung
Relative Maneuvering of an Inspector Satellite in Geosynchronous Orbit Using Solar Radiation Pressure A thesis submitted to the Division of Research and Advanced Studies of the University of Cincinnati in partial fulfillment of the requirements for the degree of MASTERS OF SCIENCE in the Department of Aerospace Engineering and Engineering Mechanics of the College of Engineering 2008 by Eric P Riedl B.S., University of Cincinnati, Cincinnati, Ohio, 2003 Thesis Advisor and Committee Chair: Dr Trevor Williams Abstract This problem deals with maneuvering an inspector satellite relative to a leader satellite in a geosynchronous orbit around the Earth For this specific problem, the satellite utilizes a unique method to accomplish these maneuvers Typical satellites perform orbital maneuvering by means of conventional thrusters While thrusters are a proven, reliable method for maneuvering a satellite, they will always lead to constraints on satellite lifetime The current study explores a means of orbital maneuvering in which thrusters are replaced with a device capable of accomplishing the same maneuvers while increasing satellite lifetime Specifically, instead of using thrusters, all of the propulsive force comes from a solar wing This analysis explores two separate maneuvers using solar radiation pressure as the propulsive force The first maneuver that is examined is a point-to-point maneuver, simulating an inspector satellite performing an inspection on a leader in GEO The second maneuver that is investigated is a station-keeping maneuver In this case the goal is to keep the satellite within a certain tolerance in the along-track direction using solar pressure as the propulsive force iii iv Acknowledgements I would like to thank my advisor Dr Williams for his guidance during the course of my thesis research He introduced me to the topics of solar sailing and relative motion of satellites Throughout the course of my work he provided great feedback and pushed me to further investigate maneuvering with solar radiation pressure I would also like to thank my committee for taking the time to review my thesis and provide feedback on the work I have done Finally, I would like to thank my friends and family who supported me throughout my entire academic career I would especially like to thank my parents, Helmut and Shirley Riedl, for their constant support Without them I would not be where I am today v TABLE OF CONTENTS List of Figures List of Tables Nomenclature 1.0 1.1 Problem Definition 1.2 2.0 Introduction Classical Orbital Elements Geosynchronous Orbital Perturbations 2.1 Introduction 2.2 Coordinate Systems 2.3 Variation of Parameters 10 2.4 Perturbation Forces 13 2.4.1 Aerodynamic Drag 13 2.4.1.1 Introduction 13 2.4.1.2 Mathematical Foundations 14 2.4.1.3 Results 14 Gravitational Harmonics 15 2.4.2.1 Introduction 15 2.4.2.2 Mathematical Foundations 17 2.4.2.3 Results 18 Third Body Perturbations 21 2.4.3.1 Introduction 21 2.4.3.2 Mathematical Foundations 21 2.4.2 2.4.3 vi 2.4.3.3 Results 23 23 2.4.4.2 Mathematical Foundations 23 2.4.4.3 Results 2.5 Solar Radiation Pressure 2.4.4.1 Introduction 2.4.4 22 28 Point-to-Point Maneuvering 39 Problem Definition 39 3.2 Assumptions 40 3.3 Maneuver Definition 43 3.4 Mathematical Foundations 45 3.5 Results 49 3.6 Conclusions 71 Station-Keeping Maneuver 74 4.1 Problem Definition 74 4.2 Assumptions 74 4.3 Maneuver Definition 75 4.4 Mathematical Foundations 77 4.5 4.0 36 3.1 3.0 Conclusions Results 78 4.5.1 5.0 78 4.5.2 4.6 Varying Maneuver Time Velocity Characterization 92 Conclusions 93 Final Conclusions 96 vii 6.0 Future Work 98 7.0 References 100 Appendix A Point-to-Point Matlab Code 103 Appendix B Station-Keeping Maneuver Matlab Code 115 viii LIST OF FIGURES Orbital Element Locations Planar Orbital Element Definition RSW Coordinate System 10 Zonal Harmonics 16 Sectorial Harmonics 17 Tesseral Harmonics 17 Acceleration in the R-Direction Due to J2 19 Acceleration in the S-Direction Due to J2 20 Acceleration in the W-Direction Due to J2 20 10 Obliquity of the Ecliptic 27 11 Acceleration along the R-Axis Due to Solar Radiation Pressure 28 12 Acceleration along the S-Axis Due to Solar Radiation Pressure 29 13 Acceleration along the W-Axis Due to Solar Radiation Pressure 30 14 Time Rate of Change of Semi-Major Axis 31 15 Time Rate of Change of Eccentricity 33 16 Time Rate of Change of Inclination 33 17 Time Rate of Change of Longitude of the Ascending Node 18 Time Rate of Change of Argument of Perigee 35 19 Inspector Satellite with Solar Wing 40 20 Solar Radiation Pressure Direction 42 21 Inspector Target and the Target Tolerance 44 22 Position Plot for 10 meter Along Track meter Radial Maneuver 52 ix ………34 23 Final Position Plot for 10 meter Along Track meter Radial Maneuver (Zoom) 53 24 Velocity Plot for 10 meter Along Track meter Radial Maneuver 54 25 Position Plot for 10 meter Along Track 55 meter Radial with Initial Velocity 26 Velocity Plot for 10 meter Along Track meter Radial with Initial Velocity 27 56 Position Plot for 10 meter Along Track meter Radial Maneuver with Initial 57 Velocity and Correction Factor 28 Velocity Plot for 10 meter Along Track meter Radial Maneuver with Initial Velocity and Correction Factor 58 29 Position Plot for 10 meter Along Track Maneuver 59 30 Final Position Plot for 10 meter Along Track Maneuver (Zoom) 60 31 Velocity Plot for 10 meter Along Track Maneuver 60 32 Position Plot for 50 meter Along Track Maneuver 62 33 Velocity Plot for 50 meter Along Track Maneuver 63 34 Position Plot for 100 meter Along Track Maneuver 64 35 Velocity Plot for 100 meter Along Track Maneuver 65 36 Position Plot for 20 meter Along Track Fly-Around Maneuver 66 37 Velocity Plot for 20 meter Along Track Fly-Around Maneuver 67 38 Along-Track Position vs Coast Time 69 39 Radial Position vs Coast Time 69 40 Acceleration and Deceleration vs Coast Time 70 x x2v(j)=(-3*n*tfinal(j)*axd+n*cos(n*tfinal(j))*(4*((-azd/(2*n))+xnotdotd)-6*n*znotd)+n*((azd/(2*n))3*(-(azd/(2*n))+xnotdotd)+6*n*znotd)+2*n*sin(n*tfinal(j))*(((2*axd)/n)+znotdotd))/n; z2v(j)=((-2*axd)-((n*sin(n*tfinal(j)))*(2*((-azd/(2*n))+xnotdotd)(3*n*znotd)))+((n*cos(n*tfinal(j)))*(((2*axd)/n)+znotdotd)))/n; % This computes the accelerations that correspond with the maneuver x2accel(j)=(2*(((2*ax)/n)+zdotnot)*cos(n*tfinal(j))*(n^2)-(4*(xdotnot-(az/(2*n)))6*n*znot)*sin(n*tfinal(j))*(n^2)-3*ax*n)/n; z2accel(j)=(-(2*(xdotnot-(az/(2*n)))-3*n*znot)*cos(n*tfinal(j))*(n^2)(((2*ax)/n)+zdotnot)*sin(n*tfinal(j))*(n^2))/n; end % Now we compute the error between the calculation and and the actual % motion This will be expressed in a percentage % xerror=abs((x1(:,k)-xtau)/xtau)*100; % zerror=abs((z1(:,k)-ztau)/ztau)*100; % xerrorf=abs((x2(:,j)-xtauf)/xtauf)*100; % zerrorf=abs((z2(:,j)-ztauf)/ztauf)*100; % Now we compute the error matrix % errormatrix=[xerror zerror; xerrorf zerrorf] xf=x2(:,j) zf=z2(:,j) xvf=x2v(:,j) zvf=z2v(:,j) deltax=xtauf-xf deltaz=ztauf-zf deltaxv=0-xvf deltazv=0-zvf plot(x1,z1,'r') hold on 112 plot(xnot,znot,'o') hold on plot(x1(:,k),z1(:,k),'x') hold on plot(xc,zc,'b') hold on plot(xc(:,c),zc(:,c),'+') hold on plot(xtauf,ztauf,'p') hold on plot(x2,z2,'g') grid xlabel('x position in meters') ylabel('z position in meters') title('x vs z for Transfer Time Tau') figure plot(x1v,z1v,'r') hold on plot(0,0,'o') hold on plot(x1v(:,k),z1v(:,k),'x') hold on plot(xvc,zvc,'b') hold on plot(xvc(:,c),zvc(:,c),'+') hold on plot(x2v,z2v,'g') grid 113 xlabel('x velocity in m/s') ylabel('z velocity in m/s') title('x velocity vs z velocity') 114 APPENDIX B STATION KEEPING MANEUVER MATLAB CODE 115 % This file contains the code for the single axis (radial) feedback control of a inspector % satellite in GEO This control is setup using deadbands The only % thrusting force that can be applied is that due to solar radiation % pressure clear all clc close all +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % Initialize everything +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % First we insert the known values for the Earth's gravitational parameter, % and the semi-major axis of the Earth From this we can calculate some of % the required initial conditions a=42164; % This is the semimajor axis of the orbit in km mu=398600; %km^3/s^2 this is the gravitational parameter for the Earth % Computation of the mean motion of the satellite n=sqrt(mu/(a^3)); % mean motion % These are the initial values that are used to calculate the acceleration % due to solar radiation pressure Area=1.0; m=20; SRP=4.51e-6; betar=1; % Reflective area in m^2 % Mass of the satellite in kg % Solar radiation pressure in n/m^2 % Optical reflection constant rsunorbit=149598550*1000; % AU asunorbit=149598550*1000; % AU % The force due to solar radiation pressure is a constant, and will vary % when applied to the RSW coordiante system 116 asrp = (SRP*(1+betar)*(Area/m)*(asunorbit/rsunorbit)^2); % This is the acceleration due to solar radiation pressure % Now we need to enter the initial conditions for the inspector satellite % These values come from the program CWtrans.m which calculates and plots % the maneuvering of a satellite from 40,-1 to 50,0 using solar radiation % pressure as the sole means of propulsion xtarget = 50.0; % along track in meters ztarget = 0.0; % radial direction in meters tmaneuver=43000; time = 82164*6; acceltime = 0; x0 = 49.8029; % total time for point to point maneuver % total simulation time in seconds % initialize maneuver accelertion time % starting position in meters xdot0=-1.2930e-005; % starting velocity in m/s xdot=xdot0; % Velocity of the satellite while it is between the deadband z0=-0.0092; % starting position in meters zdot0=-2.2187e-006; % starting velocity in m/s zdot=zdot0; % Velocity of the satellite while it is between the deadbands % Now I set up the initial conditions for the maneuver, these come from the % initial (i.e 'not') values x(1) = x0; z(1) = z0; xdot(1) = xdot0; zdot(1) = zdot0; outsidedb(1,1:2) = [0 0]; insidedb(1,1:2) = [0 0]; targetdb(1,1:2) = [0 0]; hitdb = [0 0]; zdote = zdot(1); 117 xdote = xdot(1); ze = z(1); xe = x(1); dt = 30; % Time step (seconds) te = 0; % These are the deadband counters that track the number of times the % satellite crosses the deadbands deadband_counter = [0 0]; dberr = 0; % Counts number of deadband crossings (cnt) % Failed db if logic (cnt) k = 1; % For loop index reset = 0; % set reset flag to accelflag = 0; % First we need to setup the deadbands for the simulation % xdot % ^ % \ \ | \ \ % \ \ | \ \ % \ \ | \ \ % -alpha1 -alpha0 | alpha0 alpha1 % % \ \ | \ \ + -> x % \ \ | \ \ % \ \ | \ \ % alpha1 = 1.5; % % Outer deadband (m) alpha0 = 0.5 * alpha1; tau = -100; % Inner deadband (m) % Slope of the deadband lines % +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 118 % Now that the deadbands are in place, we need to setup the equations that % will govern the motion of the inspector satellite when it is in the % deadband area and when thrusting motion is required When the satellite % is between the deadbands the motion is goverened by the CW coasting % equations When the satellite is outside of the deadbands and thrusting % is required, the closed form solutions of the CW equations are used to % solve the for the positions and the velocities of the satellite during a % thrusting maneuver % The first step is to calculate the vector required to get the satellite % back between the deadbands We always wish for the satellite to end up % at the nominal point 50, so these are the points we use for the target % To be accurate with the computations, we setup a "flag" that will let us % know which condition to use for the accelerations dependent upon where % the satellite is located within or outside the deadbands If the % satellite is within the deadbands, the flag will set the accelerations to % zero, which coincides with the coasting motion If the satellite is to % the left of the deadbands, a positive acceleration is applied to the % satellite until it enters the deadbands again Once in the deadbands, % the acceleration is set to zero Conversely, if the satellite is to the % right of the deadbands a negative acceleration is applied % +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % Now we setup the feedback controller for (t=dt:dt:time) k = k+1; if ((xdot(k-1) >= (1/tau) * (x(k-1)-(50+alpha1))) || (xdot(k-1) 50 angle = -(pi/2) else angle = (pi/2) end if xe>50&ze>0 121 display('Quadrant 1') %% ang=(pi/2)-abs(thrust_angle); %% angle=(-pi/2)-ang % angle=-abs(thrust_angle) int_angle=((3*pi)/2)+abs(thrust_angle); % angle=(1.5*pi)-abs(int_angle) angle=abs(int_angle); elseif xe0 display('Quadrant 2') int_angle=(pi/2)-abs(thrust_angle); % angle=(pi)-abs(int_angle) angle=int_angle; elseif xe 0) acceltime = acceltime - dt; accelflag = 1; else if (accelflag == 1) zdote = zdot(k-1); xdote = xdot(k-1); ze = z(k-1); xe = x(k-1); te = dt; accelflag = 0; end ax = 0.0; az = 0.0; end end % end of of the world as we know it %CW Equations 123 x(k)=(-2*(zdote+((2*ax)/n))*cos(n*te)+(4*(xdote-(az/(2*n)))-6*n*ze)*sin(n*te)1.5*ax*n*(te)^2+(6*n*ze-3*(xdote-(az/(2*n)))+(az/(2*n)))*n*te+(n*xe+2*(zdote+((2*ax)/n))))/n; z(k)=((2*(xdote-(az/(2*n)))-3*n*ze)*cos(n*te)+(zdote+((2*ax)/n))*sin(n*te)-2*ax*te+(4*n*ze2*(xdote-(az/(2*n)))))/n; % This computes the velocities that correspond with the positions calculated above xdot(k)=(-3*n*te*ax+n*cos(n*te)*(4*((-az/(2*n))+xdote)-6*n*ze)+n*((az/(2*n))-3*((az/(2*n))+xdote)+6*n*ze)+2*n*sin(n*te)*(((2*ax)/n)+zdote))/n; zdot(k)=((-2*ax)-((n*sin(n*te))*(2*((-az/(2*n))+xdote)(3*n*ze)))+((n*cos(n*te))*(((2*ax)/n)+zdote)))/n; % Here we solve for the accelerations that correspond with each time step xddot(k)=(2*(((2*ax)/n)+zdote)*cos(n*te)*(n^2)-(4*(xdote-(az/(2*n)))-6*n*ze)*sin(n*te)*(n^2)3*ax*n)/n; zddot(k)=(-(2*(xdote-(az/(2*n)))-3*n*ze)*cos(n*te)*(n^2)-(((2*ax)/n)+zdote)*sin(n*te)*(n^2))/n; end % Cross your fingers and hope to hell this works figure(1) plot(x, xdot) hold on plot(x(1),xdot(1),'o') hold on plot(xtarget,ztarget,'r+') hold on grid on plot([49-1:0.001:49+1],tau*[49-1:0.001:49+1]-49*tau,'g ') plot([51-1:.001:51+1],tau*[51-1:.001:51+1]-51*tau,'g ') axis([30 60 -0.01 0.01]) xlabel('X-position in meters') ylabel('X-velocity in m/sec') 124 title('Along Track Velocity') % figure(2) % plot([0:dt:time],outsidedb) % figure(3) % plot([0:dt:time],insidedb) % figure(4) % plot([0:dt:time],inbetweendb) hold on; figure(2) plot(z,zdot) hold on plot(z(1),zdot(1),'o') hold on plot(0,0,'r+') hold on grid on % plot([0.5-1:0.001:0.5+1],tau*[0.5-1:0.001:0.5+1]-0.5*tau,'g ') % plot([-0.5-1:.001:-0.5+1],tau*[-0.5-1:.001:-0.5+1]-(-0.5)*tau,'g ') % axis([-5 -0.005 0.005]) xlabel('Z-position in meters') ylabel('Z-velocity in m/sec') title('Radial Velocity') % figure(3) plot(x,-z) hold on plot(x(1),z(1),'o') hold on 125 plot(50,0,'r+') hold on plot(49,(-20:0.5:20),'r ') plot(51,(-20:0.5:20),'r ') hold on grid on xlabel('X-position in meters') ylabel('Z-position in meters') title('In-Plane Motion') 126