Petri-Nets
An end-to-end project at TUM’s Institute of Automation and Information Systems spanning the full stack of intelligent distributed embedded systems. The work covers formal system modeling with Petri nets, PLC control programming, MATLAB/Simulink-based control design, and model-driven engineering with automated code generation — all applied to a Festo sorting station as the target hardware platform.
My Contributions
- Petri Net Modeling: Modeled concurrent and distributed systems using Petri nets, analyzed network properties (deadlock-freedom, liveness, reproducibility, and termination), and constructed incidence matrices. Used PIPE for graphical verification and MATLAB to compute reachability vectors.
- Stateflow Control Design: Designed a complete Stateflow state machine in MATLAB Simulink to control a Festo sorting station, implementing a safe initialization sequence, height and color sensor evaluation, and two distinct workpiece paths (rejection vs. acceptance).
- PLC Programming: Programmed the Festo station in CoDeSys using IEC 61131-3 Structured Text, and established a live connection between the MATLAB simulation and the real PLC runtime.
- Metamodel Design: Designed an Ecore metamodel for a library management system using Obeo Designer, capturing inheritance hierarchies, composition relationships, and associations. Used the Eclipse Modeling Framework (EMF) to auto-generate Java model code from the metamodel.
- Service Plant Modeling: Modeled the Festo system as a service plant model, defining pre/post-conditions and service states for each step of the control sequence.
- Model-to-Text Transformation: Implemented M2T transformations using Acceleo templates to generate structured text reports from the library model. Used OCL queries (
oclIsTypeOf,->select()) for type-safe filtering over inheritance hierarchies and navigated multi-level associations for dynamic output. Applied the same approach to generate the Festo plant model description from the service plant model.