MOO4Modelica
An optimization framework and workflow for Modelica which supports both single- and multi-objective optimization.
GitHub Page: https://wangzizhe.github.io/MOO4Modelica

Framework
Highlights:
-
Easy to configure: All configurations can be defined in
config.json
. - SoTA algorithms: Dynamic import of algorithms from pymoo.
- Enable use of parallel computing: For accelerated process.
- Support transformation into feature models: To better analyze and understand large-scale models.
Structure:
./src/
(Feature Model Transformation)
|-- feature_model
|-- modelica.g4
|-- parse_modelica.py
|-- feature_model.py
(Optimization Operation)
|-- config.json
|-- config.py
|-- optimize_main.py
|-- parallel_computing.py
|-- adaptive_instance_selection.py
|-- optimization_libraries.py
|-- evaluate.py
- (Feature Model Transformation)
-
modelica.g4
: an ANTLR4 grammar for Modelica files -
parse_modelica.py
: parse a Modelica model to extract it components and their parameters -
feature_model.py
: create a feature model and add the extracted components
-
- (Optimization Operation)
-
config.json
&config.py
: global settings and configurations -
optimize_main.py
: main optimization script -
parallel_computing.py
: parallel computing -
optimization_libraries.py
: dynamic import of algorithms from pymoo
-
Usage
https://wangzizhe.github.io/MOO4Modelica/docs/Usage.html
Example
https://wangzizhe.github.io/MOO4Modelica/docs/Example.html
Dynamic Adaptation and Orchestration of Systems with Modelica and MOO4Modelica
https://wangzizhe.github.io/MOO4Modelica/docs/OrchestrationWorkflow.html