MIT License Contribute on GitHub Download PDF Download PDF

Stakeholder Needs

The SeaLion Mission Architecture is guided by a series of stakeholder needs, listed below.

1.1: Primary Mission Objective A1

The SeaLion mission shall establish UHF communication link with Virginia ground station

1.2: Primary Mission Objective A2

The SeaLion mission shall establish S-Band communication link with MC3 ground station

1.3: Primary Mission Objective A3

The SeaLion mission shall successfully transmit “mission data” defined above to ground stations on the Earth.

1.4: Primary Mission Objective A4

The SeaLion mission shall adhere to CubeSat standards.

1.5: Primary Mission Objective A5

The SeaLion mission shall validate the operation of the Impedance Probe (IP) as a primary payload in-orbit.

2.1: Secondary Mission Objective B1

The SeaLion mission shall provide a means to validate a Multi-spectral Sensor (Ms-S) in-orbit

2.2: Secondary Mission Objective B2

The SeaLion mission shall provide a means to validate a deployable composite structure (DeCS) in-orbit

3.1: Tertiary Mission Objective C1

The SeaLion mission shall qualify on-orbit the deployment and functioning of the newly developed UHF antenna system and its deployment.

3.2: Tertiary Mission Objective C2

The SeaLion mission shall qualify a CubeSat bus architecture for very-low Earth orbit (VLEO)

3.3: Tertiary Mission Objective C3

The SeaLion shall verify DeCS in-orbit behavior performance.

Stakeholder Needs Mapping

stakeholder needs mapping

User Stories

The SeaLion Mission Architecture’s stakeholder needs are then used to identify a series of user stories which then lead to design decisions captured in data structure and activity definitions.

1: Ping Satellite

As a Ground Station Operator I want to Ping satellite so that I can Establish communication link with satellite.

Example:

Ping the satellite in order to establish UHF communication link with Virginia ground station

2: View Satellite Beacon Data

As a Ground Station Operator I want to view satellite beacon data (alternating between health & mission data), received via UHF so that I can verify that satellite is operating nominally.

Example:

View satellite beacon data (health or mission data) to verify that state vector correspond with expected orbit profile and/or to validate that a mission mode was successful

3: Send Request to Set Interrupt Timer

As a Ground Station Operator I want to send a request to set count value at which interrupt timers (i.e., beacon, GPS ping, or orbit propagator) are triggered so that I can finetune parameters for attitude or orbit analysis or to conserve power.

Example:

Update beacon rate to transmit every 30 minutes to conserve power

4: Request Telemetry or EventLog Data

As a Ground Station Operator I want to Request satellite telemetry or eventlog data so that I can verify/validate health status or mission data.

Example:

Request satellite telemetry packets for local verification/validation of onboard AODS computations

4.1: Request Satellite Health Data

As a Ground Station Operator I want to request satellite health data packet so that I can verify/validate AODS sensors & GPS data are within nominal parameters.

Example:

Request satellite health data packet to verify or validate state vector corresponding to expected orbit profile based on pre-computed orbit propagation model

4.1.1: Request Satellite Health Data via S-Band Radio

As a Ground Station Operator I want to request satellite health data packet via S-band radio so that I can verify/validate AODS sensors & GPS data are within nominal parameters.

Example:

Request satellite health data packet via S-band radio to verify or validate state vector corresponding to expected orbit profile based on pre-computed orbit propagation model

4.2: Request Satellite Mission Data

As a Ground Station Operator I want to request satellite mission data so that I can validate in-orbit AODS and/or payload performance.

Example:

Request satellite mission data to verify that state vector & AODS sensor data correspond with expected orbit profile and/or validate that a mission mode was successful

5: Send Request to Set Mission Mode Duration

As a Ground Station Operator I want to send a request to set mission mode duration so that I can manage time spent per mission mode.

Example:

send a request to set Mission Mode 1 duration to 25 minutes

User Stories Mapping

user stories mapping

User stories as Use Case Diagram

use case diagram

Data Structures

This section covers each data structure type in the SeaLion Mission Architecture.

Satellite Health Data Packet

Purpose: Data structure for satellite health data packet used for beacon telemetry

Satellite Health Data Packet Template
call_sign: {{call_sign}}
battery_health: {{battery_health}}
temperature_battery: {{temperature_battery}}
mode: {{mode}}
state_vector: {{state_vector}}
Table 1. Satellite Health Data Packet Specification
Field Type Item Type Description Source

call_sign

string

Identifying call sign for the Sealion mission.

battery_health

float

Percent value indicating the remaining charge of the batteries.

temperature_battery

float

The temperature of the battery. Units in Kelvin.

mode

integer

