Bond graph explained

A bond graph is a graphical representation of a physical dynamic system. It allows the conversion of the system into a state-space representation. It is similar to a block diagram or signal-flow graph, with the major difference that the arcs in bond graphs represent bi-directional exchange of physical energy, while those in block diagrams and signal-flow graphs represent uni-directional flow of information. Bond graphs are multi-energy domain (e.g. mechanical, electrical, hydraulic, etc.) and domain neutral. This means a bond graph can incorporate multiple domains seamlessly.

The bond graph is composed of the "bonds" which link together "single-port", "double-port" and "multi-port" elements (see below for details). Each bond represents the instantaneous flow of energy or power. The flow in each bond is denoted by a pair of variables called power variables, akin to conjugate variables, whose product is the instantaneous power of the bond. The power variables are broken into two parts: flow and effort. For example, for the bond of an electrical system, the flow is the current, while the effort is the voltage. By multiplying current and voltage in this example you can get the instantaneous power of the bond.

A bond has two other features described briefly here, and discussed in more detail below. One is the "half-arrow" sign convention. This defines the assumed direction of positive energy flow. As with electrical circuit diagrams and free-body diagrams, the choice of positive direction is arbitrary, with the caveat that the analyst must be consistent throughout with the chosen definition. The other feature is the "causality". This is a vertical bar placed on only one end of the bond. It is not arbitrary. As described below, there are rules for assigning the proper causality to a given port, and rules for the precedence among ports. Causality explains the mathematical relationship between effort and flow. The positions of the causalities show which of the power variables are dependent and which are independent.

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. Bond graphs were invented by Henry Paynter.[1]

Systems for bond graph

Many systems can be expressed in terms used in bond graph. These terms are expressed in the table below.

Conventions for the table below:

P

is the active power;

\hat{X}

is a matrix object;

\vec{x}

is a vector object;

x\dagger

is the Hermitian conjugate of ; it is the complex conjugate of the transpose of . If is a scalar, then the Hermitian conjugate is the same as the complex conjugate;
n
D
t
is the Euler notation for differentiation, where: D_t^n f(t) = \begin\displaystyle\int_^t f(s)\, ds,& n=-1\\[2pt]f(t),& n=0\\[2pt]\dfrac, & n>0 \end

\begin{cases} \langlex\rangle\alpha:=|x|\alphasgn(x)\\ \langle{a}\rangle=k\langleb\rangle\beta\implies\langleb\rangle=\left(

1
k

\langlea\rangle\right)1/\beta\end{cases}

\textrm:\ \dfrac\\\textrm:\ \dfrac\\\textrm:\ \dfrac\end

Generalized flowGeneralized displacementGeneralized effortGeneralized momentumGeneralized power (in watts for power systems)Generalized energy (in joules for power systems)
Name

\vecf(t)

\vecq(t)

\vece(t)

\vecp(t)

P=\vecf(t)\dagger\vece(t)

E=\vecq(t)\dagger\vece(t)

DescriptionTime derivative of displacementA quality related to static behaviour.The energy per unit of displacementTime integral of effortTransformation of energy from one to another formConserved quantity in closed systems
Elements
NameHyperance

H

,
hyperrigitance

P=H-1

Compliance

C

,
rigitance

K=C-1

Resistance

R

Inertance

I

(or

L

)
Abrahance

A

Magnance

M

PropertiesPower dissipative elementCharge storage element(State variable: displacement)

(Costate variable: effort)

Power dissipative elementMomentum storage element(State variable: momentum)

(Costate variable: flow)

Power dissipative elementPower dissipative element
Quantitative behaviourFor 1-dimension systems (linear): P = H\cdot \left(D_t^0 q(t)\right)^2

For 1-dimension systems: e(t) = P \gamma\left[D^{-1}_t q(t)\right]

Impedance: Z(s) = \frac = \fracP

Potential energy for N-dimension systems: \beginV &=& \frac \vec q(t)^ \vec e(t) \\\vec q(t) &=& \hat \vec e(t)\end

Potential energy: V = \int_0^q e(q)\,dq

Potential coenergy: \overline=\int_0^e q(e)de

For 1-dimension systems: f(t) = C\cdot \frac + e\frac

Impedance: Z(s) = \frac = \frack

For 1-dimension systems (linear): P = R\cdot \left(D_t q(t)\right)^2Power for 1-dimension non-linear resistances (

e(f)

is the effort developed by the element): P=e(f)f

Rayleigh power: \mathfrak = \fracR\cdot f(t)^2

Rayleigh oower for non-linear resistances: \mathfrak=\int_0^f e(f) \, df

Rayleigh effort: e_=\frac = e(f)

For N-dimension systems: \beginP &=& \vec f(t)^ \vec e(t) \\\vec e(t) &=& \hat\vec f(t)\end

For 1-dimension systems: e(t) = R\cdot \gamma\left[D_t^1 q(t)\right]

Impedance: Z(s) = R

Kinetic energy for N-dimension systems: \beginT = \frac \vec \rho(t)^ \vec f(t) \\\vec \rho(t) = \hat \vec f(t)\end

Kinetic energy: T= \int_0^\rho f(\rho)\, d\rho

Kinetic coenergy: \overline=\int_0^f \rho(f) \, df

For 1-dimension systems: e(t) = L\cdot \frac + f\cdot \frac

Impedance: Z(s) = s L

For 1-dimension systems (linear): P = A\cdot \left(D_t^2 q(t)\right)^2

For 1-dimension systems: e(t) = A\cdot \gamma\left[D_t^3 q(t)\right]

Impedance Z(s) = s^2 A

For 1-dimension systems (linear) P = A\cdot \left(D_t^3 q(t)\right)^2

For 1-dimension systems e(t) = M\cdot\gamma \left[D_t^5 q(t)\right]

Impedance Z(s) = s^4 M

Generalized behaviourEnergy from active effort sources:

W=

q
\int
0

{esource

} \, dq Lagrangian

ak{L}=T-(V-W)

Hamiltonian

ak{H}=T+(V-W)

Hamiltonian effort:

eak{H

}=\frac

Lagrangian effort:

eak{L

}=\frac

Passive effort:

eak{LH

}=\frac\frac

Power equation:

dak{L
}+\frac = 0

Effort equation:

eak{L

}+e_=0

Lagrangian equation:

eak{R

}+e_=e_

Hamiltonian equation:

eak{R

}+e_=-e_

If

\overline{W}

is the coenergy,

W

is the energy,

S

is the state variable and

\overline{S}

is the costate variable,

\begin{aligned} \overline{W}+W=S\overline{S}\\ \overline{W}=

\overline{S
\int
0
} S(\overline) \, d\overline\\W = \int_0^ \overline(S) dS\end

For linear elements:

\overline{W}=W=1
2

S\overline{S}

Longitudinal mechanical power system[2]
Flow-related variables
6
D
t

x

pounce / pop

[m/s6]
5
D
t

x

flounce / crackle

[m/s5]
4
D
t

x

jounce / snap

[m/s4]
3
D
t

x

[m/s3]
2
D
t

x

(x2t

)[m/s2]
1
D
t

x

(xt)[m/s]

(flow)
0
D
t

x

displacement

(x)[m]

(displacement)
-1
D
t

x

[m ⋅ s]

-2
D
t

x

absity

[m ⋅ s2]
-3
D
t

x

abseleration

[m ⋅ s3]
-4
D
t

x

abserk

[m ⋅ s4]
Effort-related variables
1
D
t

F

[N/s]

0
D
t

F

t
(P
x)[N]
(effort)
-1
D
t

F

2t
(P
x)[kg ⋅ m/s]
(momentum)
Passive elements
Compliance (C)Resistance (R)Inertance (I)Abrahance (A)Magnance (M)
Spring \langle P^t_x\rangle = k \langle x\rangle where

k

is the spring stiffness
Damper \langle P^t_x\rangle = b \langle x_t\rangle where

b

is the damper parameter
Mass \langle P^t_x\rangle = m \langle x_\rangle where

m

is the mass
Abraham–Lorentz force\langle P^t_x\rangle = \frac \langle x_\rangle where

\mu0

is the permeability

q

is the electric charge

c

is the speed of light
Magnetic radiation reaction force\langle P^t_q\rangle =\frac \langle x_\rangle where

\mu0

is the permeability

q

is the electric charge

c

is the speed of light

R

is the radius of the magnetic moment
Cantilever \langle P^t_x\rangle =\frac \langle x\rangle

L

: cantilever length

E

: Young's modulus

I

: second moment of area
Cyclotron radiation resistance\langle P^t_x \rangle = \frac \langle x_t\rangle where

\sigmat

: Thompson cross-section

c

: speed of light

\mu0

: permeability

B

: magnetic field density
Prismatic floater in a wide waterbody\langle P^t_x\rangle = \rho_L g A \langle x\ranglewhere

\rhoL

: liquid density

A

: area

g

: gravitational acceleration
Viscous friction \langle P^t_x\rangle = b \langle x_t\rangle where

b

is the viscous friction parameter
Elastic rod \langle P^t_x\rangle = \frac \langle x\ranglewhere

E

: Young's modulus

A

: area

L

: rod length
Inverse of kinetic mobility \langle P^t_x\rangle = \frac \langle x_t\rangle where

\mu

is the kinetic mobility
Newton's law of gravitation\langle P^t_x\rangle = GMm \langle x\rangle^where

G

: gravitational constant

M

: mass of body 1

m

: mass of body 2
Geometry interacting with air (e.g. drag)\langle P^t_x \rangle = \fracc\rho A \langle x_t\rangle^ where

A

: contact area

c

: aerodynamic geometry coefficient

\rho

: fluid density
Coulomb's law\langle P^t_x\rangle = \frac \langle x\rangle^where

\varepsilon0

: permittivity

Q

: charge of body 1

q

: charge of body 2
Absquare damper \langle P^t_x\rangle = B\langle x_t\rangle^2 where

B

is the Absquare damper parameter
Casimir force\langle P^t_x\rangle = \frac \langle x\rangle ^where

A

: area of plate

\hbar

: Planck's reduced constant

c

: speed of light
Dry friction\langle P^t_x\rangle = \mu F_\langle x_t\rangle^0where

\mu

: kinetic friction coefficient

Fn

: normal force
Biot–Savart law\langle P^t_x \rangle = \frac \langle x\rangle^where

\mu0

: permeability

I1

: current in wire 1

I2

: current in wire 2

l

: length of wires
Piston pressing fluid inside an adiabatic chamberP^t_x = AP_0 \left(1+\frac\right)^ where

A

: area of piston

P0

: initial pressure inside

x0

: initial position of piston

\gamma

: poisson coefficient
Angular mechanical power system
Flow-related variables
3
D
t

\theta

[rad/s3]
2
D
t

\theta

(\theta2t

)[rad/s2]
1
D
t

\theta

(\thetat)[rad/s]

(flow)
0
D
t

\theta

(\theta)[rad]

(displacement)
Effort-related variables
1
D
t

\tau

[W/rad]

0
D
t

\tau

t
(P
\theta

)[J/rad]

(effort)
-1
D
t

\tau

2t
(P
\theta

)[J ⋅ s/rad]

(momentum)
Passive elements
Compliance (C)Resistance (R)Inertance (I)
Inverse of the angular spring constant \langle P^t_\rangle = k_r\langle \theta\rangle where

kr

is the angular spring constant
Angular damping \langle P^t_\theta\rangle = R \langle \theta_t\rangle where

R

is the damping constant
Mass moment of inertiaType

\langle

t
P
\theta

\rangle=I\langle\theta2t\rangle

where

I

is the mass moment of inertia
Rod torsion\langle P^t_\theta\rangle = \frac\langle \theta \ranglewhere

G

: shear modulus

J

: polar moment of area

L

: rod length
Governor (e.g. used in music boxes) \langle P^t_\theta \rangle = R \langle \theta_t\rangle^2 where

R

is the governor constant
Bending moment (cantilever)\langle P^t_\rangle = \frac\langle \theta\ranglewhere

E

: Young modulus

I

: second moment of area

L

