Solar PV Analysis and Modelling Tool

Introduction

Analysis reads the .XLS files produced by the Lux Power export, and graphs the power and energy from the system through the day and year.

Modelling uses standard equations to predict the same from the system description (https://www.pveducation.org/pvcdrom/properties-of-sunlight/calculation-of-solar-insolation).

In both cases, the tool calculates the following measures of performance:

Capacity factor

Actual energy produced divided by the rated capacity. If the data only covers part-year, this is for that period only. 10% is typical for the UK.

Self use

The fraction of generated power that is consumed internally rather than being exported. Higher is better, but it inevitably drops off for large arrays where you generate much more than you consume in a year.

Battery utilisation

Daily discharge energy divided by the nominal capacity of the battery. Theoretically it can be more than 100%, but 30% is typical. 50% is good.

Battery efficiency

Discharge energy divided by the charge energy for a particular period. This is also known as the round-trip efficiency. 90% is good.

Viewing downloaded data

  1. Download the data to any folder, and note where the folder is. Put each year’s data in a separate folder: the tool can only display 1 year at a time.

  2. Start the app (currently only possible through NetBeans)

  3. On the import tab, use Import, and find the data folder when asked.

  4. When the data has loaded, the other tabs will be automatically populated.

  5. Activate the Power, Energy and Battery tabs as required.

  6. Use the month sliders to scroll through the year a month at a time.

  7. Use the smoothing sliders to make trends more visible (but do not try to read specific values when the data is smoothed).

You only need to use Import the first time you use the app, or if you have changed any files to the data folder. Otherwise use Cache which will load much faster.

Interpretation of data file column headings

I had to make some assumptions about the data fields in the file, since I can’t find any documentation. See Interpretation of data file column headings.

Interpretation of data file column headings
 +----------+   +-----------+   +-----------+
 |   PV 1   |   |   PV 2    |   |    PV 3   |
 |          |   |           |   |           |
 |          |   |           |   |           |
 +----------+   +-----------+   +-----------+
       |Ppv1          |Ppv2           |Ppv3
       +--------------+---------------+
                      |
                      v
                +-----------+                   +-----------+
    pDisCharge  | Inverter  |Pinv        Pload  |    Load   |
       +------->|           |---------+-------->|           |
       |        |           |         |         |           |
       |        +-----------+         |         +-----------+
       |              |               |pToGrid        ^pToUser
       |              |pCharge        |               |
 +-----------+        |               |         +-----------+
 |  Battery  |        |               |         |    Grid   |
 |           |<-------+               +-------->|           |
 |           |                                  |           |
 +-----------+                                  +-----------+

The inverter can measure everything directly except for Pload, so I assume it is calculated from Pinv + PToUser - PToGrid.

In my setup, PV 3 is attached to a separate inverter and connected as Modified connections.

Modified connections
 +----------+   +-----------+   +-----------+      +-----------+
 |   PV 1   |   |   PV 2    |   |    Inv3   | Ppv3 |    PV 3   |
 |          |   |           |   |           |<-----|           |
 |          |   |           |   |           |      |           |
 +----------+   +-----------+   +-----------+      +-----------+
       |Ppv1          |Ppv2           |Pinv3
       +--------------+               |
                      |               |
                      v               |
                +-----------+         |         +-----------+
    pDisCharge  | Inverter  |Pinv     v  Pload  |    Load   |
       +------->|           |---------+-------->|           |
       |        |           |         |         |           |
       |        +-----------+         |         +-----------+
       |              |               |pToGrid        ^pToUser
       |              |pCharge        |               |
 +-----------+        |               |         +-----------+
 |  Battery  |        |               |         |    Grid   |
 |           |<-------+               +-------->|           |
 |           |                                  |           |
 +-----------+                                  +-----------+

To represent this, if Estimate PV3 is selected when you import the data:

  • Ppv3 is calculated as 27% of Ppv1 + Ppv2

  • epv3day is calculated as 27% of epv1day + epv2day

  • PInv is increased by Ppv3

  • eInvday is increased by 27%

  • Pload is recalculated as Pinv + PToUser - PToGrid

If you only have the single inverter, leave Estimate PV3 unselected.

Modelling

The main use of the modelling is to compare different configurations to optimise placement, inverter choice etc. You can also compare the model to the actual output to possibly detect hardware problems (if you are lucky).

The default configuration matches my particular setup. If yours is different or you wish to experiment, edit the file "components.xls" following the examples. This file is read at startup and used to populate the dropdowns on the modelling tab.

  1. If necessary, edit the file "components.xls" in the app folder.

  2. Start the app.

  3. On the Data tab, configure the system to be modelled by selecting the components from the drop-downs.

  4. Press Model.

  5. Activate the Power, Energy and Summary tabs as required.

  6. Use the Month sliders to scroll through the year a month at a time.

  7. To model a different configuration, choose different components and press Model again.