Scholarly article on topic 'Implementation of a MPPT fuzzy controller for photovoltaic systems on FPGA circuit'

Implementation of a MPPT fuzzy controller for photovoltaic systems on FPGA circuit Academic research paper on "Electrical engineering, electronic engineering, information engineering"

Share paper
{"Photovoltaic System" / MPPT / "Fuzzy logic" / "fuzzy controller" / "FPGA circuit"}

Abstract of research paper on Electrical engineering, electronic engineering, information engineering, author of scientific article — F. Chekired, C. Larbes, D. Rekioua, F. Haddad

Abstract Maximum power point tracking (MPPT) must usually be integrated with photovoltaic (PV) power systems so that the photovoltaic arrays are able to deliver the maximum power available. The present paper proposes a maximum power point tracker (MPPT) method, based on fuzzy logic controller (FLC), applied to a stand-alone photovoltaic system under variable temperature and irradiance conditions. The objective of this controller is to extract the maximum power of photovoltaic modules. The main objective o f this work is the development of this control and its implementation on a “FPGA Xilinx Virtex-II” circuit using “Memec Design Virtex-II V2MB1000” Development Board. Thus, we can show the advantages of using the FPGA circuits, which are their short development time, their low cost and their flexibility of operation.

Academic research paper on topic "Implementation of a MPPT fuzzy controller for photovoltaic systems on FPGA circuit"

Available online at


Energy Procedia 6 (2011) 541-549


Implementation of a MPPT fuzzy controller for photovoltaic systems on FPGA circuit

F. Chekireda*, C. Larbesa, D. Rekiouab, F. Haddadc

"Laboratory of Communication Devices and Photovoltaic Conversion. National Polytechnic School of Algiers, Avenue Hassen Badi,

El Harrach, Alger 16200, Algeria. bDepartment of Electrical Engineering, University of Bejaia, Route Targa Ouzamour, Bejaia 06000, Algeria. _cUnit of development of solar equipments (UDES), route nationale N°11, BP386, Bou-Ismail, 42415, Tipaza, Algeria._


Maximum power point tracking (MPPT) must usually be integrated with photovoltaic (PV) power systems so that the photovoltaic arrays are able to deliver the maximum power available.

The present paper proposes a maximum power point tracker (MPPT) method, based on fuzzy logic controller (FLC), applied to a stand-alone photovoltaic system under variable temperature and irradiance conditions. The objective of this controller is to extract the maximum power of photovoltaic modules.

The main objective of this work is the development of this control and its implementation on a "FPGA Xilinx Virtex-II" circuit using "Memec Design Virtex-II V2MB1000" Development Board. Thus, we can show the advantages of using the FPGA circuits, which are their short development time, their low cost and their flexibility of operation.

Key words: Photovoltaic System, MPPT, Fuzzy logic, fuzzy controller, FPGA circuit.

1. Introduction

Photovoltaic energy has nowadays an increased importance in electrical power applications, since it is considered as an essentially inexhaustible and broadly available energy resource [1]. An important characteristic of solar panels is that the available maximum power is provided only in a single operating point given by a localized voltage and current known, called Maximum Power Point (MPP). Another problem is that the position of this point is not fixed but it moves according to the irradiance, the temperature and load. Because of the relatively expensive cost of this kind of energy we must extract the maximum of watts of solar panels. This requires a mechanism for the pursuit (tracking) of the MPP called maximum power point tracking (MPPT) so that maximum power is generated permanently. Many classic methods and controllers have been widely developed and implemented to track the maximum power point (MPP) [2, 3, 4].

Other intelligent controllers have been introduced (fuzzy logic, neural network) [5, 6].

The performance of the fuzzy logic controllers (FLC) is tested using stand-alone PV system for various

operational conditions, such as changing solar radiance, temperature and load [5, 6, 7].

* Corresponding author. Tel.: +213777248599 (Chekired. F) E-mail address:

1876-6102 © 2011 Published by Elsevier Ltd. doi:10.1016/j.egypro.2011.05.062

