Synthesis-based engineering in practice
This section explains concretely how to use the CIF language and toolset to apply synthesis-based engineering of supervisory controllers. Before reading this section, please familiarize yourself with:
-
The synthesis-based engineering approach.
Development process
The process to develop supervisory controllers using the synthesis-based engineering approach typically following several steps. We’ll briefly discuss each of the steps and provide some practical guidance:
- Modeling the events
-
Modeling the actions that can happen in the system as events.
- Modeling the plant
-
Modeling the plant automata that represents the event behavior of the to-be-controlled system.
- Modeling plant relations
-
Modeling the relations between the various plant automata.
- Modeling the requirements
-
Modeling the requirements that restrict the behavior of the plant.
- Marking
-
Dealing with marking of the plant and requirement automata.
- Supervisor synthesis
-
Performing supervisor synthesis on the plant and requirements to automatically synthesize a supervisor.
- Verification and validation
-
Verifying and validating that the synthesized supervisor controls the system correctly and as desired.
- Controller implementation
-
Implementing the validated supervisory controller using automatic code generation.
Advanced topics
Furthermore, the following more advanced information is available:
- Incremental controller development
-
Explains how to incrementally develop your controller to prevent commonly encountered issues when applying synthesis-based engineering.
- Resolving issues with too limited behavior
-
Explains how to resolve issues with too limited controlled system behavior, for instance due to conflicting requirements, revealed through synthesis or validation.
- Supervisor synthesis performance
-
Explains how to resolve performance and memory issues for supervisor synthesis.
- Non-monolithic supervisor synthesis
-
Explains how to incrementally develop your controller to prevent commonly encountered issues when applying synthesis-based engineering.
Practical example
For how this process can be used in practice, based on an example, see: