Giter Club home page Giter Club logo

mosaik's Introduction

Mosaik

Mosaik is a simulation compositor for Smart Grid simulations.

It lets you re-use existing simulators and couple them to simulate large-scale Smart Grid scenarios. Mosaik offers powerful mechanisms to specify and compose these scenarios.

License: LGPL

Example

A simple demo scenario with mosaik:

>>> import mosaik
>>> sim_config = {
...   'ExampleSim': {'python': 'example_sim.mosaik:ExampleSim'},
... }
>>> def create_scenario(world):
...   sim_1 = world.start('ExampleSim')
...   sim_2 = world.start('ExampleSim')
...   a_set = [sim_1.A(init_val=0) for i in range(3)]
...   b_set = sim_2.B.create(2, init_val=0)
...   for i, j in zip(a_set, b_set):
...     world.connect(i, j, ('val_out', 'val_in'))
...
>>> world = mosaik.World(sim_config)
>>> create_scenario(world)
2022-11-21 15:39:48.554 | INFO     | mosaik.scenario:start:255 - Starting "ExampleSim" as "ExampleSim-0" ...
2022-11-21 15:39:48.555 | INFO     | mosaik.scenario:start:255 - Starting "ExampleSim" as "ExampleSim-1" ...
>>> world.run(until=2)
2022-11-21 15:40:05.187 | INFO     | mosaik.scenario:run:532 - Starting simulation.
100%|█████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 539.56steps/s]
2022-11-21 15:40:05.193 | INFO     | mosaik.scenario:run:576 - Simulation finished successfully.

Installation

Mosaik requires Python >= 3.8. Use pip to install it, preferably into a virtualenv:

$ pip install mosaik

Documentation, Source Code and Issues

The documentation is available at https://mosaik.readthedocs.io.

Please report bugs and ideas for improvement to our issue tracker.

How to cite mosaik

If you want to cite mosaik, e.g. in a work in which you use mosaik, you can use this publication:

C. Steinbrink, M. Blank-Babazadeh, A. El-Ama, S. Holly, B. Lüers, M. Nebel-Wenner, R.P. Ramirez Acosta, T. Raub, J.S. Schwarz, S. Stark, A. Nieße, and S. Lehnhoff, “CPES Testing with mosaik: Co-Simulation Planning, Execution and Analysis”, Applied Sciences, vol. 9, no. 5, 2019.

Or as bibtex:

@Article{app9050923,
    AUTHOR = {Steinbrink, Cornelius and Blank-Babazadeh, Marita and El-Ama, André and Holly, Stefanie and Lüers, Bengt and Nebel-Wenner, Marvin and Ramírez Acosta, Rebeca P. and Raub, Thomas and Schwarz, Jan Sören and Stark, Sanja and Nieße, Astrid and Lehnhoff, Sebastian},
    TITLE = {CPES Testing with mosaik: Co-Simulation Planning, Execution and Analysis},
    JOURNAL = {Applied Sciences},
    VOLUME = {9},
    YEAR = {2019},
    NUMBER = {5},
    ARTICLE-NUMBER = {923},
    URL = {https://www.mdpi.com/2076-3417/9/5/923},
    ISSN = {2076-3417},
    DOI = {10.3390/app9050923}
}

Get in touch, ask questions, discuss 💬

You have a question, a feature request or want to generally discuss the amazing possibilities with co-simulation and mosaik? We are curious to hear from you! Join us on GitHub Discussions.

mosaik's People

Contributors

ahilloffis avatar ait-ces avatar annika-ofenloch avatar bengt avatar bengtoffis avatar csteinbrink avatar debbener avatar efendi42 avatar eike avatar fanoos avatar felixwollenhaupt avatar fraukeoest avatar hesstobi avatar ma1t3 avatar mohammad-arhum avatar mozzbozz avatar pranaykasturi avatar salsharifc137 avatar schwarzatoffis avatar spotlesscoder avatar sscherfke avatar thomasraub avatar tobii42 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

nhuxoll

mosaik's Issues

Does hidden step_factor make my simulation longer?

Discussed in https://github.com/orgs/OFFIS-mosaik/discussions/9

Originally posted by kevinPoliPoli February 6, 2024
Hi everyone, I'm trying to use Mosaik with an FMU. Since then I have used the repo Mosaik-fmi but I recently discovered this branch. I compared the master branch implementation with the last one and I obtain a strange behavior: specifically my FMU simulates an electric vehicle and outputs the level of charge after walking through a path. Comparing the same model inputs, using the last version of the linked branch the model outputs a significantly lower residual charge. Moreover, the simulation takes longer, in the first case takes 4 seconds to complete, and in the second one 57! So, maybe there is some hidden initialization parameter like the one in the main branch named step_factor which simulates more time?

These are the initialization parameters:

first repo

fmu_sim = world.start('FMI', step_size=1, step_factor=1, stop_time=100000, work_dir=os.path.join(os.getcwd(), 'src/fmu/eGolf'), fmu_name='eGolf', fmi_version='2', fmi_type='cs', logging_on=False, instance_name='eGolf')

second repo

fmu_sim = world.start('FMI3', step_size=1, stop_time=100000, work_dir='/src/fmu/eGolf', fmu_name='eGolf', fmi_version='2', fmi_type='cs', logging_on=False, instance_name='eGolf', show_result=False, print_model=False, log_input=True)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.