Cubesat

Implementation of a Air Force Cubesat model that can be used as a template to create any Cubesat architecture. Include support for battery, different activities per orbit and response times.

My_Sat_N_ASIM_Schedule2

Browsable image of the model.

  • To download OpenWebStart click on the links -
    Windows- Compatibility:Windows 10 or higher (*)
    macOS - Compatibility:macOS 10.15 (Catalina) or higher (*)
    Linux - Compatibility:Ubuntu 18.04 LTS or higher (*)
  • For an executable version,
  • Mouse over the icons to view parameters. Click on hierarchy and plotters to reveal content (if provided).
  • To simulate, click on Launch button, open downloaded file and click Run on the Java Security Page.
My_Sat_N_ASIM_Schedule2model <h2>SystemResource</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>This_Scheduler_Name</td><td>&quot;ASIM&quot;</td><td>&quot;ASIM&quot;</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;Fld_Name_or_String_or_None&quot;</td><td>&quot;Fld_Name_or_String_or_None&quot;</td></tr><tr><td>Task_Context_Switch_Time</td><td>Context_Switch_Time</td><td>0.5</td></tr><tr><td>Round_Robin_Time_Slice</td><td>1.0E-3</td><td>1.0E-3</td></tr><tr><td>Clock_Rate_Mhz</td><td>500.0</td><td>500.0</td></tr><tr><td>Max_Scheduler_Length</td><td>30</td><td>30</td></tr><tr><td>Time_Type</td><td>Relative Time</td><td>Relative Time</td></tr><tr><td>Scheduler_Type</td><td>Scheduler_FCFS</td><td>Scheduler_FCFS</td></tr><tr><td>Add_Scheduler_Times_to_DS</td><td>false</td><td>false</td></tr></table> <h2>Battery</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Period_min</td><td>90.0</td><td>90.0</td></tr><tr><td>Max_Battery_KW_Hr</td><td>0.6</td><td>0.6</td></tr><tr><td>Number_Orbits</td><td>Number_Orbits</td><td>1465</td></tr></table> <h2>CDH</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Context_Switch_Time</td><td>0.5</td><td>0.5</td></tr></table> <h2>Plot_and_Display</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr></table> <h2>Payload</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Context_Switch_Time</td><td>0.5</td><td>0.5</td></tr></table> <h2>ACS</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Context_Switch_Time</td><td>0.5</td><td>0.5</td></tr></table> <h2>EPS</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Context_Switch_Time</td><td>0.5</td><td>0.5</td></tr></table> <h2>Thermal</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Context_Switch_Time</td><td>0.5</td><td>0.5</td></tr></table> <h2>TTC</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Context_Switch_Time</td><td>0.5</td><td>0.5</td></tr></table> <h2>MissionComm</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Context_Switch_Time</td><td>0.5</td><td>0.5</td></tr></table> <h2>PV_Arrays</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Period_min</td><td>Period_min</td><td>90.0</td></tr></table> <h2>Mapper3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;ASIM&quot;</td><td>&quot;&quot;ASIM&quot;&quot;</td></tr><tr><td>Task_Number</td><td>&quot;Task_ID&quot;</td><td>&quot;&quot;Task_ID&quot;&quot;</td></tr><tr><td>Task_Priority</td><td>&quot;Priority&quot;</td><td>&quot;&quot;Priority&quot;&quot;</td></tr><tr><td>Task_Time</td><td>10.0</td><td>&quot;10.0&quot;</td></tr><tr><td>Task_Plot_ID</td><td>1</td><td>1</td></tr></table> <h2>Process_Task</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Block_Name</td><td>&quot;Process_Task&quot;</td><td>&quot;Process_Task&quot;</td></tr><tr><td>Optional_Parameters</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value     \\nPath                           VS/User_Library     \\nRead_File                      none                \\nSave_Files                     false               \\nProfile_File                   none                \\nListen_to_File                 none                \\nDuplicate_Input                true                \\nProfile                        0                   \\nMaximum_Loops                  1000000             \\nBlock_Reference                Block_Name         \\nPort_Order_Array               {&quot;input&quot;}         \\nAdd_Scheduler_Times_to_DS      false               \\n</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value     \\nPath                           VS/User_Library     \\nRead_File                      none                \\nSave_Files                     false               \\nProfile_File                   none                \\nListen_to_File                 none                \\nDuplicate_Input                true                \\nProfile                        0                   \\nMaximum_Loops                  1000000             \\nBlock_Reference                Block_Name         \\nPort_Order_Array               {&quot;input&quot;}         \\nAdd_Scheduler_Times_to_DS      false               \\n</td></tr><tr><td>Parallel_Execution</td><td>false</td><td>false</td></tr></table> <h2>Mapper2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;SubSystem&quot;</td><td>&quot;&quot;SubSystem&quot;&quot;</td></tr><tr><td>Task_Number</td><td>&quot;Subsys_ID&quot;</td><td>&quot;&quot;Subsys_ID&quot;&quot;</td></tr><tr><td>Task_Priority</td><td>&quot;Priority&quot;</td><td>&quot;&quot;Priority&quot;&quot;</td></tr><tr><td>Task_Time</td><td>&quot;Proc_Time&quot;</td><td>&quot;&quot;Proc_Time&quot;&quot;</td></tr><tr><td>Task_Plot_ID</td><td>1</td><td>1</td></tr></table> <h2>MSV_Scheduler</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr></table> <h2>VariableList</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Memory_Init_Text</td><td>/* Memory Initialize Template          \\nName          Type          Value     */\\nSun_Visible   global        true      ;\\nBatteryCharge\tglobal\t\t1000.0 ;\\nPower_Active\tglobal\t\t{66.2, 62.2, 38.4, 38.4, 4.0, 11.1, 8.3}\\nPower_Standby\tglobal\t\t{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}</td><td>/* Memory Initialize Template          \\nName          Type          Value     */\\nSun_Visible   global        true      ;\\nBatteryCharge\tglobal\t\t1000.0 ;\\nPower_Active\tglobal\t\t{66.2, 62.2, 38.4, 38.4, 4.0, 11.1, 8.3}\\nPower_Standby\tglobal\t\t{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}</td></tr></table> <h2>Mapper</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;ASIM&quot;</td><td>&quot;&quot;ASIM&quot;&quot;</td></tr><tr><td>Task_Number</td><td>&quot;Task_ID&quot;</td><td>&quot;&quot;Task_ID&quot;&quot;</td></tr><tr><td>Task_Priority</td><td>&quot;Priority&quot;</td><td>&quot;&quot;Priority&quot;&quot;</td></tr><tr><td>Task_Time</td><td>&quot;Proc_Time&quot;</td><td>&quot;&quot;Proc_Time&quot;&quot;</td></tr><tr><td>Task_Plot_ID</td><td>1</td><td>1</td></tr></table> <h2>ASIM_Plotter</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>fillOnWrapup</td><td>true</td><td>true</td></tr><tr><td>legend</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>startingDataset</td><td>0</td><td>0</td></tr><tr><td>fileName</td><td>Enter Filename to save plot</td><td>&quot;Enter Filename to save plot&quot;</td></tr><tr><td>viewPlot</td><td>true</td><td>true</td></tr><tr><td>savePlot</td><td>false</td><td>false</td></tr></table>

