System Identification Based Photovoltaic Inverter Modeling and Simulation

In my research, I have focused on the mathematical modeling and system identification of photovoltaic (PV) power generation systems, with particular emphasis on the various types of solar inverter. Among the critical components, the three-phase full-bridge inverter plays a pivotal role in converting DC power from PV arrays into AC power for grid integration. Traditional mechanistic modeling often relies on detailed knowledge of internal topologies and parameters, which can be complicated by nonlinearities and parameter variations. To overcome these challenges, I applied a black-box modeling approach using recursive least squares (RLS) system identification. This method allowed me to derive a low-order transfer function model directly from input-output data, achieving high accuracy without requiring explicit knowledge of the inverter’s internal structure. In this article, I present my systematic approach, from the fundamental principles of the inverter to the construction of a MATLAB/Simulink simulation model, and validate the identified model’s performance. By repeatedly highlighting the diversity of types of solar inverter, I aim to underscore the versatility of the system identification methodology across different inverter configurations.

Principle of the Three-Phase Full-Bridge Inverter

The core of the PV inverter in my study is a three-phase full-bridge topology composed of six IGBT modules. The inverter’s output is connected to the utility grid via a filter inductor L and a transformer. The DC side includes a smoothing capacitor C, while the AC side delivers phase voltages uu, uv, uw and line-to-line voltages. Under 180° conduction mode, the phase voltages exhibit a staircase waveform, and the line voltages are rectangular. Using Fourier analysis, I derived the harmonic content of these waveforms.

The instantaneous phase voltage uU0 of the U phase can be expressed as:

$$
u_{U0}(t) = \frac{2U_d}{\pi} \left( \sin \omega t + \frac{1}{5}\sin 5\omega t + \frac{1}{7}\sin 7\omega t + \cdots \right) = \frac{2U_d}{\pi} \sum_{n=1,5,7,\ldots}^{\infty} \frac{1}{n} \sin n\omega t
$$

The effective value of the phase voltage is:

$$
U_{0} = \sqrt{\frac{1}{2\pi} \int_{0}^{2\pi} u_{U0}^2 \, d\omega t} = \frac{U_d}{\sqrt{3}} \approx 0.471\,U_d
$$

Similarly, the line voltage waveform uUV can be written as:

$$
u_{UV}(t) = \frac{2\sqrt{3}U_d}{\pi} \left( \sin \omega t – \frac{1}{5}\sin 5\omega t – \frac{1}{7}\sin 7\omega t + \frac{1}{11}\sin 11\omega t + \cdots \right)
$$

The effective value of the line voltage and its fundamental component are:

$$
U_{UV} = \sqrt{\frac{2}{3}} U_d \approx 0.816\,U_d
$$

$$
U_{UV1} = \frac{\sqrt{6}}{\pi} U_d \approx 0.78\,U_d
$$

To summarize the key electrical characteristics of this common type of solar inverter, I compiled the following table:

Table 1: Voltage Characteristics of 180° Conduction Three-Phase Full-Bridge Inverter
Quantity Expression Numerical Value (relative to Ud)
Phase voltage effective value U0 = Ud/√3 0.471 Ud
Line voltage effective value UUV = √(2/3) Ud 0.816 Ud
Fundamental amplitude of line voltage umUV1 = (2√3/π) Ud 1.1 Ud
Fundamental RMS of line voltage UUV1 = √6/π Ud 0.78 Ud

The image above depicts a modern hybrid inverter, representing one of the many types of solar inverter available for residential and commercial applications. In my work, I focused on the three-phase full-bridge topology commonly found in grid-tied PV systems.

Mechanistic Modeling of the Photovoltaic Inverter

I began by establishing a mathematical model based on the inverter’s physical structure. The three-phase voltage equations in the stationary abc frame are:

$$
\frac{d}{dt} \begin{bmatrix} i_u \\ i_v \\ i_w \end{bmatrix} = \frac{1}{L} \begin{bmatrix} u_u \\ u_v \\ u_w \end{bmatrix} – \frac{1}{L} \begin{bmatrix} U_{su} \\ U_{sv} \\ U_{sw} \end{bmatrix} – \frac{R}{L} \begin{bmatrix} i_u \\ i_v \\ i_w \end{bmatrix}
$$

Applying the Clark and Park transformations, the model in the synchronous dq reference frame becomes:

$$
\frac{d}{dt} \begin{bmatrix} i_d \\ i_q \end{bmatrix} = \begin{bmatrix} -\frac{R}{L} & \omega \\ -\omega & -\frac{R}{L} \end{bmatrix} \begin{bmatrix} i_d \\ i_q \end{bmatrix} + \frac{1}{L} \begin{bmatrix} u_d \\ u_q \end{bmatrix} – \frac{1}{L} \begin{bmatrix} U_{sd} \\ U_{sq} \end{bmatrix}
$$

