Quickly generate an FMU from command line
Project description
qfmu is a python package to generate continuous-time, LTI system FMUs from command line.
Installation
Install qfmu through PyPI
pip install qfmu
Noted that a C compiler is required
msvcfor Windowsgccfor Linuxclangfor MacOS
Features
Currently, qfmu is able to generate fmus that are compliant with FMI2 standard.
The following models are supported:
| Model | ME | CS |
|---|---|---|
State Space (ss) |
✔️ | ✔️ |
Transfer Function (tf) |
✔️ | ✔️ |
ZeroPoleGain (zpk) |
✔️ | ✔️ |
PID (pid) |
✔️ | ✔️ |
Noted that only continuous-time models are supported currently.
Examples
Generate a continuous-time state space FMU
qfmu ss -A "[[1,2],[3,4]]" -B "[[1],[2]]" -C "[[1,0],[0,1]]" -x0 "[3.14, 6]" -o ./example_ss.fmu
If qfmu is installed properly, you should see a example_ss.fmu file generated in your current working directory.
If you have fmpy installed, you can run fmpy info example_ss.fmu to see detailed model information.
Model Info
FMI Version 2.0
FMI Type Model Exchange, Co-Simulation
Model Name q
Description None
Platforms c-code, linux64
Continuous States 2
Event Indicators 0
Variables 10
Generation Tool qfmu
Generation Date 2023-10-08 21:24:32.733857
Default Experiment
Stop Time 1.0
Tolerance 0.0001
Variables (input, output)
Name Causality Start Value Unit Description
u1 input 0.0 Model input 1
y1 output Model output 1
y2 output Model output 2
Generate a continuous-time transfer function FMU using the numerator, denominator representation: $\frac{s}{s+1}$
qfmu tf --num "[1]" --den "[1,1]" -o ./example_tf.fmu
Generate a continuous-time transfer function FMU using the zero-pole-gain representation: $\frac{0.5(s-1)}{(s+1)(s+2)}$
qfmu zpk -z "[1]" -p "[-1, -2]" -k 0.5 -o ./example_zpk.fmu
Generate a continuous-time PI controller FMU: $3 + \frac{0.1}{s}$
qfmu pid --kp=3.0 --ki=0.1 -o ./example_pid.fmu
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 qfmu-0.2.9.tar.gz.
File metadata
- Download URL: qfmu-0.2.9.tar.gz
- Upload date:
- Size: 29.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d4f61c8fab44035cc12f17a747fc54eedb7d03d4c98dd30622200308f2a1b75
|
|
| MD5 |
4dca7d61a5ed0fd8b58d5613a7f2ac64
|
|
| BLAKE2b-256 |
e58a071119b35a02f66a894d6f382dbbee4b6996df04d9287edcd351f0a3a77d
|
File details
Details for the file qfmu-0.2.9-py3-none-any.whl.
File metadata
- Download URL: qfmu-0.2.9-py3-none-any.whl
- Upload date:
- Size: 32.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d55201207417d4082655dcc68915706410cc1be96b44a86a9969b9709c27fb3
|
|
| MD5 |
b4d4787c69f543277c4a2d02b9b19fcd
|
|
| BLAKE2b-256 |
75b89884effbb2e719202aef01b87f8411c7512c34dabced49c84aabb5d21124
|