ORS Squared mission was to provide a small spacecraft platform to support a wide variety of programs of particular significance to the Operationally Responsive Space office (ORS) and the Air Force Research Laboratory (AFRL). The primary mission for the satellite was to measure and record vibration and shock data during the launch of a new space delivery vehicle called the Super Strypi. The satellite was also to mark the first flight of a revolutionary solar array system called the High Watts per Kilogram (HaWK) system. HaWK, manufactured by MMA Designs, is designed to provide a spacecraft with sufficient power to accomplish space weather experiments during a low-earth-orbit (LEO) mission. Among these experiments is a boom which extends one meter from the side of the spacecraft. This spacecraft, with its 6U CubeSat form factor, also marks the initial deployment of a revolutionary launch mechanism called a Canisterized Satellite Dispenser (CSD), manufactured by Planetary Systems Corporation. The CSD is designed to easily adapt to any space delivery platform and to reliably deliver approximately 6kg of spacecraft into orbit. The launch of the satellite was indefinitely postponed one week before delivery.

Mouse over the icons to see their parameters. Click on composites and plotters to reveal their contents (if provided).In this VisualSim Architect model, we capture the architecture of the ORS2-MSV Cubesat block diagram. In this model, we explore different architecture elements such as the number of operating tasks, the power charge/discharge, size of the Photo Voltaic Cells, Battery size and operating speed of the different hardware components. Using this model, we can verify that the Cubesat is able to operate within the deadline.