## 4 Proposed Control Strategy for Maximum Power Extraction
### Reference Voltage Trajectory via FFNN  
The objective is to estimate \(V_{ref}\) while considering the environmental parameters, i.e., temperature and irradiance as an input to the FFNN block [41]. For this task, a two-layer feed forward neural network is used, whose schematic diagram is shown in Figure 6. The input data is generated by varying the irradiance (first network input) from (600-1000) W/m\({}^{2}\) with a suitable increment of 1 W/m\({}^{2}\) and changing the temperature (second network inputs) during 2-75\({}^{\circ}\)C interval with an increment of 2 degree Celsius, accordingly. Based on these available inputs, the inputs (or activation) to the next layer are computed using (15)  
\[a_{j}=\sum_{i=1}^{n}V_{ji}p_{i}+b_{jo} \tag{15}\]  
where \(p_{i}\) is input of node \(i\), \(b_{jo}\) represents respective reconstruction bias/error and \(j~{}=~{}1,~{}2,~{}3,\ldots,jo\) shows number of hidden layer neurons.  
The outputs of the activation function \(f\) (chosen as tanh) at the hidden layer, while invoking \(a_{j}\), appears as follows  
\[y_{i}=f(a_{j}) \tag{16}\]  
Similarly, the weights in the next layer are named as \(w_{kj}\) (\(w_{kj}\) is a scalar and is a weight between the \(j\)th hidden layer node) and the \(k\)th output layer node with \(y_{i}\) as inputs from the hidden layer on which the activation of the output layer will be operated looks like  
\[a_{k}=\sum_{j=1}^{l_{o}}w_{kj}y_{i}+b_{ko} \tag{17}\]  
where \(k=1\) represents number of neurons in output layer. Estimated \(V_{ref}\) output voltage, a function of inputs and weights between hidden layer and output layer is expressed as follows  
\[V_{ref}=f(a_{k}) \tag{18}\]  
Figure 6: Structure of FFNN for \(V_{ref}\) generation.  
or  
\[V_{ref}=f\left(\sum_{j=1}^{l_{e}}w_{kj}f\bigg{(}\sum_{i=1}^{n}V_{ji}p_{i}+b_{jo} \bigg{)}+b_{ko}\right) \tag{19}\]  
Equation (19) can be alternatively expressed in vector form as  
\[V_{ref}=\bar{f}\left(\bar{W}^{T}\bar{f}\big{(}\bar{V}^{T}\bar{p}+b_{v}\big{)}+b _{w}\right) \tag{20}\]  
Equation (20) can be more explicitly written as  
\[V_{ref}=\left(Wtanh\big{(}V\bar{p}+b_{v}\big{)}+b_{w}\right) \tag{21}\]  
There is a maximum voltage level on a PV module characteristic curve for each temperature and irradiance level. This maximum voltage is considered as the desired \(V_{ref}\) which is the target data during the training of FFNN. The training technique used for updating the weights of a neural network at each iteration is the Levenberg-Marquardt training algorithm.  
FFNN Simulation Results  
The network parameters used for the estimation of \(V_{ref}\) are iterations and hidden layer neurons. The final structure of FFNN has ten neurons in hidden layer. The desired \(V_{ref}\) for different values of temperature and irradiance produced from the FFNN in 3-D plane is illustrated in Figure 7. The training of NN is calculated using Mean Squared Error (MSE) depicted in Figure 8. There is a significant amount of error at the start, but the error reduces to the minimum possible value as the number of epochs increases.  
The best training performance with the lowest MSE is \(1.0836\times 10^{-6}\) at 1000 epochs. The regression graph for \(V_{ref}\) estimation is given in Figure 9. It shows that the regression value of \(R=1\) indicates the close resemblance of the output data with the target data. The error histogram is calculated with 20 vertical bins. Figure 10 depicts the estimation error histogram associated with \(V_{ref}\), which reveals that a very small error occurs and is nearly close to zero.  
Figure 7: \(V_{ref}\) generation for varying level of irradiance and temperature.  
Figure 8: Mean squared error during FFNN estimation.  
Figure 9: Regression graph (**a**) Training R = 1; (**b**) Validation R = 1; (**c**) Test R = 1; (**d**) All R = 1.