Demonstrate combined simulation for a sail in a LEO 28.5 degree orbit.
The gravity model is a 4x4. The disturbances will all default to on unless you add overrides to turn them off (drag, gravity gradient, etc).
Since version 9. ------------------------------------------------------------------------ See also: FSailCombined SailEnvironment SailDisturbance SailEphemEarth FOrbitSingle ST9Guidance, Altitude, QZero, AssignFHandle, Figui, InformDlg, Plot2D, Unit, Date2JD, El2RV, PltOrbit, SunV1, DisturbanceStruct, EnvironmentStruct, DrawSailAttitude, PlotSailForce, PlotSailProfile, DisplaySailProperties ------------------------------------------------------------------------
Contents
%--------------------------------------------------------------------------- % Copyright (c) 2007, 2010 Princeton Satellite Systems, Inc. % All rights reserved. %--------------------------------------------------------------------------- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%% USER PARAMETERS
Number of days to simulate
%---------------------------
nDays = 1;
Earth gravity parameters
%------------------------- nZonal = 4; nTesseral = 4; % Attitude profile method, see EarthGuidance % The available profiles are: % 1. Sun-pointing % 2. Constant force component along velocity vector % 3. Constant rotation with respect to LVLH frame % 4. Edge-on (no solar pressure force) % 5. Optimal SMA increase %----------------------------------------- method = -5;
CAD model selection
%-------------------- cadModel = 'SailGEO_450.mat';
Orbit and Epoch
%---------------- altitude = 800; % km inclination = 28.5*pi/180; % km jD = Date2JD([2010 3 15, 16 0 0]); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Sun ephemeris
%--------------
[uSun,rS] = SunV1( jD );
Constants
%---------- dE = load('EarthGravityModel.mat'); rE = dE.a; % radius of earth
Place sail in a 800 km, 28.5 degree orbit
%------------------------------------------ sma = 6378+altitude; el0 = [sma;inclination;0;0;0;0]; % Plot initial orbit with sun lighting PltOrbit( el0, jD ); set(gcf,'name','Initial Sail Orbit'); [r,v] = El2RV( el0 ); q = QZero; w = [0;0;0];
Initialize simulation data structure
%------------------------------------- [d,p] = InitializeSailSim(jD,cadModel,'EarthGuidance'); d = InitializeSailGravity( d, 'earth', dE, nZonal, nTesseral ); % override disturbance flags, if desired: % d.ggOn = 0; d.aeroOn = 0; % d.albedoOn = 0; % d.radOn = 0; % Set the guidance method d.method = method; tEnd = nDays*86400; opts = odeset('abstol',1e-12,'reltol',1e-10); hDlg = InformDlg( 'Integrating...', 'LEOCombinedDemo' ); tic [z, x] = ode113( @FSailCombined, [0 tEnd], [r;v;q;w], opts, p, d ); toc close(hDlg); % Find out how many points were computed disp('Number of output points') disp(length(z))
----------------------- Flat Sail GEO Sail normal: [1 0 0] Sail area: 2000 m2 Sail mass: 500 kg Sail inertia (kg/m2): 16741.667 0 0 0 8408.3333 0 0 0 8408.3333 Sail characteristic accel: 0.036213 mm/s2 Number of bodies in model: 1 Number of components in model: 2 Sail class components: 1 Sail optical properties Component Sail: Specular Front: 1 Back: 1 Diffuse Front: 0 Back: 0 Absorptivity Front: 0 Back: 0 Emissivity Front: 0.3 Back: 0.3 Elapsed time is 6.544357 seconds. Number of output points 2505
Extract the profiles from the orbit
%------------------------------------ [p, env, f, tq] = FSailCombined( z', x', p, d ); PlotSailProfile( p, env, [1;0;0] ); PlotSailForce( f, p, env ); Plot2D(z',tq.total,'Sec',{'Tx','Ty','Tz'},'Torque (N)') DrawSailAttitude( d.g, p.q(:,end), [env.uSun(:,end) -Unit(p.r(:,end))] ); Figui %-------------------------------------- % PSS internal file version information %--------------------------------------
ans = Figure (Plot2D) with properties: Number: 7 Name: 'Sail Force Vector (mN) in Rotating Frame' Color: [1 1 1] Position: [560 528 560 420] Units: 'pixels' Use GET to show all properties hQ = Quiver with properties: Color: [0 0.447 0.741] LineStyle: '-' LineWidth: 0.5 XData: 0 YData: 0 ZData: 0 UData: 21.262 VData: -52.903 WData: -27.371 Use GET to show all properties ans = Surface with properties: EdgeColor: 'none' LineStyle: '-' FaceColor: [0 0 1] FaceLighting: 'gouraud' FaceAlpha: 1 XData: [25×25 double] YData: [25×25 double] ZData: [25×25 double] CData: [25×25 double] Use GET to show all properties