Skip to main content

PV Simulator for Mosaik

Project description

This component was initially created by Cornelius Steinbrink based on PyPVSim by Daniel Soto, which is licensed under CC-BY 3.0). It was further extended by Thomas Raub and updated by Jan Sören Schwarz and Danila Valko.

The PV system simulator calculates active power output based on the Direct Normal Irradiance (DNI, [W/m2]) input and current time (hourly).

PV system output data:

  • P[MW] - active power produced

PV system input data:

  • DNI[W/m2] - Direct Normal Irradiance

  • scale_factor - multiplies output [coef], might be used as a contol signal

Configuration:

  • latitude [grad]

  • area - insolated panels area [m2]

  • efficiency [coef]

  • el_tilt - elevation [grad]

  • az_tilt - azimuth [grad]

An example scenario is located in the ´demo´ folder.

Other options

Please pay attention to the input data. If you want to use only Direct Normal Irradiance input data as part of the co-simulation, then mosaik-pv is suitable, if you want to use full weather information (global irradiance, wind speed, air temperature and pressure) then mosaik-pvlib is suitable. If you are satisfied with historical performance estimates for a particular location or have no other input data, then mosaik-pvgis is the best solution which is based on PVGIS performance data.

Installation

pip install mosaik-pv

If you don’t want to install this through PyPI, you can use pip to install the requirements.txt file:

pip install -r requirements.txt
  • To use this, you have to install at least version 3.2.0 of mosaik.

  • It is recommended, to use the mosaik-csv library to properly import DNI data.

How to Use

Specify simulators configurations within your scenario script:

LAT = 32.0
AREA = 1
EFF = 0.5
EL = 32.0
AZ = 0.0
START = "2014-01-01 01:00:00"
END = 3600 * 24
STEP_SIZE = 60 * 60
DNI_DATA = "solar_data.csv"


SIM_CONFIG = {
    'DNISim': {
        'python': 'mosaik_csv:CSV'
    },
    'PVSim': {
        'python': 'mosaik_components.pv.pvsimulator:PVSimulator'
    },
    ...
}

Initialize the PV- and DNI-simulator:

# Create DNI simulator
DNI_sim = world.start("DNISim",
                    sim_start=START,
                    datafile=DNI_DATA)

# Create PV system with certain configuration
pv_sim = world.start(
                    "PVSim",
                    start_date=START,
                    step_size=STEP_SIZE)

Instantiate model entities:

DNI_model = DNI_sim.DNI.create(1)

pv_model = pv_sim.PV.create(1, latitude=LAT, area=AREA,
                        efficiency=EFF, el_tilt=EL, az_tilt=AZ)

Connect DNI input with PV-simulator:

world.connect(
                    DNI_model[0],
                    pv_model[0],
                    ("DNI", "DNI[W/m2]"),
                )

CSV-Formatting

For the simulator to work correctly, both .csv files have to be specifically formatted!

DNI-data

The meteo_data.csv is formatted accordingly to the conventions of the mosaik_csv simulator:

Wind
Date,wind_speed
YYYY-MM-DD HH:mm:ss,v1
YYYY-MM-DD HH:mm:ss,v2
...
DNI
Time,DNI
YYYY-MM-DD HH:mm:ss,2.1,92.0,0.0,0.0
  • Each entry in the .csv needs a Date in the YYYY-MM-DD HH:mm:ss format and a set of values.

Changelog

1.2.1 - 2024-03-06

  • Minor changes: scipy dependance was removed

1.2 - 2024-02-13

  • Naming convention fixed

  • Minor changes

1.1 - 2024-01-11

  • Restructured as a mosaik component

  • Active power output in [MW]

  • scale_factor added as input

  • Readme and examples added

1.0 - 2023-05-10

  • Initial release of version implemented by Cornelius Steinbrink

Authors

The adapter was initially developed by Cornelius Steinbrink based on solution by Daniel Soto, extended by Thomas Raub and updated by Jan Sören Schwarz and Danila Valko.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mosaik_pv-1.2.1.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

mosaik_pv-1.2.1-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file mosaik_pv-1.2.1.tar.gz.

File metadata

  • Download URL: mosaik_pv-1.2.1.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.13 Linux/5.4.109+

File hashes

Hashes for mosaik_pv-1.2.1.tar.gz
Algorithm Hash digest
SHA256 192f5709fea1d4578ed2b73da0d7211af7ee4789a06fffb4162fd8b32dbe02b9
MD5 f21d0775849635b4db48b10e8456b21b
BLAKE2b-256 57cacf44c05b46db310931d0cddfa31afa3f2e359ba08f8f92320fe253679274

See more details on using hashes here.

File details

Details for the file mosaik_pv-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: mosaik_pv-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.13 Linux/5.4.109+

File hashes

Hashes for mosaik_pv-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2d7ebd7cdd84fbc791a830d8330d5a3d28dbfb436f5d17ebe627bf8bc31b34d0
MD5 00136fc7965df962c17429137374a00e
BLAKE2b-256 847eb40ed2c46d3cf3e32c2dec3eacead1cebe5f758e6ae1f5fd79f10c43e64e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page