Bond Graph modeling with Dia



Hi,

Bond graphs are domain-independent diagrams that are used to model mechanical, electrical, hydraulic, pneumatic, and thermal systems. What is particularly appealing about bond graphs is that they are modular, allowing component interconnection, and that computer programs can convert them to differential equations or other forms suitable for simulation or compensator/controller design.

At the moment, the only free software that works with bond graphs is called mtt (mtt.sourceforge.net), and it uses xfig to draw the bond graphs. As you can guess from the bond graph diagram that is attached, xfig is not the best tool. If you move a component (R,C,I,0,1,SE,SF,SS), xfig does not move the connecting bonds (lines with half arrows, full arrows, and flat heads).

I believe that Dia, with perhaps little modification, could be used as an ideal tool for bond graph design.

I tried to make a custom shape with only the number '1' inside, but it appears that text inside shapes is not displayed. When I did this, my shape was invisible. Would it be easy to make the svg text get displayed?

It would be possible to place numerous anchors on the outside of the components so that they could be connected with arrows. The problem with this is that if the shape is moved around, the arrows might end up going through the center of the component. This problem could be solved in the following general way that could be useful for other diagrams: The components would have a single anchor in the middle, and all bonds (arrows/lines) would point to that single anchor. Arrows could have a 'gap' parameter so that arrows with this parameter non-null would not connect their end points completely, but either leave a gap between the arrow tip and the anchor (if the gap were positive), or extend past the anchor (if the gap were negative). This way, all bonds would point to the center of components, and moving components would still work correctly.

The only other change that would be necessary for basic bond graph design would be to have an attribute that would allow one to place a flat bar on the end of arrows, half-head arrows, and lines. This could be done in a general way: the line code, instead of giving a fixed choice of different line endings as is currently done, could be written in the following way: Each line ending or center could have multiple attributes that could be selected independently. Attributes could be: Half head, full head, flat head, half flat head, circle, triangle, filled triangle, diamond, filled diamond, etc. Instead of these being mutually exclusive, they could be combined.

I was just wondering if these modifications appear to be relatively straightforward, or not. I think these types of enhancements could be useful not only for bond-graph modeling, but for other diagram editing. What do you think?

PNG image



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]