Talk:Bond graph

Causal stroke semantics
What does the causal stroke really mean? I understand what an ideal current source and ideal voltage source is, but what does it mean to have a causal stroke on a resistor? Do causal strokes exist solely to make it easy to convert a bond graph to a block diagram? —Ben FrantzDale 18:15, 17 April 2007 (UTC)

It is my understanding that the causal stroke indicates the preferred direction for formulating differential equations. Causal strokes are assigned beginning from sources and state variables (C and L), and causality on other bonds are derived from those preferred causalities using well-defined rules. By following the causal strokes from each state variable (C or L) through the bond graph using the "preferred" direction for that state variable (effort or flow), the effort-flow relationships defined by encountered nodes can be used to formulate equations, and the resulting equations will be in derivative form if the state variable causalities follow the preferred direction. Failing to follow the preferred direction results in integral equations, which require (numerically unstable) differentiation to solve. The presence of a particular causal stroke on an R element is entirely due to the causal dependencies from whatever state variables are nearby. —Preceding unsigned comment added by 24.4.2.123 (talk) 01:08, 1 October 2007 (UTC)

Symbols
From : U022A2, RIGHT TACK                           , vdash, RightTee U022A3, LEFT TACK                            , dashv, LeftTee U022A4, DOWN TACK                            , top, DownTee U022A5, UP TACK                              , bottom, bot, perp, UpTee U02951, UP BARB LEFT DOWN BARB LEFT HARPOON  , LeftUpDownVector U02952, LEFTWARDS HARPOON WITH BARB UP TO BAR, LeftVectorBar U02953, RIGHTWARDS HARPOON WITH BARB UP TO BAR, RightVectorBar U02954, UPWARDS HARPOON WITH BARB RIGHT TO BAR, RightUpVectorBar U02955, DOWNWARDS HARPOON WITH BARB RIGHT TO BAR, RightDownVectorBar U02956, LEFTWARDS HARPOON WITH BARB DOWN TO BAR, DownLeftVectorBar U02957, RIGHTWARDS HARPOON WITH BARB DOWN TO BAR, DownRightVectorBar U02958, UPWARDS HARPOON WITH BARB LEFT TO BAR, LeftUpVectorBar U02959, DOWNWARDS HARPOON WITH BARB LEFT TO BAR, LeftDownVectorBar These will be useful. —Ben FrantzDale 18:10, 29 April 2007 (UTC)

Hua?
I don't understand most of these bullet items. I'll comment on each below: Can anyone explain some of these? I think I'll just remove the crazy ones from the article for now. —Ben FrantzDale 20:45, 30 April 2007 (UTC)
 * They provide a visual representation of the system. -- What, a block diagram or wiring digram isn't visual?
 * Since they work on the principle of conservation of energy, it is difficult to accidentally introduce extra energy into a system. -- True.
 * The bonds are symbols which contain meaning. -- What's this supposed to mean?
 * They separate the structure from causality. -- What's this supposed to mean?
 * Since each bond represents a bi-directional flow, systems which produce a 'back force' (e.g. a motor back emf) on the input are easily modeled without introducing extra feedback loops. -- True.
 * Hierarchy can be used to manage large system models. -- True, but also true of block diagrams and wiring diagrams.

Explanation

 * Bond Graphs provide a visual representation of the system. Yes, block diagrams and wiring diagrams are also visual. However, block diagrams often bear little visual similarity to the system that they represent. For example, summation blocks rarely correspond to an actual component within the physical system. The level of abstraction is often greater for a block diagram than for a wiring diagram or a bond graph, both of which can usually be superimposed on to a schematic of the physical system.

A significant advantage of bond graphs over wiring diagrams in many contexts is their domain neutrality. Consider a solenoid valve in a pipe. Wiring diagrams can tell you about the electrical power leading to the valve, but tell you nothing about the fluid flow through the pipe. A single bond graph can describe the entire system - both electrical and fluid parts.


 * Bond graphs symbols contain meanings. An R component dissipates energy, like a resistor in an electrical circuit, or friction in a mechanical system. C and I components store energy, like capacitors and inductors in an electrical circuit, or springs and masses in a mechanical system. TF and GY components transform energy, like electrical transformers and motors, or mechanical pivots and gears. Each of these has a physical meaning. What does a block-diagram's summation block mean in terms of a physical system?


 * Separation of structure from causality. Consider a simple linear electrical resistor, with resistance R, voltage V and current i. Ohms law tells us that:

