MATLAB and Simulink for Space Systems
MATLAB® and Simulink® provide aerospace engineers with capabilities that speed the development process and improve communication between teams. Systems and subsystems engineers 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, control engineers can test their control algorithms with plant models before implementation, so they can achieve complex designs without using expensive prototypes. They can design for multiple physical configurations, such as the common bus architecture of a satellite design. In a single environment, engineers 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
Power systems engineers 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.
They can rapidly model electrical components and systems, such as solar arrays and voltage regulators, using provided blocks, or they can create custom blocks where the design calls for it. Engineers can then simulate the model to solve the underlying complex systems of equations without writing low-level code, and immediately visualize the results. They can also include thermal and attitude effects in their models to perform multi-domain simulation within one environment.
Communications systems engineers use MATLAB and Simulink as a common design environment to develop, analyze, and implement spacecraft communications systems. Engineers can use MATLAB and Simulink to prototype signal chain elements -- including RF, antenna, and digital elements. They can then combine the work of multiple teams as a system-level executable model.
Engineers can quickly explore imperfections at the system level and examine what-if scenarios difficult to produce in the lab. As the design matures, engineers can automatically generate C code for embedded processors or HDL code for FPGAs.
Systems engineers use MATLAB and Simulink to perform dynamic analysis. They use executable multi-domain spacecraft and ground system models for requirements validation and verification, providing insights into system-level behavior and performance that cannot be obtained by static analysis alone.
Systems engineers can trace requirements from high-level specifications, monitor the detailed implementation of the requirements in the design, and track the requirements in the automatically generated source code. They can map the requirements to test cases and automatically measure requirements coverage as the test cases are executed.
Systems engineers can also create customized, automated reports for design documentation and testing.
Software Engineering for Space Standards Compliance
Aerospace and software engineers need to comply with a wide array of standards that govern their processes. With MATLAB and Simulink, engineers can conform to the standards used around the world such as NPR 7150.2 (NASA Software Engineering Requirements) and ECSS-E-40 (European Cooperation for Space Standardization, Space Engineering Software).
Engineers can run requirements-based unit tests and use automated modeling standard checks to ensure that their flight software algorithms are production ready. They 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.
They can also prove the absence of run-time errors and automate code inspection. Engineers can automate the generation of certification artifacts at each step, including software design documents, metrics, and requirements.