-
Notifications
You must be signed in to change notification settings - Fork 33
Future & related work
some of these don't make sense now...
These packages share some of the design aims of bdsim
:
- https://hackernoon.com/my-top-13-javascript-diagram-libraries-g2a53z6u
- https://app.diagrams.net/?ref=hackernoon.com
- xcos
PyQt5 has some licence issues, and PySide6 has been suggested as an alternative. Quite some work to make the change, but we would get the benefit of upgrading to "Qt6".
An alternative is to move to a full JS-based editor like GoJS.
Create i/o block that allow BDsim on something like a Raspberry Pi to control physical hardware. For example a wrapper on Pigpio and other i/o libraries.
Firmata or Telemetrix allow an Arduino to act as an i/o server over WiFi or USB comms.
Create blocks that wrap OpenCV functions to acquire images and process them with a set of useful algorithmic blocks.
Numerical integration is at the very heart of bdsim
which essentially turns a block diagram into a first-order differential equation which is integrated over time.
Currently using a very standard integrator from SciPy which is being used for continuous and hybrid systems. There is a rudimentary event system built on top of this, but it would be better to consider any of the following:
- survey of what's out there here
- a [SciPy integrator that supports event functions] (https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html#scipy.integrate.solve_ivp).
- Event functions are described in Combined continuous/discrete system simulation by use of digital computers, F.E.Cellier, ETH Thesis, 1979. DOI: 10.3929/ethz-a-000258490
- DifferentialEquation.jl written in Julia which is callable from Python, see diffeqpy and details of event callbacks
- CVODE from the Sundials package via the FMPy
- Port
odedc
from Scilab.
A good test of event functions would be to replicate the dynamics of a bouncing ball.
Copyright (c) Peter Corke 2020-23
- Home
- FAQ
- Changes
- Adding blocks
- Block path
- Connecting blocks
- Subsystems
- Compiling
- Running
- Runtime options
- Discrete-time blocks
- Figures
- Real time control
- PID control
- Coding patterns