Skip to content

This Python tool allows you to draw signal-flow graphs, calculate transfer functions (SymPy code is generated for further use in Jupyter notebooks), do graph manipulations (e.g., node elimination and graph transposition), and save a graph as TikZ for use in LaTeX documentation.

License

Notifications You must be signed in to change notification settings

huettern/signalflowgrapher

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SignalFlowGrapher

Version 0.4

Intended for beta test in the autumn term of 2020.

It has been stabilized a lot from V0.2 but may still crash; be careful and save often.

In addition, it now gives much nicer TikZ output. See below ...

And please report all issues you find to hanspeter.schmid@fhnw.ch or create an issue on github, https://github.com/hanspi42/signalflowgrapher/issues

License

This package is distributed under the Artistic License 2.0, which you find in the file LICENSE and on the internet on https://opensource.org/licenses/Artistic-2.0.

Authors of Version 0.2

The first version checed in was the result of a bachelor thesis at the University of Applied Sciences and Arts Northwestern Switzerland, https://www.fhnw.ch/en/. Students: Simon Näf and Nicolai Wassermann. Advisors: Dominik Gruntz and Hanspeter Schmid. Contact author: hanspeter.schmid@fhnw.ch

Installation instructions

Installation of plain Python or of Anaconda

Get the code

Create and activate virtual environment with Python

For the managment of the dependencies, a virtual enviromnent is used.

  • Open the src directory in a terminal
  • Create virtual environment using the command python -m venv signalflowgrapher
  • On Windows run signalflowgrapher\Scripts\activate.bat or signalflowgrapher\Scripts\Activate.ps1
  • On Unix or MacOS run source signalflowgrapher/bin/activate

Create and activate virtual environment with Anaconda

For the managment of the dependencies, a virtual enviromnent is used.

  • Open the src directory in an anaconda terminal
  • Create virtual environment using command conda create -n sfg
  • Activate virtual environment using the command conda activate sfg
  • Install pip with conda install pip

Restore dependencies

  • Open the src directory in a terminal or an anaconda terminal
  • Run pip install -r requirements.txt

Run application from terminal

  • Open the src directory in a terminal or an anaconda terminal
  • Run python -m signalflowgrapher
  • Run python -m signalflowgrapher --language de_CH for using the application with german translations

Run application from IDE

  • Make sure the IDE's kernel runs in the src directory
  • In the kernel, run the following lines:
from signalflowgrapher import app
app.run('')

Run unit tests and format tests

  • Open the src directory in a terminal or an anaconda terminal
  • Run python -m unittest
  • Run flake8 -v

User manual and tips

Manual

There is none yet, but to familiarize yourself with signal-flow graphs, you can

Tips

Credits

Implemention of Johnson's algorithm: https://github.com/qpwo/python-simple-cycles

About

This Python tool allows you to draw signal-flow graphs, calculate transfer functions (SymPy code is generated for further use in Jupyter notebooks), do graph manipulations (e.g., node elimination and graph transposition), and save a graph as TikZ for use in LaTeX documentation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.6%
  • Other 0.4%