# Bond Graphs - A graphical language for the analysis of multiphysical systems

Pierre Haessig

<figure><img src="image_1.png" /></figure>

## To cite this version:

Pierre Haessig. Bond Graphs - A graphical language for the analysis of multiphysical systems. Engineering school. France. 2022. hal-03602684

HAL Id: hal-03602684

https://cel.hal.science/hal-03602684

Submitted on 28 Mar 2022

HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Bond Graphs

A graphical language for the analysis of multiphysical systems

<figure><img src="image_3.png" /></figure>

Pierre Haessig, CentraleSupélec (campus of Rennes)

SG6: Dec. 2021 – Jan. 2022

Slide deck 1: the language
# Course outline

* Bond graph objectives

* The bond graph language

* Bonds and power variables: the physical analogy

* Elements

* Practice: reading & creating bond graphs

* Causality and derivation of mathematical models
# Bond graph objectives

* a simple unified graphical language for many physical domains

* acausal models

* to preserve the physical structure of the real physical system

* which highlight energy exchange

* but with the (optional) superposition of a *computational causality* information
# Bond graph model structure is *hybrid*

Two extremal structures of model:

1. Block diagrams, with very clear computational structure
   ○ but lost physical structure

2. Physical network-type diagrams (electrical, mechanical)
   ○ but no computational information

$$U : Se \rightarrow 1 \rightarrow 0 \rightarrow C : C$$

I : L

I : L

R : R

R : R
# Model comparisons

BG, Circuit (acausal), Block diagram (causal)

$U : Se \rightarrow 1 \rightarrow 0 \rightarrow C : C$

<figure><img src="image_4.png" /></figure>

$I : L$

<figure><img src="image_5.png" /></figure>

$R : R$

<figure><img src="image_6.png" /></figure>

<figure><img src="image_7.png" /></figure>
# The bond graph language

* Bonds & power variables

* Elements
# Bonds

Bonds model the physical interaction of **two** elements which **exchange energy**.

$$ \frac{\text{effort}}{\text{flow}} $$

The interaction happens through two generalized physical variables: *effort & flow*, collectively named the “power variables”.
# Physical analogy in bond graphs

Each physical domain has a specific choice for the generalized *effort* and *flow* variables of each bond:

<table><thead><tr><th></th><th>Effort e</th><th>Flow f</th></tr></thead><tbody><tr><td>Translational mechanics</td><td>Force F (N)</td><td>Velocity v (m/s)</td></tr><tr><td>Rotational mechanics</td><td>Torque Γ (N.m)</td><td>Angular velocity ω (rad/s)</td></tr><tr><td>Electricity</td><td>Voltage u (V)</td><td>Current i (A)</td></tr><tr><td>Thermal transfers</td><td>Temperature T (K)</td><td>Entropy flow rate Ṣ (J/K/s)</td></tr><tr><td>Hydraulic</td><td>Pressure P (N/m²)</td><td>Volume flow rate Qv (m³/s)</td></tr></tbody></table>

**Property:** the two variables of each bond are chosen such that:

$$Effort \times Flow = Power (Watt)$$
# Reminder: Modelica's physical analogy

Modelica's analogy is based on the port's *connection* behavior

<table><thead><tr><th></th><th>Potential</th><th>Flow</th></tr></thead><tbody><tr><td>Translat. mech.</td><td><strong>Position</strong> s (m)</td><td>Force f (N)</td></tr><tr><td>Rotational mech.</td><td>Angular <strong>position</strong> φ (rad)</td><td>Torque Γ (N.m)</td></tr><tr><td>Electricity</td><td>Voltage u (V)</td><td>Current i (A)</td></tr><tr><td>Thermal transfers</td><td>Temperature T (K)</td><td><strong>Heat</strong> flow Q (J/s=W)</td></tr><tr><td>Hydraulic</td><td>Pressure P (N/m²)</td><td><strong>Mass</strong> flow rate Q<sub>m</sub> (kg/s)</td></tr></tbody></table>

<figure><img src="image_8.png" /></figure>

$$v_1=v_2=v_3 \\ i_1+i_2+i_3=0$$

<figure><img src="image_9.png" /></figure>

## Differences with bond graph:

* Force and Torque are **switched**: BG's Effort → Modelica's Flow

* Different vocabulary in **bold**: in particular position vs speed
# Comparison with Modelica's analogy

BG & Modelica:

* both introduce an analogy between variables across different physical domains

* but using a different **classification & vocabulary**, because each is built on different foundations

BG's analogy: group variables as “effort” or “flow”

* by preserving common physical sense (ex.: voltage ↔ force, current ↔ speed)