V = i R or i = V/R

For a block diagram, or C++ program, you must decide which of these two forms to use when creating the model. You must decide the input and output (i.e. the causality) at the outset. But a bond graph is acausal. When creating the model, if you depict a bond carrying power into a R component (resistor), you do not have to decide whether current or voltage is the input:

The model is simply:

1 ---/ R

Where the 1 junction represents the wire carrying the power to the resistor. You can embed this within a larger system model. Later, you may assign a causality, by placement of a causal stroke:

1 ---/| R     =>   i = V/R whereas 1|---/ R      =>   V = i R

The causal stroke may be assigned manually, if you have a preference, or automatically, following simple rules to fit with the context in which the components find themselves. But crucially, you do not have to change the model. And you do not need to worry about which will be the input and which will be the output when initially creating the model. Thus the bond graph separates the structure (a relationship between current and voltage that leads to a dissipation of energy) from the causality (assignment of input and output).

In a more complex system, you can define the relationships between all the components without having to worry about which variables might be inputs and which outputs. Later, when you come to do something with the model - perhaps create a simulation, or generate transfer functions, a set of ordinary differential equations, or differential algebraic equations - you can assign the most appropriate causality for the task at hand.


 * Hierarchy. Block diagrams can be hierarchical. However, if you switch the inputs and outputs of one component, you then have to make changes to the neighbouring components to accommodate that. Because a bond graph is acausal, you can change one component in isolation. Thus subsystems can be truly encapsulated, leading to a genuinely hierachical system rather than one in which different parts of the same system are packaged into different parcels.

For a more in depth explanation of these ideas, if you have access to IEEE journals, you may wish to look at Bond Graph Modeling: a tutorial introduction for control engineers http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4140745

Geraint Bevan 00:46, 20 October 2007 (UTC)

Suggestions
First of all, I'm a physics student with no prior knowledge of bond graphs looking for a quick overview of the subject, so I'd presume I'm in the prime target audience for this article (those interested in its content, but not familiar with it, much less experts at the subject). The article in its current state in difficult to follow. A LOT of things could help it. One of the main problem is that it gives only cursory, at best, definitions of the technical terms and ideas it uses extensively. Most blatantly, the article doesn't define its use of bond, which seems integral to the concept of a bond graph. The first thing a visitor to the article reads about he a bond is: "Since each bond represents a bi-directional flow..." This is not a good way to introduce the concept to an ignorant reader - the term bond should be defined explicitly and clearly (see example below). Also, the reader will be further confused by the implication that these bonds have to do with flow in the technical sense with which the word is used below. If flow is to be used as lexicon in this article, it shouldn't also be used for its generic meaning. This is just one example out of many of poor definitions and bad use of language.

Here's a brief sketch of some positive changes that could be made -
 * 1) Actual pictures of bond graphs instead of cluttered ASCII art. An above user listed some MathML characters which could help.  I'll try those or Latex in a test below here.
 * 2) A definition of bond, something like "The transfer of energy between two components in an electrical, mechanical, hydraulic, or similar system is called a bond. It is represented in a bond graph of the system by a line or arrow connecting the two components..." Sorry if this isn't 100% correct, I'm not an expert.
 * 3) Better organization, with beginning Table of Contents

Jackwimberley (talk) 17:08, 23 June 2008 (UTC)

Latex Testing
I tried recreating some of the diagrams with Latex. It always runs into the problem that its hard to align all the symbols in two dimensions. I could only do it for some of the simple graphs:

Example 1-Junction

$$ \begin{align} & R \\ & \upharpoonright \\ SE ~ \underset{I_1}{\overset{V_1}{\rightharpoondown}} ~ &1J ~ \underset{I_2}{\overset{V_2}{\rightharpoondown}} ~ Z \end{align} $$

Example RC Circuit

$$ \begin{align} & R \\ \overset{V_3}{} & \overset{--}{\upharpoonright} \overset{I_3}{} \\ SE ~ \underset{I_1}{\overset{V_1}{\rightharpoondown}}| ~ &1J ~ | \underset{I_2}{\overset{V_2}{\rightharpoondown}} ~ C \end{align} $$

