Definitions

# Bond graph

A bond graph is a graphical description of a physical dynamic system. It is an energy-based graphical technique for building mathematical models of dynamic systems. A bond graph depicts the energy flow between components used to model a system. Bond graphs have a number of advantages over conventional block diagram and computer simulation techniques (Gawthrop and Ballance, 1999):

• Since they work on the principle of conservation of energy, it is difficult to accidentally introduce extra energy into a system.
• Virtually any type of physical system (mechanical, electrical, electro-mechanical, hydraulic, etc.) can be modeled using the bond graph technique.

• Since each bond represents a bi-directional flow, systems which produce a "back force" (e.g., back emf in a motor) on the input are easily modeled without introducing extra feedback loops.

Bond graphs are based on the principle of continuity of power. If the dynamics of the physical system to be modeled operate on widely varying time scales, fast continuous-time behaviors can be modeled as instantaneous phenomena by using a hybrid bond graph.

## Basics

The fundamental idea of a bond graph is that power is transmitted between connected components by a combination of "effort" and "flow". In the case of mechanical systems, effort is force and flow is rate; in the case of torsional systems, effort is torque and flow is angular velocity. So if an engine is connected to a wheel through a shaft, the power being transmitted is the product of the effort and the flow so power=τω. A word bond graph is a first step towards a bond graph, in which words define the components. As a word bond graph, this system would look like
`           τ`
`engine ---------- wheel`
`           ω`
A half-arrow is used to provide a sign convention, so if the engine is doing work when τ and ω are positive, then the diagram would be drawn
`           τ`
`engine ---------- wheel`
`           ω    /`

A full arrow is used to indicate a measurement (insignificant power transfer through the bond):

`               `
`wheel ---------- tachometer`
`          ω    /`

## Junctions

Power bonds may join at one of two kinds of junctions: a 0 junction and a 1 junction.

