**1. Introduction**

The output power produced by a solar plant is proportional to the amount of solar energy absorbed by the system. Therefore, a sun tracking system (STS) with a high degree of accuracy is necessary to avoid losses in the output power of solar plants. STSs are usually classified into two categories [1]: passive sun tracking systems, which use the expansion of a gas caused by the solar radiation to move the mechanical structure of the tracker, and active sun tracking systems, which use motors, gears and electric controllers to drive concentration and absorption devices in a solar plant. There are two types of active sun tracking systems based on their controlling methods [2]: sensor driver systems (SDSs) and microprocessor driver systems (MDSs). SDSs use photosensors in order to detect a change in light sources and convert it into an electrical signal, which is used to obtain the position of the sun. However, there are tracking errors when the sensors cannot produce an electrical signal due to low solar radiation levels produced by the presence of passing clouds or contamination in the air. MDSs use microprocessors and computer systems to execute mathematical equations based on solar position algorithms and the current date and time to determine the exact position of the sun. MDSs are cheaper than SDSs; however, there is no feedback to verify the position of the sun, and tracking errors may appear due to the precision of the solar position algorithm. Several algorithms with different levels of complexity and accuracy can be found in the literature [3], where the use of a more precise solar position algorithm increases both the accuracy and the computational effort of the system.

Central tower power plants use two-axis sun reflectors called heliostats, which reflect the solar irradiance into a collector tower. Every heliostat has a local control which drives two motors connected to reduction gears, where the trend is to give greater autonomy to the central control by increasing the intelligence of the local control of each heliostat. Additionally, in solar plants, there are changing dynamics due to non-linearities and uncertainties that traditional PID controllers cannot handle. This is because a PID controller may produce high oscillations when it is tightly tuned, and the dynamics of the process varies due to changes in the operating conditions. Hence, the use of more e fficient control strategies results in better responses [1]. An FLC is a good alternative to traditional PID controllers, because it can deal with non-linear systems and can be designed by using the knowledge of a human operator without knowing the mathematical model of the system. Although the FLC does not have a better response in time domain than a PID controller, this later one cannot be applied to systems which have a quick change of parameters because it would require to adjust the value of its control gains [4].

FLCs [5–10] and hybrid PID-FLCs [4,11–16] have been applied to control the position of DC motors, showing a good output response and better performance against traditional PID controllers. Furthermore, FLCs have been implemented to control two-axis sun trackers for photovoltaic systems. Yousef [17] was the first to develop a PC-based FLC algorithm to control a two-axis photo-voltaic (PV) solar panel. Afterwards, the FLC has been implemented in di fferent platforms and devices such as microcontrollers [18–20], DSPs [21], personal computers (PCs) [22–25] and field-programmable gate arrays (FPGAs) [26].

Finally, the FLC has also been applied in orientation control of heliostats. Ardehali and Emam [27] performed a comparison between a classical PI and PID controller, a PI-FLC and a PID-FLC for the orientation control of a laboratory-scale heliostat with two mirrors of 0.9 m × 0.7 m, two 15 W DC motors, and a data acquisition system with 20 ms sampling time. The FLC uses three membership functions in order to adjust the PID controller gains. The results showed that PI-FLC presented reductions in the overshoot and better performance than the other controllers. Zeghoudi and Chermitti [28] and Zeghoudi et al. [29] used the Matlab environment in order to simulate the orientation of a heliostat by using an FLC with two di fferent rule bases, comparing the output response with a PI, a PID, a PI-FLC and a neural controller. The results showed a better output response for the FLC compared with the other controllers. Additionally, the FLC with fewer rules showed a better output response to step changes than the FLC with the bigger rule base. Bedaouche et al. [30] simulated the position control of two DC motors in order to modify the orientation of a heliostat by using a PID controller self-adjusted by an FLC. The FLC adjusts each PID controller gain by using an individual rule base of forty-nine rules and the error and change of error values. The results showed a faster output response and a smaller overshoot than a classic PID controller. Jirasuwankul and Manop [31] applied an FLC to control the orientation of a lab-scale heliostat with two stepper motors by using a micro-step driver. The position of the heliostat is obtained by using image processing of the reflected solar radiation on the target. The results showed a good performance of the FLC; however, there are tracking errors when the system cannot process the image due to passing clouds.

Nevertheless, the works cited above have only been presented in simulations and small-scale models. Considering the aforementioned, the objective of this paper is to describe the design and implementation of a two-axis STS for the orientation control of a real-scale azimuth-elevation heliostat by using an FLC implemented on a low-cost microcontroller-based embedded system. The comparison between the FLC and a PID controller has also been done.
