Configuration Classes
Everything that is necessary to set up and run a simulation in SADYCOS is defined in configuration classes. These classes should be located under UserFiles/Configurations
. Initially, this folder contains a namespace ExampleMission
with two classes DefaultConfiguration
and GainSearch
which serve as examples for how to set up own configuration classes. All configuration classes must inherit from the abstract superclass SimulationConfiguration
that is provided by in the Core
folder. This class already provides the standard interface methods that users can utilize for configuring and executing simulations.
Page Contents
Definition
Subsystem Functions
The abstract superclass SimulinkConfiguration
forces its subclasses to implement the functions that are called from the MATLAB function blocks of the Simulink model as static methods. This is explained in more detail on the page Subsystem Functions.
Parameter Configuration
Before the simulation can be started, the general properties of the Simulink model as well as parameters of the models used within the subsystem functions must be configured by the user. For this, the superclass forces subclasses to implement the static method configureParameters
which is supposed to output a cell array of parameter structures that are used during the preparation and execution of the simulation. The page Parameter Configuration explains this in more detail.
Buses Configuration
Lastly, the superclass enforces implementation of the static method configureBuses
. The subsystem functions will generally output data in the form of structures. Simulink is not able to infer the bus objects from these structures during model preparation automatically. Thus, the user must specify a bus object for every signal of the Simulink model. The page Buses Configuration explains this in more detail.
Simulation Input Configuration
The outputs of the configureParameters
and configureBuses
methods are used within another static method configureSimulationInputs
to create objects of the MATLAB’s Simulink.SimulationInput
class. Those objects contain all necessary information to run a simulation. The method configureSimulationInputs
already has a default implementation in the superclass but can be overridden by the user if necessary. The details are explained on the page Simulation Input Configuration.
Additional Methods
Besides these mandatory methods, the user can implement additional ones in the configuration classes. For example, the DefaultConfiguration
class of the ExampleMission
namespace contains a method replayPositionAndAttitude
which can be called after a simulation to visualize the position and attitude of the satellite over time using MATLAB’s satellite scenario functionality.
Usage
After creating a new configuration class, running the simulation is as simple as instantiating the class and calling its run
method.
o = ExampleMission.DefaultConfiguration;
o.run;
Under the hood, the constructor of the class calls the methods configureParameters
, configureBuses
, and configureSimulationInputs
and saves the Simulink.SimulationInput
objects as properties of the configuration class object o
.
The run
method then only calls MATLAB’s sim
function with the Simulink.SimulationInput
objects as input arguments. If the user specified multiple parameter structures, the run method can also be configured to use the function parsim
from MATLAB’s Parallel Computing Toolbox to run simulations in parallel.