(河海大學 計算機與信息學院, 南京 211100)
太陽射電天文學自從19世紀30年代問世以來,隨著觀測技術方法和觀測儀器的不斷完善和更新,在80多年得到了快速的發展。尤其是射電望遠鏡頻譜儀的發明,為太陽射電輻射特性的研究做出了重要的貢獻,推動了太陽射電的研究與探索。太陽射電望遠鏡頻譜儀是用來觀測太陽的射電輻射的一種儀器,它主要是通過控制天線對準太陽,之后天線接收太陽射電輻射,并經過濾波、放大、衰減等一系列的前端信號處理得到的太陽的頻譜[1-2]。本文研究的目的是控制射電望遠鏡天線準確跟蹤太陽,并將天線接收到的射電數據進行處理和保存下來,為人們研究、預報太陽活動提供數據依據。
由于射電望遠鏡測量的功率很小,在多種輻射的參量中,本文在實驗中選用天線溫度來表征太陽輻射的強度。天線溫度用T來表示,對于全功率型接收機,T和接收機的輸出電壓V的關系用下式表示:
V=GkBT+V0
式中,G是接收機的增益,隨著內部壓控衰減器的衰減系數L的變化而變化,k是波爾茲曼常數,B是帶寬,V0是接收機的零點電壓,該值理論為0 V。
如圖1所示,以球心O為原點,建立三維坐標系一,X軸為赤經方向,Z軸為球心O與北極點的連線,Y軸垂直于XOZ平面;接下來以Y軸作為旋轉軸,將整個坐標系旋轉90-φ度建立坐標系二,其中φ為觀測地的緯度。

圖1 地平坐標系
記太陽俯仰角為α,方位角為γ,時角為ω,赤緯角為δ[3]。由于坐標系二是由坐標系一旋轉得到,不難計算出對應的旋轉矩陣為:
(1)
太陽在地平坐標系中的的坐標(x,y,z)與太陽在坐標系二中的坐標(x′,y′,z′)的關系為:
(x,y,z)=(x′,y′,z′)·A
(2)
設天球的半徑為R,則太陽在坐標系二中的坐標與天球半徑所對應的關系如下:
x′=Rcosδcosω,y′=Rcosδsinω
z′=Rsin(900-δ)
由式子(1)和(2)可得太陽T在地平坐標系中的:

(3)
由圖1可求得太陽的俯仰角α的正弦值,方位角γ的余弦值:
(4)
地球自轉一周為一天,即為24小時,不同時刻有不同的時角。地球自轉一周為360°,因此每小時的時角為15°,太陽時角ω在正午時為0,每隔一小時變化為15°,計算公式為:
ω=(T-12)×15°
(5)
其中:T為真太陽時,可通過北京時間并查詢天文年歷得到。
δ可由庫伯方程得到:
(6)
其中:n代表當日在一年當中的第幾天,每往后加一天,如元旦時n=1,平年的最后一天n=365,閏年n=366。
這樣,式(4)計算太陽方位角和俯仰角,赤緯角和時角可以通過式(5)和(6)計算得到,緯度可以通過GPS準確獲得。
程序跟蹤主要是依據觀測地的經緯度和時間等信息推導出太陽的位置公式,其次實現太陽的位置公式的編程,然后使用程序實時的計算出太陽每一時刻的位置,最后根據計算出的結果和跟蹤裝置所在的位置的差值來驅動跟蹤裝置向目標移動。對于程序跟蹤還可以分為單軸跟蹤和雙軸跟蹤,相對于單軸跟蹤來說雙軸跟蹤具有較高的跟蹤精度。所以選用的是雙軸跟蹤,程序跟蹤的控制系統是采用開環的控制方式。程序跟蹤的主要特點是控制系統結構簡單容易實現;太陽的地理位置的變化主要受到觀測地的經緯度和時間信息等的影響,所以能夠在大多數的氣候下穩定的跟蹤太陽;只是算法稍微復雜點,需要進行實時的計算太陽的位置信息,這就需要控制系統需要很高的數據處理能力與較大的數據存儲空間,但是對于現今的微處理芯片來說這些問題就顯得簡單了。
結合對系統設計的實際需求,決定選用美國ST公司的STM32F103ZET6芯片作為控制系統和采數系統的微處理器。其中控制模塊主要由控制微處理器、電機、天線、GPS模塊、按鍵控制電路和一些基礎電路組成,采集模塊主要由采集微處理器、天線接收機等組成,而上位機主要用于數據處理和存儲。天線的轉臺采用雙軸式跟蹤裝置,我們將之分為方位控制電機和俯仰控制電機兩部分,電機可以正反兩方向自由度轉動[4-5]。方案設計如下圖2所示。