* with constraint $e \times f = Power$

Modelica's analogy: group variables as “potential” or “flow”

* by preserving the connection topology of graphical diagrams (ex.: voltage ↔ position because both are equal at interconnection of ports)

* (with no constraint on the product $e \times f$)
# Relation between BG's and Modelica's analogies

<table><thead><tr><td>Domain</td><td>Mechanics</td><td>Others (e.g. electricity)</td></tr></thead><tbody><tr><td>BG effort</td><td>Mod flow</td><td>Mod potential</td></tr><tr><td>BG flow</td><td>Mod der(potential)</td><td>Mod flow (*)</td></tr></tbody></table>

Observations:

* for all domains except mechanics, we have:

* BG effort = Modelica potential

* BG flow = Modelica flow (*)

* but for mechanics:

* it's reversed

* and we have an extra derivative: speed = der(position)

* (*) thermal domain is an exception : heat flow (J/s) vs entropy flow (J/K/s)
# Bonds

* Exchange of energy between elements

* Half arrow = direction of positive power flow

* Drawing conventions:

* e above/left, f below/right

* half arrow on the side of the flow (i.e. below/right)

<figure><img src="image_10.png" /></figure>
<figure><img src="image_11.png" /></figure>
# Junctions

Unlike in network-type diagrams, the connection of elements in not achieved with the topology of links (e.g. loops of wires), but using explicitly one of the two junction elements:

* “0” junction: common effort

* “1” junction: common flow

Also in the junction category: transformers and gyrators

Common property: **instantaneous power is conserved**
# 0 junction

“Common effort” junction:

$$e_1 = e_2 = \dots = e_n$$

Flows are distributed (incoming sum = outgoing sum), according to the orientation of the bonds.

On the example:

$$f_1 = f_2 + \dots + f_n$$

<figure><img src="image_12.png" /></figure>
# 1 junction

“Common flow” junction:

$$f_1 = f_2 = \dots = f_n$$

Efforts are distributed (incoming sum = outgoing sum), according to the orientation of the bonds.

On the example:

$$e_1 = e_2 + \dots + e_n$$

<figure><img src="image_13.png" /></figure>
# Two-port junctions: transformers & gyrators

Transmit power with a scaling of efforts & flows:

* in the same domain (unitless scaling)

* between two domains (scaling with a physical unit)
# Transformer (TF)

<figure><img src="image_14.png" /></figure>

$$f_2 = m.f_1$$

$$m.e_2 = e_1$$

m is the transformer ratio

Examples:

* Mechanical gear pair: $\omega_2 = (r_2/r_1) \cdot \omega_1$

* Cable - Pulley: $v = r \cdot \omega$

* Electrical transformer: $v_1 = m \cdot v_2$ (▲ inverted definition of the transformer ratio)
# Gyrator (GY)

<figure><img src="image_15.png" /></figure>

$$e_2 = r \cdot f_1$$

$$e_1 = r \cdot f_2$$

r is the gyrator ratio

Example:

* EMF of a DC motor: $e = K \cdot \Omega$ and $C = K \cdot i$
# Modulation of Transformers (Gyrators)

The transformer (gyrator) can be modulated by a signal (using a signal arrow →):

<figure><img src="image_16.png" /></figure>

Examples: crank-slider mechanism, averaged DC-DC converter.
# One-port elements

There are 3 basic energy consuming/storing devices:

* Dissipator: Resistor

* Energy stores:

* C store, also called Compliance or Capacitor

* I store, also called Inertia

In addition, there are two sources: Se (effort) and Sf (flow source)

Remark: in electricity, one-port element = device with two electrical pins
# Resistor (R)

Relation (linear case):

$$e = R \cdot f$$

Property: power is irreversibly dissipated (as heat)

Examples:

* Electrical resistor: $u = R \cdot i$

* Mechanical damper: $f = d \cdot v$

<figure><img src="image_17.png" /></figure>
C energy store (also called
Compliance or Capacitor)

Using the “generalized displacement” q (an “energy” variable):

$$
q = \int f \cdot dt
$$

C store relation:

$$
q = \Phi_C(e)
$$

Linear C store:

$$
q = C.e
$$

$$
\rightarrow \text{consequence: } f = C.de/dt
$$

$$
\frac{e}{f} \rightarrow C
$$
# C store examples (linear)

Mechanics:

* displacement = (kinematic) displacement $x = \int v dt$

* relation: $x = (1/k) \cdot f$

* C store = **spring**

Electricity:

* displacement = charge $q = \int i dt$ (Coulomb)

* relation $q = C \cdot u$

* C store = (electrical) **capacitor**

