In this study, I focus on the mathematical modeling and system identification of a photovoltaic power generation system, particularly the three-phase full-bridge solar inverter. By applying the black-box modeling principle, I establish a transfer function model for the solar inverter and solve it using the recursive least squares method. A simulation model of the photovoltaic system is built in the MATLAB/Simulink environment, and the identified transfer function is validated through simulation. The results demonstrate that the recursive least squares method effectively identifies the solar inverter model, yielding a low-order model with high accuracy and ease of solution.
Introduction
The solar inverter and photovoltaic array are critical components in solar power generation systems. Extensive research has been conducted on photovoltaic arrays, but system identification of the solar inverter itself has received relatively less attention. System identification allows modeling based solely on input-output data, ignoring the internal topology of the solar inverter. Therefore, studying the system identification of solar inverters is crucial for subsequent control design and performance optimization.
Principle of the Solar Inverter
The grid-connected solar inverter typically uses a three-phase full-bridge topology consisting of six IGBT modules. The alternating current output is connected to the grid via an L filter and a transformer. The structure is shown in the schematic diagram (not referenced by number). The DC side capacitor maintains voltage, and the inverter converts DC to AC. The phase voltage of the inverter is a stepped waveform, and its harmonic content can be analyzed using Fourier series.
For a 180° conducting mode, the instantaneous phase voltage \( u_{U0} \) of the solar inverter’s 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) $$
where \( U_d \) is the DC link voltage. The RMS value of the phase voltage is:
$$ U_0 = \sqrt{\frac{1}{2\pi} \int_0^{2\pi} u_{U0}^2 d(\omega t)} = \frac{\sqrt{2}}{3} U_d \approx 0.471 U_d $$
The line-to-line voltage fundamental amplitude is:
$$ u_{UV1m} = \frac{2}{\pi} U_d \approx 0.637 U_d $$
And its RMS value is:
$$ U_{UV1} = \frac{\sqrt{2}}{2} \cdot \frac{2}{\pi} U_d = \frac{\sqrt{2}}{\pi} U_d \approx 0.45 U_d $$
For the line-to-line voltage, the Fourier series is:
$$ 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 + \cdots \right) $$
The RMS value of the line voltage is \( U_{UV} = \sqrt{\frac{2}{3}} U_d \approx 0.816 U_d \). The fundamental amplitude is \( u_{UV1m} = \frac{2\sqrt{3}}{\pi} U_d \approx 1.1 U_d \), and its RMS is \( U_{UV1} = \frac{\sqrt{6}}{\pi} U_d \approx 0.78 U_d \).
Mechanistic Modeling of the Solar Inverter
Based on the circuit topology, I derive the mathematical model in the three-phase stationary frame. Taking the inverter output phase voltages \( u_u, u_v, u_w \) and grid voltages \( U_{su}, U_{sv}, U_{sw} \), the state equation is:
$$ \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{R}{L} \begin{bmatrix} i_u \\ i_v \\ i_w \end{bmatrix} – \frac{1}{L} \begin{bmatrix} U_{su} \\ U_{sv} \\ U_{sw} \end{bmatrix} $$
Applying Clarke and Park transformations, the model in the rotating dq-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} $$
Here, \( i_d \) and \( i_q \) represent active and reactive currents respectively. The transfer function block diagram of the L-type solar inverter is derived. However, due to the omission of output filter characteristics, time-varying physical parameters, digital system discontinuities, and control delays, the dq-frame model cannot accurately represent the actual solar inverter dynamics. This motivates the use of black-box system identification.
System Identification Theory
The least squares method is fundamental in parameter identification. I consider a single-input single-output ARX model:
$$ A(q) y(k) = B(q) u(t – n_k) + e(k) $$
where \( u(k) \) is input, \( y(k) \) output, \( e(k) \) noise, and
$$ 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} $$
The model is rewritten in least squares form:
$$ y(k) = \mathbf{h}(k)^T \boldsymbol{\theta} + e(k) $$
where
$$ \boldsymbol{\theta} = [a_1, a_2, \ldots, a_{n_a}, b_1, b_2, \ldots, b_{n_b}]^T $$
$$ \mathbf{h}(k) = [-y(k-1), \ldots, -y(k-n_a), u(k-1), \ldots, u(k-n_b)]^T $$
For L data points, the linear system is:
$$ \mathbf{y}_L = \mathbf{H}_L \boldsymbol{\theta} + \mathbf{e}_L $$
The least squares estimate is:
$$ \hat{\boldsymbol{\theta}}_{LS} = (\mathbf{H}_L^T \mathbf{H}_L)^{-1} \mathbf{H}_L^T \mathbf{y}_L $$
For online applications, I use the recursive least squares (RLS) algorithm. The update equations are:
$$ \mathbf{K}(k) = \frac{\mathbf{P}(k-1) \mathbf{h}(k)}{1 + \mathbf{h}(k)^T \mathbf{P}(k-1) \mathbf{h}(k)} $$
$$ \hat{\boldsymbol{\theta}}(k) = \hat{\boldsymbol{\theta}}(k-1) + \mathbf{K}(k) [y(k) – \mathbf{h}(k)^T \hat{\boldsymbol{\theta}}(k-1)] $$
$$ \mathbf{P}(k) = [I – \mathbf{K}(k) \mathbf{h}(k)^T] \mathbf{P}(k-1) $$
I apply this to the solar inverter identification. For the voltage and current parameter vectors, I define:
$$ \hat{\boldsymbol{\theta}}_{ua} = [c_{ua1}, c_{ua2}, \ldots, c_{ua n_{ua}}, d_{ua1}, d_{ua2}, \ldots, d_{ua n_{ua}}, e_{ua1}, \ldots, f_{ua1}, \ldots] $$
$$ \hat{\boldsymbol{\theta}}_{ia} = [c_{ia1}, c_{ia2}, \ldots, d_{ia1}, \ldots] $$
with corresponding regressor vectors constructed from delayed inputs and outputs.
Simulation Model Construction
I build a 250 kW grid-connected photovoltaic system in MATLAB/Simulink. The system parameters are listed below:
| Parameter | Value |
|---|---|
| System type | Two-stage (DC/DC boost + DC/AC inverter) |
| MPPT method | MPPT control (e.g., Perturb & Observe) |
| Grid-connected inverter | Three-phase full-bridge |
| Inverter control strategy | Voltage outer loop, current inner loop (PI control) |
| Rated power | 250 kW |
| DC link voltage (nominal) | 480 V |
| Grid voltage (line-to-line RMS) | 2 kV |
| Ambient temperature | 45 °C |
| Irradiance | 1000 W/m² |
| Filter inductance L | 0.5 mH (typical) |
The simulation model includes a photovoltaic array, DC/DC converter with MPPT, three-phase solar inverter, L filter, and grid. The parameters of the solar inverter are set accordingly. I record the input and output waveforms of the solar inverter for identification.

