廣州航海高等??茖W校(廣州510725) 李 漢
螺旋槳的直流發電機模擬裝置如圖1所示,圖中 M為船舶推進電動機,G為模擬海船螺旋槳的他勵直流發電機,RL為發電機的負載,B為變速器。為了利用直流發電機模擬海船螺旋槳,發電機應提供的阻轉矩為:

式中 n為推進電動機的轉速 (r/min),GD2為模擬螺旋槳及傳動部件的飛輪矩,為發電機及傳動部件的飛輪矩,K為槳矩常數。由此可見,為了準確調節推進電動機的阻轉矩,要求在一定的時間內精確測量出推進電機的轉速及轉速變化率。
指標如下:測速范圍:3~1500r/min;測速周期:100ms;測速精度:±0.5%;最大轉速變化率:±400r/min/s。

圖1 海船螺旋槳模擬示意圖
為了在電動機低速時仍然能準確地測量轉速,必須處理傳動軸振動帶來的問題。光電編碼器的輸出信號如圖2所示,其中(a)為傳動軸平穩運行時的波形,(b)為傳動軸有徑向振動時的波形。光電編碼器輸出A、B兩相信號,以A相信號為測速脈沖信號,B相信號為參考信號。由圖2(a)可看出,當A相信號的上升沿時刻測得B相信號的電位與A相信號的下降沿時刻測得B相信號的電位不同時,此次脈沖為真實脈沖,反之脈沖為干擾脈沖。具體如下:在A相信號的上升沿時刻測量B相信號的電位 Vu,下降沿時刻測量B相信號的電位 Vd,則
當 Vu≠Vd時,判定本次脈沖為真實脈沖;
當 Vu=Vd時,判定本次脈沖為干擾脈沖。
在測速程序中只對真實脈沖給以計數,而忽略干擾脈沖,這樣在傳動軸出現振動的情況下,使用光電編碼器測速的精度將大大提高。

圖2 光電編碼器輸出波形圖
設定測速周期為 Tc,系統接收到脈沖之后,識別出A相的干擾脈沖,從而決定是否對脈沖進行計數或作為計時開始/結束時刻。測速系統從A相信號真實脈沖的下降沿開始計時,在 Tc期間對A相信號不斷判定輸入脈沖的真實性,如果輸入為真實脈沖,則測速計數器mp加1,如果輸入為干擾脈沖,則測速計數器保持原值不變,直到計時時間到,記錄測速計數器的脈沖數 mp、Tc到達前一個真實脈沖下降沿來臨時刻的實際計時長度 Tn,由此計算出轉速 n。假設計時時鐘頻率為 fc(MHz),則

在傳動軸有振動的情況下,采用如下的方法判定轉向:設置判向計數器 Dr,在A相信號脈沖為真實脈沖的下降沿時刻,測量B相信號的電位 Vd,當 Vd=“1”時,Dr加 1,當 Vd=“0”時,Dr減 1,在一個測速周期 Tc內
Dr> 0,則判為正轉;
Dr <0,則判為反轉。
判向計數器 Dr必須在測速周期開始時清零。這種判向的方法的好處是在一個測速周期內記錄A相信號超前于B相信號的脈沖次數來判斷轉向,不會因為幾次干擾造成判向失誤,所以抗振動的性能較好。
測量轉速之后,為了平滑并求取轉速變化率,使用最優二階濾波器。輸入為初次測速 r,輸出為轉速 n和轉速變化率n˙,則濾波器的狀態方程為

本系統采用PHILIPS公司生產的基于ARM7TDMI-S內核的32位嵌入式處理器LPC2114,該處理器具有豐富的片內資源,如2個定時器、I2C接口、SPI接口、2個UART接口、PWM、實時時鐘RTC、看門狗、A/D轉換器、多路中斷系統和數量較大的GPIO,給用戶系統設計帶來較大方便。測速系統硬件電路如圖3所示,由信號輸入電路、按鍵和LED顯示電路、復位和電源等部分組成。

