厲 孟,蔡宗舉,阮 俊
基于DSP+FPGA的船用推進(jìn)電機(jī)轉(zhuǎn)速檢測(cè)方法
厲 孟1,蔡宗舉2,阮 俊3
(1. 海軍駐北京作戰(zhàn)系統(tǒng)軍事代表室,北京 100094;2. 中國(guó)船舶工業(yè)系統(tǒng)工程研究院,北京 100094;3. 江蘇大全凱帆電器股份有限公司,南京212211)
采用M/T法轉(zhuǎn)速測(cè)量原理,提出了一種基于DSP+FPGA的轉(zhuǎn)速測(cè)量方法。FPGA檢測(cè)光電編碼器輸出脈沖,根據(jù)正交編碼特性判斷旋轉(zhuǎn)方向,同時(shí)對(duì)信號(hào)四倍頻處理,提高了轉(zhuǎn)速檢測(cè)精度。FPGA在設(shè)定的控制周期內(nèi)完成轉(zhuǎn)速檢測(cè),產(chǎn)生DSP數(shù)據(jù)讀取中斷,DSP通過地址線和數(shù)據(jù)線讀取FPGA存儲(chǔ)的轉(zhuǎn)速信息并進(jìn)行轉(zhuǎn)速計(jì)算。仿真和試驗(yàn)驗(yàn)證了 FPGA轉(zhuǎn)速檢測(cè)程序的準(zhǔn)確性。該檢測(cè)程序測(cè)速精度高,低速檢測(cè)性能好,適用于低速大功率的船用電力推進(jìn)轉(zhuǎn)速檢測(cè),并可直接作為轉(zhuǎn)速檢測(cè)模塊應(yīng)用于控制系統(tǒng)。
FPGA DSP 推進(jìn)電機(jī) 轉(zhuǎn)速檢測(cè)
交流電機(jī)的控制技術(shù)主要有兩類:一類是基于穩(wěn)態(tài)數(shù)學(xué)模型的標(biāo)量控制技術(shù);另一類是基于動(dòng)態(tài)數(shù)學(xué)模型的矢量控制技術(shù)。標(biāo)量控制動(dòng)態(tài)性能較差,對(duì)轉(zhuǎn)速檢測(cè)也沒有特別的要求。矢量控制采用反饋控制原理,控制性能優(yōu)越,其反饋轉(zhuǎn)速檢測(cè)是影響矢量控制系統(tǒng)性能一個(gè)非常重要的環(huán)節(jié)。而轉(zhuǎn)速檢測(cè)的精確度和實(shí)時(shí)性不僅取決于光電編碼器的可靠性和精度,更取決于編碼器信號(hào)的處理方法[1-3]。
對(duì)于一般的控制場(chǎng)合,選用高精度的轉(zhuǎn)速傳感器即可實(shí)現(xiàn)高精度控制。但對(duì)于船用推進(jìn)電機(jī)而言,其轉(zhuǎn)速低,轉(zhuǎn)軸振動(dòng)大,采用高精度的轉(zhuǎn)速傳感器雖然能實(shí)現(xiàn)高分辨率的轉(zhuǎn)速測(cè)量,但其對(duì)于轉(zhuǎn)軸的振動(dòng)過于敏感,容易產(chǎn)生干擾,從而影響控制性能。因此,如何在不提高傳感器精度的情況下,通過軟件實(shí)現(xiàn)高精度的轉(zhuǎn)速測(cè)量,同時(shí)保證轉(zhuǎn)速檢測(cè)的實(shí)時(shí)性是船用推進(jìn)電機(jī)轉(zhuǎn)速檢測(cè)的一個(gè)難點(diǎn)問題[4]。
本文采用1024脈沖的轉(zhuǎn)速傳感器,通過軟件達(dá)到了高于1 rpm的轉(zhuǎn)速分辨率。
速度檢測(cè)以轉(zhuǎn)速檢測(cè)編碼器輸出的兩路正交編碼脈沖信號(hào)A、B為依據(jù),計(jì)算轉(zhuǎn)向和轉(zhuǎn)速。目前常用的脈沖測(cè)速算法主要有3種:測(cè)頻法(M法),該方法適用于較高轉(zhuǎn)速[5];測(cè)周期法(T法),該方法適用于較低轉(zhuǎn)速;同時(shí)檢測(cè)頻率和周期(M-T法),該方法結(jié)合了M法、T法各自的特點(diǎn),同時(shí)測(cè)量檢測(cè)時(shí)間和在此時(shí)間內(nèi)脈沖發(fā)生器發(fā)出的脈沖個(gè)數(shù)[6-8]。以上方法具體原理如下:
1)M法轉(zhuǎn)速測(cè)量
其基本原理是,在一定的測(cè)量時(shí)間ΔT內(nèi),若光電編碼器輸出的脈沖信號(hào)數(shù)為M1,則電機(jī)轉(zhuǎn)速可表示為:

其中,N為電機(jī)旋轉(zhuǎn)一周輸出的脈沖個(gè)數(shù)。當(dāng)測(cè)量時(shí)間固定時(shí),通過統(tǒng)計(jì)光電編碼器輸出脈沖數(shù),就可以得到這段時(shí)間內(nèi)電機(jī)轉(zhuǎn)子轉(zhuǎn)過的角度,再除以時(shí)間就是轉(zhuǎn)子轉(zhuǎn)速。
2)T法轉(zhuǎn)速測(cè)量
其基本原理是,測(cè)量?jī)蓚€(gè)相鄰脈沖之間的間隔時(shí)間,而兩個(gè)相鄰脈沖的角度已知,從而可以計(jì)算出實(shí)際轉(zhuǎn)速。采用該方法測(cè)量時(shí)間時(shí),以頻率為f0的時(shí)鐘為基準(zhǔn),在編碼器輸出脈沖的上升沿開始計(jì)數(shù),在下一個(gè)上升沿停止計(jì)數(shù),令計(jì)數(shù)值為M2,則電機(jī)轉(zhuǎn)速可表示為:

其中N為電機(jī)旋轉(zhuǎn)一周輸出的脈沖個(gè)數(shù)。M2/f0可以理解為電機(jī)轉(zhuǎn)一個(gè)脈沖需要的時(shí)間,則NM2/f0為電機(jī)轉(zhuǎn)一圈需要的時(shí)間,轉(zhuǎn)速n的單位為r/min。
3)M/T法轉(zhuǎn)速測(cè)量
M/T法測(cè)轉(zhuǎn)速是以上兩種方法的綜合,其基本原理是通過以頻率為f0的時(shí)鐘為基準(zhǔn),產(chǎn)生檢測(cè)時(shí)間長(zhǎng)度ΔT的測(cè)量周期,令該周期的時(shí)鐘計(jì)數(shù)值為M2,同時(shí)在該檢測(cè)時(shí)間內(nèi)對(duì)編碼器輸出脈沖進(jìn)行計(jì)數(shù),令周期內(nèi)編碼器計(jì)數(shù)值為M1,則轉(zhuǎn)速可表示為:

其中N為電機(jī)旋轉(zhuǎn)一周輸出的脈沖個(gè)數(shù)。M1/N可以理解為測(cè)量周期內(nèi)旋轉(zhuǎn)的圈數(shù),M2/f0則為測(cè)量周期時(shí)間,兩者之商經(jīng)過單位換算即為轉(zhuǎn)速。
以上3種方法是目前應(yīng)用比較廣泛的轉(zhuǎn)速測(cè)量法,M法在低速時(shí)分辨率較低,T法在高速時(shí)分辨率不高,M/T法在高低速均具有較好的分辨率,誤差小、精度高,但為保證結(jié)果的準(zhǔn)確性,在低速時(shí)需要較長(zhǎng)的檢測(cè)時(shí)間,無法滿足轉(zhuǎn)速檢測(cè)系統(tǒng)的動(dòng)態(tài)指標(biāo),因此本文在M/T法的基礎(chǔ)上做了較小的改動(dòng),低速運(yùn)行時(shí),若超過一定檢測(cè)時(shí)間還沒有檢測(cè)到編碼器脈沖,即認(rèn)為當(dāng)前周期脈沖檢測(cè)結(jié)束,這樣雖然帶來了一定誤差,卻能保證轉(zhuǎn)速檢測(cè)系統(tǒng)的動(dòng)態(tài)性能。
本設(shè)計(jì)采用的轉(zhuǎn)速編碼器對(duì)象分辨率為1024P/r,即該轉(zhuǎn)速編碼器旋轉(zhuǎn)一周將產(chǎn)生兩路1024個(gè)脈沖的A、B信號(hào),兩路信號(hào)互相正交。負(fù)責(zé)轉(zhuǎn)速檢測(cè)的FPGA采用ALTERA公司的2C70, DSP采 用 TI公 司 的 TMS320F28335。TMS320F28335是TI公司最新推出的浮點(diǎn)控制芯片,具有150 MHz的高速處理能力,具備32位浮點(diǎn)處理單元,DSP從FPGA讀取轉(zhuǎn)速信息用于電機(jī)閉環(huán)控制。
2.1 編碼信號(hào)的倍頻處理
編碼信號(hào)輸出為兩路互相正交的信號(hào)如圖 1編碼信號(hào)頻率處理仿真圖仿真圖中信號(hào)qep_a、qep_b。倍頻信號(hào)產(chǎn)生原理為:分別提取qep_a的上升沿和下降沿,在上升沿和下降沿分別產(chǎn)生一個(gè)時(shí)鐘周期的脈沖,提取qep_b的上升沿和下降沿,也在上升沿和下降沿分別產(chǎn)生一個(gè)時(shí)鐘周期的脈沖,將兩路脈沖信號(hào)進(jìn)行或運(yùn)算,得到圖中的a信號(hào)。
圖中信號(hào)a為所產(chǎn)生的倍頻信號(hào),該信號(hào)的上升沿均在qep_a、qep_b的跳變沿產(chǎn)生,高電平持續(xù)時(shí)間為一個(gè)時(shí)鐘周期,信號(hào)頻率為編碼信號(hào)的4倍,實(shí)現(xiàn)了編碼器脈沖的4倍頻處理。
2.2 轉(zhuǎn)向判斷

圖 1 編碼信號(hào)頻率處理仿真圖

表 1 轉(zhuǎn)向邏輯判斷
編碼器信號(hào)進(jìn)行倍頻處理后,必須在qep_a、qep_b的每個(gè)跳變沿進(jìn)行轉(zhuǎn)速判斷才能達(dá)到轉(zhuǎn)速檢測(cè)的實(shí)時(shí)性要求,判斷邏輯如表 2所示,根據(jù)表中所述邏輯關(guān)系,分別在qep_a、qep_b的每個(gè)跳變沿進(jìn)行轉(zhuǎn)速判斷,程序仿真結(jié)果如圖2所示。
圖中 qep_a在前半部分滯后 qep_b,在后半部分超前 qep_b,由仿真可以看出,轉(zhuǎn)速檢測(cè)程序能較好的完成轉(zhuǎn)向判斷。
2.3 轉(zhuǎn)速檢測(cè)
根據(jù)引言部分論述,若采用傳統(tǒng)的M/T法測(cè)量轉(zhuǎn)速,電機(jī)在低速運(yùn)行時(shí),可能出現(xiàn)超過一定檢測(cè)時(shí)間還沒有檢測(cè)到編碼器脈沖的情況,本程序采用檢測(cè)窗口來控制檢測(cè)時(shí)間,超過窗口還沒有檢測(cè)到編碼器脈沖即認(rèn)為當(dāng)前周期脈沖檢測(cè)結(jié)束,這樣雖然帶來了一定誤差,卻能保證轉(zhuǎn)速檢測(cè)系統(tǒng)的動(dòng)態(tài)性能,轉(zhuǎn)速檢測(cè)程序流程如圖3。
根據(jù)圖3流程圖規(guī)定的時(shí)序,分別進(jìn)行轉(zhuǎn)速編碼器脈沖計(jì)數(shù)和時(shí)鐘計(jì)數(shù),計(jì)數(shù)值分別為 M1和M2,M2計(jì)數(shù)器的開啟條件為:速度檢測(cè)窗口處于打開狀態(tài),同時(shí)編碼器脈沖的上升沿到來。當(dāng)速度檢測(cè)窗口關(guān)閉后,將計(jì)數(shù)值M1(包含了轉(zhuǎn)向信息)和M2存入存儲(chǔ)器,供DSP讀取,這里需要嚴(yán)格保證 DSP讀數(shù)的時(shí)序,必須保證每次DSP讀取FPGA內(nèi)存儲(chǔ)轉(zhuǎn)速信息時(shí),F(xiàn)PGA都已經(jīng)完成轉(zhuǎn)速檢測(cè)。
根據(jù)以上程序流程和要求,編寫了轉(zhuǎn)速檢測(cè)程序,并進(jìn)行了仿真,仿真結(jié)果如圖4所示。