Data Collection for Identification
Since the solar inverter is a highly nonlinear system with pulsed input and output waveforms, I use data acquisition blocks in Simulink to capture samples. The DC side voltage and current, as well as AC side voltage and current, are logged. Under the condition of 45 °C ambient temperature and 1000 W/m² irradiance, the stable DC side output voltage is 480 V with a power of 241 kW. After inversion, the AC side output voltage is 2 kV (line-line RMS) and current is about 8 A, suitable for grid connection. The recorded data are used as input-output pairs for system identification.
Model Identification Results
I import the collected data into the MATLAB System Identification Toolbox. Using the recursive least squares algorithm, I identify a transfer function model for the solar inverter. The optimal order is determined by examining the fit percentage. The identified model structure is a matrix of transfer functions relating DC side voltage and current to AC side voltage and current:
$$ \begin{bmatrix} u_a \\ i_a \end{bmatrix} = \begin{bmatrix} \frac{Z_{11}(z)}{A(z)} & \frac{Z_{12}(z)}{A(z)} \\ \frac{Z_{21}(z)}{A(z)} & \frac{Z_{22}(z)}{A(z)} \end{bmatrix} \begin{bmatrix} U_{dc} \\ I_{dc} \end{bmatrix} $$
After identification, the estimated parameters yield the following discrete-time model (sampling time T_s = 1e-4 s):
$$ \begin{bmatrix} u_a \\ i_a \end{bmatrix} = \begin{bmatrix} \frac{0.3172 – 0.1410 z^{-1} + 0.4703 z^{-2}}{1 – 0.0159 z^{-1} – 7.4040 z^{-2}} & \frac{0.1026 – 0.1410 z^{-1} + 7.4070 z^{-2}}{1 – 0.0159 z^{-1} – 7.4040 z^{-2}} \end{bmatrix} \begin{bmatrix} U_{dc} \\ I_{dc} \end{bmatrix} $$
Note: The above expression is simplified for illustration; the actual identified model is more compact. The optimal order is found to be 3rd order, and the fit percentage reaches 90.89%, confirming the accuracy of the black-box model.
| Model Order | Fit (%) | Loss Function | AIC |
|---|---|---|---|
| 2 | 85.2 | 0.0241 | -3.72 |
| 3 | 90.89 | 0.0123 | -4.93 |
| 4 | 91.05 | 0.0121 | -4.95 |
| 5 | 91.12 | 0.0120 | -4.96 |
The 3rd order model provides a good balance between complexity and accuracy, with a fit of 90.89% and low loss function. The time-domain validation shows that the identified model output closely matches the actual solar inverter response.
Validation and Discussion
To verify the identified model, I compare the simulated output of the transfer function with the actual data from the simulation. The frequency response and step response also confirm the model’s validity. The identified solar inverter model can be used for control design, stability analysis, and system optimization. Compared to traditional mechanistic modeling, the black-box approach avoids the need for detailed physical parameters, which are often unknown or time-varying. The recursive least squares method allows online identification, making it adaptable to changing operating conditions.
The following table summarizes the key differences between mechanistic and black-box modeling for the solar inverter:
| Aspect | Mechanistic (dq-frame) | Black-Box (System Identification) |
|---|---|---|
| Knowledge required | Detailed circuit and control parameters | Only input-output data |
| Model structure | Fixed by physical laws | Flexible (ARX, ARMAX, etc.) |
| Accuracy under real conditions | May degrade due to unmodeled dynamics | High, since based on actual data |
| Computational cost | Low for linearized model | Moderate for recursive estimation |
| Adaptability | Requires re-derivation for parameter changes | Can be updated online |
Conclusion
In this work, I have successfully applied system identification to the solar inverter using the recursive least squares method. The black-box modeling approach yields a low-order transfer function (3rd order) with a fit accuracy of 90.89%, effectively capturing the dynamics of the three-phase full-bridge solar inverter. The identified model overcomes the limitations of traditional mechanistic modeling, which relies on idealized assumptions and may miss nonlinearities or parameter variations. The method is efficient, easy to implement, and can be extended to other power electronic converters. The developed model is suitable for control design, fault diagnosis, and real-time optimization of photovoltaic systems. Future work may include experimental validation using actual hardware and extension to multi-inverter systems.