圖2 系統硬件框圖
電機的作用是對控制處理器發出的控制信號進行判斷并做出對應的動作[4](正轉、反轉或者停止)。本文通過調研與研究最后選擇一種改進型的直流電機,即在電機的輪齒處安裝關開式霍爾傳感器來產生反饋信號,實現與控制單片機通信[6-7]。
本文中采用高穩定度高靈敏度MT-285授時GPS定位模塊來獲得太陽位置矢量計算中所要用到的時間和地理位置等信息。太陽望遠鏡跟蹤系統在每次上電時首先讀取存于Flash中的經緯度信息,但如果是首次實驗經緯度信息未存于Flash中則可以使用按鍵功能先獲得經緯度信息,并存入Flash中[8]。經過調試,采用GPS的太陽跟蹤系統能有效的改進傳統的跟蹤方法所積累的誤差、跟蹤精度低等缺點。
采集的環境溫度是作為天線定標時計算天線溫度的輸入值。溫度采集模塊使用了一片溫度傳感器DS18B20。相對于傳統的溫度測量系統,溫度傳感器DS18B20能夠很好的解決引線誤差補償、多點測量切換誤差和放大電路零點漂移誤差等問題,能夠達到較高的測量精度,能夠很好的抗干擾信號。
當天線對準太陽時,由于太陽輻射強度較弱,天線接收機需要將輸出的信號轉換成為電信號,并對信號進行混頻、濾波、放大等一系列的處理,最終將太陽輻射強度表征成為微處理器適合采集的電壓形式,電壓的大小隨著輻射強度正比例變化。微處理器在采集電壓之后傳輸至上位機并經過一系列公式變化后即可得到所需要的太陽輻射數據。太陽活動劇烈時,接收機的輸出的電壓值有可能大于微處理AD采樣的基準電壓,導致電壓信號采集精度下降,輸入的信號過大甚至會燒壞微處理器的IO口。因此,在電路設計時在微處理器的AD轉換電路時增加了集成運算放大器TL082D。
前端處理電路主要是對A3144霍爾開關所輸出的信號進一步加以處理,去掉由于機械、環境因素而產生的干擾以及防止信號突變對單片機及其外圍模塊的損害。主要有低通RC濾波器、光耦電路和整形電路等。這里主要介紹光耦電路和整形電路。其中光耦電路為去除控制執行模塊的電路設計對單片機的影響,增強輸入信號的抗干擾性,反饋信號在進入單片機前最好進行隔離處理,這樣可以防止信號突變而對單片機或者外圍模塊的損害。所以在電路設計時增加了光耦電路,對反饋信號進行隔離,系統選擇的是PC827和PC847光耦芯片。在控制系統中,霍爾傳感器反饋回的信號一般都很好,但是有時候因為某些機械因素或者環境因素而導致輸出的波形邊沿較差,這樣的信號不能直接輸入單片機的I/O口,所以需要利用脈沖整形電路可以對這些信號加以整形。整形電路主要分為兩類,施密特觸發器和單穩態觸發器。施密特觸發電路是一種波形整形電路,當邊沿較差或畸變脈沖進入電路時,其輸出變為方波或脈波輸出。對于霍爾傳感器反饋回的信號,施密特觸發器能夠很好的去掉干擾。而本文中選用的是HEF40106BP反相施密特觸發器。
采集單片機的通信模塊主要分為兩個部分:與控制單片機通信以及和PC機進行通信。其中,與控制單片機通信主要是獲取控制單片機的工作狀態以及觀測地的地理位置,之后將所獲得的信息上傳到PC機上并顯示出來,實現PC機對當前射電望遠鏡系統工作模式的監視;與PC機的通信主要是將采集的溫度、接收機的輸出電壓、控制單片機的工作狀態以及觀測地地理位置上傳到PC機上,主要的實現方式有串口通信和TCP/IP通信。對于RS-485串口通信時最好選擇9600的波特率,則每毫秒能夠傳輸1.2個字節,而通信1幀6個字節,所以RS-485串口通信在9600波特率時的最快傳輸速率是每7.2毫秒一個數據,所以如果對于要存儲時間分辨率為1ms的數據或者小于1ms的數據時,RS-485串口通信要在保證數據的可靠信的前提下傳輸速度顯然不滿足我們的需求了,所以本文引入了TCP通信在保證數據的可靠信下,以提高數據傳輸速度。單片機如果與網絡進行通信需要進行串口轉網絡服務器,本文中選用的是USR-TCP232-T。
本系統的微處理器部分軟件設計均使用C語言在Keil uVision5集成開發環境下開發,其具有良好的界面風格,功能強大,使得代碼開發的效率大大提高。軟件設計從功能上可分為三大部分:下位機跟蹤控制系統、數據采集傳輸系統以及上位機用戶監控軟件設計[9-10]。具體的到各個部分來說,跟蹤控制系統軟件設計包括微處理器系統初始化、接收GPS數據幀并解析、計算得到太陽理論位置對應的方位角和俯仰角、控制天線轉動到指定位置;數據采集傳輸系統包括讀取溫度傳感器DS18B20的溫度數值、采集并處理接收機電壓、向上位機傳輸采集數據;上位機界面包括實時顯示系統工作的相關參數、存儲微處理器發送上來的觀測數據、提供控制按鈕方便用戶手動調整天線位置。
微處理器根據上位機發送的指令確定工作方式,當選擇自動跟蹤時,天線依次進入校零、定標和跟蹤三個狀態。其中當處于初始化狀態和天線校零狀態時,微處理器需要向上位機界面發送工作狀態提示和觀測地經緯度信息;當天線工作于定標狀態時,除了發送工作狀態信息并且需要分別采集溫度傳感器數據和接收機電壓,發送至上位機用作計算太陽輻射的參數;當天線跟蹤狀態開始時,在向上位機發送工作狀態提示后開始一直采集接收機的電壓并發送至上位機界面,直到跟蹤結束。

