梅小雨,許 昌
(中國計(jì)量學(xué)院 機(jī)電工程學(xué)院,浙江 杭州310018)
船用儀表從工作原理上區(qū)分,有模擬式儀表和數(shù)字式儀表[1]。以模擬量組合單元儀表為主的監(jiān)控儀表所需要的器件數(shù)量多,指示精度低。數(shù)字式船用儀表多為LED數(shù)碼管顯示方式,雖然分辨率高,但不夠直觀,尤其在單屏面上顯示多個(gè)數(shù)據(jù)時(shí),不利于進(jìn)行遠(yuǎn)距離觀察,而且它顯示的是單純的一個(gè)數(shù)據(jù),沒有在一定范圍內(nèi)進(jìn)行顯示,觀察人員還需將觀察到的數(shù)據(jù)再過濾比較,才能對運(yùn)行狀況作出判斷,不利于發(fā)現(xiàn)異常情況。因此為了既適應(yīng)船用儀表的需要,又滿足人機(jī)工程的要求,本文提出了一種全數(shù)字步進(jìn)電機(jī)式船用柴油機(jī)狀態(tài)監(jiān)控儀表,與傳統(tǒng)的模擬量為傳輸量的指針式儀表不同的是,它把數(shù)字量用步進(jìn)電機(jī)式指針進(jìn)行了模擬式指示,將數(shù)字顯示的準(zhǔn)確性和模擬指示的直觀性結(jié)合在一起,克服了以往模擬式儀表指針指示的非線性、抖動(dòng)、卡滯等現(xiàn)象,指針示值準(zhǔn)確、能夠快速追蹤參數(shù)的變化,運(yùn)行平穩(wěn)。
步進(jìn)電機(jī)式船用儀表總體結(jié)構(gòu)框圖如圖1所示,本設(shè)計(jì)采用帶有LCD顯示模塊的PIC核的單片機(jī)作為控制器,對柴油機(jī)運(yùn)行參數(shù)(包括轉(zhuǎn)速、機(jī)油壓力、機(jī)油溫度、冷卻水溫度、電瓶電壓等)進(jìn)行數(shù)據(jù)采集,把數(shù)據(jù)處理成相對應(yīng)的步進(jìn)電機(jī)式指針要走的步數(shù),并在指針式儀表上進(jìn)行顯示。選用的VID29-05步進(jìn)電機(jī)為兩相步進(jìn)電機(jī),內(nèi)置減速比180/1的齒輪系,可用分步模式或微步模式驅(qū)動(dòng)。輸出軸的步距角最小可以達(dá)到(1/12)°,最大角速度為 600°/s。
步進(jìn)電機(jī)是把脈沖信號轉(zhuǎn)換成角位移或直線位移的執(zhí)行元件,是一種輸出與輸入數(shù)字脈沖相對應(yīng)的增量驅(qū)動(dòng)元件[2]。步進(jìn)電機(jī)的運(yùn)行方式主要有整步、分步、微步3種[3]。為了使儀表指針能夠高精度地準(zhǔn)確定位,使步進(jìn)電機(jī)平穩(wěn)、無卡滯地運(yùn)行,減少電機(jī)的振蕩和噪聲,需要對步進(jìn)電機(jī)進(jìn)行細(xì)分驅(qū)動(dòng),即微步模式。
步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng)方式有專用芯片法和PWM脈寬調(diào)制法。專用芯片法采用硬件的方法實(shí)現(xiàn)步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng),容易實(shí)現(xiàn),但成本較高。PWM脈寬調(diào)制法采用PWM脈沖直接對步進(jìn)電機(jī)進(jìn)行驅(qū)動(dòng),采用軟件的方式實(shí)現(xiàn),驅(qū)動(dòng)硬件成本較低,但需要多路PWM模塊,對單片機(jī)的選型要求較高。因此綜合成本和實(shí)用性兩方面的因素考慮后,本設(shè)計(jì)提出一種基于組合電阻式的步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)方法,該驅(qū)動(dòng)方式的硬件為3個(gè)電阻的組合,成本低,原理簡單,易實(shí)現(xiàn)。驅(qū)動(dòng)軟件為儀表指針跟蹤算法的設(shè)計(jì),不需要單片機(jī)的PWM模塊,實(shí)用性較強(qiáng)。
步進(jìn)電機(jī)微步驅(qū)動(dòng)電流信號的公式如下:
在本設(shè)計(jì)中勵(lì)磁繞組采用階梯型電壓驅(qū)動(dòng),在繞組上進(jìn)行電流疊加,即每經(jīng)過一個(gè)細(xì)分信號周期,單片機(jī)輸出到電機(jī)線圈的電壓順次發(fā)生變化,使得通過線圈的電流按上述公式產(chǎn)生接近正弦波的變化,逐漸增大或減少,而不是一次性地通入或切斷,使電機(jī)能更平穩(wěn)地運(yùn)行。
組合電阻式細(xì)分驅(qū)動(dòng)是指步進(jìn)電機(jī)每一相線圈一端與單片機(jī)的I/O口相連,另一端與N個(gè)阻值不同、處于并聯(lián)方式的電阻相連,N個(gè)電阻的數(shù)量和取值大小需要考慮電機(jī)內(nèi)部線圈電阻,以便產(chǎn)生能夠驅(qū)動(dòng)電機(jī)的、接近于正弦波的階梯波形。單片機(jī)與步進(jìn)電機(jī)之間無專用驅(qū)動(dòng)芯片。并聯(lián)電阻N的個(gè)數(shù)越多,則步進(jìn)電機(jī)每一相上出現(xiàn)的狀態(tài)就越多,細(xì)分的程度也越高。圖2所示為該24細(xì)分驅(qū)動(dòng)法的硬件電路圖。
圖中 M1、M2為步進(jìn)電機(jī)的一相繞組,M3、M4為另一相繞組,SN74HC595是串行輸入并行輸出芯片,用作擴(kuò)展PIC單片機(jī)的I/O口,每一相繞組上都接有3個(gè)并聯(lián)的電阻。因?yàn)閂ID29-05輸出軸的步距角最小可以達(dá)到(1/12)°,而它內(nèi)置減速比為 180/1的齒輪系,因此一個(gè)微步表示指針轉(zhuǎn)子轉(zhuǎn)動(dòng)15°。VID29-05步進(jìn)電機(jī)一個(gè)周期共有6個(gè)分步,即每個(gè)分步相位相差60°,每個(gè)分步可以細(xì)分為4個(gè)微步,整個(gè)周期細(xì)分為24個(gè)微步,即24細(xì)分,其對稱的階梯波形圖如圖3所示。
因?yàn)橛?2個(gè)不同的對稱階梯數(shù)值,故選取3個(gè)不同阻值的電阻與步進(jìn)電機(jī)繞組線圈電阻一起就能得到16種邏輯組合,選取其中最合適的12種即可。在硬件電路中每一相都有3個(gè)電阻相并聯(lián),VID29-05步進(jìn)電機(jī)的每相內(nèi)部繞組電阻為210 Ω,單片機(jī)I/O口輸出電壓為5 V,再根據(jù)VID29-05步進(jìn)電機(jī)微步驅(qū)動(dòng)的各相電流值,可以計(jì)算出3個(gè)電阻與電機(jī)內(nèi)部繞組在電路中的總等效電阻值和步進(jìn)電機(jī)一相繞組上的電壓值,根據(jù)這些數(shù)據(jù)就可選配3個(gè)電阻的阻值和控制電阻引腳的電平邏輯。當(dāng) QD輸出高電平時(shí),QA、QB、QC有 8種組合可選,除去輸出全高狀態(tài)(因?yàn)槿?QA、QB、QC、QD全為高時(shí),就沒有電流輸出),可根據(jù)需要取出其中最適合的6種狀態(tài)。當(dāng)QD輸出低電平時(shí),同理可取出除去全低狀態(tài)外的最適合的6種狀態(tài),由此可得到12個(gè)值。將此12個(gè)值進(jìn)行x軸對稱則可得出另一組階梯波。將整組數(shù)據(jù)建成一個(gè)表,通過查表的方式就可以控制步進(jìn)電機(jī)。
在本設(shè)計(jì)中,要顯示的參數(shù)有溫度、壓力、轉(zhuǎn)速和電壓。溫度顯示范圍為40℃~120℃,壓力顯示范圍為0~1 MPa,轉(zhuǎn)速顯示范圍為 0~3 000 r/min,電壓顯示范圍為18 V~32 V。在此對溫度顯示與步進(jìn)電機(jī)微步數(shù)的計(jì)算關(guān)系進(jìn)行說明,其余三表類似。根據(jù)廠家給定的溫度面板滿量程刻度為112.5°,步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)中每一步旋轉(zhuǎn)角度(1/12)°,因此當(dāng)達(dá)到滿量程時(shí)步進(jìn)電機(jī)的微步數(shù)為step=112.5×12=1 350步。但溫度是從40℃開始顯示的,應(yīng)將40℃作為指示零點(diǎn),且滿量程為120℃,滿量程點(diǎn)與初始點(diǎn)相差溫度為80℃,而它們之間的物理角度差為112.5°,因此溫度每相差一度,指針應(yīng)走過的物理角度為(112.5/80)°,溫度與電壓近似成線性關(guān)系,如圖4所示的溫度-電壓關(guān)系圖,由此可得關(guān)系式:
根據(jù)式(2)和式(3)就可計(jì)算出相對應(yīng)的目標(biāo)溫度值y,再根據(jù)式(4)就可計(jì)算出目標(biāo)溫度相對應(yīng)的儀表指針位置,即指針距初始點(diǎn)(“40℃”點(diǎn))的微步數(shù)。將此位置與指針的當(dāng)前位置進(jìn)行比較,即可得到指針應(yīng)轉(zhuǎn)動(dòng)的方向和轉(zhuǎn)角。由此可建立溫度-微步數(shù)表,通過查表的方式就可得到目標(biāo)溫度值所對應(yīng)的微步數(shù)。
由于溫度與電壓之間的非線性關(guān)系及電機(jī)齒輪的誤差影響,導(dǎo)致滿度定位有偏差,可以通過分段線性處理的方法,在半滿量程點(diǎn)、2/3滿量程點(diǎn)和滿量程點(diǎn),對式(4)進(jìn)行補(bǔ)償修正,從而獲得準(zhǔn)確的定位。
儀表指針運(yùn)行的效果要求平滑且跟蹤快,要滿足這兩項(xiàng)要求,必須要有好的升降頻控制算法,因此必須在軟件設(shè)計(jì)上配合實(shí)現(xiàn)硬件電路的細(xì)分驅(qū)動(dòng)。硬件電路提供驅(qū)動(dòng)步進(jìn)電機(jī)的階梯波形,軟件設(shè)計(jì)將控制此波形的時(shí)間間隔,使得指針快速、精準(zhǔn)地定位,并且平滑、無卡滯地運(yùn)行。主要包括指針歸零模塊、分頻驅(qū)動(dòng)中斷模塊、跟蹤控制模塊。
常用的升降頻控制方法有3種[4]:直線升降頻、指數(shù)曲線升降頻、拋物線升降頻。直線升降頻是以恒定的加速度進(jìn)行升降,平穩(wěn)性較好,適用于速度變化較大的快速定位方式。軟件實(shí)現(xiàn)比較簡單,但其加速度時(shí)間比較長。指數(shù)升降頻控制具有較強(qiáng)的跟蹤能力,但當(dāng)速度變化較大的時(shí)侯其平衡性較差。拋物線升降頻是將直線升降頻和指數(shù)曲線升降頻相融合,充分考慮到步進(jìn)電機(jī)低速時(shí)的有效轉(zhuǎn)矩,使升降速的時(shí)間大為縮短,同時(shí)又考慮使其具有較強(qiáng)的跟蹤能力,這是一種比較好的升降頻控制方法,本設(shè)計(jì)所采用的升降頻控制方法正是此方法。
指針跟蹤程序流程圖如圖5所示,查參數(shù)-微步數(shù)表得到目標(biāo)微步數(shù)后,與當(dāng)前位置比較確定指針的轉(zhuǎn)動(dòng)方向和轉(zhuǎn)角。為使指針能快速跟蹤、準(zhǔn)確定位,需要按拋物線升降頻法,建立一張位置差值-指針?biāo)俣缺恚?dāng)目標(biāo)位置離當(dāng)前位置較遠(yuǎn)時(shí),指針?biāo)俣容^快,反之則較慢,如參數(shù)突然變化較大,不能直接從上一較快(較慢)的指針?biāo)俣纫淮巫兓捷^慢(較快)的目標(biāo)速度,會(huì)使指針產(chǎn)生卡滯、抖動(dòng)等現(xiàn)象,此時(shí)應(yīng)在程序中控制指針?biāo)俣葷u進(jìn)的變化。
將步進(jìn)電機(jī)應(yīng)用到船用儀表中,推動(dòng)了數(shù)字化指針儀表的發(fā)展,顯示方式更符合人機(jī)工程學(xué)的要求。本文對實(shí)現(xiàn)組合電阻式步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)的軟硬件設(shè)計(jì)進(jìn)行了描述,與專用芯片法(硬件)和 PWM脈寬調(diào)制法(軟件)相比,性價(jià)比較好。儀表指針跟蹤位置的準(zhǔn)確性、快速性及運(yùn)行平穩(wěn)性都超過了普通模擬指針表的功能,有著較強(qiáng)的通用性和廣闊的應(yīng)用前景。該儀表已通過廠家的裝船測試,各項(xiàng)指標(biāo)達(dá)到設(shè)計(jì)要求,并已交付使用,運(yùn)行正常。
[1]陳立軍,黃學(xué)武,鄭華耀.SMSC船用智能儀表的研究[J].自動(dòng)化與儀表,2007,22(4):21-24.
[2]胡惟文,蔡劍華,王先春.基于FPGA的步進(jìn)電機(jī)均勻細(xì)分驅(qū)動(dòng)器的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(2):183-184.
[3]李錚,鮮繼清,王平.直驅(qū)型數(shù)控指針式儀表的設(shè)計(jì)與實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2007,28(2):327-330.
[4]李明泉.功率步進(jìn)電機(jī)升降頻過程的最優(yōu)控制[J].微電機(jī),1988(4):8-16.