RE

Design Goals Early Attempts and Ideas Feedback Control System Sensor Requirements Pitch-Roll Articulation Review Derivation of Basis Vectors and Pitch/Roll Angles Angle Estimation Accuracy Mirror Offset from Roll Axis Determining the Mirror Normal when Using an Angle Offset Mount Conclusion

Design Goals The sensing and control strategy for our heliostats, described in the heliostat control and targeting overview, split the design of our control system into two parts: 1. Rough heliostat orientation using an accelerometer, and 2. Precise on-target control using and photometry.

After testing many different designs, we built a rough orientation control system using a 3-axis accelerometer, able to sense and direct mirror orientation with close to one degree of precision (20 milliradians) for the entire motion range of the mirror. This level of precision is required for orientation tasks such as stowing the mirror in high winds and bringing the light spot close enough to the target for capture by the precise on-target tracking system.

Cost reduction was the central goal directing the design decisions for our heliostat sensors and control system. It was critical to keep individual heliostat sensing and control costs low, since our heliostat field design called for the construction of hundreds to possibly thousands of heliostats. This document describes our approach to creating our rough orientation sensing system, and our approach to keeping costs down while reducing computational complexity.

Early Attempts and Ideas Conventional heliostat designs use dead reckoning to align the reflectors with the the heliostat target or tower. This approach counts stepper motor rotations from a known “home” position, and it requires a heliostat that is installed precisely set on a well-prepared foundation. Precise installation can add substantially to the cost of each heliostat installed in a heliostat field, so we wanted to measure the heliostat reflector’s orientation directly and avoid these installation costs.

Despite our knowledge that an unprepared installation site would cause inaccuracy in a system based entirely on dead reckoning, the first rough orientation system we built used dead- reckoning. However, we discovered an unexpected source of inaccuracy from the cable- actuator motors we were using. In our frame design, heliostat mirrors were pulled into position using tension from cables wound on motorized spools. As the motor rotated, cables in the spool would criss-cross over each other in different ways, making the amount of cable played out or reeled in with each rotation different. After a few trials with dead-reckoning, we decided the imprecision was too high.

We then tried designing a heliostat orientation system using cameras. Our first design used a field observation to estimate heliostat orientations. However, in a densely packed heliostat field, it’s difficult for a camera to see each individual heliostat in the field. Oftentimes, a heliostat closer to the camera would block the view of a heliostat further away. The next method we tried was to attach two sets of crosshairs mounted to the back of each heliostat. A camera looking at the back of the heliostat determined the heliostat’s orientation based on the alignment of the crosshairs. This method posed challenges with camera sensor resolution, since the image quality from the camera wasn’t good enough to resolve the crosshairs. The third approach used a cheap, cellphone-quality camera mounted on the back of each heliostat to estimate the heliostat orientation based on what it saw on the ground. This presented problems due to differences in ground terrain, grading and installation.

We ultimately chose a design using a semiconductor 3-axis accelerometer, similar to mass- produced devices commonly found in smartphones. A 3-axis accelerometer can provide data on mirror module orientation regardless of motor settings, play in the articulation joints, or differences in installation. It provides mirror module orientation independent of imprecise heliostat orientation in pitch and roll. After deciding on an accelerometer as our heliostat sensor, we needed to build a feedback control system around it.

Feedback Control System Sensor Requirements A feedback control system uses accelerometer data to help a heliostat accomplish an assigned “mission”. A mission is a set of instructions that allow the heliostat to perform a goal. A mission can range from stowing against high winds to orienting a heliostat mirror towards a target.

In order for a feedback control system to properly perform a mission, it needs two pieces of data: 1. An estimate of the mirror normal, or the angle at which light is reflected off the mirror, is needed for the orientation control system to point light towards a desired direction. 2. The orientation of the reflector mount plate, expressed as a coordinate transformation matrix. This is needed by the kinematics and control calculations, discussed in the control systems design document.

Pitch-Roll Articulation Review Many conventional heliostats use an azimuth mount in which the azimuth rotational axis moves with the elevation axis. With such azimuth/elevation articulation, the benefit of an accelerometer sensor attached to the mirror would be limited. Due to the rotational symmetry about the azimuth, an accelerometer mounted to such a heliostat reflector could only detect elevation and not azimuth.

