TD: Cadran solaire - ENT ISEN
Transcription
TD: Cadran solaire - ENT ISEN
TD: Cadran solaire 1 Position du problème On souhaite réaliser un cadran solaire à l’aide d’un stylet, de longueur a, perpendiculaire à un plan. (Le stylet n’est donc pas orienté vers le pôle nord céleste). Ce cadran solaire a les caractéristiques suivantes: ϕ la latitude du lieu. D la déclinaison gnomonique c.-à-d. l’azimut du stylet, mesuré à partir du sud et compté vers l’ouest. Si D = 0◦ , alors le cadran est orienté plein sud; si D = 270◦ , le cadran est orienté plein est,. . . z la distance zénithale du stylet. Si z = 0◦ , le cadran est horizontal (D est alors indéfini ); si z = 90◦ , le cadran est vertical. On prend l’origine cartésienne O du repère à la base du stylet et l’on appelle (x, y) les coordonnées de l’extrémité de l’ombre du stylet. On choisit comme axe (Ox) l’horizontale et comme axe (Oy) la direction de plus grande pente du cadran. x est compté positivement vers la droite et y positivement vers le haut. L’angle horaire du Soleil H est mesuré à partir de midi pour le Soleil vrai; H augmente de 15◦ par heure. Par exemple H = −45◦ correspond à 9h du matin (heure solaire vraie), H = +15◦ correspond à 1h de l’après-midi. Dans les formules suivantes, pour chaque angle horaire H, la déclinaison δ du Soleil prendra successivement −23◦ .44 (solstice d’hiver), −20◦ .15, −11.47, 0 (équinoxe), +11◦ .47, +20◦ .15 et +23◦ .44 (solstice d’été), ce qui correspond aux dates où la longitude du Soleil est un multiple de 30◦ . Au cours de la journée, l’extrémité de l’ombre du stylet décrira une conique sur le cadran (cercle, ellipse, parabole ou hyperbole). Toutefois, si δ = 0◦ , la courbe sera toujours une droite. Le plan représente la surface du cadran solaire. OP est le stylet, de longueur a, placé en O(0, 0), perpendiculaire à ce plan. Le point I est le centre du cadran de coordonnées (x0 , y0 ). IP est le stylet polaire de longueur u. P 0 est l’extrémité de l’ombre sur le cadran de coordonnées (x, y). 1. Pour un angle horaire H, calculer: P = sin ϕ. cos z − cos ϕ. sin z. cos D Q = sin D. sin z. sin H + (cos ϕ. cos z + sin ϕ. sin z. cos D). cos H + P. tan δ On peut alors choisir les directions (Ox) et (Oy) comme l’on veut. Dans ce cas, on prendra D = 0◦ , (Ox) vers l’est et (Oy) vers le nord. 1 ISEN-Brest. Kany. TD: Cadran solaire Nx = cos D. sin H − sin D.(sin ϕ. cos H − cos ϕ. tan δ) Ny = cos z. sin D. sin H −(cos ϕ. sin z −sin ϕ. cos z. cos D). cos H −(sin ϕ. sin z +cos ϕ. cos z. cos D). tan δ Les coordonnées x et y sont alors données par: x = a.Nx /Q et y = a.Ny /Q On obtient ainsi une série de points. En reliant ces points, on obtient une droite correspondant à une certaine heure (en temps local vrai). 2. Réitérer l’opération pour différentes valeurs de H. (On prendra des pas de 15◦ ). Former l’intersection des droites des heures (en temps local vrai); ce point (s’il existe) est le centre du cadran; il correspond au point de fixation d’un stylet polaire (qui serait parallèle à l’axe de rotation de la Terre). Ces coordonnées x0 et y0 sont données par: x0 = Pa . cos ϕ. sin D et y0 = − Pa .(sin ϕ. sin z + cos ϕ. cos z. cos D) 3. Soit u la longueur du stylet polaire entre son point de fixation en (x0 , y0 ) et l’extrémité du stylet perpendiculaire au cadran (de longueur a). On a: u = |Pa | ; l’angle Ψ que le stylet polaire fait avec le plan du cadran est donné par: sin Ψ = |P |. N.B. (x0 , y0 ) n’est défini que si P 6= 0 (i.e. cos D. tan z 6= tan ϕ), sinon le stylet polaire est parallèle au plan du cadran. Il faut ensuite limiter le tracé du cadran à des valeurs vraiment utiles. Par exemple, un cadran vertical orienté plein nord (D = 180◦ ), à une latitude de +40◦ , n’indiquera jamais 11h du matin (Soleil vrai). À cette même latitude, un cadran vertical orienté plein sud n’indiquera jamais 19h aux alentours du solstice d’été. Pour être sur que le cadran solaire fonctionne vraiment, deux conditions doivent être simultanément remplies: que le Soleil soit au-dessus de l’horizon et que le cadran soit éclairé. En pratique, pour une déclinaison δ donnée, l’angle horaire H0 du Soleil au lever et au coucher est donné par: cos H0 = − tan ϕ. tan δ où H0 < 0 au lever et H0 > 0 au coucher du Soleil. Pour chaque valeur de H, il faut vérifier que Q > 0 (sinon, le cadran n’est pas éclairé). N.B. Il est possible qu’à une date donnée Q soit positif, puis négatif et redevienne positif plus tard ! a. Construire un cadran solaire, à une latitude de ϕ = +40◦ nord, avec D = 70◦ , z = 50◦ et a = 1. On précisera notamment x0 , y0 et Ψ. Calculer en particulier (x, y) pour H = +30◦ et δ = +23◦ .44 (solstice d’été) ainsi que (x, y) pour H = −15◦ et δ = −11◦ .47 b. Construire un cadran solaire vertical à une latitude de ϕ = −35◦ , avec D = 160◦ , z = 90◦ et a = 1. On précisera notamment x0 , y0 et Ψ. Calculer en particulier (x, y) pour H = +45◦ et δ = 0◦ ainsi que (x, y) pour H = 0◦ et δ = +20◦ .15 c. Construire un cadran solaire incliné à une latitude de ϕ = +40◦ nord, avec D = 160◦ , z = 75◦ et a = 1. On précisera notamment x0 , y0 et Ψ. d. Construire un cadran solaire horizontal (z = 0◦ et D = 0◦ ) pour Brest ϕ = 48◦ .3 nord et 4◦ .5 ouest. On précisera notamment x0 , y0 et Ψ. 4. Adapter les calculs pour tracer les droites des heures en temps local moyen en utilisant l’équation du temps. 5. Adapter les calculs pour tracer les droites des heures en temps civil. 2 ISEN-Brest. Kany. TD: Cadran solaire 2 Code avec Mathematica Cadran Solaire Entrées [1] à [26] inchangés par rapport au TD Equation du temps Cadran Solaire In[27]:= P[phi ,DD ,z ]:=Sin[phi] Cos[z]-Cos[phi] Sin[z] Cos[DD]; Q[phi ,DD ,z ,delta ,H ]:=Sin[DD] Sin[z] Sin[H]+ (Cos[phi] Cos[z]+Sin[phi] Sin[z] Cos[DD]) Cos[H] + P[phi,DD,z] Tan[delta]; Nx[phi ,DD ,z ,delta ,H ]:=Cos[DD] Sin[H]-Sin[DD] (Sin[phi] Cos[H] - Cos[phi] Tan[delta]); Ny[phi ,DD ,z ,delta ,H ]:=Cos[z] Sin[DD] Sin[H]- (Cos[phi] Sin[z] - Sin[phi] Cos[z] Cos[DD]) Cos[H]- (Sin[phi] Sin[z] + Cos[phi] Cos[z] Cos[DD]) Tan[delta]; x[phi ,DD ,z ,delta ,H ,a ]:=a Nx[phi, DD, z, delta, H]/ Q[phi, DD, z, delta, H]; y[phi ,D ,z ,delta ,H ,a ]:=a Ny[phi, DD, z, delta, H]/ Q[phi, DD, z, delta, H]; x0[phi ,DD ,z ,a ]:=a Cos[phi] Sin[DD]/ P[phi, DD, z]; y0[phi ,DD ,z ,a ]:=-a (Sin[phi] Sin[z]+Cos[phi] Cos[z] Cos[DD])/P[phi,DD,z]; Psi[phi ,DD ,z ]:=N[ArcSin[Abs[P[phi,DD,z]]]/Degree]; In[36]:= AffichageCadran[Details ,Auto ,Range ]:=( delta=.;H=.; NbreDelta=7;NbreHeure=25; DataDelta={ -23.44 Degree,-20.15 Degree,-11.47 Degree, 0,11.47 Degree,20.15 Degree,23.44 Degree}; DataCadran=Table[{xx0,yy0},{NbreDelta NbreHeure}]; For[d=1,d<=NbreDelta,d++, delta=N[DataDelta[[d]]]; For[h=1,h<=NbreHeure,h++, H=N[(180-(h-1) 360/(NbreHeure-1)) Degree]; If[Q[phi,DD,z,delta,H]>0, DataCadran[[h+24 (d-1)]]={x[phi,DD,z,delta,H,a],y[phi,DD,z,delta,H,a]}; If[Details, Print["déclinaison: ",N[delta/Degree],"; heure vraie: ", N[(H/Degree)/15],"; coordonnees: ", x[phi,DD,z,delta,H,a]," ; ", y[phi,DD,z,delta,H,a]]] ]]]; DataCadran=Join[DataCadran,{{xx0,yy0}}]; ListPlot[DataCadran, AspectRatio->1, AxesOrigin->{0,0}, PlotRange->If[Auto,Automatic,{{-Range,Range},{-Range,Range}}]]) Exemple 1 In[37]:= phi=N[40 Degree]; DD=N[70 Degree]; z=N[50 Degree]; H=N[30 Degree]; delta=N[+23.44 Degree]; a=1; xx0=x0[phi,DD,z,a] yy0=y0[phi,DD,z,a] Psi[phi,DD,z] x[phi,DD,z,delta,H,a] y[phi,DD,z,delta,H,a] H=N[-15 Degree]; delta=N[-11.47 Degree]; x[phi,DD,z,delta,H,a] y[phi,DD,z,delta,H,a] Out[43]= Out[44]= Out[45]= Out[46]= Out[47]= Out[50]= Out[51]= 3.38799 -3.11016 12.2672 -0.0390372 -0.361525 -2.00066 -1.10688 In[52]:= AffichageCadran[False,False,4] 3 ISEN-Brest. Kany. TD: Cadran solaire Out[52]= -Graphics- Exemple 2 In[53]:= phi=N[-35 Degree]; DD=N[160 Degree]; z=N[90 Degree]; H=N[45 Degree]; delta=N[0 Degree]; a=1; xx0=x0[phi,DD,z,a] yy0=y0[phi,DD,z,a] Psi[phi,DD,z] x[phi,DD,z,delta,H,a] y[phi,DD,z,delta,H,a] H=N[0 Degree]; delta=N[20.15 Degree]; x[phi,DD,z,delta,H,a] y[phi,DD,z,delta,H,a] Out[59]= Out[60]= Out[61]= Out[62]= Out[63]= Out[66]= Out[67]= 0.36397 0.745145 50.3315 -0.843942 -0.929792 0.36397 -0.741001 In[68]:= AffichageCadran[False,False,4] 4 ISEN-Brest. Kany. TD: Cadran solaire Out[68]= -Graphics- Exemple 3 In[69]:= phi=N[+40 Degree]; DD=N[160 Degree]; z=N[75 Degree]; a=1; xx0=x0[phi,DD,z,a] yy0=y0[phi,DD,z,a] Psi[phi,DD,z] Out[73]= 0.304059 Out[74]= -0.504333 Out[75]= 59.5062 In[76]:= AffichageCadran[False,False,4] Out[76]= -Graphics- Exemple 4 In[77]:= phi=N[+48.3 Degree]; DD=N[0 Degree]; z=N[0 Degree]; a=1; xx0=x0[phi,DD,z,a] yy0=y0[phi,DD,z,a] Psi[phi,DD,z] 5 ISEN-Brest. Kany. TD: Cadran solaire Out[81]= 0 Out[82]= -0.890967 Out[83]= 48.3 In[84]:= AffichageCadran[False,False,4] Out[84]= -Graphics- 6 ISEN-Brest. Kany. TD: Cadran solaire Cadran analemmique In[85]:= NbreDelta=32;delta=.; DataT={ CalculT[01,01,2000], CalculT[10,01,2000], CalculT[21,01,2000], CalculT[29,01,2000], CalculT[09,02,2000], CalculT[23,02,2000], CalculT[09,03,2000], CalculT[21,03,2000], CalculT[03,04,2000], CalculT[16,04,2000], CalculT[02,05,2000], CalculT[12,05,2000], CalculT[21,05,2000], CalculT[02,06,2000], CalculT[11,06,2000], CalculT[21,06,2000], CalculT[03,07,2000], CalculT[12,07,2000], CalculT[24,07,2000], CalculT[02,08,2000], CalculT[13,08,2000], CalculT[28,08,2000], CalculT[11,09,2000], CalculT[23,09,2000], CalculT[07,10,2000], CalculT[20,10,2000], CalculT[04,11,2000], CalculT[14,11,2000], CalculT[22,11,2000], CalculT[03,12,2000], CalculT[12,12,2000], CalculT[21,12,2000]}; DataDelta=delta[DataT]; DataEquTemps=EquTemps[DataT]; In[89]:= Analemmique[DecalageOuest ,Details ,Auto ,Range ]:=( delta=.;H=.; NbreDelta=32; NbreHeure=25; DataCadran=Table[{xx0,yy0},{NbreDelta NbreHeure}]; For[d=1,d<=NbreDelta,d++, delta=N[DataDelta[[d]] Degree]; DecalageET=N[DataEquTemps[[d]]]; For[h=1,h<=NbreHeure,h++, H=N[(180 -(h-1) 360/(NbreHeure-1) -(DecalageOuest+DecalageET)) Degree]; If[Q[phi,DD,z,delta,H]>0, DataCadran[[h+24 (d-1)]]={x[phi,DD,z,delta,H,a],y[phi,DD,z,delta,H,a]}; If[Details, Print["déclinaison: ",N[delta/Degree],"; heure vraie: ", N[(H/Degree)/15],"; coordonnees: ", x[phi,DD,z,delta,H,a]," ; ", y[phi,DD,z,delta,H,a]]] ]]]; DataCadran=Join[DataCadran,{{xx0,yy0}}]; ListPlot[DataCadran, AspectRatio->1, AxesOrigin->{0,0}, PlotRange->If[Auto,Automatic,{{-Range,Range},{-Range,Range}}]]) 7 ISEN-Brest. Kany. TD: Cadran solaire Exemple 5 In[90]:= phi=N[+35 Degree]; DD=N[0 Degree]; z=N[0 Degree]; a=1; xx0=x0[phi,DD,z,a] yy0=y0[phi,DD,z,a] Psi[phi,DD,z] Out[94]= 0 Out[95]= -1.42815 Out[96]= 35 In[97]:= Analemmique[1.8,False,False,7] Out[97]= -Graphics- Pour Brest, taper: phi=N[+48.3 Degree];yy0=y0[phi,DD,z,a];Analemmique[4.5,False,False,7] 8 ISEN-Brest. Kany. TD: Cadran solaire 3 Code avec Python # -*- coding: utf-8 -*4 3 2 1 4 3 2 1 00 1 2 3 4 1 2 3 4 1 2 3 4 4 3 2 1 4 3 2 1 00 1 2 3 4 9 ISEN-Brest. Kany. TD: Cadran solaire 4 3 2 1 4 3 2 1 00 1 2 3 4 1 2 3 4 1 2 3 4 4 3 2 1 4 3 2 1 00 1 2 3 4 6 4 2 6 4 2 00 2 4 6 2 4 6 10