Next Article in Journal
Towards Decision-Making for the Assessment and Prioritization of Green Projects: An Integration between System Dynamics and Participatory Modeling
Next Article in Special Issue
Addressing Thermal Comfort in Regional Energy Poverty Assessment with Nussbaumer’s MEPI
Previous Article in Journal
An Alternative Statistical Model for Predicting Salinity Variations in Estuaries
Previous Article in Special Issue
PV Monitoring System for a Water Pumping Scheme with a Lithium-Ion Battery Using Free Open-Source Software and IoT Technologies
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Mathematical Model for Regular and Irregular PV Arrays with Improved Calculation Speed

by
Luz Adriana Trejos-Grisales
1,*,†,
Juan David Bastidas-Rodríguez
2,† and
Carlos Andrés Ramos-Paja
3,†
1
Departamento de Electromecánica y Mecatrónica, Instituto Tecnológico Metropolitano, Medellín 050013, Colombia
2
Facultad de Ingeniería y Arquitectura, Universidad Nacional de Colombia, Manizales 170003, Colombia
3
Facultad de Minas, Universidad Nacional de Colombia, Medellín 050013, Colombia
*
Author to whom correspondence should be addressed.
These authors contributed equally to this work.
Sustainability 2020, 12(24), 10684; https://0-doi-org.brum.beds.ac.uk/10.3390/su122410684
Submission received: 13 November 2020 / Revised: 14 December 2020 / Accepted: 15 December 2020 / Published: 21 December 2020

Abstract

:
Photovoltaic (PV) systems are usually developed by configuring the PV arrays with regular connection schemes, such as series-parallel, total cross-tied, bridge-linked, among others. Such a strategy is aimed at increasing the power that is generated by the PV system under partial shading conditions, since the power production changes depending on the connection scheme. Moreover, irregular and non-common connection schemes could provide higher power production for irregular (but realistic) shading conditions that aere caused by threes or other objects. However, there are few mathematical models that are able to predict the power production of different configurations and reproduce the behavior of both regular and irregular PV arrays. Those general array models are slow due to the large amount of computations that are needed to find the PV current for a given PV voltage. Therefore, this paper proposes a general mathematical model to predict the power production of regular and irregular PV arrays, which provides a faster calculation in comparison with the general models that were reported in the literature, but without reducing the prediction accuracy. The proposed modeling approach is based on detecting the inflection points that are caused by the bypass diodes activation, which enables to narrow the range in which the modules voltages are searched, thus reducing the calculation time. Therefore, this fast model is useful in designing the fixed connections of PV arrays that are subjected to shading conditions, in order to reconfigure the PV array in real-time, depending on the shading pattern, among other applications. The proposed solution is validated by comparing the results with another general model and with a circuital implementation of the PV system.

1. Introduction

The recent world challenges that are related to environmental and energy subjects have lead photovoltaic (PV) systems to become a competitive option for electricity generation. In recent years, this technology has gained popularity, which is evidenced in the 627 GW installed in 2019 [1] and in some reports that predict a growth of 46% by 2023 [2]. Therefore, it is important to develop procedures for predicting the behavior of such systems under a given operating condition. In this way, it will be possible to improve planning and controlling strategies, which in turn will increase the reliability of PV plants. Mathematical modeling is a useful tool for analyzing the electrical relationships between voltages and currents in a PV array; it makes obtaining the current vs. voltage (I-V) and power vs. voltage (P-V) curves possible, which are needed for performing different kinds of studies on a PV array, such as energy estimation, degradation, and failure analysis, among others.
A typical PV array is formed by connecting multiple modules in series in order to form strings and multiple strings in parallel to form the array (i.e., Series-Parallel configuration). Each module can be represented by an equivalent circuit; therefore, the model of a PV array is obtained by analyzing the array equivalent circuit obtained by the interconnection of the modules. If all the modules are exactly the same and operate under the same irradiance and temperature conditions, all of the arrays can modeled by scaling the model of one module. Nonetheless, in real operating conditions the arrays are subjected to partial shading and the modules are different due to aging and manufacturing tolerances [3].
Concerning the PV module model, most of the works that are devoted to modeling PV arrays are based on the single-diode model. Other works, such as [4], adopt the two-diode model in order to improve the accuracy at low irradiance levels, but the computational burden increases significantly, because the two diode model has more parameters and greater non-linear elements. An interesting combination single-diode and double-diode models is proposed in [5]. In this work, the authors use a machine learning-based technique to calculate the power of PV arrays using single and double-diode module models. Nevertheless, this solution does not apply to any configuration and it does not consider partial shading or mismatching operating conditions.
PV arrays can be connected in different configurations, with the most common being Series-Parallel (SP), Total Cross-Tied (TCT), Bridge-Linked (BL), and Honey-Comb (HC) [6]. Other configurations are the result of a mix between those connection schemes, which can be considered as hybrid configurations [7]. Every configuration has particular characteristics imposing a different behavior to the PV array, such a situation can be exploited for improving the array power production under a particular operating condition. This requires identifying the configuration imposing the maximum power generation.
Different modeling procedures have been reported in the literature. Some of them only apply for SP [4,8,9,10] or TCT arrays [11,12]; while others [7,13] perform an independent analysis for SP, TCT, BL, and HC arrays, but they do not propose systematical procedure to model arrays in any configuration. Only in [14,15] fo the authors propose modeling procedures for arrays in any configuration. However, those works are focused on the generation of a system of nonlinear equations in order to model an array and the solution of the models requires high calculation times.
One technique that was used to improve the calculation speed in PV models was introduced in [10], named inflection points. Such work provides a modeling procedure in order to obtain the I-V and P-V curves based on the ideal single-diode model, but only for SP arrays. The inflection point concept is related to the operating conditions, in which the I-V curve changes its monotonic behavior due to the activation (or deactivation) of the bypass diodes, which occurs when the array operates under partial shading conditions. The inflections points allow for defining voltages ranges, in which, due to the activation of bypass diodes, some PV modules will be short-circuited; hence, those modules could be removed from the model. It means that the non-linear equations system, which represents the behavior of the array, will be dynamically modified, depending on the number of the active PV modules. Such a characteristic allows for increasing the calculation speed of the PV module, since less PV modules must be taken into account.
The inflection points concept was also used in [9] in order to reduce the calculation time for solving the model of SP arrays. In this paper, the authors analyze each string independently and uses the single-diode model to represent each module of the array. Subsequently, each string is modeled by a nonlinear equation where the string current is the unknown variable. The authors use the inflection points in order to identify the active and inactive modules to reduce the complexity of the nonlinear equation of each string, thus reducing the calculation burden of the numerical method that solves the equation. Moreover, the inflection points are also used in order to restrict the search range for the solution of the string current, which considerably reduces the solution time.
The modeling procedures that were introduced in [14,15] allow for modeling a PV array with any size and connected in any connection scheme. Both procedures use the single diode model to represent the modules in a PV panel, and they are based on the circuital nodes and meshes principles to define a system of nonlinear equations that represents the array. That system of equations is solved to finally obtain the global output current of the array for a given voltage; then, performing a voltage sweep, it is possible to calculate the array I-V and P-V curves. However, the solutions of the models proposed in [14,15] require a high number of both mathematical operations and numerical method iterations due to the large search space (voltage and current range), in which the solution must be searched for; hence, the calculation times could be long. Therefore, that general solution could be impractical for some PV application such as: dynamic or static reconfiguration including heuristic methods [16,17] in which the calculation of the power provided by the array must be done in short time; validation and evaluation of Maximum Power Point Tracking (MPP) techniques, as the ones introduced in [18,19], in which optimization algorithms are implemented in order to improve the performance of the control stage in PV systems; or even to provide an optimal design for large PV plants. With the procedure that is presented in [14], a 10 × 5 irregular PV array takes 10 min. and 8 s to be solved for a given irradiance and temperature conditions, while by using the procedure introduced in [15], the time is reduced to 5 min. and 18 s. Despite the improvement in the execution time, in a planning of PV systems or reconfiguration scenario, it could be impractical if several configurations must be evaluated in order to define the best for a given operating condition; moreover, the execution times will increase if a larger array is evaluated.
In the previous literature analysis, two key points are identified. The first one is that there is a lack of fast modeling techniques able to analyze PV arrays in any configuration with any size, since the models proposed in [14,15] require a high number of mathematical operations that imply high execution times. Those high execution times make those models impractical for important applications like reconfiguration, MPPT, or PV array sizing. The second key point is that the inflection points concept has been used to reduce the solution time of SP arrays models; however, the inflection points concept has not been used for models of other PV array configurations or for the general models that are proposed in [14,15].
Therefore, this paper is based on the following hypothesis: it is possible to improve the computation times for analyzing PV arrays with any size and configuration by combining the inflection points modeling technique of [10] with the circuital nodes principle that is presented in [14]. In this way, the new solution provides the same analytical versatility to model any PV array (any size and configuration), but with much shorter processing times. This feature will be useful for reconfiguration techniques, analysis, and design of large PV fields, among others. Moreover, the adoption of the inflection points concept also improves the convergence rate of the general model, which reduced the prediction errors in comparison with the models that were reported in [14,15].
The rest of the paper is organized, as follows: Section 2 describes the mismatching conditions problem, and shows the use of different connection schemes in order to improve the power production; then, Section 3 describes the inflection point concept and usability. Section 4 presents the proposed method for calculating the inflection points of a PV array with any connection scheme, and Section 5 describes the use of those inflection points to efficiently calculate the PV current and power. The performance of the proposed model is evaluated in Section 6, where both the accuracy and speed of the proposed solution are contested with a reference model. Similarly, Section 7 illustrates the use of the proposed model in a reconfiguration application. Finally, the conclusions close the paper.

2. Mismatching Conditions and Internal Connections in PV Arrays

PV arrays are formed by multiple PV panels that are connected in both series and parallel schemes. Such a connection does not depends on the physical organization of the PV panels in the PV array; for example, the general PV array that is presented at the left of Figure 1 could be connected in different configurations. The same figure presents three electrical configurations that are commonly used in industrial applications: the series-parallel (SP), which considers the panels connected in independent strings, which are then connected in parallel; the total-cross-tied (TCT), which considers a complete interconnection of all the panels; the bridge-linked (BL), which considers a bridge-like structure.
Commercial PV panels include bypass diodes that are connected in anti-parallel with the modules, which protect the module from operating at the second quadrant, i.e., avoiding power consumption and artificial degradation under mismatching conditions, as is reported in [20]. An active bypass diode short-circuits the associated PV module; hence, different connections between the PV modules produce different voltages and currents into the modules, which affect the power that is produced by the PV array. Therefore, depending on the shading profile covering the PV array, some of those connections could provide higher power, as it is discussed in [6]. Therefore, it is convenient to select the connections that enable the PV array to produce the highest power possible. Such a challenge has been addressed in several works. For example, in  [21], it was concluded that SP arrays produce higher power for shading profiles, in which all of the array modules experience different levels of irradiance, but the first column has lower levels; while, TCT arrays produce higher power for shading profiles, such short narrow, short wide, or diagonal with irradiance variations from 1000 W / m 2 to 400  W / m 2  [22]. However, according to [23] for combinations of different shading cases such short and long wide at irradiance levels from 200  W / m 2 to 900  W / m 2 , Su-Do-Ku configuration exhibits the best performance when compared to SP and TCT.
However, depending on the array location and the objects around the array, the shading profiles could have regular forms like rectangles or irregular forms with holes and branches. Such different shading conditions are presented in Figure 2 for a real PV installation, where the same PV array could have panels exposed to regular and irregular shades. Hence, under real operating conditions, it is difficult (or even impossible) to define a regular connection (SP, TCT, BL, etc.), providing the highest power possible; instead, those classical configurations will produce a sub-optimal power production, which reduces the installation profitability.
Moreover, commercial PV installations are constructed while using commercial PV panels, which could be formed by one, two, or even three modules that are connected in series; hence, for example, an apparent TCT configuration formed by two-module panels (e.g., a BP585) will not be, in fact, a TCT structure. Besides, some manufacturers offer replacement panels for well-adopted references. For example, the ERDM 85SM/5 PV panel provides the same power and current as the BP585, but the ERDM 85SM/5 only has a single module. Therefore, it is possible to replace some BP585 (two-module panel) with ERDM 85SM/5 (single-module panel) without any inconvenience, but the resulting apparent TCT structure will be, in fact, an irregular configuration, as depicted in Figure 1. Therefore, modeling such real-application cases requires a general model for PV arrays, such as that proposed in [14,15].
Furthermore, the work reported in [15] proposes adopting irregular connection schemes to the PV array to improve the power production under irregular shading conditions. Figure 1 shows an example of an irregular connection scheme (named Irregular), which does not follow any classical configuration (SP, TCT, BL, etc.). Such an irregular configuration enables the PV array of Figure 1 in order to provide a highest maximum power in comparison with the SP, TCT, and BL connection schemes for some irregular shading profiles, as depicted in Figure 3. This figure reports four irregular shading patterns, in which the shade intensity is reported as a percentage (0 % means no shading). The figure also reports the power production of the PV array with SP, TCT, BL, and the irregular connections. For the shading profile of Figure 3a, the irregular connections allow for the highest power production, followed by the SP option; while, the TCT and BL options produce the same power. Under the shading pattern 2 (Figure 3b) the irregular option also produces the highest power, while SP and TCT produce almost the same power, and BL produces the lowest power. For the shading pattern shown in Figure 3c, SP produces the lowest power, TCT and BL produce the same power, but again the irregular option provides the highest power production. Finally, for the shading pattern shown in Figure 3d, the irregular option also produces the highest power, followed by TCT, BL, and SP.
The previous simulations show that the same PV array, under shading conditions, will produce different power, depending on the connection scheme. Moreover, those results also confirm that configuring the array connections using an irregular scheme could increase the power production in comparison with the classical options (SP, TCT, BL, etc.). Therefore, the general PV array models that were proposed in [14,15] can be used to select the best configuration scheme (regular or irregular) improving the power production, which can be very useful for:
  • Design the fixed connection of a PV array subjected to shading conditions.
  • Reconfigure the PV array in real-time to adjust the best connections, depending on the shading pattern, which changes, depending on the sun position.
  • Design a simulation platform to estimate the power production of any PV array with regular or irregular connections.
However, since there are multiple possibilities for irregular connections, and such a number increases with the size of the PV array, the first two applications require a fast PV model to provide practical calculation times. Similarly, for the third application, fast calculation times are also desirable. Therefore, the following sections describe a modeling approach that is designed to reduce the calculation time of the general PV model without reducing the model precision in comparison with [14,15].

3. Inflection Point Concept

The main concept that will be used for reducing the processing time of the general model is the inflection point in the I-V and P-V curves. Figure 3 shows the different inflection points occurring in the 12-module PV array operation due to different shading patterns, which activate some of the bypass diodes protecting the modules. The main objective of the PV array model is to calculate the current and power at a given array voltage, which is also needed in order to predict the I-V and P-V curves. Therefore, a previous calculation of the inflection points will allow to narrow the range of the possible solutions for the I-V and P-V data and, subsequently, reduce the processing time that is required by the model.
An inflection point in the I-V curve occurs when a bypass diode is activated. This concept is illustrated while using the two-module string depicted in Figure 4: the string is formed by modules 1 and 2, which are protected by the bypass diodes 1 and 2. In this example, module 2 is affected by a partial shade that reduces the its short-circuit current ( i s c 2 ) to 40 % of the short-circuit current of module 1 ( i s c 1 ), which is fully irradiated. The figure depicts, at the bottom-left, the I-V curves of both modules, where the effect of the shade on the second module is observed.
However, the operating points of both modules depend on the string voltage v s t and current i s t . Moreover, the activations of the bypass diodes depend on the string and modules currents:
  • If the string current is lower than the short-circuit current of both modules, i.e., i s t < i s c 2 < i s c 1 , which means that both modules could produce the string current, i.e., i p v 1 = i p v 2 = i s t , which imposes null current to both bypass diodes, i.e., i d 1 = i d 2 = 0 [ A ] . Therefore, both bypass diodes are inactive, and both modules are active to produce usable power. For the example of Figure 4, when i s t < i s c 2 , both of the modules are active, despite having different short-circuit currents.
  • Instead, for the same irradiance and shading pattern, if the string current is higher than the short-circuit current of some modules, i.e., i s c 2 < i s t < i s c 1 , this means that some modules are not able to produce the string current, i.e., i p v 2 = i s c 2 < i s t and i p v 1 = i s t , which forces the activation of the corresponding bypass diodes, i.e., i d 1 = i s t i s c 2 > 0 and i d 2 = 0 . Therefore, some of the modules are inactive to produce usable power, i.e., in the example of Figure 4 the module 2 is short-circuit (inactive) when i s t > i s c 2 .
  • Finally, if the string current is higher than the short-circuit current of all the modules, i.e., i s t > i s c 1 > i s c 2 , this means that all of the modules are not able to produce the string current, which forces the activation of all the bypass diodes. Therefore, the PV array is inactive in producing usable power.
In conclusion, the operating condition in which one (or multiple) bypass diode state changes (from active to inactive or vice versa) is known as an inflection point. The currents of the inflection point will enable limiting the possible values of the modules voltages for a given string current, which reduces the search space for the equations solver, as it will be shown in Section 5, Section 6 and Section 7. Finally, the following section presents a modeling approach to calculate the inflection points for a general PV array with any connection scheme, i.e., regular or irregular connections.

4. Inflection Points Calculation

This section presents a procedure for calculating the inflection point voltages, also known as inflection voltages, in a PV array with any configuration; an example is also presented in order to illustrate the application of the proposed procedure. The section begins with the explanation of the module model and it continues with the matrix representation of the PV array and its sub-arrays. These two elements are required for explaining the proposed procedure and example.

