Spacecraft Dynamics
Libraries:
Aerospace Blockset /
Spacecraft /
Spacecraft Dynamics
Description
The Spacecraft Dynamics block models translational and rotational dynamics of spacecraft using numerical integration. It computes the position, velocity, attitude, and angular velocity of one or more spacecraft over time. For the most accurate results, use a variable step solver with low tolerance settings (less than 1e-8). To trade off accuracy for speed, use larger tolerances, depending on your mission requirements.
You can define initial orbital states as
A set of orbital elements.
Position and velocity state vectors.
To propagate orbital states, the block uses the gravity model selected for the current central body. It also includes external accelerations and forces that you provide as inputs to the block. To define initial attitude states, use quaternions, direction cosine matrices (DCMs), or Euler angles.
To propagate attitude states, the block uses moments provided as inputs to the block and mass properties defined on the block.
Aerospace Blockset™ uses quaternions that are defined using the scalar-first convention.
The Spacecraft Dynamics block supports scalar and vector expansion. The block parameter and input port dimensions determine the number of the output signals and the number of spacecraft. After scalar and vector expansion, all parameters in the Orbit, Mass, and Attitude tabs and all input ports except for φθψ (Moon libration angles) and αδW (right ascension, declination, and rotation angle) input ports are defined for each spacecraft.
The size of the provided initial conditions determines the number of spacecraft being modeled. If you supply more than one value for a parameter in the Orbit, Attitude, or Mass tabs, the block outputs a constellation of satellites. Any parameter with a single provided value is expanded and applied to all the satellites in the constellation. For example, if you provide a single value for all the parameters on the block except True anomaly, which contains six values, the block creates a constellation of six satellites, varying true anomaly only.
The block applies the same expansion behavior to the block input ports. All input ports
support expansion except Moon libration angles (when Central
body is Moon
) and Spin axis right ascension
(RA) at J2000, Spin axis declination (Dec) at J2000, and
Initial rotation angle at J2000 (when Central body
is Custom
). All other ports accept either a single value expanded
to all spacecraft being modeled, or individual values applied to each spacecraft.
For more information on the coordinate systems and rotational and translational dynamics the Spacecraft Dynamics block uses, see Algorithms.
Atmospheric Drag
To help model the drag on spacecraft for high precision orbit propagation, the Spacecraft Dynamics block supports drag. Atmospheric drag affects spacecraft flying at low Earth orbit (LEO); it is less relevant further away from Earth. For the atmospheric drag equation, see Translational Dynamics.
Third Body Gravity Effects
To include the effects of point-mass Third Body gravity, select which third bodies to include. These calculations require an Ephemeris model and data. For the third body contribution equation, see Translational Dynamics.
Solar Radiation Pressure
To include the effects of solar radiation pressure (SRP) on the spacecraft, provide an eclipse fraction or specify a shadow model to compute the fraction. Consider taking solar radiation pressure into account when atmosphere drag is negligible and pointing accuracy requirements are strict. For the solar radiation pressure equation, see Translational Dynamics.
Examples
Getting Started with the Spacecraft Dynamics Block
Model six degree-of-freedom rigid-body dynamics of a spacecraft or constellation of spacecraft with the Spacecraft Dynamics block from Aerospace Blockset™.
Developing the Apollo Lunar Module Digital Autopilot
Develop Apollo Lunar Module digital autopilot using Simulink® and Aerospace Blockset.
Analyzing Spacecraft Attitude Profiles with Satellite Scenario
Propagate orbit and attitude states in Simulink and visualize computed trajectory and attitude profile in a satellite scenario.
Hohmann Transfer with the Spacecraft Dynamics Block
Model a Hohmann transfer of a spacecraft between two circular coplanar orbits.
Ports
Input
Fb — Applied forces
3-element vector | numSat-by-3 array
Force applied to the spacecraft center of mass in the body frame, specified as a 3-element vector or numSat-by-3 array at the current time step. numSat is the number of spacecraft.
Dependencies
To enable this port, select the Input body forces parameter.
Data Types: double
Mb — Applied moments
3-element vector | numSat-by-3 array
Moment applied to the spacecraft with respect to mass in the body frame, specified as a 3-element vector or numSat-by-3 array at the current time step. numSat is the number of spacecraft.
Dependencies
To enable this port, select the Input body moments parameter.
Data Types: double
A — External acceleration
3-element vector | m-by-3 array
External acceleration to apply to the spacecraft with respect to the ICRF or fixed-frame at the current timestep, specified as a 3-element vector or m-by-3 array.
Dependencies
To enable this port, select the Input external accelerations parameter.
To specify the acceleration coordinate frame, set the External acceleration coordinate frame parameter.
Data Types: double
φθψ — Moon libration angles
3-element vector
Moon libration angles for transformation between the ICRF and Moon-centric fixed-frame using the Moon-centric Principal Axis (PA) system, specified as a 3-element vector. To get these values, use the Moon Libration block.
Note
The fixed-frame used by this block when Central body is set
to Moon
is the Mean Earth/pole axis (ME) system. For more
information, see Algorithms.
Dependencies
To enable this port:
Set Central body to
Moon
.Select the Input Moon libration angles parameter.
Data Types: double
αδW — Right ascension, declination, and rotation angle
3-element vector
Central body spin axis instantaneous right ascension, declination, and rotation angle, specified as a 3-element vector. This port is available only for custom central bodies.
Dependencies
To enable this port:
Set Central body to
Custom
.Set Central body spin axis source to
Port
.
Data Types: double
m — Spacecraft mass
scalar | 1D array of size numSat
Spacecraft mass at the current timestep. numSat is the number of spacecraft.
Dependencies
To enable this port, set Mass type to Custom
Variable
.
Data Types: double
dm/dt — Rate of change of mass
scalar | 1D array of size numSat
Rate of change of mass (positive if accreted, negative if ablated) at the current timestep, specified as a scalar or 1D array of size numSat. numSat is the number of spacecraft.
Dependencies
To enable this port, set Mass type to Simple
Variable
.
Data Types: double
I — Spacecraft inertia tensor
3-by-3 array | 3-by-3-by-numSat array
Spacecraft inertia tensor, specified as a 3-by-3 array or 3-by-3-by-numSat array at the current timestep. numSat is the number of spacecraft.
Dependencies
To enable this port, set Mass type to Custom
Variable
.
Data Types: double
dI/dt — Rate of change of inertia tensor matrix
3-by-3 array | 3-by-3-by-numSat array
Rate of change of inertia tensor matrix, specified as a 3-by-3 array or 3-by-3-by-numSat array at the current time step. numSat is the number of spacecraft.
Dependencies
To enable this port, set Mass type to Custom
Variable
.
Data Types: double
Vre — Relative velocity
3-element vector | numSat-by-3 array
Relative velocity at which the mass is accreted to or ablated from the body in body-fixed axes, specified as a 3-element vector or numSat-by-3 array. numSat is the number of spacecraft.
Dependencies
To enable this port:
Set Mass type to
Custom Variable
orSimple Variable
.Select the Include mass flow relative velocity parameter.
Data Types: double
ρ — Atmospheric density
scalar
Atmospheric density to calculate acceleration due to atmospheric drag.
Dependencies
To enable this port:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag parameter.
Set the Atmospheric density source parameter to
Port
.
Data Types: double
F107a — 81-day average Ottawa F10.7 cm solar flux
scalar
81-day average Ottawa F10.7 cm solar flux, centered on the current day specified in Start date/time. These F107 Average values correspond to the 10.7 cm radio flux at the actual distance of the Earth from the Sun. This site provides both classes of values:
Dependencies
To enable this port:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag parameter.
Set the Atmospheric density source parameter to
Dialog
.
Data Types: double
F107 — Daily Ottawa F10.7 cm solar flux
scalar
Daily Ottawa F10.7 cm solar flux, centered on the current day specified in Start date/time. The f107Daily values do not correspond to the radio flux at 1 AU. This site provides both classes of values:
Dependencies
To enable this port:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag parameter.
Set the Atmospheric density source parameter to
Dialog
.
Data Types: double
aph — Daily magnetic index information
N-by-7 array
Daily magnetic index information (aph), specified as an N-by-7 array. The magnetic index information consists of:
Daily magnetic index (AP) |
3 hour AP for current time |
3 hour AP for 3 hours before current time |
3 hour AP for 6 hours before current time |
3 hour AP for 9 hours before current time |
Average of eight 3 hour AP indices from 12 to 33 hours before current time |
Average of eight 3 hour AP indices from 36 to 57 hours before current time |
The effects of daily magnetic index are not large or established below 80,000 m. For more information, see Limitations on NRLMSISE-00 Atmosphere Model.
Dependencies
To enable this port:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag parameter.
Set the Atmospheric density source parameter to
Dialog
.
Data Types: double
Flags — Variation flags
array of 23
Variation flags, specified as an array of 23, to enable or disable particular
variations for the outputs. You can specify one of the following values for a field.
The default value for each field is 1
.
0.0
Removes the value effect on the output.
1.0
Applies the main and the cross-term effects of that value on the output.
2.0
Applies only the cross-term effect of that value on the output.
Field | Description |
---|---|
Flags(1)
| F10.7 effect on mean |
Flags(2)
| Independent of time |
Flags(3)
| Symmetrical annual |
Flags(4)
| Symmetrical semiannual |
Flags(5)
| Asymmetrical annual |
Flags(6)
| Asymmetrical semiannual |
Flags(7)
| Diurnal |
Flags(8)
| Semidiurnal |
Flags(9)
| Daily AP. If you set this field to -1, the block uses the entire
matrix of magnetic index information (APH) instead of
|
Flags(10)
| All UT, longitudinal effects |
Flags(11)
| Longitudinal |
Flags(12)
| UT and mixed UT, longitudinal |
Flags(13)
| Mixed AP, UT, longitudinal |
Flags(14)
| Terdiurnal |
Flags(15)
| Departures from diffusive equilibrium |
Flags(16)
| All exospheric temperature variations |
Flags(17)
| All variations from 120,000 meter temperature (TLB) |
Flags(18)
| All lower thermosphere (TN1) temperature variations |
Flags(19)
| All 120,000 meter gradient (S) variations |
Flags(20)
| All upper stratosphere (TN2) temperature variations |
Flags(21)
| All variations from 120,000 meter values (ZLB) |
Flags(22)
| All lower mesosphere temperature (TN3) variations |
Flags(23)
| Turbopause scale height variations |
Dependencies
To enable this port:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag parameter.
Set the Atmospheric density source parameter to
Dialog
.Set the Flags source parameter to
Port
.
Data Types: double
Cd — Atmospheric drag coefficient
scalar | vector of size numSat
Atmospheric drag coefficient, specified as a scalar or vector of size numSat.
Dependencies
To enable this port:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag parameter.
Set the Drag coefficient source parameter to
Port
.
Data Types: double
Ad — Atmospheric drag area
scalar | vector of size numSat
Atmospheric drag area, specified as a scalar or vector of size numSat.
Dependencies
To enable this port:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag parameter.
Set the Drag area source parameter to
Port
.
Data Types: double
Rcb, 3 — Position of one or more custom bodies
3-element vector | numCustom3rdBodiesx3-element vector
Position of one or more custom bodies with respect to the current central body, in the ICRF coordinate frame. numCustom3rdBodies is the number of custom bodies. For more information, see Custom gravitational parameter (m^3/s^2).
Dependencies
To enable this port:
Set Propagation method to
Numerical (high precision)
.Select the Include third body point-mass gravity check box.
Select the Custom check box.
Data Types: double
Fraction — Fraction of solar disk
between 0
(full eclipse) and 1
(full sunlight) | scalar | numSat
Fraction of solar disk visible from the spacecraft position. numSat is the number of spacecraft.
Dependencies
To enable this port:
Set Propagation method to
Numerical (high precision)
.Select the Include solar radiation pressure (SRP) check box.
Set Eclipse fraction source to
Port
.
Data Types: double
RC — Reflectivity coefficient
scalar or numSat of values in the range
1
≤RC≤2
Reflectivity coefficient, specified as a scalar or numSat of values in the
range
1
≤RC≤2
.
numSat is the number of spacecraft.
Dependencies
To enable this port:
Set Propagation method to
Numerical (high precision)
.Select the Include solar radiation pressure (SRP) check box.
Set the Reflectivity coefficient source parameter to
Port
.
Data Types: double
Asrp — Cross section area of the spacecraft
scalar | numSat
Cross section area of the spacecraft seen by the Sun, specified as a scalar or numSat. The block uses this value to calculate the acceleration due to solar radiation pressure.
Dependencies
To enable this port:
Set Propagation method parameter to
Numerical (high precision)
.Select the Include solar radiation pressure (SRP) check box.
Set SRP area source parameter to
Port
.
Data Types: double
Output
X — Position of spacecraft
3-element vector | numSat-by-3 array
Position of the spacecraft with respect to the ICRF or fixed-frame outport coordinate frame, returned as a 3-element vector or numSat-by-3 array at the current time step. numSat is the number of spacecraft.
Dependencies
To change the output coordinate frame for this port, set the State vector output coordinate frame parameter.
The size of the initial conditions provided in the Mass, Orbit, or Attitude tab control the port dimension.
Data Types: double
V — Velocity
3-element vector | numSat-by-3 array
Velocity of the spacecraft with respect to the ICRF or fixed-frame outport coordinate frame, returned as a 3-element vector or numSat-by-3 array at the current time step. numSat is the number of spacecraft.
Dependencies
To change the output coordinate frame for this port, set the State vector output coordinate frame parameter.
The size of the initial conditions provided in the Mass, Orbit, or Attitude tab control the port dimension.
Data Types: double
A — Total inertial acceleration
3-element vector | numSat-by-3 array
Total inertial acceleration of the spacecraft with respect to the ICRF, returned as a 3-element vector or numSat-by-3 array at the current timestep. numSat is the number of spacecraft.
Dependencies
To enable this port, select the Output total inertial acceleration parameter
The size of the initial conditions provided in the Orbit tab control the port dimension.
Data Types: double
qbody2icrf — Spacecraft attitude quaternion
4-element quaternion | numSat-by-4 array
Spacecraft attitude quaternion, returned as a (scalar first) quaternion rotation from the body axis to the outport frame, as a 4-element quaternion, or numSat-by-4 array (scalar first) at the current time step. numSat is the number of spacecraft.
Dependencies
The coordinate frame and attitude format of this port depends on these settings:
To specify the attitude reference coordinate frame, set the Attitude reference coordinate frame parameter.
Set Attitude representation to
Quaternion
.
Data Types: double
DCM — Spacecraft attitude direction cosine matrix
3-by-3 array | numSat-by-3-by-3 array
Spacecraft attitude direction cosine matrix (DCM), returned as a3-by-3 array or numSat-by-3-by-3 array. numSat is the number of spacecraft.
Dependencies
The coordinate frame and attitude format of this port depends on these settings:
To specify the attitude reference coordinate frame, set the Attitude reference coordinate frame parameter.
Set Attitude representation to
DCM
.
Data Types: double
R1,R2,R3 — Spacecraft attitude Euler angles
3-element vector | numSat-by-3 array
Spacecraft attitude Euler angles, returned as a 3-element vector or numSat-by-3 array. numSat is the number of spacecraft.
Dependencies
The coordinate frame and attitude format of this port depend on these settings:
To specify the attitude reference coordinate frame, set the Attitude reference coordinate frame parameter.
Set Attitude representation to
Euler angles
.
Data Types: double
ω — Angular rate of spacecraft
3-element vector | numSat-by-3 array
Angular rate of the spacecraft relative to the attitude reference coordinate frame, returned as a 3-element vector or numSat-by-3 array, expressed as body axis angular rates PQR. numSat is the number of spacecraft.
Dependencies
The attitude reference coordinate frame depends on the Attitude reference coordinate frame parameter.
Data Types: double
dω/dt — Body angular acceleration
3-element array | numSat-by-3 array
Body angular acceleration relative to the ICRF frame, returned as a 3-element array or numSat-by-3 array. numSat is the number of spacecraft.
Dependencies
To enable this port, select the Output total inertial angular acceleration parameter.
The attitude reference coordinate frame depends on the Attitude reference coordinate frame parameter.
Data Types: double
qicrf2ff — Coordinate system transformation
4-element array
Coordinate system transformation between the ICRF and fixed-frame coordinate system at the current timestep, returned as a 4-element array.
Dependencies
To enable this port, select the Output quaternion (ICRF to Fixed-frame) parameter.
Data Types: double
tutc — Time at current time step
scalar | 6-element array
Time at current time step, returned as a:
scalar — If you specify the Start data/time parameter as a Julian date.
6-element array — If you specify the Start data/time parameter as a Gregorian date with six elements (year, month, day, hours, minutes, seconds).
This value equals the Start date/time parameter value plus the elapsed simulation time.
Dependencies
To enable this parameter, select the Output current date/time (UTC Julian date) parameter.
Data Types: double
Fuel Status — Fuel status
scalar | numSat-element array
Fuel tank status at the current timestep, returned as a scalar or numSat-element array, returned as:
1
— Tank is full.0
— Tank is not full or empty.-1
— Tank is empty.
numSat is the number of spacecraft.
Dependencies
To enable this port:,
Set Mass type to
Simple Variable
.Select the Output fuel tank status parameter.
Data Types: double
Parameters
Main
Input body forces — Option to enable external forces
on (default) | off
To enable external forces to be included in the integration of the spacecraft equations of motion in the body frame, select this parameter. Otherwise, clear this parameter.
Programmatic Use
Block Parameter:
forcesin |
Type: character vector |
Values:
'off' | 'on' |
Default:
'off' |
Input body moments — Option to enable external moments
on (default) | off
To enable external moments to be included in the integration of the spacecraft equations of motion in the body frame, select this parameter. Otherwise, clear this parameter.
Programmatic Use
Block Parameter:
momentsIn |
Type: character vector |
Values:
'off' | 'on' |
Default:
'off' |
Input external accelerations — Option to input additional force accelerations
off (default) | on
To enable additional external accelerations to be included in the integration of the spacecraft equations of motion, select this parameter. Otherwise, clear this parameter.
Programmatic Use
Block Parameter:
accelIn |
Type: character vector |
Values:
'off' | 'on' |
Default:
'off' |
External acceleration coordinate frame — Frame for acceleration input port
ICRF
(default) | Fixed-frame
Frame for acceleration input port A, specified as
ICRF
or Fixed-frame
.
Dependencies
To enable this parameter, select the Input external accelerations parameter.
Programmatic Use
Block Parameter:
accelFrame |
Type: character vector |
Values:
'ICRF' | 'Fixed-frame' |
Default:
'ICRF' |
State vector output coordinate frame — Position and velocity state output port coordinate frame
ICRF
(default) | Fixed-frame
Position and velocity state output port coordinate frame setup, specified as
ICRF
or Fixed-frame
.
Programmatic Use
Block Parameter:
outportFrame |
Type: character vector |
Values:
'ICRF' | 'Fixed-frame' |
Default:
'ICRF' |
Output total inertial acceleration — Option to enable total acceleration port
off (default) | on
Enable the total acceleration output computed by the block with respect to the ICRF or fixed-frame outport coordinate frame. This acceleration includes all external accelerations, forces, and internal environmental accelerations that act on the spacecraft.
Note
Do not use this port as part of a simulation loop (in other words, do not feed this output back into the block).
Tunable: Yes
Dependencies
To change the output coordinate frame for this port, set the State vector output coordinate frame parameter.
Programmatic Use
Block Parameter:
AccelOut |
Type: character vector |
Values:
'on' | 'off' |
Default:
'off' |
Start date/time (UTC Julian date) — Initial start time for simulation
juliandate (2020, 1, 1, 12, 0, 0)
(default) | valid scalar Julian date | valid Gregorian date including year, month, day, hours, minutes, seconds as 1D or 6-element array for Gregorian dates
Initial start date and time of simulation, specified as a Julian or Gregorian date. The block defines initial conditions using this value.
Tip
To calculate the Julian date, use the juliandate
function.
Tunable: Yes
Dependencies
The data format for this parameter is controlled by the Time format parameter.
Programmatic Use
Block Parameter:
startDate |
Type: character vector |
Values: 'juliandate(2020, 1, 1,
12, 0, 0)' | valid scalar Julian date | valid Gregorian date including
year, month, day, hours, minutes, seconds as 1D or 6-element array |
Default:
'juliandate(2020, 1, 1, 12, 0, 0)' |
Output current date/time (UTC Julian date) — Option to add output port tutc
on (default) | off
To output the current date or time, select this parameter. Otherwise, clear this parameter.
Dependencies
The data format for this parameter is controlled by the Time format parameter.
Programmatic Use
Block Parameter:
dateOut |
Type: character vector |
Values:
'off' | 'on' |
Default:
'off' |
Action for out-of-range input — Out-of-range block behavior
Warning
(default) | Error
| None
Out-of-range block behavior action. Specify one of these options.
Action | Description |
---|---|
None
| No action. |
Warning
| Warning in the Diagnostic Viewer, model simulation continues. |
Error (default) | Error in the Diagnostic Viewer, model simulation stops. |
Programmatic Use
Block Parameter:
action |
Type: character vector |
Values: 'None' |
'Warning' | 'Error' |
Default:
'Warning' |
Mass
Mass type — Spacecraft mass type
Fixed
(default) | Simple Variable
| Custom Variable
Spacecraft mass type, specified as:
Fixed
— Mass and inertia are constant throughout the simulation.Simple Variable
— Mass and inertia vary linearly as a function of mass rate.Custom Variable
— Instantaneous mass, inertia, and inertia rate are inputs to the block.
Programmatic Use
Block Parameter:
massType |
Type: character vector |
Values: 'Fixed' |
'Simple Variable' | 'Custom
Variable' |
Default:
'Fixed' |
Mass — Initial mass of rigid body spacecraft
4.0 (default) | scalar | vector of size numSat
Initial mass of rigid body spacecraft, specified as scalar or vector of size numSat. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter, set the Mass type parameter to either Fixed or Simple variable.
Programmatic Use
Block Parameter:
mass |
Type: character vector |
Values: scalar | vector of size numSat |
Default:
'4.0' |
Empty mass — Spacecraft empty mass
3.5
(default) | scalar | vector of size numSat
Spacecraft empty (dry) mass, specified as a scalar or vector of size numSat. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter, set Mass type to
Simple variable
.
Programmatic Use
Block Parameter:
emptyMass |
Type: character vector |
Values: 1D array of size numSat | 1D array of size numSat |
Default:
'3.5' |
Full mass — Spacecraft full mass
4.0 (default) | scalar | vector of size numSat
Spacecraft full (wet) mass, specified as a scalar or vector of size numSat. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter, set Mass type to
Simple variable
.
Programmatic Use
Block Parameter:
fullMass |
Type: character vector |
Values: scalar | vector of size numSat |
Default:
'4.0' |
Inertia tensor — Inertia tensor matrix
[0.2273, 0, 0; 0 0.2273 0; 0 0 .0040]
(default) | 3-by-3 array | 3-by-3-by-numSat array
Initial inertia tensor matrix of the spacecraft, specified, as a 3-by-3 array for a single spacecraft or a 3-by-3-by-numSat array for multiple spacecraft.
Tunable: Yes
Dependencies
To enable this parameter, set Mass type to
Fixed
.
Programmatic Use
Block Parameter:
inertia |
Type: character vector |
Values:
'[0.2273, 0, 0; 0 0.2273 0; 0 0 .0040]' | 3-by-3 array |
3-by-3-by-numSat array |
Default:
'[0.2273, 0, 0; 0 0.2273 0; 0 0 .0040]' |
Empty inertia tensor — Empty inertia tensor matrix
[0.1989, 0, 0; 0 0.1989 0; 0 0 .0035]
(default) | 3-by-3 array | 3-by-3-by-numSat array
Empty (dry) inertia tensor matrix, specified as a 3-by-3 array for a single spacecraft or a 3-by-3-by-numSat array for multiple spacecraft.
Tunable: Yes
Dependencies
To enable this parameter, set Mass type to
Simple variable
.
Programmatic Use
Block Parameter:
emptyInertia |
Type: character vector |
Values: 3-by-3 array | 3-by-3-by-numSat array |
Default:
[0.1989, 0, 0; 0 0.1989 0; 0 0 .0035] |
Full inertia tensor — Full inertia tensor matrix
[0.2273, 0, 0; 0, 0.2273, 0; 0, 0, .0040]
(default) | 3-by-3 array | 3-by-3-by-numSat array
Full (wet) inertia tensor matrix, specified as a 3-by-3 array for a single spacecraft or a 3-by-3-by-numSat array for multiple spacecraft.
Tunable: Yes
Dependencies
To enable this parameter, set Mass type to
Simple variable
.
Programmatic Use
Block Parameter:
fullInertia |
Type: character vector |
Values: 3-by-3 array | 3-by-3-by-numSat array |
Default:
[0.2273, 0, 0; 0, 0.2273, 0; 0, 0, .0040] |
Include mass flow relative velocity — Option to enable mass flow velocity
off (default) | on
To enable mass flow velocity to the block, select this parameter. The mass flow velocity is the relative velocity in the body frame at which the mass is accreted or ablated. To disable mass flow velocity to the block, clear this parameter.
Dependencies
To enable this parameter, set Mass type to
Simple variable
or Custom
variable
.
Programmatic Use
Block Parameter:
useMassFlowRelativeVelocity |
Type: character vector |
Values:
'on' | 'off' |
Default:
'off' |
Limit mass flow when mass is empty or full — Option to limit mass flow
on (default) | off
To limit the mass flow when the spacecraft mass is full or empty, select this parameter. Otherwise, clear this parameter.
Dependencies
To enable this parameter, set Mass type to
Simple variable
.
Programmatic Use
Block Parameter:
limitMassFlow |
Type: character vector |
Values:
'on' | 'off' |
Default:
'on' |
Output fuel tank status — Option to enable fuel tank status
on (default) | off
To enable fuel tank status, select this parameter. Otherwise, clear this parameter.
Dependencies
To enable this parameter, set Mass type to
Simple variable
.
Programmatic Use
Block Parameter:
outputFuelStatus |
Type: character vector |
Values:
'on' | 'off' |
Default:
'on' |
Orbit
Define the initial states of the spacecraft.
Initial state format — Input method for initial states of orbit
Orbital elements
(default) | ICRF state vector
| Fixed-frame state vector
Input method for initial states of orbit, specified as Orbital
elements
, ICRF state vector
, or
Fixed-frame state vector
.
Programmatic Use
Block Parameter
stateFormatNum when propagator is set to
High precision (numerical) |
Type: character vector |
Values:
'Orbital elements' | 'Orbital elements' |
'ICRF state vector' | 'Fixed-frame state'
when propagator is set to 'High precision
(numerical)' |
Default:
'Orbital elements' |
Orbit type — Orbit classification
Keplerian
(default) | Elliptical equatorial
| Circular
| Circular equatorial
Orbit classification, specified as:
Keplerian
— Model elliptical, parabolic, and hyperbolic orbits using six standard Keplerian orbital elements.Elliptical equatorial
— Fully define an equatorial orbit, where inclination is 0 or 180 degrees and the right ascension of the ascending node is undefined.Circular
— Define a circular orbit, where eccentricity is 0 and the argument of periapsis is undefined. To fully define a circular orbit, selectCircular equatorial
.Circular equatorial
— Fully define a circular orbit, where eccentricity is 0 and the argument of periapsis is undefined.
Dependencies
To enable this parameter, set Initial state format to
Orbital elements
.
Programmatic Use
Block Parameter:
orbitType |
Type: character vector |
Values:
'Keplerian' | 'Elliptical equatorial' |
'Circular inclined' | 'Circular
equatorial' |
Default:
'Keplerian' |
Semi-major axis — Half of major axis of ellipse
6786000 (default) | scalar | 1D array of size numSat
Half of ellipse major axis, specified as a 1D array of size numSat. numSat is the number of spacecraft.
For parabolic orbits, this block interprets this parameter as the periapsis radius (distance from periapsis to the focus point of orbit).
For hyperbolic orbits, this block interprets this parameter as the distance from periapsis to the hyperbola center.
Tunable: Yes
Dependencies
To enable this parameter, set Initial state format to
Orbital elements
.
Programmatic Use
Block Parameter:
semiMajorAxis |
Type: character vector |
Values: scalar | 1D array of size numSat |
Default:
'6786000' |
Eccentricity — Deviation of orbit
0.01 (default) | scalar | value between 0
and 1
, or greater than 1
for Keplerian orbit type | 1D array of size numSat
Deviation of the orbit from a perfect circle, specified as a scalar or 1D array of size numSat. numSat is the number of spacecraft.
If Orbit type is set to Keplerian
,
this value can be:
1
for parabolic orbitGreater than
1
for hyperbolic orbit
Tunable: Yes
Dependencies
To enable this parameter:
Set Initial state format to
Orbital elements
.Set Orbit type to
Keplerian
orElliptical equatorial
.
Programmatic Use
Block Parameter:
eccentricity |
Type: character vector |
Values:
0.01 | scalar | value between 0 and
1 , or greater than 1 for Keplerian orbit
type | 1D array of size numSat |
Default:
'0.01' |
Inclination — Tilt angle of orbital plane
50 (default) | scalar | 1D array of size numSat | degrees between 0 and 180 | radians between 0 and pi
Vertical tilt of the ellipse with respect to the reference plane measured at the ascending node, specified as a scalar or 1D array of size numSat, in specified units. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter:
Set Initial state format to
Orbital elements
Set Orbit type to
Keplerian
orCircular inclined
Programmatic Use
Block Parameter:
inclination |
Type: character vector |
Values: 50 | scalar | 1D array of size numSat | degrees between 0 and 180 | radians between 0 and pi |
Default:
'50' |
RAAN — Angular distance in equatorial plane
95 (default) | scalar value between 0
and 360
| 1D array of size numSat
Right ascension of ascending node (RAAN), specified as a value between
0
and 360
, specified as a scalar or 1D array
of size numSat, in specified units. numSat is
the number of spacecraft. RAAN is the angular distance along the reference plane from
the International Celestial Reference Frame (ICRF) x-axis to the
location of the ascending node — the point at which the spacecraft crosses the
reference plane from south to north.
Tunable: Yes
Dependencies
To enable this parameter:
Set Initial state format to
Orbital elements
.Set Orbit type to
Keplerian
orCircular inclined
.
Programmatic Use
Block Parameter:
raan |
Type: character vector |
Values:
'95' | scalar value between 0 and
360 | 1D array of size numSat |
Default:
'95' |
Argument of periapsis — Angle from spacecraft ascending node to periapsis
93 (default) | value between 0
and 360
| 1D array of size numSat
Angle from the spacecraft ascending node to periapsis (closest point of orbit to the central body), specified as a 1D array of size numSat, in specified units. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter:
Set Initial state format to
Orbital elements
Set Orbit type to
Keplerian
Programmatic Use
Block Parameter:
argPeriapsis |
Type: character vector |
Values: 93 | scalar value between
0 and 360 | 1D array of size
numSat
|
Default:
'93' |
True anomaly — Angle between periapsis and initial position of spacecraft
203 (default) | scalar value between 0
and 360
| 1D array of size numSat
Angle between periapsis (closest point of orbit to the central body) and the initial position of spacecraft along its orbit at Start date/time, specified as a scalar or 1D array of size numSat, in specified units. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter:
Set Initial state format to
Orbital elements
.Set Orbit type to
Keplerian
orElliptical inclined
.
Programmatic Use
Block Parameter:
trueAnomaly |
Type: character vector |
Values:
'203' | scalar value between 0 and
360 | 1D array of size numSat |
Default:
'203' |
Argument of latitude — Angle between ascending node and initial position of spacecraft
200 (default) | scalar | value between 0
and 360
| 1D array of size numSat
Angle between the ascending node and the initial position of spacecraft along its orbit at Start date/time, specified as a scalar or 3-element vector or 1D array of size numSat, in specified units. numSat is number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter:
Set Initial state format to
Orbital elements
.Set Orbit Type to
Circular inclined
.
Programmatic Use
Block Parameter:
argLat |
Type: character vector |
Values:
'200' | scalar value between 0 and
360 | 1D array of size numSat |
Default:
'200' |
Longitude of periapsis — Angle between ICRF x-axis and eccentricity vector
100 (default) | scalar | value between 0
and 360
| 1D array of size numSat
Angle between the ICRF x-axis and the eccentricity vector, specified as a scalar or 3-element vector or 1D array of size numSat, in specified units. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter:
Set Initial state format to
Orbital elements
.Set Orbit type to
Elliptical equatorial
.
Programmatic Use
Block Parameter:
lonPeriapsis |
Type: character vector |
Values: 100 | scalar value between
0 and 360 | 1D array of size
numSat |
Default:
'100' |
True longitude — Angle between ICRF x-axis and initial position of spacecraft
150 (default) | scalar | value between 0
and 360
| 1D array of size numSat | numSat-by-3 vector
Angle between the ICRF x-axis and the initial position of spacecraft along its orbit at Start date/time, specified as a scalar or 1D array of size numSat or a numSat-by-3 vector, in specified units. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter:
Set Initial state format to
Orbital elements
.Set Orbit type to
Circular equatorial
.
Programmatic Use
Block Parameter:
trueLon |
Type: character vector |
Values:
'150' | scalar value between 0 and
360 | 1D array of size numSat |
numSat-by-3 vector |
Default:
'150' |
ICRF position — Cartesian position vector of spacecraft
[3649700.0 3308200.0 -4676600.0]
(default) | 3-element vector | | numSat-by-3 array
Cartesian position vector of spacecraft in ICRF coordinate system at Start date/time, specified as a 3-element vector for single spacecraft or a numSat-by-3 array for multiple spacecraft. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter, set Initial state format to
ICRF state vector
.
Programmatic Use
Block Parameter:
inertialPosition |
Type: character vector |
Values:
[3649700.0 3308200.0 -4676600.0] | 3-element vector |
numSat-by-3 array |
Default:
'[3649700.0 3308200.0 -4676600.0]' |
ICRF velocity — Cartesian velocity vector of spacecraft
[-2750.8 6666.4 2573.4]
(default) | 3-element vector | numSat-by-3 array
Cartesian velocity vector of spacecraft in ICRF coordinate system at Start date/time, specified as a 3-element vector for single spacecraft or a numSat-by-3 array for multiple spacecraft. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter, set Initial state format to
ICRF state vector
.
Programmatic Use
Block Parameter:
inertialVelocity |
Type: character vector |
Values:
[-2750.8 6666.4 2573.4] | 3-element vector | 2-D array of size
numSat-by-3 array |
Default:
'[-2750.8 6666.4 2573.4]' |
Fixed-frame position — Position vector of spacecraft
[-4142689.0 -2676864.7 -4669861.6] (default) | 3-element vector | numSat-by-3 array
Cartesian position vector of spacecraft in fixed-frame coordinate system at Start date/time, specified as a 3-element vector for single spacecraft or a numSat-by-3 array for multiple spacecraft. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter, set Initial state format to
Fixed-frame state vector
.
Programmatic Use
Block Parameter:
fixedPosition |
Type: character vector |
Values:
'[-4142689.0 -2676864.7 -4669861.6]' | 3-element vector for
single spacecraft | numSat-by-3 array |
Default:
'[-2750.8 6666.4 2573.4]' |
Fixed-frame velocity — Velocity vector of spacecraft
[1452.7 -6720.7 2568.1] (default) | 3-element vector | numSat-by-3 array
Cartesian velocity vector of spacecraft in fixed-frame coordinate system at Start date/time, specified as a 3-element vector for single spacecraft or a numSat-by-3 array for multiple spacecraft. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter, set Initial state format to
Fixed-frame state vector
.
Programmatic Use
Block Parameter:
fixedVelocity |
Type: character vector |
Values:
'[1452.7 -6720.7 2568.1]' | 3-element vector |
numSat-by-3 array |
Default:
'[1452.7 -6720.7 2568.1]' |
Attitude
Attitude reference coordinate frame — Attitude and angular rate coordinate frame
ICRF
(default) | Fixed-frame
| NED
| LVLH
Attitude and angular rate coordinate frame with respect to the attitude and angular rate initial conditions, specified as:
ICRF
Fixed-frame
NED
LVLH
Programmatic Use
Block Parameter:
attitudeFrame |
Type: character vector |
Values:
'ICRF' | 'Fixed-frame' |
'NED' | 'LVLH' |
Default:
'ICRF' |
Attitude representation — Orientation format
Quaternion
(default) | DCM
| Euler angles
Orientation format for spacecraft attitude (initial condition and output port),
specified as Quaternion
, DCM
, or
Euler angles
.
Programmatic Use
Block Parameter:
attitudeFrame |
Type: character vector |
Values:
'Quaternion' | 'DCM' | 'Euler
angles' |
Default:
'Quaternion' |
Initial body attitude — Spacecraft initial attitude
[1, 0, 0, 0]
(default) | 4-element vector | numSat-by-4 array | 3-by-3 array | numSat-by-3-by-3 array
Spacecraft initial attitude (orientation) of the spacecraft provided as either a quaternion, DCM, or Euler angle set with respect to Attitude representation.
Tunable: Yes
Dependencies
This parameter name and value format changes depending on the Attitude representation parameter.
Parameter Name | Attitude Representation Setting | Value Format |
---|---|---|
Initial quaternion |
|
|
Initial DCM |
|
|
Initial Euler angles |
|
|
Programmatic Use
Block Parameter:
attitude |
Type: character vector |
Values: 4-element vector | numSat-by-4 array | 3-by-3 array | numSat-by-3-by-3 array | 3-element array | numSat-by-3 array |
Default:
'[1, 0, 0, 0]' |
Angle rotation order — Angle rotation order
ZYX
(default) | ZYX
| ZYZ
| ZXY
| ZXZ
| YXZ
| YXY
| YZX
| YZY
| XYZ
| XYX
| XZY
| XZX
Rotation angle sequence for Euler angle attitude representation.
Tunable: Yes
Dependencies
To enable this parameter, set Attitude representation to
Euler angles
.
Programmatic Use
Block Parameter:
rotationOrder |
Type: character vector |
Values: 'ZYX' |
'ZYZ' |'ZXY' | 'ZXZ' |
'YXZ' | 'YXY' | 'YZX' |
'YZY' | 'XYZ' | 'XYX' |
'XZY' | 'XZX' |
Default: 'ZYX' |
Initial body angular rates PQR — Initial body-fixed angular rates
[0, 0, 0]
(default) | 3-element vector | numSat-by-3 array
Initial body-fixed angular rates (PQR) with respect to Attitude reference coordinate frame.
Tunable: Yes
Programmatic Use
Block Parameter:
attitudeRate |
Type: character vector |
Values: | 3-element vector | numSat-by-3 array |
Default:
[0, 0, 0] |
Output total inertial angular acceleration — Option to enable total vehicle acceleration
off (default) | on
Enable output total vehicle acceleration computed by the block with respect to the ICRF attitude reference coordinate frame. This acceleration includes all moments that act on the spacecraft.
Tunable: Yes
Programmatic Use
Block Parameter:
angAccelOut |
Type: character vector |
Values:
'on' | 'off' |
Default:
'off' |
Include gravity gradient torque — Option to enable gravity gradient torque
on (default) | off
Select this parameter to enable the use of the gravity gradient torque in the block rotational dynamics equations. Otherwise, clear this parameter.
Tunable: Yes
Programmatic Use
Block Parameter:
angAccelOut |
Type: character vector |
Values:
'on' | 'off' |
Default:
'on' |
Central Body
Central body — Celestial body around which spacecraft orbits
Earth
(default) | Moon
| Mercury
| Venus
| Mars
| Jupiter
| Saturn
| Uranus
| Neptune
| Sun
| Custom
Celestial body, specified as Earth
,
Moon
, Mercury
,
Venus
, Mars
,
Jupiter
, Saturn
,
Uranus
, Neptune
,
Sun
, or Custom
, around which
the spacecraft defined in the Orbit tab orbits.
Programmatic Use
Block Parameter: centralBody |
Type: character vector |
Values:
'Earth' | 'Moon'
|'Mercury' | 'Venus' |
'Mars' | 'Jupiter' |
'Saturn' | 'Uranus' |
'Neptune' | 'Sun' |
'Custom' | |
Default: 'Earth' |
Gravitational potential model — Gravity model for central body
Spherical harmonics
when Central body set to Earth
, Moon
, Mars
, or
Custom
, Oblate ellipsoid
when
Central body set to Mercury
,
Venus
, Jupiter
,
Saturn
, Uranus
, or
Neptune
(default) | Point-mass
| Oblate ellipsoid (J2)
Control the gravity model for the central body by specifying as
Spherical harmonics
,
Point-mass
, or Oblate ellipsoid
(J2)
.
Dependencies
Available options are based on Central body settings.
Earth, Moon, Mars, or Custom | Mercury, Venus, Jupiter, Saturn, Uranus, or Neptune |
---|---|
Spherical harmonics | Oblate ellipsoid (J2) |
Point-mass | Point-mass |
Oblate ellipsoid (J2) | — |
Programmatic Use
Block Parameter:
gravityModel when centralBody set to
'Earth' , 'Moon' ,
'Mars' , or 'Custom' |
gravityModelnoSH when centralBody set to
Mercury , Venus ,
Jupiter , Saturn , Uranus ,
or Neptune |
Type: character vector |
Values:
'Spherical harmonics' | 'Point-mass' |
'Oblate ellipsoid (J2)' when centralBody
set to 'Earth' , 'Moon' ,
'Mars' , or 'Custom' ;
'Point-mass' | 'Oblate ellipsoid (J2)'
when centralBody set to Mercury ,
Venus , Jupiter , Saturn ,
Uranus , or Neptune |
Default:
'Spherical harmonics' when centralBody set
to 'Earth' , 'Moon' ,
'Mars' , or 'Custom' ; 'Oblate
ellipsoid (J2)' when centralBody set to
Mercury , Venus ,
Jupiter , Saturn , Uranus ,
or Neptune |
Spherical harmonic model — Spherical harmonic model
EGM2008
for Central body set to Earth
, LP-100K
for Central body set to
Moon
, GMM2B
for
Central body set to Mars
, (default) | EGM96
| EIGEN-GL04C
| LP-165P
Spherical harmonic gravitational potential model, specified according to the specified Central body.
Dependencies
Available options are based on Central body settings:
Central body | Spherical Harmonic Model Option |
---|---|
Earth | EGM2008, EGM96, or EIGEN-GL04C |
Moon | LP-100K or LP-165P |
Mars | GMM2B |
Programmatic Use
Block Parameter:
'earthSH' when centralBody set to
'Earth' | 'moonSH' when
centralBody set to 'Moon' |
'marsSH' when centralBody set to
'Mars' |
Type: character vector |
Values:
'EGM2008' | 'EGM96' |
'EIGEN-GL04C' when centralBody set to
'earthSH' ; 'LP-100K' |
'LP-165P' when centralBody set to
'moonSH' ; 'GMM2B' when
centralBody set to 'marsSH' |
Default:
'Spherical harmonics' |
Rotational rate — Rotational rate
4.06124975e-3 (default) | scalar
Rotational rate of a custom central body, specified as a scalar.
Dependencies
To enable this parameter, set Central body to
Custom
.
Programmatic Use
Block Parameter:
'customOmega'
|
Type: character vector |
Values:
'4.06124975e-3' | scalar |
Default:
'4.06124975e-3' |
Spherical harmonic coefficient file — Harmonic coefficient MAT file
aerogmm2b.mat
(default) | harmonic coefficient MAT file
Harmonic coefficient MAT file that contains definitions for a custom planetary model, specified as a character vector or string.
This file must contain these variables:
Variable | Description |
---|---|
Re | Scalar of planet equatorial radius in meters (m). |
GM | Scalar of planetary gravitational parameter in meters cubed per second squared (m3/s2). |
degree | Scalar of maximum degree. |
C | (degree+1)-by-(degree+1) matrix containing normalized spherical harmonic coefficients matrix, C. |
S | (degree+1)-by-(degree+1) matrix containing normalized spherical harmonic coefficients matrix, S. |
Dependencies
To enable this parameter:
Set Central body to
Custom
.Set Gravitational potential model to
Spherical harmonics
.
Programmatic Use
Block Parameter:
shFile |
Type: character vector |
Values:
'aerogmm2b.mat' | harmonic coefficient MAT file |
Default:
'aerogmm2b.mat' |
Degree — Degree of harmonic model
120
(default) | scalar | maximum of 2159
Degree of harmonic model, specified as a scalar.
Planet Model | Recommended Degree | Maximum Degree |
---|---|---|
| 120 | 2159 |
| 70 | 360 |
| 60 | 100 |
| 60 | 165 |
| 60 | 80 |
| 70 | 360 |
Dependencies
To enable this parameter:
Set Central body to
Earth
,Moon
,Mars
, orCustom
.Set Gravitational potential model to
Spherical harmonics
.
Programmatic Use
Block Parameter:
shDegree |
Type: character vector |
Values:
'80' | scalar |
Default:
'80' |
Use Earth orientation parameters (EOPs) — Option to use Earth orientation parameters
on (default) | off
Select this parameter to use Earth orientation parameters for the transformation between the ICRF and fixed-frame coordinate systems. Otherwise, clear this parameter.
Dependencies
To enable this parameter, set Central body to
Earth
.
Additionally, it must satisfy one of these criteria:
Gravitational potential model is set to either
Spherical harmonics
orOblate ellipsoid (J2)
.External acceleration coordinate frame is set to
Fixed-frame
.State vector output coordinate frame is set to
Fixed-frame
.Attitude reference coordinate frame is set to
Fixed-frame
orNED
.
Programmatic Use
Block Parameter:
useEOPs |
Type: character vector |
Values:
'on' | 'off' |
Default:
'on' |
IERS EOP data file — Earth orientation data
aeroiersdata.mat
(default) | MAT file
Custom list of Earth orientation data, specified in a MAT file.
Dependencies
To enable this parameter:
Select the Use Earth orientation parameters (EOPs) parameter.
Set Central body to
Earth
.
Programmatic Use
Block Parameter:
eopFile |
Type: character vector |
Values:
'aeroiersdata.mat' | MAT-file |
Default:
'aeroiersdata.mat' |
Input Moon libration angles — Moon libration Euler angle rate
off (default) | on
To specify Euler libration angles (φ θ ψ) for Moon orientation, select this parameter.
Dependencies
To enable this parameter, set Central body to
Moon
.
Programmatic Use
Block Parameter:
useMoonLib |
Type: character vector |
Values:
'off' | 'on' |
Default:
'off' |
Output quaternion (ICRF to Fixed-frame) — Option to add output transformation quaternion port
off (default) | on
To add output transformation quaternion port for the quaternion transformation from the ICRF to the fixed-frame coordinate system, select this parameter. Otherwise, clear this parameter.
Programmatic Use
Block Parameter:
outputTransform |
Type: character vector |
Values:
'off' | 'on' |
Default:
'off' |
Central body spin axis source — Central body spin source
Port
(default) | Dialog
Central body spin axis source, specified as Port
or
Dialog
. The block uses the spin axis to calculate the
transformation from the ICRF to the fixed-frame coordinate system for the custom
central body.
Dependencies
To enable this parameter, set Central body to
Custom
.
Programmatic Use
Block Parameter:
cbPoleSrc |
Type: character vector |
Values:
'Port' | 'Dialog' |
Default:
'Port' |
Spin axis right ascension (RA) at J2000 — Right ascension of central body spin axis at J2000
317.68143
(default) | double scalar
Right ascension of central body spin axis at J2000 (2451545.0 JD, 2000 Jan 1 12:00:00 TT), specified as a double scalar.
Tunable: Yes
Dependencies
To enable this parameter:
Set Central body to
Custom
.Set Central body spin axis source to
Dialog
.
Programmatic Use
Block Parameter:
cbRA |
Type: character vector |
Values:
'317.68143' | double scalar |
Default:
'317.68143' |
Spin axis RA rate (deg/century) — Right ascension rate of central body spin axis
-0.1061
(default) | double scalar
Right ascension rate of the central body spin axis, specified as a double scalar, in specified angle units/century.
Tunable: Yes
Dependencies
To enable this parameter:
Set Central body to
Custom
.Set Central body spin axis source to
Dialog
.
Programmatic Use
Block Parameter:
cbRARate |
Type: character vector |
Values:
'-0.1061' | double scalar |
Default:
'-0.1061' |
Spin axis declination (Dec) at J2000 — Declination of central body spin axis at J2000
52.88650
(default) | double scalar
Declination of the central body spin axis at J2000 (2451545.0 JD, 2000 Jan 1 12:00:00 TT), specified as a double scalar.
Tunable: Yes
Dependencies
To enable this parameter:
Set Central body to
Custom
.Set Central body spin axis source to
Dialog
.
Programmatic Use
Block Parameter:
cbDec |
Type: character vector |
Values:
'52.88650' | double scalar |
Default:
'52.88650' |
Spin axis Dec rate (deg/century) — Declination rate of central body spin axis
-0.0609
(default) | double scalar
Declination rate of the central body spin axis, specified as a double scalar, in specified angle units/century.
Tunable: Yes
Dependencies
To enable this parameter:
Set Central body to
Custom
.Set Central body spin axis source to
Dialog
.
Programmatic Use
Block Parameter:
cbDecRate |
Type: character vector |
Values:
'-0.0609' | double scalar |
Default:
'-0.0609' |
Initial rotation angle at J2000 — Rotation angle of central body x-axis
176.630
(default) | double scalar
Rotation angle of the central body x axis with respect to the ICRF x-axis at J2000 (2451545.0 JD, 2000 Jan 1 12:00:00 TT), specified as a double scalar, in specified angle units.
Tunable: Yes
Dependencies
To enable this parameter:
Set Central body to
Custom
.Set Central body spin axis source to
Dialog
.
Programmatic Use
Block Parameter:
cbRotAngle |
Type: character vector |
Values:
'176.630' | double scalar |
Default:
'176.630' |
Rotation rate (deg/day) — Rotation rate of central body x-axis
350.89198226
(default) | double scalar
Rotation rate of the central body x axis with respect to the ICRF x-axis (2451545.0 JD, 2000 Jan 1 12:00:00 UTC), specified as a double scalar, in angle units/day.
Tunable: Yes
Dependencies
To enable this parameter:
Set Central body to
Custom
.Set Central body spin axis source to
Dialog
.
Programmatic Use
Block Parameter:
cbRotRate |
Type: character vector |
Values:
'350.89198226' | double scalar |
Default:
'350.89198226' |
Equatorial radius — Equatorial radius
3.3962e6
(default) | double scalar
Equatorial radius for a custom central body, specified as a double scalar.
Tunable: Yes
Dependencies
To enable this parameter, set Gravitational potential model
to None
, Point-mass
, or
Oblate ellipsoid (J2)
.
Programmatic Use
Block Parameter:
customR |
Type: character vector |
Values:
'3.3962e6' | double scalar |
Default:
'3.3962e6' |
Flattening — Flattening ratio
0.00589
(default) | double scalar
Flattening ratio for custom central body, specified as a double scalar.
Tunable: Yes
Dependencies
To enable this parameter:
Set Central body to
Custom
.Set Gravitational potential model to
Point-mass
,Oblate ellipsoid (J2)
, orSpherical harmonics
.
Programmatic Use
Block Parameter:
customF |
Type: character vector |
Values:
'0.00589' | double scalar |
Default:
'0.00589' |
Gravitational parameter — Gravitational parameter
4.305e13
(default) | double scalar
Gravitational parameter for a custom central body, specified as a double scalar.
Tunable: Yes
Dependencies
To enable this parameter:
Set Central body to
Custom
.Set Gravitational potential model to
None
,Point-mass
, orOblate ellipsoid (J2)
.
Programmatic Use
Block Parameter:
customMu |
Type: character vector |
Values:
'4.305e13' | double scalar |
Default:
'4.305e13' |
Second degree zonal harmonic (J2) — Most significant or largest spherical harmonic term
1.0826269e-03
(default) | double scalar
Most significant or largest spherical harmonic term, which accounts for oblateness of a celestial body, specified as a double scalar.
Tunable: Yes
Dependencies
To enable this parameter:
Set Central body to
Custom
.Set Gravitational potential model to
Oblate ellipsoid (J2)
.
Programmatic Use
Block Parameter:
customJ2 |
Type: character vector |
Values:
'1.0826269e-03' | double scalar |
Default:
'1.0826269e-03' |
Drag
Configure the atmospheric drag environment.
Include atmospheric drag — Option to include atmospheric drag
off (default) | on
To include atmospheric drag, select this check box.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.
Programmatic Use
Block Parameter:
useDrag |
Type: character vector |
Values:
'off' | 'on' |
Default:
'off' |
Atmospheric density source — Source of atmospheric density value
Dialog
(default) | Port
Source of atmospheric density value, specified as
Dialog
or Port
.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Programmatic Use
Block Parameter:
atmosSrc |
Type: character vector |
Values:
'Dialog' | 'Port' |
Default:
'Dialog' |
Atmospheric model — Atmospheric model
NRLMSISE-00
(default)
Atmospheric model for atmospheric drag calculation, specified as
NRLMSISE-00
.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Atmospheric density source parameter to
Dialog
.
Programmatic Use
Block Parameter:
atmosModel |
Type: character vector |
Values:
'NRLMSISE-00' |
Default:
'NRLMSISE-00' |
Flux source — Source of space weather data
Dialog
(default) | Port
Source for historical and predicted flux and geomagnetic indices used by
atmospheric density calculation, specified as Dialog
or Port
.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Atmospheric density source parameter to
Dialog
.
Programmatic Use
Block Parameter:
fluxSrc |
Type: character vector |
Values:
'Dialog' | 'Port' |
Default:
'Dialog' |
Space weather data file — MAT file of space weather data
aeroSpaceWeatherData.mat
(default) | MAT file name
MAT file of space weather data. This file is the output from the aeroReadSpaceWeatherData
function.
Aerospace Blockset includes a default space weather data file,
aeroSpaceWeatherData.mat
. To use the most recent data available,
use aeroReadSpaceWeatherData
to generate a new MAT file, and
specify the file name for this parameter. For more information, see aeroReadSpaceWeatherData
.
If the file is not on the MATLAB® path, specify the full pathname. The MAT file must contain these variables from the space weather data file:
YEAR
MONTH
DAY
AP1
AP2
AP3
AP4
AP5
AP6
AP7
AP8
AP_AVG
F107_OBS
F107_DATA_TYPE
F107_OBS_CENTER81
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Atmospheric density source parameter to
Dialog
.Set Atmospheric model to
NRLMSISE-00
.
Programmatic Use
Block Parameter:
SpaceWeatherDataFile |
Type: character vector |
Values:
'aeroSpaceWeatherData.mat' | MAT file name |
Default:
'aeroSpaceWeatherData.mat' |
F10.7 extrapolation method — Extrapolation method for f107Average
and f107Daily
None - clip
(default) | Constant
| Least squares fit
Extrapolation method for f107Average
and f107Daily
for times outside the range of the MAT file data, specified as one of these
values.
Method | Description |
---|---|
None - clip | Set |
Constant | Set |
Least squares fit | Approximate
where:
|
Note
For f107Average
values,if part of the 81-day period falls
inside the MAT file range of space weather data, the Solar Flux and
Geomagnetic Index block uses the actual daily values from the
overlapping portion. To calculate the average for the nonoverlapping portion, the
block uses the clipped, constant, or least squares daily value.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Atmospheric density source parameter to
Dialog
.Set Atmospheric model to
NRLMSISE-00
.
Programmatic Use
Block Parameter: F107ExtrapMethod |
Type: character vector |
Values: 'None - clip' | 'Constant' | 'Least squares fit' |
Default: 'None - clip' |
F10.7 extrapolation value — Extrapolation value to assign to f107Average
and to calculate f107Daily
150.0
(default) | scalar
Extrapolation value to assign to f107Average
and to calculate f107Daily
, specified as a scalar.
Tunable: Yes
Dependencies
This value is assigned when:
F10.7 extrapolation method is set to
Constant
.Time specified by the Year, DOY, and UT (sec) ports is outside the range of the data in the MAT file.
Programmatic Use
Block Parameter: F107ExtrapValue |
Type: character vector |
Values: '150.0' | scalar |
Default: '150.0' |
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Atmospheric density source parameter to
Dialog
.Set Atmospheric model to
NRLMSISE-00
.Set F10.7 extrapolation method to
Constant
.
Magnetic index extrapolation method — Extrapolation method for magnetic index information
None - clip
(default) | Constant
| IGRF
Extrapolation method for magnetic index information values for times outside the range of the MAT file data, specified as one of these values.
Method | Description |
---|---|
None - clip | Set elements of magnetic index information to the nearest data point available in the MAT file. |
Constant | Set elements of magnetic index information to a constant value specified by the Magnetic index extrapolation method parameter. The elements of magnetic index for times outside this range are based on clipped values of the horizontal magnetic field strength at these time limits. |
IGRF | Calculate the elements of magnetic index information using the International Geomagnetic Reference Field. Because this model is defined for times between January 1, 1900, 12:00 AM UTC and January 1, 2025, 12:00 AM UTC, the predictions for times outside this range are clipped to values at these time limits. |
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Atmospheric density source parameter to
Dialog
.Set Atmospheric model to
NRLMSISE-00
.
Programmatic Use
Block Parameter:
MagneticIndexExtrapMethod |
Type: character vector |
Values: 'None - clip' |
'Constant' | 'IGRF' |
Default: 'None -
clip' |
Magnetic index extrapolation value — Extrapolation value used to calculate magnetic index elements
4.0
(default) | scalar
Extrapolation value used to calculate magnetic index elements, specified as a scalar.
Tunable: Yes
Dependencies
This parameter is enabled when Magnetic index extrapolation method is set to Constant
.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Atmospheric density source parameter to
Dialog
.Set Atmospheric model to
NRLMSISE-00
.
Programmatic Use
Block Parameter: MagneticIndexExtrapValue |
Type: character vector |
Values: '4.0' | scalar |
Default: '4.0' |
Flags source — Variation flag source
Dialog
(default) | Port
Variation flag source, specified as Dialog
or
Port
.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Atmospheric density source parameter to
Dialog
.Set the Atmospheric model parameter to
NRLMSISE-00
.
Programmatic Use
Block Parameter:
fluxFlagsSrc |
Type: character vector |
Values:
'Dialog' | 'Port' |
Default:
'Dialog' |
Flags — Variation flags
ones(1,23)
(default)
Variation flags, specified as an array of 23 (ones(1,23)
).
You can specify one of the following values for a field. The default value for
each field is 1
.
0.0 — Removes the effect on the output.
1.0 — Applies the main and the cross-term effects of that value on the output.
2.0 — Applies only the cross-term effect of that value on the output.
The array has these fields.
Field | Description |
---|---|
Flags(1)
| F10.7 effect on mean |
Flags(2)
| Independent of time |
Flags(3)
| Symmetrical annual |
Flags(4)
| Symmetrical semiannual |
Flags(5)
| Asymmetrical annual |
Flags(6)
| Asymmetrical semiannual |
Flags(7)
| Diurnal |
Flags(8)
| Semidiurnal |
Flags(9)
| Daily AP. If you set this field to -1, the block uses
the entire matrix of magnetic index information (APH)
instead of |
Flags(10)
| All UT, longitudinal effects |
Flags(11)
| Longitudinal |
Flags(12)
| UT and mixed UT, longitudinal |
Flags(13)
| Mixed AP, UT, longitudinal |
Flags(14)
| Terdiurnal |
Flags(15)
| Departures from diffusive equilibrium |
Flags(16)
| All exospheric temperature variations |
Flags(17)
| All variations from 120,000 meter temperature (TLB) |
Flags(18)
| All lower thermosphere (TN1) temperature variations |
Flags(19)
| All 120,000 meter gradient (S) variations |
Flags(20)
| All upper stratosphere (TN2) temperature variations |
Flags(21)
| All variations from 120,000 meter values (ZLB) |
Flags(22)
| All lower mesosphere temperature (TN3) variations |
Flags(23)
| Turbopause scale height variations |
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Flags source to
Dialog
.Set the Atmospheric density source parameter to
Dialog
.Set the Atmospheric model parameter to
NRLMSISE-00
.
Programmatic Use
Block Parameter:
fluxFlags |
Type: character vector |
Values:
'ones(1,23)' |
Default:
'ones(1,23)' |
Include anomalous oxygen in density calculation — Option to include anomalous oxygen in density calculation
off (default) | on
To include anomalous oxygen in density calculations, select this check box.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Atmospheric density source parameter to
Dialog
.Set the Atmospheric model parameter to
NRLMSISE-00
.
Programmatic Use
Block Parameter:
useOxygen |
Type: character vector |
Values:
'off' | 'on' |
Default:
'off' |
Drag coefficient source — Source of drag coefficient
Dialog
(default) | Port
Source of drag coefficient, specified as Dialog
or
Port
.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Programmatic Use
Block Parameter:
dragCoeffSrc |
Type: character vector |
Values:
'Dialog' | 'Source' |
Default:
'Dialog' |
Drag coefficient — Spacecraft coefficient of drag
2.179 (default) | scalar | vector of size numSat
Spacecraft coefficient of drag used by atmospheric drag calculation, specified as a scalar or as a vector of size numSat.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Drag coefficient source parameter to
Dialog
.
Programmatic Use
Block Parameter:
dragCoeff |
Type: character vector |
Values: scalar | vector of size numSat |
Default:
'2.179' |
Drag area source — Source of drag area
Dialog
(default) | Port
Source of drag area, specified as Dialog
or
Port
.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Programmatic Use
Block Parameter:
dragAreaSrc |
Type: character vector |
Values:
'Dialog' | 'Source' |
Default:
'Dialog' |
Drag area — Area to compute acceleration due to atmospheric drag
1.0 (default) | scalar | vector of size numSat
Area to compute acceleration due to atmospheric drag, specified as a scalar or as a vector of size numSat. This area of the spacecraft is perpendicular to the spacecraft relative velocity.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to
Earth
.Select the Include atmospheric drag check box.
Set the Drag area source parameter to
Dialog
.
Programmatic Use
Block Parameter:
dragArea |
Type: character vector |
Values: scalar | vector of size numSat |
Default:
'1.0' |
Third Body
Configure third body point mass for gravitational acceleration.
Ephemeris model — Ephemeris model
DE405
(default) | DE421
| DE423
| DE430
| DE432t
Select one of these ephemerides models defined by the Jet Propulsion Laboratory. The block uses ephemeris data to calculate relative celestial positions required for third body point mass gravity and solar radiation pressure.
Ephemeris Model | Description |
---|---|
| Released in 1998. This ephemeris takes into account the Julian date range 2305424.50 (December 9, 1599) to 2525008.50 (February 20, 2201). This block implements these ephemerides with respect to the International Celestial Reference Frame version 1.0, adopted in 1998. |
| Released in 2008. This ephemeris takes into account the Julian date range 2414992.5 (December 4, 1899) to 2469808.5 (January 2, 2050). This block implements these ephemerides with respect to the International Celestial Reference Frame version 1.0, adopted in 1998. |
| Released in 2010. This ephemeris takes into account the Julian date range 2378480.5 (December 16, 1799) to 2524624.5 (February 1, 2200). This block implements these ephemerides with respect to the International Celestial Reference Frame version 2.0, adopted in 2010. |
| Released in 2013. This ephemeris takes into account the Julian date range 2287184.5 (December 21, 1549) to 2688976.5 (January 25, 2650). This block implements these ephemerides with respect to the International Celestial Reference Frame version 2.0, adopted in 2010. |
| Released in April 2014. This ephemeris takes into account the Julian date range 2287184.5, (December 21, 1549 ) to 2688976.5, (January 25, 2650). This block implements these ephemerides with respect to the International Celestial Reference Frame version 2.0, adopted in 2010. |
Note
This block requires that you download ephemeris data using the Add-On Explorer. To
start the Add-On Explorer, in the MATLAB Command Window, type aeroDataPackage
. in the MATLAB desktop toolstrip, click Add-Ons .
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.
Programmatic Use
Block Parameter: ephemerisModel |
Type: character vector |
Values: DE405 | DE421 | DE423 | DE430 |
Default: 'DE405' |
Limit ephemerides date range — Option to enable start and end of range of ephemeris data
off
(default) | on
Control how much data is loaded into memory during simulation and how much data is included in generated code for the block:
Select this check box to limit the loading of ephemeris data to a specified date range.
Clear this check box to include data for the complete date range defined in the Ephemeris model table.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.
Programmatic Use
Block Parameter:
useDateRange |
Type: character vector |
Values: 'off' |
'on'
|
Default: 'off' |
Start date (JD) — Start date of ephemerides date range
juliandate(2020, 1, 1)
(default) | Julian date
Start date of ephemerides date range, specified as a Julian date.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Select the Limit ephemerides date range parameter.
Programmatic Use
Block Parameter: startDate |
Type: character vector |
Values: 'juliandate(2020, 1, 1)' | Julian date |
Default: 'juliandate(2020, 1, 1)' |
End date (JD) — End date of ephemerides date range
juliandate(2050, 1, 1)
(default) | Julian date
End date of ephemerides date range, specified as a Julian date.
Dependencies
To enable this parameter, select the Limit ephemerides date range check box.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Limit ephemerides date range parameter to
on
.
Programmatic Use
Block Parameter: endDate |
Type: character vector |
Values: 'juliandate(2050, 1, 1)' | Julian format date |
Default: 'juliandate(2050, 1, 1)' |
Include third body point-mass gravity — Acceleration due to third body gravity
off
(default) | on
To include acceleration due to third body gravity in orbit propagation calculation, select this check box. Otherwise, clear this check box.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.
Programmatic Use
Block Parameter: useThirdBodyGravity |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Sun — Gravitational acceleration due to Sun
on
(default) | off
To include gravitational acceleration due to the Sun (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to any value other than
Sun
.Set the Include third body point-mass gravity parameter to
on
.
Programmatic Use
Block Parameter: includeSunGravity |
Type: character vector |
Values: 'off' | 'on'
|
Default: 'on' |
Mercury — Gravitational acceleration due to Mercury
off
(default) | on
To include gravitational acceleration due to the Mercury (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to any value other than
Mercury
.Set the Include third body point-mass gravity parameter to
on
.
Programmatic Use
Block Parameter: includeMercuryGravity |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Venus — Gravitational acceleration due to Venus
off
(default) | on
To include gravitational acceleration due to the Venus (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to any value other than
Venus
.Set the Include third body point-mass gravity parameter to
on
.
Programmatic Use
Block Parameter: includeVenusGravity |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Earth — Gravitational acceleration due to Venus
on
(default) | off
To include gravitational acceleration due to the Earth (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to any value other than
Earth
.Set the Include third body point-mass gravity to
on
.
Programmatic Use
Block Parameter: includeVenusGravity |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Moon — Gravitational acceleration due to Moon
on
(default) | off
To include gravitational acceleration due to the Moon (point mass), select this check box. Otherwise, clear it.
Programmatic Use
Block Parameter: includeMoonGravity |
Type: character vector |
Values: 'off' | 'on' | |
Default: 'on' |
Mars — Gravitational acceleration due to Mars
off
(default) | on
To include gravitational acceleration due to the Mars (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to any value other than
Mars
.Set the Include third body point-mass gravity parameter to
on
.
Programmatic Use
Block Parameter: includeMarsGravity |
Type: character vector |
Values: 'off' | 'on' | |
Default:
'off' |
Jupiter — Gravitational acceleration due to Jupiter
off
(default) | on
To include gravitational acceleration due to the Jupiter (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to any value other than
Jupiter
.Set the Include third body point-mass gravity parameter to
on
.
Programmatic Use
Block Parameter: includeJupiterGravity |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Saturn — Gravitational acceleration due to Saturn
off
(default) | on
To include gravitational acceleration due to the Saturn (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to any value other than
Saturn
.Set the Include third body point-mass gravity parameter to
on
.
Programmatic Use
Block Parameter: includeSaturnGravity |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Uranus — Gravitational acceleration due to Uranus
off
(default) | on
To include gravitational acceleration due to the Uranus (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to any value other than
Uranus
.Set the Include third body point-mass gravity parameter to
on
.
Programmatic Use
Block Parameter: includeUranusGravity |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Neptune — Gravitational acceleration due to Neptune
off
(default) | on
To include gravitational acceleration due to the Neptune (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to any value other than
Neptune
.Set the Include third body point-mass gravity parameter to
on
.
Programmatic Use
Block Parameter: includeNeptuneGravity |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Pluto — Gravitational acceleration due to Pluto
off
(default) | on
To include gravitational acceleration due to the Pluto (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Central Body parameter to any value other than
Pluto
.Set the Include third body point-mass gravity parameter to
on
.
Programmatic Use
Block Parameter: includePlutoGravity |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Custom — Gravitational acceleration due to custom planet
off
(default) | on
To include gravitational acceleration due to a custom planet (point mass), select this check box. Otherwise, clear it.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Include third body point-mass gravity parameter to
on
.
Programmatic Use
Block Parameter: includeCustomGravity |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Custom gravitational parameter (m^3/s^2) — Custom gravitational acceleration
42.828314258067e12
(default) | scalar | vector of length numCustom3rdBodies
Custom gravitational acceleration for custom third body, specified as a scalar or as a vector of length numCustom3rdBodies. numCustom3rdBodies is the number of rows provided to the R_cb input port. Provide more than one value to include multiple custom bodies.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Include third body point-mass gravity parameter to
on
.Set the Custom parameter to
on
.
Programmatic Use
Block Parameter: customThirdBodyMu |
Type: character vector |
Values: '42.828314258067e12' | scalar | vector of length numCustom3rdBodies |
Default: '42.828314258067e12' |
SRP
Include solar radiation pressure (SRP) — Acceleration due to solar radiation pressure
off
(default) | on
To include acceleration due to solar radiation pressure in orbit propagation calculation, select this check box. Otherwise, clear the check box.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.
Programmatic Use
Block Parameter: useSRP |
Type: character vector |
Values: 'off' |
'on' |
Default: 'off' |
Eclipse fraction source — Source of eclipse fraction
Dialog
(default) | Port
Source of the eclipse fraction (fraction of solar disk visible from the spacecraft location), specified as Dialog
or Port
.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Include solar radiation pressure (SRP) parameter to
on
.
Programmatic Use
Block Parameter: useSRP |
Type: character vector |
Values: 'Dialog' |
'Port' |
Default: 'Dialog' |
Shadow model — Shadow model
Dual cone
(default) | Cylindrical
Shadow model for eclipse calculations, specified as one of these values.
Cylindrical
— Fraction can be 0.0 (Umbra) or 1.0 (Sunlight).Dual cone
— Fraction can be 0.0 (Umbra), between 0.0 and 1.0 (Penumbra or Antumbra), or 1.0 (Sunlight).
Programmatic Use
Block Parameter: shadowModel |
Type: character vector |
Values: 'Dual cone' | 'Cylindrical' |
Default:
'Dual cone' |
Include Earth — Option to include Earth
on
(default) | off
Option to include Earth as a secondary occulting body in eclipse calculations when central body is Moon.
Dependencies
Set the Central body parameter to
Moon
.
Programmatic Use
Block Parameter:
includeEarth |
Type: character vector |
Values:
'off' | 'on' |
Default:
'on' |
Include Moon — Option to include Moon
on
(default) | off
Option to include Moon as a secondary occulting body in eclipse calculations when central body is Earth.
Dependencies
Set the Central body parameter to
Earth
.
Programmatic Use
Block Parameter:
includeMoon |
Type: character vector |
Values:
'off' | 'on' |
Default:
'on' |
Reflectivity coefficient source — Source for spacecraft coefficient of reflectivity
'Dialog'
(default) | 'Port'
Source for the spacecraft coefficient of reflectivity, specified as
Dialog
or Port
.
Dependencies
To enable this check box:
Set the Propagation method parameter to
Numerical (high precision)
.Select the Include solar radiation pressure (SRP) check box.
Programmatic Use
Block Parameter:
reflectivityCoeffSrc |
Type: character vector |
Values:
'Dialog' | 'Port' |
Default:
'on' |
Reflectivity coefficient — Spacecraft coefficient of reflectivity
1.8
(default) | scalar | 2D array of size numSat | between [1,2]
Spacecraft coefficient of reflectivity used by solar radiation pressure calculation, specified as a scalar, 2D array of size numSat. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Include solar radiation pressure (SRP) parameter to
on
.Set the Reflectivity coefficient source parameter to
Dialog
.
Programmatic Use
Block Parameter:
reflectivityCoeff |
Type: character vector |
Values:
'1.8' | scalar | 2D array of size numSat |
between [1,2] |
Default:
'1.8' |
SRP area source — Source for spacecraft solar radiation pressure area
Dialog
(default) | Port
Source for the spacecraft solar radiation pressure (SRP) area, specified as
Dialog
or Port
.
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Include solar radiation pressure (SRP) parameter to
on
.
Programmatic Use
Block Parameter: srpAreaSrc |
Type: character vector |
Values: 'Dialog' | 'Port' |
Default:
'Dialog' |
SRP area — Cross section area of the spacecraft seen by the Sun
1.0
(default) | scalar | 2D array of size numSat
Cross section area of the spacecraft seen by the Sun, specified as a scalar or as a 2D array of size numSat. numSat is the number of spacecraft.
Tunable: Yes
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Include solar radiation pressure (SRP) parameter to
on
.Set the SRP area source parameter to
Dialog
.
Programmatic Use
Block Parameter:
srpArea |
Type: character vector |
Values:
'1.0' | scalar | 2D array of
size numSat |
Default:
'1.0' |
Solar flux pressure (W*s/m^3) — Spacecraft solar flux pressure
4.5344321e-6
(default) | scalar
Solar flux pressure, specified as a scalar.
Tunable: Yes
Dependencies
To enable this parameter:
Set the Propagation method parameter to
Numerical (high precision)
.Set the Include solar radiation pressure (SRP) parameter to
on
.
Programmatic Use
Block Parameter: fluxPressure |
Type: character vector |
Values: 4.5344321e-6 | scalar |
Default: '4.5344321e-6' |
Units
Units — Parameter and port units
Metric (m/s)
(default) | Metric (km/s)
| Metric (km/h)
| English (ft/s)
| English (kts)
Parameter and port units, specified as shown here.
Units | Forces | Moment | Mass | Inertia | Distance | Velocity | Acceleration | Area | Density |
---|---|---|---|---|---|---|---|---|---|
Metric (m/s) | Newton | Newton-meter | Kilograms | Kilogram m2 | meters | meters/sec | meters/sec2 | m2 | kg/m3, some density outputs 1/m3 |
Metric (km/s) | Newton | Newton-meter | Kilograms | Kilogram m2 | kilometers | kilometers/sec | kilometers/sec2 | m2 | kg/m3, some density outputs 1/m3 |
Metric (km/h) | Newton | Newton-meter | Kilograms | Kilogram m2 | kilometers | kilometers/hour | kilometers/hour2 | m2 | kg/m3, some density outputs 1/m3 |
English (ft/s) | Pound-force | Foot-pound | Slugs | Slug ft2 | feet | feet/sec | feet/sec2 | feet2 | lbm/ft3, some density outputs 1/ft3 |
English (kts) | Pound-force | Foot-pound | Slugs | Slug ft2 | nautical mile | knots | knots/sec | feet2 | lbm/ft3, some density outputs 1/ft3 |
Programmatic Use
Block Parameter:
units |
Type: character vector |
Values:
'Metric (m/s)' | 'Metric (km/s)' |
'Metric (km/h)' | 'English (ft/s)' |
'English (kts)' |
Default:
'Metric (m/s)' |
Angle units — Angle units
Degrees
(default) | Radians
Parameter and port units for angles, specified as
Degrees
or Radians
.
Programmatic Use
Block Parameter:
angleUnits |
Type: character vector |
Values:
'Degrees' | 'Radians' |
Default:
'Degrees' |
Time format — Time format for start date and time output
Julian date
(default) | Gregorian
Time format for Start date/time (UTC Julian date) and output
port tutc, specified as
Julian date
or Gregorian
.
Programmatic Use
Block Parameter:
timeFormat |
Type: character vector |
Values:
'Julian date' | 'Gregorian' |
Default:
'Julian date' |
Algorithms
Earth-Centric Coordinate Systems
The Spacecraft Dynamics block works in the ICRF and fixed-frame coordinate systems.
ICRF — International Celestial Reference Frame. This frame can be treated as equal to the ECI coordinate system realized at J2000 (Jan 1 2000 12:00:00 TT). For more information, see ECI Coordinates.
Fixed-frame — Fixed-frame is a generic term for the coordinate system that is fixed to the central body. The axes of the system rotate with the central body and are not fixed in inertial space.
When Central Body is
Earth
and the Use Earth orientation parameters (EOPs) parameter is selected, the fixed-frame coordinate system for Earth is the International Terrestial Reference Frame (ITRF). This reference frame is realized by the IAU2000/2006 reduction from the ICRF coordinate system using the earth orientation parameter file provided. If the Use Earth orientation parameters (EOPs) parameter is not selected, the block still uses the IAU2000/2005 reduction, but with Earth orientation parameters set to 0.When Central Body is
Moon
and the Input Moon libration angles parameter is selected, the fixed-frame coordinate system for the Moon is the Mean Earth/pole axis frame (ME). This frame is realized by two transformations. First, the values in the ICRF frame are transformed into the Principal Axis system (PA), the axis defined by the libration angles provided as inputs to the block. For more information, see Moon Libration. The states are then transformed into the ME system using a fixed rotation from the "Report of the IAU/IAG Working Group on cartographic coordinates and rotational elements: [7]. If the Input Moon libration angles parameter is not selected, the fixed frame is defined by the directions of the poles of rotation and prime meridians defined in the "Report of the IAU/IAG Working Group on cartographic coordinates and rotational elements: [7].When Central Body is
Custom
, all positions are in International Celestial Reference Frame (ICRF) and fixed-frame is not available.In all other cases, the fixed frame for each central body is defined by the directions of the poles of rotation and prime meridians defined in the "Report of the IAU/IAG Working Group on cartographic coordinates and rotational elements: [7].
Vehicle-Centric Coordinate Systems
The Spacecraft Dynamics block system works in the Body frame, north-east-down (NED), and local vertical, local horizontal (LVLH) coordinate systems.
Body frame — Fixed in both origin and orientation to the moving craft. For more information, see Body Coordinates.
North-east-down — Noninertial system with its origin fixed at the aircraft or spacecraft center of gravity. For more information, see ECI Coordinates.
Local vertical, local horizontal — Also known as the spacecraft coordinate system, Gaussian coordinate system, or the orbit frame. LVLH is a rotating, accelerating frame commonly used in studies of relative motion, such as vehicle maneuvering. The axes of this frame are:
R-axis — Points outward from the spacecraft origin along its position vectors (with respect to the center of Earth). Measurements along this axis are referred to as radial.
S-axis — Completes the right hand coordinate system. This axis points in the direction of the velocity vector, but is only parallel to it for circular orbits. Measurements along this axis are referred to as along-track or transverse.
W-axis — Points normal to the orbital plane. Measurements along this axis are referred to as cross-track.
Translational Dynamics
The Spacecraft Dynamics block uses the Simulink solver to solve translational and rotational equations of motion of one or more spacecraft. The total acceleration is always calculated and integrated in the ICRF coordinate frame. The block translational dynamics are governed by these equations:
where:
are the custom acceleration components from the A (applied acceleration) port.
are the input body force components.
m is the spacecraft mass.
The block performs numerical integration in the inertial ICRF coordinate system. At each timestep, the block:
Transforms position and velocity states into the fixed-frame.
Calculates nonspherical gravity in the fixed-frame.
Transforms the resulting acceleration into the inertial frame.
Sums the resulting acceleration with the other acceleration terms.
Integrates the summed acceleration terms.
There are three options available for the central body gravitational potential model:
Point-mass
, Oblate Ellipsoid
, and
Spherical Harmonics
.
Point-Mass
—Treats the central body as a point-mass, including only the effects of spherical gravity using Newton's law of universal gravitation.where μ is the standard gravitation parameter of the central body.
Oblate Ellipsoid
— In addition to spherical gravity, this option includes the perturbing effects of the second-degree, zonal harmonic gravity coefficient J2, accounting for the oblateness of the central body. J2 accounts for the vast majority of the central bodies gravitational departure from a perfect sphere.where:
given the partial derivatives in spherical coordinates:
where:
ϕ and λ are the satellite geocentric latitude and longitude.
P2,0 and P2,1 associated Legendre functions.
μ is the standard gravitation parameter of the central body.
Rcb is the central body equatorial radius.
The transformation
fixed2inertial
converts fixed-frame position, velocity, and acceleration into the ICRF coordinate system with origin at the center of the central body, accounting for centrifugal and coriolis acceleration. For more information about the fixed and intertial coordinate systems used for each central body, see Earth-Centric Coordinate Systems.Spherical Harmonics
— Adds increased fidelity by including higher-order perturbation effects accounting for zonal, sectoral, and tesseral harmonics. For reference, the second-degree, zeroth order zonal harmonic J2 is -C2,0. The Spherical Harmonics model accounts for harmonics up to max degree l=lmax, which varies by central body and geopotential model.where
given the partial derivatives
where:
ϕ and λ are the satellite geocentric latitude and longitude.
Pl,m are associated Legendre functions.
μ is the standard gravitation parameter of the central body.
Rcb is the central body equatorial radius.
Cl,m and Sl,m are the unnormalized harmonic coefficients.
The transformation
fixed2inertial
converts fixed-frame position, velocity, and acceleration into the ICRF coordinate system with origin at the center of the central body, accounting for centrifugal and coriolis acceleration. For more information about the fixed and intertial coordinate systems used for each central body, see Earth-Centric Coordinate Systems.
The Spacecraft Dynamics block uses this atmospheric drag equation:
where:
m — Spacecraft mass used by atmospheric drag calculation.
CD — Coefficient of drag assuming that it is dimensionless.
ρ — Atmospheric density.
A — Area normal to vrel, where
vrel — Velocity relative to atmosphere.
where is the central body angular velocity.
The Spacecraft Dynamics block uses this third body contribution equation:
where:
μthird — Gravitational parameter of the third body.
— Vector from the satellite to the third body.
— Position of third body with regard to the central body, specified as a vector.
The Spacecraft Dynamics block uses this solar radiation pressure equation:
where:
m — Mass of the spacecraft.
v — Eclipse shadow function.
Cr — Spacecraft coefficient of reflectivity.
As — Spacecraft solar radiation pressure area.
Psrp — Solar radiation pressure at a distance of AU from the sun.
AU — Mean distance from the Sun to Earth (1AU).
| — Vector from the satellite to the Sun origin
Rotational Dynamics
Rotational dynamics are governed by:
where:
are the body moment components.
is the spacecraft inertia tensor matrix.
When Mass type is Fixed
, equals 0.
When Mass type is Simple Variable
, this
equation estimates the rate of change of the inertia tensor:
This equation gives the rate of change of the quaternion vector:
References
[1] Vallado, David. Fundamentals of Astrodynamics and Applications. 4th ed. Hawthorne, CA: Microcosm Press, 2013.
[2] Vepa, Ranjan. Dynamics and Control of Autonomous Space Vehicles and Robotics. New York: Cambridge University Press, 2019.
[3] Stevens, Frank L., and Brian L. Stevens. Aircraft Control and Simulation. 2nd ed. Hoboken, NJ: John Wiley & Sons, 2003.
[4] Gottlieb, R. G. Fast Gravity, Gravity Partials, Normalized Gravity, Gravity Gradient Torque and Magnetic Field: Derivation, Code and Data. NASA Contractor Report 188243. Houston: NASA, February 1993.
[5] Konopliv, A. S., S. W. Asmar, E. Carranza, W. L. Sjogen, D. N. Yuan. "Recent Gravity Models as a Result of the Lunar Prospector Mission." Icarus 150, no. 1 (2001): 1–18.
[6] Lemoine, F. G. et al. "An Improved Solution of the Gravity Field of Mars (GMM-2B) from Mars Global Surveyor." Journal of Geophysical Research 106, no. E10 (2001): 23359–23376.
[7] Seidelmann, P. Kenneth et al. "Report of the IAU/IAG Working Group on Cartographic Coordinates and Rotational Elements: 2006." Celestial Mech Dyn Astr 98 (20017): 155–180 (2007).
[8] Standish, E. M. "JPL Planetary and Lunar Ephemerides." DE405/LE405. Interoffice memorandum. JPL IOM 312.F-98-048. August 26, 1998.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
Version History
Introduced in R2021bR2023b: Spacecraft Dynamics Block Changes
The Spacecraft Dynamics block has been updated to take into account:
The effects of third body gravity on orbit propagation.
Space weather data from a data file generated by the
aeroReadSpaceWeatherData
function.Solar radiation pressure (SRP).
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)