From the series: Run-Time Software Modeling
Teresa Hubscher-Younger, MathWorks
Use Schedule Editor to explicitly schedule the execution of your model components, including Export Functions and rate-based models, for both simulation and code generation. Quickly create test harnesses based on rates and execution times for Export Function models, and with Schedule Editor, every specified partition has an entry point in the generated code, even with rate-based models.
With Schedule Editor, you can easily view and edit the schedules of components in a graphical format. It shows a graph of the components in the model (known as partitions), the data communication between them, and a table of the execution order of those partitions. You can edit the schedule of partitions without disturbing the model structure.
With the Schedule Editor, you can schedule components in both export-function and rate-based models, by creating partitions and specifying their execution order. You can simulate this schedule as a test harness and generate code where every specified partition has an entry point.
To use the Schedule Editor, a model needs to be fixed-step, multitasking, and handling rate transitions automatically. This enables the Schedule Editor to manipulate partitions you will create with components.
To open the Schedule Editor, you go to the View menu, and to see the default partitions, you need to Update Diagram.
What we see in the model are two implicit partitions, meaning that Simulink has scheduled these partitions automatically. These are associated with rates in the model. Let’s create some explicit partitions to schedule by setting the Schedule Rates with parameter to Schedule Editor in the model block. The ports choice would expose the function call ports at the boundary to be scheduled by a Function Call Generator or Stateflow Chart. The Schedule Editor option removes the ports, because you can now schedule them directly in the editor and simulate how they will behave by ordering the partitions.
I will run the model now, which also updates the Schedule Editor.
The Execution Order on the right shows the current schedule for the partitions, which were created from the function calls. The Schedule Editor figures out the rates for the partitions from the specified sample times in the function calls.
The 5-millisecond tasks are grouped together under the exported function set to inherit its rate. At the bottom, we have the 10-millisecond task. On the right, we can see the data connections and dependencies between the partitions. The partition set to inherit its rate can be scheduled by specifying the hit time directly in the partition property dialog or by giving it a variable that has the hit times.
To update the schedule or execution order we simply drag and drop the partitions in the list. Dragging ThrottleComposition.ActuatorRun5ms after the ThrottleComposition.ControllerRun5ms in the execution order, results in a dependency change between the two partitions.
Rate-based models can be used with the Schedule Editor by creating partitions manually. To do this, open Manage Partitions, choose to schedule as a periodic partition, and give it a name.
These partitioned models have entry points in the generated code, which Export Functions also have.
Schedule Editor lets you schedule execution for simulation and code generation, allowing you to have more control over execution and quickly create test harnesses based on rate and execution times.