4.1. PV Module Representation

In this paper, each PV module is represented by the single-diode model, since it provides a tradeoff between accuracy and complexity [3]. The equivalent circuit of the single-diode model, including the bypass diode, is shown in Figure 5, where the current source ( I p h ) represents the current that is generated by the PV effect, the diode D includes the nonlinear behavior of the PV cells and the resistors R h and R s represent the leakage currents and ohmic losses, respectively. Moreover, the bypass diode ( D b d ) is connected at the output terminals of the PV module in order to provide an alternative path for the current when the module is shaded [20].
The module output current (I) can be expressed as a function of the node voltages at the positive ( e a ) and negative ( e b ) terminals, as shown in (1), where N s is the number of series connected cells that form the module, W 0 ( · ) is the LambertW function, I s a t and I s a t , b d are the inverse saturation current of diodes D and D b d , respectively, and V t and V t , b d are the termal voltage of diodes D and D b d , respectively. In turn, V t = n · k · T / q and V t , b d = n b d · k · T / q , where n and n b d are the ideality factors of D and D b d , respectively, k is the Boltzmann constant, q is the electron charge, and T is the module temperature in Kelvin [9].
I = N s · V t · W 0 θ R s + I s a t , b d · exp e a e b V t , b d I s a t , b d + R h · I p h + I s a t e a e b R h + R s θ = R h · R s R h + R s · I s a t N s · V t · exp R s + R h · I p h + I s a t + R h · e a e b N s · V t · R s + R h
On the one hand, the five parameters of the SDM (i.e I p h , I s a t , n, R s , and R h ) can be calculated from the datasheet information or from experimental I-V curves by using the procedures proposed in [24,25], respectively. On the other hand, the two parameters of the bypass diode (i.e., I s a t , b d , n b d ) can be calculated from the experimental measurements, as shown in [20], or from the information in the bypass diode datasheet. In general, the I p h depends on the module irradiance and temperature, I s a t and I s a t , b d vary with the module temperature, and n, n b d , R s , and R h can be assumed to be constant [3].
When the PV module is in short-circuit, the current that is provided by the module ( I s c ) is calculated from (1) replacing ( e a e b ) = 0 [ V ] . The expression for calculating I s c is introduced in (2), and it is an important parameter that is used in the following sections to calculate the inflection voltages.
I s c = N s · V t · W 0 θ s c R s + R h · I p h + I s a t R h + R s θ s c = R h · R s R h + R s · I s a t N s · V t · exp R s + R h · I p h + I s a t R s + R h · N s · V t

4.2. Matrix Representation a PV Array and Its Sub-Arrays

A PV array that formed by M columns and N rows, i.e., an N × M array, in any configuration can be represented by a set of matrices. One N × M matrix for each parameter of the SDM and the D b d ( M I p h , M I s a t , M n , M R s , M R h , M I s a t b d , M n b d ), one N × M matrix for the short-circuit currents ( M I s c ), and one ( N 1 ) × ( M 1 ) matrix (named M c o n n ) in order to represent the connections between the modules of the PV array.
The elements of M c o n n can be 1 or 0 in order to represent whether there is or not a tie between two consecutive strings of the array. Hence, a 1 in the row r and column c of M c o n n ( M c o n n ( r , c ) = 1 ) indicates that the negative terminal of the modules in row r and column c (module ( r , c ) ) is connected to the negative terminal of the module in row r and column c + 1 (module ( r , c + 1 ) ). Instead, M c o n n ( r , c ) = 0 means that there is no connection between the negative terminals of modules ( r , c ) and ( r , c + 1 ) .
According to [14], a sub-array is defined as a string or set of strings in the array that are connected to the rest of the array only in the ground and V a r r nodes, i.e., the lower and upper nodes. Therefore, there are no additional connections to the left or right of the sub-array. From this definition, it is possible to identify the sub-arrays by finding the columns of zeros in M c o n n ; thus, each column of zeros in M c o n n indicates the end of a sub-array and the beginning of the next one. The number of sub-arrays in a N × M array is defined in (3), where N z is the number of columns of zeros in M c o n n  [14].
N s a = N z + 1
A vector C z is defined, as shown in (4), in order to identify the first and last column of each sub-array, where the first and last elements are 0 and M, respectively, and the other elements ( Z c , 1 Z c , N z ) are the column number of each column of zeros in M c o n n . Subsequently, it is possible to define the first ( S A f c , i ) and last column ( S A l c , i ) of the sub-array i, as illustrated in (5)  [14].
C z = 0 Z c , 1 Z c , i Z c , N s a M
S A f c , i = C z ( i ) + 1 , S A l c , i = C z ( i + 1 )
From S A f c , i and S A f l , i , it is possible to define the matrices that contain the parameters of the sub-array i ( M I p h , i s a , M I s a t , i s a , M V t , i s a , M R s , i s a , M R h , i s a , M I s a t b d , i s a , M V t b d , i s a , and M I s c , i s a ) from the matrices of the array parameters, as introduced in (6), taking into account that all of the sub-arrays have N rows. Finally, the connection matrix of sub-array i ( M c o n n , i s a ) is defined in (7), which takes into account that it has one row less and one column less than the sub-array  [14].
M I p h , i s a = M I p h ( r , c ) , M I s a t , i s a = M I s a t ( r , c ) , M V t , i s a = M V t ( r , c ) , M R s , i s a = M R s ( r , c ) , M R h , i s a = M R h ( r , c ) , M I s a t b d , i s a = M I s a t b d ( r , c ) , M I s c , i s a = M I s c ( r , c ) M V t b d , i s a = M V t b d , r ϵ [ 1 N ] , c ϵ [ S A f c , i S A l c , i ]
M c o n n , i s a = M c o n n ( r c , c c ) , r c ϵ [ 1 ( N 1 ) ] , c c ϵ [ S A f c , i ( S A l c , i 1 ) ]

4.3. Inflection Voltage Calculation for a Sub-Array

