A library to create bond graphs for physical systems and generate their differential equations.
Project description
bondgraph
A python library for creating bond graphs of physical systems and generating differential equations.
It heavily relies on sympy for manipulation and simplification of equations symbolically.
Installation
Install via pip:
pip install bondgraph
To install with extra dependencies for visualization using graphviz:
pip install bondgraph[visualization]
Usage
Create a BondGraph object and add Bond objects connecting various elements:
# This example generates the following simple bond graph:
#
# Se ---> 1 ---> I
# |
# v
# R
from bondgraph.core import Bond, BondGraph
from bondgraph.junctions import JunctionEqualFlow
from bondgraph.elements import Element_R, Element_I, Source_effort
from sympy import Symbol
force = Source_effort("force", Symbol("F"))
friction = Element_R("friction", Symbol("k_f"))
inertia = Element_I("inertia", Symbol("m"), Symbol("p"))
mass_object = JunctionEqualFlow("mass_object")
graph = BondGraph()
graph.add(Bond(force, mass_object))
graph.add(Bond(mass_object, friction))
graph.add(Bond(mass_object, inertia))
state_equations = graph.get_state_equations()
# Print the dictionary of state variables and the right hand side of their state equations:
print(state_equations)
# {p: F - k_f*p/m}
# If using the optional visualization features, generate and display a graphviz graph:
from bondgraph.visualization import gen_graphviz
output_graph = gen_graphviz(graph)
output.view()
Limitations
- Algebraic loops are not handled at all and will result in failure to generate equations.
- Non-integrating (differential) causality for C or I elements is not currently possible.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bondgraph-0.2.0.tar.gz.
File metadata
- Download URL: bondgraph-0.2.0.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
507a7d1a36e081f2f4bf1f9b8b1f507521ac18590cd4ffe279f8af7f3045cb5a
|
|
| MD5 |
0210a614b8dc4af2daa91b188daacb55
|
|
| BLAKE2b-256 |
39fd0fb548cd4fb44a2dba0001b55290f0ad2e6be24a5fd577e6aee27c8b14b3
|
File details
Details for the file bondgraph-0.2.0-py3-none-any.whl.
File metadata
- Download URL: bondgraph-0.2.0-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
524bffea04126f03ab3bb9edd28723e48578d63d4afc9fd0a21e0e91a70593a3
|
|
| MD5 |
86c0e733cb19634f3a0575d03ba6f363
|
|
| BLAKE2b-256 |
ff83460771db7962f9e8d31fcdc9f1a5d60350d0e3c09135f04a9565d9ed8a95
|