|
|
(293 intermediate revisions by more than 100 users not shown) |
Line 1: |
Line 1: |
| A '''bond graph''' is a [[Graph (mathematics)|graphical representation]] of a physical [[dynamical system|dynamic system]]. It is similar to the better known [[block diagram]] and [[signal-flow graph]], with the major difference that the arcs in bond graphs represent [[Undirected graph|bi-directional]] exchange of physical [[energy]], while those in block diagrams and signal-flow graphs represent [[Directed graph|uni-directional]] flow of information. Also, bond graphs are multi domain and domain neutral. This means a bond graph can incorporate multiple domains seamlessly.
| | This is a preview for the new '''MathML rendering mode''' (with SVG fallback), which is availble in production for registered users. |
|
| |
|
| 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 (dE/dt) or power. The flow in each bond is denoted a pair of variables called 'power variables' whose product is the instantaneous power of the bond. For example, the bond of an electrical system would represent the flow of electrical energy and the power variables would be voltage and current, whose product is power. Each domain's power variables are broken into two types: "effort" and "flow". Effort multiplied by flow produces power, thus the term power variables. Every domain has a pair of power variables with a corresponding effort and flow variable. Examples of effort include force, torque, voltage, or pressure; while flow examples include velocity, current, and volumetric flow. The table below contains the most common energy domains and the corresponding "effort" and "flow".
| | If you would like use the '''MathML''' rendering mode, you need a wikipedia user account that can be registered here [[https://en.wikipedia.org/wiki/Special:UserLogin/signup]] |
| | * Only registered users will be able to execute this rendering mode. |
| | * Note: you need not enter a email address (nor any other private information). Please do not use a password that you use elsewhere. |
|
| |
|
| 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 "causal stroke". 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. Any port (single, double or multi) attached to the bond shall specify either "effort" or "flow" by its causal stroke, but not both. The port attached to the end of the bond with the "causal stroke" specifies the "flow" of the bond. And the bond imposes "effort" upon that port. Equivalently, the port on the end without the "causal stroke" imposes "effort" to the bond, while the bond imposes "flow" to that port. This is made more clear with the illustrative examples below.
| | Registered users will be able to choose between the following three rendering modes: |
|
| |
|
| {| class="wikitable"
| | '''MathML''' |
| |-
| | :<math forcemathmode="mathml">E=mc^2</math> |
| ! Energy Domain
| |
| ! effort
| |
| ! e symbol
| |
| ! e unit (metric)
| |
| ! e unit (imperial)
| |
| ! flow
| |
| ! f symbol
| |
| ! f unit (metric)
| |
| ! f unit (imperial)
| |
| |-
| |
| | Mechanical, translation
| |
| | Force
| |
| | F
| |
| | N
| |
| | lb
| |
| | Linear velocity
| |
| | v
| |
| | m/s
| |
| | ft/s, mph
| |
| |-
| |
| | Mechanical, rotation
| |
| | Torque
| |
| | τ
| |
| | N·m
| |
| | ft·lb
| |
| | Angular velocity
| |
| | ω
| |
| | rad/s
| |
| | rad/s
| |
| |-
| |
| | Electrical
| |
| | Electromotive force
| |
| | V or u
| |
| | V
| |
| | V
| |
| | Current
| |
| | I or i
| |
| | A
| |
| | A
| |
| |-
| |
| | Magnetic <ref>Karnopp, D. C., Rosenberg, R. C. and Margolis, D. L., 1990: ''System dynamics: a unified approach'', Wiley, ISBN 0-471-62171-4.</ref>
| |
| | Magnetomotive force
| |
| |
| |
| |
| |
| |
| |
| | Flux rate
| |
| |
| |
| |
| |
| |
| |
| |-
| |
| | Hydraulic
| |
| | Pressure
| |
| | P
| |
| | Pa
| |
| | psi
| |
| | Volumetric flow rate
| |
| | Q
| |
| | m³/s
| |
| | ft³/s
| |
| |-
| |
| | Thermal
| |
| | temperature
| |
| | T
| |
| | °C or K
| |
| | °F
| |
| | entropy flow rate
| |
| | S
| |
| | W/°C
| |
| | ft·lb/s·°F
| |
| |}
| |
|
| |
|
| 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]].
| | <!--'''PNG''' (currently default in production) |
| | :<math forcemathmode="png">E=mc^2</math> |
|
| |
|
| ==History==
| | '''source''' |
| The Bond Graph was invented by [[Henry Paynter]].<ref>{{cite book |author=Paynter, Henry M. |title=Analysis and Design of Engineering Systems |publisher= The M.I.T. Press |ISBN= 0-262-16004-8}}</ref> The term "Bond Graph" comes from the fact that many of these graphs look like the bonds in chemistry; an example of this structure is shown in the 'examples' section of this wiki.<ref>{{cite book |author=Karnopp, Dean C. |title=System Dynamics- Modeling and Simulation of Mechetronic Systems |publisher= John Wiley and Sons Inc. |ISBN= 0-471-70965-4}}</ref>
| | :<math forcemathmode="source">E=mc^2</math> --> |
|
| |
|
| ==Basics== | | <span style="color: red">Follow this [https://en.wikipedia.org/wiki/Special:Preferences#mw-prefsection-rendering link] to change your Math rendering settings.</span> You can also add a [https://en.wikipedia.org/wiki/Special:Preferences#mw-prefsection-rendering-skin Custom CSS] to force the MathML/SVG rendering or select different font families. See [https://www.mediawiki.org/wiki/Extension:Math#CSS_for_the_MathML_with_SVG_fallback_mode these examples]. |
| The fundamental idea of a bond graph is that [[Power (physics)|power]] is transmitted between connected components by a combination of "effort" and "flow" (generalized effort & generalized flow). Refer to the table above for examples of effort and flow in different domains. 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:
| |
|
| |
|
| | ==Demos== |
|
| |
|
| <math>{\text{engine}}\;\overset{\textstyle\tau}{\underset{\textstyle\omega}{-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}\;\text{wheel}</math>
| | Here are some [https://commons.wikimedia.org/w/index.php?title=Special:ListFiles/Frederic.wang demos]: |
| <!--
| |
| τ
| |
| engine ---------- wheel
| |
| ω
| |
| -->
| |
|
| |
|
|
| |
|
| A half-arrow is used to provide a sign convention, so if the engine is doing work when τ and ω are positive, then the diagram would be drawn:
| | * accessibility: |
| | ** Safari + VoiceOver: [https://commons.wikimedia.org/wiki/File:VoiceOver-Mac-Safari.ogv video only], [[File:Voiceover-mathml-example-1.wav|thumb|Voiceover-mathml-example-1]], [[File:Voiceover-mathml-example-2.wav|thumb|Voiceover-mathml-example-2]], [[File:Voiceover-mathml-example-3.wav|thumb|Voiceover-mathml-example-3]], [[File:Voiceover-mathml-example-4.wav|thumb|Voiceover-mathml-example-4]], [[File:Voiceover-mathml-example-5.wav|thumb|Voiceover-mathml-example-5]], [[File:Voiceover-mathml-example-6.wav|thumb|Voiceover-mathml-example-6]], [[File:Voiceover-mathml-example-7.wav|thumb|Voiceover-mathml-example-7]] |
| | ** [https://commons.wikimedia.org/wiki/File:MathPlayer-Audio-Windows7-InternetExplorer.ogg Internet Explorer + MathPlayer (audio)] |
| | ** [https://commons.wikimedia.org/wiki/File:MathPlayer-SynchronizedHighlighting-WIndows7-InternetExplorer.png Internet Explorer + MathPlayer (synchronized highlighting)] |
| | ** [https://commons.wikimedia.org/wiki/File:MathPlayer-Braille-Windows7-InternetExplorer.png Internet Explorer + MathPlayer (braille)] |
| | ** NVDA+MathPlayer: [[File:Nvda-mathml-example-1.wav|thumb|Nvda-mathml-example-1]], [[File:Nvda-mathml-example-2.wav|thumb|Nvda-mathml-example-2]], [[File:Nvda-mathml-example-3.wav|thumb|Nvda-mathml-example-3]], [[File:Nvda-mathml-example-4.wav|thumb|Nvda-mathml-example-4]], [[File:Nvda-mathml-example-5.wav|thumb|Nvda-mathml-example-5]], [[File:Nvda-mathml-example-6.wav|thumb|Nvda-mathml-example-6]], [[File:Nvda-mathml-example-7.wav|thumb|Nvda-mathml-example-7]]. |
| | ** Orca: There is ongoing work, but no support at all at the moment [[File:Orca-mathml-example-1.wav|thumb|Orca-mathml-example-1]], [[File:Orca-mathml-example-2.wav|thumb|Orca-mathml-example-2]], [[File:Orca-mathml-example-3.wav|thumb|Orca-mathml-example-3]], [[File:Orca-mathml-example-4.wav|thumb|Orca-mathml-example-4]], [[File:Orca-mathml-example-5.wav|thumb|Orca-mathml-example-5]], [[File:Orca-mathml-example-6.wav|thumb|Orca-mathml-example-6]], [[File:Orca-mathml-example-7.wav|thumb|Orca-mathml-example-7]]. |
| | ** From our testing, ChromeVox and JAWS are not able to read the formulas generated by the MathML mode. |
|
| |
|
| | ==Test pages == |
|
| |
|
| <math>{\text{engine}}\;\overset{\textstyle\tau}{\underset{\textstyle\omega}{-\!\!\!-\!\!\!-\!\!\!\rightharpoondown}}\;\text{wheel}</math>
| | To test the '''MathML''', '''PNG''', and '''source''' rendering modes, please go to one of the following test pages: |
| <!--
| | *[[Displaystyle]] |
| τ
| | *[[MathAxisAlignment]] |
| engine ---------- wheel
| | *[[Styling]] |
| ω /
| | *[[Linebreaking]] |
| -->
| | *[[Unique Ids]] |
| | *[[Help:Formula]] |
|
| |
|
| | | *[[Inputtypes|Inputtypes (private Wikis only)]] |
| A full arrow is used to indicate a measurement, and are referred to as signal bonds, because the amount of power flowing through the bond is insignificant. However, it may be useful to certain physical components. For example, the power required to activate a relay is orders of magnitude smaller than the power through the relay itself; making it relevant only to convey whether the switch is on, not the power consumed by it.
| | *[[Url2Image|Url2Image (private Wikis only)]] |
| | | ==Bug reporting== |
| | | If you find any bugs, please report them at [https://bugzilla.wikimedia.org/enter_bug.cgi?product=MediaWiki%20extensions&component=Math&version=master&short_desc=Math-preview%20rendering%20problem Bugzilla], or write an email to math_bugs (at) ckurs (dot) de . |
| <math>{\text{wheel}}\;\overset{\textstyle}{\underset{\textstyle\omega}{-\!\!\!-\!\!\!-\!\!\!\rightarrow}}\;\text{tachometer}</math>
| |
| | |
| | |
| <!--
| |
| \
| |
| wheel ---------- tachometer
| |
| ω /
| |
| -->
| |
| | |
| ==Junctions==
| |
| Power bonds may join at one of two kinds of junctions: a '''0 junction''' and a '''1 junction'''.
| |
| * In a 0 junction, the flow sums to zero and the efforts are equal. This corresponds to a node in an electrical circuit (where [[Kirchhoff's current law]] applies), or to a mechanical "stack" in which all the forces are equal. | |
| * In a 1 junction, the efforts sum to zero and the flows are equal. This corresponds to an electrical loop, or to a [[force]] balance at a mass in a mechanical system.
| |
| | |
| For an example of a 1 junction, consider a resistor in series:
| |
| | |
| | |
| <math>\frac{v_1\qquad}{i_1 \qquad}\overset{\textstyle R}{\!\!\and\!\!\and\!\!\and\!}\frac{\qquad v_2}{\qquad i_2=i_1}</math>
| |
| <!--
| |
| v1 ---\/\/\/\---v2
| |
| i1 R i2=i1
| |
| -->
| |
| | |
| | |
| In this case, the flow (current) is constrained to be the same at all points, and when the implied current return path is included the efforts sum to zero. Power can be computed at points 1 and 2, and in general some power will be dissipated in the resistor. As a bond graph, this becomes
| |
| | |
| | |
| <math>\overset{\textstyle v_1}{\underset{\textstyle i_1}{-\!\!\!-\!\!\!-\!\!\!\rightharpoondown}}
| |
| \stackrel{\textstyle\stackrel{\textstyle R}{\upharpoonright}}{1}
| |
| \overset{\textstyle v_2}{\underset{\textstyle i_2}{-\!\!\!-\!\!\!-\!\!\!\rightharpoondown}}
| |
| </math>
| |
| <!--
| |
| R
| |
| |\
| |
| v1 | v2
| |
| ------ 1 ------
| |
| i1 / i2 /
| |
| -->
| |
| | |
| | |
| From an electrical point of view, this diagram may seem counterintuitive in that flow is not preserved in the same way across the diagram. It may be helpful to consider the 1 junction as [[daisy chain (electrical engineering)|daisy chain]]ing the bonds it connects to and power bond up to the ''R'' as a resistor with a lead returning back down.
| |
| <!-- ... , so the above is equivalent to
| |
| R
| |
| +\/\/\+
| |
| \ /
| |
| | |
| |
| v1 | | v2
| |
| ------+ +------
| |
| i1 i2
| |
| -->
| |
| | |
| Regardless of the problem domain, bond graph modeling typically proceeds from the identification of key 1 and 0 junctions associated with identifiable efforts and flows in the system, then identifying the dissipative (''R'') and storage elements (''I'' and ''C''), power sources, and drawing bonds wherever power or information flow between the sources, junctions, and storage/dissipative components. Then sign conventions (arrow heads), and causality are assigned, and finally equations describing the behavior of the system can be derived using the graph as a kind of guide or map.
| |
| | |
| === 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 the capacitor. Similarly, an inductor cannot change flux instantly and so any component in series with an inductor will necessarily have the same flow as the inductor. Because capacitors and inductors are passive devices, they cannot maintain their respective voltage and flow indefinitely—the components to which they are attached will affect their respective voltage and flow, but only indirectly by affecting their current and voltage respectively.
| |
| | |
| Note: Causality is a symmetric relationship. When one side "causes" effort, the other side "causes" flow.
| |
| | |
| Active components such as an ideal voltage or current source are also causal.
| |
| | |
| In bond graph notation, a '''causal stroke''' may be added to one end of the power bond to indicate that the opposite end is defining the effort. Consider a constant-torque motor driving a wheel, i.e. a source of effort (''SE''). That would be drawn as follows:
| |
| | |
| | |
| <math>\begin{array}[b]{r}\text{motor}\\SE\end{array}\;
| |
| \overset{\textstyle\tau}{\underset{\textstyle\omega}{-\!\!\!-\!\!\!-\!\!\!\rightharpoonup\!\!\!|}}\;\text{wheel}</math>
| |
| <!--
| |
| | |
| motor τ \|
| |
| SE ----------| wheel
| |
| ω |
| |
| -->
| |
| | |
| | |
| Symmetrically, the side with the causal stroke (in this case the wheel) defines the flow for the bond.
| |
| | |
| Causality results in compatibility constraints. Clearly only one end of a power bond can define the effort and so only one end of a bond can have a causal stroke. In addition, the two passive components with time-dependent behavior, ''I'' and ''C'', can only have one sort of causation: an ''I'' component determines flow; a ''C'' component defines effort. So from a junction, ''J'', the only legal configurations for ''I'' and ''C'' are
| |
| | |
| | |
| <math>J\;
| |
| \overset{\textstyle}{\underset{\textstyle}{-\!\!\!-\!\!\!-\!\!\!\rightharpoonup\!\!\!|}}\;I
| |
| \qquad\text{and}\qquad
| |
| J\;
| |
| \overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!\rightharpoonup}}\;C</math>
| |
| <!--
| |
| \|
| |
| J -------| I
| |
| |
| |
| | |
| | \
| |
| J |------- C
| |
| |
| |
| -->
| |
| | |
| | |
| A resistor has no time-dependent behavior: you can apply a voltage and get a flow instantly, or apply a flow and get a voltage instantly, thus a resistor can be at either end of a causal bond:
| |
| | |
| | |
| <math>J\;
| |
| \overset{\textstyle}{\underset{\textstyle}{-\!\!\!-\!\!\!-\!\!\!\rightharpoonup\!\!\!|}}\;R
| |
| \qquad \text{and} \qquad
| |
| J\;
| |
| \overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!\rightharpoonup}}\;R</math>
| |
| <!--
| |
| \| | \
| |
| J -------| R J |-------- R
| |
| | |
| |
| -->
| |
| | |
| | |
| Sources of flow (''SF'') define flow, sources of effort (''SE'') define effort. Transformers are passive, neither dissipating nor storing energy, so causality passes through them:
| |
| | |
| | |
| <math>\;\overset{\textstyle}{\underset{\textstyle}{-\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!|}}\;
| |
| \dot{T}\dot{F}
| |
| \;\overset{\textstyle}{\underset{\textstyle}{-\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!|}}\;
| |
| \qquad \text{or} \qquad
| |
| \;\overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}\;
| |
| \dot{T}\dot{F}
| |
| \;\overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}\;
| |
| </math>
| |
| <!--
| |
| | .. | | .. |
| |
| ------| TF -----| or |------ TF |------
| |
| | | | |
| |
| -->
| |
| | |
| | |
| A gyrator transforms flow to effort and effort to flow, so if flow is caused on one side, effort is caused on the other side and vice versa:
| |
| | |
| | |
| <math>\;\overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}\;
| |
| \dot{G}\dot{Y}
| |
| \;\overset{\textstyle}{\underset{\textstyle}{-\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!|}}\;
| |
| \qquad \text{or} \qquad
| |
| \;\overset{\textstyle}{\underset{\textstyle}{-\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!|}}\;
| |
| \dot{G}\dot{Y}
| |
| \;\overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}\;
| |
| </math>
| |
| <!--
| |
| | .. | | .. |
| |
| |------ GY -----| or ------| GY |------
| |
| | | | |
| |
| -->
| |
| | |
| | |
| ; Junctions
| |
| In a 0-junction, efforts are equal; in a 1-junction, flows are equal. Thus, with causal bonds, only one bond can cause the effort in a 0-junction and only one can cause the flow in a 1-junction. Thus, if the causality of one bond of a junction is known, the causality of the others is also known. That one bond is called the '''strong bond'''
| |
| | |
| | |
| <math>\text{strong bond}\rightarrow\;\dashv\!\overset{\textstyle \top}{\underset{\textstyle\bot}{0}}\!\dashv
| |
| \qquad\text{and}\qquad
| |
| \text{strong bond}\rightarrow\;\vdash\!\overset{\textstyle \bot}{\underset{\textstyle\top}{1}}\!\vdash</math>
| |
| <!--
| |
| ___
| |
| |
| |
| |
| |
| |
| |
|
| |
| ------| 0 ------|
| |
| strong bond ^
| |
| |
| |
| |
| |
| |
| |
| ---
| |
| | |
| | |
| |
| |
| |
| |
| |
| |
| ---
| |
| |------ 1 |------
| |
| strong bond ^ ___
| |
| |
| |
| |
| |
| |
| |
| -->
| |
| | |
| | |
| One can continue, assigning causality using the above rules. Any model which results in inconsistent causality is not physically valid. For example, consider an inductor in series with an ideal current source—a physically impossible configuration. The bond graph would look like
| |
| | |
| | |
| <math>SF\;\overset{\textstyle}{\underset{\textstyle}{-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}
| |
| 1
| |
| \overset{\textstyle}{\underset{\textstyle}{-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}\;I
| |
| </math>
| |
| <!--
| |
| SF ------ 1 ------ I
| |
| -->
| |
| | |
| | |
| Assigning causality to the source bond we get:
| |
| | |
| | |
| <math>SF\;\overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}
| |
| 1
| |
| \overset{\textstyle}{\underset{\textstyle}{-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}\;I
| |
| </math>
| |
| <!--
| |
| SF |----- 1 ------ I
| |
| -->
| |
| | |
| | |
| Propagating the causality through the junction gives
| |
| | |
| | |
| <math>SF\;\overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}
| |
| 1
| |
| \overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}\;I
| |
| </math>
| |
| <!--
| |
| SF |----- 1 |----- I
| |
| -->
| |
| | |
| | |
| But assigning causality to the inductor gives
| |
| | |
| | |
| <math>SF\;\overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!\!\!-}}
| |
| 1
| |
| \overset{\textstyle}{\underset{\textstyle}{|\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!\!\!-\!|}}\;I
| |
| </math>
| |
| <!--
| |
| SF |----- 1 |----| I
| |
| -->
| |
| | |
| | |
| which is invalid, because the causality on the right bond is redundant. This ability to automatically identify impossible configurations is a major advantage of bond graphs.
| |
| | |
| In contrast, one can inadvertently draw an electrical diagram or mechanical schematic that, while possible to construct, would not behave as modeled. For example, one can connect a capacitor directly to a battery, but the assumption that the battery is an ideal voltage source would be violated corresponding with the fact that the theoretical flux would be infinite. The bond graph would tell you that a resistor needs to be put in series with the capacitor to keep the model realistic.
| |
| | |
| ==Example==
| |
| {{Expert-subject|Science|date=November 2008}}
| |
| Consider a simple [[RC circuit]]:<ref>{{cite web|url=http://www.mech.gla.ac.uk/Research/Control/Publications/Reports/csc99005.ps |title=University of Glasgow :: School of Engineering :: Former Department sites |publisher=Mech.gla.ac.uk |date= |accessdate=2012-08-28}}</ref>
| |
| | |
| R
| |
| i1 --\/\/\-----+------ i2 →
| |
| v1 | v2
| |
| C = ↓ic
| |
| |
| |
| ground ----+------
| |
| | |
| where v1 represents a voltage source that is implied as being connected to the resistor, and v2 represents an "output" measurement point.
| |
| | |
| If one follows the "flows" through the circuit diagram then the basic structure of 1 (common flow) and 0 (common effort) nodes can be identified. In general, one should be looking for common (shared) efforts and common (shared) flows, but commonality may not be immediately obvious to the new practitioner, so to get started one can place a 0 node wherever a distinct effort potential (voltage) can be identified, and 1 nodes wherever a flow is identified, and then bonds between the 0 and 1 nodes:
| |
| | |
| i1 v1 ir v2 i2
| |
| 1 --- 0 --- 1 --- 0 ---- 1
| |
| |
| |
| 1 ic
| |
| | |
| Note that i1 and ic both involve current flows to ground, so no power flows there, so no bonds are shown for those power flows.
| |
| | |
| Next, one can add the power dissipating elements next to and connected to the 1 junctions representing flows through components. The connecting bonds represent the power flows that are generated, stored or dissipated by those elements.
| |
| | |
| Se,in R
| |
| | |
| |
| | | v2 i2
| |
| 1 --- 0 --- 1 --- 0 ---- 1
| |
| i1 v1 ir |
| |
| |
| |
| 1 --- C
| |
| ic
| |
| | |
| Next, 0 or 1 junctions that only have one or two bonds can be optimized out of existence because the power flows on those bonds are identical.
| |
| | |
| R
| |
| |ir
| |
| v1 | v2 i2
| |
| Se,in ---- 1 --- 0 --- 1
| |
| i1 |
| |
| | ic
| |
| C
| |
| | |
| Note that because v2 is measured, we can equivalently assume that i1=0 or that the output bond has a full arrow, and we can re-arrange the bonds for a more regular graph, and we can assign direction of power flow:
| |
| | |
| R C
| |
| |\ |\
| |
| |ir |ic
| |
| v1 \ i2
| |
| Se,in ----- 1 ----- 0 ----- out
| |
| i1 / / /
| |
| | |
| The half-arrows on the remaining 1 junction are assigned so that the power flows into passive elements (R and C), out of the source of effort, and arbitrarily for flows between the 0 and 1 junctions. If you can anticipate a convention that causes them to be positive then interpreting results will usually be easier. For example, the power flowing between the 1 and 0 junctions should flow away from the 1 junction like the power flowing to the resistor, so set the half-arrow to reflect that.
| |
| | |
| Causality is defined by first setting the causality for reactive elements and power sources according to their behavior. Sources of effort and capacitors should impose effort (causality stroke opposite the source), and sources of flow and inertial elements should impose flow (causality stroke near the source). Once this is done, all 0 junctions should have one causal stroke on the near end of its bonds, and all 1 junctions should have only one causal stroke on the opposite end of any of its bonds. Causality for bonds on resistive elements can go whichever way satisfies the junction at the other end of the bond.
| |
| | |
| R C
| |
| ---
| |
| |\ |\
| |
| | |ic
| |
| ---
| |
| v1 | | v2 \
| |
| Se,in ------| 1 |----- 0 ------- out
| |
| i1 /| | / i2 /
| |
| | |
| Note that the output is assumed to draw no power from the circuit, so a full arrow is used instead of a half-arrow. For the purpose of modeling dynamics, this means the output full bond can be ignored and the diagram is simplified (though the variables have now been renumbered):
| |
| | |
| R
| |
| ---
| |
| |\
| |
| v3 | i3
| |
| |
| |
| v1 | | v2
| |
| S_e,in ------| 1 |----- C
| |
| i1 /| | i2 /
| |
| | |
| Although a systematic approach to formulating the bond graph was described above, in retrospect the central 1 junction in the final bond graph reflects the fact that the same current flows through the input voltage source, the resistor, and the capacitor. One attraction of bond graphs is that experienced bond graph users can bypass many steps on their way to modeling the dynamic system.
| |
| | |
| Having completed and simplified the bond graph, the diagram can now be used for its intended purpose: guiding the practitioner through the generation of differential equations that describe the dynamics of the system. This is accomplished by starting at each of the reactive elements in turn and working through the implications of each bond and junction. This process can, in more complicated diagrams, involve traversing the bonds in both directions at times, but having properly defined causality will prevent this apparent retracing of steps from leading to algebraic loops or integral equations.
| |
| | |
| <math>S_e,in</math> is a "source of effort" (voltage source) that forces the dynamics. Note that the causality for a source of effort imposes effort on the junction. To avoid formulating integral equations, the causality stroke for the capacitor must also impose effort on the junction. Since every 1 junction should have exactly one flow causal stroke, bond 3 must show flow imposed by the R element (causal stroke away from 1 junction).
| |
| | |
| To derive the differential equation, start on bond 2 (attached to a reactive element) and write the differential equation for that reactive element:
| |
| | |
| <math>\dot{v}_2 = {1 \over C} i_2 </math>
| |
| | |
| One can follow an invisible path from <math>v_2</math> through the C and back to the <math>i_2</math> corresponding to writing this equation down. Because bond 2 is attached to a 1 junction (shared flow) where bond 3 determines the flow, we can extend our path through the diagram from the <math>i_2</math> of bond 2 to the <math>i_3</math> of bond 3 following the flow causal stroke, obtaining <math>i_2 = i_3</math>. Note that we ignore the half-arrows at this point because all flows on a 1 junction are equal, regardless of direction of power flow. Substituting, we expand the differential equation with more information about the system:
| |
| | |
| <math>\dot{v}_2 = {1 \over C} i_3 </math>
| |
| | |
| At this point, we can follow the causality path from <math>i_3</math> through R and back to <math>v_3</math>, writing the corresponding relation <math>i_3 = {v_3 \over R}</math>. We can substitute this relation into the differential equation:
| |
| | |
| <math>\dot{v}_2 = {1 \over C} {v_3 \over R} </math>
| |
| | |
| Continuing to follow causality, the effort on bond 3 (<math>v_3</math>) is related to all the other efforts on the 1 junction since they must all sum to zero. That is, using the half-arrows to define signs we can write <math>v_3 = v_1 - v_2</math> and substitute this into the differential equation:
| |
| | |
| <math>\dot{v}_2 = {1 \over C} { { v_1 - v_2 } \over R} </math>
| |
| | |
| Since <math>v_1</math> is an input, and <math>v_2</math> is a [[State space representation|state variable]] (effort on a C element), the equation is completely expanded. Had it not been completely expanded, it might be necessary to follow two causality paths beyond this point to eventually completely expand the differential equation.
| |
| | |
| For systems with multiple I and/or C elements, the process can be repeated once for each derivative of a state variable to form a system of (typically but not necessarily linear) differential equations. For example, suppose we put two of these RC circuits in series:
| |
| | |
| R → i2 R
| |
| i1 --\/\/\-----+------------\/\/\-----+------ i3 →
| |
| v1 | v2 | v3
| |
| C = ↓ic C = ↓ic
| |
| | |
| |
| ground ----+----------------------+---------
| |
| | |
| Although this circuit was constructed as two cascaded RC circuits, the behavior of the first RC circuit is now complicated by the fact that power flows out of its "output" where before no power flowed there. This changes the overall dynamics of this system, but bond graphs can guide the formation of correct equations anyway. The corresponding bond graph looks like
| |
| | |
| R C R C
| |
| --- ---
| |
| |\ |\ |\ |\
| |
| 6 | 4 | 2 | 3 |
| |
| --- ---
| |
| 1 | | 5 7 | | 8 9 \
| |
| SE ------| 1 |------ 0 ------| 1 |------ 0 ------ out
| |
| /| | / /| | / /
| |
| | |
| where the ever-present effort/flow (voltage/current in this case) variables have been dropped and the bonds are simply numbered per typical bond graph convention (in this case the first four numbers were placed to avoid confusion with the signal numbering in the circuit diagram). Again, the output is assumed to draw no power so bonds 8 and 9 can effectively be removed in favor of a direct connection to bond 3:
| |
| | |
| R C R
| |
| --- ---
| |
| |\ |\ |\
| |
| 6 | 4 | 2 |
| |
| ---
| |
| 1 | | 5 7 | | 3
| |
| SE ------| 1 |------ 0 ------| 1 |------ C
| |
| /| | / /| | /
| |
| | |
| As before, we can start with the derivative of a [[State space representation|state variable]] (<math>v_4</math>) and follow the bonds to form equations:
| |
| | |
| <math>\dot{v}_4 = {1 \over C_4} i_4 = {1 \over C_4} (i_5 - i_7) = {1 \over C_4} (i_6 - i_2) </math>
| |
| | |
| Continuing the expansion:
| |
| | |
| <math>\dot{v}_4 = {1 \over C_4} ({v_6 \over R_6} - {v_2 \over R_2}) </math>
| |
| | |
| <math>\dot{v}_4 = {1 \over C_4} ({{v 1 - v 5} \over R_6} - {{v 7 - v 3} \over R_2}) </math>
| |
| | |
| <math>\dot{v}_4 = {1 \over C_4} ({{v 1 - v 4} \over R_6} - {{v 4 - v 3} \over R_2} )</math>
| |
| | |
| At this point, <math>\dot{v}_4</math> is defined in terms of inputs and state variables.
| |
| | |
| Similarly, <math>\dot{v}_3</math> can be obtained in terms of inputs and state variables:
| |
| | |
| <math>\dot{v}_3 = -{1 \over {C_3 R_2}} v_4 + {1 \over {C_3 R_2}} v_3 </math>
| |
| | |
| It is conventional in [[State space representation|state space representation]] to group terms by state variables and inputs:
| |
| | |
| <math>\dot{v}_4 = -({1 \over {C_4 R_6}} + {1 \over {C_4 R_2}}) v_4 + {1 \over {C_4 R_2}} v_3 + { 1 \over {C_4 R_6}} v_1</math>
| |
| | |
| and to express the equations in matrix form:
| |
| | |
| :<math>\begin{bmatrix}\dot{v}_4 \\ \dot{v}_3\end{bmatrix} = \begin{bmatrix}-({1 \over {C_4 R_6}} + {1 \over {C_4 R_2}}) & {1 \over {C_4 R_2}} \\ -{1 \over {C_3 R_2}} & {1 \over {C_3 R_2}} \end{bmatrix} \begin{bmatrix}v_4\\v_3\end{bmatrix} + \begin{bmatrix}{ 1 \over {C_4 R_6} } \\ 0 \end{bmatrix} v_1</math>.
| |
| | |
| ==Other components==
| |
| ===Transformer===
| |
| A transformer adds no power but transforms it, much as an ideal electrical [[transformer]] or a [[lever]].
| |
| | |
| Denoted
| |
| r
| |
| e1 .. e2
| |
| ------- TF ------
| |
| f1 f2
| |
| where the ''r'' denotes the modulus of the transformer. This means
| |
| :<math>f_2 = r f_1 \,</math>
| |
| and
| |
| :<math>e_2 = \frac{1}{r} e_1 \,</math>.
| |
| | |
| ===Gyrator===
| |
| A [[gyrator]] relates flow to effort. It also adds no power and is written
| |
| e1 μ e2
| |
| ------- GY ------
| |
| f1 f2
| |
| meaning that
| |
| :<math>e_2 = \mu f_1 \,</math>
| |
| and
| |
| :<math>e_1 = \mu f_2 \,</math>.
| |
| | |
| ==See also==
| |
| *[[AMESim]] simulation software based on the bond graph theory
| |
| *[[Hybrid bond graph]]
| |
| | |
| ==International Conferences on Bond Graph Modeling (ECMS & ICBGM)==
| |
| | |
| A bibliography on Bond Graph modeling may be extracted from the following conferences :
| |
| *[http://www.scs-europe.net/conf/ecms2008/bondg.html ECMS-2008 22nd European Conference on Modelling and Simulation, June 3-6, 2008 Nicosia, Cyprus]
| |
| *[http://www.scs.org/confernc/wmc/wmc07/icbgm07_FinalProgram_2.PDF ICBGM-2007: 8th International Conference on Bond Graph Modeling And Simulation, January 15-17, 2007, San Diego, California, U.S.A.]
| |
| *[http://www.scs-europe.net/services/ecms2006/accepted%20papers.html ECMS-2006 20TH European Conference on Modelling and Simulation, May 28-31, 2006, Bonn, Germany]
| |
| *[http://www.lsis.org/~i3m05/progIMAACA.html IMAACA-2005 International Mediterranean Modeling Multiconference]
| |
| *[http://gaia.csus.edu/~grandajj/icbgm05_FinalProgram.htm ICBGM-2005 International Conference on Bond Graph Modeling and Simulation, January 23-27, 2005, New Orleans, Louisiana, U.S.A.] - [http://www.scs.org/search.cfm?startrow=1&continueSearch=1 Papers]
| |
| *[http://gaia.csus.edu/~grandajj/icbgm03_FinalProgram.htm ICBGM-2003 International Conference on Bond Graph Modeling and Simulation (ICBGM'2003) January 19-23, 2003, Orlando, Florida, USA] - [http://www.scs.org/search.cfm?presearch=db&dbrec=15 Papers]
| |
| *[http://www.scs-europe.net/conf/ess2002/accepted.html 14TH European Simulation symposium October 23-26, 2002 Dresden, Germany]
| |
| *[http://www.scs-europe.net/conf/ess2001/index.htm ESS'2001 13th European Simulation symposium, Marseilles, France October 18-20, 2001]
| |
| *[http://gaia.csus.edu/~grandajj/WMC2001-ICBGM.htm ICBGM-2001 International Conference on Bond Graph Modeling and Simulation (ICBGM 2001), Phoenix, Arizona U.S.A.]
| |
| *[http://www.scs-europe.net/conf/esm2000/time_sched1.htm European Simulation Multi-conference 23-26 May, 2000, Gent, Belgium]
| |
| *[http://www.scs-europe.net/conf/ess99/finproq.html 11th European Simulation symposium, October 26-28, 1999 Castle, Friedrich-Alexander University,Erlangen-Nuremberg, Germany ]
| |
| *[http://www-control.eng.cam.ac.uk/extras/conferences/ICBGM99 ICBGM-1999 International Conference on Bond Graph Modeling and Simulation January 17-20, 1999 San Francisco, California]
| |
| *[http://www.scs-europe.net/conf/ess97/fin-mon.html ESS-97 9TH European Simulation Symposium and Exhibition Simulation in Industry, Passau, Germany, October 19-22, 1997]
| |
| *[http://www.ece.arizona.edu/~cellier/icbgm_97_final.html ICBGM-1997 3rd International Conference on Bond Graph Modeling And Simulation, January 12-15, 1997, Sheraton-Crescent Hotel, Phoenix, Arizona]
| |
| *[http://www.scs-europe.net/conf/esm97/fintue.html 11th European Simulation Multiconference Istanbul, Turkey, June 1-4, 1997]
| |
| *[http://www.scs-europe.net/conf/esm96/esm96fin.html ESM-1996 10th annual European Simulation Multiconference Budapest, Hungary, June 2-6, 1996]
| |
| *ICBGM-1995 Int. Conf. on Bond Graph Modeling and Simulation (ICBGM’95), January 15–18, 1995,Las Vegas, Nevada.
| |
| | |
| ==References==
| |
| {{reflist}}
| |
| | |
| == Further reading ==
| |
| * Paynter, Henry M., ''Analysis and design of engineering systems'', The M.I.T. Press, ISBN 0-262-16004-8.
| |
| * Karnopp, Dean C., Margolis, Donald L., Rosenberg, Ronald C., 1990: ''System dynamics: a unified approach'', Wiley, ISBN 0-471-62171-4.
| |
| * Thoma, Jean, 1975: ''Bond graphs: introduction and applications'', Elsevier Science, ISBN 0-08-018882-6.
| |
| * Gawthrop, Peter J. and Smith, Lorcan P. S., 1996: ''Metamodelling: bond graphs and dynamic systems'', Prentice Hall, ISBN 0-13-489824-9.
| |
| * Brown, F. T., 2007: ''Engineering system dynamics – a unified graph-centered approach'', Taylor & Francis, ISBN 0-8493-9648-4.
| |
| * Amalendu Mukherjee, Ranjit Karmakar (1999): ''Modeling and Simulation of Engineering Systems Through Bondgraphs'' CRC Press LLC, 2000 N.W. Corporate Blvd., Boca Raton, Florida 33431. ISBN 978-0-8493-0982-3
| |
| * Gawthrop, P. J. and Ballance, D. J., 1999: ''Symbolic computation for manipulation of hierarchical bond graphs'' in ''Symbolic Methods in Control System Analysis and Design'', N. Munro (ed), IEE, London, ISBN 0-85296-943-0.
| |
| * Borutzky, Wolfgang, 2010: ''Bond Graph Methodology'', Springer, ISBN 978-1-84882-881-0.
| |
| | |
| == External links ==
| |
| *[http://www.bondgraph.org Complete Bond Graph Overview]
| |
| *[http://www.bondgraph.com CAMP-G Bond Graph Software]
| |
| *[http://www.20sim.com 20-sim Bond Graph Software]
| |
| *MTT [http://mtt.sourceforge.net Model Transformation Tools]
| |
| *[http://www.htcinfo.com/download.php SYMBOLS Shakti] SYstem Modeling by BOnd graph Language and Simulation *BROKEN*
| |
| *[[Mathematica]] Bond Graph Toolbox allows bond graph design, analysis and simulation in a native symbolic environment [http://www.virtualdynamics.com/softwares.html]
| |
| *[http://eeiwzg.et.tu-dresden.de/ae2_files/ae_8_1e.htm Bond Graph library BG V. 2.1] Simulink add-on block library for easy simulation, design and analysis using LTI viewer
| |
| *[http://sourceforge.net/projects/libbondgraph/ libBondGraph] C++ library to create and simulate standard and hybrid bond graph
| |
| *[http://sourceforge.net/projects/texbondgraph/ texBondGraph] Class to draw bond graphs in LaTeX documents
| |
| | |
| {{DEFAULTSORT:Bond Graph}}
| |
| [[Category:Scientific modeling]]
| |
| [[Category:Diagrams]]
| |
| | |
| [[fr:Graphe de liaisons]]
| |
| [[nl:Bondgraaf]]
| |
| [[zh:鍵結圖]]
| |