Python package for cosimulation of FMU based multi-energy systems
Project description
energysim
energysim (previously, FMUWorld) is a python-based tool that was developed specifically to simplify energy system based cosimulations. Currently, it allows users to combine:
- Dynamic models packaged as Functional Mockup Units (FMUs)
- Pandapower Networks packaged as pickle files
- PyPSA models (BETA) packaged as Excel workbook
- csv data files
Installation
energysim can be installed using PyPI index command:
pip install energysim
It uses the following packages to work:
Usage
energysim simplifies cosimulation setup by conceptualising the setup in an intuitive manner. The whole system is defined within a World()
canvas. Within World()
, users can specify different simulators by using commands such as add_fmu()
, add_powerflow()
, add_csv()
, add_signal()
. Apart from this, users can also specify initialisation options using the options()
command, connections between simulators using the add_connections()
command. Finally, the system can be simulated using the simulate()
command. This method provides a results dataframe which can then be used for analysis of the multi-energy system simulation. Apart from simple simulations, energysim alo incudes a method to perform sensitivity analysis on selected parameters within the cosimulation environment.
A brief example is shown below:
#import package
from FMUWorld import World
#create world instance
my_world = World(stop_time = 1000,
logging = True,
exchange = 2,
interpolate_results = False)
simLoc1 = os.path.join(working_dir,chp+'.fmu') #fmu location
simLoc2 = os.path.join(working_dir,elec+'.p') #pandapower network location
#add fmu
my_world.add_fmu(name = 'chp',
loc = simLoc1,
step_size = 2,
outputs = ['rampeQfuel.y.signal',
'Alternateur.Welec'])
my_world.add_powerflow(name = 'elec',
loc = simLoc2,
step_size = 1e-3,
inputs = ['gen1.P']
outputs = ['gen1.f',
'gen2.f',
'gen3.f'])
#define connections
connections =
{'chp.Alternateur.Welec':'elec.gen1.P'}
#add connections
my_world.add_connections(connections)
#simulate
results = my_world.simulate()
More information is provided on the documentation page.
Citing
Please cite the following paper if you use energysim: Gusain, D, Cvetković, M & Palensky, P 2019, Energy flexibility analysis using FMUWorld. in 2019 IEEE Milan PowerTech., 8810433, IEEE, 2019 IEEE Milan PowerTech, PowerTech 2019, Milan, Italy, 23/06/19. https://doi.org/10.1109/PTC.2019.8810433
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
Hashes for energysim-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e8ca8b05c6a16ce8a1a1d626d37aa576ddcc402358aecb97e46ae80bd573416 |
|
MD5 | 621c6f0bc070e45a4f94ea56021dd000 |
|
BLAKE2b-256 | 3d30143ca9a30d790aa9e12524cf72896c18c01101b03f176f114c1b7a91b02a |