圖 2 轉(zhuǎn)向判斷仿真圖

圖 3 轉(zhuǎn)速檢測(cè)程序流程

圖 4 轉(zhuǎn)速檢測(cè)仿真圖
仿真圖中第三個(gè)信號(hào)為轉(zhuǎn)速窗口控制信號(hào),該信號(hào)為低時(shí)打開轉(zhuǎn)速檢測(cè)窗口,可以看到,采樣窗口打開后,在qep_b的下降沿開啟了M2計(jì)數(shù),計(jì)數(shù)值為 m2_counter,在轉(zhuǎn)速檢測(cè)窗口關(guān)閉后,M1、M2即停止計(jì)數(shù),能較好的實(shí)現(xiàn)計(jì)數(shù)功能。采樣窗口控制信號(hào)由專門的模塊根據(jù)控制系統(tǒng)的時(shí)序?qū)崿F(xiàn)精確控制,有效的保證了DSP讀數(shù)的準(zhǔn)確性。
2.4 DSP轉(zhuǎn)速計(jì)算方法
根據(jù)M/T法測(cè)量原理,轉(zhuǎn)速表達(dá)式為:

其中N為電機(jī)旋轉(zhuǎn)一周輸出的脈沖個(gè)數(shù),這里采用4倍頻的1024脈沖,即N=4096。M1,M2為DSP 從FPGA讀取的脈沖計(jì)數(shù)值和時(shí)鐘計(jì)數(shù)值,f0為計(jì)數(shù)時(shí)鐘頻率,這里為100 M,設(shè)采樣窗口為K個(gè)中斷周期,每個(gè)中斷周期的時(shí)間為1 ms,則當(dāng)轉(zhuǎn)速為1 r/min時(shí),采樣窗口內(nèi)采樣到的編碼器脈沖個(gè)數(shù)表示為:

根據(jù)以上計(jì)算式,若K取1,則M1不到1,容易產(chǎn)生較大誤差,而對(duì)于船用推進(jìn)電機(jī),其轉(zhuǎn)動(dòng)慣量往往較大,轉(zhuǎn)速變化率較低,因此K可以取較大的值從而保證轉(zhuǎn)速檢測(cè)的精確度,若K取100,則M1約等于6.83,能較好的保證精確度。
為驗(yàn)證轉(zhuǎn)速 DSP+FPGA轉(zhuǎn)速檢測(cè)的準(zhǔn)確性和動(dòng)態(tài)性能,將其應(yīng)用在感應(yīng)電機(jī)的轉(zhuǎn)子磁場(chǎng)定向控制中,分別進(jìn)行了空載啟動(dòng)試驗(yàn)和突加負(fù)載試驗(yàn),并對(duì)轉(zhuǎn)速進(jìn)行了測(cè)量。實(shí)驗(yàn)用電動(dòng)機(jī)實(shí)物如圖5所示,該電動(dòng)機(jī)額定轉(zhuǎn)速600 r/min。

圖 5 試驗(yàn)用電動(dòng)機(jī)實(shí)物

圖6 空載啟動(dòng)轉(zhuǎn)速波形圖