: beam length
Parallel force field\langle P^t_\theta\rangle = \langle P^t_x\rangle \sin\left(\alpha-\theta\right) where

\alpha

: angle (counter-clockwise positive) between the polar axis and the force field

\theta

: current angle of the object (e.g. pendulum)
Electric power system
Flow-related variables
2
D
t

q

electric inertia

[A/s]

1
D
t

q

(qt)[A]

(flow)
0
D
t

q

(q)[C]

(displacement)
Effort-related variables
1
D
t

V

distension

[V/s]

0
D
t

V

t
(P
q)[V]
(effort)
-1
D
t

V

2t
(P
q)[V ⋅ s]

or[Wb ⋅ turn]

(momentum)
Elements
Hyperance (H)Compliance (C)Resistance (R)Inertance (I)Abrahance (A)
Frequency-dependent negative resistor (FDNR)\langle P^t_ \rangle = \frac \langle q^t\rangleLinear capacitor\langle P^t_q\rangle = \frac\phi_L \langle q\ranglewhere

\varepsilon

: Permittivity

\phiL

: vergent factor
Linear resistor\langle P^t_q\rangle = \rho \phi_L (1+\alpha (T-T_0)) \langle q_t\ranglewhere

\rho

: resistivity

\phiL

: vergent factor

\alpha

: thermal coefficient

T

: current temperature

T0

: reference temperature
Linear inductor (solenoid)\langle P^t_q \rangle = \frac \langle q_\rangle where

\mu0

: permeability

N

: number of turns

A

: area

L

: length
Frequency-dependent negative conductance (FDNC)Type \gamma^1 \iff V = R D^2_t i\quad [H\cdot s]
DiodeP^t_q = nV_T\ln\left(1+\frac\right)where

n

: ideality factor

VT

: thermal voltage

Is

: leakage current
Toroid\langle P^t_q\rangle = \frac \langle q_\ranglewhere

\mu

: permeability

N

: number of turns

A

: cross-sectional area

r

: toroid radius to centerline
Intra-gyratorInter-gyrator
Compliant gyratorResistive gyratorInertant gyrator
Hall effect device\begine_x = R_H\fraci_y\\e_y = R_H\fraci_x\endwhere

RH

: Hall coefficient

Bz

: vertical magnetic induction field

tz

: vertical thickness
Induction motor\begine_r^1 = M\cos(\theta)D_tf_s^1 + f_s^1D_t\left[M\cos(\theta)\right]\\e_s^1 = M\cos(\theta)D_tf_r^1 + f_r^1D_t\left[M\cos(\theta)\right]\endwhere

\theta

: electrical angle
1
e
r
: voltage at rotor bar
1
e
s
: voltage at stator bar
1
f
s
: flow through stator bar
1
f
r
: flow through rotor bar
DC motor\begin\tau_e=k_a\phi_a(i_e)i_a\\\omega_e = \frace_a\endwhere

\taue

: electromagnetic torque

\omegae

: axis angular velocity

ie

: field current

ia

: armature current
Faraday gyrator\beginF &= Bli\\V &= \fracv\endwhere

F

: force

v

: rod velocity

V

: rod voltage

B

: magnetic induction field

l

: rod length
Faraday disk\beginV &= \fracBr^2 \omega\\\tau &= \fracBr^2 i\endwhere

B

: magnetic induction field

r

: disk radius
Intra-transformerInter-transformer
Electrical transformer (only for AC signals)\beginV_2 &= \fracV_1\\f_2 &= \fracf_1 \end
Hydraulic / pneumatic power system
Flow-related variables
1
D
t

V

(V
t)[m3/s]
(flow)
0
D
t

V

(V)[m3]
(displacement)
Effort-related variables
0
D
t

P

t
(P
V)[Pa]
(effort)
-1
D
t

P

fluid momentum

2t
(P
V)[Pa ⋅ s]
(momentum)
Elements
Compliance (C)Resistance (R)Inertance (I)
Pipe elasticity\langle P^t_V\rangle = \left(\frac\right) \langle V\rangle where

r0

: nominal pipe radius

V0

: pipe volume (without stress)

tW

: wall thickness

E

: Young's modulus
Darcy sponge\langle P_V^t\rangle = \left(\frac \phi_L\right) \langle V_t\rangle where

\mu

: dynamic viscosity

k

: permeability

\phiL

: vergent factor
Fluid inertia in pipes\langle P^t_V \rangle = \left(\rho \phi_L\right) \langle V_\rangle where

\rho

: fluid density

\phiL

: vergent factor
Compressible fluid (approximation)\langle P^t_V\rangle = \left(\frac\right)\langle V\rangle = \underbrace_ \langle V\rangle where

V0

: pipe volume (without stress)

B

: bulk modulus

\rho0

: gas density at reference pressure

c

: speed of sound
Valve\langle P^t_V \rangle = \left(\frac\right) \langle V_t\rangle ^2

Cd

: discharge coefficient

\rho

: fluid density

A0

: smallest area for fluid passage
Tank with area A\frac\left(h+h_0\right)^ : P^t_V = \rho g h_0 \left[\left(1+\frac{nV}{A\frac{1}{[m]^}h_0^n }\right)^ -1\right] where

h

: height with respect to the ground

h0

: inlet height

\rho

: fluid density

A

: curve scaling (dimension of area)

[m]n-1

: correction of dimension

n

: curve parameter

g

: acceleration of gravity
  • Case

n=1

(prismatic case): P^t_V = \frac V
  • Case

n=0

(current diode case): P_V^t = \rho g h_0 \left(e^-1\right)
Poiseuille resistance for cylinders\langle P_V^t \rangle = \left(\frac\right) \langle V_t\rangle where

\mu

: dynamic viscosity

L

: pipe length

R

: pipe radius
Isothermal chamber\langle P^t_V\rangle = k \langle V_t\rangle ^ where

k

is chamber's constant
Turbulence resistance\langle P_V^t\rangle = a_t \langle V_t \rangle^ where

at

is an empirical parameter
Compressible fluidP^t_V = -B\ln V where

B

