地理吧 关注:730,030贴子:15,222,628
  • 11回复贴,共1

【拓展•延伸】关于任意时刻太阳高度的计算问题

取消只看楼主收藏回复

关于任意时刻太阳高度的计算问题
关键词:太阳高度 太阳周日圈 太阳赤纬 天文三角 天赤道 时角 天顶 天极 时圈 午圈 平经圈 极距 等太阳高度线
[自从初三自学了正午太阳高度的计算之后,我就在思考着一个问题:对于任意时刻的太阳高度如何计算?
最近为了研究这个问题尝试各种方法,结果都失败了,后来刘聪为我打开了思路。]


来自Android客户端1楼2017-01-26 14:04回复
    艾特几位同类大神,欢迎大家关注





    来自Android客户端2楼2017-01-26 14:05
    收起回复
      正午太阳高度的计算,在中学地理教学中常被视为重难点,太阳高度等于90º减去两地纬度之差。即H=90º-1φ-δ1。
      在中学里,太阳高度的计算局限于正午时刻的,就是当地地方时为12:00的太阳高度。那么对于任意时刻的太阳高度如何计算,如8:00、10:00、14:00。
      计算太阳高度,可以帮助我们及时调整太阳能集热板的倾角,有利于最大限度地使用太阳能,对于提高太阳能的使用效率有着重要的意义。下面我们就来探究关于太阳高度的计算问题。


      来自Android客户端5楼2017-01-26 14:10
      回复
        未完待续,我先出去一下


        来自Android客户端6楼2017-01-26 14:13
        回复
          回来了,继续


          来自Android客户端8楼2017-01-27 13:58
          回复
            首先,我们来了解一下天文学上通用的一种方法。
            方法一:解天文三角形
            太阳高度的大小与三个因素有关:①当地纬度 ②太阳赤纬(即直射点纬度) ③太阳时角(即太阳在周日圈上的位置) 根据这三个变量,我们可以在天球上建立一个球面三角形。
            如图,Q为上点,P为天极,Z为天顶,S为太阳。将太阳、天极、天顶二者连接起来可以构成一个球面三角形。这个球面三角形的三边由午圈、时圈和平经圈的弧段构成,称为天文三角形和ZPS角形。其中,弧PZ为天顶极距,即当地纬度的余角(90º-φ)。弧ZS为太阳的天顶距,即太阳高度的余角(90º-h)弧PZ为太阳的极距,即太阳赤纬的余角(9oº-δ)。t为当时太阳的时角。
            在这个球面三角形中,已知三边及一夹角可代余弦公式:
            cos(90º-h)=cos(90º-φ)cos(90º-δ)+sin(90º-φ)sin(90º-δ)cost
            将上式化简得
            sinh=sinφsinδ+cosφcosδcost
            即 h=arcsin(sinφsinδ+cosφcosδcost)
            这就是计算任意时刻太阳高度公式。


            来自Android客户端9楼2017-01-27 14:01
            回复
              如果你使用过这个公式,去发现它有一个致命的缺陷,就是参数代入后无法计算出正确的数值。最终也只能在特殊角的情况下估值,所以我们要探究其他计算方法。
              方法二:重建球面三角
              前面用解天文三角法推导出来了公式无法计算出结果,或许球面三角的建立的问题。所以我们可以重建球面三角。
              如图,当二分日,太阳周日圈与天赤道重合,因此我们不用考虑太阳赤纬。过太阳S作与地平圈垂直的弧段,交地平圈于点P。(图中未注明,自行脑补),以太阳周日圈、平经圈、地平圈的弧段为三边组建一个球面三角形。S为太阳,O为观测者,W为西点。t为从日出时刻到该时刻太阳扫过的圆心角的度数,即(该时刻-日出时刻)*15º,h为当时的太阳高度角,天赤道与地平圈的夹角为当地纬度的余角,即90º-φ。
              在球心三面角0-WpS中,已知两角及一边,可代余弦公式:
              sint/sin90º=sinh/sin(90º-φ)
              变形及化简后得
              h=arcsin(sintcosφ)
              上式就是计算二分日任意时刻太阳高度的公式。
              但是,重建的球面三角只能用于二分日任意时刻太阳高度的推算。如果不是二分日,太阳轨道平面则未过天球球心。这时还需要考虑太阳赤纬,然而太阳赤纬与太阳扫过的角度、周日圈与地平圈的夹角不能组建为一个球面三角形。所以无法计算
              。我们还需探究其他的方法。


              来自Android客户端10楼2017-01-27 14:02
              收起回复
                方法三:利用等太阳高度线原理计算太阳高度差
                前面两种方法都是从太阳视运动的角度去考虑的,都无法计算出任意时刻的太阳高度,也许我们可以尝试从太阳高度的分布这个角度去考虑。
                我们知道,任何时刻太阳只能照亮地球的一半。在昼半球,晨昏线上的太阳高度为0º,太阳直射点为90º。太阳高度由太阳直射点向晨昏线(圈)有规律的递减。我们将昼半球太阳高度相等的点连接起来,就得到了以太阳直射点为中心呈同心圆分布的等太阳高度线图。
                我们知道,两地正午太阳高度差等于纬度差。如下图,A、B两地同在太阳直射的经线上,若A、B两地纬度相差50º,则B地与直射点A地太阳高度相差50º,B地的太阳高度为H=90º-50º=40º。同理,将地球表面的A、C两地连接起来,得到弧AC。由于弧AC是过地心大圆的弧段,因此,可以将A、C两地看成是同一经线上的。这时,只要我们求出弧AC所对圆心角的度数,便可得知c地与直射点A的太阳高度差,从而算出C点的太阳高度。


                来自Android客户端12楼2017-01-27 14:07
                回复
                  用此方法计算任意时刻的太阳高度分为以下几个步骤:
                  1.算太阳直射点的经纬度。太阳直射点的经度可以根据你所在地的地方时来推算,纬度则利用日期推算。公式为C=arcsin(sinAsinB)。A:从春分日起算到该日天数/半年天数*π B:黄赤交角
                  2.计算该地与太阳直射点的最短距离(或最短距离所对的圆心角度数),得到两地太阳高度差。具体方法等会详细介绍。
                  3.算该地太阳高度。H=90º-太阳高度差。
                  例:某地的经纬度为(30ºN,120ºE),求该地夏至日上午10:00的太阳高度?
                  根据地方时算太阳直射点的经度。
                  120ºE+(2*15º)=150ºE
                  所以太阳直射点的地理坐标为[23º26′N,150ºE]。
                  计算两地最短距离所对的圆心角,这个我要详细说一下。
                  首先,我们要以地心为原点建立一个空间直角坐标系。将A、c两地及其所在经线与赤道的交点与地心连接起来,并过点A、C作赤道半径OE、OF的垂线,垂足为B、D。过点A作CB的垂线,垂足为G。α为C地的纬度,β为A地的纬度,γ为两地经度差。φ就是我们要求的圆心角。
                  在Rt△COB中
                  CB=Oc*sinα=6371*sin30º=3185.50km
                  OB=√(Oc^2-CB^2)=√(6371^2-3185.50^2)≈5517.45km
                  在Rt△AOD中
                  AD=OA*sinβ=6371*sin23º26′≈2533.63km
                  OD=√(OA^2-AD^2)≈5845.54km
                  在△BOD中
                  BD=√(OD^2+OB^2-2*OB*OD*cosγ)=√(5845.54^2+5517.45^2-2*5517.45*5845.54*cos30º)≈2957.98km
                  在Rt△AGC中
                  CG=CB-GB=3185.50-2533.63=651.87km
                  GA=BD=2957.98km
                  AC=√(CG^2+GA^2)=√(651.87^2+2957.98^2)≈3028.96km
                  在△AOC中
                  φ=arccos[(Oc^2+OA^2-AC^2)/(2*OC*OA)=27º30′
                  故该地的10:00的太阳高度为
                  H=90º-27º30′=62º30′
                  可见,难度最大的就是计算两地球面最短距离的圆心角,当然,如果嫌麻烦也可以不使用我的方法,计算两地最短球面距离有公式:
                  设A、B经纬度为(jA,WA)(jB,WB),则半径为R球面上两点间最短距离为
                  弧AB=R*arccos[sin(WA)sin(WB)+cos(WA)Cos(WB)c0S(jA-jB)]
                  求出弧长再转化为圆心角的度数就可以了。


                  来自Android客户端13楼2017-01-27 14:12
                  回复
                    完~
                    参考文献:地球概论_金祖孟_球面三角法简介
                    鸣谢:刘聪
                    (转载请注明出处)
                    2017.1.25 S.T.圣德里斯


                    来自Android客户端14楼2017-01-27 14:13
                    回复
                      @烟给我烟


                      来自Android客户端15楼2017-01-27 14:28
                      回复
                        @烟给我烟


                        来自Android客户端23楼2017-04-12 22:34
                        回复