An azimuth mounted heliostat at the THÉMIS experimental station in France (Image courtesy of Wikipedia)

Instead of using an azimuth mount, we chose a heliostat design that has a pitch axis that's horizontal (transverse to the frame), which rotates on a roll axis. Unlike the azimuth/elevation, this pitch/roll articulation does not have azimuthal symmetry. Using this, we can get complete mirror orientation information via a single reading from the 3-axis accelerometer.

We mounted an accelerometer to the heliostat’s mirror mounting bracket to determine its orientation. The below shows a 3-axis accelerometer mounted to the back of the mirror support, and notably, no angle sensors on the pitch/roll joint. Close-up of a prototype heliostat with a 3-axis accelerometer mounted (the small gray box). Note that this prototype does not have a mirror angle offset.

We noticed that directing morning or evening sunlight on the target placed the mirrors in a near vertical stance, during which the roll axis would be near vertical. When the roll axis becomes vertical, the mathematical transformation from the accelerometer reading to the roll angle became unusable as it approaches infinity. In order to avoid this, in later prototypes we mounted the mirror at an extra offset angle to the bracket. This way for all practical orientations of the heliostat the roll axis would never become vertical, and this situation would be avoided. These issues are described in more detail in the next sections.

The CAD drawing below shows a pitch-roll heliostat in orthogonal view. In this particular example, the pitch axis is the horizontal rod along the front, while the roll axis is located right behind the center of the mirror.

Catapult-style version of a pitch/roll heliostat

The cable actuators and tension cables are located on each side of the mirror. Roughly speaking, operating them in the same direction pitches the mirror forward or back, while differential action will roll or turn the mirror module. The early prototype illustrated above had its pitch axis near the ground, where the whole mirror assembly would levitate up with pitch rotation. This design version we humorously referred to as a “catapult” heliostat.

The choice of articulation axes impacts the mathematics that describe the behavior of the heliostat. While there are many examples in the literature for mathematical derivations of azimuth/elevation heliostat kinematics, this is not the case for pitch/roll heliostats with this style of articulation.

Derivation of Reflector Basis Vectors and Pitch/Roll Angles Given the coordinates of the vector G in the reflector system [x,y,z] we wanted to determine the pitch angle and the roll angle of the articulation system, and the unit vectors at the mirror attachment point. From this, kinematics computations done by the controller can determine the mirror center point and other heliostat features.

Pitch and roll angle diagrams

The diagram above shows the pitch angle (labeled in the side-view diagram) and the roll angle (the angle the z-vector makes with the pitch plane defined by the red lines). The reflector axes x, y, and z are aligned with the accelerometer axes. The accelerometer is depicted as a green box on the back of the mirror. G is the direction of gravity.

For the purpose of , we assumed zero offset angle between the mirror and the mirror mount (e.g. the reflector coordinate system), which is located at the end of the U-joint articulator. With this choice the mirror coordinate system and the reflector coordinate system coincide. We will account for a non-zero offset angle later.

The pitch and roll angles can be determined as follows: ● The dot product of unit vectors in the G and y directions is the cosine of ninety degrees plus the pitch angle. ● The vectors G and y lie in the pitch plane (the vertical plane which bisects the heliostat lengthwise), and so their normalized cross product (if they are not colinear) is a unit vector orthogonal to the pitch plane. The dot product of this unit vector with a unit vector in the z direction is the cosine of ninety degrees plus the roll angle.

For this analysis, we assumed a heliostat perfectly oriented on the ground. Specifically, when the reflector (e.g. moving part of the U-joint) is horizontal, the reflector’s coordinate system is aligned with the base and field coordinate systems.

For sensing and control purposes, we did not need the pitch and roll angles themselves. We needed the reflector basis vectors { }. To derive them, we started with the definition of a reflector coordinate transformation matrix, which maps between heliostat frame (in our case field) coordinates and reflector coordinates, and then proceeded to derive pitch and roll angles.

The reflector coordinate transformation matrix transforms a vector in mirror-mount coordinates to base coordinates, which in our case are equal to field coordinates, so by definition:

(1) where the matrix is constructed from the heliostat body axis vectors:

(2) and for pitch-roll this is:

(3a) (3b) (3c)

The accelerometer provides the gravity vector expressed in heliostat reflector coordinates . First we normalize it into vector g:

(4) g decomposes as follows:

(5)

Since gravity is pointing down, we can equate this g vector to the -z vector in the field coordinate space:

(6)

The pitch and roll angles can be computed from , subject to some limitations. The top row of equation (6) simplifies to:

(7)

and from trigonometry, the sine and cosine for are:

(8) (9)

If we project equation (6) onto , and remember that {xh,yh,zh} is an orthonormal basis, then we see that the y component of the normalized gravity vector is the sine of the pitch angle:

(10) so sine and cosine for are:

(11)

(12)

The sines and cosines of the roll and pitch angles can be computed with equations (8,9,11,12) using minimal math. Thus, the unit vectors and coordinate transform matrix H in equation (2) can be computed with very few operations. These operations could easily be done on a microcontroller with little processing power.

The control system needs the matrix H. Strictly speaking, the control system does not require the angle estimates, but these may be of interest for logging or display to an operator

(13) (14)

If and only if the mirror is mounted flat to the mirror mount, then the mirror normal vector would align with the reflector z unit vector:

(15)

Angle Estimation Accuracy From an accelerometer reading, we can determine the orientation of the heliostat, provided that the mirror is not vertical - where G aligns with y. When the mirror module y-axis approaches vertical, the accelerometer readings will poorly resolve roll - i.e. equation (7) becomes problematic. We observed this during initial experimentation as well during early morning and late afternoon.

If the accelerometer has an uncertainty of ∆ degrees in the measurement of the direction of G in its (x, y, z) frame, then the uncertainty in the measurement of the pitch angle is also ∆ degrees. However, because of the cross product used to determine the roll angle, the uncertainty in the measurement of the roll angle is ∆ degrees times the secant of the pitch angle.

As the mirror approaches the vertical and the pitch angle approaches ninety degrees (i.e. vertical), this quantity diverges, and when the roll axis is vertical, becomes unmeasurable. If we wish to operate the heliostat with the mirror in a vertical stance, then we must do so in a manner that does not make the roll axis vertical.

Mirror Offset from Roll Axis The solution to avoiding a vertical roll axis situation was to offset the mirror (pitch down) at the mirror attachment plate. Mounting the mirror at an angle to the roll axis ensures that when the mirror is vertical, the pitch axis is not.

The diagram above depicts a mirror module mounted at a fixed angle to the mirror mount point, shown here as the upper yoke of a u-joint. A 3-axis accelerometer mounted to the back of the mirror module (or any part of the heliostat rigidly attached to the mirror module) can measure the direction of gravity relative to that surface.

The accelerometer may be mounted either to the yoke (position 1) or to the mirror module (position 2), since these are rigidly fixed to each other and related by a simple coordinate rotation.

We chose to mount at the attachment plate (position 1), and bolt the mirror with the angle offset to that plate, in order to minimize error induced by the movement of the heliostat. Positions close to the intersection (position 1) of the pitch and roll axes are preferred to detect any frame structural bending due to wind, but not react to wind-induced heliostat reflector bending, which would be the case in position 2.

Determining the Mirror Normal when Using an Angle Offset Mount With the insertion of an angle offset mount, the mirror normal is no longer the reflector axis.

The mirror normal is obtained by rotating the zh vector by the appropriate offset angle.

Given that the the vectors for the axes { } have already been computed, the rotation operation to compute the mirror normal is very straightforward:

(16)

The mirror normal vector and the mirror articulation transformation matrix are used by the precision light spot position feedback control system.

Conclusion Our design approach used a semiconductor 3-axis accelerometer, combined with unconventional heliostat articulation, to estimate mirror orientation. Using this low cost sensor, low precision heliostat installation (position within several centimeters, orientation within a few degrees) is completely tolerable.

Fairly straightforward math operations can be used to calculate the mirror normal vector and reflector transformation matrix. These operations are compatible with execution on a low-cost microcontroller - one that might be used for field data communication on a heliostat or group of heliostats. By substituting low-cost sensors and microcontrollers for precise installation, we were able to achieve our design goal - cost reduction.