圖3 測速系統硬件電路圖
光電編碼器輸出A、B相信號經施密特觸發器整形之后,分別輸入到LPC2114的P0.10端和P0.11端,信號處理電路非常簡單,無需復雜的硬件電路,抗干擾和脈沖計數都有軟件完成。
顯示電路有兩部分,一部分采用發光二極管,分別顯示運行、正轉和反轉指示信號;另一部分采用8個數碼管,用于顯示測速的結果。發光二極管直接由 LPC2114 的 GPIO 端口 P0.4、P0.5、P0.6驅動,而8個數碼管則通過LED與鍵盤驅動芯片ZLG7290動態驅動,SegA~H端輸出顯示碼,它們通過220!電阻與數碼管的a~h連接,Dig0~7端輸出位選碼,分兩組,第一組Dig0~3與低4位數碼管C0~C3連接,第二組Dig4~7與高4位數碼管C0~C3連接。ZLG7290通過I2C接口與LPC2114連接,具有獨立的晶振電路(6MHz),其復位信號由芯片SP708S提供。
系統采用兩個控制按鍵,一個是開始(START)按鍵,另一個是停止(STOP)按鍵。當START按下時系統開始工作,同時運行指示燈亮,而STOP按下后系統將停止測速,運行指示燈滅。
LPC2114需要兩種電壓,+3.3V 和 +1.8V,同時,邏輯電路和編碼器還需要+5V的直流電源,所以電源電路需要通過3種電壓。使用三端穩壓電路7805、LM11173-3.3和 LM11173-1.8可提供系統所需的電源。為了提高系統的可靠性,復位電路使用專用芯片SP708S。SP708S同時向LPC2114和ZLG7290提供復位信號。
LPC2114內部具有兩個32位定時器-定時器0和定時器1,分別具有3路和4路32位的捕獲通道,各有4個匹配寄存器,僅使用一個定時器就完成測速周期定時和測速的要求,這里選用定時器1。編碼器A相脈沖信號從P0.10端口輸入,測速系統需要在A相信號下降沿和上升沿時刻能夠產生中斷并且捕獲該時刻的定時值,因此 P0.10 設置為 CAP1.0。B 相脈沖信號從P0.11端口輸入,因B相信號需要檢測電位,故P0.11設置為GPIO,方向設置為I。定時器C語言初始化程序如下:

測速系統通過I2C接口與ZLG7290連接,管理按鍵和顯示電路需要將P0.2設置為SCL,P0.3設置為SDA,才能使用I2C接口。I2C接口C語言初始化程序如下:

測速系統的三個發光二極管由端口 P0.4、P0.5、P0.6 控制,故P0.4、P0.5、P0.6 應設置為 GPIO,方向為 O。
系統所用宏定義如下:

初始化程序如下:

抗振動測速和判向主要由定時器1的中斷程序完成,時序圖如圖4所示。圖中測速周期0.1s定時由定時器的匹配寄存器MR0產生,MR0配置為匹配時中斷并且復位,因此,定時器TC的值在0~110591之間循環,每次循環產生一次中斷。中斷時記錄編碼器A相信號真實脈沖計數器mp的值、判向計數器Dr的值、mp個真實脈沖的計時長度Tn,由這些數據可計算出轉速和判斷轉向。在中斷程序中計算轉速、判斷轉向和濾波會導致中斷程序執行時間過長,為了避免這種情況,使用聯絡標志位bPro。當測速周期結束時 bPro=“1”,主程序檢測到 bPro為“1”則由 mp、Dr、Tn 計算轉速、判斷轉向并進行濾波處理,求出平滑后的轉速和轉速變化率,處理完畢bPro清零。這樣將計算轉速、判斷轉向和濾波的工作交給主程序完成,降低中斷程序的負擔。為了重新測速,在記錄A相脈沖數計數器mp、判向計數器Dr的值之后,mp、Dr應清零。采用標志位bST來識別是否需要記錄脈沖的初值。當測速周期開始時,bST=“1”,在此條件下檢測到A相真實脈沖下降沿,則記錄CAP1.0捕獲的計時值(用寄存器Tn0保存)作為測速脈沖開始時刻,同時bST復位,進入正常脈沖計數過程。在正常脈沖計數過程中,CAP1.0不斷捕獲A相信號邊緣的計時值,但只有真實脈沖的下降沿所捕獲的計時值才用寄存器Tn保存下來,同時對A相信號的真實脈沖個數進行計數,保存于計數器mp中;檢測A相超前于B相的周期數并保存于判向計數器Dr中。到測速周期結束時,Tn保存的值就是真實脈沖計時的終值,此值減去初值Tn0,得到mp的真實脈沖的計時長度Tn(即Tn←Tn-Tn0)。中斷程序和主程序的流程圖分別如圖5、6所示。

