陶 知,陳偉民,朱慶生,周小軍,程 鐘
(1. 中國科學院大學,北京 100049;2. 中國科學院南京天文儀器研制中心,江蘇 南京 210042;3. 南京中科天文儀器有限公司,江蘇 南京 210042)
云南天文臺太陽色球望遠鏡電控系統(tǒng)的改造*
陶 知1,2,陳偉民2,3,朱慶生2,3,周小軍2,3,程 鐘3
(1. 中國科學院大學,北京 100049;2. 中國科學院南京天文儀器研制中心,江蘇 南京 210042;3. 南京中科天文儀器有限公司,江蘇 南京 210042)
用數(shù)字信號處理器(Digital Signal Processors, DSP)控制云南天文臺太陽色球望遠鏡赤經(jīng)軸、赤緯軸及鏡蓋的步進電機,并處理手控盒、編碼器、零點、限位等信號,高速端升降速平滑,避免了電機失步現(xiàn)象,低速端速度細分精度高,可實現(xiàn)對太陽的長時間較高精度跟蹤。使用STC5204AD單片機與數(shù)字信號處理器通信,實現(xiàn)編碼器計數(shù)值及系統(tǒng)狀態(tài)的斷電記憶功能。對數(shù)字信號處理器與單片機控制伺服系統(tǒng)進行了比較,證明數(shù)字信號處理器系統(tǒng)的性能更為優(yōu)越。
太陽望遠鏡;數(shù)字信號處理器DSP;伺服系統(tǒng)
伺服系統(tǒng)的主要任務是按控制命令的要求,對功率進行放大、變換與調(diào)控等處理,使驅(qū)動裝置輸出的力矩、速度和位置控制的非常靈活方便[1]。在太陽望遠鏡伺服系統(tǒng)中運用DSP2812實現(xiàn)對望遠鏡轉(zhuǎn)速與位置的控制,能夠較好實現(xiàn)對太陽的自動指向與自動跟蹤。同時運用STC5204AD單片機內(nèi)部的EEPROM模塊實現(xiàn)記憶功能,在斷電瞬間保存編碼器的計數(shù)值,下次使用不必重新過零,提高了易用性。
數(shù)字信號處理器自20世紀80年代誕生至今得到了飛速發(fā)展,成為目前最有發(fā)展?jié)摿Φ募夹g、產(chǎn)業(yè)和市場之一。TMS320C/F2812是TI公司主要針對工業(yè)控制推出的C2000系列中應用最為廣泛的一款數(shù)字信號處理器,也是當今世界上最先進的32位定點數(shù)字信號處理器芯片。它不但運行速度高,處理功能強大,還具有豐富的片內(nèi)外圍設備,便于接口和模塊化設計,性價比極高。
DSP2812擁有EVA、EVB兩個事件管理器和配套的16通道12位AD數(shù)據(jù)采集,使其在電機控制上得心應手。再加上豐富的外設接口,如CAN、SCI等,在工控領域占有重要地位[2]。本設計就是應用這些優(yōu)點在其與外圍電路的共同作用下實現(xiàn)對太陽望遠鏡系統(tǒng)的控制。
本設計的目標是完成對云南天文臺太陽色球望遠鏡的改造。該望遠鏡從出廠至今已近50年,赤經(jīng)軸為齒輪傳動,赤緯軸為絲桿傳動,赤經(jīng)軸采用的是110雙出軸步進電機——110BY250A,速比為2130,赤緯軸采用的是86雙出軸步進電機——34HS300B,速比為800。鏡蓋采用的是42步進電機,速比為30。由于原來的望遠鏡控制系統(tǒng)老舊,精度不高,誤差大,功能單一,故本次改造中運用數(shù)字信號處理器設計一套新的望遠鏡控制系統(tǒng),赤經(jīng)赤緯兩軸均配置1200線編碼器,完成對太陽的跟蹤及指向。
太陽望遠鏡控制系統(tǒng)采用微機與數(shù)字信號處理器兩級控制方式,數(shù)字信號處理器控制赤經(jīng)軸赤緯軸和鏡蓋的運動,及處理手控盒操作反饋,編碼器數(shù)據(jù)采集,零點和限位等信號的檢測。計算機計算太陽的位置,對太陽進行指向、跟蹤,處理誤差信號等。微機與數(shù)字信號處理器之間用串口進行通訊,用數(shù)字信號處理器的串口a連接計算機,同時用串口b與單片機(即記憶電路)進行通信。
系統(tǒng)的整體設計框圖如圖1,具體軟件流程圖如圖2。
圖1 系統(tǒng)設計框圖
Fig.1 Designed block diagram of the control system
同時,在記憶電路部分,數(shù)字信號處理器通過串口b不斷地將當前望遠鏡的位置狀態(tài)發(fā)送給STC5204單片機,單片機將數(shù)據(jù)存儲到內(nèi)部的RAM中。當數(shù)字信號處理器檢測到電壓下降時,單片機將最后一次接收的數(shù)據(jù)存儲到內(nèi)部的EEPROM中。下次上電時,單片機將保存的數(shù)據(jù)通過串口b發(fā)送給數(shù)字信號處理器,數(shù)字信號處理器接收完數(shù)據(jù)后再開始執(zhí)行其他命令。這樣便實現(xiàn)了系統(tǒng)的記憶功能。
望遠鏡的跟蹤與指向最重要的就是赤經(jīng)軸及赤緯軸的運動,有快、慢、微、恒四檔速度,其中快動為1°/s,慢動為4′/s。太陽望遠鏡恒動時赤經(jīng)軸的速度雖微有變化,但仍然接近15″/s,故恒動速度仍定為15″/s[3],正向微動比恒動快5″/s,即20″/s,反向微動比恒動慢5″/s,即10″/s,但方向仍為正轉(zhuǎn),保證跟蹤過程中齒輪始終緊貼一個面,避免齒隙誤差。赤緯軸微動速度±8″/s。
要想使赤經(jīng)赤緯軸運動,須給電機驅(qū)動器適當?shù)拿}沖。本系統(tǒng)使用數(shù)字信號處理器的PWM模塊產(chǎn)生脈沖控制步進電機運動。
圖2 軟件設計流程圖
Fig.2 Designed flowchart of the software for telescope control
PWM波形的設計中,赤經(jīng)軸采用定時器T1,赤緯采用定時器T3。將兩個定時器設置為模式2——連續(xù)增模式,即將定時器T1的控制寄存器T1CON的TMODE1和TMODE0設置為10。通過各自每一檔的速度選取合適的輸入時鐘預定標因子P,保證每一檔速度的定時器周期寄存器T1PR/T3PR值在允許范圍內(nèi)。占空比設為50%,方便定時器比較寄存器T1CMPR/T3CMPR計數(shù)[4]。
設望遠鏡要達到的速度為m°/s,電機速比為n,電機為10細分。則電機的頻率為:
(1)
其中1.8°為電機步進角。則可算出赤經(jīng)軸每檔速度的頻率如表1。
表1 赤經(jīng)軸的頻率Table 1 Frequencies of the rotations of the right-ascension axis in various speed modes
當T1CNT的計數(shù)方式為連續(xù)增計數(shù)時,T1PWM引腳輸出不對稱的PWM波形。當T1CNT的值計數(shù)到和T1CMPR的值相等時,發(fā)生比較匹配事件。如果T1CON的第1位定時器比較使能位TECMPR為1,即定時器比較操作被使能,且GPTCONA的第6位比較輸出使能位TCMPOE為1,同時GPTCONA下的T1PIN引腳輸出極性為高電平或者低電平的話,T1PWM就會輸出不對稱的PWM波形,如圖3。
圖3 T1產(chǎn)生非對稱的PWM波形
Fig.3 Asymmetric PWM waveform generated to control step motors
此時的頻率為:
(2)
本設計中高速時鐘HSPCLK為75×106Hz,定時器T1的預定標因子P設為6,再根據(jù)速度可得每檔速度的T1PR。為方便計算,本設計PWM的占空比設為50%,這樣T1CMPR的值剛好為T1PR的一半。T3PR/T3CMPR同理可得。
望遠鏡快速時,電機頻率達11×103Hz以上。若瞬間將速度由0 Hz升至11×103Hz,由于力矩不足必將導致電機失步,破壞系統(tǒng)的穩(wěn)定性。為保證電機更好的性能,需要用升降速來實現(xiàn)快動。由步進電機的動態(tài)特性知,理想的升速曲線一般為指數(shù)曲線,在數(shù)字化系統(tǒng)中,一般是通過設置n檔速度的臺階,使其盡可能符合指數(shù)曲線規(guī)律,如圖4、5[5]。
由曲線可以看出,其斜率是由大變小的,又由于斜率k的計算方法為:
(3)
所以,在使Δf逐漸變小的同時,還要保證Δt不變,即每檔頻率的持續(xù)時間不變,這樣才能達到斜率k逐漸變小的目的。
本設計運用指數(shù)函數(shù)計算每一檔的頻率:
f=fmax(1-e-at)(Hz)
(4)
圖4 理想曲線Fig.4 Ideal curve of increasing the step-motor frequency
圖5 實際曲線Fig.5 Actual curve of increasing the step-motor frequency
式中,fmax為最大頻率11 833.3 Hz;a為參數(shù)。設計目標中升(降)速過程為2.5 s,若參數(shù)a為1,將t=2.5 s代入式中得到f約為11 000 Hz,基本達到最大頻率,故為方便計算,將a取為1。本設計取了100個臺階,將時間2.5 s均分100檔,每一檔代入(4)式,得到每一檔的頻率f,然后代入(2)式得到每檔頻率的T1PR和T1CMPR。若其中某幾檔的頻率相差不大,則可合并。同時定義兩個數(shù)組,將T1PR和T1CMPR的值放入其中,程序中依次調(diào)用。
在實際使用過程中,往往在選擇快動后,在升速的臺階未全部走完便發(fā)現(xiàn)到達預定位置,不必走完剩下的升速臺階了,這時需要暫停升速,轉(zhuǎn)而降速直至恒動,即實現(xiàn)快動的點動。故在升速的程序中調(diào)用每個臺階前先判斷此時手控盒是否還在按住升速的按鈕或者此時有沒有通過串口發(fā)送停止命令,再決定是否走完剩下的臺階。具體邏輯程序見圖6[6]。
圖6 升速程序
Fig.6 Program of increasing the step-motor frequency
對于單片機和數(shù)字信號處理器兩者的性能,將從頻率和字長兩個方面進行對比。
(1)晶振頻率:給DSP2812提供時基的是頻率為30×106Hz的晶振。當鎖相環(huán)PLL設置成最大(10倍頻)時,即PLLCR的DIV位被設置成最大值 1010的時候,CPU的時鐘頻率將達到150×106Hz,是DSP2812所能支持的最大時鐘頻率。而平時用的51單片機等的晶振頻率一般為10×106Hz,遠遠低于150×106Hz。
(2)計數(shù)器字長:DSP2812是32位定點數(shù)字信號處理器芯片,計數(shù)器寄存器為16位,而單片機一般只有8位。
頻率精度對比:由于兩者的頻率分別為150×106Hz和10×106Hz,這使得兩者的頻率精度相差一個數(shù)量級之多。
升降平滑性對比:在單片機實現(xiàn)升降速的時候,往往計數(shù)器變化1,頻率變化很大,不能很好地擬合所需的指數(shù)曲線。而用數(shù)字信號處理器擬合時,由于數(shù)字信號處理器頻率更高,字長更長,使得計數(shù)器變化1時,頻率變化可以很小,這樣得到的曲線較之更為平滑,系統(tǒng)更為平穩(wěn)[7]。
由于計數(shù)器字長的限制,T1PR產(chǎn)生的頻率與理論值存在字長誤差。太陽望遠鏡以恒動速度跟蹤太陽,故恒動的速度直接影響著跟蹤的好壞。算出恒動時T1PR為0x5CD9,即23769,代入返回得到此刻望遠鏡每秒鐘轉(zhuǎn)過的角度約為14.998 5″/s,這樣累計5 min得到的理論誤差:
(15-14.998 5)×60×5=0.45″
(5)
可以看出,由于數(shù)字信號處理器的字長有限所帶來的理論誤差在合理范圍內(nèi),足以保證其跟蹤精度。
對赤經(jīng)軸進行10次快動測試得到,赤經(jīng)軸頻率由0 Hz升至11×103Hz基本上在2.5 s左右,升速過程平滑,聲音可以接受,符合設計要求。
在2012年6月9日10:00~15:00這300 min內(nèi)對望遠鏡進行自動指向測試,統(tǒng)計了20次的指向誤差,見圖7。由圖可以看出,誤差基本上分布在±3′左右,符合設計要求[8]。
圖7 太陽指向誤差
Fig.7 Errors in the pointings toward the sun
在2012年6月9日 14:45~14:50這300 s內(nèi)取樣1 433個點,分別采集了望遠鏡位置和太陽當前位置的赤經(jīng)軸數(shù)據(jù),計算了恒動時5 min內(nèi)兩者之差,換算成角秒,誤差曲線如圖8。由圖可以看出,誤差大體上均勻分布在±10″之間,計算出其均方根誤差為3.735 654 36″,精度符合設計要求。
圖8 恒動誤差曲線
Fig.8 Curve for the errors in the constant rotation of the telescope
在2012年6月10日 14:30~14:35這300 s內(nèi)取樣1 426個點,分別采集了望遠鏡位置和太陽當前位置的赤經(jīng)軸數(shù)據(jù),計算了跟蹤時5 min內(nèi)兩者之差,換算成角秒,誤差曲線如圖9。由圖可以看出,誤差大體上均勻分布在±2″之間,計算出其均方根誤差為1.348 028″。由于望遠鏡比較老舊,且改造的經(jīng)費有限,制定的技術指標不是很高,為0.5‰,而5 min內(nèi)太陽轉(zhuǎn)過的角度約為4 500″,1.348 028/4 500≈0.3‰,精度符合設計要求。
圖9 跟蹤誤差曲線
Fig.9 Curve for the telescope-tracking errors
由于赤緯變化較小,本設計沒有進行跟蹤。預留了自動導行接口,若以后添加自動導行模塊即可進行跟蹤。
本設計使用數(shù)字信號處理器實現(xiàn)太陽望遠鏡控制系統(tǒng),相比較之前使用單片機控制,有諸多優(yōu)點。升降速穩(wěn)定,芯片接口多(有2路SCI、1路SPI、1路McBSP、1路eCAN),部分管腳功能可以復用(有56個可獨立編程的GPIO引腳),內(nèi)部有兩個事件管理器模塊(每個包括6路PWM/CMP、2路QEP、3路CAP和2路16位定時器),AD轉(zhuǎn)換模塊(16路12位精度的ADC),還有3個獨立的32位CPU定時器,不必在電腦上配插IO卡,也不再需要額外的AD轉(zhuǎn)換芯片、編碼器數(shù)據(jù)采集芯片等,一塊芯片實現(xiàn)了過去幾塊芯片的功能。
在結構化設計方面,數(shù)字信號處理器一個工程下可以有諸多子文件,編寫查閱起來簡便易行,而單片機一個工程在編譯時只能編譯一個子文件使得程序冗長,查閱起來不方便。
[1] 郗小鵬, 馮立強. 步進電機跟蹤伺服系統(tǒng)的設計[J]. 現(xiàn)代電子技術, 2011(23): 121-122.
Xi Xiaopeng, Feng Liqiang. Design of tracking servo system of stepper motor[J]. Modern Electronics Technique, 2011(23): 121-122.
[2] 顧衛(wèi)鋼. 手把手教你學DSP: 基于TMS320X281x[M]. 北京: 北京航空航天大學出版社, 2010.
[3] 王斌, 張珣. 太陽方位的自動獲取及實時跟蹤系統(tǒng)的設計[J].天文研究與技術——國家天文臺臺刊, 2011, 8(1): 52-57.
Wang Bin, Zhang Xun, Automatic real-time solar tracking system[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2011, 8(1): 52-57.
[4] 張寶發(fā), 趙輝, 岳有軍. 基于DSP的步進電機控制系統(tǒng)設計[J]. 儀表技術與傳感器, 2010, 08: 63-65+81.
Zhang Baofa, Zhao Hui, Yue Youjun. Designing of stepper motor control system based on DSP[J]. Instrument Technique and Sensor, 2010, 08: 63-65+81.
[5] Overmars A H, Toncich D J. Application of DSP technology to closed-position-loop servo drive systems [J]. International Journal of Advanced Manufacturing Technology, 1996, 11(1): 27-33.
[6] Pan B, Jiang Z, Jiang Q. Study of Control System of Brushless DC Motor in Mobile Robot Based on DSP[C]. 2010 International Conference on Electrical and Control Engineering. Wuhan, 2010: 2017-2019.
[7] 馬錦, 顧伯忠. 地平式望遠鏡軸系誤差對指向精度和跟蹤精度的影響[J].天文研究與技術——國家天文臺臺刊, 2011, 8(2): 132-135.
Ma Jin, Gu Bozhong. Effects of the shaft error of an altazimuth telescope on pointing and tracking accuracies[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2011, 8(2): 132-135.
[8] 朱慶生, 陳偉民, 吳金虎. 衛(wèi)星激光測距望遠鏡的指向改正[J].天文研究與技術——國家天文臺臺刊, 2011, 8(3): 268-271.
Zhu Qingsheng, Chen Weimin, Wu Jinhu. The correction of pointing of a 1m SLR telescope[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2011, 8(3): 268-271.
TheTransformationoftheControlSystemoftheYNAOSolarChromosphereTelescope
Tao Zhi1,2, Chen Weimin2,3, Zhu Qingsheng2,3, Zhou Xiaojun2,3, Cheng Zhong3
(1. University of Chinese Academy of Sciences, Beijing 100049, China, Email: kongxinshu0411@sina.com;2. Nanjing Astronomical-Instrument Research Center of Chinese Academy of Sciences, Nanjing 210042, China;3. Nanjing CAS Corporation Limited of Astronomical Instruments, Nanjing 210042, China)
In this paper we describe a control system based on Digital Signal Processors (DSP) to control the stepper motors of the right-ascension axis, the declination axis, and the mirror cover of the YNAO (Yunnan Observatory) Solar Chromosphere Telescope. This system can process signals of the manual-control box, encoder, zero-point, positioning limits, and so on to appropriately set the speed and displacement of the telescope. Considering that stability is essential to a solar-telescope servo system we allow this system to control acceleration or deceleration in fast moving the telescope. The use of DSP in the control makes changes of high motor speeds smooth to avoid loss of synchronization of a step motor. The system with DSP brings high-precision control of low-speed motions allowing the telescope to track the sun for a long time with a high accuracy. For convenience the system includes the manual-control mode, so that the pointing and motion of the telescope can be controlled through a computer in both automatic and manual modes. The system uses communications between an STC5204AD MCU and DSP to realize the power-off memory of encoder count values and system states. We present the flowchart of the system and details of the implementation of the servo control. We also compare DSP-based and MCU-based servo systems and show that a DSP-based system is superior in performance.
Solar telescope; Digital Signal Processors (DSP); Servo system
CN53-1189/PISSN1672-7673
P111.41
A
1672-7673(2013)04-0420-07
2012-10-12;修定日期:2012-11-10
陶 知,女,碩士. 研究方向:自動控制. Email: kongxinshu0411@sina.com