> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plantpredict.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Inverter Efficiency Models

export const CEC = () => <Tooltip tip="California Energy Commission: standards body that defines inverter test protocols and efficiency ratings for PV systems.">
    CEC
  </Tooltip>;

export const Inverter = () => <Tooltip tip="Power electronics device that sets the operating point on the DC array's I-V curve and converts DC to AC for grid injection.">
    inverter
  </Tooltip>;

## Summary

Inverter Efficiency Models calculate the DC-to-AC conversion efficiency and AC output power of the <Inverter /> using manufacturer-supplied efficiency curves at multiple voltage and power levels. PlantPredict implements two efficiency models:

* **Bilinear Interpolation Model** (Versions 3–10): interpolates efficiency from the curve data at the operating voltage and power.
* **Sandia Polynomial Model** (Version 11+): fits quadratic polynomials to the efficiency curves and computes efficiency analytically. Falls back to the bilinear model if fewer than three efficiency curves are available.

## Inputs

| Name                     | Symbol                 | Units | Description                                                               |
| ------------------------ | ---------------------- | ----- | ------------------------------------------------------------------------- |
| **DC Operating Voltage** | $V_{DC}$               | V     | DC operating voltage from [operating regions](inverter_operating_regions) |
| **DC Operating Power**   | $P_{DC}$               | W     | DC operating power from [operating regions](inverter_operating_regions)   |
| **Efficiency Curves**    | $\eta_{V_j}(P_{AC,i})$ | kW, % | Efficiency as a function of AC power at DC voltages $V_j$                 |

***

## Outputs

| Name                    | Symbol       | Units | Description                    |
| ----------------------- | ------------ | ----- | ------------------------------ |
| **Inverter Efficiency** | $\eta$       | —     | DC-to-AC conversion efficiency |
| **Inverter AC Power**   | $P_{AC,inv}$ | W     | AC power output                |

***

## Detailed Description

### Efficiency Curve Structure

<Frame caption="Example Efficiency Curves for TMEIC Solar Ware - PVU-L0840GR<br/>(915 V – Black; 990 V – Orange; 1200 V – Blue)">
  <img src="https://mintcdn.com/terabaseenergy/seOniL_CAC5wwALf/images/2025-12-17_16-15-25.PNG?fit=max&auto=format&n=seOniL_CAC5wwALf&q=85&s=bfe9bb632edff0d1f2bc270d7d001c8c" alt="Inverter Efficiency Curves" width="1193" height="524" data-path="images/2025-12-17_16-15-25.PNG" />
</Frame>

The efficiency curves $\eta_{V_j}(P_{AC,i})$ provide efficiency as a function of AC power at typically three DC voltage levels:

* Minimum voltage ($V_{min}$)
* Nominal voltage ($V_{nom}$)
* Maximum voltage ($V_{max}$)

During pre-processing, power is scaled from kW to W and efficiency from % to a unitless fraction. If the operating voltage falls outside the range of the efficiency curves, it is clamped to the nearest boundary:

* $V_{DC} \leftarrow V_{min}$ if $V_{DC} < V_{min}$
* $V_{DC} \leftarrow V_{max}$ if $V_{DC} > V_{max}$

### Bilinear Interpolation Model (Versions 3–10)

This model interpolates efficiency directly from the efficiency curve data using bilinear interpolation across voltage and power. If only one voltage curve is available, the interpolation reduces to linear interpolation in power. For each voltage curve, a $(P_{AC,inv} = 0,\, \eta = 0)$ point is added if not already present, ensuring the power range starts at zero.

#### Determination of bounds

Find the two voltage curves $V_1 \leq V_{DC} \leq V_2$ that bracket the operating voltage. For each bounding voltage curve, determine the power data points to use for bracketing:

* **V3–6**: use the curve's AC power values $P_{AC,i}$ directly.
* **V7 and later**: convert the curve's AC power values to DC power ($P_{DC,i} = P_{AC,i} / \eta_{V_j}(P_{AC,i})$) and use the resulting DC power values.