is the bulk modulus
Nozzle\langle P^t_V\rangle = \frac \langle V_t\rangle^2 where

\rho

: fluid density

Aout

: outlet area

Ain

: inlet area
Adiabatic bladderP^t_V = P^t_ \left(1-\frac\right)^ where
t
P
V,0

: reference pressure

V0

: reference volume

\gamma

: Poisson coefficient
Check valve P^t_V = k\ln\left(1+\frac\right) where

k

: empirical constant

Vt,0

: reverse bias absolute flow
Gyrator–capacitor power system
Flow-related variables
0
D
t

\varphi

(\varphi)[Wb]

(displacement)
Effort-related variables
0
D
t

l{F}

(l{F}) [A ⋅ turn]

(momentum)
Elements
Compliance (C)Resistance (R)Inertance (I)
Permeance (

l{P}

)\langle \mathcal\rangle = \frac \phi_L \langle \varphi \rangle\quad \mathrmwhere

\mu

: permeability

\phiL

: vergent factor
Magnetic complex impedance (

ZM

)\mathcal = Z_M \quad \mathrm
Magnetic complex inductance (

LM

)\mathcal = L_M \quad \mathrm
Gravitational power system
Flow-related variables
0
D
t

ig

gravitational current Loop

\left(ig=2\varepsilong

3\right)[kg/s]
v
orbit
(flow)
-1
D
t

ig

gravitational charge

(M)[kg]

(displacement)
Effort-related variables
0
D
t

Vg

gravitational voltage

\left(Vg=

1
2
4
v
orbit
c2
\right)[m2/s2]
(effort)
-1
D
t

Vg

gravitational momentum

\left(\phig=

\pi
3
v
orbit
r
c2
\right)[m2/s]
(momentum)
Elements
Compliance (C)Resistance (R)Inertance (I)
Gravitational capacitanceType

\gamma1\iffMg=CVg

[kg/m2]

Cg=

2c2r2
GM

Gravitational orbital resistanceType

\gamma1\iffVg=Rgig

[m2/kg ⋅ s]

Rg=

\mug
4

vorbit

Gravitational inductanceType

\gamma1\iff\phig=Iig

[m2/kg ⋅ s2]

Lg=

2\pi2G
c2

r

Electric field volumetric power density system
Flow-related variables
0
D
t

J

(J)[A/m2]
(flow)
-1
D
t

J

(D)[C/m2]
(displacement)
Effort-related variables
0
D
t

E

(E)[V/m]

(effort)
-1
D
t

E

magnetic potential vector

(A)[V ⋅ s/m]

(momentum)
Elements
Compliance (C)Resistance (R)Volumetric power density inertance (

IV

)
Electrical permittivityType

\gamma1\iffD=\epsilon0E[F/m]

Electrical resistivityType

\gamma1\iffE=\rhoJ[\Omegam]

Magnetic permeability

\mu0 [H/m]

Magnetic field volumetric power density system
Flow-related variables
0
D
t

B

magnetic flux density

(B)[T]or

[Wb/m2]
(displacement)
Effort-related variables
0
D
t

H

magnetic field strength

(H)[A ⋅ {turn/m]}

(effort)
Elements
Compliance (C)Resistance (R)Volumetric power density inertance (

IV

)
Magnetic permeability for magnetic circuitsType

\gamma1\iffB=\muH[H/(m ⋅ {turn2)]}

Gravitoelectric volumetric power density system
Flow-related variables
0
D
t

Jg

flux of mass

(J
g)[kg/m2s]
(flow)
-1
D
t

Jg

accumulated flux of mass

(D
g)[kg/m2]
(displacement)
Effort-related variables
0
D
t

g

(g)[m/s2]
(effort)
Elements
Compliance (C)Resistance (R)Volumetric power density inertance (

IV

)
Gravitational permittivityType

\gamma1\iffDg=\epsilongg

[kg ⋅ s2/m3]

\varepsilong=

1
4\piG

Gravitational permeability

[m/kg]

I_V = \mu_g = \frac
Gravitomagnetic volumetric power density system
Flow-related variables
0
D
t

Bg

gravitomagnetic field

\left(Bg=

\omega
orbit\left(vorbit
c

\right)2\right)[Hz]

(displacement)
Effort-related variables
0
D
t

Hg

gravitomagnetic field strength

(Hg)[Pa ⋅ s]

(effort)
Elements
Compliance (C)Resistance (R)Volumetric power density inertance (

IV

)
Gravitational permeability
-4\piG
c2

[m/kg]

Thermal power-temperature system
Flow-related variables
1
D
t

Q

heat rate

(\psit)[W]

(flow)
0
D
t

Q

total heat

(\psi)[J]

(displacement)
Effort-related variables
0
D
t

T

temperature

(T)[K]

(Effort)
Elements
Compliance (C)Resistance (R)Inertance (I)
Isobaric heatT = \frac \psi = \frac\psiwhere

\rho

: object mass density

V

: volume of object

cp

: pressure specific heat capacity
Conduction resistanceT = \frac \phi_L \psi_twhere

k

: thermal conductivity

\phiL

: vergent factor
Isocoric heatT = \frac\psiwhere

CV

is the constant-volume heat capacitance
Convection resistanceT = \frac \psi_twhere

h

: convection coefficient

A

: interface area
Isothermal heatT = \frac \psiwhere

R

: universal gas constant

n

: number of moles

Vf

: final volume

Vi

: initial volume
Stefan–Boltzmann law\langle T\rangle = \left(\frac\right)^\langle \psi_t\rangle^where

e

: emissivity

\sigma

: Stefan–Boltzmann constant

A

: interface area
Continuum mechanics volumetric power density system
Flow-related variables
1
D
t

\varepsilon

strain rate

(\varepsilon

)[Hz]

(flow)
0
D
t

\varepsilon

strain

(\varepsilon)[1]

(displacement)
Effort-related variables
0
D
t

\sigma

stress

(\sigma)[Pa]

(effort)
Elements
Compliance (C)Resistance (R)Volumetric power density inertance (

IV

)
Inverse of rigidityType

\gamma1\iff\varepsilon=C\sigma

[Pa-1]
C=1
K
ViscosityType

\gamma1\iff\sigma=R

\varepsilon

[Pa ⋅ s]

Power density inertance: density of material
\rho[kg/m3]

Other systems:

Tetrahedron of state

The tetrahedron of state is a tetrahedron that graphically shows the conversion between effort and flow. The adjacent image shows the tetrahedron in its generalized form. The tetrahedron can be modified depending on the energy domain.

Using the tetrahedron of state, one can find a mathematical relationship between any variables on the tetrahedron. This is done by following the arrows around the diagram and multiplying any constants along the way. For example, if you wanted to find the relationship between generalized flow and generalized displacement, you would start at the and then integrate it to get . More examples of equations can be seen below.

Relationship between generalized displacement and generalized flow.

q(t) = \int f(t) \, dt

Relationship between generalized flow and generalized effort.

f(t) = \frac \cdot e(t)

Relationship between generalized flow and generalized momentum.

f(t) = \frac \cdot p(t)

Relationship between generalized momentum and generalized effort.

p(t) = \int e(t) \, dt

Relationship between generalized flow and generalized effort, involving the constant C.

e(t) = \frac \int f(t) \, dt

All of the mathematical relationships remain the same when switching energy domains, only the symbols change. This can be seen with the following examples.

Relationship between displacement and velocity.

x(t) = \int v(t) \, dt

Relationship between current and voltage, this is also known as Ohm's law.

i(t) = \frac V(t)

Relationship between force and displacement, also known as Hooke's law. The negative sign is dropped in this equation because the sign is factored into the way the arrow is pointing in the bond graph.

F(t) = k x(t)

For power systems, the formula for the frequency of resonance is as follows:\omega = \sqrt

For power density systems, the formula for the velocity of the resonance wave is as follows:c = \sqrt

Components

If an engine is connected to a wheel through a shaft, the power is being transmitted in the rotational mechanical domain, meaning the effort and the flow are torque (τ) and angular velocity (ω) respectively. 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:\;\overset\;\textA 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:\;\overset\;\textThis system can also be represented in a more general method. This involves changing from using the words, to symbols representing the same items. These symbols are based on the generalized form, as explained above. As the engine is applying a torque to the wheel, it will be represented as a source of effort for the system. The wheel can be presented by an impedance on the system. Further, the torque and angular velocity symbols are dropped and replaced with the generalized symbols for effort and flow. While not necessary in the example, it is common to number the bonds, to keep track of in equations. The simplified diagram can be seen below.

\;\overset\;\text

Given that effort is always above the flow on the bond, it is also possible to drop the effort and flow symbols altogether, without losing any relevant information. However, the bond number should not be dropped. The example can be seen below.

\;\overset\;\text

The bond number will be important later when converting from the bond graph to state-space equations.

Association of elements

Series association

Suppose that an element has the following behavior:e(t) = \alpha g(q(t))where

g(x)

is a generic function (it can even differentiate/integrate its input) and

\alpha

is the element's constant. Then, suppose that in a 1-junction you have many of this type of element. Then the total voltage across the junction is:e(t) = \left(\sum_i \alpha_i\right) g(q(t)) \implies \begin
c
\hline \displaystyle \alpha_\text = \sum_^N \alpha_i\\\hline \end

Parallel association

Suppose that an element has the following behavior:e(t) = g(\alpha q(t))where

g(x)

is a generic function (it can even differentiate/integrate its input) and

\alpha

is the element's constant. Then, suppose that in a 0-junction you have many of this type of element. Then it is valid:

g^\left(e(t)\right) = \alpha_i q_i(t) \implies \fracg^(e(t)) = q_i(t)\implies \left(\sum_i \frac\right)g^(e(t)) = q(t)\implies g(g^(e(t))) = g\left(\fracq(t)\right) \implies \begin

\hline \alpha_\text = \parallel_^N \alpha_i \\\hline\end

Single-port elements

Single-port elements are elements in a bond graph that can have only one port.

Sources and sinks

Sources are elements that represent the input for a system. They will either input effort or flow into a system. They are denoted by a capital "S" with either a lower case "e" or "f" for effort or flow respectively. Sources will always have the arrow pointing away from the element. Examples of sources include: motors (source of effort, torque), voltage sources (source of effort), and current sources (source of flow).

S_e \;\overset\;\ J\qquad\text\qquadS_f \;\overset\;\ Jwhere J indicates a junction.

Sinks are elements that represent the output for a system. They are represented the same way as sources, but have the arrow pointing into the element instead of away from it.

J \;\overset\;\ S_e\qquad\text\qquadJ \;\overset\;\ S_f

Inertia

Inertia elements are denoted by a capital "I", and always have power flowing into them. Inertia elements are elements that store energy. Most commonly these are a mass for mechanical systems, and inductors for electrical systems.

J\;\overset\;\ I

Resistance

Resistance elements are denoted by a capital "R", and always have power flowing into them. Resistance elements are elements that dissipate energy. Most commonly these are a damper, for mechanical systems, and resistors for electrical systems.

J\;\overset\;\ R

Compliance

Compliance elements are denoted by a capital "C", and always have power flowing into them. Compliance elements are elements that store potential energy. Most commonly these are springs for mechanical systems, and capacitors for electrical systems.

J\;\overset\;\ C

Two-port elements

These elements have two ports. They are used to change the power between or within a system. When converting from one to the other, no power is lost during the transfer. The elements have a constant that will be given with it. The constant is called a transformer constant or gyrator constant depending on which element is being used. These constants will commonly be displayed as a ratio below the element.

Transformer

A transformer applies a relationship between flow in flow out, and effort in effort out. Examples include an ideal electrical transformer or a lever.

Denoted\begin \overset\ \ \ TR\ \ \overset\ \\ ^\endwhere the r denotes the modulus of the transformer. This meansf_1 r = f_2ande_2 r = e_1

Gyrator

A gyrator applies a relationship between flow in effort out, and effort in flow out. An example of a gyrator is a DC motor, which converts voltage (electrical effort) into angular velocity (angular mechanical flow).

\begin \overset\ \ \ GY\ \ \overset\ \\ ^\endmeaning that e_2 = g f_1 and e_1 = g f_2.

