吳俊斌 吳 晟 吳興蛟
(昆明理工大學(xué)信息工程與自動化學(xué)院 昆明 650500)
?
基于日晷原理的太陽影子定位實現(xiàn)*
吳俊斌吳晟吳興蛟
(昆明理工大學(xué)信息工程與自動化學(xué)院昆明650500)
摘要論文基于古代日晷的原理,實現(xiàn)太陽影子定位。根據(jù)天文學(xué)理論,計算太陽高度角、方位角以及陰影形成原理,計算日出至日落之間各時刻晷針在晷面上的影子長度和方位角,進而得到太陽影子與經(jīng)緯度的函數(shù)關(guān)系,在反推求解的過程中,通過最小二乘法得到當(dāng)?shù)卣鐣r刻的影子長度和北京時間,再根據(jù)得到的經(jīng)緯度與影子的函數(shù)關(guān)系,進行求解。文章使用Java程序進行仿真模擬,得出經(jīng)度以及緯度之后進行驗證。得知該實現(xiàn)具有可行性。
關(guān)鍵詞影子定位; 日晷投影原理; 最小二乘法; Java仿真
Sun Shadow Position Based on the Sundial
WU JunbinWU ShengWU Xingjiao
(School of Information Engineering and Automation, Kunming University of Science and Technology, Kunming650500)
AbstractBased on the principle of the ancient sundial, throuth the shadow of the sun to achieve positioning, according to the theory of astronomy, the sun’s data is calculated, such as elevation angle, azimuth angle and shadow forming principle. And the data of the sundial shadow is calculated at each moment between sunrise and sunset, such as length and azimuth. Then the relationship of the functions between shadow of the sun and latitude-longitude is gotten. Then, in the process of using backstepping method to solving the problem, the least squares method is used to obtain shadow-length in noon local time and Beijing time, and finally the problem is solved by the functions between shadow of the sun and latitude-longitude. In this article, the emulation and simulation are carried out through JAVA program to verify the results and proves the truth of these method.
Key Wordsshadow positioning, sundial projection principle, least square method, Java simulation
Class NumberG624.6
1引言
古代沒有精確的時間測量儀器,一直通過沙漏和日晷來測量時間[1],通過太陽照射地面直桿的影子長度和角度來確定時間。如今雖然有了鐘表或者電子時鐘,但依然能夠在很多地方能看到反映人文景觀的日晷,這是古人文明的展現(xiàn)。在現(xiàn)代,雖然不再通過日晷查看時間,但對于日晷投影的研究并沒有終止。我們可以很方便地從日晷上看出時間,但日晷影子長度的變化是根據(jù)地球經(jīng)度緯度來決定的,所以也可以通過日晷影子[2]長度的變化來求出當(dāng)?shù)氐慕?jīng)度緯度,這對于野外求生也可以起到一定的幫助。
2日晷原理
2.1日晷成像原理
日晷是由晷針、晷面和晷面上的刻度組成的。太陽照射晷針,形成晷影[3~4]。晷影的長度和角度會投射到相應(yīng)的日期刻度和時間刻度上,通過刻度可讀出時間。由于每天任何時刻的晷影各不相同,就可以有效反映出當(dāng)?shù)氐奶枙r。
晷影的形成原理如圖1所示。其中X軸正方向指向正東方向,Y軸正方向指向正北方向,Z軸正方向豎直向上。Z軸上有一晷針H,v為太陽光線,照射在晷針H上形成晷影L,此時影長L與晷針H形成高度角α,影長L與X軸形成方位角β。由于每個時刻形成的高度角α和方位角β不相同,所以通過一定的方法就可以求出時間?;诖?也可通過時間來計算影子的長度。
圖1 日晷原理圖
2.2影長求解
根據(jù)日晷成像原理,若要求解影長的具體的變化情況,首先必須明確太陽與地球的運動情況。不僅要考慮地球公轉(zhuǎn)的速度變化,而且還要考慮地球自轉(zhuǎn)的變化情況。通過地球公轉(zhuǎn)速度的變化,可以求得太陽直射地球的緯度,而通過地球自轉(zhuǎn)的變化,可以得到太陽直射地球的經(jīng)度。
由于地球公轉(zhuǎn)軌跡并不是標(biāo)準(zhǔn)的正圓,且公轉(zhuǎn)速度也不相同,因此不能簡單地使用公歷日期,而需要進行誤差修正。計算出確切的公轉(zhuǎn)天數(shù)t,從而計算出日角θ。同理,由于地球自轉(zhuǎn)的速度也不均勻,其自轉(zhuǎn)一周的時間并不是準(zhǔn)確的24小時,因此要進行誤差修正,得到真太陽時TΘ,從而得到太陽時角τ。經(jīng)過誤差修正的日期和時間可以精確求得影子長度L,其具體的求解過程如下:
1) 日角θ
日角θ的計算公式[5]為
(1)
其中t為地球轉(zhuǎn)到當(dāng)前位置的天文時間,N為積日,即當(dāng)日的日期距離當(dāng)年1月1日的天數(shù),N0用于積日校正,以得到實際的天文時間,yr為年份,INT函數(shù)用于取整。
2) 時差η
時差Et的計算公式為
η=0.0028-1.9857sinθ+9.9059sin2θ
-7.0924cosθ-0.6882cos2θ
(2)
3) 赤緯角δ
赤緯角δ的計算公式為
δ=0.3723+23.2567sinθ+0.1149sin2θ
-0.1712sin3θ-0.758cosθ+0.3656cos2θ
(3)
4) 太陽時角τ
太陽時角τ的計算公式為
τ=(TΘ-12)×15°
(4)
式中TΘ表示真太陽時。為從北京時間得到真太陽時,需要通過以下公式求得:
將北京時T轉(zhuǎn)換成地方時Td的公式如下:
(5)
式中λ表示經(jīng)度,T表示北京時間,轉(zhuǎn)換為地方時后,需要進行誤差修正,得到真太陽時,如下:
(6)
其中,TΘ為真太陽時,Td為地方時,η為時差。
5) 太陽高度角α
太陽高度角α的計算公式[6~7]為
sinα=sinδsinφ+cosδcosφcosτ
(7)
式中,δ為太陽赤緯角,φ為當(dāng)?shù)氐牡乩砭暥?τ為當(dāng)時的太陽時角。
6) 太陽方位角β
太陽方位角β的計算方式為
(8)
式中,α為太陽高度角,δ為太陽赤緯角,φ為當(dāng)?shù)氐牡乩砭暥取?/p>
由上式可求出兩個β值。第一個表示午后的太陽方位,取值范圍為:當(dāng)cosβ≤0時,90°≤β≤180°;當(dāng)cosβ≥0時,0°≤β≤90°。第二個β值為午前的太陽方位角,取值為360°-β。
7) 影子長度L
影子長度L的計算公式為
(9)
聯(lián)立式(1)~式(9)就可以得到影子長度L。
3通過影長求當(dāng)?shù)亟?jīng)緯度
在有電子時鐘的時代,可以不再通過日晷來查看時間了,但可以通過日晷的原理來反推觀測地點的經(jīng)緯度,這對于現(xiàn)代科技的研究更加有價值,甚至可以用在野外求生上。
假設(shè)觀測地點的地面是水平的,通過測量可以求得物體的高度為H,影長為L,由于一組數(shù)據(jù)會存在較大的誤差,因此需要根據(jù)每個時間點,測算影子的長度,并做出統(tǒng)計。
采用一元線性回歸模型,利用最小二乘估計法計算觀測點的經(jīng)緯度[8~9]:
(10)
(11)
其中,L為影長,xt和yt為t時刻影子頂點的坐標(biāo),λ為當(dāng)?shù)氐牡乩斫?jīng)度,φ為當(dāng)?shù)氐牡乩砭暥取?/p>
根據(jù)式(10)和式(11)可以得出影子定點坐標(biāo)(xi,yi)與經(jīng)度λ的函數(shù)關(guān)系,時間t與緯度φ的函數(shù)關(guān)系[10]。
具體形式如式(12)所示,主要運用日晷原理中的式(7)和式(8),即太陽高度角α和方位角β的公式,并利用式(1)~式(6)公式進行反推即可得到式(12)的具體形式:
(12)
其中T0是當(dāng)?shù)卣鐣r刻的北京時間,L0是當(dāng)?shù)卣鐣r刻的影子長度,d是當(dāng)天日期與春分日的日期差。通過得到的一系列測量數(shù)據(jù),可以找到最短影長,以及最短影長的時刻。但由于測量有誤差,因此可以對測量的數(shù)據(jù)進行擬合,并通過最小二乘法來求解得到較為精確的最短影長和時刻。最后通過式(12)求解得當(dāng)?shù)氐慕?jīng)緯度。
4實例驗證
4.1程序展示
編寫程序,驗證以上理論,其偽代碼編寫如下:
/*程序中today為測量日期,time是當(dāng)?shù)卣?/p>
*午時刻的北京時間,height為木桿的高度,
*length為正午時刻木桿的影長*
/SolveLaitLong(today,time,height,length)
{
longitude=120-(time-12)*15;
// longitude為經(jīng)度
equinox=(2015,3,21)
//equinox為當(dāng)年的春分時間
dvalue=today-equinox;
//dvalue為測量日期距離春分的天數(shù)
latitude=(atan(length/height)
+asin(sin(23.5*pi/180)
*sin(2*pi*dvalue/365.2422)))
*180/pi;
return (longitude,latitude);
}
4.2實際檢驗
1) 提出問題
假設(shè)觀測地點為海南省,木桿高度H=2m,在2015年4月18日,測量得到正午時刻的北京時間為12:45:00,影子長度L=0.35m。
2) 求解問題
(λ,φ)=(108°49′,20°34′)
3) 結(jié)果檢驗
根據(jù)求得的結(jié)果,與實際的測量地點經(jīng)緯度(λ,φ)=(110°21′,20°02′)進行對比,可以發(fā)現(xiàn),結(jié)果還是相對比較準(zhǔn)確的。
5結(jié)語
該模型是基于日晷原理的太陽影子定位,雖然在當(dāng)今定位系統(tǒng)覆蓋全球的時代里,模型求解起來有些繁瑣,但是對于了解日晷原理,了解地球和太陽間的運動還是起到很大的作用的,通過該模型,可以不需要借助任何高科技來得到自己所處的地方,對于天文觀測定位星球也起到有效的借鑒作用,可以通過得到恒星和行星的遠(yuǎn)近找到宜居星球。但是本模型中由于包含著各種影響因素,為了簡化模型,將其中比較次要的因素省去了,比如:雖然考慮到了地球繞太陽公轉(zhuǎn)的速度并非勻速,但是由于其精確的速度并不是很精確,導(dǎo)致誤差隨著計算越變越大。為達到更加精確的結(jié)果,應(yīng)該優(yōu)化模型,使得減少其中的變量,進而提高精度。
參 考 文 獻
[1] 王德昌.日晷—時間的雕塑和測量[J].科學(xué),2005,57(4):55-58.
WANG Dechang. Sundial — time sculpture and time measuring tool[J]. Science,2005,57(4):55-58.
[2] 吳振華.常用日晷晷面線圖設(shè)計[J].上海交通大學(xué)學(xué)報,1996,30(1):123-127.
WU Zhenhua. Figure Design of General Sundial Sundial Surface[J]. Journal of Sunghal Jiaotong University,1996,30(1):123-127.
[3] 唐玉麗,陳琪,陳崇成,等.通用日晷三維仿真系統(tǒng)的開發(fā)與應(yīng)用[J].計算機仿真,2014,31(11):273-277.
TANG Yuli, CHEN Qi, CHEN Chongcheng, et al. Development and Application of 3D Simulation System for General Sundial[J]. Computer Simulation,2014,31(11):273-277.
[4] 劉群.日晷投影原理及其應(yīng)用[J].貴州師范大學(xué)學(xué)報,2003,21(3):109-113.
LIU Qun. The theory of gnomonic projection and its application[J]. Journal of Guizhou Normal University,2003,21(3):109-113.
[5] 王炳忠.太陽能中天文參數(shù)的計算[J].太陽能,1999,2(5):8-10.
WANG Bingzhong. Calculation of the solar energy of astronomical parameters[J]. Solar Energy,1999,2(5):8-10.
[6] 鄭鵬飛,林大鈞,劉小羊,等.基于影子軌跡反求采光效果的技術(shù)研究[J].華東理工大學(xué)學(xué)報,2010,36(3):458-463.
ZHENG Pengfei, LIN Dajun, LIU Xiaoyang, et al. Reversing Effect of Building Lighting Technology Based on Shadow Track Line[J]. Journal of East China University of Science and Technology,2010,36(3):458-463.
[7] 林根石.利用太陽視坐標(biāo)的計算進行物高測量與定位[J].南京林業(yè)大學(xué)學(xué)報,1991,15(3):89-93.
LIN Genshi. The use of the calculation of the solar apparent coordinate to reform the height of an object survey and positions[J]. Journal of Nanjing Forestry University,1991,15(3):89-93.
[8] 肖智勇,劉宇翔.一種新的緯度測量方法[J].大學(xué)物理,2010,29(9):51-54.
XIAO Zhiyong, LIU Yuxiang. A new measurement of latitude[J]. College Physics,2010,29(9):51-54.
[9] 張闖,呂東輝,頊超靜.太陽實時位置計算及在圖像光照方向中的應(yīng)用[J].電子測量技術(shù),2010,33(11):87-89,93.
ZHANG Chuang, LV Donghui, XU Chaojing. Computation for solar real-time position and its application in illuminant direction of image[J]. Electronic Measurement Technology,2010,33(11):87-89,93.
[10] 唐爽,馬世紅.利用數(shù)碼相機(CCD)測量所在地區(qū)緯度[J].大學(xué)物理,2009,28(7):56-58.
TANG Shuang, MA Shihong. Measurement of the latitude with digital camera(CCD)[J]. College Physics,2009,28(7):56-58.
中圖分類號G624.6
DOI:10.3969/j.issn.1672-9722.2016.03.002
作者簡介:吳俊斌,男,研究方向:算法設(shè)計、程序設(shè)計。吳晟,男,教授,碩士生導(dǎo)師,研究方向:信息安全,算法研究等。吳興蛟,男,碩士研究生,研究方向:軟件工程、算法設(shè)計、程序設(shè)計。
收稿日期:2015年9月4日,修回日期:2015年10月21日