An inflection point in the I-V curve of a sub-array is produced by the activation/deactivation of the bypass diode of a sub-array’s module. In general, if the current flowing through the module in the row i o and column j o is higher than its short-circuit current ( I s c , i o , j o ); then, the bypass diode is activated to provide an alternative path for the current in excess; otherwise, the bypass diode is inactive (reverse biased) and no current flows through it. The sub-array voltage when the module ( i o , j o ) is in short-circuit (i.e., I i o , j o = I s c , i o , j o ) is defined as the inflection voltage ( V o , i o , j o ) that us produced by the module ( i o , j o ) . While taking into account that all of the currents in the sub-array decrease as the sub-array voltage increases, the bypass diode of module ( i o , j o ) is active if the sub-array voltage is lower than V o , i o , j o (i.e., ( V s a V o , i o , j o )), and it is inactive otherwise.
In order to calculate V o , i o , j o , it is necessary to solve the sub-array node voltages, which can be performed independently from the other sub-arrays, as explained in the previous section. The number of nodes in a sub-array ( N n ), excluding the ground node (bottom node) and the array voltage ( V a r r ) node (top node), can be calculated while using (8), where the left term corresponds to the number of node in an SP configuration and the right term is the sum of all the elements in M c o n n s a . Hence, when considering the top node voltage as unknown (i.e., V a r r is unknown), a sub-array has N n + 1 unknown node voltages, i.e., e j j 1 N n + 1 , which form the unknowns vector, named V n . It is important to note that the top node voltage is e N n + 1 , while the others are numbered from top to bottom and from left to right in the sub-array.
N n = N 1 · M s a k 2 = 1 M s a k 1 = 1 N M c o n n s a ( k 1 , k 2 )
The system of N n + 1 nonlinear equations (named F o ( V n ) ) that are required to calculate V n is obtained by applying the KCL in the first N n nodes and from the 0 V restriction imposed between the positive and negative terminals of the module in short-circuit (i.e., I i o , j o = I s c , i o , j o then e a ( i o , j o ) e b ( i o , j o ) = 0 V ). In order to apply KCL in the first N n nodes of the sub-array, it is necessary to identify the node voltages at the positive and negative terminal of each module in the sub-array. This identification is expressed in an N × M s a matrix ( M n v o s a ), where the element at row r and column c of M n v o s a (e.g., M n v o s a ( r , c ) = k ) indicates that the voltage at the positive terminal of the module ( r , c ) is V n ( k ) , or e a ( r , c ) = V n ( k ) = e k . Moreover, M n v o s a ( r , c ) = k also indicates the node voltage at the negative terminal of the module ( r 1 , c ) , since the negative terminal of the module ( r 1 , c ) is connected to the positive terminal of the module ( r , c ) ; hence, M n v o s a ( r , c ) = k also indicates that e b ( r 1 , c ) = V n ( k ) = e k if r > 1 .
Once the voltages at positive and negative terminals of all the modules have been defined with M n v o s a , it is possible to apply KCL to the first N n nodes of the sub-array, where the current of each module is calculated with (1). Moreover, the last equation is obtained from the module in short-circuit condition (module ( i o , j o ) ), where I i o , j o = I s c . i o , j o and e a ( i o , j o ) e b ( i o , j o ) = 0 [ V ] . Such a condition implies that the voltages of the nodes at the positive and negative terminals of the module ( i o , j o ) are the same, as shown in (9).
e a ( i o , j o ) e b ( i o , j o ) = 0 o r V n ( k a ) V n ( k b ) = 0 w h e r e M n v o s a ( i o , j o ) = k a a n d M n v o s a ( i o + 1 , j o ) = k b
The connection pattern of each sub-array is defined by M c o n n s a , as explained in the previous section. Therefore, the structure of F o ( V n ) is not defined by a fixed structure; instead, it is defined by an algorithm that describes how to evaluate F o ( V n ) for a given V n , which is introduced as pseudocode in Algorithm 1. In such an algorithm, i o and j o are the row and column of the module in short-circuit (i.e., I i o , j o = I s c , i o , j o ) and i f , l m , r m , n n , n 1 , n 2 are auxiliary variables used to simplify the pseudocode description. The two iterative (for) loops in lines 2 and 3 go over all the sub-array nodes to apply KCL in each one of them. When a new node is found (line 4), the columns of the leftmost ( l m ) and rightmost ( r m ) modules that are connected to the node are identified. Subsequently, the for loop defined in line 6 evaluates the KCL for all of the modules connected to that node, column-by-column. Lines 7 to 13 and 15 to 25 calculate the current of the module that is connected above and below the analyzed node, respectively, while lines 14 and 26 adds and subtracts the modules’ currents in order to construct the KCL colum- by-column. Lines 1 to 31 allow for the evaluation of the first N n elements of F o ( V n ) ; while, lines 32 to 38 evaluate the last element of F o ( V n ) , which shows that the node voltages at the positive and negative terminals of the module in short-circuit condition (i.e., module ( i o , j o ) ) are the same.
The evaluation of F o ( V n ) , with Algorithm 1, is used by a numerical method in order to solve V n . From such a solution, the inflection voltage that is produced by the module in row i o and column j o (i.e., V o , i o , j o ) is defined in (10). Moreover, the nodes voltages V n ( k ) k 1 N n are defined as node inflection voltages that are produced by the module ( i o , j o ) , as shown in (11).
V o , i o , j o = V n ( N n + 1 )
V n o , i o , j o k = V n ( k ) k 1 N n
Algorithm 1 Calculation of F o ( V n )
INPUT: V n , N n , M n v o s a , M c o n n s a , M I s c s a , i o , j o , N, M s a , sub-array parameters’ matrices
OUTPUT: F o ( V n )
 1: Set i f = 1
 2: for columns j = 1 to M s a do
 3: for rows i = 1 to N 1 do
 4:  if j = 1 OR M c o n n s a ( i , j 1 ) = 0 then:
 5:   Identify l m and r m from M c o n n s a
 6:   for modules in the node j c = l m to r m do
 7:    Set n n = M n v o s a ( i , j c ) and e a ( i , j c ) = V n ( n n )
 8:    Set n n = M n v o s a ( i + 1 , j c ) and e b ( i , j c ) = V n ( n n )
 9:    if i = i o AND j = j o then:
 10:     Set I i , j c = M I s c s a ( i , j c )
 11:    else
 12:     Calculate I i , j c with (1)
 13:    end if
 14:    Calculate F o ( i f ) = F o ( i f ) + I i , j c
 15:    Set n n = M n v o s a ( i + 1 , j c ) , e a ( i + 1 , j c ) = V n ( n n )
 16:    if i = N 1 then:
 17:      e b ( i + 1 , j c ) = 0 [ V ]
 18:    else:
 19:     Set n n = M n v o s a ( i + 2 , j c ) and e b ( i + 1 , j c ) = V n ( n n )
 20:    end if
 21:    if i + 1 = i o AND j = j o then:
 22:     Set I i + 1 , j c = M I s c s a ( i , j c )
 23:    else
 24:     Calculate I i + 1 , j c with (1)
 25:    end if
 26:    Calculate F o ( i f ) = F o ( i f ) I i + 1 , j c
 27:   end for modules in the node
 28:   Set i f = i f + 1
 29:  end if
 30: end for rows
 31: end for columns
 32: if i o < N then:
 33: Set n n 1 = M n v o s a ( i o , j o ) and n n 2 = M n v o s a ( i o + 1 , j o )
 34: Calculate F o ( N n + 1 ) = V n ( n n 1 ) V n ( n n 2 )
 35: else:
 36: Set n n = M n v o s a ( i o , j o )
 37: Calculate F o ( N n + 1 ) = V n ( n n )
 38: end if
 39: Return F o ( V n )
When considering that all of the modules in the sub-array have bypass diodes, and that the sub-array has N rows and M s a columns, it is necessary to define an N × M s a matrix with all the sub-array inflection voltages ( M V o ), where M V o ( i , j ) = V o , i , j , as shown in (12). Similarly, the node inflection voltages are also defined in N n matrices (from M V n o 1 to M V n o N n ), as illustrated in (13).
M V o = V o , 1 , 1 V o , 1 , M s a V o , N , 1 V o , N , M s a
M V n o k = V n o , 1 , 1 k V n o , 1 , M s a k V n o , N , 1 k V n o , N , M s a k k 1 N n
M V o is transformed into a vector and sorted ascendantly ( V V o ) to locate the inflection voltages along the sub-array I-V curve. The matrices M V n o k k 1 N n are also transformed into vectors and sorted following the same order of V V o in order to obtain N n vectors: V V n o k k 1 N n . Subsequently, V V o and the node inflection voltage vectors can be used in order to define the solution search range of the N n node voltages for a given sub-array voltage, as will be explained in the following section. Finally, the flow chart that is shown in Figure 6 summarizes the procedure to calculate the sub-array and node inflection voltages.

4.4. Calculation Example

