## 3 Heliostat Reflection  
To handle beam reflection, the heliostat should be rotated to a horizontal orientation, where all aspects related to ray generation, interception, and reflection are easily handled, and then rotated back to the original orientation. The procedure is as follows:  
1. Find the rotation sequence, \(R_{z}(\phi)R_{x}(\theta)\), that transforms a horizontal heliostat, which is given by \(n=(0,\,0,\,1)\), to the real heliostat orientation, which is given by \(n=(n_{x},\,n_{y},\,n_{z})\). Use the inverse transformation, \(R_{x}(-\theta)R_{z}(-\phi)\), to transform the sun vector \(\left(s_{x},\,s_{y},\,s_{z}\right)\) to the horizontal referential \(\left(i_{x},\,i_{y},\,i_{z}\right)\) as follows: \[\begin{bmatrix}n_{x}\\ n_{y}\\ n_{z}\end{bmatrix}=\begin{bmatrix}\cos\phi&-\sin\phi&0\\ \sin\phi&\cos\phi&0\\ 0&0&1\end{bmatrix}\begin{bmatrix}1&0&0\\ 0&\cos\theta&-\sin\theta\\ 0&\sin\theta&\cos\theta\end{bmatrix}\begin{bmatrix}0\\ 0\\ 1\end{bmatrix}\] (12) \[\begin{bmatrix}i_{z}\\ i_{y}\\ i_{z}\end{bmatrix}=\begin{bmatrix}1&0&0\\ 0&\cos\theta&\sin\theta\\ 0&-\sin\theta&\cos\theta\end{bmatrix}\begin{bmatrix}\cos\phi&\sin\phi&0\\ -\sin\phi&\cos\phi&0\\ 0&0&1\end{bmatrix}\begin{bmatrix}s_{x}\\ s_{y}\\ s_{z}\end{bmatrix}\] (13) 2. Generate the random ray position \(\left(p_{x},\,p_{y},\,p_{z}\right)\) in the flat surface immediately above the horizontal heliostat and transform the incident sun vector \(\left(i_{x},\,i_{y},\,i_{z}\right)\) to the reflected sun vector \(\left(r_{x},\,r_{y},\,r_{z}\right)\). The actual reflection depends on the type of heliostat curvature (planar, spherical, parabolic), as discussed in [17]. The calculation involves the ray's interception with the curved surface and the analytical calculation of the normal vector at that point to obtain the reflected vector [27,28]. The position (and slightly random orientation) of the incident Sun vector is calculated according to the astronomy algorithm reported previously [25].
3. Use the direct transformation, \(R_{z}(\phi)R_{x}(\theta)\), to obtain, in the real heliostat orientation, the reflected sun vector \(\left(s_{x},\,s_{y},\,s_{z}\right)\) and the ray position \(\left(q_{x},\,q_{y},\,q_{z}\right)\) as follows: \[\begin{bmatrix}s_{x}\\ s_{y}\\ s_{z}\end{bmatrix}=\begin{bmatrix}\cos\phi&-\sin\phi&0\\ \sin\phi&\cos\phi&0\\ 0&0&1\end{bmatrix}\begin{bmatrix}1&0&0\\ 0&\cos\theta&-\sin\theta\\ 0&\sin\theta&\cos\theta\end{bmatrix}\begin{bmatrix}r_{x}\\ r_{y}\\ r_{z}\end{bmatrix}\] (14) \[\begin{bmatrix}q_{x}\\ q_{y}\\ q_{z}\end{bmatrix}=\begin{bmatrix}\cos\phi&-\sin\phi&0\\ \sin\phi&\cos\phi&0\\ 0&0&1\end{bmatrix}\begin{bmatrix}1&0&0\\ 0&\cos\theta&-\sin\theta\\ 0&\sin\theta&\cos\theta\end{bmatrix}\begin{bmatrix}p_{x}\\ p_{y}\\ p_{z}\end{bmatrix}\] (15)  
The overall mathematical sequence is shown in Figure 6. We note that these transformations are purely mathematical abstractions that can be applied to any mechanical model (we only need to know the normal vector \(\overset{\rightarrow}{n}\) for the oriented heliostat), unlike the operations reported above for azimuth-elevation, tilt-roll, and target-aligned models, which describe actual mechanical rotations.  
Figure 6: Mathematical sequence to handle sun ray reflections at the heliostat curvature: (**a**) Use the inverse rotation sequence, \(R_{x}(-\theta)R_{z}(-\phi)\), to obtain the incident sun vector in the horizontal heliostat; (**b**) Transform the incident sun ray (i) to the reflected ray (r); (**c**) Use the direct rotation sequence, \(R_{z}(\phi)R_{x}(\theta)\), to obtain the reflected sun vector in the real heliostat.