From the resulting power values, find the two adjacent points $P_1$ and $P_2$ that bracket $P_{DC}$. If $P_{DC}$ exceeds the curve's maximum power, $P_1$ and $P_2$ are set to the two highest data points.

#### Bilinear interpolation

The four corner efficiencies are $\eta_{11} = \eta_{V_1}(P_1)$, $\eta_{12} = \eta_{V_1}(P_2)$, $\eta_{21} = \eta_{V_2}(P_1)$, $\eta_{22} = \eta_{V_2}(P_2)$. From these, we define the interpolation weights in voltage ($\alpha$) and power ($\beta$):

$$
\alpha = \frac{V_{DC}-V_1}{V_2-V_1}
$$

$$
\beta = \frac{P_{DC}-P_1}{P_2-P_1}
$$

The efficiency is then:

$$
\eta = (1-\alpha)(1-\beta)\,\eta_{11} + (1-\alpha)\beta\,\eta_{12} + \alpha(1-\beta)\,\eta_{21} + \alpha\beta\,\eta_{22}
$$

When $P_{DC}$ exceeds the curve's power range ($P_{DC} > P_2 > P_1$), $P_1$ and $P_2$ are set to the two highest data points but $P_{DC}$ itself is used as-is, so the formula extrapolates in the power dimension ($\beta > 1$).

### Sandia Polynomial Model (Version 11+)

The Sandia model (King et al., 2007) is particularly suited for inverters with <CEC /> efficiency curves—or equivalent—available. These curves provide efficiency as a function of AC power at three or more DC voltage levels, with measurements at 10%, 20%, 30%, 50%, 75%, and 100% of rated power spanning the full operating range.

Based on efficiency curves at three characteristic voltages—minimum $V_{min}$, nominal $V_{nom}$, and maximum $V_{max}$—the model fits a continuous analytical surface rather than interpolating from discrete curve points. The final equation takes the form:

$$
P_{AC,inv} = \left[\frac{P_{AC,ref}}{P_{DC,char} - P_{DC,0}} - C(P_{DC,char} - P_{DC,0})\right] (P_{DC} - P_{DC,0})
$$

$$
\quad + C (P_{DC} - P_{DC,0})^2
$$

where:

* $P_{AC,ref}$ is the **reference AC power**, derived as the highest AC power data point on the lowest voltage curve. For standard CEC curves this matches the inverter's rated AC power.
* $P_{DC,char}$ is the **characteristic DC power** at which AC output equals $P_{AC,ref}$.
* $P_{DC,0}$ is the **self-consumption power**: the DC power consumed at zero AC output, representing no-load losses. Below this threshold, the inverter consumes more than it produces.
* $C$ is the **curvature coefficient**, capturing non-linear deviation from a simple linear DC-to-AC gain.

The equation is designed so that $P_{AC,inv} = P_{AC,ref}$ at $P_{DC} = P_{DC,char}$ and $P_{AC,inv} = 0$ at $P_{DC} = P_{DC,0}$. The non-linear behavior between these anchors is captured as a quadratic dependence on $P_{DC}$ through $C$. $P_{DC,char}$, $P_{DC,0}$, and $C$ are each modeled as linear functions of voltage, fitted from the three efficiency curves.

#### Curve selection

The model selection and voltage assignment depend on the number of available efficiency curves:

* **1 curve**: defaults to the bilinear interpolation model, which in practice reduces to linear interpolation in power.
* **2 curves**: defaults to bilinear interpolation.
* **3 curves** (standard CEC configuration): $V_{min}$, $V_{nom}$, and $V_{max}$ are unambiguously assigned as the lowest, middle, and highest curve voltages.
* **4+ curves**: $V_{min}$ and $V_{max}$ are the lowest and highest curve voltages. $V_{nom}$ is the first curve (in storage order) that is neither $V_{min}$ nor $V_{max}$; additional curves are ignored.

