Model CubeSat vehicle
Aerospace Blockset / Aerospace Blockset CubeSat Simulation Library
The CubeSat Vehicle block models CubeSat vehicles to provide a high level mission planning/rapid prototyping option to quickly model and propagate satellite orbits. To accommodate constellation planning workflows, you can also use these blocks multiple times in a model. Specify this information for the vehicle:
Initial orbital state
Attitude control (pointing) mode
The Aerospace Blockset™ CubeSat Simulation Library contains three versions of the CubeSat Vehicle block preconfigured for common attitude control modes:
Earth (Nadir) Pointing — Primary alignment vector points towards the center of the Earth
Sun Tracking — Primary alignment vector points toward the Sun
Custom Pointing — Custom alignment and constraint vectors
To access the Aerospace
Blockset CubeSat Simulation Library, type asbCuteSatBlockLib
in the
MATLAB® Command Window.
The CubeSat Vehicle block is available only through the Add-On Explorer.
AECEF (m/s2)
— Vehicle accelerationsVehicle gravity accelerations (including gravity) used for orbit propagation, specified as a vector of size 3, in m/s2.
Data Types: single
| double
1st AlignmentBody
— Primary alignment vectorPrimary alignment vector, in the Body frame, to align with primary constraint vector.
Data Types: double
1st ConstraintECI
— Primary constraint vectorPrimary constraint vector specifying the direction in which to align the primary alignment vector.
This port is not available when Pointing mode is set to
Earth (Nadir) Pointing
or Sun
Tracking
, which have implied primary constraint vectors.
Data Types: double
1st AlignmentBody
— Primary alignment vectorPrimary alignment vector, in the Body frame, to align with primary constraint vector.
Data Types: double
1st ConstraintECI
— Primary constraint vectorPrimary constraint vector specifying the direction in which to align the primary alignment vector.
The direction depends on the Constraint coordinate system.
This port is not available when Pointing mode is set to
Earth (Nadir) Pointing
or Sun
Tracking
, which have implied primary constraint vectors.
Data Types: double
2nd AlignmentBody
— Secondary alignment vectorSecondary alignment vector, in the Body frame, to align with secondary constraint vector.
Data Types: double
2nd ConstraintECI
— Secondary constraint vectorSecondary constraint vector specifying the direction in which to align the secondary alignment vector.
The direction depends on the Constraint coordinate system.
Data Types: double
XECEF
— CubeSat positionEarth-centered Earth-fixed CubeSat position components, specified as a 3-by-1 array.
Data Types: double
VECEF
— Velocity componentsEarth-centered Earth-fixed velocity components, specified as a 3-by-1 array.
Data Types: double
qECI2Body
— Quaternion rotationQuaternion rotation from Earth-centered inertial frame to Body frame.
Data Types: double
qECEF2Body
— Quaternion arrayQuaternion rotation from Earth-centered Earth-fixed frame to Body frame.
Data Types: double
Start date [Julian date]
— Initial start date of simulation2458488
(default) | Julian dateInitial start date of simulation. The block defines initial conditions using this date.
To calculate the Julian date, use the juliandate
function.
Block Parameter:
sim_t0 |
Type: character vector |
Values: Julian date |
Default:
'2458488' |
Input method
— Initial vehicleKeplerian Orbital Elements
(default) | ECI Position and Velocity
| ECEF Position and Velocity
| Geodetic LatLonAlt and Velocity in NED
Initial vehicle position and velocity input method.
Selecting the Keplerian Orbital Elements
input method
enables these parameters:
Epoch of ECI frame [Julian date]
Semi-major axis [m]
Eccentricity
Inclination [deg]
Right ascension of the ascending node [deg]
Argument of periapsis [deg]
True anomaly [deg]
True longitude [deg] (circular equatorial)
Argument of latitude [deg] (circular inclined)
Longitude of periapsis [deg] (elliptical equatorial)
Selecting the ECI Position and Velocity
input method
enables these parameters:
Epoch of ECI frame [Julian date]
ECI position vector [m]
ECI velocity vector [m/s]
Selecting the ECEF Position and Velocity
input method
enables these parameters:
ECEF position vector [m]
ECEF velocity vector [m/s]
Selecting the Geodetic LatLonAlt and Velocity in NED
input method enables these parameters:
Geodetic latitude, longitude, altitude [deg, deg, m]
NED velocity vector [m/s]
Block Parameter:
method |
Type: character vector |
Values:
'Keplerian Orbital Elements' | 'ECI Postion and
Velocit' | 'ECEF Postion and Velocity' |
'Geodetic LatLonAlt and Velocity in NED' |
Default:
'Keplerian Orbital Elements' |
Epoch of ECI frame [Julian date]
— Epoch of ECI frame2451545
(default) | Julian dateEpoch of ECI frame, specified as a Julian date.
To calculate the Julian date for a particular date, use the juliandate
function.
Block Parameter:
epoch |
Type: character vector |
Values: Julian date format |
Default:
'2451545' |
Semi-major axis [m]
— CubeSat semi-major axis6878137
(default) | axis in metersCubeSat semi-major axis (half of the longest orbit diameter), specified in m.
Block Parameter:
a |
Type: character vector |
Values: scalar |
Default:
'6878137' |
Eccentricity
— Orbital eccentricity0
(default) | eccentricity greater than or equal to 0Deviation of the CubeSat orbit from a perfect circle.
Block Parameter:
ecc |
Type: character vector |
Values: scalar |
Default:
'0' |
Inclination [deg]
— Tilt angle of CubeSat orbital plane0
| degrees between 0 and 180Tilt angle of CubeSat orbital plane, specified between 0 and 180 deg.
Block Parameter:
incl |
Type: character vector |
Values: scalar |
Default:
'0' |
Right ascension of the ascending node [deg]
— Angular distance in equatorial plane0
(default) | degrees between 0 and 360Angular distance in equatorial plane from x-axis to location of the ascending node (point at which the satellite crosses the equator from south to north), specified between 0 and 360 deg.
Block Parameter:
omega |
Type: character vector |
Values: scalar |
Default:
'0' |
Argument of periapsis [deg]
— Angle from CubeSat body ascending node to periapsis0
(default) | degrees between 0 and 360Angle from the CubeSat body ascending node to the periapsis (closest point of orbit to Earth), specified between 0 and 360 deg.
Block Parameter:
argp |
Type: character vector |
Values: scalar |
Default:
'0' |
True anomaly [deg]
— Angle between periapsis and current position of CubeSat0
(default) | degrees between 0 and 360Angle between the periapsis (closest point of orbit to Earth) and the current position of CubeSat, specified between 0 and 360 deg.
Block Parameter:
nu |
Type: character vector |
Values: scalar |
Default:
'0' |
True longitude [deg] (circular equatorial)
— Angle between x-axis of periapsis and position of CubeSat vector0
(default) | degrees between 0 and 360Angle between x-axis of periapsis and position of CubeSat vector, specified between 0 and 360 deg.
Block Parameter:
truelon |
Type: character vector |
Values: scalar |
Default:
'0' |
Argument of latitude [deg] (circular inclined)
— Angle between ascending node and satellite position vector0
(default) | degrees between 0 and 360Angle between ascending node and satellite position vector, specified between 0 and 360 deg.
Block Parameter:
arglat |
Type: character vector |
Values: scalar |
Default:
'0' |
Longitude of periapsis [deg] (elliptical equatorial)
— Angle between x-axis of periapsis and eccentricity vector0
(default) | degrees between 0 and 360Angle between the x-axis of the periapsis and the eccentricity vector, specified between 0 and 360 deg.
Block Parameter:
lonper |
Type: character vector |
Values: scalar |
Default:
'0' |
ECI position vector [m]
— Cartesian position vector[0 0 0]
(default) | vectorCartesian position vector of satellite in ECI coordinate frame at Start Date.
Block Parameter:
r_eci |
Type: character vector |
Values: scalar |
Default:
'[0 0 0]' |
ECI velocity vector [m/s]
— Cartesian velocity vector[0 0 0]
(default) | velocity vectorCartesian velocity vector of satellite in ECI coordinate frame at Start Date.
Block Parameter:
v_eci |
Type: character vector |
Values: scalar |
Default:
'[0 0 0]' |
ECEF position vector [m]
— Cartesian position vector[0 0 0]
(default) | vectorCartesian position vector of satellite in ECEF coordinate frame at Start Date.
Block Parameter:
r_ecef |
Type: character vector |
Values: scalar |
Default:
'[0 0 0]' |
ECEF velocity vector [m/s]
— Cartesian velocity vector[0 0 0]
(default) | velocity vectorCartesian velocity vector of satellite in ECEF coordinate frame at Start Date.
Block Parameter:
v_ecef |
Type: character vector |
Values: scalar |
Default:
'[0 0 0]' |
Geodetic latitude, longitude, altitude [deg, deg, m]
— Geodetic latitude and longitude, and altitude[0 0 0]
(default) | velocity vectorGeodetic latitude and longitude, in deg, and altitude above WGS84 ellipsoid, in m.
Block Parameter:
lla |
Type: character vector |
Values: scalar |
Default:
'[0 0 0]' |
NED velocity vector [m/s]
— Body velocity[0 0 0]
(default) | velocity vectorBody velocity with respect to Earth-centered Earth-fixed (ECEF), expressed in the north-east-down (NED) coordinate frame, specified as a vector, in m/s.
Block Parameter:
v_ned |
Type: character vector |
Values: scalar |
Default:
'[0 0 0]' |
Initial Euler angles (roll, pitch, yaw) [deg]
— Initial Euler rotation angles[0 0 0]
(default) | vector | degreesInitial Euler rotation angles (roll, pitch, yaw) between Body and NED coordinate frames, specified in degrees.
Block Parameter:
euler |
Type: character vector |
Values: scalar |
Default:
'[0 0 0]' |
Initial body angular rates [deg/s]
— Initial angular rates[0 0 -0.05168]
(default) | vectorInitial angular rates with respect to NED frame, expressed in Body frame, specified as a vector.
Block Parameter:
pqr |
Type: character vector |
Values: scalar |
Default:
'[0 0 0]' |
Pointing mode
— CubeSat vehicle pointing modeEarth (Nadir) Pointing
(default) | Sun Tracking
| Custom Pointing
| Standby (Off)
CubeSat vehicle pointing mode, specified as Earth (Nadir)
Pointing
, Sun Tracking
, or
Custom Pointing
. The CubeSat vehicle uses the pointing
mode for precise attitude control. For no attitude control, select
Standby (Off)
.
Block Parameter:
pointingMode |
Type: character vector |
Values:
'Earth (Nadir) Pointing' | 'Sun Tracking' |
'Custom Pointing' | 'Standby
(Off)' |
Default:
'Earth (Nadir) Pointing' |
Primary alignment vector (Body wrt BCM)
— Primary alignment vectorDialog
(default) | Input port
Primary alignment vector, in Body frame, to align with primary constraint vector.
Selecting Dialog
enables a text box in which you
specify the primary alignment vector. The default value is [0 0
1]
.
Selecting Input port
enables the
1st AlignmentBody input
port, at which you specify the primary alignment vector.
Block Parameter:
firstAlign |
Type: character vector |
Values: vector |
Default:
'[0 0 1]' |
Block Parameter:
firstAlignExt |
Type: character vector |
Values:
'Input port' | 'Dialog' |
Default:
'Dialog' |
Secondary alignment vector (Body wrt BCM)
— Secondary alignment vectorDialog
(default) | Input port
Secondary alignment vector, in Body frame, to align with secondary constraint vector.
Selecting Dialog
enables a text box in which you
specify the secondary alignment vector. The default value is [0 1
0]
.
Selecting Input port
enables the
2nd AlignmentBody input
port, at which you specify the secondary alignment vector.
Block Parameter:
secondAlign |
Type: character vector |
Values: vector |
Default:
'[0 1 0]' |
Block Parameter:
secondAlignExt |
Type: character vector |
Values:
'Input port' | 'Dialog' |
Default:
'Dialog' |
Constraint coordinate system
— Constraint coordinate systemECI Axes
(default) | ECEF Axes
| NED Axes
| Body-Fixed Axes
Constraint coordinate system, specified as ECI Axes
,
ECEF Axes
, NED Axes
, or
Body-Fixed Axes
.
Block Parameter:
constraintCoord |
Type: character vector |
Values:
'ECI Axes' | 'ECEF Axes' | 'NED
Axes' | 'Body-Fixed Axes' |
Default:
'ECI Axes' |
Primary constraint vector (wrt BCM)
— Primary constraint vectorDialog
(default) | Input port
Primary constraint vector, in the Body frame, to align with the primary alignment vector.
This parameter is disabled when Pointing mode is
Earth (Nadir) Pointing
or Sun
Tracking
.
Selecting Dialog
enables a text box in which you
specify the primary constraint vector. The default value is [1 0
0]
.
Selecting Input port
enables the
1st constraintBody input
port, at which you specify the primary constraint vector.
Block Parameter:
firstRef |
Type: character vector |
Values: vector |
Default:
'[1 0 0]' |
Block Parameter:
firstRefExt |
Type: character vector |
Values:
'Input port' | 'Dialog' |
Default:
'Dialog' |
Secondary constraint vector (wrt BCM)
— Secondary constraint vectorDialog
(default) | Input port
Secondary constraint vector, in the Body frame, to align with the secondary alignment vector.
Selecting Dialog
enables a text box in which you
specify the secondary constraint vector. The default value is [0 0
1]
.
Selecting Input port
enables the
2nd constraintBody input
port, at which you specify the secondary constraint vector.
Block Parameter:
secondRef |
Type: character vector |
Values: vector |
Default:
'[0 0 1]' |
Block Parameter:
secondRefExt |
Type: character vector |
Values:
'Input port' | 'Dialog' |
Default:
'Dialog' |
Difference between TAI and UTC [sec]
— Difference between International Atomic Time and Coordinated Universal
Time0
(default) | scalarDifference between International Atomic Time (TAI) and Coordinated Universal Time (UTC), specified as a scalar, in sec.
Block Parameter:
dAT |
Type: character vector |
Values: scalar |
Default:
'0' |
Difference between UTC and UT1 [sec]
— Difference between Coordinated Universal Time and Universal Time0
(default) | scalarScalar value specifying the difference between UTC and UT1, specified as a scalar, in sec.
Block Parameter:
dUT1 |
Type: character vector |
Values: scalar |
Default:
'0' |
Polar displacement [deg deg]
— Polar displacements due to motion of Earth crust[0 0]
(default) | 1-by-2 arrayPolar displacements due to the motion of Earth crust along the x- and y-axis, specified as a 1-by-2 array, in deg.
Block Parameter:
pm |
Type: character vector |
Values: scalar |
Default:
'[0 0]' |
CIP adjustment [deg deg]
— Adjustments to location of Celestial Intermediate Pole[0 0]
(default) | 1-by-2 arrayAdjustments to the location of the Celestial Intermediate Pole (CIP) along the x- and y-axis, specified as a 1-by-2 array, in deg.
Block Parameter:
dCIP |
Type: character vector |
Values: scalar |
Default:
'[0 0]' |
Excess length of day [sec]
— Excess length of day0
(default) | scalarExcess length of day (difference between astronomically determined duration of day and 86400 seconds), specified as a scalar, in International System of Units (SI) sec.
Block Parameter:
lod |
Type: character vector |
Values: scalar |
Default:
'0' |
Analysis run time source
— Source of run time for mission analysis live scriptDialog
(default) | Model Stop Time
Source of run time for mission analysis live script, specified as:
Dialog
— Defined in Run time
parameter.
Model Stop Time
— Defined in model configuration
parameter Stop Time.
Block Parameter:
missionRTSource |
Type: character vector |
Values:
'Dialog' | 'Model StopTime' |
Default:
'Dialog' |
Run time [sec]
— Run time for mission analysis live script6*60*60
(default) | scalarRun time for mission analysis live script, specified as a scalar.
Block Parameter:
missionRT |
Type: character vector |
Values: scalar |
Default:
'6*60*60' |
Ground station geodetic latitude, longitude [deg, deg]
— Ground station locationGround station location, specified as a vector, in geodetic latitude and longitude in deg, deg.
Block Parameter:
missionGS |
Type: character vector |
Values: vector |
Default:
'[42, -71]' |
Run TOI analysis
— Enable time of interest mission analysisSelect this check box to enable time of interest analysis in mission analysis.live script
Block Parameter:
missionTOICheck |
Type: character vector |
Values:
'on' | 'off' |
Default:
'on' |
Time of interest [Julian date]
— Time of interest for mission analysis live script[]
(default) | Julian dateTime of interest mission analysis, specified as a Julian date. To use the
simulation start date, enter an empty array ([]
).
To calculate the Julian date, use the juliandate
function.
Block Parameter:
missionTOI |
Type: character vector |
Values: Julian date |
Default:
'[]' |
Camera field-of-view (FOV) half angle (deg)
— Half angle of field of view[]
| scalarHalf angle of field of view for nadir on-pointed camera. To exclude from analysis,
enter an empty array ([]
).
Block Parameter:
missionEta |
Type: character vector |
Values:
'[]' | scalar |
Default:
'55' |
Live script file name
— File name for mission analysis live script reportFile name for mission analysis live script report, generated as a live script. To
create a default mission analysis report with the format
CubeSatMissionReport_currentdate.mlx
, leave
the parameter blank. To create a live script of the mission analysis report, click the
Create Live Script Report button.
To create the live script with the specified file name, click the Create Live Script Report button. If this parameter is blank, the block creates a live script with a default file name.
Block Parameter:
missionName |
Type: character vector |
Values: blank entry | file name |
Default: blank entry |
Create Live Script Report
— Analyze mission and create live script reportTo analyze mission and create report in live script format, click this button. To
create a default mission analysis report with the format
CubeSatMissionReport_currentdate.mlx
, leave
the parameter blank. To create a live script of the mission analysis report, click the
Create Live Script Report button.
To create the live script with the file name specified in Live script file name, click the Create Live Script Report button. If Live script file name is blank, the block creates a live script with a default file name.
[1] Wertz, James R, David F. Everett, and Jeffery J. Puschell. Space Mission Engineering: The New Smad. Hawthorne, CA: Microcosm Press, 2011. Print.
asbCubeSatMissionAnalysis
| ecef2eci
| eci2ecef
| generateAccessTable
| greenwichsrt
| ijk2keplerian
| juliandate
| keplerian2ijk
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.
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: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.