The standard Modelica library contains a sub-library
** PetriNet** for modeling of discrete phenomena with
Petri net formalism. It is designed for, and implements, black
deterministic priority Petri nets, which are well suited e.g., for
control system specification but can have rather limited
expressiveness in other problem domains. Such may be in reliability
engineering or in investigation of socio-technical aspects of
complex technical systems.

Therefore, the Petri net library already available is extended
to form a new library ** ExtendedPetriNet** with

- transitions allowing for deterministic or stochastic time delays before their firing (using builit-in random number generators BIRNG or custom made ones), and
- places capable of containing more than one token,

Several modeling and simulation examples are given to
demonstrate the usability of the enhancements - among them -
queuing models and models to determine system availability, see the
adjoned *.pdf document **Petri_Net_Extensions**.

For the time being, the extended library is currently structured in a manner that all extensions are clearly seperated from the original Petri net library. Three sub-packages have been added:

- Extensions
- Modules
- ExamplesExtendedPetriNets.

**Author:**- Stefan
Fabricius

Swiss Federal Institute of Technology (ETH)

Laboratory for Safety Analysis

Weinbergstrasse 11

8001 Zurich

Switzerland

email: fabricius@lsa.iet.mavt.ethz.ch

**Release History and Notes:**

*April 11th, 2002*, Version 1.0

**Copyright (C) 2002, with the author.**

The ** ExtendedPetriNet** library is

The library comes with absolutely no warranty. It has been carefully tested, yet, the absence of faults or bugs cannot be guaranteed.

Comments or bug reports are most welcome.

Below listed is the information to the orginal, not extended

The **PetriNets** library allows to model **discrete**
components by a special kind of **Petri nets** with at most one
token on a place, as well as by **state transition diagrams**
(which are special kinds of Petri nets). Petri nets and state
transition diagrams are "higher level" constructs for the
description of switching elements, parallel activities or
syncronization. For several kinds of applications it is much easier
and clearer to use these components instead of modeling the
discrete behaviour directly with the basic language constructs of
Modelica ("if" or "when" statements). A typical Petri net is shown
in the following figure:

A **Petri net** is defined in the following way:

- It consists of a set of
**places**and of a set of**transitions**. The places are split into start places which are "active" at the start of the simulation and of "normal" places which are "non-active" at the beginning. - Places are connected by
**transitions**, whereby no places and no transitions are directly connected (i.e., a place is connected to a transition which in turn is connected to another place). Any number of start places can be present. - An "
**active**" place is characterized by a "**token**" placed on the place. In the ModelicaAdditions.PetriNets libray a place is "active" when the public variable "**state**" of the place is**true**. - There are
**several transition**elements in the library. Whenever the**states**of**all inputs**to the transition elements are**active**and when the**condition**of the transition is**true**then the following actions are performed:- all
**input states**are marked as "**inactive**", i.e., the token is removed. - all
**output states**are marked as "**active**", i.e., they are marked by new tokens.

**conditionPort**connector of a transition element is used to signal via a Boolean signal whether the condition of a transition is true or false. Alternatively, the condition can be provided as an equation to set the public variable**condition**of the corresponding transition element. - all
- There are several
**place**components in this library (such as Place01, Place10, Place11) which have different number of input and output transition connectors. This is due to the current limitations of the annotations of Modelica, which do not allow to define the graphical location of the elements of a vector of (transition) connectors with unknown length. - If two or more transitions of a place would fire at the same
time instant,
**priorities**are used in order that exactly one of them fires. The highest priority has a transition connector of a place with the lowest index (e.g. outTransition1 has a higher priority as outTransition2).

The method used in this library to realize Petri nets in Modelica is described in detail in:

- Mosterman P.J., Otter M. and Elmqvist H. (1998):
**Modeling Petri-Nets as Local Constraint Equations for Hybrid Systems using Modelica.**1998 Summer Computer Simulation Conference (SCSC'98), Reno, U.S.A., 19.-20. Juli (download from here).

This package is not part of the Modelica standard library,
because it is planned to realize a package with only **one**
place and **one** transition component, once vector connectors
with unknown length have better support in Modelica.

**Main Author:**- Martin Otter

Deutsches Zentrum für Luft und Raumfahrt e.V. (DLR)

Institut für Robotik und Mechatronik

Postfach 1116

D-82230 Wessling

Germany

email: Martin.Otter@dlr.de

**Release Notes:**

*June 12, 2000*by Martin Otter:

Realized.

**Copyright (C) 2000, DLR.**

*The ModelicaAdditions.PetriNets package is free
software; it can be redistributed and/or modified under the terms
of the Modelica license, see the license conditions and the
accompanying disclaimer in the documentation of package
Modelica in file "Modelica/package.mo".*

The extensions to the original are not specifically internally documented at this time. Copyright for extensions with S. Fabricius, ETH Zurich, Switzerland, December 20th, 2001.

Name | Description |
---|---|

Interfaces | |

Examples | |

Place01 | Place with one output transition |

Place10 | Place with one input transition |

Place11 | Place with one input and one output transition |

Place21 | Place with two input and one output transition |

Place12 | Place with one input and two output transitions |

Place22 | Place with two input and two output transitions |

Transition | Transition with one input and one output connection |

Parallel | Transition with one input and two output connections |

Synchronize | Transition with two input and one output connections |

Modules | |

ExamplesExtendedPetriNets | |

Extensions |

Generated at 2019-12-12T02:38:11Z by OpenModelicaOpenModelica 1.16.0~dev-72-gc3a557c using GenerateDoc.mos