The procedure described in this section is applied to the 3 × 3 array shown in that is Figure 7 to illustrate its application. For the example, the PV panel considered is an ERDM 85SM/5, which is formed by one module of 36 cells ( N s = 36 ). The standard test condition (STC) parameters of such a panel are: I s c , S T C = 5.13 [ A ] , I m p p , S T C = 4.80 [ A ] , V o c , S T C = 21.78 [ V ] , V m p p , S T C = 17.95 [ A ] , α I s c = 0.02 % , and α V o c = 0.37 % , where the subscripts m p p and o c indicate maximum power point and open-circuit, respectively; while, α I s c and α V o c are the short-circuit current and open-circuit voltage temperature coefficients. The following SDM parameters are obtained while using the STC parameters and the procedure proposed in [24]: I p h = 5.13 [ A ] , I s a t = 1.1841 [ η A ] , V t = 981.5 [ mA ] , R s = 186.4 [ m Ω ] , and R h = 261.099 [ m Ω ] . Moreover, the bypass diode parameters were selected as I s a t , b d = 1.00 [ μ A ] , V t , b d = 6.9 [ mV ] .
This array has three rows ( N = 3 ) and three columns ( M = 3 ) and, for the sake of simplicity, it is assumed that all of the modules have the same parameters, the cells temperature is 25 °C, and the global irradiance is 1 kW / m 2 . Moreover, the array is described by eight 3 × 3 matrices ( M I p h , M I s a t , M n , M R s , M R h , M I s a t b d , M n b d , and M I s c ), and the connection matrix ( M c o n n ), which has 2 rows and 2 columns. M I s c is shown in (14) as an example of the eight 3 × 3 matrices with the array parameters; while, (15) shows M c o n n for the analyzed array. It can be seen that M c o n n ( 2 , 1 ) = 1 , since there is a connection between the negative terminals of modules in the second row between columns 1 and 2 (see Figure 7). The other elements of M c o n n are 0, because there are no additional connections among the array columns.
M I s c = 4.620 4.106 3.593 3.080 2.566 2.053 M I s c , 1 s a 2.566 2.566 5.133 M I s c , 2 s a [ A ]
M c o n n = 0 1 M c o n n , 1 s a 0 0 M c o n n , 2 s a
In (15), the second column only has zeros (i.e., N z = 1 and Z c , 1 = 2 ); then, there are two sub-arrays ( N s a = 2 ) and the resulting vector C z is shown in (16). From C z , are obtained the first and last columns of sub-array 1 ( S A 1 ) and sub-array 2 ( S A 2 ), as given in (17) and (18), respectively. Moreover, with (17) and (18), it is possible to define the matrices of each sub-array by using (6) and (7). As an example, M I s c , 1 s a , M I s c , 2 s a , M c o n n , 1 s a , and M c o n n , 2 s a are illustrated in (14) and (15) while using the horizontal braces at the bottom of the matrices.   
C z = 0 2 3
S A f c , 1 = 1 , S A l c , 1 = 2
S A f c , 2 = 3 , S A l c , 2 = 3
From Figure 7, it is observed that S A 1 and S A 2 have three and two nodes, respectively, excluding the ground and V a r r nodes; hence, N n = 3 for S A 1 and N n = 2 for S A 2 . For the inflection voltage calculation, the voltage at the top node is also unknown; therefore, V n = [ e 1 e 2 e 3 e 4 ] for S A 1 and V n = [ e 1 e 2 e 3 ] for S A 2 . While using V n and M c o n n s a , it is possible to define the matrix M n v o s a of each sub-array, as shown in (19), where M n v o , 1 s a corresponds to S A 1 and M n v o , 2 s a corresponds to S A 2 .
M n v o , 1 s a = 4 4 1 3 2 2 , M n v o , 2 s a = 3 1 2
At this point, all of the parameters of both sub-arrays are defined and the inflection voltages can be calculated. The sub-array and node inflection voltages that are generated by the module in the position ( 1 , 1 ) of S A 1 are calculated by using the Trust-Region Reflective method, which uses Algorithm 1 with i o = 1 and j o = 1 in order to find V n = [ 0.1964 0.1006 0.1964 0.1964 ] [ V ] ; then, V o , 1 , 1 = 0.1964 [ V ] , V n o , 1 , 1 1 = 0.1964 [ V ] , V n o , 1 , 1 2 = 0.1006 [ V ] , and V n o , 1 , 1 3 = 0.1964 [ V ] . This process is repeated for all of the modules in S A 1 to obtain M V o , M V n o 1 , M V n o 2 , and M V n o 3 , as shown in (20) and (21).
M V o = 0.1964 0.1964 19.3587 19.4545 40.1054 40.1057
M V n o 1 = 0.1964 0.1964 0.0959 0.0037 19.7068 19.7070 M V n o 2 = 0.1006 0.1006 0.0959 0.0958 0.0000 0.0000 M V n o 3 = 0.1964 0.1964 0.1655 0.0958 19.6799 19.6801
Figure 8 provides a graphical representation of the calculation of M V o , M V n o 1 , M V n o 2 , and M V n o 3 for S A 1 , which shows the iterative process followed in order to fill those matrices by considering a different module in short-circuit condition for each iteration. Such a procedure is performed for all of the sub-arrays forming the PV array.
Now, M V o is sorted ascendantly to obtain V V o = [ 0.1964 0.1964 19.3587 19.4545 40.1054 40.1057 ] [ V ] , and following the same order, the vectors for all of the modules are obtained: V V n o 1 = [ 0.1964 0.1964 0.0959 0.0037 19.7068 19.7070 ] [ V ] , V V n o 2 = [ 0.1006 0.1006 0.0959 0.0958 0.0000 0.0000 ] [ V ] , and V V n o 3 = [ 0.1964 0.1964 0.1655 0.0958 19.6799 19.6801 ] [ V ] . It is worth noting that those vectors correspond to S A 1 . The corresponding vectors for S A 2 are obtained by following the same procedure, as follows: V V o = [ 0.2043 20.5391 20.5393 ] [ V ] , V V n o 1 = [ 0.1022 20.5906 20.5391 ] [ V ] , and V V n o 2 = [ 0.0000 20.5906 20.5906 ] [ V ] . Finally, those vectors are used in order to calculate the node voltages; such a procedure will be illustrated in the following section while using a numerical example based on the previous numerical vectors.

5. Sub-Array and Array Current Calculation Using Inflection Voltages

The main objective of the proposed model is to calculate the array current ( I a r r ) for a given array voltage ( V a r r ), which is imposed by the power converter where the array is connected to. When considering that each sub-array can be analyzed independently, this section explains the calculation process for a sub-array current, and the process to calculate I a r r from the currents of all the sub-arrays.

5.1. Sub-Array Current Calculation

The objective of this section is to provide a procedure for calculating the sub-array node voltages, for a given V a r r , with a restricted search range in order to reduce the calculation time.
The number of nodes in a sub-array, excluding ground and V a r r nodes, is defined in (8), naming the nodes from top to bottom and from left to right. Subsequently, it is necessary to construct a system of N n nonlinear equations ( F ( V ) ) by applying KCL in the N n nodes of the sub-array, where V is the vector formed by the N n unknown node voltages, i.e., V = [ e 1 e N n ] . As explained in the previous section, the evaluation of F ( V ) must be defined by an algorithm, since the structure of F ( V ) is defined by M c o n n s a . Such an algorithm was proposed in  [14] and it is described in Algorithm 2, where i f , l m , r m , and n n are auxiliar variables that are used to simplify the pseudocode description. Moreover, the matrix M n v s a contains the node voltage number of the negative terminals of the first N 1 modules in each column; therefore, M n v s a ( r , c ) = k indicates that the node voltage at the negative terminal of the module in row r and column c is V ( k ) , i.e., e b ( r , c ) = V ( k ) .
Algorithm 2 is used by a numerical method in order to evaluate F ( V ) and calculate V . The time that is required to obtain such a solution can be considerably reduced by providing a search range, for each element of V , to the numerical method. Therefore, this paper proposes a method to define the search range of V from the sub-array and node inflection voltages.
Algorithm 2 Calculation of F ( V )
INPUT: V a r r , V , N n , M n v s a , M c o n n s a , N, M s a , sub-array parameters’ matrices
OUTPUT: F ( V n )
 1: Set i f = 1
 2: for columns j = 1 to M s a do
 3:  for rows i = 1 to N 1 do
 4:   if j = 1 OR M c o n n s a ( i , j 1 ) = 0 then: Identify l m and r m from M c o n n s a
 5:    for column j c = l m to r m do
 6:     Set n n = M n v s a ( i , j c ) , e b ( i , j c ) = V ( n n )
 7:     if i = 1 then: e a ( i , j c ) = V a r r
 8:     else: Set n n = M n v s a ( i 1 , j c ) , and e a ( i , j c ) = V ( n n )
 9:     end if
 10:     Calculate I i , j c with (1) and F i ( f i ) = F i ( f i ) + I i , j c
 11:     Set n n = M n v s a ( i , j c ) , e a ( i + 1 , j c ) = V ( n n )
 12:     if i = N 1 then: e b ( i + 1 , j c ) = 0 [ V ]
 13:     else: Set n n = M n v s a ( i + 1 , j c ) , e b ( i + 1 , j c ) = V ( n n ) .
 14:     end if
 15:     Calculate I i + 1 , j c with (1) and F i ( f i ) = F i ( f i ) I i + 1 , j c
 16:    end for
 17:    Set i f = i f + 1
 18:   end if
 19:  end for rows
 20: end for columns
 21: Return F ( V n )
In a sub-array, the voltages of all the modules increase as V a r r increases, since V a r r is distributed along the modules in the sub-array columns. As consequence, all the sub-array node voltages also increase as V a r r increases. Combining this behavior with the sub-array ( V V o ) and node ( V V n o k k 1 N n ) inflection voltages, defined in the previous section, it is possible to restrict the search range of the sub-array node voltages for a given V a r r .
The first step is to identify the smallest sub-array inflection voltage ( V V o ( k ) ) that is higher than V a r r , i.e., V a r r < V V o ( k ) . Subsequently, when considering that V V o ( k ) is sorted ascendantly, it is possible to bound V a r r with two sub-array inflection voltages: V V o ( k 1 ) < V a r r < V V o ( k ) . Taking into account that the vectors of the node inflection voltages ( V V n o k ) are organized in the same order of V V o , then the search range of the node voltages is defined, as given in (22), where e 1 e N n are the sub-array node voltages (excluding both top and bottom nodes), named with the same order used in the previous section, i.e., from top to bottom and from left to right.
V V n o 1 ( k 1 ) < e 1 < V V n o 1 ( k ) V V n o N n ( k 1 ) < e N n < V V n o N n ( k )
The upper and lower bounds that are provided in (22) can be used by a numerical method to reduce the time for solving V . Once V is solved, the sub-array current is calculated by adding the currents of the modules in the first row of the sub-array, as shown in (23).
I s a = c = 1 M s a I ( e a ( 1 , c ) , e b ( 1 , c ) )

5.2. Calculation of the Array Current

The procedure that was described in the previous section is used to obtain the currents of all the sub-arrays. Subsequently, the array current is calculated as the sum of all the sub-arrays currents, as illustrated in (24), where N s a is the number of sub-arrays. Evaluating (24) provides a point in the array I-V curve for a given V a r r : ( I a r r , V a r r ) ; then, the array I-V curve can be constructed by performing a voltage sweep of V a r r and calculating the corresponding values of I a r r . Finally, the P-V curve is easily obtained from the I-V data, which enables predicting the power production of the array.
I a r r = k = 1 N s a I s a , k

5.3. Calculation Example

