SEARCH WITHIN CONTENT
Citation Information : International Journal on Smart Sensing and Intelligent Systems. Volume 11, Issue 1, Pages 1-10, DOI: https://doi.org/10.21307/ijssis-2018-002
License : (CC BY-NC-ND 4.0)
Published Online: 28-February-2018
This paper presents the implementation of a fuzzy controller on the Arduino Mega board, for tracking the maximum power point of a photovoltaic (PV) module; using low cost materials. A dc–dc converter that incorporates a driver circuit to control the turning on and off of the Mosfet transistor was designed. The controller was evaluated in a PV system consisting of a 65 W PV module and a 12 V/55Ah battery. The results demonstrate the superiority of the fuzzy controller compared to the traditional P&O algorithm, in terms of efficiency and oscillations around the operating point.
Renewable energies can be obtained from renewable resources such as sunlight, wind, geothermal heat, rain, waves, living plants, and animal materials. This type of energy is considered renewable because it comes from resources capable of regeneration by natural means. Their main advantage is that they can reduce the negative environmental impact generated by conventional sources such as oil, gas, and coal.
One of the main sources of renewable energy is the photovoltaic (PV) energy, which is based on the capture of the energy that the sun emits in the form of electromagnetic waves to transform it into electrical energy using PV modules. Since its inception, the main application of this type of energy focused on supplying electricity in non-interconnected areas where the implementation of conventional electric power was not profitable. Over the years, its use has been increasing until nowadays PV installations with grid connection are carried out (Muñoz et al., 2014).
The output power of a PV module varies depending on environmental variables such as solar irradiance and operating temperature (Visconti et al., 2016), affecting the maximum power point (MPP); which is a working point of the PV module where the power delivered to the load is maximized. In order to improve the performance of PV installations, maximum power point tracking (MPPT) controllers (Lay-Ekuakille et al., 2008; Ramchandani et al., 2012; Selvan et al., 2016; Karami et al., 2017; Mohapatra et al., 2017) are used; which are electronic devices that regulate the charge of the batteries by controlling the point at which the solar modules produce the greatest amount of electrical energy. These devices make a balance between voltage and current in order that the PV modules operate at the maximum possible power regardless of the variations in the climatic conditions. They are composed of a control algorithm and a dc–dc converter that functions as a regulator of the charge that is supplied to the battery (Robles and Villa, 2011; Yaden et al., 2013 Filippini et al., 2015).
For the implementation of MPPT controllers, different classical algorithms have been used, among which the following stand out: perturb and observe (P&O) (Bianconi et al., 2013; Ahmed and Salam, 2015; Alik and Jusoh, 2017; Haque and Zaheeruddin, 2017; Kota and Bhukya, 2017), incremental conductance (Sivakumar et al., 2015; Loukriz et al., 2016), constant voltage (Huang and Hsu, 2016) and shortcircuit (Bounechba et al., 2016; Danandeh and Mousavi, 2018). With these methods the maximum output power is not guaranteed, there are power losses and oscillations due to sudden changes in the solar irradiance and the operating temperature of the PV module.
In recent years, different schemes based on soft computing techniques have been introduced, which are effective for working with nonlinear dynamical systems. In addition, these techniques have the advantage of being able to implement them using embedded systems. In this area, most research focuses on the modeling and implementation of MPPT controllers using neural networks (Muthuramalingam and Manoharan, 2014; Dounis et al., 2015; Ma et al., 2016; Messaltia et al., 2017; Robles Algarín et al., 2018), fuzzy logic (Ramalu et al., 2016; Hassan et al., 2017; Na et al., 2017; Nabipour et al., 2017; Robles Algarín et al., 2017; Yilmaz et al., 2018), bee colony (Benyoucef et al., 2015; Fathy, 2015; Atawi and Kassem, 2017), ant colony (Jiang et al., 2013; Titri et al., 2017) and glowworm swarm (Jin et al., 2017). The main challenge of current researches is focused on implementing MPPT controllers with minimum oscillations, achieving the maximum output power for changes in weather conditions; with a good cost-benefit ratio.
Taking into account the above, this paper presents the implementation of a fuzzy controller to track the MPP of a PV module, which uses the characteristics of fuzzy logic to represent a problem through linguistic expressions. For the programming of the fuzzy controller the Arduino Mega board was used, which offers the possibility of sharing and modifying the source code of a computer system (Robles Algarín et al., 2017); highlighting that the code to implement the controller was developed by the authors without the use of libraries.
The major contribution of this manuscript is the implementation of an MPPT controller at low cost, guaranteeing the maximum power to a load regardless of the variations under environmental conditions. It should be noted that this work is part of a set of intelligent control techniques and numerical optimization algorithms that are being evaluated in the Magma Ingeniería research group in order to implement a low cost MPPT controller that could initially be used in the PV installations of the Universidad del Magdalena in Santa Marta, Colombia (Robles Algarín et al., 2017; Robles Algarín et al., 2018).
This paper focuses on the implementation of the MPPT controller. In section “Implementation of the mppt controller” the blocks that make up the controller are presented. Section “Results and discussion” shows the results obtained with fuzzy and P&O controllers. Section “Conclusions” summarizes the main conclusions.
Figure 1 shows the diagram of the MPPT controller implemented, which is composed of the PV module, current sensors, voltage regulators, dc–dc converter (mosfet, diode, inductor, capacitor), driver circuit, coupling circuit, battery (load), and the fuzzy/P&O controller.
A 65 W polycrystalline PV module manufactured by the company Yingli Solar, Baoding, China, to evaluate the performance of the MPPT controller in a PV system was used. Table 1 shows the electrical parameters of the PV module (Robles Algarín et al., 2018).
To measure the current in the PV module and in the load, two ACS712 sensors were used, which provide an economical and accurate solution to measure current in AC or DC in industrial systems. It is a resistive sensor, based on the Hall effect, which delivers a voltage signal proportional to the measured current. Due to the characteristics of the PV system that was implemented in this research (65 W PV module and 12 V battery), the 20 A sensor (ACS712ELCTR-20A-T) with a variable output between 0 and 5 V with a sensitivity of 100 mV was used. Figure 2(a) shows the current sensor used.
To measure the voltage of the PV module and the battery, the voltage regulator FZ0430 was used, which is a voltage divider formed by two resistors of 75 and 30 kΩ that allow it to reduce the voltage measured in a factor of 0.2. In this way, a maximum voltage of 25 V can be measured for a 5 V processor. On an Arduino powered with 5 V that incorporates a 10-bit ADC, as is the case of this work, the resolution is 4.88 mV; but using the voltage regulator the resolution is 24.21 mV. In Figure 2(b) the regulator FZ0430 can be observed.
For the dc–dc converter, the Buck topology was chosen in order to guarantee a lower output voltage than the input voltage, which is suitable for the PV system used in this work: PV module of 65 W, 17.5 V, 3.71 A and load of 12 V. The converter was designed to operate in continuous conduction mode, ensuring that the current in the inductor does not reach zero during the switching cycle. Figure 3 shows the diagram of the dc–dc converter used.
For the design of the inductor, equation (1) was used, with output voltage Vo = 12 V, input voltage Vin = 16.08 V, critical output current io(crit) = 0.7308 A, ripple factor of 30% and sampling frequency fs = 20KHz. The values of critical output current and input voltage correspond to the values obtained from the PV module operating at a solar irradiance of 200 W/m2 and a temperature of 25°C (Robles Algarín et al., 2017).
To implement the inductor, a ferrite toroid was used, which was extracted from a recycled circuit board. The toroid has an external diameter of De=25 mm, internal diameter Di=15 mm, height H=14 mm and relative permeability Ur=4480. A 20 awg wire was used, which supports a current of 11 A and a frequency of 27 kHz. The number of turns N of the inductor was calculated according to equation (2) (Tacca, 2009), for an inductor L=416.6 µH that was selected at 20% higher than the minimum value obtained in equation (1):
Using equation (4), the minimum value of the capacitor is obtained; for ΔiL = 365.94 mA, fs = 20 kHz, ΔV = 5.5 V and ripple of 0.1%:
In the implementation of the converter, two 1,000 µF capacitors connected in series to obtain a value of C = 500 µF were used, according to what is established in equation (4).
To implement the diode of the converter, the schottky barrier diode SP10100C was used, which has working peak reverse voltage of 100 V and a maximum average forward rectified current of 10 A. This diode was extracted from a switched source of a led screen. In relation to the MOSFET, the IRF540N n-channel transistor was used, which is characterized by having an ultra-low on-resistance of 44 mΩ, drain-to-source breakdown voltage of 100 V, continuous drain current of 33 A, and fast switching of 11 ns.
The main function of this block is to safely drive the turning on and off of the Mosfet IRF540N. For this work the driver IR2117 was selected, which has a voltage of 600 V, output current of 200 to 420 mA and output voltage of 10 to 20 V. In Figure 4 the diagram implemented with IR2117 is shown.
In order to properly drive the MOSFET with the IR2117, it was necessary to calculate the bootstrap circuit, which works as an overvoltage protection circuit. This circuit is made up of the capacitors Cb and the diode D1. Equation (5) provided by the manufacturer to calculate the capacitor was used (HV Floating MOS-Gate Driver ICs, 2007).
The value of the capacitor obtained in equation (5) is the minimum required for the correct operation of the bootstrap circuit. A lower capacitor value can cause overcharging; therefore, it is recommended to multiply the value of equation (5) by at least a factor of 15. In this sense, an electrolytic capacitor of commercial value of 22 uF/25 V was selected. Additionally, a 100 nF capacitor was connected in parallel with the 22 µF capacitor in order to reduce losses due to leakage currents. In relation to the diode needed for the bootstrap circuit, the MBR10150CT was used; which is ideal for this type of applications because it has a fast lock for reverse voltage when the MOSFET is in the On state.
To complete the design of the driver circuit, it was necessary to use an external voltage source to guarantee a stable voltage due to variations in the voltage of the PV module. For this reason, the XL6009 regulator was used, which was energized with the 65 W PV module. The XL6009 regulator is shown in Figure 5.
Considering that the Arduino board can only deliver maximum 5 V in the PWM output and that the IR2117 driver was configured with the logic of 0 to 22 V for the activation of the MOSFET transistor; a circuit that is responsible for the coupling of voltages and impedances between the Arduino and the IR2117 driver was designed. The coupling circuit is composed of the low power operational amplifier LM358 and the differential comparator LM339. The LM358 was configured as a voltage follower, while the LM339 was configured as a voltage comparator with a reference voltage of 2.5 V. In Figure 6 the coupling circuit is shown.
The fuzzy controller was implemented on the Arduino Mega board (see Table 2), and its function is to adjust the duty cycle of the dc–dc converter depending on the variations in the operating temperature and solar irradiance; in order to track the MPP of the PV module.
Figure 7 shows the flowchart that represents the fuzzy algorithm that was implemented on the Arduino Mega board. A Mamdani fuzzy logic controller with the centroid defuzzification method was implemented.
The fuzzy controller has two inputs that correspond to the error E(k) and the change of error CE(k), and an output that corresponds to the increment in the duty cycle of the dc–dc converter. E(k) is the slope of the P–V curve of the PV module and allows us to establish the location of the MPP; while CE(k) allows knowing the direction of movement of the MPP. Equations (6) and (7) show the definition used for the inputs E(k) and CE(k) with sampling times k:
The output ΔD(k) is responsible for modifying the duty cycle of the dc–dc converter in order to track the MPP due to variations in climatic conditions. With the value of ΔD(k) an accumulator was made in order to obtain the value of the duty cycle. See equation (8):
Taking into account that the maximum and minimum voltages of the PV module are Vmax = 21.7 V and Vmin = 14.47 V, and that in addition the output voltage of the dc–dc converter is 12 V; the range of values that the duty cycle can take is defined in equation (9):
In the process of fuzzification, triangular membership functions for the inputs and the output were used; while for the defuzificación the centroid defuzzification method was used. Five linguistic labels were used for E(k), CE(k) and ΔD(k): Very Low (VL), Low (L), Neutral (N), High (A) and Very High (VH). Figure 8 shows the membership functions defined for the inputs, with universe of discourse of (−60 to 10) for the error E(k) and (−10 to 10) for the change of the error CE(k).
In order to compare the results obtained with the fuzzy controller, the P&O algorithm was implemented; which consists in modifying the percentage of the duty cycle of the PWM signal that is responsible for driving the dc–dc converter. In this way, it is possible to modify the operating point in the P–V curve of the PV module. This controller was programmed taking into account four cases: (see Fig. 10).
Case 1: power increase ΔP = P2 −P1>0 and voltage increase ΔV = V2−V1>0. Action taken by the controller: decrease the duty cycle ΔD.
Case 2: decrease in power ΔP = P2−P1<0 and decrease in voltage ΔV = V2−V1<0. Action taken by the controller: decrease the duty cycle ΔD.
Case 3: power decrease ΔP = P2 − P1<0 and voltage increase ΔV = V2 − V1>0. Action taken by the controller: increase the duty cycle ΔD.
Case 4: increase in power ΔP = P2 − P1>0 and decrease in voltage ΔV = V2 − V1<0. Action taken by the controller: increase the duty cycle ΔD.
Figure 11 shows the flowchart of the P&O controller that was implemented on the Arduino Mega board.
The Adafruit data logger shield was used in order to store the values of current, voltage, power, and operating temperature, with the time and date in which the data were processed. This shield incorporates an SD card interface that allows working in FAT16 or FAT32 formats with memories with a storage capacity of up to 32GB. Additionally, it incorporates a real time clock to keep the time and date even when the Arduino is disconnected. See Figure 12(a).
To visualize the variables measured by the MPPT controller in situ, the Nokia 5110 graphic LCD was used, which is based on the PCD8544 controller for a 48×84 pixel matrix, SPI interface, 3.3 V operating voltage and current of 6 mA. Figure 12(b) shows the LCD used.
Additionally, four LM335 temperature sensors installed in the four corners of the PV module were used. The LM335 has an output voltage temperature coefficient of 10 mV/°C and operates in a temperature range of −40 to 100°C. The values obtained from the four sensors were averaged in order to obtain the operating temperature of the PV module in real time.
In order to regulate the voltage supplied by the PV module to energize the controller with 5 V, the regulator LM7805 was initially used; but there were problems of overheating in the regulator. For this reason, it was decided to regulate the voltage of the PV module in stages, using the LM7812 and LM7805 regulators, thus avoiding the initial overheating problems.
In order to evaluate the performance of the controllers, the experimental system was installed on the roof of a building, using a 45° inclination angle for the PV module. The tests were performed on a 12 V PV system with a 55Ah battery, which was sufficiently discharged before the tests. With the experiment in progress, the controller is responsible for measuring the current and voltage of the PV module and the battery. For the experiment, three discontinuous days were chosen, charging the system for 7 hr from 10:00 to 17:00. The data were stored in the SD memory of the prototype. The solar irradiance values during the experiment ranged from a minimum value of 690 to 1118 W/m2 for the sunny days. These values were measured manually during different instants of times using the SM296 digital solar BTU power meter (Dr Meter Company Limited, Kaohsiung, China).
Figures 15 and 16 show the power and voltage delivered to the battery by the fuzzy and P&O controllers. These results demonstrate the high efficiency of the fuzzy controller in relation to the P&O control, exhibiting high power generation and minimizing oscillations in different environmental conditions. The P&O presents power losses between 3.3 and 7.7 W in relation to fuzzy control; with the worst scenario between samples 845 and 874 with oscillations of up to 24.4 W.
Figures 17 and 18 show the results obtained in relation to the power and current obtained from the PV module. These results continue to prove that the efficiency of the fuzzy controller is higher than that obtained with the P&O control. In addition, compared to the results obtained in Figure 16, as expected, the power extracted from the PV module is greater than the power delivered to the battery, since the power presented in Figure 16 does not show the consumption of the controller circuit. The MPPT controller (sensors, dc–dc converter, driver circuit, coupling circuit, graphic LCD and Arduino) had a maximum consumption of 3 W during the tests carried out.
Finally, Figure 19 shows the results obtained in the duty cycle signal for the two controllers, in which the stability presented by the duty cycle of the fuzzy controller is highlighted.
In this part it is important to highlight that the results obtained during the implementation of the fuzzy controller are coherent with the results presented in (Robles Algarín et al., 2017), during the first stage of this investigation, that focused on the design and modeling of the fuzzy controller in Matlab. However, it should be mentioned that during the implementation of this work, it was necessary to adjust the ranges of the triangular membership functions of the fuzzy controller, which allowed to improve the efficiency and stability of the PV system in terms of the oscillations around the MPP.
With this work, the effectiveness of fuzzy logic in the implementation of an efficient MPPT controller that minimizes oscillations around the operating point was demonstrated, which allowed to extract the maximum power of a PV module independently of the variations in environmental conditions. In this way, it was possible to store the information of current, voltage and temperature sensors in an SD memory, in order to perform an analysis of the results obtained. The fuzzy controller presented a good performance in terms of stability and power delivered to the load compared to the P&O control, which showed power losses of up to 7.7 W.
For the selection of each of the components of the MPPT controller (sensors, Arduino, dc–dc converter components, driver circuit, coupling circuit) criteria such as pricing, energy consumption, operating ranges, response times and availability were considered. Therefore, it was possible to implement an efficient and low cost controller with a maximum consumption of 3 W in different test environmental conditions. As future work, the research group will focus on using numerical optimization algorithms such as the golden section, downhill simplex, simulated annealing and Levenberg-Marquardt, which have been little addressed in the problems presented in this research.