MATLAB and Simulink for Space Systems
MATLAB® and Simulink® provide aerospace engineers with capabilities that speed the development process and improve communication between teams. You can use MATLAB and Simulink to:
- Perform requirements-based mission validation in the time domain
- Run system-level Monte-Carlo simulations using multi-discipline spacecraft models
- Conduct trade studies for spacecraft sizing and hardware selection
- Analyze spacecraft telemetry and payload data
- Design detailed guidance, navigation, and control (GNC) algorithms
- Model Photo-Voltaic (PV) power subsystems and design power electronics components
- Analyze RF and digital communications subsystems and deploy the algorithms on FPGAs
- Generate embedded C and C++ code following space industry standards
- Perform flight software verification and validation
“MATLAB and Simulink saved us about 90% on costs compared with the alternative we considered while giving us the coding flexibility to develop our own modules and fully understand the assumptions being made, which is essential when reporting results to other teams.”Patrick Harvey, Virgin Orbit
Using MATLAB and Simulink for Space Systems
Guidance, Navigation, and Control (GNC)
Using MATLAB and Simulink, you can test your control algorithms with plant models before implementation to achieve complex designs without using expensive prototypes. You can design for multiple physical configurations, such as the common bus architecture of a satellite design. In a single environment, you can work on:
- Building and sharing GNC models
- Integrating and simulating system-level effects of controls and mechanical design changes
- Reusing automatically generated flight code and test cases
- Integrating new designs with legacy designs and tools
You can use MATLAB and Simulink for tasks like running simulations for mission power profile analysis, predicting the system impacts of battery aging, and performing detailed design of electrical components such as DC-DC converters.
MATLAB and Simulink let you rapidly model electrical components and systems, such as solar arrays and voltage regulators, using provided blocks, or create custom blocks where the design calls for it. You can then simulate your model to solve the underlying complex systems of equations without writing low-level code, and immediately visualize the results. You can also include thermal and attitude effects in your models to perform multidomain simulation within one environment.
You can use MATLAB and Simulink as a common design environment to develop, analyze, and implement spacecraft communications systems. You can model and visualize satellite orbits, perform link analysis, and access calculations. MATLAB and Simulink help you prototype signal chain elements—including RF, antenna, and digital elements—and combine the work of multiple teams as a system-level executable model.
You can explore imperfections at the system level and examine what-if scenarios that are difficult to produce in the lab. As the design matures, you can automatically generate C code for embedded processors or HDL code for FPGAs.
System Composer™ enables you to create space and ground system architectures, define interfaces, and perform trade studies to evaluate your designs. You can trace between levels of requirements and architectures and perform requirements allocation.
You can insert executable models into the architecture with MATLAB and Simulink to propagate and visualize satellite and constellation orbits and perform mission analysis such as computing line-of-sight-access. Also, you can add fidelity to the underlying system behaviors with executable multidomain spacecraft and ground system models to verify and validate requirements, providing insights into system-level behavior and performance that cannot be obtained by static analysis alone.
As the system design progresses, you can further refine the architecture model by mapping requirements to test cases and automatically measuring requirements coverage as the test cases are executed. System Composer lets you trace between levels of requirements and architectures, monitor the detailed implementation of the requirements in the design, and track the requirements in the automatically generated source code. Also, you can create customized, automated reports for design documentation and testing.
Flight software engineers need to comply with a wide array of standards that govern their processes. With MATLAB and Simulink, you can conform to standards used around the world such as the NASA Software Engineering Requirements (NPR 7150.2), the European Cooperation for Space Standardization (ECSS) Space Engineering Software (ECSS-E-ST-40), and Software Product Assurance (ECSS-Q-ST-80) standards.
You can run requirements-based unit tests and use automated modeling standard checks, such as the modeling standards developed for the NASA Orion program, to ensure that your flight software algorithms are production ready. You can then automatically generate C and C++ code from the models and use static code analysis, formal methods, and code-review capabilities to check compliance to standards such as MISRA.
MATLAB and Simulink let you prove the absence of run-time errors and automate code inspection. You can automate the generation of reports and certification artifacts at each step, including software design documents, metrics, and requirements.
- NASA Ames Research Center Develops Flight Software for Lunar Atmosphere Dust Environment Explorer
- NASA Software Engineering Requirements (NPR 7150.2C) Workflow with MATLAB and Simulink
- ECSS Space Engineering Software Workflow with MATLAB and Simulink
- NASA Orion GN&C: MATLAB and Simulink Modeling Guidelines