圖4 抗振動測速判向時序圖
本系統使用槽數為500的光電編碼器,32位脈沖計數器,在0.1s測速周期內能檢測到的最低轉速為


圖5 中斷程序流程圖
經過測算,在CPU頻率為44.2368MHz的情況下,定時器中斷程序在一個測速周期內的平均執行時間不超過3!s(考慮執行中斷延時),如果系統在一個測速周期內20%的時間執行中斷程序,并且電機高速時運行平穩,光電編碼器的干擾脈沖極少,在不考慮干擾的情況下,一個脈沖產生兩次中斷,則最高轉速可達

圖6 主程序流程圖

可見,本程序能夠滿足系統測速范圍的要求。
測速系統的測試曲線如圖7所示,其中(a)(b)分別是使用非抗振動程序和抗振動程序測量結果 (設定轉速為 5.6r/min),(c)為電機由靜止加速到1200r/min的過程曲線,1為測速系統初始測速曲線,2為經濾波處理之后的轉速曲線,3為轉速變化率曲線。
(1)在低速轉軸振動條件下(設定轉速為5.6r/min),采用非抗振動測速程序測量結果為17.1r/min,結果遠遠偏離設定值,且測向不穩;采用抗振動測速程序測量結果為5.65r/min,非常接近設定轉速,同時測向準確,可見采用抗振動程序測速是有效的。
(2)由圖(a)和圖(b)可見,經濾波后轉速曲線較為平滑,使用最佳二階濾波器取得較好效果。
(3)圖(c)分為兩段,第一段電動機在40個測速周期內將轉速由靜止加速到800r/min,轉速變化率為200r/min/s,與實測結果基本相符;第二段在25個測速周期內將電動機加速到1200r/min,轉速變化率為160r/min/s,與實測結果基本相符。
(4)最佳二階濾波器具有較好的快速性。
本文在提出一種光電編碼器的抗振動測速和判向方法的基礎上,研制以32位嵌入式處理器(LPC2114)為控制器的精確測速系統。由于ARM7處理器LPC2114具有豐富的片內資源,在用戶系統的硬件和軟件設計中都顯示出較好的靈活性和簡便性。同時,32位數據寬度和流水線設計帶來測量的高精度和程序運行的快速性,給測控系統提供了新的活力和用途。本系統設計已應用于海船螺旋槳直流發電機模擬裝置中,證實在轉速和轉速變化率測量方面具有較高的精度,滿足該裝置的技術要求,取得了較好的實用效果。

圖7 測速系統的測試曲線圖
[1]宋剛等.基于普通編碼器的高精度測速方法[D].上海交通大學學報,2002,8:1169 ~1172
[2]周立功,編著.ARM微控制器基礎與實踐[M].北京:北京航空航天大學出版社,2005
[3]沈建華,譯.ARM嵌入式系統開發-軟件設計與優化[M].北京:北京航空航天大學出版社,2005