Integer value indicating current mission mode. 0 = Safe, 1 = mission mode 1, 2 = mission mode 2, 3 = mission mode 3.

state_vector

ECIStateVector

ECI state vector from orbit propogator at time of beacon.

Satellite GPS Data

Purpose: Data structure for GPS data used for orbit propagation

Satellite GPS Data Template
time_stamp: {{time_stamp}}
altitude_data_GPS: {{altitude_data}}
lattitude_GPS: {{lattitude}}
longitude_GPS: {{longitude}}
Table 2. Satellite GPS Data Specification
Field Type Item Type Description Source

time_stamp

string

Time stamp when GPS data was acquired.

altitude_data_GPS

float

The altitude data of the satellite from GPS.

lattitude_GPS

float

Lattitude coordinate of the satellite from GPS.

longitude_GPS

float

Longitude coordinate of the satellite from GPS.

Satellite AODS Sensor Data

Purpose: Data structure for satellite AODS sensor data used for attitude determination or incremental orbit propogation

Satellite AODS Sensor Data Template
imu_gyro_x: {{imu_gyro_x}}
imu_gyro_y: {{imu_gyro_y}}
imu_gyro_z: {{imu_gyro_z}}
imu_magnetometer_x: {{imu_magnetometer_x}}
imu_magnetometer_y: {{imu_magnetometer_y}}
imu_magnetometer_z: {{imu_magnetometer_z}}
sun_sensor_pitch_pos: {{sun_sensor_pitch_pos}}
sun_sensor_pitch_neg: {{sun_sensor_pitch_neg}}
sun_sensor_yaw_pos: {{sun_sensor_yaw_pos}}
sun_sensor_yaw_neg: {{sun_sensor_yaw_neg}}
sun_sensor_roll_pos: {{sun_sensor_roll_pos}}
sun_sensor_roll_neg: {{sun_sensor_roll_neg}}
time_stamp: {{time_stamp}}
Table 3. Satellite AODS Sensor Data Specification
Field Type Item Type Description Source

imu_gyro_x

float

The angular rate of the body with to respective to the x-axis in the IMU’s reference frame.

imu_gyro_y

float

The angular rate of the body with to respective to the y-axis in the IMU’s reference frame.

imu_gyro_z

float

The angular rate of the body with to respective to the z-axis in the IMU’s reference frame.

imu_magnetometer_x

float

The magnetic field strength with respective to the x-axis in the IMU’s reference frame.

imu_magnetometer_y

float

The magnetic field strength with respective to the y-axis in the IMU’s reference frame.

imu_magnetometer_z

float

The magnetic field strength with respective to the z-axis in the IMU’s reference frame.

sun_sensor_pitch_pos

float

Sun sensor measurement with respect to positive pitch angle.

  • []

sun_sensor_pitch_neg

float

Sun sensor measurement with respect to negative pitch angle.

  • []

sun_sensor_yaw_pos

float

Sun sensor measurement with respect to positive yaw angle.

  • []

sun_sensor_yaw_neg

float

Sun sensor measurement with respect to negative yaw angle.

  • []

sun_sensor_roll_pos

float

Sun sensor measurement with respect to positive roll angle.

  • []

sun_sensor_roll_neg

float

Sun sensor measurement with respect to negative roll angle.

  • []

time_stamp

string

Time stamp of the last transmission.

Derived From:

ECIStateVector

Purpose: Data structure for the earth-centered inertial (ECI) state vector in cartesian coordinates computed from GPS data or orbit propagator

ECIStateVector Template
x: {{x}}
y: {{y}}
z: {{z}}
xd: {{xd}}
yd: {{yd}}
zd: {{zd}}
Table 4. ECIStateVector Specification
Field Type Item Type Description Source

x

integer

position in kilometers (km) along x-axis

y

integer

position in kilometers (km) along y-axis

z

integer

position in kilometers (km) along z-axis

xd

integer

velocity in kilometers per second (km/s) along x-axis

yd

integer

velocity in kilometers per second (km/s) along y-axis

zd

integer

velocity in kilometers per second (km/s) along z-axis

Mission Data

Purpose: Defines EVR (event) elements to be recorded to the eventLog during a mission mode

Mission Data Template
entry_tle: {{entry_tle}}
obc_sensors: {{obc_sensors}}
mission_data: {{mission_data}}
exit_tle: {{exit_tle}}
Table 5. Mission Data Specification
Field Type Item Type Description Source

entry_tle

ECIStateVector

ECIStateVector at time of beginning of mission mode

obc_sensors

AODSSensorData

AODS Sensor data

mission_data

string

Data recorded during mission mode

exit_tle

ECIStateVector

ECIStateVector at time of end of mission mode

Data Structures Mapping

data structures mapping

Finite State Machine

fsm