This example considers the same array that was introduced in Section 4.4, and the objective is to calculate I a r r for V a r r = 15 [ V ] to illustrate the definition of the search bounds for the node voltages in each sub-array. SUbsequently, the example shows the I-V curves of S A 1 , S A 2 , and whole array, as well as the array inflection voltages for each sub-array.
In this example, I a r r = I s a , 1 + I s a , 2 according to (24), therefore, the first step is to find I s a , 1 and I s a , 2 for V a r r = 15 [ V ] . In the S A 1 , the smallest sub-array inflection voltage that is higher than V a r r = 15 [ V ] is V V o ( 3 ) = 19.358 [ V ] ; then, V V o ( 2 ) < V a r r < V V o ( 3 ) and k = 3 . From this analysis, the search range of the node voltages is shown in (25), where the components of the vectors V V n o 1 , V V n o 2 and V V n o 3 were defined in Section 4.4.
V V n o 1 ( 2 ) < e 1 < V V n o 1 ( 3 ) V V n o 2 ( 2 ) < e 2 < V V n o 2 ( 3 ) V V n o 3 ( 2 ) < e 3 < V V n o 3 ( 3 )
In this paper, the vector of the node voltages V is calculated using the Sequential Quadratic Programming algorithm, which uses the search range that is defined in (25) and the Algorithm 2 to evaluate F ( V ) . For V a r r = 15 [ V ] the node voltages are V = [ 0.1956 0.1004 0.1957 ] [ V ] . Subsequently, from V are calculated the node voltages at the positive and negative terminals of the modules in the first row, as follows: e a ( 1 , 1 ) = 15 [ V ] , e a ( 1 , 2 ) = 15 [ V ] , e b ( 1 , 1 ) = 0.1956 [ V ] , and e b ( 1 , 2 ) = 0.1957 [ V ] . Subsequently, I s a is calculated using (23) to obtain I s a , 1 = 8.5764 [ A ] .
Following a similar procedure for S A 2 , it is obtained that V = [ 15.1019 15.2039 ] [ V ] , the node voltages for the module in the first row are e a ( 1 , 1 ) = 15 [ V ] and e b ( 1 , 1 ) = 15.1019 [ V ] , which leads to I s a , 2 = 5.0553 [ A ] . Finally, I a r r = I s a , 1 + I s a , 2 = 13.6317 [ A ] .
The array I-V curve can be generated by repeating this process for different values of V a r r . The I-V curves of S A 1 , S A 2 , and the entire array, are depicted in Figure 9a, Figure 9b, and Figure 9c, respectively. In the I-V curves of both sub-arrays, the sub-array inflection voltages are marked with red circles while using the legend SAIVs.
From Figure 9, it is evident that constraining the search space to the voltage range between the closest inflection points, instead of the voltage range between 0 [ V ] and the open-circuit voltage of the array, provides much less options to the Sequential Quadratic Programming method, which improves the calculation time, since every option evaluated by that method will be much closer to the final solution. The following section provides a performance evaluation of this method in order to demonstrate the speed improvement that is provided by the proposed solution.

6. Performance Evaluation

In this section, the proposed model is compared with the model that was introduced in [14] (from here on reference model) in terms of the errors in the prediction of the array current and the computation time that is required to generate I-V curves. For all of the analyses, the ERDM 85SM/5 PV panel is used to generate the arrays; hence, the same SDM parameters that are defined in Section 4.4 are considered for the simulations.

6.1. Errors in the Current Prediction

In this analysis, two arrays are considered to evaluate the current error of the proposed and reference models with respect to the circuital implementation of the arrays in Matlab/Simulink (from here on circuital model). The proposed and reference models are both programmed in Matlab and solved with the function “fmincon” configured with “sqp-legacy” algorithm to provide a fair comparison. For the reference model, the lower and upper bounds for each node voltage are defined as 1 [ V ] and the array open-circuit voltage ( V o c , a r r ), respectively; while, for the proposed model, the lower and upper bounds of the node voltages are defined, as shown in Section 5 from the inflection voltages calculated, as explained in Section 4.
The two arrays are formed by three columns and two sub-arrays, as in the calculation example of Section 4 and Section 5, where the first two columns form the S A 1 and the last column forms the S A 2 . The matrix M c o n n for all of the arrays is formed by two columns, in the first one the odd elements are 1 and the even elements are 0, while, in the second column, all of the elements are 0. For example, the first column of M c o n n for the 5 × 3 array is [ 0 1 0 1 ] T and the second columns is [ 0 0 0 0 ] T . Moreover, the matrix M I p h for the two arrays is formed by three equal vectors vectors: I p h · [ 1 0.75 0.75 0.5 0.5 ] T for the 5 × 3 array, and I p h · [ 1 1 1 0.75 0.75 0.75 0.5 0.5 0.5 0.5 ] T for the 10 × 3 array ( I p h = 5.13 [ A ] ).
Figure 10 shows the I-V curves for the two evaluated arrays and Figure 11 introduces the errors in the current estimation of the proposed and reference models, regarding the circuital model. In Figure 10a, it can be observed that the proposed and reference models provide the same I-V curve for the 5 × 3 array, which is reflected in the same current errors, as illustrated in Figure 11a and the same value of the normalized sum of squared errors (NSSE) obtained for both models ( 0.0015 % ). For the 10 × 3 array, the I-V curves that are obtained with the proposed and reference models are almost the same (see Figure 10b); however, the reference model has significant errors around the second knee (between 105 [ V ] and 115 [ V ] ), as shown in Figure 11b. Those errors can be evidenced in the NSSEs that were calculated for both I-V curves, which correspond to 0.0012 % and 0.0027 % for the proposed and reference models, respectively. Additionally, it is important to highlight that the proposed model provides similar NSSE values for the two arrays, demonstrating that it fits the circuital model.

6.2. Calculation Time for Different Number of Rows

The proposed and reference models are simulated for arrays formed by two sub-arrays and increasing the number of rows from three to fifteen in order to evaluate their calculation times. The structure of the arrays is the same used in the previous section; therefore, the matrices M c o n n and M I p h are generated as explained before. The I-V curve of each array is calculated ten times in order to calculate its average value and standard deviation, which are introduced in Table 1 and shown graphically in Figure 12.
From the calculation times that are shown in Table 1 and Figure 12, it can be observed that the reference model is faster than the proposed model for a small array (three rows). This behavior can is expected due to the additional calculations that are required to obtain the inflection voltages. However, for arrays with four rows or more, the calculation time of the proposed model is less than the one of the reference model. Moreover, Figure 12 shows that the calculation time of the proposed model is approximately linear regarding the number rows; while, the calculation time of the reference model has a significant increment in the slope for arrays with more than nine rows. Hence, the results in Table 1 and Figure 12 illustrate the reduction in the calculation time that was obtained by defining the upper and lower bounds of the sub-arrays node voltages from the calculation of the inflection voltages.

7. Application Example: Reconfiguration of Pv Arrays

In this section, the proposed model is used for a basic model-based reconfiguration PV array in order to illustrate its usefulness to model arrays in different configurations and the advantages of the reduction in the calculation time. The array that is considered in this section is formed by ERDM 85SM/5 modules; then, the SDM parameters that are defined in Section 4.4 are used.
Figure 13 illustrates the array structure, which is formed by three columns of fourteen modules each. Twelve modules are reconfigurable through the five switches that are shown in Figure 13, which are controlled by the reconfiguration algorithm. The rest of the array is fixed and the connections between the columns are also illustrated in Figure 13. This strategy is used to reconfigure only the array section that is subjected to partial shading without introducing reconfigurable switches that will not be used. A previous example of this strategy was reported in [26].
For the example, it is assumed that the reconfiguration system evaluates all of the possible arrays that can be implemented with the five switches to find the best configuration. Hence, considering that there are five switches, there are 2 5 possible configurations to evaluate. For each possibility, the reconfiguration system calculates the I-V and P-V curves (with voltage steps of 1 [ V ] ) using a model to identify the global maximum power point (GMPP). Moreover, those calculations should be performed as fast as possible due to the shading profiles over the array change with the time due to the paths of the sun in the sky. Additionally, the time that is srequired to evaluate the 32 configurations determines the minimum update period of the reconfiguration system.
The reconfiguration system is evaluated for three shading profiles that are defined with the matrix M I p h . Table 2 introduces the elements of M I p h for the reconfigurable part of the array, while the elements of M I p h for the fixed part of the array are defined as 2.5668 [ A ] , i.e., for the first two columns M I p h ( a , b ) = 2.5668 [ A ] ( a [ 7 14 ] b [ 1 2 ] ) and for the last column M I p h ( a , b ) = 2.5668 [ A ] ( a [ 1 14 ] b = 3 ) .
The 32 possible configurations are evaluated while using the proposed and reference models for each shading profile to compare their calculation times and determine the minimum update period of the reconfiguration algorithm. Table 3 intorduces the calculation times for both models, which shows that the proposed model is between 1.8 and 2.1 times faster than the reference model. Such differences in the computation times results in a reconfiguration period of 20 [ min ] and 40 [ min ] with the proposed and reference models, respectively. Therefore, a reconfiguration system with the proposed model may reconfigure the array a double number of times with respect to a reconfiguration system with the reference model. Such an increment in the number of reconfigurations is translated into a better mitigation of the mismatching effects and an increment in the array power production.

