A coelostat is an solar tracking device consisting of a set of mirrors with one mirror driven by a clock to fixed the Sun image for a solar telescope. The solar image produced by a coelostat [“see-lo-stat”] during a day as the earth turns is not rotated. This image stability is achieved by using two flat mirrors with a polar rotating primary mirror. The primary mirror called the coelostat mirror is mounted on a polar axis with the mirror flat surface fixed parallel to the axis with its normal rotating perpendicular to the polar axis. The secondary mirror or second flat reflects the sun beam into the desired downward direction as in the case shown here. The height of the secondary remains fixed during a day’s observation but must be adjusted over the year to take into effect the variation of the solar declination as the sun’s position in the sky moves up and down over the celestial equator. The coelostat mirror can be moved radially from the east to west side of the secondary flat to avoid the secondary mirror obscuring the sun. The coelostat position can be set to minimizes the angles of incident to reduce the induced instrumental polarization.
Coelostat of the German Vacuum Tower Telescope located in Tenerife Spain
G. Allen Gary /CSPAR/UAHuntsville/ September 2010
G. Allen Gary /CSPAR/UAHuntsville/ September 2010
Input Options
Input Options
In[]:=
HorizonalMode=0(*REDINPUTVALUES*)(*IfHorizonalMode=1thencalculationwillplacetheazimuthofpalettesuchthatthesecondaryheightshouldbeapproximatelyzeroviaequationazimuth=90-Sin[SolarDeclination]/Cos[LatitudeofHuntsville])*);
In[]:=
UseCurrentTime=0(*IfUseCurrentTime=1thenusecurrenttime--otherwiseuseinputdata*);
In[]:=
ThetaPaletteInput=90.(*IFnotusingHorizontalMode,Angle(degrees)toPalettefromdueNouth(+x)totheWest(+Y),i.e,dueWest=+90*);
In[]:=
Hsm=0.888905482(*0.888905482InitialGuessofHeightofSecondary*);
In[]:=
oyearin=2010;omonthin=9;odayin=26;ohourin=11;ominin=37;osecin=0;(*Inputdateandtimem37*)
In[]:=
If[HorizonalMode>0,Hsm=0.,Hsm=Hsm];Hsm
Out[]=
0.888905
Coordinate Directions : +X North + Y -> WEST Z Zenth + Azimuth from the North to East
Input Coordinate and Date and Time
Input Coordinate and Date and Time
In[]:=
LatH=34.72507163268337;(*CityData[{"Huntsville","Alabama"},"Latitude"](*34.7123*)*)
In[]:=
LongH=-86.64608001708984;(*CityData[{"Huntsville","Alabama"},"Longitude"](*-86.5963*)*)
In[]:=
TimeZoneH=-6;(*-6CityData[{"Huntsville","Alabama"},"TimeZone"]CentralStandardTimeZone*)
In[]:=
CurrentTime=Date[](*GetCurrentdateandtime*)
Out[]=
{2025,6,29,12,31,12.5436805}
In[]:=
oyearCT=CurrentTime[[1]];omonthCT=CurrentTime[[2]];odayCT=CurrentTime[[3]];ohourCT=CurrentTime[[4]]-1;(*setasstandardtime*)ominCT=CurrentTime[[5]];osecCT=Round[CurrentTime[[6]]];
If[UseCurrentTime<0.5,{oyear=oyearin;omonth=omonthin;oday=odayin;ohour=ohourin;omin=ominin;osec=osecin;},{oyear=oyearCT,omonth=omonthCT,oday=odayCT,ohour=ohourCT-1,omin=ominCT,osec=osecCT}];
The observational CDT time and date 2010, 9, 21, 0, 0, h = 9; h = 11 “NOT!” using savings time hence the 1 - from computer time here Sept 27
In[]:=
DateAsUsed={oyear,omonth,oday,ohour,omin,osec}
Out[]=
{2010,9,26,11,37,0}
Reference : http://www.csgnetwork.com/siderealjuliantimecalc.html
give GMST at Oh = 00 : 10 : 51.629 and LST at Huntsvile 07 : 11 : 29.38 for minus 84 longitude (W)
give GMST at Oh = 00 : 10 : 51.629 and LST at Huntsvile 07 : 11 : 29.38 for minus 84 longitude (W)
Calculation of the Local Sideral Time
Calculation of the Local Sideral Time
In[]:=
<<Calendar`
In[]:=
ohour=ohour+6(*converttoUTforGMSTEquations<<<<<<<----*)
Out[]=
17
Historical Julian dates were recorded relative to GMT or Ephemeris Time, but the International Astronomical Union now recommends that Julian Dates be specified in Terrestrial Time and that when necessary to specify Julian Dates using a different time scale that the time scale used be indicated when required, such as JD (UT1). Epoch : 12 : 00 January 1, 4713 BC, Monday
In[]:=
Daysbet=DaysBetween[{2000,1,1},{oyear,omonth,oday}]-0.5+(ohour-12.+omin/60.+osec/3600.)/24.(*JDnooncount*)
Out[]=
3920.73
In[]:=
Jdate=Round[Daysbet+2451545.];
Julian Centuries since 2010 Jan 1 12 PM http://www.optcorp.com/edu/articleDetailEDU.aspx?aid=2194
Tjc=Daysbet/36525.
Out[]=
0.107344
In[]:=
DaySec=86400.;
In[]:=
(*http://www.usno.navy.mil/USNO/astronomical-applications/astronomical-information-center/approx-sider-time/?searchterm=GMSTJD=2451545.0@12h*)D0=DaysBetween[{2000,1,1},{oyear,omonth,oday}]-0.5;(*JulianDateforpreviousmidnight*)
In[]:=
Di=D0+(ohour+omin/60.+osec/3600.)/24.;(*Addfractionalday*)
In[]:=
H=(Di-D0)*24.;GMST=Mod[6.697374558+0.06570982441908*D0+1.00273790935*H+0.000026Tjc^2,24.];(*hoursalternatemethod*)
In[]:=
LMST=GMST+(LongH/15.0)(*Hours*)
Out[]=
12.2012
In[]:=
(*FLMST[pyear_,pmonth_,pday_,phour_,pmin_,psec_,plong_]:=Module[{oyear=pyear,omonth=pmonth,oday=pday,ohour=phour,omin=pmin,osec=psec,olong=plong},ohour=ohour+6;Tjc=Daysbet/36525.;D0=DaysBetween[{2000,1,1},{oyear,omonth,oday}]-0.5;;Di=D0+(ohour+omin/60.+osec/3600.)/24;H=(Di-D0)*24.;GMST=Mod[6.697374558+0.06570982441908*D0+1.00273790935*H+0.000026Tjc^2,24.];LMST=GMST+(olong/15.0);LMST]*)
In[]:=
(*FLMST[oyear,omonth,oday,ohour,ohour,osec,LongH]*)
In[]:=
ohour=ohour-6(*convertbacktoCSTtime<<<<<<<----*)
Out[]=
11
Solar Coordinates RA and Dec
Solar Coordinates RA and Dec
In[]:=
gi=Mod[357.529+0.98560028Di,360.];qi=Mod[280.459+0.98564736Di,360.];Li=Mod[qi+1.915Sin[giDegree]+0.020Sin[2.giDegree],360.];Ri=1.00014-0.01671Cos[giDegree]-0.00014Cos[2.giDegree];ei=23.439-0.00000036Di;SunRA=(ArcTan[Cos[LiDegree],Cos[eiDegree](Sin[LiDegree])]/Degree)/15.;(*Hours*)SunDeclination=ArcSin[Sin[eiDegree]Sin[LiDegree]]/Degree(*Degrees*)If[SunRA<0,sss=24.+SunRA,sss=SunRA];SunRightAscension=sss
Out[]=
-1.39956
Out[]=
12.2154
Obtain Solar Coordinates using Hour Angle
Obtain Solar Coordinates using Hour Angle
Reference: Roth, G. D. (ed.), 1975, Astronomy Handbook, Sky Publ. Co., p.169
In[]:=
LMST
Out[]=
12.2012
In[]:=
SunRightAscension
Out[]=
12.2154
In[]:=
LMST-SunRightAscension
Out[]=
-0.0141463
In[]:=
SolarHourAngle=(LMST-SunRightAscension)*15.(***********8DegreesNegativeangletotheEAST-54.471(passing-45)-39.4715*)
Out[]=
-0.212195
In[]:=
(*If[SolarHourAngle<0,aaa=360.+SolarHourAngle,aaa=SolarHourAngle];SolarHourAngle=aaa(***************)*)
In[]:=
Altitude=ArcSin[(Sin[LatHDegree]Sin[SunDeclinationDegree]+Cos[LatHDegree]Cos[SunDeclinationDegree]Cos[SolarHourAngleDegree])]/Degree(*Degrees*)
Out[]=
53.8748
In[]:=
CosAzimuth=(Sin[SunDeclinationDegree]-Sin[AltitudeDegree]*Sin[LatHDegree])/(Cos[AltitudeDegree]*Cos[LatHDegree])
Out[]=
-0.99998
In[]:=
Azimuth=Re[ArcCos[CosAzimuth]/Degree]
Out[]=
179.64
Location of the Coelostat Palette and Solar Vector Coordinates
Location of the Coelostat Palette and Solar Vector Coordinates
Coelostat Mirror Normal Before Tilting
Coelostat Mirror Normal Before Tilting
Calculate Height of Coelostat Reflection Beam Crossing Central Vertical
Calculate Height of Coelostat Reflection Beam Crossing Central Vertical
Using reflection plane define by coelostat mirror normal and incident Sun beam
Calculation of Sun Vector and Coelostat Normal
Calculation of Sun Vector and Coelostat Normal
Calculation of Secondary Height
Calculation of Secondary Height
Vector Normal to Coelostat Normal and Incident Sun beam ok
Cross product between reflection normal and beam from coelostat to secondary
Solve for height Hms by setting beam to secondary perpendicular to reflection plane normal
Height of the Secondary Mirror
Height of the Secondary Mirror
Calculation of the Secondary Mirror Tilt
Calculation of the Secondary Mirror Tilt
3D Graphics Output
3D Graphics Output
The size of the base of the figure is 3x3 units which scales the figure. The polar axis and coelostat mirror are placed on the palette with the base at z=-0.30 and the radial distance to the downward point beam (red) is 3 units. The incoming sun beam (yellow) is reflected by the coelostat mirror to form the beam (orange) going to the secondary mirror. The arrows (blue) are the normals to the two mirrors. The circle (green) of the possible palette movement is shown. The mirror (yellow for the coelostat and grey for the secondary mirror) and the axis of rotation for the mirror (blue tubes) are also shown.
STL 3D printable model of the coelostat
STL 3D printable model of the coelostat
References
References
1. Six, M., 1991, The Sun: An Introduction, Springer-Verllag, NY, page 70.
2. Mills, A. A., 1985, Heliostats,Siderostats, and Coelostats: A Review of Practial Instruments for Astronomical Appliations, JBAA, 95, 89-90.
3. Dougherty, L. M., 1982, A Note on the Principle and Nomenculature of Heliostat, Coelostats, Siderostats, JBAA, 92, 182-186
4. Demianski, M. , & Pasachoff, J. M. ,1984, Coelostat and Heliostat: Theory of Alignment, Solar Physics, 93,211-217.
5. Beck, C., et al., 2005, A Polarization Model for the German Vacuum Tower Telescope from in situ and laboratory measurements, A&A, 443, 1047-1053.
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Coelostat for solar observation - equations, graphics, & 3D print model
by Gilmer Allen Gary
Wolfram Community, STAFF PICKS, June 30, 2023
https://community.wolfram.com/groups/-/m/t/3488274
by Gilmer Allen Gary
Wolfram Community, STAFF PICKS, June 30, 2023
https://community.wolfram.com/groups/-/m/t/3488274