Additionally, a software implementation of the designed FLC on general purpose computer cannot be considered as a suitable design solution for this type of application, especially when it has to be used as MPPT controller for stand-alone PV systems installed in remote rural areas. In such a situation, the FLC was usually implemented in microcontrollers [8, 9] and/or in digital signal processors (DSPs) [10]. In fact, these chips can provide a reasonable performance, but they do not provide the advantages that field-programmable gate arrays (FPGA) chips can potentially offer to the implementation of the MPPT control unit [11]. In comparison to DSP and microcontroller implementations, FPGAs offer lower cost since the various electronic functions required by the control unit can be integrated onto the same FPGA chip [12, 13] as opposed to the former chips which can only perform DSP-related computations. Due to this advantage, an FPGA implementation of FLC is the aim objective at this work.

The paper is organized as follows. In Section 2, we present the stand-alone photovoltaic system. Then, MPPT by fuzzy logic approach is reported in Section 3.

After, we developed Virtex-II V2MB1000 Development board in Section 4. Section 5 shows the implementation of out FLC on this board and displays the implementation results FLC on FPGA chips. Finally, Section 6 contains a conclusion of this study.

2. MPPT in stand-alone PV systems

As shown in Fig. 1. a the stand-alone PV system includes a solar array, DC/DC converter, resistive load and an MPPT control unit [14].

The PV array converts solar energy to electric energy. In its V-P characteristic curve, there is a maximum point commonly called the maximum power point (MPP), at which the module operates with the maximum efficiency and produces the maximum power output Pmax ( Fig. 1. b). In order to obtain an operating point close to this MPP, a controlled DC/DC converter is usually employed to interface the energy flow from the solar module to the load [14].

Fig. 1. (a) the considered stand-alone PV system; (b) power curve under constant irradiance and temperature

The main task of MPP seeking and DC/DC converter operation is provided by a control unit (MPPT Controller), where one of the known MPP tracking algorithms is usually implemented. This continuously checks the output (current and voltage) of the PV module compares them to the previous values and fixes the best power that PV module can produce to supply it to the DC load under all operating and weather conditions [15]. In the present application, a fuzzy logic controller (FLC) was used as the core of the control unit.

3. MPPT by the fuzzy logic approach

Fuzzy systems (FS) are based on fuzzy set theory and associated techniques pioneered by Lotfi Zadeh [16]. It is a non-linear control method, which attempts to apply the expert knowledge of an experienced user to the design of a fuzzy-based controller. Generally, as shown in figure 2, FLC contains four main components:

a) The fuzzifier that maps crisp values into input fuzzy sets to activate rules.

b) The rules which define the controller behavior by using a set of IF-THEN statements.

c) The inference engine which maps input fuzzy sets into output fuzzy sets by applying the rules, and

d) The defuzzifier that maps output fuzzy values into crisp values.

Fig. 2. Fuzzy inference system

The rules describing the FLC operation are expressed as linguistic variables represented by fuzzy sets. The controller output is obtained by applying an inference mechanism [16, 17]

In the case of fuzzy controllers hardware implementation, which is of interest here, the shapes of the membership functions associated to the FLC linguistic variables are often piece-wise linear functions (triangular or trapezoidal). It should be noted that the number and shape of the membership functions of each fuzzy set as well as the fuzzy logic inference mechanism was initially selected based on trial-and-error methods, in a manner that the region of interest is covered appropriately by the inputs data. The idea behind the chosen reasoning was; if the last change in the control signal (D) caused the power to rise, keep moving in the same direction; otherwise, if it has caused the power to drop move it in the opposite direction [1, 4, 7, 17]. The MPPT using the Mamdani's FLC approach, which uses the min-max operation fuzzy combination law, is designed in a manner that the control task try to continuously move the operation point of the solar array as close as possible to the maximum power point (MPP) [18]. The two inputs of the fuzzy controller are the tracking error (E) and the change of the error (AE), which are defined as:

E(n) p(n) - p(n - 1) (1)

V(n) - V(n - 1)

AE(n) = E(n) - E(n -1) (2)


E and AE are the error and change in error, n is the sampling time, p(n) is the instant power of the PV generator, and V(n) is the instant corresponding voltage. These inputs are chosen so that the instant value of E(n) shows if the load operation power point is located on the right or in the left compared to the Pmax actual position. While AE(n) expresses the moving direction of this operation point.

The output variable is the pulse width modulation (PWM) signal called D, which is transmitted to the boost DC/DC converter to drive the load. After the rules have been applied, the center of area as the defuzzication method is used to find the actual value of (D) as a crisp output [7, 14, 17]. The range of the power error is (-0.03 to 0.03 W/V) and their linguistic variables are considered as negative big (NB), negative small (NS), zero (ZE), positive small (PS) and positive big (PB) where as

