Professional Documents
Culture Documents
on feedback by camera
Submitted in partial fulfilment of the requirements
of the degree of
Master of Technology
by
Nishant Kumar
(11D170018)
Supervisors:
Prof. Shireesh B. Kedare
Prof. Harish K. Pillai
i
Declaration
By submitting this report, I declare that the entirety of the work contained therein is my own,
original work and where other’s idea or words are included, I have adequately cited and
referenced the original sources. I also declare that I have adhered to all principles of academic
honestly and integrity and have not misrepresented or fabricated or any data/fact/idea in my
report. I understand that any violation of the above will be cause for disciplinary action by the
Institute and can also evoke penal action from the sources which have not been properly cited
or from whom proper permission has not been taken when needed.
---------------------
Nishant Kumar
11D170018
4 July 2017
i
Abstract
Concentrating solar power (CSP) is one of the most efficient way to store large amounts of
renewable energy. CSP plants use mirrors or lenses to focus large amount of sunlight onto a
receiver. Heliostat is one of such device that includes a mirror, usually a plane mirror, which
turns so as to keep reflecting sunlight toward a predetermined target, compensating for the
sun's apparent motions in the sky. In a heliostat field, the distance between heliostat and
receiver can be as long as one kilometre, that can amplify small angular tracking errors to a
high image offset. So, high tracking efficiency is needed to minimize offset losses.
This report presents a control application of a heliostat tracker that is able to follow the sun
with high accuracy and redundancy without the necessity of either a precise procedure of
installation or recalibration. The tracking mechanism should track a single prototype as well
as multiple heliostats at large heliostat field.
ii
Table of Contents
Declaration .................................................................................................................................. i
Abstract ......................................................................................................................................ii
List of Figures ............................................................................................................................ v
List of Tables ............................................................................................................................ vi
Nomenclature ...........................................................................................................................vii
Chapter 1. Introduction .......................................................................................................... 1
1.1. Central Receiver configuration (Heliostat Field) ........................................................ 1
1.2. Heliostat tracking ........................................................................................................ 2
1.3. Heliostat tracking errors .............................................................................................. 3
1.4. Objectives .................................................................................................................... 4
1.5. Structure of the report ................................................................................................. 4
Chapter 2. Literature Review................................................................................................. 5
2.1. Heliostat Errors ........................................................................................................... 5
2.2. Solar tracking .............................................................................................................. 5
2.2.1. Passive solar trackers ........................................................................................... 6
2.2.2. Electro-optical sensor feedback tracking ............................................................. 6
2.2.3. Microprocessors running solar algorithms........................................................... 6
2.2.4. Closed Loop Tracking with Real-Time Error Feedback...................................... 6
2.2.5. Model Based Open Loop Tracking with Delayed Error Feedback...................... 8
2.3. Summary ..................................................................................................................... 9
2.4. Gap analysis ................................................................................................................ 9
2.5. Objectives of the project ........................................................................................... 10
Chapter 3. Experimental setup............................................................................................. 11
3.1. Target screen ............................................................................................................. 12
3.2. Heliostat .................................................................................................................... 12
3.3. Control System .......................................................................................................... 13
3.3.1. Arduino Mega .................................................................................................... 14
3.3.2. Communication .................................................................................................. 14
3.3.3. Motor controller ................................................................................................. 15
3.3.4. Imagining Device ............................................................................................... 16
3.4. Summary ................................................................................................................... 16
Chapter 4. Methodology ...................................................................................................... 17
iii
4.1. Geometry of the system............................................................................................. 17
4.1.1. Calculation of sun vector ................................................................................... 17
4.1.2. Calculation of Mirror and Image vector ............................................................ 17
4.1.3. Mirror vector ...................................................................................................... 18
4.1.4. Adjusted mirror and vector ................................................................................ 18
4.1.5. Image vector....................................................................................................... 19
4.1.6. Correction in Mirror vector ................................................................................ 20
4.2. Open Loop tracking................................................................................................... 20
4.3. Close loop tracking.................................................................................................... 21
4.3.1. Detection principle ............................................................................................. 21
4.4. Image processing ....................................................................................................... 24
4.5. Tracking Logic .......................................................................................................... 26
4.6. Calibration ................................................................................................................. 28
4.7. Summary ................................................................................................................... 30
Chapter 5. Results ................................................................................................................ 31
5.1. Open loop Heliostat tracking..................................................................................... 31
5.2. Close loop Heliostat tracking .................................................................................... 33
5.2.3. Point image at the centre .................................................................................... 33
5.2.4. Point image at random position on screen ......................................................... 34
5.3. Summary ................................................................................................................... 42
Chapter 6. Conclusion and future work ............................................................................... 43
6.1. Conclusion................................................................................................................. 43
6.2. Future work ............................................................................................................... 44
References ................................................................................................................................ 45
Appendix 1-Test Setup and Technical Datasheet .................................................................... 47
A1.1. Receiver ...................................................................................................................... 47
A1.2. Heliostat ...................................................................................................................... 47
A1.3. Driver .......................................................................................................................... 48
A1.4. Stepper Motor ............................................................................................................. 48
Appendix 2 - MATLAB Programming.................................................................................... 49
Acknowledgment ..................................................................................................................... 61
iv
List of Figures
Figure 1.1: PS 10 a 10 MW thermal power plant in southern Spain (CSP powerplant,2017)..... 2
Figure 1.2: Tracking angles in heliostat ...................................................................................... 2
Figure 3.1: Layout of the experiment ....................................................................................... 11
Figure 3.2: Heliostat machine................................................................................................... 13
Figure 3.3: Schematic of electronics control system ................................................................ 13
Figure 3.4: Arduino Mega micro controller .............................................................................. 14
Figure 3.5: Xbee S2 ................................................................................................................... 15
Figure 3.6: FTDI module ........................................................................................................... 15
Figure 3.7: Motor controls ....................................................................................................... 15
Figure 3.8: Logitech C920 HD pro webcam, without and with filter ........................................ 16
Figure 4.1: Heliostat Geometry ................................................................................................ 17
Figure 4.2: +20 due south tilted X-Z plane of heliostat geometry............................................. 19
Figure 4.3: Geometry of error and their compensation ........................................................... 20
Figure 4.4: Logic map of open loop tracking system .............................................................. 21
Figure 4.5: Colour map of intensity variation of circumsolar region ........................................ 22
Figure 4.6: circumsolar region at different mirror positions .................................................... 22
Figure 4.7: Mirror as seen by camera 1 & 3 at different position ............................................ 23
Figure 4.8: Log (intensity ratios) vs distance ............................................................................ 23
Figure 4.9: circumsolar region at different mirror position ...................................................... 24
Figure 4.10: Masked image (1 & 2) .......................................................................................... 24
Figure 4.11: Processed image through boundary intensity limit .............................................. 25
Figure 4.12: Pixel value distribution of masked image & boundary limit ................................. 25
Figure 4.13: Image feedback logic ............................................................................................ 26
Figure 4.14: tracking logic for close loop tracking .................................................................... 27
Figure 4.15: (1) Image pointing at the centre of the screen. ................................................... 28
Figure 4.16: Heliostat calibration: Image searching for C3 ...................................................... 29
Figure 4.17: Heliostat calibration: Image searching for C1 ...................................................... 29
Figure 4.18: Heliostat calibration: 11 identified positions for data collection ......................... 30
Figure 5.1: Instantaneous error through time ........................................................................... 32
Figure 5.2: Cumulative error vs time ....................................................................................... 32
Figure 5.3: Heliostat pointing at centre of screen .................................................................... 34
Figure 5.4: Image captured during calibration ......................................................................... 36
Figure 5.5: Image captured during calibration ......................................................................... 37
Figure 5.6: Average intensity vs x ........................................................................................... 38
Figure 5.7: log (M3/M1) vs x .................................................................................................. 38
Figure 5.8: Average intensity vs z-axis log ............................................................................. 39
Figure 5.9: (M3/M1) vs z ......................................................................................................... 39
Figure 5.10: Average intensity vs X-axis (2nd calibration) ...................................................... 40
Figure 5.11: log (M3/M1) vs x 2nd calibration ......................................................................... 41
Figure A1.1 :Technical details of NEMA 23 bipolar stepper motor .......................................... 48
v
List of Tables
Table 2.1: Classification of different tracking mechanism .......................................................... 5
Table 5.1: Classification of different tracking mechanism ........................................................ 31
Table 5.2: Time taken by each process in closed loop tracking ................................................ 33
Table 5.3: Time taken by each process in calibration (X=number of use) ................................ 35
Table 5.4: Intensity data for calibration experiment X-axis ...................................................... 35
Table 5.5: Intensity data for calibration experiment Z-axis ...................................................... 39
Table 5.6: Intensity data for calibration experiment X-axis (2nd calibration) ............................ 40
Table 5.7: Error Data for Heliostat tracking of Point (-600mm, -450mm) ................................ 41
Table A1.1: Receiver details ..................................................................................................... 47
Table A1.2: Heliostat details ..................................................................................................... 47
Table A1.3: Micro stepping driver details................................................................................. 48
vi
Nomenclature
α S , αI , αM Elevation angle of Sun, image and mirror in degrees from horizontal plane
containing South and East
ϒS ,ϒI , ϒM Azimuth angle of Sun, image and mirror in degrees from South. East of
South is positive.
γb Altitude offset of heliostat
αb Azimuth offset of heliostat
̂𝑏
M Bias adjusted mirror unit vector
̂ 𝐴𝐷𝐽
M Adjusted mirror unit vector
⃗C Correction vector
⃗S,I, ⃗M
⃗⃗ Sun, image and mirror vector
Ŝ,Î, M
̂ Sun, image and mirror unit vector
θi Incident angle (sun rays)
𝜀𝑝𝑡𝑁 , 𝜀𝑝𝑡𝐸 Pedestal tilt angles
𝜀𝑁𝑂 Non- orthogonality angle
Jx/Jy Mirror angle equivalent to half screen length/height
J The heliostat angle value required to move the image from centre of the
screen to either of the sides
R Perpendicular distance between screen mount and center of heliostat
mirror
Rs, Rv The static component and the varying component of R
H Relative height of screen center with respect to center of mirror
K The projection of mirror offset in tilted Y-Z plane
C1, C2, C3, C4 Cameras mounted around screen (left, bottom, right, top)
𝑚𝑜𝑓𝑓 Mirror offset
Ɵ𝑠 Angle heliostat-screen plane make with south, 1820 for this experiment
H𝑟 Height of the heliostat with respect to ground
Hℎ Height of the receiver screen with respect to ground
vii
Chapter 1. Introduction
In recent times, much of emphasis in Energy sector is on taping Renewable energy, that also
makes it ‘World’s fastest growing form of energy (Sieminski, 2011).A global transition from
fossil fuels toward renewable energy is in process, motivated mostly by a growing awareness
about environmental degradation, climate change and the challenge of finite fossil resources.
With the increasing global energy demand, along with growing populations and infrastructure
development, especially in the developing world (Sieminski, 2011),One of the greatest
challenges of our time is to find efficient and cost-effective ways to harness alternative forms
of energy. One of the other alternative is nuclear power, which could play a significant role in
the medium term during the transition to renewable energy. However, it cannot be a prime
source in longer run due to cost uncertainty and challenges associated with waste management
and possibility of arms proliferation. Photovoltaic (PV) and wind power are already cost
competitive with coal and gas in some instances and can help to reduce the use of conventional
fuels. Unfortunately, the discontinuous nature of PV and wind coupled with our inability to
store electrical energy at a significant scale make these technologies unsuitable for base load.
Concentrating solar power (CSP) converts solar radiation into thermal energy and that can be
used in industrial utility, household utility or for electricity generation. Unlike electricity,
thermal energy can be stored more efficiently and economically even at utility scale. This set
apart CSP from other renewable energy technologies, enabling it to provide base load power
in sunny parts of the world.
This chapter starts off giving a background for solar energy and shows how CSP fits into this
category. The project’s objectives, methodology and scope are then discussed before ending
with an overview of the rest of the document.
1
Figure 1.1: PS 10 a 10 MW thermal power plant in southern Spain (CSP powerplant,2017)
2
Many heliostat systems use open-loop tracking to accomplish these goals. They stay on target
by following a pre-set course given their known positions in the field and the known course of
the sun in the sky. The other method is Closed loop in which the feedback to the control system
is provided by assessing mirror vector or/and image vector.
1 Collecting pointing error data over a short period of time in calibration mode
3
1.4. Objectives
This project’s objective is to develop and demonstrate a heliostat tracking architecture that
have high accuracy and redundancy. Control system should be governed by the real-time
tracking feedback compensating for the relative Earth-Sun movement to maximize the
reflection of sunlight onto a stationary receiver. The system should track heliostat at a very
high precision with tracking error as low as 0.1mrad. The objectives identified to achieve the
larger aim of designing self-learning control of heliostats include:
1) Development of Camera based feedback mechanism, that can identify tracking error
2) Development of computer programme that can analyse the errors and can communicate
them with the user.
3) Development of tracking logic that can accept error data based on Sun position formulas
as well as feedback mechanics as input and can produce tracking controls for high
precision tracking with minimum time lag
4
Chapter 2. Literature Review
This chapter reviews work done by various researchers and relevant to the control of heliostats
in central receiver systems (CRS). The fundamentals of earth-sun geometry are discussed and
solar angles are defined. The basics of solar tracking, heliostat tracking, error correction, CRS
development trends and the current state of the art in heliostat field control systems are
discussed.
1. Pedestal tilt
2. Azimuth and elevation bias offset
3. Non-orthogonality between the altitude and azimuth axis
4. Mirror pivot offset
5. Encoder reference errors
5
Rubio (2007) categorizes solar tracking methods by their respective control mechanisms as
follows. These methods were used in earlier stages of Open loop heliostat tracking experiments
by researcher.
6
axes via a 2:1 mechanical reduction. Experimental results yielded a daily mean normal vector
tracking accuracy of 3.3 mrad.
Quero (2007) proposes a method for providing local error feedback to each heliostat by
measuring its reflected beam angle. Electro-optical sensors, each having a collimator structure
is placed between each heliostat and the receiver. Misalignment of the error reflected image
results in a corresponding beam angle deviation measured by the sensor. This scheme requires
very accurate alignment during installation, but can also be periodically calibrated using an
electronic offset procedure.
Pfahl (2009) proposes a local feedback tracking method which measures the relative angles
between the heliostat normal, the receiver and the sun by using an imaging device mounted on
the heliostat. A small hole in the mirror surface allows an image to form on a plane behind the
hole, similar to how a camera works. An image sensor measures the centre-offsets of the images
made by the receiver and the sun. This provides simultaneous angle feedback of the sun and
the receiver relative to the heliostat normal vector. The programme allows for continuous
adjustment of the heliostat until its normal vector bisects the angle between the sun and the
receiver.
Kribus (2004) further developed the above-mentioned principle and presents a detailed
correction methodology with test results showing individual heliostat tracking errors reduced
to 0.1 - 0.3 mrad. However, the fact that this method has so far not seen widespread use is an
indication of the image processing challenges and practical difficulties associated with
operating cameras close to a high flux receiver.
7
Convery (2011) described a new method for identifying individual heliostat reflections from
among many others in a field. Piezoelectric actuators are attached directly to heliostat mirror
surfaces to induce specific vibration signatures.
2.2.5. Model Based Open Loop Tracking with Delayed Error Feedback
Open loop tracking uses no real-time error feedback. The required heliostat normal vector is
calculated at regular intervals along with actuator control signals to keep realigning the
heliostat.
Baheti & Scott (1980) derived a basic movement model to account for a heliostat’s pedestal
tilt, azimuth- and elevation axes bias and drive wheel radius tolerance. It was claimed that
fabrication tolerances (for orthogonal axes alignment) and rotary encoder alignment could be
easily controlled, so these sources were not included in the model. A closed-loop solar tracking
sensor was used to periodically point the heliostat normal vector directly at the sun. Heliostat
pointing errors were then obtained at each measurement interval by comparing the commanded
heliostat position with the ‘real’ solar position as calculated by a solar algorithm. This data was
used to estimate coefficients for the error model and resulted in final RMS error reductions of
10: 1 and 5: 1 for azimuth- and elevation tracking respectively.
An improvement to Baheti’s model was patented in 1986 by McDonnell Douglas. This model
included error sources previously described by Baheti & Scott and added a rotation element
caused by non-orthogonality of a heliostat’s principle axes.
Stone (1999) developed a mechanism (solar one) by manually adjusting their pedestal
mounting bolts with the aid of a very accurate electronic inclinometer. This was expensive and
proved to be ineffective in reducing long term tracking errors. Later, a heliostat beam
characterization system (BCS), analogous to a modern digital camera, was used to capture
reflected solar images on a calibration target located on the tower below the receiver Elevation-
and azimuth-axis offsets (bias adjustments) were calculated based on three reflected beam
measurements per day. This replaced the need for structural adjustments, but was still time
consuming.
A machine vision system for automatically determining heliostat beam error offsets is
described by Camacho et al. (2012). The strategy is based on the BCS system used at Solar
One. A modern digital camera is used for image acquisition and digital image processing
techniques for calculating the reflected beam centroid relative to the intended aim point is
presented.
8
Ravindra, (2015) and Sushant (2015) have designed two similar experiment, in which cameras
are used for closed loop feedback. One experiment used four cameras mounted along the
receiver while other used a single camera facing the receiver. In Ravindra method tracking
errors were determined by using four cameras at each side of dummy. Average intensity values
were being evaluated for each heliostat image and compared from the values obtained from the
opposite camera. The image was pointed at center of screen by adjusting equal intensity value
on opposite cameras. Detection of error was successfully presented while correction and
application was not fully completed.
2.3. Summary
Precise tracking of heliostat is must for maximum efficiency of solar thermal plant. In passive
tracking sunlight is not necessary for feedback while in Active tracking sunlight is necessary
as the later use light sensors for closed loop. In heliostat tracking eight errors sources are
identified in this literature survey. In Closed loop tracking feedback is given to controls system
about error in position of image vector or heliostat normal vector while in open loop initially
mathematical algorithm is been feed to the system not further feedback is provided. As open
loop mechanism does not compensate for time varying error (major source of error) and does
not have any feedback mechanism that lead to a very low precision in tracking. In local
feedback closed loop mechanism the sensors are placed on or near mirror while in receiver
feedback closed loop mechanism sensors are located on or near Target surface mechanism.
Different types of sensors like Photodiode, infrared sensor, sound sensors, camera etc, are used.
The most precise system yet developed consist four cameras located at receiver looking onto
heliostats. Ravindra,2015 successfully detected position of heliostat in a constrained
experiment condition.
9
2.5. Objectives of the project
1) Development of a logic system based on 4 cameras to detect current position of heliostat
and the error in position
2) Development of tracking system that can point at center of receiver and can track it with
time
3) Optimization of tracking logic to achieve tracking error of less than 0.1mrad
4) Development of tracking system that can point at any position on receiver and can track
that position with time
10
Chapter 3. Experimental setup
In this chapter, experimental setup is described in detail. This chapter describes reasoning of
selecting different components and also problem created by them during experiment
New Solar Terrace was selected as a site of experiment as it has full day sun radiation. A target
surface made of Ply-wood was fixed, to be used as a dummy screen. Four cameras were
installed at mid-points of each sides of the screen. A miniature heliostat was already designed
by Ravindra, (2015) and Sushant (2015), the same machine was used in this experiment, it was
placed at distance of10m from the screen due south. The heliostat has two stepper motors that
control its two axes - azimuth and altitude, it is controlled by a micro-stepping driver. A
Heliostat Controls system was designed from scratch using readily available electronic
components.
. Fig 3.1 describes the basic layout of the experiment 4 cameras placed at each side of the
dummy screen send image to the computer. Computer then process the image, compare the
average intensity values of opposite cameras, and determine the position of image with respect
to the centre Correction angle is then calculated using a comprehensive algorithm (in detail
section: 4.5). The correction angle then transmitted to Motor controls wirelessly as both these
systems are at a significant distance. The motor controls then rotate the motor according to
Receiver screen
Processing unit
USB Dock
Wireless
transmitte
r
Wireless receiver
11
input correction angles. The system checks for the error again, and whole process reiterate. If
the direction of error changes the correction angle is halved. The iterations follow until a
minimum correction value is reached, for this experiment the values is ~0.04 degree (7mm
error on screen). The whole cycle revives after a fixed delay for another round of correction.
3.2. Heliostat
A miniature heliostat was designed and fabricated by previous Ravindra, (2015) and Sushant
(2015). Heliostat have two NMEA size 23 bipolar stepper motors set at 25000
steps/revolution,1:8 reduction worm gears were used as the drive. That put the motor at
~0.0020 /step or 0.03 mrad/step. A 250 mm x 250 mm mirror is mounted on heliostat (fig 3.4).
The combined motor and gear has a holding torque of 64 kg-cm. Mirror centre to altitude axis
offset is 0.75 cm. Output torque is more than sufficient to move the mirror. The azimuth axis
is facing downwards and fixed to a bushing bolted to the base plate.
12
Four wires of each of the motors are connected to motor output terminals on the micro stepping
drivers. Two limit switches are located for each axis are provided such that they get tripped at
pre-determined angles. In this case, altitude trips at -1 degrees and azimuth at -90 degrees. It
prevents heliostat to rotate at unclearly high angles.
13
3.3.1. Arduino Mega
Arduino Mega (Fig 3.4) forms the main part of the heliostat controller. It is relatively cheap
and readily available micro-controller, it has biggest support library and resources among,
those are very handy when one is designing something new. Arduino Mega is a microcontroller
based on Atmega-2560 chip. It has 54 digital inputs/outputs, 16 Analog inputs, 4 hardware
serial ports (UARTs) and USB interface it runs on 7 to 12 v DC supply.
3.3.2. Communication
Two Xbee series-2 modules mounted on FTDI shield were used for communication (Fig 3.5).
FTDI shield is used to communicate between USB and Serial (Fig 3.6). Xbee s-2 was
configured into route mode with baud rate 9600. Communication module was powered by
connecting 3.3v input voltage point on Arduino. For communication with Arduino Rx of Xbee
is connected to Tx and Tx of the Xbee is connected to Rx of the Arduino
14
Figure 3.5: Xbee S2
15
3.3.4. Imagining Device
Logitech C920 HD pro webcam is used for taking image of reflection on the receiver (Fig. 3.8).
Camera is being operated in its default resolution 640x480. All internals settings such as
exposure, brightness, focus mode, hue and saturation are automatic. Welding glass was used
as filter to reduce the intensity of heliostat. Four cameras with filter were placed on each side
of the screen.
Figure 3.8: Logitech C920 HD pro webcam, without and with filter
3.4. Summary
Layout of the experiment was described; the experiment composes five different
systems/devices. A dummy screen that acts as a receiver, 4 cameras attached to screen for
image acquisition, computer for image processing, motor control system for driving the motor
and a communication system for data transfer between computer and motor controls. Details
of each component was presented.
16
Chapter 4. Methodology
This chapter explain various methods and calculations used in the experiment. The goal of this
chapter is to establish ground for high accuracy tracking.
z (Up)
𝐼̂
γI x'
̂
𝑀
αI 𝛾𝑀 x'
𝛼𝑀 R
x
𝛼𝑆 (North)
𝑆̂
γS
x'
y (East)
Figure 4.1: Heliostat Geometry
17
4.1.3. Mirror vector
In fig. 4.1, Heliostat geometry is defined in spherical co-ordinates. The radial distance (R) is
defined as perpendicular distance between screen mount and varying centre of heliostat mirror.
R can further be defined as R=Rs +Rv. Where Rs is the static component that is when mirror is
directly facing north, value of Rs in this system is 10000 mm. further the varying component
Rv is function of Mirror vector and mirror offset. As described in fig 4.1 -
̂ = (R, αM , γM )
𝑀 (3.1)
The solar vector (𝑆̂) is described by its azimuthal angle- (αS ) and altitude angle- (γS )
𝑆̂ = (R, αS , γS ) (3.2)
The Image vector (𝐼̂) is described by azimuthal angle- (αI ) and elevation angle- (γI )
𝐼̂ = (R, αI , γI ) (3.3)
𝑆̂ + 𝐼̂
̂=
𝑀 (3.4)
2
The azimuth- and elevation angle offsets and pedestal tilt is added to the angle components of
̂ as follows
𝑀
α𝑀𝑏 = α𝑀 + αb (3.6)
γ𝑀𝑏 = γ𝑀 + γb (3.7)
Although in this system there is no need to incorporate azimuth- and elevation angle offsets or
pedestal tilt as this heliostat operates on difference of angle rather than absolute values. The
error value (Δα𝑀𝑏 ) would automatically cancel out during calculation of difference
( α1 𝑀𝑏 − α0 𝑀𝑏 ).
18
4.1.5. Image vector
𝑆̂ 𝐼̂ Target
̂
𝑀
2430 mm (Hr)
Heliostat
75 mm
R
1085 mm (Hh)
Figure 4.2: +20 due south tilted X-Z plane of heliostat geometry
Figure 4.2 describes the experimental setup as seen from right side, the frame is +20 tilted
toward east. the frame of reference makes an angle of Ɵ𝑠 (1820) with south.
The Image unit vector (𝐼̂) is described by azimuthal angle- (αI ) and elevation angle- (γI ).
Unlike the ideal case the mirror centre have some offset with heliostat centre. To incorporate
that one has to redefine Image vector as a function of Mirror offset (𝑚𝑜𝑓𝑓 ). For calculation of
that one has to compute R and H (relative height of screen centre with respect to mirror)
Distance between Receiver and Heliostat pivot (Rs) is 10000 mm and the value of mirror offset
is 75mm. So, R and H can be defined as:
Where cos (𝛼𝑀 − Ɵ𝑠 ) is the projection of Mirror offset in tilted X-Z plane, further cos
((γM )) is projection on x axis.
Where cos (𝛼𝑀 − Ɵs ) is the projection of Mirror offset in tilted X-Z plane, further cos
((γM )) is projection on z axis. Finally, elevation angle( γI )can be defined as -
Where K is the projection of mirror offset in tilted Y-Z plane. 𝛼𝐼 can be defined as -
19
4.1.6. Correction in Mirror vector
In closed loop system sensors provide feedback of mirror vector or image vector. In case of
four cameras the feedback is in form of Mirror vector. Correction vector is required for to get
̂ r) and ideal (𝑀
targeted image vector. The shift in the real (𝑀 ̂ ) Mirror vector is mathematical
quantification of the error. The real Mirror vector can be obtained as
𝑆̂ + 𝐼̂𝑟
̂𝑟 =
𝑀 (3.14)
2
𝐶̂ = 𝑀
̂ −𝑀
̂𝑟 (3.18)
𝑆̂ + 𝐼̂𝑟
𝐶̂ = 𝑀
̂ − (3.19)
2
a - Sun Vector
a
b - Ideal mirror vector
c - Correction vector
b
c d - Real mirror vector
d e e - Ideal target vector
f – Correction in image vector
f
g - Real target vector
g
In fig 4.3 Geometry of error correction is shown. Correction vector is calculated by above
mentioned equations and then feeded to the motor controls system at a fixed time interval, the
correction in image vector is almost twice of mirror due to geometry
20
The heliostat is first positioned such that reflected image point at the centre, the mirror angles
at that moment are set as initial angles (Mi). Then onwards after a regular interval of time (5
̂ ) is fed to Arduino. Arduino compute the correction angle that is
min) new mirror vector (𝑀
difference between mirror vector and initial vector. New Mirror vector is set as initial vector
and the difference (ΔM) is forwarded to motor controls (see the logic flow chart as described in
fig 4.4). Then Motor controls rotate the motor equivalent to the difference angle
Feed ΔM to Motor
MATLAB Arduino
21
quality camera phone and after processing gradient of intensity variation is obtained. Figure
shows the variation in intensity of a sunlit sky as the radius changes. As one move away from
the center of sun the intensity decrease exponentially. In figure, maximum intensity value that
can be captured by 8-bit pixel is 255 which corresponds to red color and 0 is shown as blue.
P1 P2 P3 P4
22
The circumsolar region can be seen directly or through a mirror, in which case the mirror
simply acts as an aperture. By changing position of the mirror, different regions of the sky can
be seen. An experiment was conducted to visualize how intensity of mirror in image changes
with respect to moving sunbeam reflection along a horizontal line. Fig 4.6 shows the captured
circumsolar region as the mirror is rotated.
As the position of mirror is changed from P1 to P4 the circumsolar region captured by camera
changes significantly. At P1 the Brightness is the lowest and it increases to highest at P4. Fig
4.7 shows the image captured by camera at various position of Mirror. Its visible how the
intensity increases as it moves closer to centre of sun
C1
C3
0.5
0
log(M1/M2)
-3 -2 -1 0 1 2 3
-0.5
-1
distance
23
4.4. Image processing
The idea of image processing is to compute average intensity of heliostat glass as seen by
different cameras. Image processing should also address the issue of detecting multiple
heliostats in the field. For this a unique methodology was developed to calculate the average
intensity of circumsolar region reflected by sun, the two-step process highlights the heliostat
surface and compute the average intensity.
First a rectangular mask is formed to identify gross position of the heliostat, the mask is defined
at the of installation, the position of mask is the function of position of heliostat mirror
1 2
Mask values for each camera has to be defined at the time of installation. Image is acquired by
camera and mask section is highlighted, one can imagine this as a window. Rest of the image
24
is out of bounds for further processing. Different mask values can be feeded to identify different
heliostat in the field. Because of this masking multiple heliostats can be identified and tracked
separately without any interference with one another. In fig 4.10 mask 1 highlight heliostat
while mask 2 highlight a different pixel location, a second heliostat can be positioned at masked
2 and both heliostat can be tracked separately.
Further Masked image is processed through threshold value, in which computed boundary
intensity limit eliminate all pixel below that value. After this process only heliostat surface is
highlighted
Boundary
limit
Figure 4.12: Pixel value distribution of masked image & boundary limit
25
4.5. Tracking Logic
Tracking error detection is performed by acquisition of four images of the heliostat field at the
fringe of the target, around the receiver aperture. Each image is converted into binary form,
and region of interest (RI) is identified. The average brightness of RI in the original image is
evaluated for each heliostat image and the brightness values (maximum and average) from
images on the opposite sides of the receiver are compared. A brightness imbalance between
the opposite images of a given heliostat indicates that the heliostat is not properly aimed, and
enables determination of the direction and magnitude of the required correction
Comparison of Calculation of
parameter of four average Intensity
images
Max Intensity = 194 Average Intensity = 154 Total pixel = 339
J is heliostat angle value required to move the image 920mm (half-length/height of the screen)
on the screen. When the feedback system initiates the direction is decided by the intensity
comparison and the value of J/16 is feeded. So, if M3/M1 >1, means the image is in right half
which means one have to feed M-J/16, for M3/M1 <1 the opposite is valid. The loop continues
unless the direction of intensity is not changed. Which means for M3/M1 >1, it will keep
26
feeding feed M-J/16 until M3/M1 >1 is observed. In case loop breaks means M3/M1 >1 a
feedback with opposite direction and half the value is given that is +J/32. The same logic
continues until the minimum error value is reached, in this experiment minimum error value is
J/128.
Mirror vector (𝑀) calculation using Open loop Feedback to motor control
methodology, 𝑀 drivers M
loop initiates
Image processing
Image Feedback from 4
cameras Computation of image parameters
𝐽 𝐽 𝐽 𝐽
loop 𝐶̂ = 𝑀 − −𝑀 =− 𝐶̂ = 𝑀 + −𝑀 =
16 16 16 16 loop
Break loop If M3/M1 <1 Break loop If M3/M1 >1
𝐽 𝐽 𝐽 𝐽
loop 𝐶̂ = 𝑀 + −𝑀 = 𝐶̂ = 𝑀 − −𝑀 =−
32 32 32 32 loop
Break loop If M3/M1 >1 Break loop If M3/M1 <1
𝐽 𝐽 𝐽 𝐽
loop 𝐶̂ = 𝑀 − −𝑀 =− 𝐶̂ = 𝑀 + −𝑀 =
64 64 64 64 loop
Break loop If M3/M1 <1 Break loop If M3/M1 >1
𝐽 𝐽 𝐽 𝐽
loop 𝐶̂ = 𝑀 + −𝑀 = 𝐶̂ = 𝑀 − −𝑀 =−
128 128 128 128 loop
Break loop If M3/M1 >1 Break loop If M3/M1 <1
27
4.6. Calibration
By comparing Intensities of cameras placed in opposite sides one can track the centre of the
receiver. But for tracking of any other point (other than centre) on the receiver, a calibration is
required. According to Kribus (2004), the log value of ratio of intensities of opposite cameras
follows a straight-line pattern (fig 4.8). Any point on the screen can be tracked by comparing
the ratio of Intensities of cameras placed in opposite sides with the calibration data.
The downside of this method is that calibration data is only valid for limited time, that’s why
multiple calibrations are required in a single day. So, the aim is to perform calibration without
any manual feedback and without any complication. For that a program was developed on
MATLAB to do standalone calibration. Calibration in x-axix is explained in following
paragraphs. The same logic plays while calibrating z-axis.
First, heliostat image starts at the centre of the screen (fig 4.15 (1)). The image is then projected
on the right side by moving heliosts motor in the same direction. The aim is to point the image
on the right-side camera (Camera 3, C3). For that, first it travels a safe distance toward right
such that it does not cross the screen i.e. heliostat angle value smaller (~0.5 degree) than J (fig
4.15 (2)). J is the heliostat angle value required to move the image from centre of the screen to
either of the sides. After that image is set to move in small steps of J/32(~14mm) in the right
side (fig 4.16 (1)). As image approaches the camera 3 (C3) the intensity value of image captured
by C3 increases. Heliostat is permitted to keep traveling in right direction until intensity pattern
changes that means the intensity starts to decreases. Image stops there and mark that as position
of C3. (fig 4.16 (2))
C4 C4
C1 C3 C1 C3
(1) C2 (2) C2
28
C4 C4
C1 C3 C1 C3
(1) C2 (2) C2
Figure 4.16: Heliostat calibration: Image searching for C3
Heliostat retrace its path to centre, travels the same amount of safe distance it did before now
in left direction (fig 4.17 (1)). It follows same logic as described above to find location of
camera 1 (C1). Once it reaches the intensity pattern start to decrease, it stops there and mark
that as position of C1 (fig 4.17 (2)).
C4 C4
C1 C3 C1 C3
(1) C2 (2) C2
Figure 4.17: Heliostat calibration: Image searching for C1
After obtaining position of both the cameras (C1 & C2) placed at opposite side on the X-axis.
The programme now divides the distance from C1-C3 into 10 parts and identify 11 positions
(9 internal + 2 camera position) (fig 4.18). Then it travels from C1 to C3 stopping at each of
29
the 9 positions. During this process image is captured by both cameras and average intensity
data is recorded.
C4
C1 C3
C2
Figure 4.18: Heliostat calibration: 11 identified positions for data collection
Calibration of Y-axis is also performed using same logic. The log value of the data is plotted
and the pattern is observed. The data is used for tracking different points of the screen. It is
done by comparing the intensity data during tracking to the calibration data.
4.7. Summary
This chapter explains the processes, systems, calculations etc, that are essential in the tracking.
Chapter starts with defining Geometry of Heliostat tracking in Spherical coordinates. Then all
three vectors -Sun, Mirror vector and Image vector, basics of heliostat tracking are defined
individually. While Sun vector is obtained from an empirical formula, other two are vectors
calculated based on geometry. Then Correction vector is calculated using geometry itself.
Basis of Open loop tracking is explained and its limitations is also mentioned. Then onwards
it was established that circumsolar regions intensity decrease as one go away from the core,
and the decrement is an exponential function.
Image processing algorithm is explained, it is a two-stage process in which first it detects the
required heliostat from an array of heliostat. Then it highlights only the mirror part of the
heliostat. From that average intensity of the heliostat mirror is calculated.
At the end, tracking logic is explained for closed loop tracking. In closed loop tracking, if one
wants to track centre of receiver then intensities of opposite cameras have to be compared.
While, if one wants to track any other point on receiver calibration have to be performed and
tracking is done by comparing calibration data and intensity ratios of opposite cameras.
30
Chapter 5. Results
This chapter present all the results and observation obtained during the project
Experiment was performed in multiple stages in order to obtain error and correction at different
stages. First stage was open loop tracking that is tracking heliostat on standalone sun equation
The experiment was carried on 22 May 2017 between 3:10 PM and 5:30 PM, after 5:30 PM
the projected image crossed over screen as error in Z-axis exceeded J. As there was no feedback
significant error was expected. The correction in X-axis and Z-axis is between 0.07-0.25 degree
and 1.12 -1.17 degrees respectively (Table 5.1) In fig.5.1 error in both Z-axis and Z-axis are
plotted
31
Correction angles Error (degrees) Cumulative Error
(degrees) (degrees)
Time X-axis Z-axis X-axis Z-axis X-axis Z-axis
4:43:52 PM 0.2 1.14 0.03 0.24 0.43 3.50
4:48:52 PM 0.2 1.13 0.04 0.08 0.46 3.64
4:53:52 PM 0.21 1.14 0.04 0.06 0.5 3.7
4:58:52 PM 0.22 1.13 0.04 0.21 0.54 3.92
5:03:52 PM 0.22 1.13 0.05 0.06 0.59 3.97
5:08:52 PM 0.23 1.13 0.03 0.11 0.62 4.08
5:13:52 PM 0.23 1.13 0.04 0.25 0.66 4.33
5:18:52 PM 0.24 1.13 0.04 0.2 0.7 4.54
5:23:52 PM 0.25 1.13 0.06 0.24 0.76 4.77
5:28:52 PM 0.25 1.12 0.05 0.07 0.81 4.84
Error
0.35
0.3
Error (degree)
0.25
0.2
0.15
0.1
0.05
0
0 20 40 60 80 100 120 140 160
Time (min)
X-axis Z-axis
Cumilative Error
6
5
Error (degree)
4
3
2
1
0
0 20 40 60 80 100 120 140 160
Time (min)
X-axis Z-axis
32
The error value in the tracking is directly related to the correction value. If the sun position
changes with higher degree the correction value would also be higher logically. That will lead
to higher potential of error value.
In the experiment, the error value starts at zero because at the start of the experiment the
heliostat is positioned to reflect at centre of the screen. From then in each 5-min cycle, the error
was there in both axes. The Y-axis error was much more compared to X-axis because the
correction in Y-axis is much more than X-axis. Both errors were in positive direction (i.e. east
in x-axis and north in Y-axis). As the time progress the errors stack up and ends up resulting in
a significant image offset of the centre.
To put the error angles in perspective, a 50 error is roughly equal to J (half length of the screen
i.e. 900mm). So, error of 0.030 in X-axis will lead to 5.4mm on screen, similarly error of 0.20
in Y-axis will lead to 36mm of image offset. After 29 cycles, the image crossed the screen in
Y-axis.
The image was at the centre after each iteration, there was a little bias in x coordinate of -0.2
degrees (-36mm) fig (5.3), due to imperfect positioning of cameras. On average, each cycle
took around 4-5 iteration (64.8sec-81.6sec) to achieve minimum error limit i.e. J/128 =
33
7mm.The image was successfully kept at centre with the pre-mentioned error (fig 5.3). This
was expected as there is hardly any complexity in comparing two intensities. The error after
5cycles (around 30 min) was -0.23 degrees.
The calibration is performed 9th June after 4:00 PM, Total calibration time 104.4 sec. Time for
image processing did not add up it happened in parallel to feedback. Time taken in each process
is tabulated in table 5.3
34
TABLE 5.3: Time taken by each process in calibration (X=number of use)
Process Time (sec)
Image capturing (X11) 1.6
Feedback(X10) 2.5
Image processing(X0) 3.5
Camera(C2) position detection 24.6
Camera(C1) position detection 32.8
Total 101.4
Calibration data is tabulated in table 5.4., M1 represent intensity of camera 1 and M3 represent
intensity of opposite side camera 3. As expected M1 goes from highest to lowest see fig 5.4
(A1-A4) and 5.5 (A1-A4) as one move towards camera 3, exactly opposite trend is observed
for M3 data (fig 5.4 (A5-A8) and 5.5 (A5-A8)). Calibration data include 11 positions Only 8
out of 11 images are shown due to space constrain, position 5,6 &7 are not shown (position 1-
4 are fig 5.4 (A1-A4) & position 8-11 are fig 5.5 (A1-A4))). Images with B header are BW
image of respective A header images, BW represent the intensity values.
The table in-between the figure (fig 5.4 & fig 5.5) comprises the intensity data of each column
(1-4). In the pics, one can relate the brightness of heliostat and intensity value.
TABLE 5.4: Intensity data for calibration experiment X-axis
Position M1 M3 M3/M1 log(M3/M1)
-2 247 138.7 0.56 -0.25
-1.6 242 144.7 0.6 -0.22
-1.2 222.2 151.6 0.68 -0.17
-0.8 206.4 160.4 0.78 -0.11
-0.4 190.3 169.9 0.89 -0.05
0 179.9 182.2 1.01 0.01
0.4 169.5 194.5 1.15 0.06
0.8 162.4 209.3 1.29 0.11
1.2 149.3 224 1.5 0.18
1.6 140.1 241.5 1.72 0.24
2 134.2 251 1.87 0.27
35
A1 A2 A3 A4
B1 B2 B3 B4
B5 B6 B7 B8
A5 A6 A7 A8
36
A1 A2 A3 A4
B1 B2 B3 B4
B5 B6 B7 B8
A5 A6 A7 A8
37
The average intensity values are plotted against horizontal coordinates (fig 5.6) for both
cameras. The values follow the expected pattern at low intensity but at extreme end of high
intensity, values deviate from trend. As one can see in fig 5.6, M1 flattens as it goes from -1.5
to -2.0. The reasoning for that is – as maximum pixel value has a cap of 255, so when heliostat
reaches higher intensity, average value tends to saturate. This issue can be resolved by using a
denser glass cover over cameras.
Log values of ratio of intensities (log (M3/M1 vs x) plotted with the distance (fig 5.7), apart
from extreme end log values follow the straight line.
Average intensity vs x
300
250
Average intensity
200
150
100
50
0
-3 -2 -1 0 1 2 3
M1
X M3
log(M3/M1 ) vs x
0.4
0.3
0.2
log(M3/M1)
0.1
0
-3 -2 -1 0 1 2 3
-0.1
-0.2
-0.3
x
Similar calibration was carried out for z axis, this experiment was carried after 25 min
(4:35PM), due to delay by cloud hindrance. As the Sun was setting the average intensities went
down a little. The average at centre went down from 180 to 168. In this the saturation effect
was low as maximum intensity was less. Although the pattern was more or less similar to the
x-axis calibration. Log data (fig 5.9) was used for tracking experiment.
38
TABLE 5.5: Intensity data for calibration experiment Z-axis
Position M1 M3 M3/M1 log(M3/M1)
-2 241.31 135.7 0.56 -0.25
-1.6 221.21 136.4 0.62 -0.21
-1.2 201.93 139.7 0.69 -0.16
-0.8 185.19 147.1 0.79 -0.1
-0.4 171.27 156.2 0.91 -0.04
0 163.2 167 1.02 0.01
0.4 160.07 179.6 1.12 0.05
0.8 150.59 194 1.29 0.11
1.2 142.18 210.3 1.48 0.17
1.6 137.67 228.7 1.7 0.23
2 135.11 249.5 1.82 0.26
Average intensity vs z
300
250
Average intensity
200
150
100
50
0
-3 -2 -1 0 1 2 3
z
M1 M3
log(M3/M1) vs z
0.3
0.2
0.1
log(M3/M1)
0
-3 -2 -1 0 1 2 3
-0.1
-0.2
-0.3
y
39
A second calibration was carried out one hour later to the first calibration on 9th June 5:00 PM.
The calibration results are tabulated in Table 5.6, and average intensity are plotted in fig. 5.10.
Data when compared to first calibration, many differences were found. First the flattening at
the edges is diminished because of the lower average sunlight. Average intensity at internal
points went down significantly, the average intensity at mid-point went down from 178 to 162.
Secondly, the log values (fig 5.11) also decrease, the effect was less in extreme values because
of the flattening while it was quite high in internal points. This is because the gradient of
intensity in circumsolar plot is not that high compared to earlier calibration.
TABLE 5.6: Intensity data for calibration experiment X-axis (2 nd calibration)
Average intensity vs x
300
250
Average intensity
200
150
100
50
0
-3 -2 -1 0 1 2 3
z
M1 M3
40
log(M3/M1) vs z
0.3
0.2
0.1
log(M3/M1)
0
-3 -2 -1 0 1 2 3
-0.1
-0.2
-0.3
y
Tracking of heliostat
As at the extreme end calibration data was not accurate tracking was not carried at any
peripheral point. First heliostat was positioned such that it projects image at the centre of screen
for initial feedback. Then tracking was done by comparing log value of the ratio of intensity to
the calibration data. Then, the heliostat was set to point image at (-600mm, -450mm). the error
recorded is tabulated in table 5.7. The data shows as the time lapses the error in tracking
increases. This is because as the time lapses the log values goes down so image tend to go away
from the centre of screen. This happens on opposite side also, i.e. the error increases in positive
direction if a point in the right half is tracked. Error in X-axis were more because the X-axis
calibration was carried out much earlier compared to Z-axis.is higher in X-axis.
TABLE 5.7: Error Data for Heliostat tracking of Point (-600mm, -450mm)
Experiment were tried after the 9th June 2017 but because of the clouds no significant data was
collected.
Although it was established that during clear sky, while tracking centre of the receiver, high
level of tracking accuracy can be achieved. But in the case of tracking other points on the
receiver surface, a calibration had to be carried out. The obtained calibration data tend to be
significantly different within 30 minutes of obtaining it. This change leads to a significant error
in tracking.
41
5.3. Summary
In this chapter, all the results and observation were presented. First result of Open loop tracking
was shown, in which tracking error of up to 0.25degree in X-axis and 1.17 in Z-axis. The
cumulative error after two and half hour was recorded 0.84degree in X-axis and 4.81 in Z-axis.
Experiment Results of Closed loop tracking were discussed. While the tracking of centre of
screen the error observed in tracking was 0.02 degree in X-axis and close to zero degree in Y-
axis. It was established that while tracking centre of the receiver during clear sky very high
level of accuracy can be achieved.
Calibration was performed for tracking of any point on the screen. Tracking was performed on
a point (-650mm,450mm) on the screen, it was observed that error increases as time goes. This
was because the calibration data lose its hold with time and new calibration is required. the
calibration data start to be false within 30 min of performing it
42
Chapter 6. Conclusion and future work
6.1. Conclusion
Precise tracking of heliostat is a must feature for maximum efficiency of solar thermal plant.
Open loop tracking is not suitable for mirror as a tiny amount of angular error in heliostat can
result in big image offset due to large distance between receiver and Heliostat. In Closed loop
tracking cyclic feedback is provided to heliostat controls system about the error, and the system
then s directed to the correct that error. The most precise Closed loop system yet developed
consists of four cameras located at receiver looking onto heliostats. Average intensity of those
image acquired from cameras is compared to compute error in heliostat tracking.
In this Project, an experiment was designed to carry out the four-camera closed loop tracking
system. Following objectives were achieved during project
1. A logic system was developed on MATLAB that can compare intensities of images
captured by four different cameras placed on each side of the screen. The system was
optimized such that it only takes in account the mirror surface neglection all the
surroundings whatever it is. Position of image (reflected by heliostat on the mirror) can
be identified, weather it is on the centre of screen or not.
2. A tracking logic was developed that can point at center of the screen and track it with
time. This was achieved by equating intensity values of images acquire by cameras
places at opposite sides. Tracking involved iteration that minimizes error in each cycle,
usually 4-5 iteration were needed in this experiment to track the system the time taken
in one tracking cycle was around 65-80 sec, this time can be reduced drastically by
using better computing processor.
3. A calibration system was developed to compute the ratio of image intensities acquired
from opposite cameras. The log value of that ratio follows a straight-line pattern. The
data then used for tracking different points of the screen by equating the current
intensity ratios to the calibration data. The error within 30 minutes of the tracking to
the calibration time was detected below 0.03 degrees. Although, error was continuously
increasing with the time.
4. During tracking of center of the screen tracking errors of less than 0.1mrad (0.02
degrees) were observed. Although the limit of 0.1mrad couldn’t be satisfied while
43
tracking different points of receiver. The limit was only valid up to a limited time after
calibration
2. The system becomes handicapped once the cloud come, there was no backup logic
designed to overcome this problem. Work should be done to address this problem
3. Although the logic allows to track more than one heliostat in the field, but this was not
tested during my work, further experiment would be needed to prove this
44
References
Baheti, R. S. (1980). Design of Self-calibrating Controllers for Heliostats in a Solar Power Plant. IEEE
Transactions on Automatic Control (25.6), 1091-1097.
Camacho, E. F. (2012). Advances in Industrial Control. In Control of Solar Energy Systems (pp. 50-
69).
Clifford MJ, E. D. (2004). Design of a novel passive solar tracker. Solar Energy(77.3), 269-280.
Convery, M. (2010). System and Method for Aligning Heliostats of a Solar Power Tower. US Patent
Application , 0252024 A1.
De Rosa, A. V. (2005). In Fundamentals of renewable energy processes. Academic Press, Inc., Stanford
University.
Grena, R. (2007). An Algorithm for the Computation of the Solar Position. Solar Energy(82.5), 462-
470.
Jones, S. S. (1999). Analysis of Strategies to Improve Heliostat Tracking at Solar Two. Sandia National
Lab., Albuquerque, NM, US.
Konstantin, P. K. (2010). Assessment of Technology Options for Development of Concentrating Solar
Power in South Africa for the World Bank. Johannesburg: Fichtner GmbH & Co.
Kribus, A. Y. (2003). Continuous Tracking of Heliostats. International Solar Energy Conference
Proceedings. Journal of solar energy engineering (126.3), 842-849.
L. A. Díaz-Félix, M. E.-T.-D.-B. (2013). Evaluation of heliostat field global tracking error distributions
by Monte Carlo simulations. Energy Procedia (49), 1308-1317.
Lee, C. Y. (2009). Sun Tracking Systems: A Review. Sensors (9.5), 3875-3890.
Lipps F.W., V.-H. L. (1978). A cell wise method for solar central receivers systems. Solar energy(20),
505-516.
Mousazadeh, H. K. (2009). A Review of Principle and Sun-tracking Methods for Maximizing Solar
Systems Output. Renewable and Sustainable Energy Reviews(13.8), 1800-1818.
Pfahl, A. B. (2009). Method for controlling the alignment of a heliostat with respect to a receiver,
heliostat device and solar power plan. US Patent 0249787 A1.
Quero, J. M. (2007). Tracking Control System Using an Incident Radiation Angle Microsensor. IEEE
Transactions on Industrial Electronics. (54.2), 1207-1216.
Ravindra. (2015). Design and Development of Self Learning Heliostat Control. Mtech Project Report:
Indian Instituite of Technology, Bombay.
Reda, I. a. (2008). Solar Position Algorithm for Solar Radiation Applications. Solar energy (76.5), 560-
573.
Research and Innovation- csp power plant. (2017, july 3). Retrieved from European Commission:
https://ec.europa.eu/research/energy/eu/images/research/csp/power_plant.jpg
Roos, T. Z. (2007). A 25m2 Targetaligned Heliostat with Closed-Loop Control. SES Solar World
Congress(Vol. I–Vol. V), 1773-1781.
Rubio, F. O.-M. (2007). Application of new control strategy for sun tracking. Energy Conversion and
Management (48.7), 2174-2184.
45
Sieminski, A. (2011). International energy outlook. Retrieved from EIA:
http://www.eia.gov/forecasts/ieo/
Sushant. (2015). Design and Development of Feedback Control for Heliostat. Mtech Project Report:
Indian Instituite of Technology, Bombay.
Yogev, A. K. (1999). Control of a Heliostat Field in a Solar Energy Plant. U.S. Patent No. 5,862,799,
Washington, DC: U.S. Patent and Trademark Office.
46
Appendix 1-Test Setup and Technical Datasheet
A1.1. Receiver
Table A1.1: Receiver details
Breadth 1.83 m
Height 1.83 m
Thickness 6 mm
Azimuth rotation Available
Elevation rotation Available
Material Plywood
Colour Black
A1.2. Heliostat
Table A1.2: Heliostat details
47
A1.3. Driver
Table A1.3: Micro stepping driver details
Name Leadshine M542
Output current 1.0-4.2 A (peak)
Supply voltage 20-50 V DC
gic signal current 7-16 mA
Isolation resistance 500 MΩ
Weight 280 grams
Pulse frequency 300 KHz
Micro step 2-125
Enable Available
48
Appendix 2 - MATLAB Programming
a) Initialization
b) process
c) Detection
b. Print image to plot the location on a scaled image to target for easy visual
verification of detection.
d) Main controls
e) Transmitting corrections
a. feedback forms the backbone and uses all functions involved in detection and
correction and transmits the results in an iterative fashion. It also serves to detect
inconsistencies in the corrections and stops transmission.
49
Main code
function [M,d,g] = tracking4gui(d,g,p,q)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
flag=0;x=0;
%p,q values
%%%%%%%%%%%%%
[V1,V3] = getimage1();
%%%%%%%%%%%%%%%%%%%%%%%%%%%%window%%%%%%%%%%%%%
[ c1,r1,c2,r2,c3,r3,c4,r4] = windowpos();
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[avg2]
=avgint(V2,c2,r2);[avg4] =avgint(V4,c4,r4);
[avg1] =avgint(V1,c1,r1);
[avg3] =avgint(V3,c3,r3);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ratio = avg1/avg3;
%%%%%%%%%%%%%%%%%flag 0%%%%%%%%%%%%%%%%%%%%%%%%%%%
if ratio > p && flag==0 %projection is in left half
y=16; %dividing ratio
[M,ratio,d ] = core(x,y,F,d );
if ratio < 1
flag=1;
end
end
%%%%%%%%%%%%%%%%%flag1%%%%%%%%%%%%%%%%%%%%%%%%%
if ratio > p && flag==1 %projection is in left half
y=32; %dividing ratio
[M,ratio,d ] = core(x,y,F,d );
if ratio < 1
flag=2;
end
end
50
if ratio < p && flag==1 %projection is in right half
y=32; %dividing ratio
F=-[asind(92/L1) 0];
[M,ratio,d ] = core(x,y,F,d );
if ratio > 1
flag=2;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
flag=0;x=0;
%%%%%%%%%%%%%
[V2,V4] = getimage2();
%%%%%%%%%%%%%%%%%%%%%%%%%%%%window%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[avg2]
=avgint(V2,c2,r2);[avg4] =avgint(V4,c4,r4);
[avg2] =avgint(V2,c2,r2);
[avg4] =avgint(V4,c4,r4);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ratio = avg4/avg2;
%%%%%%%%%%%%%%%%%flag 0%%%%%%%%%%%%%%%%%%%%%%%%%%%
if ratio > q && flag==0 %projection is in left half
y=16; %dividing ratio
[M,ratio,g ] = core2(x,y,F,g );
if ratio < 1
flag=1;
end
end
%%%%%%%%%%%%%%%%%flag1%%%%%%%%%%%%%%%%%%%%%%%%%
51
if ratio > q && flag==1 %projection is in left half
y=32; %dividing ratio
[M,ratio,g ] = core2(x,y,F,g );
if ratio < 1
flag=2;
end
end
end
Autotrack
% S =[243.2893 14.9245];
52
T =[183.8 82.1];
c = (7.5/1010);
for i= 1:10000
M = (0.5*(S+T));
L1 =10000-(75*cosd(M(1)-183.8)*cosd(90-M(2))); %real leagnth between
centre of mirror and centre of screen
H1 =1085+75*cosd(M(1)-183.8)*sind(90-M(2)); %real height of center of
mirror
H2=2400-H1; %real relative height of
center of mirror
T(2)= 90-asind(H2/L1);
K1= 75*cosd(90-M(2))*sind(M(1)-183.8);
T(1)=183.8-asind(K1/L1);
end
M=round(M*100)/100;
end
Suncalc
T = now ;
T1=T-0.229167-x;
UTC = datestr(T1,'yyyy/mm/dd HH:MM:SS');
t = datestr(T1+0.22917,'yyyy/mm/dd HH:MM:SS');
Lat=19.135;
Lon=72.919;
Alt=0;
%compute JD from UTC or datevec
if ischar(UTC)
jd = juliandate(UTC,'yyyy/mm/dd HH:MM:SS');
else
[y,mo,d,h,mi,s] = datevec(UTC);
jd = juliandate(datestr([y,mo,d,h,mi,s],'yyyy/mm/dd
HH:MM:SS'),'yyyy/mm/dd HH:MM:SS');
end
d = jd-2451543.5;
%auxiliary angle
53
E = M+(180/pi).*e.*sin(M.*(pi/180)).*(1+e.*cos(M.*(pi/180)));
54
S=round(S*100)/100;
end
function jd = juliandate(varargin)
% This sub function is provided in case juliandate does not come with your
% distribution of Matlab
[year month day hour min sec] = datevec(datenum(varargin{:}));
idx = month <= 2;
year(idx) = year(idx)-1;
month(idx) = month(idx)+12;
jd = floor( 365.25*(year + 4716.0)) + floor( 30.6001*( month + 1.0)) + 2.0
- ...
floor( year/100.0 ) + floor( floor( year/100.0 )/4.0 ) + day - 1524.5 +
...
(hour + min/60 + sec/3600)/24;
End
Autotrack1
function [M,T,S,L1,H2] = autotrack1(x)
S= suncalc1(x);
% S =[243.2893 14.9245];
E=[0 0]; %so that (0) can work
T =[182 7.9];
% T=T-E;
c = (7.5/1010);
for i= 1:1
M = (0.5*(S+T)); % ideal case
L1 =1000-(7.5*cosd(M(1)-182)*cosd(M(2))); % real leangth between screen
and mirro
H1 =108.5+7.5*cosd(M(1)-182)*sind(M(2)); % real leangth of mirror centre
H2=240-H1; % real relative height of
screen centre
T(2)= 90-asind(H2/L1)+E(2);
K1= 7.5*cosd(M(2))*sind(M(1)-182);
T(1)=T(1)-asind(K1/L1);
end
M=round(M*100)/100;
End
Loglength
%this function is used for calibration of x axis of the
heliost%%%%%%%%%%%%%%
[ c1,r1,c2,r2,c3,r3,c4,r4] = windowpos();
[M,T,S,L1,H2] =autotrack(0);
F=[asind(92/L1) 0]; %half-length angle
55
M=M+F+d;
feedback1(M); pause(2);
[V1,V3] = getimage1();
[avg3] =avgint(V3,c3,r3);
P=avg3-10;
%%%%%%%%%%%%%%%right extreme%%%%%%%%%%%%%%
i=0;
while i==0
feedback1(M); pause(2);
[V1,V3] = getimage1();
[avg3] =avgint(V3,c3,r3);
if avg3 < P
L2=M;
break
end
M=M+ F/32;
P=avg3;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
M=L2-(2*F);
feedback1(M); pause(2);
[V1,V3] = getimage1();
[avg1] =avgint(V1,c1,r1);
P=avg3-10;
while i==0
feedback1(M); pause(2);
[V1,V3] = getimage1();
[avg1] =avgint(V1,c1,r1);
if avg3 < P
L1=M;
break
end
M=M+ F/32;
P=avg3;
end
gap=(L2-L1)/10;
logleangth = zeros(1,11);
for i=1:11
feedback1(M); pause(2);
[V1,V3] = getimage1();
56
[avg1] =avgint(V1,c1,r1);
[avg3] =avgint(V3,c3,r3);
logleangth(i)= avg1/avg3;
M=M+gap;
end
X=1:1:11;
plot(X,Log10(logleangth))
M=M-F;
feedback1(M);
logheight
[ c1,r1,c2,r2,c3,r3,c4,r4] = windowpos();
[M,T,S,L1,H2] =autotrack(0);
M=M+F+d;
feedback1(M); pause(2);
[V2,V4] = getimage2();
[avg4] =avgint(V4,c4,r2);
P=avg4-10;
%%%%%%%%%%%%%%%right extreme%%%%%%%%%%%%%%
i=0;
while i==0
feedback1(M); pause(2);
[V2,V4] = getimage2();
[avg4] =avgint(V4,c4,r4);
if avg4 < P
L2=M;
break
end
M=M+ F/32;
P=avg4;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57
M=L2-(2*F);
feedback1(M); pause(2);
[V2,V4] = getimage2();
[avg2] =avgint(V2,c2,r2);
P=avg4-10;
while i==0
feedback1(M); pause(2);
[V2,V4] = getimage2();
[avg2] =avgint(V2,c2,r2);
if avg2 < P
L1=M;
break
end
M=M+ F/32;
P=avg;
end
gap=(L2-L1)/10;
logheight = zeros(1,11);
for i=1:11
feedback1(M); pause(2);
[V2,V4] = getimage2();
[avg2] =avgint(V2,c2,r2);
[avg4] =avgint(V4,c4,r4);
logheight(i)= avg2/avg4;
M=M+gap;
end
X=1:1:11;
plot(X,Log10(logheight));
M=M-F;
feedback1(M);
avgint
% function [avg ] =avgint( I,c,r)
% I=imread('pic10.png');
c = [333 363 363 333]; %window (mask) position of screen
r = [332 332 302 302 ];
58
% I4=bwareaopen(I4,(100)); % removing any small objects if needed
level = graythresh(I3); % getting threshold value
BW2 = im2bw(I3,level); % binary image based on threshold value for
refrence
count =0;
d=size(BW);
I4=zeros(d);
for i=1:d(1)
for j=1:d(2)
if BW2(i,j) >0
I4(i,j)=I3(i,j);
count=count+1;
end
end
end
ratio=(d(1)*d(2)/count);
avg=(mean(mean(I4))*ratio);
%end
printimage
function printimage(P1,P2)
% P1=49;
% P2=50.5;
screen=zeros(400,400); %screen size
for i = 1:9
k=40*i;
screen(:,k)=100;
end
for i = 1:9
k=40*i;
screen(k,:)=100;
end
59
for i=1:21
for j=1:21
k=round((P1*3.9216)-10+i);
l=round((P2*3.9216)-10+j);
screen(400-l,k)=100;
end
end
imtool(screen)
end
feedback
function [] = feedback1(a)
delete(instrfindall);
clear arduino
clear arduino1
fopen(arduino);
pause(1)
% a=[206.99 65.36];
input1=strcat(num2str(a(1)),',',num2str(a(2)),'-');
% input1=str2double(input1);
flushoutput(arduino);
fprintf(arduino,'%c',input1);
% fprintf(arduino,'%f\n',input1);
pause(2)
fclose(arduino);
delete(arduino);
clear arduino;
%
%
% S=str2num(fscanf(arduino1)); %#ok<ST2NM>
% pause(1)
%
%
% fclose(arduino1);
% delete(arduino1);
% clear arduino1;
End
60
Acknowledgment
I would like to express my utmost gratitude to Professor Shireesh Kedare and Professor Harish
Pillai for their invaluable guidance, motivation and mentorship. I would like to thank Mr
Keshav Kale, Mr Amar Singh Kharte and Mr. Chetan Karanjkar for utmost help in experiment
setup. Lastly, hearty thanks to Sushant for his relentless support and suggestion at the time of need
toward successful completion of this work. I would like to thanks to Ravindra Kumar (2013
Mtech), and Sushant Mandhaniya (2013 Mtech) for sharing their project experience.
Lastly, hearty thanks to Lokesh Dhundara (2012 DD), for his relentless support and suggestion at
the time of need toward successful completion of this work.
61