• In a 0 junction, the flow sums to zero and the efforts are equal. This corresponds to a node in an electrical circuit (where Kirchhoff's current law applies).
• In a 1 junction, the efforts sum to zero. This corresponds to force balance at a mass in a mechanical system.

For an example of a 1 junction, consider a resistor in series:

`v1 ---///---v2`
`i1       R      i2=i1`

As a bond graph, this becomes

`       R`
`       |`
`  v1   |   v2`
`------ 1 ------`
`  i1 /     i2 /`

From an electrical point of view, this diagram may seem counterintuitive in that flow is not preserved in the same way across the diagram. It may be helpful to consider the 1 junction as daisy chaining the bonds it connects to and power bond up to the R as a resistor with a lead returning back down, so the above is equivalent to

`       R`
`    +//+`
`        /`
`      | |`
`  v1  | |  v2`
`------+ +------`
`  i1       i2`

### Causality

Bond graphs have a notion of causality, indicating which side of a bond determines the instantaneous effort and which determines the instantaneous flow. By noting the causation within a bond graph, analysis becomes easier.

As an example of causality, consider a capacitor in series with a battery. It is not physically possible to charge a capacitor instantly, so anything connected in parallel with a capacitor will necessarily have the same voltage (effort variable) as the capacitor. Similarly, an inductor cannot change flux instantly and so any component in series with an inductor will necessarily have the same flow as the inductor. Because capacitors and inductors are passive devices, they cannot maintain their respective voltage and flow indefinitely—the components to which they are attached will affect their respective voltage and flow, but only indirectly by affecting their current and voltage respectively.

Note: Causality is a symmetric relationship. When one side "causes" effort, the other side "causes" flow.

Active components such as an ideal voltage or current source also are causal.

In bond graph notation, a causal stroke may be added to one end of the power bond to indicate that the opposite end is defining the effort. Consider a constant-torque motor driving a wheel. That would be drawn as follows:

`  motor      τ    |`
`     SE  ----------| wheel`
`             ω     |`

Symmetrically, the side with the causal stroke (in this case the wheel) defines the flow for the bond.

Causality results in compatibility constraints. Clearly only one end of a power bond can define the effort and so only one end of a bond can have a causal stroke. In addition, the two passive components with time-dependent behavior, I and C, can only have one sort of causation: an I component determines flow; a C component defines effort. So from a junction, J, the only legal configurations for I and C are

`         |`
` J -------| I`
`          |`
and
`   |      `
` J |------- C`
`   |`
A resistor has no time-dependent behavior: you can apply a voltage and get a flow instantly, or apply a flow and get a voltage instantly, thus a resistor can be at either end of a causal bond:
`         |               |       `
` J -------| R           J |-------- R`
`          |               |`

Sources of flow define flow, sources of effort define effort. Transformers are passive, neither dissipating nor storing energy, so causality passes through them:

`        | ..      |          |       .. |`
`  ------| TF -----|    or    |------ TF |------`
`        |         |          |          |`

A gyrator transforms flow to effort and effort to flow, so if flow is caused on one side, effort is caused on the other side and vica versa:

`  |       ..      |                | .. |`
`  |------ GY -----|    or    ------| GY |------`
`  |               |                |    |`
Junctions In a 0-junction, efforts are equal; in a 1-junction, flows are equal. Thus, with causal bonds, only one bond can cause the effort in a 0-junction and only one can cause the flow in a 1-junction. Thus, if the causality of one bond of a junction is known, the causality of the others is also known. That one bond is called the strong bond
`                ___`
`                 |`
`                 |`
`                 |`
`         ------| 0 ------|`
`strong bond ^`
`                 |`
`                 |`
`                 |`
`                ---`

`                 |`
`                 |`
`                 |`
`                ---`
`         |------ 1 |------`
`strong bond ^   ___`
`                 |`
`                 |`
`                 |`

One can continue, assigning causality using the above rules. Any model which results in inconsistent causality is not physically valid. For example, consider an inductor in series with an ideal current source—a physically impossible configuration. The bond graph would look like

` SF ------ 1 ------ I`

Assigning causality to the source bond we get:

` SF |----- 1 ------ I`
Propagating the causality through the junction gives
` SF |----- 1 |----- I`
But assigning causality to the inductor gives
` SF |----- 1 |----| I`
which is invalid, because the causality on the right bond is redundant. This ability to automatically identify impossible configurations is a major advantage of bond graphs.

In contrast, one can inadvertently draw an electrical diagram or mechanical schematic that, while possible to construct, would not behave as modeled. For example, one can connect a capacitor directly to a battery, but the assumption that the battery is an ideal voltage source would be violated corresponding with the fact that the theoretical flux would be infinite. The bond graph would tell you that a resistor needs to be put in series with the capacitor to keep the model realistic.

## Example

Consider a simple RC circuit:

`        R`
` i1 --//-----+------ i2 →`
` v1             |       v2`
`              C =  ↓ic`
`                |`
`     ground ----+------`

As a bond graph, the same system looks like

`               R          C`
`              ---`
`               |         |`
`               |          |`
`                         ---`
`       v1   |     |            v2  `
`Se,in ------|  1  |-----  0  ------- out`
`       i1  /|     |    /       i2  /`

Note that the output is assumed to draw no power from the circuit, so a full arrow is used instead of a half-arrow. For the purpose of modeling dynamics, this means the output full bond can be ignored and the diagram is simplified:

`                R`
`               ---`
`                |`
`             v3 | i3`
`                |`
`        v1   |     | v2`
`S_e,in ------|  1  |-----  C`
`        i1  /|     | i2 /`

$S_e,in$ is a "source of effort" (voltage source) that forces the dynamics. Note that the causality for a source of effort imposes effort on the junction. To avoid formulating integral equations, the causality stroke for the capacitor must also impose effort on the junction. Since every 1 junction should have exactly one flow causal stroke, bond 3 must show flow imposed by the R element (causal stroke away from 1 junction).

To derive the differential equation, start on bond 2 (attached to a reactive element) and write the capacitive relation:

$dot\left\{v\right\}_2 = \left\{1 over C\right\} i_2$

Because bond 2 is attached to a 1 junction (shared flow) where bond 3 determines the flow, $i_2 = i_3 = \left\{v_3 over R\right\}$. In turn, following the effort causality on the 1 junction we can write $v_3 = v_1 - v_2$ so:

$dot\left\{v\right\}_2 = \left\{1 over C\right\} \left\{ \left\{ v_1 - v_2 \right\} over R\right\}$

Since $v_1$ is an input, and $v_2$ is a state variable, the equation is completely expanded. For systems with multiple I and/or C elements, the process can be repeated once for each derivative of a state variable and a system of (typically linear) differential equations can be formed.

For example, suppose we put two of these in series:

`        R             → i2     R`
` i1 --//-----+------------//-----+------ i3 →`
` v1             |       v2             |       v3`
`              C = ↓ic               C = ↓ic`
`                |                      |`
`     ground ----+----------------------+---------`

The corresponding bond graph looks like

`           R          C          R         C`
`          ---                   ---`
`           |         |         |        |`
`         6 |        4 |        2 |       3 |`
`                     ---                  ---`
`     1   |   |  5          7   |   |  8        9  `
`SE ------| 1 |------  0  ------| 1 |------ 0 ------ out`
`        /|   |     /          /|   |     /        /`

where the ever-present effort/flow (voltage/current in this case) variables have been dropped and the bonds are simply numbered per typical bond graph convention (in this case the first four numbers were placed to avoid confusion with the signal numbering in the circuit diagram). Again, the output is assumed to draw no power so bonds 8 and 9 can effectively be removed in favor of a direct connection to bond 3:

`           R          C          R`
`          ---                   ---`
`           |         |         |`
`         6 |        4 |        2 |`
`                     ---`
`     1   |   |  5          7   |   |  3`
`SE ------| 1 |------  0  ------| 1 |------ C`
`        /|   |     /          /|   |     /`

As before, we can start with the derivative of a state variable (v4) and follow the bonds to form equations:

$dot\left\{v\right\}_4 = \left\{1 over C_4\right\} i_4 = \left\{1 over C_4\right\} \left(i_5 - i_7\right) = \left\{1 over C_4\right\} \left(i_6 - i_2\right)$

Continuing the expansion:

$dot\left\{v\right\}_4 = \left\{1 over C_4\right\} \left(\left\{v_6 over R_6\right\} - \left\{v_2 over R_2\right\}\right)$

$dot\left\{v\right\}_4 = \left\{1 over C_4\right\} \left(\left\{\left\{v_1 - v_5\right\} over R_6\right\} - \left\{\left\{v_7 - v_3\right\} over R_2\right\}\right)$

$dot\left\{v\right\}_4 = \left\{1 over C_4\right\} \left(\left\{\left\{v_1 - v_4\right\} over R_6\right\} - \left\{\left\{v_4 - v_3\right\} over R_2\right\} \right)$

Grouping by state variables and inputs:

$dot\left\{v\right\}_4 = -\left(\left\{1 over \left\{C_4 R_6\right\}\right\} + \left\{1 over \left\{C_4 R_2\right\}\right\}\right) v_4 + \left\{1 over \left\{C_4 R_2\right\}\right\} v_3 + \left\{ 1 over \left\{C_4 R_6\right\}\right\} v_1$

Similarly, $dot\left\{v\right\}_3$ can be obtained:

$dot\left\{v\right\}_3 = -\left\{1 over \left\{C_3 R_2\right\}\right\} v_4 + \left\{1 over \left\{C_3 R_2\right\}\right\} v_3$

from which state equations can be formed:

$begin\left\{bmatrix\right\}dot\left\{v\right\}_4 dot\left\{v\right\}_3end\left\{bmatrix\right\} = begin\left\{bmatrix\right\}-\left(\left\{1 over \left\{C_4 R_6\right\}\right\} + \left\{1 over \left\{C_4 R_2\right\}\right\}\right) & \left\{1 over \left\{C_4 R_2\right\}\right\} -\left\{1 over \left\{C_3 R_2\right\}\right\} & \left\{1 over \left\{C_3 R_2\right\}\right\} end\left\{bmatrix\right\} begin\left\{bmatrix\right\}v_4v_3end\left\{bmatrix\right\} + begin\left\{bmatrix\right\}\left\{ 1 over \left\{C_4 R_6\right\} \right\} 0 end\left\{bmatrix\right\} v_1$.

## Other components

### Transformer

A transformer adds no power but transforms it, much as an electrical transformer or a lever.

Denoted

`         r`
`   e1   ..   e2`
`------- TF ------`
`   f1        f2`
where the r denotes the modulus of the transformer. This means
$f_2 = r f_1 ,$
and
$e_2 = frac\left\{1\right\}\left\{r\right\} e_1 ,$.

### Gyrator

A gyrator relates flow to effort. It also adds no power and is written
`   e1   μ   e2`
`------- GY ------`
`   f1        f2`
meaning that
$e_2 = mu f_1 ,$
and
$e_1 = mu f_2 ,$.

• Hybrid bond graph
• 20-sim modeling and simulation software for bond graphs
• AMESim simulation software based on the bond graph theory
• MTT Model Transformation Tools
• SYMBOLS Shakti SYstem Modeling by BOnd graph Language and Simulation
• Mathematica Bond Graph Toolbox allows bond graph design, analysis and simulation in a native symbolic environment

## International Conferences on Bond Graph Modeling (ECMS & ICBGM)

A bibliography on Bond Graph modeling may be extracted from the following conferences :

## References

• Amalendu Mukherjee, Ranjit Karmakar (1999): "Modeling and Simulation of Engineering Systems Through Bondgraphs" CRC Press LLC, 2000 N.W. Corporate Blvd., Boca Raton, Florida 33431. ISBN-13: 978-0849309823
• Gawthrop, P. J. and Ballance, D. J., 1999: "Symbolic computation for manipulation of hierarchical bond graphs" in Symbolic Methods in Control System Analysis and Design, N. Munro (ed), IEE, London, ISBN 0-85296-943-0.