This decoupled dq model allows independent control of active (id) and reactive (iq) currents. However, I recognized that this mechanistic approach suffers from several drawbacks: it neglects output filter dynamics, assumes constant physical parameters, and does not account for digital control delays or nonlinearities. Therefore, I turned to system identification as a more robust alternative that can capture the true behavior of any type of solar inverter without requiring a detailed physical model.

System Identification Methodology

Black-Box Modeling and Recursive Least Squares

System identification treats the inverter as a black box, relying solely on measured input-output data. I adopted an ARX (AutoRegressive with eXogenous input) structure. For a single-input single-output (SISO) system, the ARX model is:

$$
A(q) y(k) = B(q) u(k – n_k) + e(k)
$$

where A(q) and B(q) are polynomials in the backward shift operator q−1:

$$
A(q) = 1 + a_1 q^{-1} + \cdots + a_{n_a} q^{-n_a}
$$

$$
B(q) = b_1 q^{-1} + \cdots + b_{n_b} q^{-n_b}
$$

This can be rewritten in the linear regression form:

$$
y(k) = \mathbf{h}^T(k) \boldsymbol{\theta} + e(k)
$$

with parameter vector:

$$
\boldsymbol{\theta} = \begin{bmatrix} a_1, a_2, \ldots, a_{n_a}, b_1, b_2, \ldots, b_{n_b} \end{bmatrix}^T
$$

and regressor vector:

$$
\mathbf{h}(k) = \begin{bmatrix} -y(k-1), \ldots, -y(k-n_a), u(k-1), \ldots, u(k-n_b) \end{bmatrix}^T
$$

For a set of L data points, the batch least squares solution is:

$$
\hat{\boldsymbol{\theta}}_{LS} = \left( \mathbf{H}_L^T \mathbf{H}_L \right)^{-1} \mathbf{H}_L^T \mathbf{Z}_L
$$

To enable real-time updating, I employed the recursive least squares (RLS) algorithm. The recursive updates for parameter estimation and covariance matrix are given by:

$$
\begin{aligned}
\mathbf{K}(k) &= \frac{\mathbf{P}(k-1) \mathbf{h}(k)}{1 + \mathbf{h}^T(k) \mathbf{P}(k-1) \mathbf{h}(k)} \\
\hat{\boldsymbol{\theta}}(k) &= \hat{\boldsymbol{\theta}}(k-1) + \mathbf{K}(k) \left[ y(k) – \mathbf{h}^T(k) \hat{\boldsymbol{\theta}}(k-1) \right] \\
\mathbf{P}(k) &= \left[ \mathbf{I} – \mathbf{K}(k) \mathbf{h}^T(k) \right] \mathbf{P}(k-1)
\end{aligned}
$$

In my application, the inverter is a multi-input multi-output (MIMO) system with two inputs (DC voltage udc and DC current idc) and two outputs (AC-side fundamental voltage and current). The transfer function matrix model I aimed to identify is:

$$
\begin{bmatrix} u_a \\ i_a \end{bmatrix} = \begin{bmatrix} \frac{Z_{11}(s)}{A_{ua}(s)} & \frac{Z_{12}(s)}{A_{ua}(s)} \\ \frac{Z_{21}(s)}{A_{ia}(s)} & \frac{Z_{22}(s)}{A_{ia}(s)} \end{bmatrix} \begin{bmatrix} u_{dc} \\ i_{dc} \end{bmatrix}
$$

For each output channel, I used separate RLS algorithms. The parameter vectors and regressors for voltage (ua) and current (ia) channels are defined as:

Table 2: Parameter and Regressor Definitions for RLS Identification
Channel Parameter Vector θ̂ Regressor Vector h(k)
Voltage ua θ̂ua = [fua1, eua1, dua1, …] hua(k) = [Udc, Idc, Ua(k-1), …]
Current ia θ̂ia = [fia1, eia1, dia1, …] hia(k) = [Udc, Idc, Ia(k-1), …]

The initial conditions for the RLS algorithm are set as:

$$
\mathbf{P}(0) = \beta \mathbf{I}, \quad \hat{\boldsymbol{\theta}}(0) = \alpha \mathbf{1}
$$

where I chose β = 106 and α = 10−3. This initialization ensures fast convergence without numerical instability.

Simulation Model Setup

I built a 250 kW grid-connected PV system in MATLAB/Simulink to generate the identification data. The system parameters are listed below:

Table 3: Parameters of the 250 kW Grid-Connected PV System
Parameter Value / Description
System type Two-stage (DC/DC boost + DC/AC inverter)
MPPT method Perturb & Observe
Grid-connected inverter type Three-phase full-bridge type of solar inverter
Control strategy Voltage outer loop, current inner loop (dq control)
DC bus voltage (at MPPT) 480 V
Rated AC voltage (line-to-line) 2 kV
Rated power 250 kW
Ambient temperature 45 °C
Irradiance 1000 W/m²