圖3 系統總設計流程圖
系統中的PC的軟件界面是在Microsoft Visual C++6.0平臺上開發的。用戶軟件界面的設計是為用戶提供一個可視化的監控界面,用戶可以根據界面上工作模式觀察當前系統處于什么工作模式,以便實時了解系統處于什么狀態,以及對采集單片機發送上來的數據信息進行處理、存儲和畫出當前天線溫度曲線圖,以便用戶實時的觀測射電數據。
圖4為室外的太陽射電跟蹤系統,左半圖中的拋物面即是小型拋物面天線,小型拋物面天線下面是兩個轉臺,從上到下分別為俯仰電機和方位電機。系統在方位方向上的跟蹤精度達到0.08度,在俯仰方向上的跟蹤精度達到0.07度。

圖4 射電系統實驗機
如圖5所示是系統一分鐘所存儲時間分辨率為1 ms的射電信號實際觀測數據,即以一分鐘為存儲的時間點,通信時采用TCP進行通信時每分鐘所存儲的射電數據的大小。由于所存儲的數據比較大,所以只選取了2018年3月份中午時分數據。

圖5 部分數據圖
圖中從左到右分別是一分鐘內的第幾個值、時間和天線溫度值。比如:59970 12:00:59:969 1539.62,代表一分鐘內的第59970個值,中午12點00分59秒969毫秒時,太陽的輻射天線溫度值為1539.62 K。從上述數據可以看出射電數據采集模塊以及數據存儲已經可以滿足系統在時間分辨率為1 ms的射電信號實際觀測數據的采集、處理以及存儲。
本文是基于前人的工作研究的基礎上,采用理論和實驗研究相結合的方式,設計了一種基于STM32F103ZET6為主控芯片的太陽射電望遠鏡系統,系統在跟蹤精度上達到0.08度,采數系統上實現1 ms時間分辨率的射電數據采集與儲存,用戶界面可以檢測記錄太陽輻射天線溫度值的變化,實時監控控制系統工作狀態。本文的實驗成果基本滿足太陽射電望遠鏡系統的天線跟蹤和數據采集以及后期的數據處理。