Skip to content

Rethink inverter control methodology #68

@longzheng

Description

@longzheng

Just making some notes about my thoughts and welcome any feedback/input others may have.

Currently the application applies export/generation limits by actively controlling the inverter active power output.

The desired inverter active power output (as a % to nameplate capacity) is calculated by

// assume site 
// positive = import
// negative = export

targetSolar = -(site) - exportLimit
targetActivePowerOutput = targetSolar / totalNameplateCapacity

The actual values are derived by a time-weighted average of the last 5 seconds (default) of samples from controlled inverters and meter.

The active power output is then applied to all controlled inverters, which would effectively reduce the maximum power output to the target solar value.

The pros of this approach is that it makes it possible to control multiple inverters with different capacities with ease, as it effectively pools all inverters as one resource. It also allows controller inverters which either do not have a meter attached or does not support load following export limits (or a mix of inverters with meters and without).

The cons of this approach is that it requires the software to "take over" any native load following export limit logic in the inverters which is usually more responsive

This approach is also going to be more complex as I need to handle battery control. The intention is that the software would manually control the charge and discharge rate of batteries to take advantage of market pricing.

One challenge is how hybrid inverters handles setting "target inverter output". Does it restrict just the solar power output or does it also affect the battery power output?

Alternatively I'm thinking of allowing some inverters (with meter attached and has export limit capabililty) to be controlled by setting export limits, and other inverters (without meter) to be controlled by active power output.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions