Here you will find an overview of the software that is developed and used in the AG Brendel.

  • CityPV: a ray tracer written in Python for yield calculations of rooftop and façade PV

    Description

    Calculating the yield of rooftop and façade PV installations in urban environment can be challenging. Such installations are often exposed to complex and time-dependent shadowing of sun light.

    We use optical ray tracing simulation which are very accurate but at the same time computationally intensive for calculating the insolation in such complex environments. Our toolbox calculates diffuse and direct insolation on arbitrary surfaces based on publicly available geographic data and meteorological timeseries. With this approach, we can investigate the influence of architecture, building dimensions and vegetation on the solar yield in such environments. We speed up our calculations using massively parallel computation on graphics processors. Figure 1 shows our ray tracing toolbox applied to a section of Hanover. Each surface in Fig. 1 is colored according to its annual sum of insolation.

    The insolation available at the surface of the earth depends on meteorological conditions. Measured values for the global horizontal irradiance (GHI), diffuse horizontal irradiance (DHI) and direct normal irradiance (DNI) are available with high temporal and spatial resolution. For each surface in the scene, our ray tracer calculates the irradiation relative to the meteorological data. The use of relative irradiation values decouples the ray tracing from measured irradiation data specific to a single year. This is particular useful, because ray tracing results from a specific year can be applied to other years with different meteorological conditions by multiplying the relative irradiation values with the meteorological conditions specific to the year of interest.

    Another strength of our approach is the use of advanced data structures which store the geometric data for the ray tracing calculation. In a naïve ray tracing approach, each incoming ray needs to be checked against each surface element in the geometry. Tracing a large number of rays in a large environment thus leads to correspondingly high calculation times. To overcome this problem, we build a hierarchy of bounding boxes. The first bounding box holds all surface elements. If a particular ray does not hit this bounding box, it cannot hit any structure inside it. If there is a hit, we divide the initial bounding box in two and again check the ray against each of the new bounding boxes. This process is repeated recursively until we reach a bounding box which only contains a pre-defined number of single surface elements. With this approach, the computation time no longer increases linearly but logarithmically with the size of the geometry, which also allows us to ray trace very large geometries up to whole cities.

    Selected publications

  • Energy System Transformation Model (ESTRAM): a framework written in Python for energy system optimisation

    Description

    ESTRAM is a framework for energy system optimisation written in Python. It offers the possibility to generate energy system models from a database, to optimise them and to evaluate them via an API or a GUI. Within the framework, there are a variety of choices for creating and modelling a scenario, as well as looking at different areas of the energy system individually.


    In general, ESTRAM optimises the expansion and deployment of energy system components (dispatch and generation expansion optimisation model) in such a way that a given energy demand can be met at minimum cost. Costs generally include capital expenditures, operating and maintenance costs, and costs for importing energy sources. In addition to these, other types of costs such as CO2 emissions and the start-up of power plants can be taken into account. Since there is only one objective function for each optimisation problem, the total system costs are always minimised. This corresponds to an economic consideration, which is to be distinguished from an economic consideration. The flexibility as a framework allows the solution of a large number of different optimisation problems. Depending on the desired scenario, a subset of the equations stored in ESTRAM is selected and a mathematical model is formed from this together with the data provided.

    Selected publications

  • Multi-Scale-PV (MSPV): a framework written in Python for yield calculations for photovoltaic modules

    Description

    Multi-Scale-PV is a framework written in Python for calculating the yield of photovoltaic systems. For an accurate yield simulation, it is necessary to consider each PV module individually, taking into account the local conditions. This requires a time-resolved irradiation calculation that takes into account shading and light reflections caused by the environment. Based on the irradiation data, the resulting current-voltage characteristics of the individual solar cells and, in turn, the current-voltage characteristics of the entire PV module are calculated. The electrical power and thus the energy yield of the PV module results from the characteristic curves of the individual PV modules and their interconnection.


    In these calculations, objects are considered on very different size scales: While the surrounding area of solar modules to be considered can be several 100 m in size, the extent of a solar module is in the order of 1 m and the extent of a solar cell is in the order of a few centimetres. Multi-Scale-PV therefore automatically combines multi-scale models for the various calculation steps of a yield calculation. Multi-Scale-PV thus makes it possible to calculate the time-resolved energy yield of a PV system even taking into account effects such as partial shading. The calculation effort required for this can be illustrated with an example: When calculating the annual yield of a commercially available PV module with 60 solar cells, 60 × 8760 = 525,600 individual cell characteristics must be calculated at hourly resolution. Therefore, Multi-Scale-PV uses approximations that reduce the calculation time but have only a minor impact on the accuracy.

    For the calculation of solar irradiance, Multi-Scale-PV uses, among other things, the in-house ray tracer CityPV, with which solar irradiance can be calculated with time and spatial resolution even in large and complex urban environments.