摘要:由于高壓氣體注入密閉容器時的速度要求精確控制,需要一種響應(yīng)迅速,,且較為容易實現(xiàn)計算機精確控制的充氣系統(tǒng),。該氣體壓力閑環(huán)控制系統(tǒng)由PC104 VDX6354微電腦和步進電機實現(xiàn)控制功能,基于VC++和Matlab混合編程,,由PC機根據(jù)精密數(shù)字壓力表實時傳輸來的數(shù)據(jù)建立氣壓預測模型,,閉環(huán)控制步進電機,調(diào)節(jié)精密閥門的開度,,從而確保工作氣體的高精度恒壓注入,。在步進電機控制模塊引入坐標系,成功解決電機的碰撞問題,。
關(guān)鍵詞:PC104,;步進電機;閉環(huán)控制,;混合編程
0 引言
氣體壓力的自動化測試和控制是一個古老而又不斷更新的課題,,隨著自動控制和計算機技術(shù)迅猛發(fā)展,給氣體壓力控制技術(shù)帶來了深刻的影響,。精密氣壓的產(chǎn)生與控制技術(shù)應(yīng)用越來越廣泛,,特別是應(yīng)用于液壓和氣動設(shè)備的檢驗,對氣壓的控制精度和控制穩(wěn)定性提出了越來越高的要求,。目前,,現(xiàn)代工業(yè)生產(chǎn)日益復雜化,,為滿足生產(chǎn)條件和產(chǎn)品精密的要求,必須不斷改進信號采集和控制的方式方法,,向更加快捷,、高效,、準確,、實時以及遠程控制的方向發(fā)展。氣體控制是利用各種控制元件(各種閥,、缸等)和控制器,,組成控制回路,以進行自動控制,。
在某型裝備測試操作中,,需要往高壓氣瓶中注入高壓工作氣體,高壓氣體在注入的過程中出于安全起見需要精確控制充氣速度,。因此,,本文采用閉環(huán)控制系統(tǒng)通過計算機對氣體管路進行實時控制,在裝置運行過程中根據(jù)壓力表反饋的數(shù)據(jù),,動態(tài)調(diào)節(jié)閥門的開啟度,,控制充氣速度在合適的范圍。
1 整體方案設(shè)計
對氣閥的流速做出控制,,最簡單易行的方法就是改變進氣時氣流流通的橫截面積,,可以通過在進氣道中設(shè)置一錐形活塞,通過精確控制錐形活塞的行程來改變進氣道流通面積,,而精確控制錐形活塞的行程可以通過步進電機帶動絲桿傳動系統(tǒng),,做出精確位移來實現(xiàn)。
整個閉環(huán)控制系統(tǒng)由PC系統(tǒng),、氣體管路系統(tǒng)和步進電機系統(tǒng)構(gòu)成,。在VC++2005環(huán)境下,由PC系統(tǒng)控制壓力表實時采集管路的壓力值,,實時數(shù)據(jù)經(jīng)過Matlab的多項回歸處理,,得出壓力的實時變化快慢來閉環(huán)控制步進電機調(diào)節(jié)精密閥門開度,實現(xiàn)氣閥充氣速度的自動控制,。
1.1 硬件設(shè)計
系統(tǒng)以ICOP最近推出的一款功能齊全完美的PC104單板電腦VDX-6354為核心,,主板采用標準PC104結(jié)構(gòu),小尺寸并擁有完整性的功能,,運算時的穩(wěn)定度高,,執(zhí)行速度快,功耗低,,-40~+85℃的軍工級工作溫度,。
步進電機控制系統(tǒng)選用RORZE系列,,通過RS 232總線和電腦通信,包括RD-023MS驅(qū)動器,、RC-002電平變換器和RC-233定位主控器,、RM2414 S步進電機。該系列步進電機系統(tǒng),,以程序取代人的操作,,配備功能強大的編碼器,利用RD-023MS驅(qū)動器,,不需要外接脈沖信號和驅(qū)動電路,,通過程序指令控制電機實現(xiàn)正轉(zhuǎn)、反轉(zhuǎn),、加速,、減速、查詢,、定位等功能,。RC 233定位主控器可以有80,320,,1,,64,50,,400幾種細分,,滿足不同速度的需求。
壓力表選用ACD-2精密數(shù)字壓力表,,它是一款高精度智能測量儀表,,由壓力傳感器和信號處理電路組成。壓力傳感器采用進口傳感器,,性能優(yōu)越,,具有精度高、抗腐蝕,、抗沖擊,、抗震動、高穩(wěn)定性等優(yōu)點,,可靠性高,。壓力表通過RS 485接口與電腦通信連接,驅(qū)動和控制程序簡單,,氣壓表12 V直流電壓供電,。由于RS 485串行接口屬于一種差分標準,允許1對雙絞線上1個發(fā)送器驅(qū)動多個負載設(shè)備,,RS 485通信多用在主從式多機通信中,,但其作為一種半雙工的通信方式,,在1條通信電纜上掛許多設(shè)備時,一定要保證在總線上只有1臺設(shè)備處于發(fā)送狀態(tài),,其他設(shè)備一定要處于接收狀態(tài),;而一旦同時2臺設(shè)備都處于發(fā)送狀態(tài),必然會出現(xiàn)總線沖突的現(xiàn)象,。針對上述問題,,解決的關(guān)鍵是一定要控制好各臺設(shè)備的接收與發(fā)送狀態(tài)即RS 485接口器的收發(fā)狀態(tài),本系統(tǒng)中兩個壓力表工作時間不同步,,可以避免這種收發(fā)沖突,。
氣體管路組件選用寧波星箭航天機械廠的過濾器,、截止閥,、閥門和導管,硬件系統(tǒng)示意圖如圖1所示,。
1.2 軟件設(shè)計
軟件部分通過網(wǎng)絡(luò)接口實現(xiàn)遠程編程,,在其他電腦上Windows XP環(huán)境下用VC++2005和Matlab混合編程,最后將可執(zhí)行文件以靜態(tài)庫的形式移植到單板電腦上運行,,分為主程序模塊,、硬件驅(qū)動模塊、數(shù)據(jù)處理模塊三個部分,,后兩個部分均以類的形式封裝,。VisualC++是Windows平臺下強有力的高級編程語言,能夠方便快速地開發(fā)出界面友好,,執(zhí)行速度快,,易于維護升級的系統(tǒng)軟件。然而Visual C++只提供了一些基本的數(shù)學函數(shù)庫,,當遇到復雜的數(shù)值運算時,,重新編寫程序代碼延長軟件開發(fā)周期,增加軟件開發(fā)成本,。Matlab擁有獨立的數(shù)學函數(shù)庫,,包含有大量優(yōu)化了的數(shù)學函數(shù),同時提供了對C++語言的函數(shù)接口,,用戶可以方便地在VC++的集成開發(fā)環(huán)境中調(diào)用,。但Matlab的應(yīng)用程序接口并不是很強大,,它不能傳輸除了數(shù)值之外的其他數(shù)據(jù),,而VC++卻具有強大的程序接口,能傳輸任何數(shù)據(jù),,但其進行復雜計算的能力不是很強,。因此,,若將兩者結(jié)合起來,協(xié)同工作,,必將提高軟件開發(fā)效率,。程序流程圖如圖2所示,初始狀態(tài)把閥門定在完全關(guān)閉的狀態(tài),,規(guī)定電機逆時針為正,。
1.2.1 主程序模塊
主要是聲明成員變量,調(diào)用硬件驅(qū)動模塊和數(shù)據(jù)處理模塊的已經(jīng)定義好的類函數(shù),。主程序根據(jù)氣壓表模塊輸出的壓力值,,然后用數(shù)據(jù)處理模塊進行數(shù)據(jù)分析,根據(jù)壓力值的變化來閉環(huán)控制步進電機轉(zhuǎn)動的方向,,壓力變化過快,,則需要減小精密閥門開度,電機反轉(zhuǎn),,壓力變化過慢則電機正轉(zhuǎn),,使壓力上升速度在一個安全高效的范圍內(nèi)。
1.2.2 硬件驅(qū)動模塊
硬件驅(qū)動模塊用于對硬件設(shè)計部分主要儀表的控制和驅(qū)動,,主要包括氣壓表模塊,、步進電機模塊和串口模塊,各分模塊也是均以類的形式進行封裝,。
氣壓表模塊,,表1和表2在氣壓表內(nèi)部可以進行初始設(shè)定編號01,02,,表1負責放氣時的氣壓讀數(shù),,表2負責充氣。氣壓表實時監(jiān)測高壓管路的壓力值,,實際上一秒最多可采集數(shù)據(jù)20次,,PC機通過串口模塊實時向氣壓表發(fā)送命令“@01!”、“@02!”,,通過MFC對話框的形式實時接收氣壓表返回的壓力值,,經(jīng)過數(shù)據(jù)處理,得出壓力值變化的速度來閉環(huán)控制步進電機,,使充放氣速度在一個安全高效的范圍,。
步進電機模塊,直接發(fā)送程序指令來控制電機實現(xiàn)各個動作,。電機步距角為1.8°/步,,細分50時,轉(zhuǎn)動一圈需要10 000個脈沖,在導軌上從原點至終點共需6.5圈65 000個脈沖,。這里將平面直角坐標系引入模塊中,,將步進電機的行程65 000個脈沖均分為100份,坐標原點設(shè)為閥門完全關(guān)閉點,,坐標100處閥門完全打開,。在步進電機控制中引入坐標系,可以通過對坐標點的標定來定位電機,,有以下幾大好處:
(1)利于閉環(huán)控制程序的編寫,。閉環(huán)控制可用一個循環(huán)程序來實現(xiàn),有了坐標系,,就可以方便定義一個位置變量,,以壓力變化快慢作為循環(huán)條件,位置變量作相應(yīng)的增減,,即可控制電機的正反轉(zhuǎn),,改變精密閥門的行程,調(diào)節(jié)閥門開度實現(xiàn)氣壓控制,;
(2)限制步進電機的行程,。步進電機的活動范圍限制為坐標0~100之間,在不可見系統(tǒng)中解決步進電機失步碰撞問題,,可以替代接近開關(guān)的作用;
(3)實時查詢步進電機的位置,。查詢錐形活塞所處點的坐標,,根據(jù)坐標和閥門旋轉(zhuǎn)螺旋間距,就可以得出電機的位移,,相當于一個位移傳感器,。
串口模塊,在VC++2005對話框編輯框中添加ActiveX控件Microsoft Communication Control,,給該控件命名并在對話框?qū)傩钥蚶镌O(shè)置相應(yīng)的參數(shù),,即可以直接調(diào)用串口。
1.2.3 數(shù)據(jù)處理模塊
數(shù)據(jù)處理部分采用的是VC++和Matlab混合編程的方法,,VC作為客戶端,,利用其能夠簡單地同底層硬件資源進行通信的優(yōu)點,將數(shù)據(jù)讀入到內(nèi)存中,,再將數(shù)據(jù)送到Matlab中進行數(shù)據(jù)處理,,通過調(diào)用Matlab下數(shù)字信號處理工具箱中的函數(shù)以及自己所寫的函數(shù)進行分析。選用Matl-ab的C/C++編譯器mcc,,這種混合編程方式將.m源文件轉(zhuǎn)化為C/C++等各種不同類型的源代碼,,并在此基礎(chǔ)上根據(jù)應(yīng)用需要生成MEX文件、獨立可執(zhí)行應(yīng)用程序等文件類型,大大提高程序的運行速度,,以及代碼的執(zhí)行效率,。由于氣壓表每秒采集數(shù)據(jù)20次,為了精確地實現(xiàn)閉環(huán)控制,,把20組數(shù)據(jù)進行多項式最小二乘法曲線擬合,,建立第1s內(nèi)氣壓隨時間變化的函數(shù)模型:
在Matlab中調(diào)用回歸命令:A=polyfit(T,P,,n),,其中:T=O:O.05:1;P=[p0,,p1,,…,pn,。]可以通過氣壓表的讀數(shù)得到,;A=[an,…,,a1,,a0],是多項式(1)的系數(shù),;n為多項式的次數(shù),。
預測氣壓的變化速度:
多項式擬合數(shù)據(jù)的模型隨著階次n的選擇不同而不同。雖然n+1個數(shù)據(jù)點可以確定惟一的n階多項式,,但實踐證明并不是階次越高擬合越好,,有時會發(fā)生階次越高越不精確的情況。曲線擬合時應(yīng)該根據(jù)實際情況憑借經(jīng)驗及觀察選擇擬合次數(shù),,注意檢驗結(jié)果,,比如觀察曲線是否平滑、擬合誤差是否足夠小等,,力求準確全面地描述輸入數(shù)據(jù)之間的關(guān)系,。由每秒的模型得出連續(xù)的氣壓模型函數(shù)和氣壓變化速度函數(shù),根據(jù)氣壓變化速度函數(shù)在各個時間點上的值來判斷步進電機正轉(zhuǎn)還是反轉(zhuǎn),。數(shù)據(jù)處理模塊也是以類的形式封裝起來,,供主函數(shù)調(diào)用。
2 實驗與分析
氣體壓力閉環(huán)控制裝置已經(jīng)應(yīng)用于某型裝備故障檢測中,,對高壓充氣速度進行控制,,在試驗時,裝置連接在管路中,,通過對電機的控制實現(xiàn)對充氣速度的調(diào)節(jié),,從而完成所需試驗數(shù)據(jù)的采集,。通過多次試驗,驗證了系統(tǒng)的穩(wěn)定可靠性和高精度的控制充氣速度,。
3 結(jié)論
氣體壓力閉環(huán)控制系統(tǒng)的設(shè)計在某型裝備故障檢測中已得到較好的實現(xiàn),。設(shè)計中無論是硬件還是軟件系統(tǒng)中都采用模塊化的設(shè)計方法,這使得系統(tǒng)擴展起來比較方便,,系統(tǒng)可移植性高,,增加了系統(tǒng)的靈活性和可靠性,具有廣泛的適應(yīng)性,。坐標系引進步進電機行程的方法,,可以成功解決步進電機失步碰撞問題,能夠確保系統(tǒng)正常運行,。