<figure><img src="image_18.png" /></figure>
# I energy store (also called Inertia)

Using the “generalized momentum” $p$ (an “energy” variable):

$$p = \int e \cdot dt$$

I store relation:

$$p = \Phi_I(f)$$

Linear I store:

$$p = I \cdot f$$

→ consequence: $e = I \cdot df/dt$

<figure><img src="image_19.png" /></figure>
# I store examples (linear)

Mechanics:

* momentum = mechanical momentum $p = \int f dt$

* relation: $p = m.v$, that is $f = m.dv/dt$ (inertial force)

* I store = mechanical inertia

Electrity:

<figure><img src="image_20.png" /></figure>

* momentum = magnetic flux linkage $\lambda = \int u dt$ (V.s = Wb)

* relation: $\lambda = L.i$, that is $v = L.di/dt$

* I store = inductor
# Parametrization of R, C, I elements

The value of a linear R/C/I element is appended with the notation “: x”.

<figure><img src="image_21.png" /></figure>

Same notation is used for the value of a source (next slide).
# Sources

Sources either impose the effort (Se) or the flow (Sf).

Se examples:

* Electricity: voltage source

* Mechanics: imposed torque or force

Sf examples:

* Electricity: current source

* Mechanics: imposed speed

$$E : Se \xrightarrow{E} f$$

$$F : Sf \xrightarrow{e} F$$
# Bond Graphs practice

A graphical language for the analysis of multiphysical systems

<figure><img src="image_22.png" /></figure>

Pierre Haessig, CentraleSupélec (campus of Rennes)

SG6: Dec. 2021 – Jan. 2022

Slide deck 2: practice
# Course outline

* Bond graph objectives

* The bond graph language

* Bonds and power variables: the physical analogy

* Elements

* Practice: reading & creating bond graphs

* Causality and derivation of mathematical models
Practice

<figure><img src="image_23.png" /></figure>

Objectives: being able to

1. Read BGs

* recognize classical structure

2. Create BGs from network diagrams (electrical, mechanical)
M1: 1 junctions represent “velocity points”

<figure><img src="image_24.png" /></figure>

Questions:

- Fill the blanks on the BG

- Represent the physical system

- Derive the overall mechanical equation of the system
M1: 1 junctions represent “velocity points” (S)

$$ -m.g : \text{Se} \quad \frac{-m.g}{v_m} \quad 1 \quad \frac{m \cdot \dot{v}_m}{v_m} \quad \text{I : m} $$

This BG represents the **free fall** of a mass *m* with equation:

$$ m \cdot \frac{dv_m}{dt} = -m.g $$

<figure><img src="image_25.png" /></figure>
## M2: Springs and dampers typically on 0 junctions

<figure><img src="image_26.png" /></figure>

### Questions:

* Fill the blanks on the BG

* Represent the physical system

* Give the expression of $F_k$
M2: Springs and dampers typically on 0 junctions
(Sol.)

<figure><img src="image_27.png" /></figure>

<figure><img src="image_28.png" /></figure>

This BG represents a spring of stiffness *k* between two points A and B.

$$F_k = k \int (v_a - v_b) \cdot dt = k(x_a - x_b)$$
# Mechanical BGs: main structures

* velocity points represented by 1 junctions

* an Inertia can attach directly to its corresponding 1 junction

* components which reacts on a velocity/position differences (spring and dampers) are typically connected to a *0 junction placed between two 1 junctions*
E1: 0 junctions represent voltage nodes

<figure><img src="image_29.png" /></figure>

Questions:

* Fill the blanks on the BG

* Represent the physical system
E1: 0 junctions represent voltage nodes (Sol.)

<figure><img src="image_30.png" /></figure>
E2: 1 junction for voltage drop on a RLC component

<figure><img src="image_31.png" /></figure>

Questions:

* Fill the blanks on the BG

* Represent the physical system

* Compute $i_r$
E2: 1 junction for voltage drop on a RLC component
(Sol.)

<figure><img src="image_32.png" /></figure>

$$i_r = (e_a - e_b)/r$$
E3: Voltage source

...
# Bond Graphs practice

*A graphical language for the analysis of multiphysical systems*

<figure><img src="image_33.png" /></figure>

Pierre Haessig, CentraleSupélec (campus of Rennes)
SG6: Dec. 2021 – Jan. 2022

Slide deck 3: causality
# Course outline

* Bond graph objectives

* The bond graph language

* Bonds and power variables: the physical analogy

* Elements

* Practice: reading & creating bond graphs

* Causality and derivation of mathematical models

* **Principles**

* Practice
Computational causality & derivation of
mathematical models