change of power error range is (-100 to 100 W/V) and its linguistic variables are selected as negative big (NB), negative small (NS), zero (ZE), positive small (PS) and positive big (PB). The output variable is the PWM signal driver whose range is (-0.03 to 0.03 V) and its linguistic variables are chosen as negative big (NB), negative small (NS), zero (ZE), positive small (PS) and positive big (PB).

Membership function plots plot points: I ~ Membership furdion plots plot points: I iff

-0.03 -0.02 -0.01 0 0.01 0.02 0.03 -100 -80 -60 -40 -20 0 20 40 60 80 100

Fig 3. (a) membership functions of input variable E; (b) membership functions of input variable dE

Membership (unction plots Plot P°'nts: I ifff


-0.03 -0.02 -0.01 0 0.01 0.02 0.03

Fig . 4. membership functions of output variable D

Table 1 shows the table of fuzzy controller rules where the inputs are fuzzy sets of error (E) and the change of error (dE). The output of this rules table is the duty cycle (D). Tablet. Fuzzy inference table







4. Virtex-II V2 MB1000 Development Kit

The Virtex-II V2MB1000 Development Kit provides a complete solution for developing designs and applications based on the Xilinx Virtex-II FPGA family. The kit bundles an expandable Virtex-II based system board with a power supply, user guide and reference designs. Also available from Memec Design, optional P160 expansion modules enable further application specific prototyping and testing. Xilinx ISE software and a JTAG cable are available as kit options. The Virtex-II system board utilizes the 1-million gate Xilinx Virtex-II device (XC2V1000-4FG456C) in the 456 fine-pitch ball grid array package. The high gate density and large number of user I/Os allows complete system solutions to be implemented in

the advanced platform FPGA. The system board includes a 16M x 16 DDR memory, two clock sources, RS-232 port, and additional support circuits. An LVDS interface is provided with a 16-bit transmit and 16-bit receive port plus clock, status, and control signals for each. The Virtex-II FPGA family has the advanced features needed to fit demanding, high-performance applications [19, 20, 211.

JTAC3 Foil

Push Button

Fig. 5. Memec Design Virtex-II System Board [21]

5. Application, results and discussion

5. 1. Implementation of the fuzzy controller on FPGA circuit

The motivation behind the implementation of the MPP tracker presented in previous sections is the application in a FPGA chip. This was driven by the need to create an inexpensive hardware implementation for use in stand-alone PV systems placed in remote rural areas. To do this, a Virtex-II V2MB1000 Development Kit (from Memec design) has been employed. This provides a complete solution for developing designs and applications based on the Xilinx Virtex 2 FPGA family. The controllers where designed using Very high speed integrated circuit Hardware Description Language (VHDL) integrated with the Xilinx Foundation ISE 7.1 i tools [22] . The ModelSim Xilinx Edition-III (MXE-III) v6.0a was used for the simulation purposes.

5. 1. 1. Test environment ofthe fuzzy controller for implementation on the FPGA circuit

To test the good operation of programs written in VHDL language, on the Virtex-II V2MB1000 development board, we designed a test environment that uses the resources offered by this board and we can view the results in real time. The Detailed block diagram of the test environment of the controller is shown in Fig. 6. b. It includes principal units:

• Frequency divider

This block generates a clock signal at 1Hz from the internal clock signal of 100 MHz. In reality the system usually works with a frequency of 100 Hz, but for testing purposes and to visualize the results to the naked eye, it works with a clock period of 1 second. •The 7-segment Decoder

The value of the power P or the duty cycle D (as selected by the user), is translated into 7-segment format and adapted to be displayed on two 7-segment displays available on the development board.

• 7-segment display

Both displays can display the value of power P and duty cycle D in hexadecimal format. We can follow the variation of P or D (as selected by the user) in real time.

• The scope

The scope visualizes the duty cycle D generated under PWM signal form used to control the MPPT converter.

•The block of ROM

This block contains the power-voltage characteristic of a photovoltaic generator in tabular form; it replaces our full test of a photovoltaic system. It contains two different curves of the power-voltage characteristic corresponding to different atmospheric conditions of irradiance and temperature. Data from these curves are derived from power-voltage characteristics shown in Fig. 6. a . The choice of the desired curve is made by pressing the button "choice". We introduced two different curves of the power-voltage characteristic in the block ROM to have two different points MPP.

• The block of control

This block is used to reset the system with a new value of duty cycle by pressing the button "Reset". The user can enter the desired initial value D acting on the input 8-bit DIP switchs. These switchs can be set statically to 1 or 0 by the user to form any binary word of 8 bits.

• MPPT Controller

This block represents the VHDL block to be tested; it is the MPPT fuzzy controller.

Frequency divider

Choice of the P (V) curve

Block of control

MPPT Controller

7-segment Decoder

Choice of 7-segment display display

Reset DIP Switch

Fig. 6. (a) both curves of the power-tension characteristic; (b) detailed block diagram of the test environment contained in the Rom block

5. 1. 2. Simulation ofthe MPPT fuzzy controller

This operation validates the project with each stage of the development. It is in this part we will be able to view the results obtained by the fuzzy controller. In the first step, we notice the controller performances in the search for the maximal power point MPP. In the second step, we act on the characteristic power-voltage switching of a power curve to another, which is stored in the ROM block (Fig. 6. a) then we can observe MPP tracking spend of this controller.

5. 1. 2. 1. Research of maximum power point by the MPPT fuzzy controller

In this step, we initialize the controller to begin working with the minimum duty cycle (D = 10%), we observe the controller behavior and calculate the time needed to reach the MPP. Figure 7 shows the MPPT fuzzy controller response for constant conditions of irradiance and temperature. From the results obtained, we notice that the controller converges quickly to the MPP. The fuzzy Controller response is estimated by 12 clock cycles only (which is equivalent to 0.12s at 100 Hz).

5.1. 2. 2. Tracking of maximum power point by the fuzzy controller

In this second step, we observe the controller response during sudden changes of weather conditions. It acts on the power-voltage characteristic of curve to each other by choosing the button, so that the controller stabilizes around the MPP, we calculate the time needed to reach the new MPP. In Figure 8, we note that the tracking of MPP is very fast. Indeed, in an abrupt decrease of irradiance, the controller finds the new MPP after 3 clock cycles only (0.03 s at 100 Hz), and during a sudden increase of irradiance, the controller response is estimated only by 4 clock cycles before stabilizing at the Pmax value.

Fig. 8. simulation of the MPP tracking by the fuzzy controller for abrupt changes of the weather

The different sub-units of controller were implemented separately on a Virtex II FPGA chip, shown in Fig 9 (a) this chip was largely sufficient to implement all the constituents of the MPPT controller addressed in this work as it contains 5120 slices and 10240 logic cells as well as forty 18x18 multipliers.

Fig. 9. (a) FPGA circuit routing for the fuzzy controller; (b) allocation of Input/ Output pins in FPGA chip

5. 2. Implementation results of MPPT fuzzy controller on FPGA chip

Figure 10 shows the displaying of the duty cycle D obtained on 7-segment display of Virtex-II

development board.

Fig. 10. Displaying the duty cycle D on Virtex-II development board

Fig 11. a shows the generated duty cycle presented in "PWM" form under constant weather conditions of temperature and irradiance (Ambient values, T=250C, S= 1000W/m2) and Fig. 11. b presents the generated duty cycle under variable weather conditions (T= 250C, S= 800W/m2).

Fig 11. (a) The generated duty cycle displayed under PWM; (b) The duty cycle D generated by the fuzzy controller from under constant weather conditions; displayed under the form PWM form under variable

weather conditions

6. Conclusion

To ensure the photovoltaic generator operating its maximum power point, MPPT controllers are often used. These controllers are intended for MPP tracking and to thus minimize the error between the operating power and the reference maximum power which is variable according to the load and of the weather conditions. With a same aim, several MPPT control techniques have been introduced recently.

In this work, we developed and implemented on the circuit "FPGA Xilinx Virtex II" using the development board "Memec Design Virtex-II V2MB1000", intelligent MPPT technique used in photovoltaic systems that is the fuzzy logic method, we tried to explore the resources offered by the FPGA. The simulation results validate the programs before charging them on the FPGA. They also confirm the controller performances to different working conditions not only for maximum power point tracking but also the response time and stability. However, the greatest disadvantage of this method lies in the complexity of its implementation; indeed, it asks heavy programming in VHDL.

7. References

[1] S. Lalouni , D. Rekioua , T. Rekioua , E. Matagne, Fuzzy logic control of stand-alone photovoltaic system with battery storage, Power Sources; 2009: 193: 899-907.

[2] Hohm DP, Ropp ME. Comparative study of maximum power point tracking algorithms. Progress in Photovoltaics: Research and Application; 2003 ;11: 47e62.

[3] Salas V, Olias E, Barrado A, Lazaro A. Review of the maximum power point tracking algorithms for stand-alone photovoltaic systems. Solar Energy Materials & Solar Cells; 2006;90:1555e78.

[4] Houssamo I, Locment F, Sechilariu M. Maximum power tracking for photovoltaic power system: development and experimental comparison of two algorithms. Renewable Energy; 2010;35(10)2381e7.

[5] Mellit A. Artificial intelligence based-modeling for sizing of a stand-photovoltaic power system: Proposition for a new model using N Fuzzy system (ANFIS). In: Proceedings of the 3rd International III Conference on Intelligent Systems, UK, vol. 1; 2006. p. 605-11.

[6] Mellit A, Kalogirou SA. Arti cial intelligence techniques for photovoltaic applications: a review. Progress in Energy and Combustion Science ; 2008, 34574e632.

[7] Larbes C., Art Cheikh S. M., Obeidi T., Zerguerras A. Genetic algorithms optimized fuzzy logic control for the maximum power point tracking in photovoltaic system, Renewable Energy, 2009, 34: 2093-2100.

[8] Khaehintung N., Sirisuk P., Implementation ofMaximum Power Point Tracking Using Fuzzy Logic Controller for Solar-Powered Light-Flasher Applications, The 47th IEEE International Midwest Symposium on Circuits and Systems, pp.171-174, Hiroshima, July 25-28. 2004.

[9] Eakburanawat J., and Boonyaroonate I.,. Development of a thermoelectric battery-charger with microcontroller-based maximum power point tracking technique, Applied Energy, 2006, 83(7): 687-704.

[10] Akkaya R, Kulaksiz AA, and Aydogdu O.,. DSP implementation of a PV system with GA-MLP NN based MPPT controller-supplying BLDC motor drive, Energy Conversion and Management, 2007, 48(1): 210-218

[11] Khaehintung N, Wiangtong T, Sirisuk P., . FPGA Implementation of MPPT Using Variable Step-Size P&O Algorithm for PV Applications. IEEE International Symposium on Communication and Information, IEEE-ISCIT'06, pp. 212-215. 2006.

[12] Jimenez, C.J., Sanchez Solano, S., Barriga, A. Hardware implementation of a general purpose fuzzy controller. IFSA'95, pp. 185-188, 1995.

[13] Mekki H., Mellit A., Kalogirou S.A., Messai A. and Furlan, G. FPGA-Based implementation of a realtime photovoltaic module simulator, Progress in Photovoltaics: Research and Application, 2010, 18: 115-127.

[14] A. Messai, A. Mellit, A. Guessoum, and S.A. Kalogirou, Maximum power point tracking using a GA optimized fuzzy logic controller and its FPGA implementation, Solar energy, 2010.

[15] Goetzberger A., Hoffmann V. Photovoltaic solar energy generation, Springer, Germany, 2005.

[16] Timothy, J. Ross. Fuzzy Logic with Engineering Applications, second ed. John Wiley & Sons Ltd., 2004.

[17] F. Chekired, Implementation of MPPT neuro-fuzzy Controller on FPGA, Memory of Magister, ENP, Algeria, 2008.

[18] Khaehintung N., Pramotung K., Tuvirat B, and Sirisuk P. RISC-microcontroller built-in fuzzy logic controller of maximum power point tracking for solar-powered light-flasher applications, ICON The 30th Annual Conference of the IEEE Industrial Electronics Society, 2004, pp.2673-2678..

[19] S. Berto, A. Paccagnella, M Ceschia, "Potentials and Pitfalls of FPGA Application in Inverter Drives - a Case Study" in Proc. IEEE ICIT, 2003, pp.500-505

[20] MEMEC Design, Virtex-II! V2MB1000 Development Bord user's Guide, /refernce/xilinx, December 2002.

[21] J P Deschamps, G JAntoine Bioul,"Synthesis of Arithmetic Circuits FPG And Embedded Systems" JOHN WILEY & SONS, 2006.

[22] PONG P. CHU. "RTL Hardware Using VHDL" USA:John Wiley & Sons, 2006, 669p.