SOLIS Tutorial
Objective: Design an Attitude Profile and Target Sequence for a Satellite Mission Using STK SOLIS
In the following tutorial, you will use STK SOLIS to design the Attitude Determination and Control System (ADCS), Power, Payload, and Communication systems modeling for a satellite mission to image a number of locations in the Mountain West portion of North America and then relay that information down to facility.
The STK Scenario
An STK scenario has already been created to help you get started. The STK scenario, SOLISExample_Tutorial, contains the following objects:
- An imaging satellite, named SatView, with a sensor that models the field of view of its camera.
- Targets that the satellite observes.
- A facility that communicates with the satellite.
Loading the Tutorial Scenario
To load the scenario:
- Open STK.
- From the Welcome to STK window, click Open a Scenario.
- Browse to C:\Program Files\AGI\STK 11\Solis\ExampleScenarios and select SOLISExample_Tutorial.vdf.
- Go to File->Save As... and save a new verison of the scenario in any desired location. Saving as either *.vdf or *.sc is fine. If saving as *.vdf, make sure that File->VDF Setup...->"Copy scenario folder contents" is checked. If saving as a *.sc file, create a separate folder to hold all of the scenario files.
Accessing STK SOLIS
To access STK SOLIS, right-click the SatView satellite in the Object Browser and select STK SOLIS at the bottom of the right-click menu. The SOLIS window will be displayed in the STK workspace.
If experiencing resolution or display issues, see the Known Issues page for information on how this can be fixed
On startup, STK SOLIS displays the STK SOLIS Configuration page for the selected satellite. This page allows you to define the Simulation Execution Rate and view the entire Configuration Summary. The Configuration Summary automatically changes as you make changes to the Spacecraft/Simulation Configuration.
- In the Satellite Description field, enter:
- Click Accept All Changes to save your changes now.
SatView is an imaging satellite and its mission in this scenario is to take pictures of cities in the Mountain West region.
An asterisk (*) is now displayed next to the STK SOLIS Configuration entry under STK SOLIS Mission Configuration, on the SOLIS page list. The asterisk indicates that the page has been modified. Changes made to one page may cause STK SOLIS to make changes to other pages, and those other pages will also marked with an asterisk. To save your changes, you must click the Accept All Changes button at the top of the SOLIS window.
Initial Spacecraft Configuration
Now that SOLIS is open, you can start to use it to configure the properties of the SatView satellite. The following steps will show you how to make some basic changes to the spacecrafts properties in SOLIS.
- On the Initial Conditions page, click both Override Attitude and Rate boxes in the FSW and True 6DOF Conditions groups and enter [2.0 2.0 2.0] deg/sec in BOTH of the Rate (BDY) fields. This will set the spacecraft into a spin at the beginning of the scenario
- On the Environmental Disturbances page, select Enable Gravity Gradient Torque Model. However, this disturbance model requires a properly defined inertia matrix in Mass Properties.
- On the Spacecraft Mass Properties tab of the Mass Properties/Vehicle State page, enter:
- Ixx. 300 kg*m^2
- Iyy. 300 kg*m^2
- Izz. 550 kg*m^2
- Spacecraft Mass. 800 kg
- Now, go to the Mode Controller page.
- Select SunTrack, and enter the following vectors in the Mode Editor to correctly point the solar arrays in this mode:
- Alignment Vector (UBDY): [0 0 -1]
- Clocking Vector(UBDY): [0 1 0]
- Select NadirTrack in the Mode List. Enter:
- Alignment Vector (UBDY): [0 0 1]
- Clocking Vector (UBDY): [1 0 0]
- Select TargetTrack, and enter the following vectors:
- Alignment Vector (UBDY): [0 0 1]
- Clocking Vector(UBY): [0 1 0]
- Go to the Power/Thermal page to define the satellite's power system, which has one battery and three solar panels:
- On the Storage tab, click the Add icon (
) to add a default battery.
- On the Collection tab, click the Add icon and make the following changes:
- Surface Normal Vector (UBDY): [0 0 -1]
- Effective Area: 2 m^2
- Efficiency: 0.15
- Select Fixed Deployed under Mounting to represent the fact that the solar arrays are deployed
- Click the Copy icon twice (
) and change the Surface Name of the copied solar panels from Solar Panel 1_Copy to Solar Panel 2 and Solar Panel 1_Copy_2 to Solar Panel 3.
- On the Load tab:
- Sunlight Load: 310 W
- Eclipse Load: 370 W
- Under Additional Load, select Add Payload Power to Continuous Load and Add Communications Power to Continuous Load.
- Click Accept All Changes and the STK Save to save your changes.
"Clocking" vectors are similar to "Constraint" vectors in STK. When in SunTrack mode, SatView will point at the Sun with the [0 0 -1] body vector while doing its best to align the [0 1 0] vector with the specified clocking vector. Alignment and Clocking vectors should not be identical/co-aligned in the body frame. Doing this will cause errors in the simulation because the spacecraft cannot align and clock with the same body vector
Mode Controller parameters can be overwritten by the Mission Sequence Definition Sequence Editor, but in the absence of any explicit commands, the Mode Controller parameters are used
Performing a Sun Pointing Command Using Perfect Attitude Determination and Control
Follow these instruction to perform a simple sun-pointing command for the current configuration of the satellite. Depending on your Spacecraft/Simulation Configuration, various data is available for analysis and for displaying in the 2D and 3D Graphics windows.
Select Telemetry Data
STK SOLIS generates a large amount of data, and you can display it with the Report & Graph Manager. Since STK SOLIS can generate such a large quantity of data, you must select the data that will be available to the Report & Graph Manager. This is done using the STK Telemetry Interface page.
- Go to the STK Telemetry Interface page under STK SOLIS Mission Configuration in the SOLIS page list. Make the following selections on the Telemetry Interface tab:
- Make sure the Output Destination, at the top of this tab, is set to STK Data Provider (User Supplied Data).
- Highlight ODySSy Dyanmics->ODY_EOM_Summary and click Add Packet. The entire group of data is displayed in the Selected Telemry table and the entry in the list changes to green text.
- Highlight ODySSy Power Thermal and click Add Packet Group. This text will change to boldface greeen because the entire packet group has been selected.
- Click Accept All Changes and the STK Save to save your changes.
As you make changes to your spacecraft setup, packet groups and sub-packets are added to the available packet groups or removed from the active and selected packet groups as needed.
Define the Mission Sequence
- Go to the Mission Sequence Definition page and select the Sequence Editor tab:
- Click the Add icon below the Sequence Library. When prompted to save the sequence file, save it as SunPointing.
- Create a Spacecraft Command by selecting Spacecraft Command from the pull down at the top of the page and then clicking the Add icon.
- From the Command list for this particular Spacecraft Command, expand Mode Control and then select Go To Rate Damp. This command will stop the slight initial spin our spacecraft is in, before pointing at the sun
- Click Add again, at the top of the page, to add another Spacecraft Command
- Expand Mode Control and then select Slew To Tracking. In the Command Information and Time Editor windows, set:
- SLEWMODE: RendezSlew (Use RendezSlew to get into tracking mode. This slew is defined on the Mode Controller page)
- TRACKMODE: SunTrack (Set the tracking mode to be SunTrack. This is the same mode that was edited earlier from the Mode Controller Page)
- CLOCKINGOPTION: InertialFixed (Set the clocking option to be InertialFixed. The spacecraft will clock to an Inertial vector defined on the Mode Controller Page)
- Time from Sequence Start: 60 sec (This command will not kick off until 60 seconds after the Sequence Start).
- Click the Save button under the Sequence Library to save your sequence.
- Go to the Sequence Selection tab and add the SunPointing sequence to the Execution List by clicking on SunPointing in the Sequence List and then clicking the Add >> button.
- Click Accept All Changes and the STK Save to save your changes.
Run the Simulation
Users might find it helpful to read the entire "Run the Simulation" section before attempting it to avoiding missing the pauses in the scenario.
- If there are any unsaved changes (indicated by asterisks), click Accept All Changes.
- In the upper left corner of the STK SOLIS window, click the drop-down arrow next to the green button and Select Run x Times Real-Time.
- Enter 5 as the multiplier and click OK.
- Arrange the windows so that you can view the Run status window and the "3D Graphics 2 - Earth" window.
- Click Pause when the run time is about 60 seconds. Notice that the spacecraft's orientation has not changed. This is because there is a 60 second delay in the SunPointing sequence before the spacecraft will slew to SunTrack.
- Return to the Spacecraft Status Summary tab and click Resume. The Spacecraft Mode at the top of the STK SOLIS Run Status window will change to to RendezSlew. In the "3D Graphics 2 - Earth" window, watch as the spacecraft starts to slew to the sun.
- When the Run Time is over 200 seconds and the Spacecraft Mode is SunTrack, pause the simulation again.
- Minimize the Run Status Window.
Create Analysis Graphs
- Right click on Satview in the Object Browser and click on Report & Graph Manager...
- Select the SOLISExample_Tutorial Styles folder and click
to create a new graph.
- Name it AttRates and press enter.
- When the Graph style properties open, enter User Supplied Data in the Filter field and click Filter.
- Expand the User Supplied Data folder and the ODySSy Dynamics folder.
- Add ODY_EOM_Summary SCRate_BDYX, ODY_EOM_Summary SCRate_BDYY and ODY_EOM_Summary SCRate_BDYZ to the Y axis of the plot by double clicking the selection in the list or selecting it and then clicking the arrow pointing towards the Y Axis list of data.
- Enter Date as the Time Axis Title.
- Enter SC Attitude Rates [deg/s] as the Axis Title under Y Axis.
- Click OK.
- Create the Battery State of Charge graph:
- Create a New Graph Style, name it Battery State of Charge, and press Enter.
- When the Graph style properties open, enter User Supplied Data in the Filter field and click Filter.
- Expand the User Supplied Data folder and the ODySSY Power Thermal folder.
- Add ODY Power Model Battery Current (A) to the Y Axis.
- Enter Date in the Time Axis Title.
- Enter Current [A] as the Axis Title for the Y Axis.
- Add ODY Power Model Battery SOC Percent to the Y2 Axis.
- Add % SOC in the Axis Title for the Y2 Axis.
- Click OK.
- Generate both of the graphs you just created.
- Go back to the SOLIS Run Status window and click Stop.
There are a couple of things to notice in the AttRates plot. The first is that the initial rate that we gave the spacecraft is very quickly brought to zero with the RateDamp command. The second is that the slew to SunTrack is smooth and the rate never overshoots or misses its targeted value. Both of these behaviors are because the spacecraft is using Perfect Control. This will not necessarily be the case when the ADCS systems are added.
For the Battery State of Charge graph, notice that your State of Charge (SOC) drops until the spacecraft points toward the sun, and then charge increases as the battery charges. Also notice that the Battery current moves from negative 11 A (pulling 11 amps) to a positive 15.2 A (charging 15.2 amps). When looking at both graphs together you can see the Battery current increases as the slew is happening in the AttRate plot. The current stays constant as the spacecraft holds its position.
Next Steps: Subsystem Configuration
In the next part of this tutorial, you will configure the major spacecraft subsystems
Sensors and Attitude Determination
- Go to the Sensors page under Spacecraft/Simulation Configuration and click Run Wizard...
- View the various preference options available on the Sensor Wizard and make the following changes.
- Sun Point Vector (S/C Frame): [0 0 -1]
- Nadir Point Vector (S/C Frame): [0 0 1]
- Attitude Determination Precision: High Precision.
- Enable Horizon Sensors
- Target Orbit Altitude: 681 km.
- Click Create Sensors. Feel free to take some time to review the sensors that have just been created and look at some of their customizable parameters.
- While still on the Sensors Page, click GPS in the Sensors List and then click the Add icon at the bottom of the list
- Click on the newly created GPS sensor and go to it's ODySSy Simulation tab. Enter the following values:
- On the Orbit Determination System page, select GPS as the Ephemeris Source
- Go to the Attitude Determination System page. Notice that Fixed Gain filter is enabled (it was automatically changed from the default setting of Perfect AD) Verify the following values in the Attitude Sensor AD Configuration Table:
- Time Constant (sec):
- Magnetometer (MAG_1): 1800
- Both Sun Vector Sensors (SVS_1/SVS_2): 10
- Horizon Sensor Pair (HRZ_1/HRZ_2): 10
- Both Star Trackers (STR_1/STR_2): 1
- Click Accept All Changes and the STK Save to save your changes.
Parameter | Vector Input |
---|---|
Position Bias In LVLH frame |
[10 10 10] m |
Position Noise Standard Deviation In LVLH frame |
[1 1 1] m |
Velocity Bias In LVLH frame |
[0.1 0.1 0.1] m/s |
Velocity Noise Standard Deviation In LVLH frame |
[0.001 0.001 0.001] m/s |
Actuators and Attitude Control
- Go to the Actuators/Propulsion page. Click Run Wizard... and verify the following default values:
- Select a Primary Attitude Actuator: Reaction Wheels
- Select a Desaturation Actuator: Magnetic Torquers
- Desired Time for 180 degree slew maneuver: 320
- Maximum Desired Reaction Wheel Speed During Slew: 4000 rpm
- Click Create Actuators. Feel free to take some time to review the actuators that have just been created and look at some of their customizable parameters.
- Click Accept All Changes.
- On the Attitude Control System page under Spacecraft/Simulation Configuration on the main STK SOLIS window, make the following changes:
- Select PIID Control
- Use the dropdowns for X/Y/Z Actuator Sets(ATC) and select Reaction Wheels Set for each one. This allows the reaction wheels to control each of the three spacecraft axes
- On the Attitude Control tab, click Run Attitude Control Wizard...
- Set the Controller Bandwidth to 0.08 Hz and click Generate Gains. A pop-up will come up to warn you about overwriting values, press OK.
- On the Momentum Control tab, set the Enabled State to Always Enabled and then select Magnetic Torquer Set for the X/Y/Z Actuator Sets.
- Go to the Mode Controller page to set up an Actuator Based Slew Limit. This will base the maximum speed of a slew off of the new actuator's capability and not any arbitrary rate limits
- On the Slew Limits and Targets tab click on an existing Slew Definition and then click Add.
- Name this Slew Limit ActBasedLimit.
- Set the Type to Actuator-Based Limits
- Make sure that Reaction Wheel Set is selected for the Actuator Set.
- Rate and Accel Scale Factors should both be set to 0.85 (85% of maximum actuator authority)
- Now, on the Modes tab, click on both the EigenSlew and RendezSlew modes and make sure that they have ActBasedLimit selected as their Slew Definition
- Click Accept All Changes and the STK Save to save your changes.
Communications System and Payload
Since this is an imaging mission, and SatView has a camera payload on it, you also need to model the communications system and payload.
Add a Sensor in STK (outside of SOLIS) which will be used to model the Communications System:
- Insert a default sensor attached to SatView from the STK Object Browser.
- Name it SBandAnt and set the following parameters in its Property Browser:
- Cone Half Angle: 12.5 deg
- Azimuth: 90 deg
- Elevation: 0 deg
Basic->Definition
Basic->Pointing
To set up the imaging and communications portion of the mission in the sequence definition, you will create a Kodak camera payload, and a transmitter and receiver for STK SOLIS to use. These objects are used to determine pointing directions, power usage, data rates, and many other properties of the satellite during its imaging mission.
- Back in SOLIS, go to the Communications System page, click the Add icon, at the bottom of the Communication System list, and name it S_BandTxRx.
- Make the following changes:
- Link to STK satellite object. SBandAnt.
- Receiver and Transmitter. Enabled (default)
- Type. S-Band (default)
- On the Antenna tab, uncheck Omni-Directional and make the following changes:
- Boresight: [0.0 1.0 0.0]
- Field of View: 25 deg
- Go to the Transmitter tab and set or confirm the following property values:
- Frequency: 2.4 GHz
- Data Rate: 254000 bits/sec
- Overhead: 10 %
- Power Consumption: 76 W
- Standby Power: 0 W
- Go to the Receiver tab and set or confirm the following property values:
- Frequency: 2.4 GHz
- Data Rate: 17500 bits/sec
- Overhead: 10 %
- Power Consumption: 3.4 W
- Standby Power: 0 W
- Click Accept All Changes.
Now, add the Payload
- Go to the Payloads page, click the Add icon, at the bottom of the Payload List, and name it Kodak 1000. Make the following change:
- Link to STK Satellite Object: Kodak1000_Imager
- Add the following Payload Modes to the Payload Modes table:
- Mode Mnemonic: VIDEO
- Mode Name: Video
- Mode Power (W): 378
- Data Type: Data Rate (bits/sec)
- Data Output: 764,000
- Mode Mnemonic: CAMERA
- Mode Name: Camera
- Mode Power (W): 224
- Data Type: Bulk Data (bits)
- Data Output: 1,358,000
- Click Accept All Changes.
Video Payload Mode
Camera Payload Mode
Putting It All Together: Define Sequences and Run the Imaging Mission
Set Up Imaging and Communications Sequences
- On the Initial Conditions Page set FSW Attitude Control Mode to NadirTrack and uncheck both Override Attitude and Rate boxes
- On the Mode Controller page, in the Modes tab, click on RendezSlew and then hit the Add icon. This will create a new mode after RendezSlew. Make sure the new mode has the following settings:
- Name: CommTrack
- Type: Tracking
- Reference Object: SC->TgtObject
- Alignment Vector (UBDY): [0 1 0] (This mode will point the Communications system at the target, instead of the imager)
- Clock Vector (UBDY): [0 0 1]
- Accept All Changes
- Go to the Mission Sequence Definition page and select the Sequence Editor tab.
- Add a sequence and save it as KodakOpsOn.
- Select Spacecraft Command from the pull down and click Add two times to add two spacecraft commands. From the Spacecraft Command Setup box, specify the commands and parameters found in the table below.
- Click the Save icon to save the sequence you just created.
- Add another sequence called KodakOpsOff.
- Click the Save icon to save the sequence you just created.
- Add another sequence called SBandOn.
- Click the Save icon to save the sequence you just created.
- Add another sequence called SBandOff.
- Click the Save icon to save the sequence you just created and then click Accept All Changes and STK Save.
Command | Parameters |
---|---|
KODAK 1000 Set Mode (ODySSy Data Management) |
Mode Value: Video |
KODAK 1000 Set Power State (ODySSy Data Management) |
Power State Value: On |
Command | Parameters |
---|---|
KODAK 1000 Set Power (Data Management) |
Power State Value: Off |
Command | Parameters |
---|---|
ODY S-BandTxRx Set Receiver State |
Power State Value: On |
ODY S-BandTxRx Set Transmitter State |
Power State Value: On |
Command | Parameters |
---|---|
ODY S-BandTxRx Set Transmitter State |
Power State Value: Off |
Configuring the Target Planner
For this section of the tutorial, STK Analysis Workbench (Vector Geometry Tool) is required.
- In the Mission Sequence Definition page, select the Target Planner Tab.
- Un-check the Use SOLIS Times box and change the end time to 25 Jul 2011 18:40:00
- Set the attitude Between Targets to the following parameters. This will cause the spacecraft to charge its batteries when it is not pointing at a target.
- Slew: RendezSlew
- Destination: Sun Track (Aligment Mode)
- Clocking: Inertial Fixed
- Minimum Dwell: 500 sec
- Make sure the list of targets is in the same order as the Object Browser on the left. If not, set the "Action" to Load STK Target Objects and hit Exec
- In the Targeting Configurations, there is only [Ignore Target] at the bottom of the list, click Add to create a new targeting configuration.
- Define the following parameters:
- Name: ImageConfig
- Max Accesses: 1 (this is the maximum number of times you want it to visit this particular target)
- Target Constraints: Billings (This target was created with a 10 deg minimum elevation mask. By selecting this option, all targets using this config will have the same minimum elevation constraint)
- Slew Mode: RendezSlew (Use Rendezslew to point at the target)
- Destination Mode: TargetTrack
- Clocking Source: Inertial Fixed
- On Target Sequence: KodakOpsOn
- Off Target Sequence: KodakOpsOff
- On Target Delta Time: -.2 (Begin executing the sequence 200ms prior to arriving at the target)
- Off Target Delta Time: 0
- Dwell Time (minimum): 30 (this is your minimum amount of time it will spend on a target)
- Dwell Time (desired): 60 (this is your ideal amount of time it will spend on a target)
- Select the 9 STK targets in the target list and press the Apply to Selected Targets button to apply the ImageConfig to each of them.
- Accept All Changes.
Running the Target Planner
- Go to the Sequence Selection tab and make sure that the Execution List is empty by removing the SunPointing.
- Click Accept All Changes and then Save in STK before running the Target Planner
- Go back to the Target Planner tab and set the "Action" to Generate Sequence and hit Exec
- Name this generated sequence ImagingSequence and click save. This will disable your User Interface while the Target Planner runs.
- When the Target Planner has finished performing all of the calculations, verify that both checkboxes are selected and press Close.
Target Planner Results
- Look at the Accesses Scheduled column. A value of 1 indicates that there is one access schedule for the target; the value of 0 indicates that there is no access is scheduled.
- Look at the First Schedule Time column. It provides the time of the scheduled access, or N/A for a target without access.
- You can save this as a .csv file for future reference, or close it. For now, just press OK to close it.
- The Target Planner has generated a sequence, which can be viewed in the Sequence Editor. Go to the Sequence Editor tab and click on the ImagingSequence sequence. The first Sequence Element is a Comment that provides the details of the sequence plan.
- Click Accept All Changes.
- Click on the Sequence Selection tab and verify that ImagingSequence is the only sequence in the Execution List and that the Mission Elapsed Time (sec) is 0.0.
- Now, Run the scenario at 20 x Real-Time speed, and watch as the spacecraft dwells on as many targets as it can.
- After the run is complete (past 1200 seconds) feel free to open the AttRate and Battery State of Charge plots to see what they look like for the more complicated scenario.
Changing Priority
Since there were targets that were not imaged, you can increase their chances of being imaged by increasing their priority.
- On the Target Planner tab, select the following targets:
- Moab
- Santa Fe
- Enter 99 in the Priority field for each target.
- On the Sequence Selection tab remove the ImageSequence sequence from the Execution List
- Go back to the Target Planner tab and set the "Action" to Generate Sequence and hit Exec to run the Target Planner again. Save this Sequence as ImagingSequence_Priority.
- Look at the summary and notice that the two targets that were missed last time made it into the list this time, at the cost of preventing others from being imaged. In order to image all of the locations in one pass the user would have to make changes to the actuators or slew limits to increase the agility of the spacecraft.
- Run the scenario with ImagingSequence_Priority as the only sequence in the Execution List and watch as SatView images the targets.
Adding Communication Pointing
- On the Target Planning tab, click Add to create another Targeting Configuration and give it the following parameters:
- Name: CommConfig
- Max Accesses: 1
- Target Constraints: Billings
- Slew Mode: RendezSlew
- Destination Mode: Comm Track
- Clocking Source: Inertial Fixed
- On Target Sequence: SBandOn
- Off Target Sequence: SBandOff
- On Target Delta Time: -.2 (Begin executing the sequence 200ms prior to arriving at the target)
- Off Target Delta Time: 0
- Dwell Time (minimum): 30
- Dwell Time (desired): 60
- Select "Phoenix" from the target list and press the Apply to Selected Targets button to set that configuration.
- Set the priority for Phoenix to 99 so that the satellite will not miss its downlink. (Reset Moab and Santa Fe back to 100)
- Set the "Action" to Generate Sequence and hit Exec and call it CommSequence. Now it will generate a whole sequence for the scenario where data will be collected and transmitted back down to the ground.
- Remove ImagingSequence_Priority from the Execution List on the Sequence Selection tab.
- Click Accept All Changes.
- Run the scenario at 20x Real-Time speed and watch it image the targets and then transfer data down to the ground at the Phoenix target.