A bond graph is a graphical representation of the energy flows though and between physical dynamical systems including those in the electrical, mechanical, hydraulic, thermal and chemical domains. It is used to model and analyse systems relevant to engineering and to systems biology.
Because the concept of energy is common to all physical domains, the bond graph provides a unified description of all of these energy domains and can be thought of as a systematic use of the physical analogies introduced by the 19th century scientists James Clerk-Maxwell and Lord Kelvin. The mechanical–electrical analogy is one example of a physical analogy.
Bond graphs use the concept of analogous power conjugate variables whose product is energy flow, or power; these variable pairs are called effort and flow and, for example, correspond to voltage and current in the electrical domain and force and velocity in the mechanical domain. These power conjugate variables are transmitted by bonds which connect bond graph components.
Bond graph components are also based on analogies and, using the electrical and mechanical domains as examples, include the C component to represent both mechanical spring and electrical capacitor, the I component to represent both a mechanical inertia and an electrical inductor and the R component to represent both mechanical damper and electrical resistor.
The electrical circuit notions of parallel and series connections are abstracted as 0-junctions and 1-junctions in bond graph terminology and again used as connection analogues for each physical domain.
The bond graph transformer (TF) and gyrator (GY) components represent energy transformation within and between domains; thus an ideal gearbox in the rotational mechanical domain is represented by the TF component and an ideal DC motor transforming electrical into mechanical energy is represented by a GY component. Non-ideal transducers with flexibility, inertia and friction are modelled by including C, I and R components.
The concept of causality in the context of bond graphs is used not only to generate system equations in a number of forms including ordinary differential equation (ode), state-space and differential-algebraic equations (dae) form suitable for simulation purposes but also to investigate dynamical system properties such as invertibility and zero dynamics. Causality can also be used to guide and correct modelling choices.
The bond graph use of energy flows leads to the systematic construction of hierarchical models of large multi-domain systems; thus the bond graph method provides a basis for constructing large computer models, or digital twins, of multi domain physical systems including systems relevant not only to engineering but also to systems biology and the life sciences.
The bond graph approach is related to the behavioral modelling approach of Jan C Willems, and the port-Hamiltonian approach of Arjan van der Schaft and B. M. Maschke.
The bond graph method was originally proposed by Henry Paynter.
The importance of analogies between physical domains was noted by Lord Kelvin and James Clerk-Maxwell. [1] [2] The bond graph can be thought of as a systematic approach to analogies. [3] This section emphasises key features of bond graph analogies; more detail appears in a number of textbooks and tutorial papers. [4] [5] [6] [3]
As an introduction to the key features of bond graphs, the figure shows the bond graph of two analogous systems: one electrical and one mechanical. A brief description is given here and expanded in the following sections.
The bond graph uses three classes of analogy: analogies between variables, analogies between components and analogies between component connections; these are discussed in the following sections.
| Domain | Effort (units) | Flow (units) |
|---|---|---|
| Electrical | Voltage (V) | Current (A) |
| Translational | Force (N) | Velocity (m/s) |
| Rotational | Torque (Nm) | Angular velocity (rad/s) |
| Hydraulic | Pressure (Pa) | Volumetric flow (m^3/s) |
| Thermal | Temperature (K) | Entropy flow ( (J/K)/s) |
| Chemical | Chemical potential (J/mol) | Molar flow (mol/s) |
The bond graph use energy flow, or power, as the basis for abstracting analogies between different physical domains [4] . Power conjugate variables are a pair of variables whose product is power and a list of these appears in the table for various physical domains. As indicated in the table, the bond graph uses the effort/flow analogy to categorise each of the two conjugate variables; the across/through analogy is also possible but not commonly used. [7] [8] The conventional bond graph symbol for effort is e, and that for flow is f. [4]
As well as the two conjugate power variables e and f, the bond graph uses two integrated variables p and q where:
equivalently:
The harpoon symbol shown in the figure represents a power bond, or bond, transferring energy; the harpoon direction corresponds to positive energy flow and corresponds to a sign convention. The conjugate variables are displayed on each bond for the purposes of illustration.
The definitions relating p to e and q to f are indicated diagrammatically. Physical properties are encapsulated in constitutive equations relating the energy and power variables. In the diagram, C represents the constitutive equation relating q and e, I represents the constitutive equation relating p and f and R represents the constitutive equation relating e and f. Instead of placing e, f, p and q on the four corners of a square as in the diagram, they can alternatively be placed at the four vertices of a tetrahedron; such a diagram is called the tetrahedron of state. [4]
These three constitutive equations correspond to three components each relating e and f: two dynamic components C and I incorporating an integrator and the R component. [4] The C and I components store, but do not dissipate energy, R dissipates, but does not store energy. It is also possible to define a memristor component linking p and q, but this component is not commonly used. [9]
may be linear or nonlinear functions relating the variables as:in the linear case:
where are scalar constants representing generalised capacitance, inertia and resistance respectively.
Because e and f are conjugate variables, they are carried on a single bond and therefore the three components C, I and R are connected to a single bond and thus have a single energy port though which energy flows. The components, and impinging bond are shown in the figure. By convention, bonds point into these three components.
The colon (:) notation is sometimes used to refer to the components; thus, for example I:M, C:K and R:D could be used in the bond graph of the mass-spring-damper system to emphasise the link between the bond graph components and their physical analogues.
Electrical circuit diagrams have two sorts of connection: parallel and series or common voltage and common current; they distribute, but do not store or dissipate energy. The bond graph analogy of the common voltage and common current connections are the 0-junction (common effort) and 1-junction (common flow) respectively; they both distribute, but do not store or dissipate energy. [4]
All bonds impinging on a 0-junctions have the same effort. As energy is distributed, not dissipated, it follows that the sum of energy inflows (indicated by bonds pointing in) must equal the sum of energy outflows (indicated by bonds pointing out). Hence, if the common effort is e, the power flow constraint implies that the sum of the inflows must equal the sum of the outflows :
Using the same argument, the efforts impinging on a 1-junction are constrained by:
Systems such as that the simple electrical and mechanical systems in the figure have no connection to the environment. Such connections may include external voltages and external forces (that is efforts) and external currents and external velocities (that is flows). Similarly, external measurements of efforts and flows are also important. For the purposes of building hierarchical system, it is convenient to define energy ports though which energy can flow between systems. These five possibilities correspond to five bond graph components: [3] [4]
For example, the mass-spring-damper system can be augmented with an force applied to the mass and a measurement of the mass velocity using a single SS components. The colon notation has been included; the SS:io refers to the fact that the force and velocity pair could be considered as system input and output.
The conjugate effort and flow variables have different units in each energy domain thus models in one domain cannot be directly be connected by bonds to a different energy domain. However, because power has the same units (J/s or W) in each domain, the two-port power transducing components TF and GY can be used to provide such connections. [4] As the two components transmit, but do not store or dissipate power, it follows that the power associated with the conjugate variables of the left-hand and right-hand bonds must be the same:
Each component has a modulus associated with it. In the case of the TF component:
In the case of the GY component:
For example, a frictionless, massless piston of area converts hydraulic power to mechanical power so that the hydraulic pressure is related to mechanical force by:
and hydraulic flow to piston velocity by:
Thus the bond graph analogy is the TF component with modulus where and .
For example, an ideal DC motor converts electrical power into rotational mechanical power so that the mechanical torque is related to the electrical current by:
and back EMF (voltage) to angular velocity by
Thus the bond graph analogy is the GY component with modulus where and .
In both cases, non-ideal transduction behaviour can be modelled by including C ,I and R bond graph components in the model.
Bond graphs have been used to model systems relevant to the life sciences, including physiology and biology. [10] In particular, the use of bond graphs to model biophysical systems was introduced by Aharon Katchalsky, George Oster, and Alan Perelson in the early 1970s. [11] [12] More recently, these ideas were used in the context of Systems Biology to provide an energy-based approach to modelling the biochemical reaction systems of cellular biology [13] [14] [15] and to modelling the entire physiome. [16]
The bond graph approach has a number of features which make it a good basis for building large computational models of the physiome.
The bond graph variables for biochemical systems are:
Note that the product of effort and flow (μv) is, as always in the bond graph formulation, power (J/s).
As detailed below, the main features of the components used to model biochemical systems are: the R and C components are nonlinear, there is no I component required and the R component is replaced by a two-port Re component. [15]
The bond graph zero (0) and one (1) components are no different in this context.
The C component integrates the flow to give the amount of species:
The effort, chemical potential , is given by the formula: [15] [22]
where is the chemical potential corresponding to , is the gas constant and is the absolute temperature in degrees Kelvin.
The formula for can be rewritten in a simplified form as:
where
Because of the special form of this particular C component it is sometimes given a special name Ce analogously to the special Re component.
The Re (reaction) component has two energy ports corresponding to the left (forward) and right (reverse) sides of a chemical reaction. The forward and reverse affinities are defined as the net chemical potential due to the species on the left and right sides of the reaction respectively. The Re component then gives the reaction flow as: [15]
where (mol/s) is a rate constant.
Note that it is not possible to use the usual R component with 1-junction formulation as the flow depends on both the forward and reverse affinities rather than the difference . [13]
The simple reaction is represented by three components:
Using the above equations, the flow is given by
where the subscripts correspond to the species. This is the simple mass-action equation:
where .
As discussed in section 1.4 of Keener & Sneyd, [22] an enzyme-catalysed reaction reversibly transforming species to species via enzyme and enzyme complex can be written as the pair of reactions:
The enzyme complex is formed from and decomposes into the species and releases enzyme . The bond graph shown in the figure shows how the enzyme is recycled.
The bond graph can be used to derive the properties of these reactions which are of generalised Michaelis-Menten form. [13]
The bond graph TF (transformer) component represents energy transduction either within or between energy domains. [4] (Note that the TF component has been called the TD (transduction) component [11] [12] - TF is more widely used. [4] ) This section focuses on transduction between the chemical domain with effort (J/mol) and flow (mol/s) and a generic domain with effort and flow .
The key feature of the TF component is that it transmits energy without dissipation; [4] hence, with reference to the figure:
The transformer has a modulus m (with appropriate units) so that:
the energy formula then implies that:
The stoichiometry of a chemical reaction determines how many of each chemical species occurs. Thus, for example, the reaction converts one mol of species to m mol of species .
The case where corresponds to the simple reaction of the first example above. Using the same approach for general , the reaction flow is: [13] [15]
This section looks at the case where the generic domain is the electrical domain so that effort is (electrical) voltage ( ) and the flow is current (). Consider the flow of charged ions where the charge on the molecule is (Coulomb) where is the charge on the electron measured in Coulomb; the charge associated with a mole of ions is thus where is the Avogadro constant. The equivalent current is then
where is the Faraday constant; thus the corresponding TF modulus is:
(C/mol)
Again, it follows that
In this context, the bond graph TF component can be used to model energy flows associated with action potential, [23] membrane transporters, [24] cardiac action potential, [25] and the mitochondrial electron transport chain. [26]
Consider a long rigid molecule such as actin where a sub unit of length (m) is added at a rate of (mol/sec). Then the tip velocity is given by: [27]
where is the Avogadro constant.
Thus the modulus (m/mol) and
where is the corresponding force at the tip.
These formulae have been used [27] to generate force/velocity curves for actin filaments. The approach provides a useful alternative to the Brownian Ratchet approach [28] as the bond graph TF component can be potentially used with modular bond graph models of cellular systems. [14]
A number of systems relevant to systems biology have been modelled using bond graphs. These include:
Causality is a word with many uses and connotations. In the context of bond graphs, however, it has a limited, precise but important meaning and allows the bond graph model of a system to be converted to various other forms including a (nonlinear) state-space representation. [4] The causality concept can also be used to examine structural properties, including inversion, of the system represented by a bond graph as well as to expose modelling errors. [6]
The concept of causality is visualised via the causal stroke notation. [4] This notation is introduced in the three figures where the R, C and I components are connected to a bond augmented by the causal stoke: a short line perpendicular to the bond and located at either (but not both) end of the bond. (For clarity, the figures correspond to linear components; in the nonlinear case, is replaced by and by and similarly for the C and I components. Whereas an acausal (without strokes) bond graph represents a set of equations (where the left and right sides of an equation can be swapped without change of meaning), a causal (with strokes on each bond) represents a set of assignment statements whereby the value of the left-hand side of the assignment statement (represented here by :=) becomes the value of the expression on the right-hand side of the assignment statement. Thus, for example, the constitutive equation of a linear resistor can be written as and without changing the meaning; but in contrast, the two assignment statements e:=Rf and f := e/R are different. In particular, in the first case, f must be known to compute e and in the second case, e must be known to compute f.
The assignment statement representation can be graphically visualised as a block diagram where each assignment statement is represented as a block with input representing the right-hand of the assignment statement and output representing the left-hand side of the assignment statement. [3] [4] The block diagrams for each causality are shown in the figures for each component. Note that each causality of a component leads to a different block diagram.
The figure shows the causality of the R component with linear constitutive equation. (a) Flow is imposed on R and R imposes effort; this corresponds to the assignment statement e := Rf and the block diagram. (b) Effort is imposed on R and R imposes flow; this corresponds to the assignment statement f := e/R and the corresponding block diagram.
The figure shows the causality of the C component with linear constitutive equation. (a) Flow is imposed on C and C imposes effort; this corresponds to the assignment statements and the corresponding block diagram; this is called integral causality. (b) Effort is imposed on C and C imposes flow; this corresponds to the assignment statements and the corresponding block diagram. This is called derivative causality.
The figure shows the causality of the I component with linear constitutive equation. (a) Effort is imposed on I and I imposes flow ; this corresponds to the assignment statements and the corresponding block diagram. This is called integral causality. (b) Flow is imposed on I and I imposes effort; this corresponds to the assignment statements and the corresponding block diagram. This is called derivative causality.
The SS (source sensor) component acts as an effort source (), flow detector () combination when the causal stroke is distant from the SS component and vice versa. The figure shows the causality of the SS (source/sensor) component. (a) The SS acts as an effort source () flow detector () combination. (b) The SS acts as a flow source (), effort detector () combination.
As, by definition, all efforts associated with bonds impinging on a 0-junction are the same, it follows that exactly one bond can impose effort causality. Similarly, all flows associated with bonds impinging on a 1-junction are the same, it follows that exactly one bond can impose flow causality. Thus if a bond imposes effort causality on a 0-junction, the junction imposes effort on the other bonds and if a bond imposes flow causality on a 1-junction, the junction imposes flow on the other bonds.
When one-port components (sources, C, I and R) are connected by a junction structure consisting of 0-junctions, 1-junctions, TF and GY, the causality assigned to each one port component propagates though the junction structure because of the causal constraints imposed by the junction structure components. This propagation can be applied systematically using the sequential causal assignment procedure (SCAP): [4]
The figure shows the result of this procedure on the simple example. In particular, the I component imposes flow causality onto the 1-junction thus the one junction imposes flow causality on to the other three components: SS, C and R. This means that the C, R and SS components impose effort causality onto the one junction; thus the C component is in integral causality and the R component corresponds to the assignment .
Although this procedure can be accomplished manually for small systems, a computer-based approach is more generally useful.
There are three possible results of this procedure.
Whereas case 1 leads to ordinary differential equations (ode) in state-space form, case 2 gives rise to differential-algebraic equations (dae). Depending on the context, it may be better to reconsider the underlying physical system to avoid daes [4] [5] [6] , or it may be possible to reduce the dae to an ode [6] [39] or the daes can be solved using an appropriate dae solver.
The sequential causal assignment procedure (SCAP) is designed to derive state-space equations, suitable for computation or control systems analysis. However, there are other forms of causal analysis designed to address other issues, including:
A bond graph system representation contains the constitutive equations of each component, embedded in the structure of bond and junctions.
The question of how to manipulate a set of equations into a form suitable for analogue computation was posed, and partially answered by Lord Kelvin. [47] This approach underlies the conversion of a bond graph model to a state-space representation suitable for digital computation. [48]
The bond graph uses the notion of (bond graph) causality to provide a systematic and constructive way to investigate whether a state-space representation exists, and, if so, what is that representation; this causality approach is well suited to computational implementation and has an intuitive representation on the bond graph itself using the causal stroke notation.
A causal bond graph can be put into state-space form if [4] :
The sequential causal assignment procedure (SCAP) provides a graphical approach to determining whether a system represented by a bond graph has a state-space representation. [4] [6]
The bond graph is analogous to an number of different systems; for clarity, the mechanical analogue is used as an example, but exactly the same method applied to electrical and other physical domains.
It is convenient to choose the system states as the integrated variables corresponding to the components in integral causality; in the case of the simple example, there are two states: corresponding to the mass M and corresponding to the spring. The system inputs and outputs correspond to the Se, Sf and SS components. In this case, there is one input and one output corresponding to the SS component: the effort (applied force ) and the measured flow (velocity ). Guided by the causal strokes, the state derivatives (effort applied to I components, flow applied to C components) can be written in terms of the states. Thus:
This can be written in standard linear state space for as:
where the state input and output are given by:
and the matrices , and are given by:
The state equation has three parameters: the mass , the spring constant and the damping constant .
Using the usual Laplace transform notation of control systems theory, the system transfer function relating the input to output is:
Although it may be instructive to derive these formulae by hand, it is often convenient to make use of computer algebra to perform the same function.
The behavior of a linear system is not only determined by the demominator of the system transfer function but also by the numerator. In the nonlinear case, the concept of the transfer function numerator is replaced by the concept of zero dynamics. Having a physical interpretation of zero dynamics is helpful in designing, and redesigning a dynamical system. For this reason, a bond graph approach to system inversion has been developed. [49] [50] [51]
This procedure is illustrated using the simple mass-spring-damper system bond graph which, although linear, exemplifies the key ideas. In particular, system inversion is performed by reversing the causality on the source-sensor component; thus the role of input and output is reversed. In this particular case, reversing the causality of the SS component implies that the causality of the I component must also be reversed as only one component can impose flow onto the 1-junction. Thus only one component, the C component, remains in integral causality. Thus the zero dynamics are first order which, in this simple case, corresponds to the fact that the transfer function of the original system has a first order numerator.
Following the causal strokes, the remaining state can be written as in terms of the input of the inverse system
is no longer a state, but can be written as:
the output of the inverse system is:
This approach relies on the system input and output existing on the same SS component - the input and output are said to be colocated. If this is not so, the concept of bicausality must be used.
Although (standard) causality provides a powerful tool to investigate the inverse of a dynamical system described by a bond graph, it is restricted to co-located source-sensor pairs where the input and output reside on a single SS component. To remove this restriction, the concept of bicausality was introduced [52] and applied to various inversion problems. [53] [54] [55] Bicausality has also been used in the context of fault detection [56] [57] , analysis of dynamical system structural properties [58] [59] , control system design [60] [61] [62] [63] [64] and nonlinear analysis [65] .
The SS (source-sensor) component has two possible causal configurations corresponding to Se/Df (effort source, flow sensor) and De/Sf (effort sensor, flow source). As illustrated in the figure, the SS component has two bicausal configurations corresponding to Se/Sf (effort source, flow source) and De/Df (effort sensor, flow sensor). This is represented graphically using causal half-strokes where the half-stroke on the harpoon side of the bond corresponds to flow and the half-stroke on the other side of the bond corresponds to effort.
The rules for the bicausality of junctions are the same as those for causality: only one bond imposes an effort onto a 0-junction and only one bond imposes a flow onto a 1-junction. In the context of inversion, the bonds connected to I, C and components cannot be bicausal.
These ideas are illustrated using an example with non-collocated source and sensor.
The example is extended by adding a zero junction and a further SS component. In the mechanical case, this corresponds to inserting a force sensor and velocity source between the spring and the ground; in the electrical case it corresponds to adding a current source and voltage sensor in parallel to the capacitor. The example is simplified by setting the flow of the added flow source to zero as indicated on the bond graph.
As in the collocated example, the mechanical system is considered and system input is taken to be the force acting on the mass M. However, the output is taken to be the force of the spring which is not collocated with the applied force .
The corresponding state-space system is the same except that the output matrix C is given by:
reflecting the change of the sensor. The transfer function relating input to output becomes:
The denominator remains unchanged, but the numerator is different reflecting the change of sensor.
The system is inverted by making the output an input and the input an output. Thus the left hand SS becomes both an effort and flow sensor and the right hand SS becomes both and effort and flow source with the corresponding causalities. As the I, C and R components must retain conventional causality, the bicausality propagates as shown. Both the I and C components are in derivative causality and thus the zero dynamics are zero order which, in this simple case, corresponds to the fact that the transfer function of the original system has a zero order numerator.
As in the collocated case, the transfer function of the inverse system is the reciprocal of the transfer function of the system; again, the bond graph causality method can also be used to examine the zero dynamics of nonlinear systems. [65] [54]
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 f(t) and then integrate it to get q(t). More examples of equations can be seen below.
Relationship between generalized displacement and generalized flow.
Relationship between generalized flow and generalized effort.
Relationship between generalized flow and generalized momentum.
Relationship between generalized momentum and generalized effort.
Relationship between generalized flow and generalized effort, involving the constant C.
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.
Relationship between current and voltage, this is also known as Ohm's law.
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.
For power systems, the formula for the frequency of resonance is as follows:
For power density systems, the formula for the velocity of the resonance wave is as follows:
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: 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: This 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.
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.
The bond number will be important later when converting from the bond graph to state-space equations.
Suppose that an element has the following behavior: where is a generic function (it can even differentiate/integrate its input) and 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:
Suppose that an element has the following behavior: where is a generic function (it can even differentiate/integrate its input) and is the element's constant. Then, suppose that in a 0-junction you have many of this type of element. Then it is valid:
Single-port elements are elements in a bond graph that can have only one port.
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).
where 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.
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.
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.
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.
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.
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 where the r denotes the modulus of the transformer. This means and
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).
meaning that and
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 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.
An example is shown below.
Resulting equations:
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.
An example is shown below.
Resulting equations:
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 () define flow, so they host the causal stroke: Sources of effort () define effort, so the other end hosts the causal stroke:
Consider a constant-torque motor driving a wheel, i.e. a source of effort (). That would be drawn as follows:
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, and , can only have one sort of causation: an component determines flow; a component defines effort. So from a junction, , the preferred causal orientation is as follows:
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.
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.
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:
Transformers are passive, neither dissipating nor storing energy, so causality passes through them:
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:
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' In a nutshell, 0-junctions must have a single causal bar, 1-junctions must have all but one causal bars.
In order to determine the causality of a bond graph certain steps must be followed. Those steps are:
A walk-through of the steps is shown below.
The first step is to draw causality for the sources, over which there is only one. This results in the graph below.
The next step is to draw the preferred causality for the C bonds.
Next apply the causality for the 0 and 1 junctions, transformers, and gyrators.
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 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 representing the causal conflict.
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.
The steps for solving an Electromagnetic problem as a bond graph are as follows:
These steps are shown more clearly in the examples below.
The steps for solving a Linear Mechanical problem as a bond graph are as follows:
These steps are shown more clearly in the examples below.
The simplifying step is the same regardless if the system was electromagnetic or linear mechanical. The steps are:
These steps are shown more clearly in the examples below.
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).
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 and you can replace the variables in the equation resulting in and since , we now know that . This relationship of two effort variables equaling can be explained by an 0-junction. Manipulating other equations you can find that 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.
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:
The next step is to add all of the elements acting at their own 1-junction:
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.
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.
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.
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.
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.
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.
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.
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 where is a column matrix of the state variables, or the unknowns of the system. is the time derivative of the state variables. is a column matrix of the inputs of the system. And and are matrices of constants based on the system. The state variables of a system are and values for each C and I bond without a causal conflict. Each I bond gets a while each C bond gets a .
For example, if you have the following bond graph
you would have the following , , and matrices:
The matrices of and 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 type | Bond Name | Bond with causality | Governing equation(s) |
|---|---|---|---|
| Single-port elements | Source/ Sink, S | ||
| Resistance, R: Dissipated Energy | |||
| Inertance, I: Kinetic Energy | ♦ | ||
| Compliance, C: Potential Energy | |||
| ♦ | |||
| Double-port elements | Transformer, TR | ||
| Gyrator, GY | |||
| Multi-port elements | 0 junction | One and only one causal bar at the junction | |
| 1 junction | one and only one causal bar away from the junction | ||
"♦" denotes preferred causality.
For the example provided,
the governing equations are the following.
These equations can be manipulated to yield the state equations. For this example, you are trying to find equations that relate and in terms of , , and .
To start you should recall from the tetrahedron of state that starting with equation 2, you can rearrange it so that . can be substituted for equation 4, while in equation 4, can be replaced by due to equation 3, which can then be replaced by equation 5. can likewise be replaced using equation 7, in which can be replaced with which can then be replaced with equation 10. Following these substituted yields the first state equation which is shown below.
The second state equation can likewise be solved, by recalling that . The second state equation is shown below.
Both equations can further be rearranged into matrix form. The result of which is below.
At this point the equations can be treated as any other state-space representation problem.
A bibliography on bond graph modeling may be extracted from the following conferences :
Many systems can be expressed in terms used in bond graph. These terms are expressed in the table below.
Conventions for the table below:
| Generalized flow | Generalized displacement | Generalized effort | Generalized momentum | Generalized power (in watts for power systems) | Generalized energy (in joules for power systems) | |
|---|---|---|---|---|---|---|
| Name | ||||||
| Description | Time derivative of displacement | A quality related to static behaviour. | The energy per unit of displacement | Time integral of effort | Transformation of energy from one to another form | Conserved quantity in closed systems |
| Elements | ||||||
| Name | Hyperance , hyperrigitance | Compliance , rigitance | Resistance | Inertance (or ) | Abrahance | Magnance |
| Properties | Power dissipative element | Charge storage element (State variable: displacement) (Costate variable: effort) | Power dissipative element | Momentum storage element (State variable: momentum) (Costate variable: flow) | Power dissipative element | Power dissipative element |
| Quantitative behaviour | For 1-dimension systems (linear): For 1-dimension systems: Impedance: | Potential energy for N-dimension systems: Potential energy: Potential coenergy: For 1-dimension systems: Impedance: | For 1-dimension systems (linear): Power for 1-dimension non-linear resistances ( is the effort developed by the element): Rayleigh power: Rayleigh oower for non-linear resistances: Rayleigh effort: For N-dimension systems: For 1-dimension systems: Impedance: | Kinetic energy for N-dimension systems: Kinetic energy: Kinetic coenergy: For 1-dimension systems: Impedance: | For 1-dimension systems (linear): For 1-dimension systems: Impedance | For 1-dimension systems (linear) For 1-dimension systems Impedance |
| Generalized behaviour | Energy from active effort sources: Hamiltonian effort: Lagrangian effort: Passive effort: Power equation: Effort equation: Lagrangian equation: Hamiltonian equation: If is the coenergy, is the energy, is the state variable and is the costate variable, For linear elements: | |||||
| Flow-related variables | : pounce / pop | : flounce / crackle | : jounce / snap | : jerk |
|---|---|---|---|---|
| : acceleration | : velocity (flow) | : displacement (displacement) | : absement | |
| : absity | : abseleration | : abserk | ||
| Effort-related variables | : yank | : force (effort) | : linear momentum (momentum) | |
| Passive elements | ||||
| Compliance (C) | Resistance (R) | Inertance (I) | Abrahance (A) | Magnance (M) |
| Spring where is the spring stiffness | Damper where is the damper parameter | Mass where is the mass | Abraham–Lorentz force where
| Magnetic radiation reaction force where
|
Cantilever
| Cyclotron radiation resistance where
| |||
| Prismatic floater in a wide waterbody where
| Viscous friction where is the viscous friction parameter | |||
| Elastic rod where
| Inverse of kinetic mobility where is the kinetic mobility | |||
| Newton's law of gravitation where
| Geometry interacting with air (e.g. drag) where
| |||
| Coulomb's law where
| Absquare[ clarification needed ] damper where is the Absquare damper parameter | |||
| Casimir force where
| Dry friction where
| |||
| Biot–Savart law where
| ||||
| Piston pressing fluid inside an adiabatic chamber where
| ||||
| Flow-related variables | : angular jerk | : angular acceleration |
|---|---|---|
| : angular velocity (flow) | : angular displacement (displacement) | |
| Effort-related variables | : rotatum | : rorque (effort) |
| : angular momentum (momentum) | ||
| Passive elements | ||
| Compliance (C) | Resistance (R) | Inertance (I) |
| Inverse of the angular spring constant where is the angular spring constant | Angular damping where is the damping constant | Mass moment of inertia Type where is the mass moment of inertia |
| Rod torsion where
| Governor (e.g. used in music boxes) where is the governor constant | |
| Bending moment (cantilever) where
| ||
| Parallel force field where
| ||
| Flow-related variables | : electric inertia | : electric current (flow) | : electric charge (displacement) | |
|---|---|---|---|---|
| Effort-related variables | : distension | : voltage (effort) | : flux linkage (momentum) | |
| Elements | ||||
| Hyperance (H) | Compliance (C) | Resistance (R) | Inertance (I) | Abrahance (A) |
| Frequency-dependent negative resistor (FDNR) | Linear capacitor where
| Linear resistor where
| Linear inductor (solenoid) where
| Frequency-dependent negative conductance (FDNC) Type |
| Diode where
| Toroid where
| |||
| Intra-gyrator | Inter-gyrator | |||
| Compliant gyrator | Resistive gyrator | Inertant gyrator | ||
| Hall effect device where
| Induction motor where
| DC motor where
| Faraday gyrator where
| |
| Faraday disk where
| ||||
| Intra-transformer | Inter-transformer | |||
| Electrical transformer (only for AC signals) | ||||
| Flow-related variables | : volumetric flow rate (flow) | : volume (displacement) |
|---|---|---|
| Effort-related variables | : pressure (effort) | : fluid momentum (momentum) |
| Elements | ||
| Compliance (C) | Resistance (R) | Inertance (I) |
| Pipe elasticity where
| Darcy sponge where
| Fluid inertia in pipes where
|
| Compressible fluid (approximation) where
| Valve
| |
| Tank with area : where
| Poiseuille resistance for cylinders where
| |
| Isothermal chamber where is chamber's constant | Turbulence resistance where is an empirical parameter | |
| Compressible fluid where is the bulk modulus | Nozzle where
| |
| Adiabatic bladder where
| Check valve where
| |
| Flow-related variables | : magnetic flux (displacement) | |
|---|---|---|
| Effort-related variables | : magnetomotive force (momentum) | |
| Elements | ||
| Compliance (C) | Resistance (R) | Inertance (I) |
| Permeance () where
| Magnetic complex impedance () | Magnetic complex inductance () |
| Flow-related variables | : gravitational current Loop (flow) | : gravitational charge (displacement) |
|---|---|---|
| Effort-related variables | : gravitational voltage (effort) | : gravitational momentum (momentum) |
| Elements | ||
| Compliance (C) | Resistance (R) | Inertance (I) |
| Gravitational capacitance Type | Gravitational orbital resistance Type | Gravitational inductance Type |
| Flow-related variables | : current density (flow) | : electric displacement field (displacement) |
|---|---|---|
| Effort-related variables | : electric field (effort) | : magnetic potential vector (momentum) |
| Elements | ||
| Compliance (C) | Resistance (R) | Volumetric power density inertance () |
| Electrical permittivity Type | Electrical resistivity Type | Magnetic permeability |
| Flow-related variables | : magnetic flux density (displacement) | |
|---|---|---|
| Effort-related variables | : magnetic field strength (effort) | |
| Elements | ||
| Compliance (C) | Resistance (R) | Volumetric power density inertance () |
| Magnetic permeability for magnetic circuits Type | ||
| Flow-related variables | : flux of mass (flow) | : accumulated flux of mass (displacement) |
|---|---|---|
| Effort-related variables | : acceleration of gravity (effort) | |
| Elements | ||
| Compliance (C) | Resistance (R) | Volumetric power density inertance () |
| Gravitational permittivity Type | Gravitational permeability | |
| Flow-related variables | : gravitomagnetic field (displacement) | |
|---|---|---|
| Effort-related variables | : gravitomagnetic field strength (effort) | |
| Elements | ||
| Compliance (C) | Resistance (R) | Volumetric power density inertance () |
| Gravitational permeability | ||
| Flow-related variables | : heat rate (flow) | : total heat (displacement) |
|---|---|---|
| Effort-related variables | : temperature (Effort) | |
| Elements | ||
| Compliance (C) | Resistance (R) | Inertance (I) |
| Isobaric heat where
| Conduction resistance where
| |
| Isocoric heat where is the constant-volume heat capacitance | Convection resistance where
| |
| Isothermal heat where
| Stefan–Boltzmann law where
| |
| Flow-related variables | : strain rate (flow) | : strain (displacement) |
|---|---|---|
| Effort-related variables | : stress (effort) | |
| Elements | ||
| Compliance (C) | Resistance (R) | Volumetric power density inertance () |
| Inverse of rigidity Type | Viscosity Type | Power density inertance: density of material |
Other systems:
{{citation}}: CS1 maint: work parameter with ISBN (link){{citation}}: CS1 maint: work parameter with ISBN (link){{cite journal}}: CS1 maint: article number as page number (link){{cite book}}: ISBN / Date incompatibility (help)