129.116.89.112 (talk) 20:27, 24 June 2008 (UTC)

There exists a package which makes it easy to create bond graphs (and block diagrams, for that matter), using the metapost language. Here. Resulting ps files can easily be embedded into latex documents.

I wrote a package to easily create bond graph in LaTeX documents. I placed the package Here. It have just been submitted to ctan. — Preceding unsigned comment added by Jfdupuis (talk • contribs) 12:58, 9 March 2011 (UTC)

The content is good and very helpful. I would add some info about simplification rules. —Preceding unsigned comment added by 92.81.196.116 (talk) 21:17, 5 February 2010 (UTC)

Use of bond graphs in practice
Can anyone point to some instances where bond graphs are used regularly? I am a mechanical engineering Ph.D. student in robotics and I had never encountered bond graphs until I took several Mech. E. courses at MIT, where I believe they were originally developed. Other than the courses at MIT and the bond graph conference mentioned in this article, I have never actually seen bond graphs used in practice. The vast majority of other engineers I work with have never seen a bond graph and do not know what one is (unless they have taken the same class at MIT). Of all the major robotics conferences and journals I've been to/read, I have not seen one bond graph - circuit diagrams and block diagrams are used almost exclusively. Given the touted advantage of bond graphs being that they are great for modeling multidomain systems, it seems like they should be perfect for robotics since there are typically a lot of electromechanical systems and sometimes aerodynamic, fluid etc. as well. If this is the case, I'm trying to figure out why apparently they never caught on. —Preceding unsigned comment added by 140.247.59.17 (talk) 20:16, 1 October 2010 (UTC)

I am a MSc Mechatronics student at the University of Twente, the Netherlands, and we work a lot with bondgraphs here for simulation (and design) and control. It is a very powerful tool (especially since it can be automated in software we use called 20SIM, look it up). I use it for modelling robots (any rigid body dynamics, serial links for example) with Screw theory: flow = Twist, effort = Wrench, also called generalized velocities (linear and rotational) and generalized force (force and torque). The 0- and 1-junctions represent common Wrenches and common Twists and the power bonds are just 6-D bonds for 3-D euclidian space. Causality implies the 'direction of the Wrench'. Using (modulated) transformers and configuration information you have you can do easy coordinate transformations within the bondgraph, using the 6-D inertia in its body fixed frame (easy inertia tensor) with a fictitious Wrench and a transformed gravity Wrench etc. Parallel structures or things like incorporating contact dynamics (bouncing or wall interaction) is all possible, since nothing needs to be static or linear (as long as the power flow between elements remains physically valid!). Applying robot control by energy shaping is straightforward with bondgraphs since it gives some physical interpretation/analog of what you are doing. Simulations of interacting soft surfaces or flexible beams has been done as well with some kind of FEM approach. Some things with bondgraphs can be counterintuitive though; like creating switches in the electronic domain with very changing resistances. Still the main advantage for me is that it gives more insight into the physics of the process (although coordinate TF might not be 'physical'...) and you don't have to spend any time on creating a bilateral signal flow diagram or the equations, since they follow from the bond graph (even from hand drawn bondgraphs the process is straightforward). I think it should be used more in industry and in academic research since it can be very powerful and insightful in the field of robotics or multi-domain design/simulation. —Preceding unsigned comment added by 129.132.39.52 (talk) 14:28, 19 November 2010 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 4 one external links on Bond graph. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20070125062943/http://www.scs.org:80/confernc/wmc/wmc07/icbgm07_FinalProgram_2.PDF to http://www.scs.org/confernc/wmc/wmc07/icbgm07_FinalProgram_2.PDF
 * Added archive https://web.archive.org/web/20070706195032/http://www.lsis.org:80/~i3m05/progIMAACA.html to http://www.lsis.org/~i3m05/progIMAACA.html
 * Added archive https://web.archive.org/web/20071109190359/http://scs.org:80/search.cfm?startrow=1&continueSearch=1 to http://www.scs.org/search.cfm?startrow=1&continueSearch=1
 * Added archive https://web.archive.org/web/20080414235710/http://www.scs.org:80/search.cfm?presearch=db&dbrec=15 to http://www.scs.org/search.cfm?presearch=db&dbrec=15

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.— InternetArchiveBot  (Report bug) 19:10, 5 November 2016 (UTC)