0 引言
在力學(xué)環(huán)境試驗中,振動試驗應(yīng)用最為廣泛,尤其是國防科技應(yīng)用中的火藥裝填,即通過一定的振級和時間將火藥填實,其工作過程為將火藥罐體固定于機械振動臺上,然后設(shè)定相應(yīng)的振動頻率及振動幅度,當?shù)竭_設(shè)定的振動條件后,火藥便通過導(dǎo)向槽向罐體內(nèi)充填。此后,隨著時間的增加,振動上火藥加罐體的重量隨之增加,而機械臺臺面安裝于空氣彈簧上,它隨著臺面上的重量的增加會下降,如果下降超過機械臺所能要求的能力,就可能出現(xiàn)事故,因此要求有一套自動定中系統(tǒng),在機械臺靜態(tài)和振動狀態(tài)均能自動保持中間位置。
1 總體方案
要滿足機械臺臺面靜態(tài)和振動狀態(tài)均能自動保持中間位置,用分立器件判斷臺面極限位置的方法往往難以適應(yīng)。解決此問題的方案有兩種:一是采用單片機系統(tǒng),二是采用嵌入式系統(tǒng)。單片機系統(tǒng)雖然價格低廉,使用方便,但是程序容易跑飛,且編程及修改較為麻煩;而嵌入式系統(tǒng)中,基于CPU的嵌入系統(tǒng)價格較貴。為此,本文選用了可編程邏輯器件(FPGA),由于FPGA具有豐富的可編程性與豐富的I/O引腳,因而其在數(shù)字系統(tǒng)中的應(yīng)用越來越廣泛。如同自行設(shè)計集成電路一樣,利用FPGA可節(jié)省電路開發(fā)的費用與時間,因此,本文提出了一套基于FPGA的嵌入系統(tǒng)來實現(xiàn)自動定中,其系統(tǒng)方案如圖1所示。
圖中,光纖一和光纖二將振動的位置信號傳遞給系統(tǒng),然后由系統(tǒng)判定臺面是處于靜態(tài)還是動態(tài),再判定臺面偏高還是偏低,分別處理,最后通過兩個電磁閥來對機械臺進行充氣或放氣。
2 電路組成
系統(tǒng)運行時,會有以下幾種情況:一是在系統(tǒng)正常振動時,光纖一和光纖二輸出的波形為占空比為50%且方向相反的一對方波信號;二是當臺面位置發(fā)生變化后,振動時兩個光纖輸出的脈沖占空比會發(fā)生變化。當臺面靜止或臺面受到其他因素而低于4 Hz振動時,兩個光纖輸出的脈沖幾乎為一個恒定的電平。因此,需要系統(tǒng)根據(jù)脈沖情況自動分辨,本文在FPGA內(nèi)設(shè)計了三個模塊,即分頻模塊,信號觸發(fā)模塊,信號比較及輸出模塊。
2.1 分頻模塊
分頻模塊共輸出四種分頻信號:參考時鐘、預(yù)讀信號、鎖存信號、觸發(fā)信號。其中參考時鐘用于信號觸發(fā)模塊中信號占空比的測量計數(shù),考慮到計數(shù)器的容量,我們?nèi)⒖紩r鐘為100 kHz。預(yù)讀信號read用于啟動比較模塊中靜態(tài)還是動態(tài)信號的判定。鎖存信號lock用于對比較模塊輸出的繼電器控制狀態(tài)信號的鎖存,并將其保持到下一次比較,以使模塊輸出不同的繼電器控制狀態(tài)信號。觸發(fā)信號trig用于啟動觸發(fā)模塊及對信號比較模塊中的計數(shù)器清零,以判定一定間隔時間后的臺面狀態(tài)變化情況。其時序如圖2所示。
2.2 信號觸發(fā)模塊
臺面位置發(fā)生變化后,在振動時,兩個光纖輸出的脈沖占空比就會發(fā)生變化。因此需要測量兩路信號在一個振動周期內(nèi)的高電平寬度,其測量電路如圖3所示,其中上半部分用于脈沖串一的高電平測量,下半部分用于脈沖串二的高電平測量。
信號觸發(fā)模塊工作流程是在觸發(fā)信號trig上升沿到來時打開觸發(fā)器,以等待兩路待測信號上升沿到來;當任意一路信號(假設(shè)第一路信號signall先到來)的上升沿到來后,將該路計數(shù)允許與門打開,并將參考時鐘傳遞給下一級(即比較模塊),然后將該路觸發(fā)器關(guān)閉,同時打開第二路信號的關(guān)斷觸發(fā)器。因此,當?shù)谝宦沸盘杝ignall的高電平過去后,隨著第二路信號signal2上升沿的到來,系統(tǒng)將關(guān)斷第一路計數(shù)允許與門,停止計數(shù),同時打開第二路計數(shù)允許與門,開始第二路信號的高電平寬度測量。第二路測量原理同第一路,最后再輸出兩路信號高電平寬度測量完成信號。由于觸發(fā)器的關(guān)斷,每次觸發(fā)僅將一個振動周期內(nèi)的兩路信號的高電平寬度轉(zhuǎn)換為參考時鐘個數(shù),從而保證了計數(shù)的準確性。
2.3 信號比較模塊
信號比較模塊的作用是判定臺面是處于靜態(tài)還是動態(tài),以便根據(jù)相應(yīng)的計數(shù)值來輸出控制字。當臺面處于振動時可以通過信號觸發(fā)模塊來比較兩路信號的高電平寬度,但是,當臺面處于靜止狀態(tài)時,光纖就沒有脈沖信號輸出,也就沒有上升沿允許計數(shù),計數(shù)值也就為零。因此,可以在下一次觸發(fā)信號trig到來前一個參考時鐘時設(shè)計一個預(yù)讀信號read,并用它的高電平來取出計數(shù)值。如果兩個計數(shù)器均為零,那么臺面處于靜止,此時可根據(jù)兩個光纖的高低電平來判斷臺面高度是否合適。反之,如果不為零,則通過兩路高電平寬度測量完成信號狀態(tài)及計數(shù)值來判定控制狀態(tài)字。其關(guān)鍵代碼如下:
2.4 輸出模塊
在預(yù)讀信號read到來前一個參考時鐘時,通過鎖存信號lock可將比較模塊輸出的繼電器控制狀態(tài)字鎖存,然后通過3-8譯碼器得到需要控制輸出的繼電器動作信號,以保持電磁閥到下一次比較模塊輸出不同的繼電器控制狀態(tài)字時再動作。其中,out3[1]為高電平時,繼電器控制充氣電磁閥動作,out3[2]為高電平時,繼電器控制放氣電磁閥動作。其電路圖如圖4所示。
3 系統(tǒng)仿真
圖5為系統(tǒng)靜止時,臺面偏向一邊時的動作狀態(tài)情況仿真波形。當臺面負載加重被壓低后,CLK1呈現(xiàn)高電平,CLK2呈現(xiàn)低電平,此時系統(tǒng)充氣電磁閥進行充氣。
圖6為系統(tǒng)振動時,臺面偏向一邊時的動作狀態(tài)情況仿真波形。當臺面負載減輕被氣囊抬高后。CLK1呈現(xiàn)30%高電平,70%低電平,CLK2則正好相反。此時系統(tǒng)放氣電磁閥動作,進行放氣。
4 結(jié)束語
通過實際帶載測試表明,此設(shè)計方案與預(yù)期要求基本一致。由于可編程邏輯器件(FPGA)具有豐富的可編程性與豐富的I/O引腳,因此,本系統(tǒng)可方便的進行在線修改而不需改動硬件電路,同時具有較高的靈活性、可靠性及穩(wěn)定性,而且價格低廉。