Multi-port elements

Junctions, unlike the other elements can have any number of ports either in or out. Junctions split power across their ports. There are two distinct junctions, the 0-junction and the 1-junction which differ only in how effort and flow are carried across. The same junction in series can be combined, but different junctions in series cannot.

0-junctions

0-junctions behave such that all effort values (and its time integral/derivative) are equal across the bonds, but the sum of the flow values in equals the sum of the flow values out, or equivalently, all flows sum to zero. In an electrical circuit, the 0-junction is a node and represents a voltage shared by all components at that node. In a mechanical circuit, the 0-junction is a joint among components, and represents a force shared by all components connected to it.

\texte\text\sum f_\text = \sum f_\text

An example is shown below.

\overset \stackrel\overset

Resulting equations:e_1 = e_2 = e_3f_1 = f_2 + f_3

1-junctions

1-junctions behave opposite of 0-junctions. 1-junctions behave such that all flow values (and its time integral/derivative) are equal across the bonds, but the sum of the effort values in equals the sum the effort values out, or equivalently, all efforts sum to zero. In an electrical circuit, the 1 junction represents a series connection among components. In a mechanical circuit, the 1-junction represents a velocity shared by all components connected to it.

\textf\text\sum e_\text = \sum e_\text

An example is shown below.

\overset \stackrel\overset

Resulting equations:f_1 = f_2 = f_3e_1 = e_2 + e_3

Causality

Bond graphs have a notion of causality, indicating which side of a bond determines the instantaneous effort and which determines the instantaneous flow. In formulating the dynamic equations that describe the system, causality defines, for each modeling element, which variable is dependent and which is independent. By propagating the causation graphically from one modeling element to the other, analysis of large-scale models becomes easier. Completing causal assignment in a bond graph model will allow the detection of modeling situation where an algebraic loop exists; that is the situation when a variable is defined recursively as a function of itself.

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 that across 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.

In bond graph notation, a causal stroke may be added to one end of the power bond to indicate that this side is defining the flow. Consequently, the side opposite from the casual stroke controls the effort.

Sources of flow (

Sf

) define flow, so they host the causal stroke: S_f\; | \!\!\!-\!\!\!-\!\!\!-\!\!\! \rightharpoonup\!\!\!Sources of effort (

Se

) define effort, so the other end hosts the causal stroke: S_e\; -\!\!\!-\!\!\!-\!\!\! \rightharpoonup\!\!\!|

Consider a constant-torque motor driving a wheel, i.e. a source of effort (

Se

). That would be drawn as follows:\begin[b]\text\\S_e\end\;\overset\;\text

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 (the other end) 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 preferred causal orientation is as follows:J\;\overset\;I\qquad\text\qquadJ\;\overset\;C

The reason that this is the preferred method for these elements can be further analyzed if you consider the equations they would give shown by the tetrahedron of state.

f(t) = \frac \int e(t) \, dt\qquad\text\qquade(t) = \frac \int f(t) \, dt

The resulting equations involve the integral of the independent power variable. This is preferred over the result of having the causality the other way, which results in derivative. The equations can be seen below.

e(t) = I \dot(t) \qquad \text \qquad f(t) = C \dot(t)

It is possible for a bond graph to have a causal bar on one of these elements in the non-preferred manner. In such a case a "causal conflict" is said to have occurred at that bond. The results of a causal conflict are only seen when writing the state-space equations for the graph. It is explained in more details in that section.

A resistor has no time-dependent behavior: 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\;\overset\;R\qquad \text \qquadJ\;\overset\;R

Transformers are passive, neither dissipating nor storing energy, so causality passes through them:\;\overset\;TF\;\overset\;\qquad \text \qquad\;\overset\;TF\;\overset\;

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 vice versa:\;\overset\;GY\;\overset\;\qquad \text \qquad\;\overset\;GY\;\overset\;

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'\text\rightarrow\;\dashv\!\overset\!\dashv\qquad\text\qquad\text\rightarrow\;\vdash\!\overset\!\vdashIn a nutshell, 0-junctions must have a single causal bar, 1-junctions must have all but one causal bars.

Determining causality

In order to determine the causality of a bond graph certain steps must be followed. Those steps are:

  1. Draw Source Causal Bars
  2. Draw Preferred causality for C and I bonds
  3. Draw causal bars for 0 and 1 junctions, transformers and gyrators
  4. Draw R bond causal bars
  5. If a causal conflict occurs, change C or I bond to differentiation

A walk-through of the steps is shown below.\beginS_f & \overset & 0 & \overset & TR & \overset & 0 & \overset & C_5 \\ & & \downharpoonleft & & ^ & & \downharpoonleft & & \\ & & C_2 & & & & R_6 & & \end

The first step is to draw causality for the sources, over which there is only one. This results in the graph below.\beginS_f & \overset & 0 & \overset & TR & \overset & 0 & \overset & C_5 \\ & & \downharpoonleft & & ^ & & \downharpoonleft & & \\ & & C_2 & & & & R_6 & & \end

The next step is to draw the preferred causality for the C bonds.\beginS_f & \overset & 0 & \overset & TR & \overset & 0 & \overset & C_5 \\ & & \bar & & ^& & \downharpoonleft & & \\ & & C_2 & & & & R_6 & & \end

Next apply the causality for the 0 and 1 junctions, transformers, and gyrators.\beginS_f & \overset & 0 & \overset & TR & \overset & 0 & \overset & C_5 \\ & & \bar & & ^ & & \underline & & \\ & & C_2 & & & & R_6 & & \end

However, there is an issue with 0-junction on the left. The 0-junction has two causal bars at the junction, but the 0-junction wants one and only one at the junction. This was caused by having C_2 be in the preferred causality. The only way to fix this is to flip that causal bar. This results in a causal conflict, the corrected version of the graph is below, with the \star representing the causal conflict.

\beginS_f & \overset & 0 & \overset & TR & \overset & 0 & \overset & C_5 \\ & & \underline \star & & ^ & & \underline & & \\ & & C_2 & & & & R_6 & & \end