#### Parameter extraction

The reference AC power $P_{AC,ref}$ is extracted as the highest AC power data point on the $V_{min}$ curve. This single value is used as the rated operating point for all three curves.

For each of the three voltage curves ($V_k \in \{V_{min},\, V_{nom},\, V_{max}\}$), the algorithm converts the efficiency data from AC to DC power ($P_{DC,i} = P_{AC,i} / \eta_{V_k}(P_{AC,i})$) and performs a least-squares degree-2 polynomial fit of AC power as a function of DC power, yielding one equation per voltage:

$$
P_{AC,V_k} = c_{0,k} + c_{1,k}\, P_{DC} + c_{2,k}\, P_{DC}^2
$$

From each fitted polynomial, extract the characteristic DC power $P_{DC,char,k}$ such that $P_{AC,V_k}(P_{DC,char,k}) = P_{AC,ref}$, and the self-consumption power $P_{DC,0,k}$ such that $P_{AC,V_k}(P_{DC,0,k}) = 0$, by solving the quadratic:

$$
P_{DC,char,k} = \frac{-c_{1,k} + \sqrt{c_{1,k}^2 - 4\, c_{2,k}\, (c_{0,k} - P_{AC,ref})}}{2\, c_{2,k}}
$$

$$
P_{DC,0,k} = \frac{-c_{1,k} + \sqrt{c_{1,k}^2 - 4\, c_{2,k}\, c_{0,k}}}{2\, c_{2,k}}
$$

This yields three values of each parameter ($P_{DC,char,k}$, $P_{DC,0,k}$, $c_{2,k}$)—one per voltage level. Each is then linearly fit (least-squares) as a function of voltage, producing the voltage-dependent parameters at the operating voltage $V_{DC}$:

$$
P_{DC,char} = a_{char} + b_{char} \, V_{DC}
$$

$$
P_{DC,0} = a_0 + b_0 \, V_{DC}
$$

$$
C = a_C + b_C \, V_{DC}
$$

where $a$ and $b$ are the intercept and slope of each linear fit.

#### AC power and efficiency

The estimated AC output power is:

$$
P_{AC,inv} = \left[\frac{P_{AC,ref}}{P_{DC,char} - P_{DC,0}} - C(P_{DC,char} - P_{DC,0})\right] (P_{DC} - P_{DC,0})
$$

$$
\quad + C (P_{DC} - P_{DC,0})^2
$$

The term $(P_{DC} - P_{DC,0})$ represents the useful DC power after subtracting self-consumption. The bracketed factor is the linear gain—calibrated so that $P_{AC,inv} = P_{AC,ref}$ when $P_{DC} = P_{DC,char}$. The quadratic term $C(P_{DC} - P_{DC,0})^2$ captures efficiency variation with load.

The efficiency is:

$$
\eta = \frac{P_{AC,inv}}{P_{DC}}
$$

If $P_{DC} = 0$, then $\eta = 0$. In Version 12 and later, $\eta$ is constrained to be non-negative.

Because the model involves two successive fitting steps—a quadratic fit per voltage curve followed by a linear fit across voltages—the resulting efficiency will slightly differ from the reported efficiency at the original curve data points. However, this double-fitting procedure produces a physically realistic surface that is continuously differentiable across the full voltage–power domain, whereas the bilinear interpolation model yields a faceted surface with non-smooth transitions at segment boundaries.

***

## References

* King, D. L., Gonzalez, S., Galbraith, G. M., & Boyson, W. E. (2007). *Performance model for grid-connected photovoltaic inverters.* SAND2007-5036, Sandia National Laboratories. DOI: [10.2172/920449](https://doi.org/10.2172/920449)
* California Energy Commission. *Inverter test protocol.* CEC-CSI, Version 2.2.
