Name | Description |
---|---|
![]() | Bondgraphic modelling |
![]() | Multibondgraphic modelling |
![]() | Wrapping multibond graphs |
![]() | The planar mechanics library |
![]() | The 3D mechanics library |
![]() | The hybrid 3D mechanics library |
![]() | Examples |
![]() | Literature |
To comfortably model with bond graphs a Modelica library called "BondLib" has been developed by Francois E. Cellier and his students. Using this library, bond graphs can be created in an object oriented fashion.
The BondLib also offers an excellent introduction. If you're unfamiliar to bondgraphic modelling this is a good way to start.
Please note, that the "BondLib" is also partially required by the MultiBondLib. The MultiBondLib is also very similar to the BondLib in its structure and in its way of usage. All your modeling abilities with respect to the BondLib can be adobted for the MultiBondLib.
The next figure illustrates the abbreviation of three parallel bonds by a multibond. The cardinality of the multibond is denoted by the placed in the middle of the multibond .
Also multibondgraphic switches have been developed, although their usage is barely meaningful.
Since bond graphs offer a low-level interface, it is always possible to wrap bond graphs inside other modeling metaphors. For example, the model of a damper in planar mechanics:
contains the simple bond graph:
The M2D->MBG and MBG->M2D models are converter elements that transform the mechanical connectors to bond graph connectors, and vice versa.
Wrapping is extensively used in the domain specific subpackages of the MultiBondLib.
This library is similar in its structure and way of usage to the MultiBody library.
This library offers an object-oriented solution for the modeling of planar mechanical systems. Mechanical systems can be composed out of single ideal elements. They are separated according to their nature into subpackages. These packages contain:
All the basic elements consist of multibond graphs.
The processing of the positional variables is done by acausal signals. All bondgraphic variables and the positional signals are resolved in the inertial system.
Two converter elements convert the bondgraphic variables to the variables of the main connectors and vice-versa. These elements create a shell for the multibond graph. The figure below presents such a typical shell. The multibond graph is indicated by 1-junctions.
The selection of the state variables is of major importance for the efficiency of the resulting simulation. This selection is automatically done by Dymola. The resulting state variables are then always the states of a joint's relative position and motion. So each joint is declaring state variables, unless there is a kinematic loop.
The state selection can be improved or fully determined by the advanced parameter "enforceStates" that is part of all joints. This helpful to avoid sets of dynamic state selection as they occur in kinematic loops.
The resulting systems of linear equations are usually small and can be solved fast and accurately. Kinematic loops usually lead to a system of 2 non-linear equations.
This library is a partial reimplementation of the MultiBody library of Prof. Dr. Martin Otter.
This library offers an object-oriented solution for the modeling of 3D-mechanical systems. Mechanical systems can be composed out of single ideal elements. They are separated according to their nature into subpackages. These packages contain:
All the basic elements consist of multibond graphs.
This separation is necessary because the corresponding bondgraphic variables are resolved in different coordinate systems. The translational variables are resolved with respect to the inertial system. The rotational variables are resolved with respect to the body system. The body system is defined by the signal R that contains the 3x3 orientation matrix. Again, the the positional variables are processed by acuasal signals and are of course resolved in the inertial system.
Two converter elements convert the bondgraphic variables to the variables of the main connectors and vice-versa. These elements create a shell for the multibond graph. The figure below presents such a typical shell. The multibond graph is indicated by 1-junctions.
Also an element for the manual closure of kinematic loops is provided. The application of this element is meaningful, if you want to "cut" the loop at a specific point. (This might lead to better equations)
Planar loops cannot be handled autoatically. To close such a strucute a special revolute joint is provided.
The selection of the state variables is of major importance for the efficiency of the resulting simulation. This selection is automatically done by Dymola. The resulting state variables are then always the states of a joint's relative position and motion. So each joint is declaring state variables, unless there is a kinematic loop.
The state selection can be improved or fully determined by the advanced parameter "enforceStates" that is part of all joints. This helpful to avoid sets of dynamic state selection as they occur in kinematic loops.
The resulting systems of linear equations are usually small and can be solved fast and accurately. Kinematic loops lead to a systems non-linear equations.
It is an extension of the subpackage Mechanics3D. The continuous models are extended to hybrid models, that describe the behaviour of in situaions of continuous changement and in situations of sudden (impulse) changement. The extension of the underlying continuous models is done by equations.
The library is used to create models of mechanical systems that underly hard collisions and impacts. Again, mechanical systems can be composed out of single ideal elements. They are seperated as in Mechanics3D into packages for:
A contact model needs to be applied to model an hard impact between two mechanical systems. The contact model generates additionally a contact signal that needs to be manually connected to both colliding systmes. This is done via the "InsertImpulse" element of the subpackage "interfaces".
If a system underlies several possible impacts, the corresponding contact signals have to be merged by a boolean "or" function.
Please, don't forget to take a look at the examples.
To afford such an extension of the continuous models, it is necessary to redeclare the existing connectors. The new connectors are an extended variant of the old ones. The new connector contains also boolean variable that is the contact signals. This signal is set to true at the time of a force impulse and is transmitted between all rigid connections.
The efficiency of the computation at an discrete event is sufficient but could be better. However, the resulting systems of linear equations are solved accurately and robustly.
Most of the examples are provided in the domain-specific sublibraries:
Additionally, we offer a fairly substantial bibliography of bond graph modeling in the "Bond Graph Compendium."