圖7 突加負(fù)載轉(zhuǎn)速波形圖
圖6為電機(jī)空載啟動(dòng)時(shí)轉(zhuǎn)速的波形,圖中包括給定轉(zhuǎn)速和反饋轉(zhuǎn)速,從圖中已經(jīng)很難分辨出轉(zhuǎn)速的參考和反饋了,說明電機(jī)在空載啟動(dòng)過程中,實(shí)際轉(zhuǎn)速能夠很好的跟蹤給定轉(zhuǎn)速,控制效果較好。
圖7為突加負(fù)載試驗(yàn)轉(zhuǎn)速波形圖,在突加負(fù)載瞬間轉(zhuǎn)速會(huì)出現(xiàn)一定波動(dòng)。突加負(fù)載后,測(cè)量的反饋轉(zhuǎn)速開始跌落,最低跌落到給定轉(zhuǎn)速的93.12%后,反饋轉(zhuǎn)速開始上升,直至穩(wěn)定,突加負(fù)載轉(zhuǎn)速調(diào)節(jié)過程持續(xù)約為1.5 s,轉(zhuǎn)速測(cè)量動(dòng)態(tài)性能較好,能達(dá)到控制要求。
本文以DSP+FPGA為控制平臺(tái)核心,基于傳統(tǒng)M/T轉(zhuǎn)速檢測(cè)方法,開發(fā)了帶速度采樣窗口的轉(zhuǎn)速檢測(cè)程序,能根據(jù)正交編碼特性判斷旋轉(zhuǎn)方向,同時(shí)對(duì)信號(hào)做四倍頻處理,提高了轉(zhuǎn)速檢測(cè)精度。通過仿真驗(yàn)證了程序的正確性,通過試驗(yàn)驗(yàn)證了所開發(fā)程序模塊的動(dòng)靜態(tài)性能。該方法準(zhǔn)確有效,適用于低速大功率的船用電力推進(jìn)轉(zhuǎn)速檢測(cè),并可直接作為轉(zhuǎn)速檢測(cè)模塊應(yīng)用于控制系統(tǒng),通用性強(qiáng)。
[1] 朱安石, 路平. CPLD在無人機(jī)發(fā)動(dòng)機(jī)轉(zhuǎn)速檢測(cè)中的應(yīng)用[J]. 信息技術(shù), 2011, (1): 144-143.
[2] Zhang Yi, Li Huifang.Study on the detection of velocity direction for belt-broken[J]. Icece, 2010.528, 2147-2149.
[3] 蔣浩. 電機(jī)轉(zhuǎn)速檢測(cè)方法與誤差分析[J]. 中國(guó)測(cè)試技術(shù), 2003, 3(2): 59-60.
[4] 顧惠昱. 轉(zhuǎn)速檢測(cè)技術(shù)分析與探討[J]. 計(jì)量與測(cè)試技術(shù), 2013, 40(6): 38-40.
[5] 秦蕾. 直流電動(dòng)機(jī)轉(zhuǎn)速檢測(cè)與控制[J]. 上海電力, 2012, 5: 251-253.
[6] 汪濤. 一種基于DSP的伺服電動(dòng)機(jī)轉(zhuǎn)速檢測(cè)方法[J],微電機(jī), 39(3): 86-88.
[7] 張冬冬, 羅文廣. 基于 F P GA的異步電動(dòng)機(jī)控制系統(tǒng)檢測(cè)電路[J]. 儀表技術(shù)與傳感器, 2011, 7: 83-86.
[8] 錢偉康, 張成爽. 基于 FPGA的光電編碼器信號(hào)處理方法[J]. 測(cè)控技術(shù), 2010, 29(12): 44-47.
A Velocity Detection Approach to Ship Propulsion Motor Based on DSP+FPGA
Li Meng1, Cai Zongju2, Ruan Jun3
(1. Naval Representatives Office of Combat System in Beijing, Beijing 100094, China; 2. China Shipbuilding Industry System Engineering Reseach Institute, Beijing 100094, China; 3. Jiangsu Daquan Kfine Electric Co., Ltd, Zhenjiang 212211, China)
This paper puts forward a kind of speed measurement method based on DSP+FPGA by the method of M/T speed measuring. FPGA is responsible for detecting the photoelectric encoder output pulse, to judge the direction of rotation according to the signal characteristic, at the same time, the signal frequency is increased by four times, to improve the speed of detection accuracy. In the control period, FPGA was used to detect the speed, and generate DSP data read interrupt when DSP read FPGA memory speed information by the address and data buses, then calculates the speed. The accuracy of the method has been validated by the simulation and experiments. The detection procedure has advantages of high precision, low detection performance, strong universality. It can be directly used as speed detecting module in the control system, Especially be suitable for low speed detection in ship propulsion.
FPGA; DSP; propulsion motor; velocity detection
TM383.4
A< class="emphasis_bold">文章編號(hào):1
1003-4862(2017)02-0063-04
2016-10-24
厲孟(1985-),男,工程師,主要從事船舶電力推進(jìn)相關(guān)設(shè)備生產(chǎn)研制。E-mail:ai__sheng@163.com