## 2 Materials and Methods
### PV Panel Modeling  
Modeling a photovoltaic (PV) panel presents challenges due to its non-linear behavior. Usually, the single and double diode models can be used for this task. Among these, the single diode model strikes an effective balance between complexity and accuracy, with simpler implementation and fewer parameters involved, making it a favorable choice for modeling PV panels in many applications [17; 47]. The electrical equivalent circuit of the single diode model is shown in Figure 6. It consists of a diode (D1), which accounts for the non-linearity of the PV panel, a photocurrent source (\(I_{ph}\)), a series resistance (\(R_{s}\)) representing internal losses, and a shunt resistance (\(R_{sh}\)) modeling leakage currents. Under uniform operating conditions, the voltage (\(V_{pv}\)) and current (\(I_{pv}\)) of the PV cells follow the relationship described in Equation (1), in which \(n\) is the diode ideality factor, \(K_{B}\) is Boltzmann's constant (1.381 \(\times\) 10\({}^{-23}\) J/K), \(N_{s}\) is the number of cells, \(I_{ph}\) and \(I_{s}\) are the photocurrent and saturation current of the diode, \(T\) is the cell temperature in K, and \(q\) is the electron charge (1.602 \(\times\) 10\({}^{-19}\) C) [47; 48]. \[I_{pv}=I_{ph}-I_{s}\left(e^{\frac{\pi(V_{pv}+I_{pv}R_{s})}{RB_{B}T_{Nb}}}-1 \right)-\frac{V_{pv}+I_{pv}R_{s}}{R_{sh}}. \tag{1}\]  
The terms \(I_{ph}\), \(R_{sh}\), and \(I_{s}\) can be modeled mathematically by (2) to (4), respectively, in which \(G\) is the solar irradiance (in W/m\({}^{2}\)), \(E_{g}\) is the band-gap energy with \(E_{g,ref}=1.12\) eV for silicon, \(K_{i}\) is the temperature coefficient of short circuit current, and \(I_{ph,ref}\) and \(R_{sh,ref}\) are the photocurrent and shunt resistance at standard test conditions (1000 W/m\({}^{2}\) and 298.15 K) [47]. \[I_{ph}=I_{ph,ref}+K_{i}(T-T_{ref})\frac{G}{1000}, \tag{2}\]  
\[R_{sh}=R_{sh,ref}\frac{1000}{G}, \tag{3}\]  
\[I_{s}=I_{s,ref}\left(\frac{T}{T_{ref}}\right)^{3}\exp\left[\frac{qE_{g}}{K_{B} }\left(\frac{1}{T_{ref}}-\frac{1}{T}\right)\right]. \tag{4}\]  
Examining (1) to (4), five key parameters must be identified to accurately model the I-V curve of the PV panel: \(I_{ph,ref}\), \(R_{sh,ref}\), \(n\), \(I_{s,ref}\), and \(R_{s}\). These parameters were determined \begin{table}
\begin{tabular}{l l c} \hline
**Parameter** & **Instrument** & **Uncertainty** \\ \hline Current & Digital multimeter & \(\pm 2\%\) + 0.00001 A \\ Current & Data acquisition system & \(\pm 2\%\) + 0.00001 A \\ Solar Irradiance & Pyranometer & \(\pm 3\%\) W/m\({}^{2}\) \\ Voltage & Digital multimeter & \(\pm 0.5\%\) + 0.01 V \\ Voltage & Data acquisition system & \(\pm 0.5\%\) + 0.01 V \\ Temperature & Type K thermocouple & \(\pm 0.25\,^{\circ}\)C \\ \hline \end{tabular}
\end{table} 
Table 4: Experimental uncertainties. Figure 6: Equivalent circuit of the single-diode model. using the differential evolution (DE) global optimization algorithm, implemented via the _differential_evolution_ function in the SciPy library (v1.15.3). The algorithm was run with the following settings: population size = 15 \(\times\) number of parameters, mutation factor = (0.5, 1), crossover probability = 0.7, and stopping tolerance = 0.01. The initialization was performed via Latin hypercube sampling (init = _latinhypercube_) to ensure a wide search space. The algorithm ran for up to 1000 generations (maxiter = 1000) and used the _best1 bin_ strategy for mutation. Optimization was constrained using physically plausible bounds for each parameter, as presented in Table 5, and defined based on previous results reported in the literature. All other algorithmic parameters were kept at their default values using the _differential_evolution_ function from the SciPy library. These settings proved sufficient for the algorithm to converge to a stable solution with minimal error.