Skip to content

A Modelica-library that enables the design and investigation of solar power systems.

Notifications You must be signed in to change notification settings

UdSAES/pv-systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solar Power Systems

153670971

A Modelica-library that enables the design and investigation of immobile PV systems, focusing on the power generated by arbitrarily oriented PV modules based on the irradiance in the horizontal plane; air temperature; and wind speed at the site.

logos uds aes designetz bmwi

This work was supported by the SINTEG-project “Designetz” funded by the German Federal Ministry of Economic Affairs and Energy (BMWi) under grant 03SIN224.


The library contains models for three main aspects:

  1. the calculation of the sun’s position with respect to the system’s location;

  2. the estimation of the plane of array (POA) irradiance from direct and diffuse irradiance in the horizontal plane; and

  3. the calculation of the power generated by the PV modules as a function of POA irradiance, ambient temperature and wind speed.

Usage

Getting Started

  • Download the latest stable version of the library from the releases-page on GitHub or clone the repository locally.

  • Ensure that all dependencies are installed.

  • Open the library in your Modelica-IDE of choice (note that the library was developed using Dymola 2021 and has not been tested with other tools).

  • Open SolarPowerSystems.Examples.PVSystem; simulate it; and plot a selection of relevant quantities by running the provided plot script (choose Commands > plotResult in the Simuation-tab in Dymola).

Creating New Instances

  • Depending on the input data available, instantiate one of Irradiance2Power, IrradianceTemperature2Power or IrradianceTemperatureWindSpeed2Power in the subpackage Components.

  • Create new records that inherit from the partial records in SolarPowerSystems.Records.Base.* to store the parameter values of the system under investigation.

  • Select the newly created records via drop-down in the Parameters-dialog.

  • Select the model to be used from the drop-down menu in the “Model Selection”-group of the Parameters-dialog.

    Currently, there are four choices: two that expect direct and diffuse in the horizontal plane and include models to convert the irradiance to the POA (isotropic/anisotropic); and two that do not alter the supplied irradiance. Three models use a varying efficiency factor to calculate the power as the product of efficiency, POA irradiance and area; one uses the one diode equivalent-circuit model provided in the PhotoVoltaics-library.

  • Load your input data and connect it to the model instance.

  • Simulate 😎

Library Design

The SolarPowerSystems-library relies on the architecture pattern for facilitating the creation and use of system level models.

Partial models are used to specify the interfaces of component models; specific implementations (or data records) realize these interfaces. System-level models are pre-connected and the fitting use of redeclare, constrainedby and choicesAllMatching ensure that users can quickly assemble and parameterize complete system models by choosing from the available options via drop-down menus in the Parameters-dialog.

While some component models were implemented from scratch, the library heavily reuses work provided by others. Below, these external dependencies as well as the core models of the library are outlined.

Dependencies

The library depends on several other Modelica-libraries as well as the reference-implementation of the solar position algorithm. The exact versions of the Modelica libraries are specified in the uses-annotation in the top-level package.mo.

The following dependencies MUST to be resolved by the user before the models in the library can be used:

The implementation of the SPA consists of two files, spa.h and spa.c, which MUST be put in the directory ./SolarPowerSystems/Resources/Include/.

Additionally, the PhotoVoltaics library is necessary if a more detailed analysis of the electrical quantities based on diode-based equivalent circuit models is preferred over the efficiency factor model.

Core Models

  • AngleOfIncidence — calculate the angle between the module’s surface normal and the sun rays based on the solar zenith and azimuth angles and the panels tilt and orientation.

  • PlantInEnvironment (partial) — models that estimate POA irradiance for arbitrarily oriented modules.

  • EfficiencyIrradianceArea — the main model calculating the power output as the product of an efficiency factor that varies based on the environmental conditions; the total irradiance in the POA; and the overall area of the PV modules.

  • PhotoVoltaicPowerPlant (partial) — models that combine the estimatiation of POA irradiance with the models for calculating the power output.

Project Status/Roadmap

The library is versioned using Semantic Versioning 2.0.0 (semver) and follows the semver specification.

The semver specification is about the public interface of a software package; here, the partial models in SolarPowerSystems/Interfaces/ are seen as the public interface of this library.

v0.9.0

Released 2020-12-24

  • ✓ Clean up library

    • ✓ Double-check that all models perform as intended

    • ✓ Remove non-redistributable data from repository and its history

    • ✓ Ensure that all model names and docstrings are descriptive and consistent

    • ✓ Draw helpful icons

    • ✓ Add examples and plot scripts for the most important models

  • ✓ Ensure that there is a helpful README

    • ✓ Add required logos/funding information

    • ✓ Indicate scope, dependencies and license information

v1.0.0

Estimated realization in the first quarter of 2021

  • ❏ Bring back…​

    • ❏ Subpackage Validation; explain in README

    • ❏ Model export with paramters read from files

  • ❏ Add user’s guide to library

    • ❏ Graphically document coordinate systems used

    • ❏ Point out differences and commonalities with other related libraries

    • ❏ …​

  • ❏ Convert to MSL 4.0.0

  • ❏ Public release of version 1.0.0; addition to list on Modelica-homepage?

License Information

The source code of the SolarPowerSystems-library (Modelica, C) is released under the MIT license.

About

A Modelica-library that enables the design and investigation of solar power systems.

Resources

Stars

Watchers

Forks