姜 恒,李樹軍,徐永新
(西北工業(yè)大學(xué) 機(jī)電學(xué)院,西安 710072)
凸輪機(jī)構(gòu)是一種由凸輪、從動件和機(jī)架組成的高副機(jī)構(gòu)。凸輪機(jī)構(gòu)能實現(xiàn)復(fù)雜的運動要求,因而廣泛應(yīng)用于各種自動化、半自動化機(jī)械裝置中。凸輪機(jī)構(gòu)高速運轉(zhuǎn)時,系統(tǒng)中從動件的慣性力急劇增大,構(gòu)件彈性形變的影響會使輸出端的運動規(guī)律偏離預(yù)定的要求,產(chǎn)生嚴(yán)重的運動偏差[2]。針對高速凸輪在高速運轉(zhuǎn)時出現(xiàn)的實際問題,國內(nèi)外學(xué)者進(jìn)行了大量的理論分析研究,但相關(guān)的實驗研究比較缺乏。
本文介紹了一種利用C8051F060單片機(jī)以及美國NI公司的LabWindows/CVI虛擬儀器開發(fā)工具構(gòu)建的高速凸輪測試系統(tǒng),通過該測試系統(tǒng)獲得凸輪機(jī)構(gòu)在高速運轉(zhuǎn)時的動力學(xué)參數(shù)數(shù)據(jù),進(jìn)而從實驗角度對高速動態(tài)性能進(jìn)行分析研究,為高速凸輪動力學(xué)研究奠定良好的基礎(chǔ)。
高速凸輪測試系統(tǒng)通過測量凸輪機(jī)構(gòu)的轉(zhuǎn)速、位移以及加速度來研究高速凸輪機(jī)構(gòu)的動態(tài)性能。高速凸輪測試系統(tǒng)主要包括機(jī)械結(jié)構(gòu)和數(shù)據(jù)采集系統(tǒng)兩部分。其中機(jī)械結(jié)構(gòu)如圖1所示。
在圖1所示的結(jié)構(gòu)中,1為直流電機(jī),直流電機(jī)通過同步帶傳動帶動4凸輪軸旋轉(zhuǎn)。直流電機(jī)的最高轉(zhuǎn)速為3000r/min,帶傳動的傳動比為1∶3,因此凸輪軸的最高轉(zhuǎn)速為1000r/min。凸輪7通過鍵與凸輪軸4連接,利用緊定螺釘軸向固定,可以方便地更換凸輪。飛輪6可以通過撥桿5方便的從系統(tǒng)中加載或移除,從而改變系統(tǒng)的轉(zhuǎn)動慣量。8為滾子擺桿,兩端裝有滾子,可以減少磨損。滾子擺桿一端與凸輪接觸,另一端與直線運動系統(tǒng)相接觸。直線運動系統(tǒng)由直線運動軸9、砝碼10和彈簧12組成,可將凸輪的旋轉(zhuǎn)運動轉(zhuǎn)化為直線運動系統(tǒng)的直線運動。凸輪機(jī)構(gòu)的轉(zhuǎn)速由增量式光電編碼器2測量。加速度與位移通過固連在砝碼上的加速度傳感器11和位移傳感器13測量。
數(shù)據(jù)采集系統(tǒng)主要由傳感器、傳感器適配器、數(shù)據(jù)采集卡和上位機(jī)組成。由于測試系統(tǒng)的最小采樣周期為0.16ms,常用的數(shù)據(jù)“采集卡+Windows操作系統(tǒng)”的方法無法滿足測試系統(tǒng)的要求。因此本測試系統(tǒng)選用以高速單片機(jī)為核心搭建數(shù)據(jù)采集卡。傳感器輸出的信號經(jīng)適配器放大后,由高速單片機(jī)進(jìn)行采集,所得的數(shù)據(jù)首先存入單片機(jī)的外存儲器。采集工作結(jié)束后,再將數(shù)據(jù)發(fā)送至上位機(jī),由上位機(jī)進(jìn)行處理。通過這種方法滿足測試系統(tǒng)的要求。
本系統(tǒng)以美國Silicon Laboratories 公司的C8051F060單片機(jī)作為核心。該型號單片機(jī)其片上集成有與高速流水線結(jié)構(gòu)的8051兼容的CIP-51內(nèi)核(速度可達(dá)25MIPS); 2個16位、1Msps的ADC;5個通用的定時/計數(shù)器;1個帶6個比較/捕捉模塊的可編程定時/計數(shù)器陣列[4],完全符合本系統(tǒng)的要求。
光電編碼器輸出的信號經(jīng)四倍頻電路細(xì)分后由單片機(jī)內(nèi)部集成的計數(shù)器進(jìn)行計數(shù),加速度傳感器和位移傳感器輸出的模擬信號經(jīng)信號調(diào)理電路后由16位的模數(shù)轉(zhuǎn)換器ADC0和ADC1進(jìn)行采集。由于ADC0和ADC1的啟動方式可以設(shè)置為定時器T3溢出啟動,因此選擇定時器T3控制信號的采樣周期。系統(tǒng)工作時,首先測得凸輪機(jī)構(gòu)在一個周期內(nèi)的轉(zhuǎn)速平均值,通過轉(zhuǎn)速平均值計算出系統(tǒng)的采樣周期,進(jìn)而確定定時器T3的初值。定時器T3發(fā)生溢出時,執(zhí)行定時器T3中斷服務(wù)程序,存儲計數(shù)器的計數(shù)值,自動開啟ADC0和ADC1,待AD轉(zhuǎn)換結(jié)束后將所得的結(jié)果存入外存儲器。當(dāng)計數(shù)器發(fā)生溢出時,采樣過程結(jié)束,并將所得的全部數(shù)據(jù)經(jīng)RS232總線發(fā)送至上位機(jī),系統(tǒng)的功能框圖如圖2所示。
在高速凸輪測試系統(tǒng)中,轉(zhuǎn)速信號的測量是其中的關(guān)鍵。測試系統(tǒng)的一個重要功能就是測試凸輪機(jī)構(gòu)在不同轉(zhuǎn)速、不同負(fù)載情況下的轉(zhuǎn)速波動情況。考慮到測試系統(tǒng)采用增量式光電編碼器測量轉(zhuǎn)速,為提高系統(tǒng)對轉(zhuǎn)速的測量精度,根據(jù)光電編碼器輸出的A相和B相信號相位相差90°的基本原理,設(shè)計了光電編碼器四倍頻細(xì)分電路。四倍頻電路如圖3所示。
在圖3所示的電路中,光電編碼器輸出的A、B相信號首先經(jīng)過整形隔離電路后得到A1、B1信號。由于A1、B1信號相位相差90°,因此將A1、B1信號接入異或門電路74LS86進(jìn)行異或運算,輸出的信號C其頻率為輸入信號頻率的兩倍。
兩倍頻信號C經(jīng)過兩路單穩(wěn)態(tài)觸發(fā)器74LS221分別檢測出上升沿和下降沿。該觸發(fā)器由于內(nèi)部的補償作用,輸出脈沖的寬度穩(wěn)定性好。脈沖寬度的大小取決于電阻Rt和電容Cext的大小。實際應(yīng)用中,Rt的值選為4.7K,Cext的值選為75pF。74LS221負(fù)脈沖輸出端輸出的兩路信號D、E接入與門電路74LS08獲得四倍頻信號F。信號F最終接入單片機(jī)計數(shù)器的信號輸入引腳進(jìn)行計數(shù)。
在測試系統(tǒng)中,由于加速度傳感器的輸出信號為-5~+5V,位移傳感器的輸出信號為0~+5V,而ADC1和ADC2的輸入信號范圍為0~VREF(VREF的值為2.5V),因此必須設(shè)計信號調(diào)理電路將±5V信號轉(zhuǎn)換為0~2.5V。信號調(diào)理電路設(shè)計如圖4所示。
在圖4所示的電路中,輸入的±5V信號首先經(jīng)LT1991降壓后轉(zhuǎn)換為±1.25V,LT1991是一款精準(zhǔn)、增益可選放大器,通過改變引腳的接法可以獲得不同的增益,當(dāng)按圖示的接法連接電路時,其增益為0.25。輸入信號經(jīng)LT1991降壓后,在通過集成運算放大器LT1363同1.25V的基準(zhǔn)電壓做反相加法運算,將±1.25V的信號轉(zhuǎn)換為0~-2.5V。最后經(jīng)反相比例運算電路調(diào)整為0~2.5V,輸入C8051F060的AIN0和AIN1引接進(jìn)行采集。其中1.25V和2.5V的基準(zhǔn)電壓分別由電壓基準(zhǔn)芯片REF2912和REF2925產(chǎn)生。
由于C8051F060內(nèi)部集成的外存存儲器容量為4K,無法滿足測試系統(tǒng)的要求,所以必須擴(kuò)展外存容量。本方案中,考慮到C8051F060可擴(kuò)展的外存容量為64K,因此選用IDT71V124SA12PH實現(xiàn)存儲器的擴(kuò)展。IDT71V124SA12PH是一款3.3V供電的、CMOS靜態(tài)RAM,其存儲容量為128K,完全符合測試系統(tǒng)的要求。C8051F060通過專用的EMIF接口配置外存儲器,包括復(fù)用方式與非復(fù)用方式得選擇、存儲模式的選擇以及時序的設(shè)置。
由于測試系統(tǒng)全部的數(shù)據(jù)顯示工作都由上位機(jī)完成,因此必須保證下位機(jī)與上位機(jī)的通信功能。本系統(tǒng)采用RS232的通信方式。接口芯片選擇MAXIM公司的MAX3232。MAX3232芯片是一款3.0V至5.5V供電、低功耗、1Mbps、真RS232收發(fā)器。在使用時,只需要外接4只0.1uF的電容,就可以完成數(shù)據(jù)傳輸、通信的功能。
高速凸輪測試系統(tǒng)下位機(jī)(即C8051F060)軟件設(shè)計的一個難點是四倍頻脈沖信號的計數(shù)程序。系統(tǒng)選用的編碼器為美國EPC公司的15S系列編碼器,每轉(zhuǎn)輸出10000個脈沖信號。而上位機(jī)顯示的凸輪運動周期最多為3個周期,因此凸輪旋轉(zhuǎn)3周,電機(jī)旋轉(zhuǎn)9周,編碼器輸出90000個脈沖,經(jīng)四倍頻細(xì)分電路后輸出360000個脈沖。C8051F060內(nèi)部集成的計數(shù)器均為16位,最多能計數(shù)65536個脈沖信號,無法滿足測試系統(tǒng)的要求。本系統(tǒng)利用C8051F060內(nèi)部的計數(shù)器PCA0和T0搭建了一個24位的計數(shù)器,并設(shè)計了相應(yīng)的軟件算法,從而實現(xiàn)了對360000個脈沖信號的計數(shù)。
可編程定時/計數(shù)器陣列PCA0的時基信號可以由定時器/計數(shù)器T0溢出獲得,即T0每溢出一次,PCA0計數(shù)值加1。因此可以設(shè)置由T0對四倍頻信號進(jìn)行計數(shù),T0工作在8位自動重裝載方式下,重載值和初值均為56,即T0每計數(shù)200個脈沖信號產(chǎn)生一次溢出。PCA0的時基信號由T0溢出獲得,PCA0的計數(shù)初值設(shè)置為63736,即PCA0計數(shù)值達(dá)到1800時,針對四倍頻信號的計數(shù)達(dá)到360000。某一時刻的計數(shù)值由以下公式確定:計數(shù)值=(PCA0-63736) ×200+TL0-56 (1)
PCA0為當(dāng)前PCA0寄存器的計數(shù)值,T0L為當(dāng)前T0寄存器的計數(shù)值。這種計數(shù)方法的突出特點是兩個計數(shù)器的連接完全通過單片機(jī)內(nèi)部配置寄存器實現(xiàn),無需在單片機(jī)外部進(jìn)行連線,從而提升了系統(tǒng)的計數(shù)精度和抗干擾性能。
綜上所述,下位機(jī)軟件主要包括系統(tǒng)初始化程序、采樣周期設(shè)置程序、ADC初始化程序、定時器T3中斷服務(wù)程序以及PCA0中斷服務(wù)程序。系統(tǒng)工作時,首先執(zhí)行系統(tǒng)初始化子程序。在系統(tǒng)初始化程序中需要配置系統(tǒng)時鐘、I/O端口、EMIF接口、串行接口UART0、定時器T3、定時器T0、PCA0以及中斷優(yōu)先級寄存器。在系統(tǒng)采樣周期設(shè)置程序中通過測量凸輪的平均轉(zhuǎn)速確定好采樣周期,并設(shè)置定時器T3的初值。在ADC初始化程序中確定AD轉(zhuǎn)換時鐘和啟動方式。在定時器3中斷服務(wù)程序中,每當(dāng)定時器發(fā)生中斷時,PCA0和TL0的計數(shù)值存入外存,自動開啟ADC0和ADC1進(jìn)行采樣,待AD轉(zhuǎn)換結(jié)束后將寄存器ADC0、ADC1的值存入外存。在PCA0中斷服務(wù)程序中,當(dāng)PCA0發(fā)生中斷時,通過串行接口UART0將外存中的數(shù)據(jù)發(fā)送至上位機(jī)。下位機(jī)程序的流程圖如圖5所示。
在測試系統(tǒng)中,上位機(jī)與下位機(jī)C8051F060需要進(jìn)行通信。上位機(jī)需要發(fā)送控制指令下位機(jī)。下位機(jī)采集數(shù)據(jù)結(jié)束后,需要發(fā)送數(shù)據(jù)給上位機(jī)。上位機(jī)接收到數(shù)據(jù)后,要對數(shù)據(jù)進(jìn)行濾波,運算,并以曲線的形式進(jìn)行顯示。通過上位機(jī)測控軟件可以方便的實現(xiàn)上述功能。本測試系統(tǒng)利用虛擬儀器開發(fā)工具LabWindows/CVI編寫了一套高速凸輪試驗系統(tǒng)上位機(jī)測控軟件。
LabWindows/CVI是 美 國 NI(National Instrument)公司推出的32位面向計算機(jī)測控領(lǐng)域的虛擬儀器開發(fā)平臺,可以在多個操作系統(tǒng)下運行,利用C語言編程,可以方便快速搭建自定義測控平臺。此外模塊化的數(shù)據(jù)處理方法,使軟件開發(fā)效率得到極大的提升且易于升級[7]。
本上位機(jī)軟件的功能是,通過配置打開串口,向下位機(jī)發(fā)送控制指令,接收下位機(jī)傳送的凸輪機(jī)械運動參數(shù)數(shù)據(jù)。通過函數(shù)OpenComConfig()打開串口并進(jìn)行相關(guān)的配置。數(shù)據(jù)的接收與發(fā)送則是通過函數(shù)ComRd()與ComWrt()實現(xiàn)。上位機(jī)接收到數(shù)據(jù)后,通過對數(shù)據(jù)進(jìn)行濾波、運算,最終在圖形框中以曲線的方式進(jìn)行顯示。上位機(jī)的界面如圖6所示。
為了驗證方案的可行性,制作了采集系統(tǒng)樣機(jī)并與現(xiàn)有的高速凸輪測試系統(tǒng)進(jìn)行系統(tǒng)聯(lián)調(diào)。圖7是高速凸輪測試系統(tǒng)的部分實驗結(jié)果,其測試條件為凸輪轉(zhuǎn)速247r/min,試驗凸輪為圓偏心凸輪,未加飛輪,顯示周期為2周期。
圖7(a)為采用單倍頻計數(shù)時的轉(zhuǎn)速波動曲線,圖7(b)為采用四倍頻計數(shù)時的轉(zhuǎn)速波動曲線。從圖中可以看出,當(dāng)采用四倍頻計數(shù)時,轉(zhuǎn)速波動曲線更加光滑,更加接近于理論曲線。從而表明采用四倍頻電路可以提高系統(tǒng)的采集精度。
凸輪機(jī)構(gòu)是一種在工業(yè)領(lǐng)域應(yīng)用非常廣泛的機(jī)構(gòu),有關(guān)于它的實驗研究在國內(nèi)尚處于起步階段。本方案設(shè)計了基于C8051F060的高速凸輪測試系統(tǒng)并制作了樣機(jī),對研究凸輪高速運轉(zhuǎn)時的進(jìn)行了初步研究。在后續(xù)調(diào)試中還要對采集卡以及程序的優(yōu)化進(jìn)行一系列改進(jìn)。
[1] 孫樹峰, 周以齊.基于非均勻有理B樣條的空間凸輪設(shè)計[J]. 機(jī)械工程學(xué)報, 2009, 45(8): 125-129.
[2] 蘇利亞.高速凸輪機(jī)構(gòu)的動力學(xué)分析[J].機(jī)械設(shè)計與制造, 2008, 12: 181-182.
[3] 安永如, 黎海文, 吳一輝, 宣明. 基于C8051F060的微型生化分析儀高速數(shù)據(jù)采集系統(tǒng)[J].光電子技術(shù), 2007, 27(3): 166-173.
[4] 潘琢金.C8051F060/1/2/3/4/5/6/7混合信號ISP FLASH 微控制器數(shù)據(jù)手冊[Z].深圳: 新華龍電子有限公司, 2004.
[5] 張培仁, 孫力.基于C語言C8051F系列微控制器原理與應(yīng)用[M].北京: 清華大學(xué)出版社, 2007.
[6] 羅輝,李樹軍,王亮, 鄧宏德.基于LabWindows/CVI和 RTX的高速凸輪測試系統(tǒng)設(shè)計[J].測控技術(shù),2011,30(2):23-26.
[7] 史君成, 張淑偉, 律淑珍.LabWindows/CVI虛擬儀器設(shè)計[M].北京: 國防工業(yè)出版社, 2007.
[8] 孫曉云, 郭立煒, 孫會琴.基于LabWindows/CVI的虛擬儀器設(shè)計與應(yīng)用[M].北京: 電子工業(yè)出版社, 2006.