<figure><img src="image_34.png" /></figure>
# Causally completed bonds

Reminder: bonds express acausal physical links between components

<figure><img src="image_35.png" /></figure>

Optionnaly, bonds can be completed with “causality stroke/arrow” which indicate
the direction of the computation flow.

Remark: this *computational* causality doesn't express a *physical* cause → consequence relationship
# Meaning and significance of causality in BGs

BG to block diagrams fragments

<figure><img src="image_36.png" /></figure>

**Mnemonic:** the causality arrow is the direction of the *effort signal arrow*

To be continued...
# Rules for each class of BG components

* sources

* junctions

* energy stores & dissipators
# Causality for Sources

For sources, causality orientation is **compulsory**:

* Se imposes the effort
  → outgoing effort

* Sf imposes the flow
  → outgoing flow

<figure><img src="image_37.png" /></figure>

<figure><img src="image_38.png" /></figure>
# Causality for junctions: 0 junction

<figure><img src="image_39.png" /></figure>

Compulsory rule

For 0 junction (share effort): “One and only one incoming effort”

Remark: causality arrows unrelated to bond orientations
# Causality for junctions: 1 junction

<figure><img src="image_40.png" /></figure>

## Compulsory rule

For 1 junction (share flow): "One and only one incoming flow

Remark: causality arrows unrelated to bond orientations
Causality for junctions: TF

<figure><img src="image_41.png" /></figure>

[Compulsory] Transformers **preserve** the direction of the e&f signals

- one incoming effort

- one incoming flow
# Causality for junctions: GY

<figure><img src="image_42.png" /></figure>

[Compulsory] Gyrators reverse the direction of the e&f signals

* either two incoming efforts

* or two incoming flows
# Causality for Energy stores

C and I energy stores can accept the two possible causalities:

* **Integral causality** is the one yielding an integrator block

* **Derivative causality** is the one yielding an derivator block

For computational easiness, integrators are prefered, so
$$ \text{Integral causality} = \text{Prefered causality} $$
# Causality for Energy
stores: C

Integral causality: receives a flow, imposes an effort

* Capacitor: current → voltage

* Spring: speed/position → force

<figure><img src="image_43.png" /></figure>

<figure><img src="image_44.png" /></figure>
# Causality for Energy stores: I

Integral causality: receives a flow, imposes an effort

* Inductor: voltage → current

* Intertia: force → speed

<figure><img src="image_45.png" /></figure>

<figure><img src="image_46.png" /></figure>

<figure><img src="image_47.png" /></figure>

<figure><img src="image_48.png" /></figure>
# Causality for R
(dissipators)

For dissipators, all orientations are
fine.

Sometimes called “resistance” vs
“conductance” causality

<figure><img src="image_49.png" /></figure>

<figure><img src="image_50.png" /></figure>

<figure><img src="image_51.png" /></figure>

<figure><img src="image_52.png" /></figure>
Sequential assignement rules

SCAP procudure:

Rule 1: assign sources

Rule 2: assig integral causality to Energy stores
Causality assignment examples

* Ex1: Rule 1 (sources+propagation) is enough

* Ex2: Rule 1+2 (prefered causality for energy stores) are enough
# Bond Graphs practice

A graphical language for the analysis of multiphysical systems

<figure><img src="image_53.png" /></figure>

Pierre Haessig, CentraleSupélec (campus of Rennes)
SG6: Dec. 2021 – Jan. 2022

Slide deck 4: causality practice
# Course outline

* Bond graph objectives

* The bond graph language

* Bonds and power variables: the physical analogy

* Elements

* Practice: reading & creating bond graphs

* Causality and derivation of mathematical models

* Principles

* Practice
Causality assignment Ex1

<figure><img src="image_54.png" /></figure>
# Causality assignment Ex1 (Sol.)

<figure><img src="image_55.png" /></figure>

1. R1: Se sets the effort on the 0 junction

2. Propagation: effort propagates through the 0 junction
Causality assignment Ex2

<figure><img src="image_56.png" /></figure>

<figure><img src="image_57.png" /></figure>
# Causality assignment Ex2 (Sol.)

<figure><img src="image_58.png" /></figure>

1. R1: Sf sets the flow on the 0 junction.

* (no propagation)

2. R2: Set integral causality for C

* $\rightarrow C$ sets the effort on the 0 junction

3. Propagation of effort to R through the 0 junction
Impossible connections exercise

<figure><img src="image_59.png" /></figure>
Impossible connections exercise (Sol.)

<figure><img src="image_60.png" /></figure>

The physical impossibility of parallel voltage sources emerges as a **causality conflict** on the 0 junction (“only one incoming effort allowed”).