Obtention of solar cell parameters, through convergence of iterative cycles. Part 1: Theoretical analysis and cycles proposal

In this Part 1 of this series of articles, two iterative cycles are proposed to accurately determine the shunt resistance (Rsh), the series resistance (Rs), the ideality factor (n), the light current (Ilig), and the saturation current (Isat) of solar cells, within the one diode model. First, Rs and n are obtained linearly fitting ∂V∂lnI′vs.I′, where I′ is a new defined current I′=I+Isat+Ilig−V−IRsRsh+nkTRsh. Then, Rsh and Isat are obtained using Procedure A and B proposed in [2]. Once these four solar cell parameters are obtained, a correction to Ilig is deduced and applied. The deduction of these five solar cell parameters is reused to recalculate I′ and the iterative cycles are redone till some convergence criteria is achieved. The accuracy and number of cycles necessary to achieve reasonable results are tested and discussed on ideal (noiseless) current voltage (IV) curves with measured points per voltage of PV=11, 21, 51 and 101 measured pointsV. These two cycles are compared with two different common parameter extraction methods. The results given in this Part 1 are used in Part 2 to calculate the five solar cell parameters of IV curves found in the literature.

In this Part 1 of this series of articles, two iterative cycles are proposed to accurately determine the shunt resistance ( ℎ ), the series resistance ( ), the ideality factor ( ), the light current ( lig ), and the saturation current ( sat ) of solar cells, within the one diode model. First, and are obtained linearly fitting ′ vs. ′ , where ′ is a new defined current ′ = + + − − ℎ + ℎ . Then, ℎ and sat are obtained using Procedure A and B proposed in [2]. Once these four solar cell parameters are obtained, a correction to lig is deduced and applied. The deduction of these five solar cell parameters is reused to recalculate ′ and the iterative cycles are redone till some convergence criteria is achieved. The accuracy and number of cycles necessary to achieve reasonable results are tested and discussed on ideal (noiseless) current voltage ( ) curves with measured points per voltage of = 11, 21, 51 and 101 measured points . These two cycles are compared with two different common parameter extraction methods. The results given in this Part 1 are used in Part 2 to calculate the five solar cell parameters of curves found in the literature.

Introduction
The world ecological problems are well known, due to the mass consumption of fossil fuels in the last centuries. Concomitantly, humanity energy consumption continues increasing every year, and it is foretold that it will increase from the current value of 10 TW to around 30 TW by the year 2050. This increase in energy consumption, together with the ecological problems, impel humanity to find and enact naturefriendly methods to produce energy, i.e., reducing significantly the CO 2 and other carbon related gases emission. Solar cells have shown to be suitable candidates to accomplish this, as they produce cheap energy in an ecological manner [1].
Several models can be found in the literature to describe the solar cell performance, but it is the one-diode solar cell model which is the most used, due to its simplicity (see equation (1) and Fig. 1 in [2]). For this solar cell model, the parameters are the shunt resistance ( ℎ ), the series resistance ( ), the light current ( lig ), the ideality factor ( ), and the saturation current ( sat ), according to Fig. 1 in [2]. Several types of measurements are performed on the solar cells to obtain these parameters. The current voltage ( ) measurement is one of the most widely used techniques, both in darkness and illumination, to extract these solar cell parameters [3,4].
The accurate determination of ℎ , , lig , sat and is of utterly importance. Scientifically, they provide valuable information of any physical phenomena occurring within the solar cell, which in turns helps to technologically improve them, resulting in suitable commercial products. For example, a low value of ℎ is a signal of poor material manufacturing quality (like crystal defects and unintentional impurities), providing alternative current paths to the generated electron-hole pairs [5]. On the contrary, a large value of reveals bad ohmic contacts and/or high material resistance [6,7]. On both cases, they have the pernicious effect to reduce the efficiency of the solar cell [5,6,7]. Regarding sat and , they are an indication of the solar cell quality [8]. sat represents the sum of all the recombination mechanisms inside the emitter, such as Auger, Schockley-Read-Hall (SRH), contact and surface mechanisms [8]. sat is also affected by band-gap narrowing due to heavy doping effects [8]. In the case of , a value of 1 is due to minority carrier diffusion, while a value smaller or equal to 2 is evidence that the charge carrier generation/recombination occurs within the depletion region. Values larger than 2 could be due to shunt resistance effects and/or non-uniformities in the distribution of recombination centres [9]. Finally, lig (also known as the photocurrent) depends on the donor and acceptor densities, as on the life times of the charge carriers [10]. Several articles on their impact on the solar cell performance have been reported [5,6,7,8,9,10,11,12] , lig , sat and for a single , independently of illumination conditions, can be found in the introduction of [13]. Briefly, only a handful of techniques can be used to a single curves, independent of illumination conditions and approximations. One of them is the Ortiz-Conde et al. method [14], but its accuracy is very sensitive to noise and number of measured points [13,15]. Other techniques are Procedure A and Procedure B proposed in [2,16]. Finally, other methods are based in Monte Carlo simulations, artificial neuronal networks, nonlinear least-squares method, exponential model, or ab initio calculations [17,18,19,20,21,22,23,24,25,26]. A review of the limitations and assumption validity of these main techniques can be found in [27]. This explains the intention of this series of articles. To propose two iterative cycles to determine more accurately the solar cell parameters, within the one-diode solar cell model. This article is divided into the following sections. Following this brief introduction, in Section 2 the theoretical analysis and the proposal of the iterative cycles, is given. At the same time, the description of the programs CycleB, CycleAroot and CycleAmanual is provided. Section 3 describes that a density of points of = 11 in the curves is not enough to obtain convergence using program Cy-cleAmanual, while this value of is enough to obtain convergence using program CycleB. Something similar happens with a value of = 21 , as it is shown in Section 4. In both Sections 3 and 4, the problems of program CycleAroot to obtain the right value of to achieve ℎ = 0, are described. It is concluded that the right value of to achieve ℎ = 0 should be obtained manually, as it is done in program CycleAmanual. Section 5 is next, where a value of = 51 is used and discussed. In this case, and with larger values of , convergence is obtained using either program Cy-cleAmanual or program CycleB. In Section 6 a similar analysis is done, but considering a value of = 101 . In Section 7, the application of the Ortiz-Conde et al. technique [14] and the Zhang et al. technique [28] is done on the curves, for comparison purposes. Notice that this application is done on the ideal (noiseless) curves, to simplify comparison, as it has been shown that unrealistic parameters can be obtained, in case the curves have noise [13,15], using the Ortiz-Conde et al. technique [14]. Discussion is given in Section 8 and finally, conclusions are given in Section 9.

Theoretical analysis
For completeness purposes, and as it will be used in the discussion below, the curve of a solar cell, within the one-diode model (equation (1) in [2]) is reproduced next: In their proposal of two procedures to obtain ℎ and sat [2,16], Rangel-Kuoppa et al. first extended the Cheung method [29,30,31], which was originally proposed for Schottky contacts, to use it in equation (1), obtaining an upper limit for sat . According to the discussion in Section 2 in [2], the application of the Cheung method is achieved assuming ℎ → ∞ and − ≫ 1. This allows to rewrite equation (1) as The linear fit of vs. yields and , while lig is approximated to the short-circuit current ( ), i.e., ≅ − . Once this is achieved, values for ℎ and sat were obtained, using the Procedures A and B proposed in [2] (see Section 2 in [2]). Using these procedures, the solar cell parameters were obtained, and comparison with other two popular procedures, namely the Zhang et al. [28], and the Ortiz-Conde et al. [14], more accurate determination was achieved (see Section 4 in [2] and Sections 4 and 5 in [16]).
Once ℎ and sat were obtained, it would be very convenient, if they could be considered again in the application of equation (2). To achieve this, the following analysis is done.
If the in equation (1) is done, the following expression is obtained: Defining a new current ′ equation (3) can be rewritten as At the same time, it is well known that Then, in order to write equation (5) as equation (2), to apply the same linear fit to obtain and , it is necessary to prove that ′ = . This is done next. On one hand At the same time, using equation (4), ′ can be expressed as It is known that the following approximation is valid for large voltages [32] ∼ Introducing equation (9) into equation (8) yields And then equation (7) becomes Introducing equation (11) in equation (5) and using equation (6), then equation (4) becomes which is mathematical indistinguishable from equation (2), and then the linear fit of ′ versus ′ yields again and , in this case using the definition of ′ (equation (4)), i.e., after considering the values of ℎ , , lig , sat and determined the first time using the linear fit of equation (2) and Procedures A or B in [2].
Simultaneously, once an estimation of ℎ , , lig , sat and were obtained, it would also be convenient if they could be used to refine the estimation of as − , i.e., ≅ − . Using the approximation at low voltages: equation (1) can be rewritten as Evaluating equation (14) at = 0, then ( = 0) = , and solving for the following expression is obtained As they will be needed in the proposal done next, the equations of ℎ and (equation s (9) and (10) in [2]) are reproduced: The former discussion, suggests that the following cycles could be implemented. First, Cheung et al. method is applied in equation (2), assuming ℎ → ∞, ≅ − and ≅ 0. This provides and . Second, either Procedure A or B in [16] is applied to obtain ℎ and . Once they are obtained, the refinement of using equation (15) is calculated, and using the solar cell parameters so far obtained, the new ′ proposed in equation (4) is calculated, and the Cheung method is used again, this time using ′ , to obtain new and , which are again used one more time in Procedure A or B in [16] to obtain new ℎ and . The cycle continues till some convergence criteria is achieved. This is schematically shown in Fig. 1.
The proposed cycles were programmed. In case Procedure A (Procedure B) is used in the cycle, then the cycle is called CycleA (CycleB).
For both programs, when the cycles are started, the linear fit of equation (12) is done, calculating ′ in equation (4). For the first cycle, ′ is calculated assuming the following approximations: ≅ − , = 1, = 0 and ℎ = 10 30 Ω. This is equivalent to transform equation (12) to equation (6) in [2]. Once the linear fit of equation (12) was done and the first estimations of and were obtained, then either Procedure A or B was used. This is discussed next.
The nature of equation (17) causes that, when Procedure B is used, the plot of decreases from positive values close to = 0 if ℎ is below the correct value of ℎ , becoming negative for values of ℎ larger than the correct value of ℎ (see for example Fig. 7 in [2]). This means that the slope of the linear fit of equation (17) ( ), is positive (negative) for values of ℎ lower (larger) than the correct value of ℎ . Then, the program for CycleB was done, such that the user can indicate an initial and final ℎ and the number of ℎ points to be tested in the interval. The program calculated each of the linear fitting of equation (17) for each ℎ in the defined interval and plot as function of ℎ . Varying the ℎ interval, the user finds the optimal value of ℎ that causes = 0. At the same time, as it is discussed in Section 3.2 in [2], equation (17) has a negative resonance when → 0 and it is necessary to avoid it, skipping some measured points close to = 0. The program was implemented such that user can indicated how many of these points are skipped when calculating for each ℎ . A video example (named CycleB) of the use of program CycleB can be found in the supplementary material [33].
A similar idea was attempted using Procedure A. However, equation (16) does not show the same nature as the one just described for equation (17), . ., that a single root is easily observed when plotting ℎ vs.
. This can be seen, for example, in Fig. 5 in [2]. When varying the value of to find the optimal value such that the linear fitting of equation (17) yields a slope ℎ = 0, a resonance is found at some value of , and just the slightest variation in causes the plot of equation (17) to show large negative or positive values for some values of , causing ℎ to drastically fluctuate between negative and positive values, making it impossible to find a proper value of that can be considered the single value that causes ℎ = 0. In order to describe this, a program was done, called CycleAroot where this was attempted. A video example (named also CycleAroot) of the use of this program can be found in the supplementary material [33], where it is shown the impossibility to use the same idea as in CycleB to find the right value of . In this video, an ideal (noiseless) curve is used to expose this situation. The situation is even worse when curves with noise are used. Further discussion about this is given below in Section 3 and 4.
Due to this problematic, another program (called CycleAmanual) was done using Procedure A, where the user manually finds the optimal value of that causes ℎ = 0. An example of the use of this program can be found in the video called CycleAmanual, in the supplementary material [33]. It is this program that is used in all sections in this article.
It is worth mentioning that currently the suitability of the cycles to deduce the solar cell parameters are currently being investigated for cases of ℎ values of 0.01 and 0.1, i.e., with values of 10 Ω and 100 Ω, while keeping ℎ = 1 kΩ, and percentage noise of =0.01%, 0.1% and 1%. Also, the use of more terms of the polynomial approximation in equation (13) is explored to improve the cycles. The results of this research will be published elsewhere.
The results obtained in this Part 1, are used in real experimental curves in Part 2 [55], revealing the suitability of the iterative cycles to obtain the solar cell parameters for different solar cells/panels, both in darkness and under illumination [55].

Analysis using = measured points
The curves with = 11 were tested using CycleAmanual and CycleB and the results can be observed in Fig. 2.abcdef) and Fig. 3.abcdef), respectively. Also, CycleAroot was used and its application is seen in Fig. 4.
In both cases, the linear fit of ′ vs. ′ yields a value around = 1.15 Ω, in reasonable agreement with the original value of = 1 Ω. However, a value of = 3.5 is obtained, with an error of 40% from the   correct value of = 2.5. The application of Procedure A in CycleAmanual (see Fig. 2(a)) always yielded unrealistic negative values for ℎ , while sat oscillated between 10 and 35 μA. Nevertheless, this did not have a noticeable effect on linear fit of ′ vs. ′ , when recalculating ′ . As can be seen in Fig. 2(e) and (f), convergence was never achieved using CycleAmanual in any of the solar cell parameters. This is not the case using CycleB, where convergence was achieved in all parameters (see Fig. 3.ef)). Interestingly in this case, converge, but increasing its value from 3.39 to 3.41. This is not the case when has larger values, as it is discussed below. The percentage errors using CycleAmanual are around 70%, while using CycleB are around 20% (see Fig. 2 and  3.d)). Regarding the integral percentage errors, there is no convergence using CycleAmanual, fluctuating between values of 10 and 70% (see Fig. 2.e)). This is not the case using CycleB, where the integral percentage errors converge from a value of 21.5% to 13.5% (see Fig. 3.e)). Further analysis and discussion is given in Section 7.
The application of program CycleAroot, using 400 points and 1000 points in the interval from 0.02 μA to 200 μA, is shown in Fig. 4.ab), respectively. It can be observed that four roots are available, making it impossible to assign one single root. This situation of several roots was also observed when = 21 measured points V , and it is discussed further in the following Section.

Analysis using = measured points
The curves with = 21 were tested using CycleAmanual and CycleB and the results can be observed in Fig. 5.abcdef) (Fig. 6.abcdef)), respectively. Also CycleAroot was used and its application is seen in Fig. 7.
In both cases, the linear fit of ′ vs. ′ yields a = 1.1 Ω, in reasonable agreement with the original value of = 1 Ω. In the case of the ideality factor, a value of = 3 is obtained, with an error of 20% from the correct value of = 2.5. The application of Procedure A in CycleAmanual (see Fig. 2.a)) caused ℎ to fluctuate between unrealistic negative and positive values, while sat oscillated between 4 and 7 μA. In both cases, it never converged, despite fourteen cycles were attempted. Nevertheless, this did not have a noticeable effect on linear fit of ′ vs. ′ , when recalculating ′ . As can be seen in Fig. 5.ef), convergence was never achieved using CycleAmanual in any of the solar cell parameters. This is not the case using CycleB, where convergence was achieved in all parameters (see Fig. 6.ef)). Contrary to the behaviour shown for = 11 (see Section 3), converge, but decreasing its value from 3.05 to 2.9. The percentage errors using CycleAmanual are around 30%, while using CycleB are around 10% (see Fig. 5 and 6.d)). Regarding the integral percentage errors, there is   no convergence using CycleAmanual, fluctuating between values of 5 and 25% (see Fig. 2.e)). This is not the case using CycleB, where the integral percentage errors converge, increasing from a value of 8.1% to 8.8% (see Fig. 6.e)). Further analysis and discussion is given in Section 7.
The application of program CycleAroot, using 400 points and 1000 points in the interval from 0.02 μA to 200 μA, is shown in Fig. 7.ab), respectively. It can be observed that at least eight roots are available, causing it impossible to assign one single root. The situation is even worse when increasing the value of (not shown in this article). This is the deficiency of program CycleAroot: that a single accurate value of sat cannot be determined, and the reason why CycleAmanual was implemented. The application of the program CycleAroot was not investigated further.

Analysis using = measured points
The curves with = 51 were tested using CycleAmanual and CycleB and the results can be observed in Fig. 8.abcdef) (Fig. 9.abcdef)), respectively.
In both cases, the linear fit of ′ vs. ′ yields a = 1.04 Ω, in reasonable agreement with the original value of = 1 Ω. In the case of the ideality factor, a value of = 2.76 is obtained, with an error of 10 % from the correct value of = 2.5. The solar cell parameters converge to reasonable values, using both CycleB and CycleAmanual (see Fig. 8.ef) and Fig. 9.ef)). However, all of them fluctuate during the first three cycles. Six cycles are a reasonable number of cycles to achieve convergence. The percentage errors using CycleAmanual are around 50% (10%) for low (high) voltages, while using CycleB are around 10% (see Fig. 8 and 9.d)). Regarding the integral percentage errors, using CycleAmanual, it quickly converges to a value of 9% (see Fig. 8.e)). This is not the case using CycleB, where the integral percentage errors converge, increasing from a value of 3.8% to 4.9% (see Fig. 9.e)). Further analysis and discussion is given in Section 7.

Analysis using = measured points
The curves with = 101 were tested using CycleAmanual and CycleB and the results can be observed in Fig. 10.abcdef) (Fig. 11.abcdef)), respectively.
In both cases, the linear fit of ′ vs. ′ yields a = 1.01 Ω, in reasonable agreement with the original value of = 1 Ω. In the case of the ideality factor, a value of = 2.67 is obtained, with an error of 6.8 % from the correct value of = 2.5. The solar cell parameters con-  Table 1. Results of the application of the Ortiz-Conde et al. [14] (no superscript), Zhang et al. techniques [28] (superscript (b)), CycleA (superscript (c)), and CycleB (superscript (d)).
Curve  verge to reasonable values, using both CycleAmanual and CycleB (see Fig. 10.ef) and Fig. 11.ef)). Four cycles are a reasonable number of cycles to achieve convergence. The percentage errors using CycleAmanual are around 10% (5 %) for low (high) voltages, while using CycleB are around 5% (see Fig. 10 and 11(d)). Regarding the integral percentage errors, using CycleAmanual (CycleB), it quickly converges to a value of 3.8% (2.8%) (see Fig. 10.e) and Fig. 11.e)). Further analysis and discussion is given in Section 7.

Application of the Ortiz-Conde et al. and the Zhang et al. method
The Ortiz-Conde et al. technique [14] and the Zhang et al. technique [28], are two common techniques used to obtain the solar cell parameters. A brief discussion about them can be found in Section 3 of [16]. In Fig. 12.abcd)-13, the application of Ortiz-Conde et al. technique [14] is shown, while in Fig. 14.ab), the application of Zhang et al. technique [28] is exposed, in IV4. The MATLAB optimization procedure proposed by Zhang et al. was not applied, which is the reason why sat was not obtained in this case [28]. Their results, together with the results of the application CycleAmanual and CycleBroot, are summarized in Table 1. In Fig. 15.abcd), the percentage errors obtained by each method, relative to the original known values of ℎ = 1 kΩ, = 1 Ω, sat = 1 μA, and = 2.5, are given, as function of of 11, 21, 51 and 101 .

Discussion
CycleAmanual and CycleB yield similar percentage errors for and , compared to the Ortiz-Conde et al. method [14] for points = 11 , but larger than the Zhang et al. method [28]. The percentage errors rapidly decrease as increases, decreasing faster when using the Ortiz-Conde et al. method [14], while the percentage errors obtained using the Zhang et al. method [28] decrease when increases to 21 , not changing substantially if increases further. Regarding ℎ , CycleAmanual and CycleB have the disadvantage of yielding larger values than those obtained using the Ortiz-Conde et al. method [14], but still CycleAmanual provide more accurate values than the Zhang et al. method [28]. However, the impact of overestimation of ℎ is negligible when simulating the curves (see Fig. 2  the Ortiz-Conde et al. method [14] could be an artifact of the ideality (noiseless) nature of the curves. In fact, as it is discussed in [13,15,16], once the curves are real measured curves (including noise), the accuracy of the Ortiz-Conde et al. method [14] strongly depend both on the percentage noise and , and unrealistic negative solar cell parameters can be obtained, when the percentage noise is as low as 0.01% [13,15]. It is currently investigated how accurate are Cy-cleAmanual and CycleB as function of percentage noise, and it will be reported elsewhere.
Comparing CycleAmanual and CycleB among them, reasonable and similar values of are obtained when doing the linear fit of ′ vs. ′ , independently of the value of . Regarding the value of , it improves as the value of increases, also independently if it is program CycleAmanual and CycleB which is used.
Regarding the extraction of ℎ , and sat , a minimum value of = 51 is necessary to achieve convergence, in case program CycleAmanual is used. This is not the case when using CycleB, which obtains reasonable values of ℎ , and sat for values of = 11 , and reasonably reproduce the original curve.
The percentage errors and integral percentage errors, are always larger when using CycleAmanual than CycleB, showing that CycleB extracts more accurately the solar cell parameters. It is worth mentioning, that the program automatically yields these percentage errors.
Finally, the number of cycles necessary to achieve convergence diminishes as the value of increases, as expectable.

Conclusion
Two iterative cycles, namely CycleA and CycleB have been proposed. They are based on: 1) the linear fit of ′ vs. ′ , where ′ = + + − − ℎ + ℎ , which yields and , 2) the application of Procedure A or Procedure B [2] for CycleA or CycleB, respectively, to obtain sat and ℎ , 3) the correction of lig once , , sat and ℎ , and 4) the repetition of the cycles till convergence is obtained. CycleB was implemented as one single program, where the user applied Procedure B plotting vs. ℎ and finding the suitable root. CycleA was implemented as two programs. The first one, called CycleAroot, a similar idea of plotting ℎ vs. and finding the suitable   13. Plot of sat according to Eq. 10 in [2]. In the inset, the voltage range [0.8 V, 1 V] for IV3 and IV4 is shown, revealing that no convergence has been achieved yet.
root was attempted. It was found that this plot has several roots, and it is not possible to choose one single of them. Then, the second implemented program, namely CycleAmanual, was implemented, where the user manually finds the proper value of that causes ℎ = 0. The results exposed in this article show that reasonable solar cell parameter extraction is achieved when using these cycles. It was found that CycleB yields more accurate solar cell parameter extraction than any of the CycleA programs, independently of the value of . In the case of CycleA, a minimum value of = 51 is necessary to achieve proper solar cell parameter extraction.

Author contribution statement
Victor Tapio Rangel Kuoppa: Conceived and designed the experiments; Performed the experiments; Analyzed and interpreted the data; Contributed reagents, materials, analysis tools or data; Wrote the paper.

Data availability statement
Data will be made available on request.

Declaration of interest's statement
The authors declare no conflict of interest.

Additional information
Supplementary content related to this article has been published online at https://doi .org /10 .1016 /j .heliyon .2022 .e10551.