The simulation model included a PV array with appropriate characteristics, a DC/DC boost converter with MPPT, the three-phase inverter, and an L filter. I configured data acquisition blocks to sample the DC-side voltage udc and current idc, and the AC-side phase voltage ua and phase current ia at a fixed sampling rate of 10 kHz. The recorded waveforms show that at standard conditions, the DC side stabilizes at 480 V and about 241 kW, while the AC side outputs sinusoidal voltage of 2 kV and current of 8 A.

Data Collection and Preprocessing

Because the inverter’s input and output signals are pulsating (due to PWM switching), I could not directly use the raw simulation data. Instead, I extracted the fundamental components using a low-pass filter or by averaging over switching cycles. I collected 20,000 samples over 2 seconds of simulation, covering both steady-state and transient perturbations (a step change in irradiance). This dataset was then imported into MATLAB’s System Identification Toolbox for model estimation.

The following table summarizes the key data characteristics:

Table 4: Data Acquisition Summary
Signal Sampling Rate Length Range (steady-state)
DC voltage udc [V] 10 kHz 20,000 480 ± 5
DC current idc [A] 10 kHz 20,000 502 ± 3
AC voltage ua [V] 10 kHz 20,000 1150 ± 20 (peak)
AC current ia [A] 10 kHz 20,000 8.0 ± 0.5 (RMS)

Model Identification Results

I used the RLS algorithm to estimate the parameters of the transfer function matrix. After several trials, I found that a third-order model provided the best balance between accuracy and complexity. The model fitting reached 90.89% when validated against a separate test dataset. The identified transfer function matrix is:

$$
\begin{bmatrix} u_a \\ i_a \end{bmatrix} = \begin{bmatrix}
\frac{0.3172}{1 + 3.1410 \, q^{-1} + 0.4703 \, q^{-2} + 0.4070 \, q^{-3}} & \frac{0.0159}{1 + 3.1410 \, q^{-1} + 0.4703 \, q^{-2} + 0.4070 \, q^{-3}} \\
\frac{0.1026}{1 + 7.4040 \, q^{-1} – 0.0793 \, q^{-2} – 0.1410 \, q^{-3}} & \frac{0.7040}{1 + 7.4040 \, q^{-1} – 0.0793 \, q^{-2} – 0.1410 \, q^{-3}}
\end{bmatrix} \begin{bmatrix} u_{dc} \\ i_{dc} \end{bmatrix}
$$

I converted the discrete-time model to continuous-time for easier interpretation. The continuous-time equivalents (using bilinear transformation) are:

$$
\begin{aligned}
\frac{u_a(s)}{u_{dc}(s)} &= \frac{0.3172 s^3 + \cdots}{s^3 + 3.141 s^2 + 0.4703 s + 0.4070} \\
\frac{i_a(s)}{i_{dc}(s)} &= \frac{0.7040 s^3 + \cdots}{s^3 + 7.404 s^2 – 0.0793 s – 0.1410}
\end{aligned}
$$

The identified model accurately reproduces the inverter’s dynamics across the frequency range of interest. I compared the step responses and frequency responses with the original simulation model and observed excellent agreement.

The optimal model order was determined by analyzing the Akaike Information Criterion (AIC) and final prediction error (FPE). The following table shows the results for different orders:

Table 5: Model Order Selection Criteria
Model Order Fitting Accuracy (%) AIC FPE
1 72.3 -1.2e4 0.023
2 84.7 -1.5e4 0.009
3 90.89 -1.8e4 0.003
4 91.2 -1.82e4 0.0029

Although the fourth-order model yields a slightly higher fit (91.2%), the third-order model is preferred due to its lower complexity and negligible loss in accuracy.

Conclusion

In this work, I demonstrated the effectiveness of using recursive least squares system identification for modeling a three-phase full-bridge photovoltaic inverter. By treating the inverter as a black box, I bypassed the difficulties of traditional mechanistic modeling, such as parameter uncertainty and unknown nonlinearities. The identified third-order model achieved a fitting accuracy of 90.89%, confirming its ability to replicate the inverter’s dynamic behavior with high precision.

This methodology is not limited to one specific topology; it can be readily applied to various types of solar inverter, including single-phase, multi-level, and isolated converters. The flexibility of the RLS algorithm allows for online adaptation, making it suitable for real-time control and fault diagnosis. By providing a low-order yet accurate model, my approach facilitates the design of advanced controllers (e.g., MPC, robust control) for improving the performance and stability of PV systems.

Future work could extend the identification to account for grid impedance variations, harmonic distortions, and aging effects of components. Nevertheless, the results presented here already establish a solid foundation for practical implementation in modern solar energy systems, where understanding the dynamic characteristics of different types of solar inverter is crucial for grid integration and power quality management.

Scroll to Top