8. Conclusions

A mathematical model for regular and irregular PV arrays, based on the inflection points concept, has been proposed. In this model, the array is divided into sub-arrays that are solved independently, which simplifies the model calculation. The main contribution of this model is the reduction of the processing time by using the inflection point concept to limit the search range of the node voltages in the solution of each sub-array, which enables analyzing larger arrays in the same time interval when compared with a previously published model.
Another contribution of the paper is the pseudocode that was developed to evaluate the system of nonlinear equations ( F o ( V n ) ) for any regular or irregular configuration, which is used by a numerical method to calculate the sub-array inflection voltages for a given module in short-circuit. Moreover, the paper also provides an algorithm for calculating all of the sub-array inflection voltages, which are organized into the N n + 1 matrices ( M V o and M V n o k k [ 1 N n ] ), where N n is the number of nodes in the sub-array. From these matrices, the paper proposes a procedure for generating N n vectors ( V V n o k k [ 1 N n ] ), which are used to define the upper and lower bounds of the solution of each sub-array node voltage. Those procedures are clearly illustrated through a calculation example of a small array that formed by two sub-arrays, which are useful for implementing the model in any programming language or platform.
The proposed model was evaluated by comparing its calculation time and estimation errors with the ones of the general model that was proposed in [14], which was defined as reference model. Both the proposed and reference model were solved while using the same numerical method to provide a fair comparison. Moreover, the estimation errors in the PV current of both methods were evaluated in contrast with the results provided by the circuital implementation of the same PV arrays using Simulink. In those tests, the proposed model reproduced the I-V curves of 5 × 3 and 10 × 3 arrays with a normalized sum of squared errors (NSSE) of 0.0015 % and 0.0012 % , respectively; while, the reference model obtained NSSE values of 0.0015 % ( 5 × 3 ) and 0.0027 % ( 10 × 3 ). Those NSSE results show that the proposed model reproduces, with higher accuracy, the larger PV arrays in comparison with the reference model. Such an improved convergence is achieved, in the proposed model, by reducing the search range of the node voltages by means of the inflection points calculation.
The calculation times of the proposed and reference models were evaluated with arrays that formed by three columns and a different number of rows. The calculation times of the proposed model were shorter for arrays with more than three rows, and those times grow linearly with the number of rows. Instead, the calculation times of the reference model grow exponentially with the number of rows, which put into evidence the improvement of the proposed solution over the reference general model: a faster and accurate model for estimating the power production of PV arrays under any electrical configuration and shading conditions.
The usefulness of the proposed model was also illustrated with a simple reconfiguration system that evaluates all of the possible configurations in order to determine the one with the highest power production. The reconfiguration system with the proposed model was approximately two times faster than the reference model for that particular case, but higher differences will appear for larger PV arrays. Such an increment in the calculation speed results in a reduction in the reconfiguration period and, consequently, an increment in the array power production along the day, since the best configuration is updated more frequently.
The only disadvantage of this new model, in comparison with the reference general model, concerns the additional memory that is required to store the matrices needed to calculate the inflection points. Therefore, a future development must be needed to reduce the memory requirements of the model, which could be focused on reallocating the memory that was used in the inflection points calculation to be used in the PV current calculation; hence, reaching the same memory requirements of the reference model. Another important future study concerns the implementation of the proposed model on embedded devices, which requires algorithms that are optimized for small platforms. Such a development is needed in order to deploy reconfiguration platforms that are based on the proposed fast model. Finally, the model is restricted to rectangular array configurations; therefore, all of the strings must have the same number of modules, which is a common practice in commercial PV installations. However, residential PV arrays could be formed by strings with a different number of modules due to roof space limitations; hence, a future study must consider the extension of the proposed model to support those kinds of PV arrays.

Author Contributions

Conceptualization, J.D.B.-R., L.A.T.-G. and C.A.R.-P.; methodology, J.D.B.-R. and C.A.R.-P.; software, J.D.B.-R. and L.A.T.-G.; validation, J.D.B.-R., L.A.T.-G. and C.A.R.-P.; formal analysis, J.D.B.-R., L.A.T.-G. and C.A.R.-P.; investigation, J.D.B-R., L.A.T.-G. and C.A.R.-P.; data curation, J.D.B.-R. and L.A.T.-G.; writing, review and editing, J.D.B.-R., L.A.T.-G. and C.A.R.-P.; visualization, J.D.B.-R., L.A.T.-G. and C.A.R.-P.; supervision, J.D.B.-R., L.A.T.-G. and C.A.R.-P. All authors have read and agreed to the published version of the manuscript.

Funding

The authors thank the Instituto Tecnológico Metropolitano for the APC payment. Moreover, this study was supported by the research group Materiales Avanzados y Energía of the Instituto Tecnológico Metropolitano and the Universidad Nacional de Colombia.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. International Energy Agency. Snapshot of Global PV Markets 2020; Technical Report; IEA: Paris, France, 2020. [Google Scholar]
  2. IRENA. IEA/IRENA Global Renewable Energy Policies and Measures Database; Technical Report; International Renewable Energy Agency: Abu Dhabi, UAE, 2020. [Google Scholar]
  3. Petrone, G.; Ramos-Paja, C.A.; Spagnuolo, G. Photovoltaic Sources Modeling; John Wiley & Sons, Ltd.: Chichester, UK, 2017. [Google Scholar]
  4. Kermadi, M.; Chin, V.; Mekhilef, S.; Salam, Z. A fast and accurate generalized analytical approach for PV arrays modeling under partial shading conditions. Sol. Energy 2020, 208, 753–765. [Google Scholar] [CrossRef]
  5. Maria, M.; Yassine, C. Machine Learning Based Approaches for Modeling the Output Power of Photovoltaic Array in Real Outdoor Conditions. Electronics 2020, 9, 315. [Google Scholar] [CrossRef] [Green Version]
  6. Prince Winston, D.; Kumaravel, S.; Praveen Kumarc, B.; Devakirubakaran, S. Performance improvement of solar PV array topologies during various partial shading conditions. Sol. Energy 2020, 196, 228–242. [Google Scholar] [CrossRef]
  7. Premkumar, M.; Subramaniam, U.; Sudhakar, T.; Elavarasan, R.; Mihet-Popa, L. Evaluation of Mathematical Model to Characterize the Performance of Conventional and Hybrid PV Array Topologies under Static and Dynamic Shading Patterns. Energies 2020, 13, 3216. [Google Scholar] [CrossRef]
  8. Ayop, R.; Tan, W.C.; Mahmud, M.S.A.; Nasir, S.N.S.; Al-Hadhrami, T.; Bukar, A.L. A simplified and fast computing photovoltaic model for string simulation under partial shading condition. Sustain. Energy Technol. Assess. 2020, 42, 1–12. [Google Scholar]
  9. Bastidas, J.D.; Franco, E.; Petrone, G.; Ramos-Paja, C.A.; Spagnuolo, G. A model of photovoltaic fields in mismatching conditions featuring an improved calculation speed. Electr. Power Syst. Res. 2013, 96, 81–90. [Google Scholar] [CrossRef]
  10. Petrone, G.; Ramos-Paja, C. Modeling of photovoltaic fields in mismatched conditions for energy yield evaluations. Electr. Power Syst. Res. 2011, 81, 1003–1013. [Google Scholar] [CrossRef]
  11. Pachauri, R.; Singh, R.; Gehlot, A.; Samakaria, R.; Choudhury, S. Experimental analysis to extract maximum power from PV array reconfiguration under partial shading conditions. Eng. Sci. Technol. Int. J. 2018, 22, 109–130. [Google Scholar] [CrossRef]
  12. Pendem, S.; Mikkili, S. Modeling, simulation and performance analysis of solar PV array configurations (Series, Series–Parallel and Honey-Comb) to extract maximum power under Partial Shading Conditions. Energy Rep. 2018, 4, 274–287. [Google Scholar] [CrossRef]
  13. Desai, A.A.; Mikkili, S. Modelling and analysis of PV configurations (alternate TCT-BL, total cross tied, series, series parallel, bridge linked and honey comb) to extract maximum power under partial shading conditions. CSEE J. Power Energy Syst. 2020, 1–16. [Google Scholar] [CrossRef]
  14. Bastidas-Rodriguez, J.; Trejos-Grisales, A.; Gonzalez, D.; Ramos-Paja, C.A.; Petrone, G.; Spagnuolo, G. General modeling procedure for photovoltaic arrays. Electr. Power Syst. Res. 2018, 155, 67–79. [Google Scholar] [CrossRef]
  15. Gonzalez, D.; Bastidas-Rodriguez, J.D.; Trejos-Grisales, A.; Ramos-Paja, C.A.; Petrone, G.; Spagnuolo, G. A Procedure for Modeling Photovoltaic Arrays under Any Configuration and Shading Conditions. Energies 2018, 11, 767. [Google Scholar] [CrossRef] [Green Version]
  16. Sai Krishna, G.; Moger, T. Reconfiguration strategies for reducing partial shading effects in photovoltaic arrays: State of the art. Sol. Energy 2019, 182, 429–452. [Google Scholar] [CrossRef]
  17. Harrag, A.; Messalti, S. Adaptive GA-based reconfiguration of photovoltaic array combating partial shading conditions. Neural Comput. Appl. 2018, 30, 1145–1170. [Google Scholar] [CrossRef]
  18. Zhao, Z.; Cheng, R.; Yan, B.; Zhang, J.; Zhang, Z.; Zhang, M. A dynamic particles MPPT method for photovoltaic systems under partial shading conditions. Energy Convers. Manag. 2020, 220, 1–15. [Google Scholar] [CrossRef]
  19. Pal, R.; Mukherjee, V. Metaheuristic based comparative MPPT methods for photovoltaic technology under partial shading condition. Energy 2020, 212, 1–23. [Google Scholar] [CrossRef]
  20. Velez-Sanchez, J.; Bastidas-Rodriguez, J.D.; Ramos-Paja, C.A.; Gonzalez, D.; Trejos-Grisales, A. A Non-Invasive Procedure for Estimating the Exponential Model Parameters of Bypass Diodes in Photovoltaic Modules. Energies 2019, 12, 303. [Google Scholar] [CrossRef] [Green Version]
  21. Tian, H.; Mancilla-David, F.; Ellis, K.; Muljadi, E.; Jenkins, P. Determination of the optimal configuration for a photovoltaic array depending on the shading condition. Sol. Energy 2013, 95, 1–12. [Google Scholar] [CrossRef]
  22. Saiprakash, C.; Mohapatra, A.; Nayak, B.; Ghatak, S. Analysis of partial shading effect on energy output of different solar PV array configurations. Mater. Today Proc. 2020. [Google Scholar] [CrossRef]
  23. Pachauri, R. Impact of Partial Shading on Various PV Array Configurations and Different Modeling Approaches: A Comprehensive Review. IEEE Power Energy Soc. Sect. 2020, 8, 181375–181403. [Google Scholar] [CrossRef]
  24. Accarino, J.; Petrone, G.; Ramos-Paja, C.A.; Spagnuolo, G. Symbolic algebra for the calculation of the series and parallel resistances in PV module model. In Proceedings of the IEEE 2013 International Conference on Clean Electrical Power (ICCEP), Alghero, Italy, 11–13 June 2013; pp. 62–66. [Google Scholar]
  25. Cardenas, A.A.; Carrasco, M.; Mancilla-David, F.; Street, A.; Cardenas, R. Experimental Parameter Extraction in the Single-Diode Photovoltaic Model via a Reduced-Space Search. IEEE Trans. Ind. Electron. 2017, 64, 1468–1476. [Google Scholar] [CrossRef]
  26. Velasco-Quesada, G.; Guinjoan-Gispert, F.; Pique-Lopez, R.; Roman-Lumbreras, M.; Conesa-Roca, A. Electrical PV Array Reconfiguration Strategy for Energy Extraction Improvement in Grid-Connected PV Systems. IEEE Trans. Ind. Electron. 2009, 56, 4319–4331. [Google Scholar] [CrossRef] [Green Version]