Converting from other systems

One of the main advantages of using bond graphs is that once you have a bond graph it doesn't matter the original energy domain. Below are some of the steps to apply when converting from the energy domain to a bond graph.

Electromagnetic

The steps for solving an Electromagnetic problem as a bond graph are as follows:

  1. Place an 0-junction at each node
  2. Insert Sources, R, I, C, TR, and GY bonds with 1 junctions
  3. Ground (both sides if a transformer or gyrator is present)
  4. Assign power flow direction
  5. Simplify

These steps are shown more clearly in the examples below.

Linear mechanical

The steps for solving a Linear Mechanical problem as a bond graph are as follows:

  1. Place 1-junctions for each distinct velocity (usually at a mass)
  2. Insert R and C bonds at their own 0-junctions between the 1 junctions where they act
  3. Insert Sources and I bonds on the 1 junctions where they act
  4. Assign power flow direction
  5. Simplify

These steps are shown more clearly in the examples below.

Simplifying

The simplifying step is the same regardless if the system was electromagnetic or linear mechanical. The steps are:

  1. Remove Bond of zero power (due to ground or zero velocity)
  2. Remove 0 and 1 junctions with less than three bonds
  3. Simplify parallel power
  4. Combine 0 junctions in series
  5. Combine 1 junctions in series

These steps are shown more clearly in the examples below.

Parallel power

Parallel power is when power runs in parallel in a bond graph. An example of parallel power is shown below.

Parallel power can be simplified, by recalling the relationship between effort and flow for 0 and 1-junctions. To solve parallel power you will first want to write down all of the equations for the junctions. For the example provided, the equations can be seen below. (Please make note of the number bond the effort/flow variable represents).\beginf_1=f_2=f_3 & & e_2=e_4=e_7 \\e_1=e_2+e_3 & & f_2=f_4+f_7 \\ & & \\e_3=e_5=e_6 & & f_7=f_6=f_8 \\f_3=f_5+f_6 & & e_7+e_6=e_8\end

By manipulating these equations you can arrange them such that you can find an equivalent set of 0 and 1-junctions to describe the parallel power.

For example, because e_3=e_6 and e_2=e_7 you can replace the variables in the equation e_1=e_2+e_3 resulting in e_1=e_6+e_7 and since e_6+e_7=e_8, we now know that

e1=e8

. This relationship of two effort variables equaling can be explained by an 0-junction. Manipulating other equations you can find that

f4=f5

which describes the relationship of a 1-junction. Once you have determined the relationships that you need you can redraw the parallel power section with the new junctions. The result for the example show is seen below.

Examples

Simple electrical system

A simple electrical circuit consisting of a voltage source, resistor, and capacitor in series.

The first step is to draw 0-junctions at all of the nodes:\begin & 0 & & 0 & \\ & & & & \\ & & & & \\ & 0 & & 0 & \end

The next step is to add all of the elements acting at their own 1-junction:\begin & & & & R & & & & \\ & & & & | & & & & \\ & & 0 & - & 1 & - & 0 & & \\ & & | & & & & | & & \\S_e & - & 1 & & & & 1 & - & C \\ & & | & & & & | & & \\ & & \underline & - & - & - & 0 & & \end

The next step is to pick a ground. The ground is simply an 0-junction that is going to be assumed to have no voltage. For this case, the ground will be chosen to be the lower left 0-junction, that is underlined above. The next step is to draw all of the arrows for the bond graph. The arrows on junctions should point towards ground (following a similar path to current). For resistance, inertance, and compliance elements, the arrows always point towards the elements. The result of drawing the arrows can be seen below, with the 0-junction marked with a star as the ground.

Now that we have the Bond graph, we can start the process of simplifying it. The first step is to remove all the ground nodes. Both of the bottom 0-junctions can be removed, because they are both grounded. The result is shown below.

Next, the junctions with less than three bonds can be removed. This is because flow and effort pass through these junctions without being modified, so they can be removed to allow us to draw less. The result can be seen below.

The final step is to apply causality to the bond graph. Applying causality was explained above. The final bond graph is shown below.

Advanced electrical system

A more advanced electrical system with a current source, resistors, capacitors, and a transformer

Following the steps with this circuit will result in the bond graph below, before it is simplified. The nodes marked with the star denote the ground.

Simplifying the bond graph will result in the image below.

Lastly, applying causality will result in the bond graph below. The bond with star denotes a causal conflict.

Simple linear mechanical

A simple linear mechanical system, consisting of a mass on a spring that is attached to a wall. The mass has some force being applied to it. An image of the system is shown below.

For a mechanical system, the first step is to place a 1-junction at each distinct velocity, in this case there are two distinct velocities, the mass and the wall. It is usually helpful to label the 1-junctions for reference. The result is below.\begin & & \\ & & \\1_\text & & \\ & & \\ & & \\ & & \\1_\text & & \end

The next step is to draw the R and C bonds at their own 0-junctions between the 1-junctions where they act. For this example there is only one of these bonds, the C bond for the spring. It acts between the 1-junction representing the mass and the 1-junction representing the wall. The result is below.\begin & & \\ & & \\1_\text & & \\| & & \\0 & - & C:\frac \\| & & \\1_\text & & \end

Next you want to add the sources and I bonds on the 1-junction where they act. There is one source, the source of effort (force) and one I bond, the mass of the mass both of which act on the 1-junction of the mass. The result is shown below.\beginS_e:F(t) & & \\| & & \\1_\text & - & I:m \\| & & \\0 & - & C:\frac \\| & & \\1_\text & & \end

Next power flow is to be assigned. Like the electrical examples, power should flow towards ground, in this case the 1-junction of the wall. Exceptions to this are R, C, or I bond, which always point towards the element. The resulting bond graph is below.

Now that the bond graph has been generated, it can be simplified. Because the wall is grounded (has zero velocity), you can remove that junction. As such the 0-junction the C bond is on, can also be removed because it will then have less than three bonds. The simplified bond graph can be seen below.

The last step is to apply causality, the final bond graph can be seen below.

Advanced linear mechanical

A more advanced linear mechanical system can be seen below.

Just like the above example, the first step is to make 1-junctions at each of the distant velocities. In this example there are three distant velocity, Mass 1, Mass 2, and the wall. Then you connect all of the bonds and assign power flow. The bond can be seen below.

Next you start the process of simplifying the bond graph, by removing the 1-junction of the wall, and removing junctions with less than three bonds. The bond graph can be seen below.

There is parallel power in the bond graph. Solving parallel power was explained above. The result of solving it can be seen below.

Lastly, apply causality, the final bond graph can be seen below.

State equations

Once a bond graph is complete, it can be utilized to generate the state-space representation equations of the system. State-space representation is especially powerful as it allows complex multi-order differential system to be solved as a system of first-order equations instead. The general form of the state equation is \dot (t) = \mathbf \mathbf(t) + \mathbf\mathbf(t) where \mathbf (t) is a column matrix of the state variables, or the unknowns of the system. \dot(t) is the time derivative of the state variables. \mathbf(t) is a column matrix of the inputs of the system. And \mathbf and \mathbf are matrices of constants based on the system. The state variables of a system are q(t) and p(t) values for each C and I bond without a causal conflict. Each I bond gets a p(t) while each C bond gets a q(t).

For example, if you have the following bond graph

you would have the following \dot(t), \mathbf (t), and \mathbf(t) matrices:

\dot(t) = \begin \dot_3(t) \\ \dot_6(t) \end\qquad \text \qquad\mathbf(t) = \begin p_3(t) \\ q_6(t) \end\qquad \text \qquad\mathbf(t) = \begin e_1(t) \end

The matrices of \mathbf and \mathbf are solved by determining the relationship of the state variables and their respective elements, as was described in the tetrahedron of state. The first step to solve the state equations is to list all of the governing equations for the bond graph. The table below shows the relationship between bonds and their governing equations.

Element typeBond NameBond with causalityGoverning equation(s)
Single-port elementsSource/ Sink, S

Se \overset{style}{\underset{style}{---\rightharpoonup|}} 

input=e(t)

Sf \overset{style}{\underset{style}{|---\rightharpoonup}} 

input=f(t)

Resistance, R:Dissipated Energy

\overset{style}{\underset{style}{---\rightharpoonup|}} R

f(t)=

1
R

e(t)

\overset{style}{\underset{style}{|---\rightharpoonup}} R

e(t)=Rf(t)

Inertance, I:Kinetic Energy

\overset{style}{\underset{style}{---\rightharpoonup|}} I

f(t)=

1
I

\inte(t)dt

\overset{style}{\underset{style}{|---\rightharpoonup}} I

e(t)=I

f

(t)

Compliance, C:Potential Energy

\overset{style}{\underset{style}{---\rightharpoonup|}} C

f(t)=C

e

(t)

\overset{style}{\underset{style}{|---\rightharpoonup}} C

e(t)=

1
C

\intf(t)dt

Double-port elementsTransformer, TR

\begin{matrix} \overset{style}{\underset{style}{---\rightharpoonup}|}TR  \overset{style}{\underset{style}{---\rightharpoonup}}

\ \\ ^\end

f1=

1
r

f2

e2=

1
r

e1

\begin{matrix}

\ \overset\ TR\ \ \ \overset\ \\ ^\end

e1=re2

f2=rf1

Gyrator, GY

\begin{matrix}

\ \overset\ GY \overset\ \\ ^\end

e1=gf2

e2=gf1

\begin{matrix} \overset{style}{\underset{style}{---\rightharpoonup}}

\ GY \overset\ \\ ^\end

f1=

1
g

e2

f2=

1
g

e1

Multi-port elements0 junctionOne and only onecausal bar at the junction

alle(t)=

\sumf(t)in=\sumf(t)out

1 junctionone and only one causalbar away from the junction

\sume(t)in=\sume(t)out

allf(t)=

"♦" denotes preferred causality.

For the example provided,

the governing equations are the following.

  1. e_1 = \text
  2. e_3 = e_1 - e_2 - e_4
  3. f_1 = f_2 = f_4 = f_3
  4. e_2 = R_2 f_2
  5. f_3 = \frac \int e_3 \, dt = \frac p_3
  6. f_5 = f_4 \cdot r
  7. e_4 = e_5 \cdot r
  8. e_5 = e_7 = e_6
  9. f_6 = f_5 - f_7
  10. e_6 = \frac \int f_6 \, dt = \frac q_6
  11. f_7 = \frac e_7

These equations can be manipulated to yield the state equations. For this example, you are trying to find equations that relate \dot_3(t) and \dot_6(t) in terms of p_3(t), q_6(t), and e_1(t).

To start you should recall from the tetrahedron of state that \dot_3(t) = e_3(t)starting with equation 2, you can rearrange it so that

e3=e1-e2-e4

.

e2

can be substituted for equation 4, while in equation 4,

f2

can be replaced by

f3

due to equation 3, which can then be replaced by equation 5.

e4

can likewise be replaced using equation 7, in which

e5

can be replaced with

e6

which can then be replaced with equation 10. Following these substituted yields the first state equation which is shown below.

\dot_3(t) = e_3(t) = e_1(t) - \frac p_3(t) - \frac q_6(t)

The second state equation can likewise be solved, by recalling that \dot_6(t) = f_6(t). The second state equation is shown below.

\dot_6(t) = f_6(t) = \frac p_3(t) - \frac q_6(t)

Both equations can further be rearranged into matrix form. The result of which is below.

\begin \dot_3(t) \\ \dot_6(t) \end =\begin- \frac & - \frac\\ \frac & -\frac\end\begin p_3(t) \\ q_6(t) \end +\begin 1 \\ 0 \end\begin e_1(t) \end

At this point the equations can be treated as any other state-space representation problem.

International conferences on bond graph modeling (ECMS and ICBGM)

A bibliography on bond graph modeling may be extracted from the following conferences :

See also

Further reading

External links

Notes and References

  1. Book: Analysis and Design of Engineering Systems. 1961. The M.I.T. Press. Paynter, Henry M.. 0-262-16004-8.
  2. Web site: Bond Graph Modelling of Engineering Systems .