Figure 1. Examples of regular and irregular photovoltaic (PV) array configurations.
Figure 1. Examples of regular and irregular photovoltaic (PV) array configurations.
Sustainability 12 10684 g001
Figure 2. Regular and irregular shading patterns on PV arrays.
Figure 2. Regular and irregular shading patterns on PV arrays.
Sustainability 12 10684 g002
Figure 3. Power production of a PV array for different connections: SP, TCT, BL, and irregular.
Figure 3. Power production of a PV array for different connections: SP, TCT, BL, and irregular.
Sustainability 12 10684 g003
Figure 4. Inflection point concept.
Figure 4. Inflection point concept.
Sustainability 12 10684 g004
Figure 5. PV module single-diode model equivalent circuit, including the bypass diode.
Figure 5. PV module single-diode model equivalent circuit, including the bypass diode.
Sustainability 12 10684 g005
Figure 6. Flow chart of the proposed procedure to calculate the inflection voltages of a sub-array.
Figure 6. Flow chart of the proposed procedure to calculate the inflection voltages of a sub-array.
Sustainability 12 10684 g006
Figure 7. Example of a 3 × 3 array with 2 sub-arrays.
Figure 7. Example of a 3 × 3 array with 2 sub-arrays.
Sustainability 12 10684 g007
Figure 8. Graphical example of the calculation of M V o , M V n o 1 , M V n o 2 , and M V n o 3 for S A 1 .
Figure 8. Graphical example of the calculation of M V o , M V n o 1 , M V n o 2 , and M V n o 3 for S A 1 .
Sustainability 12 10684 g008
Figure 9. I-V curves for the calculation example (a) S A 1 , (b) S A 2 , and (c) array.
Figure 9. I-V curves for the calculation example (a) S A 1 , (b) S A 2 , and (c) array.
Sustainability 12 10684 g009
Figure 10. I-V curves of irregular arrays with different sizes with Circuital model (black line), Proposed model (blue line), and Reference model (dashed red line).
Figure 10. I-V curves of irregular arrays with different sizes with Circuital model (black line), Proposed model (blue line), and Reference model (dashed red line).
Sustainability 12 10684 g010
Figure 11. Current errors for irregular arrays with different sizes with Proposed model (dashed blue line) and Reference model (dotted red line) regarding Circuital model.
Figure 11. Current errors for irregular arrays with different sizes with Proposed model (dashed blue line) and Reference model (dotted red line) regarding Circuital model.
Sustainability 12 10684 g011
Figure 12. Calculation time of proposed and reference model for an array with three columns and rows from three to fifteen.
Figure 12. Calculation time of proposed and reference model for an array with three columns and rows from three to fifteen.
Sustainability 12 10684 g012
Figure 13. 14 × 3 array used for the reconfiguration example.
Figure 13. 14 × 3 array used for the reconfiguration example.
Sustainability 12 10684 g013
Table 1. The calculation time of the proposed and reference models for an array with three columns and rows from three to fifteen.
Table 1. The calculation time of the proposed and reference models for an array with three columns and rows from three to fifteen.
RowsProposed ModelReference Model
Average (s)Std (s)Average (s)Std (s)
36.3960.5095.3620.169
48.4620.0798.9340.166
510.8930.46312.1900.157
613.6160.33615.1600.296
716.4130.18019.7350.199
818.0250.79225.3530.767
920.2320.22931.5330.357
1024.2120.30746.3480.456
1127.7710.12159.6980.352
1234.0960.29477.8082.059
1338.0080.31089.9321.159
1442.4710.224100.7730.531
1546.9950.214122.4310.555
Table 2. I p h currents (in [ A ] ) of the reconfigurable modules of the array.
Table 2. I p h currents (in [ A ] ) of the reconfigurable modules of the array.
Shading Profile 1Shading Profile 2Shading Profile 2
5.13375.13375.13373.59365.13375.1337
3.59365.13373.59365.13373.59365.1337
3.59363.59361.54011.54013.59363.5936
1.54013.59365.13373.59361.54011.5401
1.54011.54011.54015.13371.54015.1337
5.13370.51345.13371.54015.13375.1337
Table 3. Calculation time (in [ min ] ) of the proposed and reference models to evaluate the 32 configurations for each shading profile.
Table 3. Calculation time (in [ min ] ) of the proposed and reference models to evaluate the 32 configurations for each shading profile.
Shading ProfileProposed ModelReference Model
118.218038.0085
219.198334.7788
317.934138.2907
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Trejos-Grisales, L.A.; Bastidas-Rodríguez, J.D.; Ramos-Paja, C.A. Mathematical Model for Regular and Irregular PV Arrays with Improved Calculation Speed. Sustainability 2020, 12, 10684. https://0-doi-org.brum.beds.ac.uk/10.3390/su122410684

AMA Style

Trejos-Grisales LA, Bastidas-Rodríguez JD, Ramos-Paja CA. Mathematical Model for Regular and Irregular PV Arrays with Improved Calculation Speed. Sustainability. 2020; 12(24):10684. https://0-doi-org.brum.beds.ac.uk/10.3390/su122410684

Chicago/Turabian Style

Trejos-Grisales, Luz Adriana, Juan David Bastidas-Rodríguez, and Carlos Andrés Ramos-Paja. 2020. "Mathematical Model for Regular and Irregular PV Arrays with Improved Calculation Speed" Sustainability 12, no. 24: 10684. https://0-doi-org.brum.beds.ac.uk/10.3390/su122410684

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop