王 晶,魏晉宏,馮 超
(太原理工大學(xué),新型傳感器與智能控制教育部與山西省重點(diǎn)實(shí)驗(yàn)室,山西太原 030024)
?
基于嵌入式Linux的恒壓計(jì)量泵控制系統(tǒng)的設(shè)計(jì)
王 晶,魏晉宏,馮 超
(太原理工大學(xué),新型傳感器與智能控制教育部與山西省重點(diǎn)實(shí)驗(yàn)室,山西太原 030024)
為了滿足巖芯驅(qū)替實(shí)驗(yàn)對于恒壓計(jì)量泵高精度的控制要求,設(shè)計(jì)了一種基于ARM9和嵌入式Linux的恒壓計(jì)量泵控制系統(tǒng)。該控制系統(tǒng)的硬件以嵌入式芯片S3C2440為控制核心并采用模塊化設(shè)計(jì);軟件采用嵌入式Linux操作系統(tǒng)作為應(yīng)用程序的開發(fā)平臺(tái),通過運(yùn)用模糊PID控制算法來實(shí)現(xiàn)計(jì)量泵恒壓輸出的精密控制。實(shí)驗(yàn)結(jié)果表明:該系統(tǒng)控制精度高,響應(yīng)速度快,界面友好,操作便捷。
恒壓計(jì)量泵;嵌入式Linux;控制系統(tǒng);S3C2440;模糊PID
高精度恒壓計(jì)量泵處于恒壓工作模式時(shí),可以為用戶提供壓力恒定的液體動(dòng)力源,是石油、煤層氣勘探開發(fā)方面進(jìn)行巖芯驅(qū)替實(shí)驗(yàn)以及相關(guān)研究工作的重要裝置[1]。該裝置的控制系統(tǒng)大多采用工控機(jī)或8/16位單片機(jī)實(shí)現(xiàn),前者功能齊全,但成本高、體積大,后者成本低、體積小,能嵌入到設(shè)備,但受限于單片機(jī)本身的處理能力、功能及精度,可實(shí)現(xiàn)的功能非常有限[2-4]。相比之下,嵌入式系統(tǒng)則具有成本低、體積小、資源豐富以及可靠性高等特點(diǎn),可以彌補(bǔ)上述二者的不足。系統(tǒng)以高性能、低功耗的ARM處理器為控制核心,將開放源代碼的嵌入式Linux操作系統(tǒng)作為應(yīng)用程序的開發(fā)平臺(tái),通過開發(fā)應(yīng)用程序?qū)崿F(xiàn)恒壓計(jì)量泵高精度、高穩(wěn)定性工作。
1.1 恒壓計(jì)量泵的工作原理
恒壓計(jì)量泵主要由柱塞泵泵體、絲杠傳動(dòng)機(jī)構(gòu)、減速器、電磁閥、步進(jìn)電機(jī)等部分組成,其結(jié)構(gòu)如圖1所示。步進(jìn)電機(jī)開始工作后,由電機(jī)經(jīng)過減速器帶動(dòng)絲杠轉(zhuǎn)動(dòng),絲杠的轉(zhuǎn)動(dòng)帶動(dòng)液壓缸體內(nèi)的活塞桿作往復(fù)運(yùn)動(dòng),隨著活塞桿在液壓缸內(nèi)的往復(fù)運(yùn)動(dòng),通過啟動(dòng)電磁閥使得吸液閥和排液閥交替地啟閉,液體被不斷吸入和排出。通過改變活塞桿往復(fù)運(yùn)動(dòng)速度來實(shí)現(xiàn)泵的出口壓力恒定。
圖1 恒壓計(jì)量泵結(jié)構(gòu)示意圖
1.2 控制系統(tǒng)的總體設(shè)計(jì)方案
控制系統(tǒng)主要由ARM控制器、壓力變送器、限位開關(guān)、光電編碼器、電磁閥和驅(qū)動(dòng)器組成,其整體結(jié)構(gòu)如圖2所示。ARM控制器以芯片S3C2440為控制核心,通過擴(kuò)展A/D轉(zhuǎn)換器、SD卡、LCD觸摸屏等外部硬件設(shè)備來實(shí)現(xiàn)與其他設(shè)備的有效連接和控制;壓力變送器負(fù)責(zé)實(shí)時(shí)采集泵的出口壓力,將檢測到的壓力反饋到輸入端與給定量進(jìn)行比較,將產(chǎn)生的誤差通過智能控制算法得出相應(yīng)的脈沖頻率,將脈沖頻率輸入電機(jī)驅(qū)動(dòng)器來修正步進(jìn)電機(jī)的轉(zhuǎn)速,進(jìn)而控制泵的出口壓力,直至達(dá)到設(shè)定的值為止;限位開關(guān)位于泵體進(jìn)給裝置的上下兩端,當(dāng)活塞桿運(yùn)動(dòng)至缸體上下限位時(shí),觸碰限位開關(guān)使其發(fā)出數(shù)字信號給ARM控制器處理,使電機(jī)回轉(zhuǎn)至安全位置;光電編碼器與電機(jī)同軸連接,隨著電機(jī)的旋轉(zhuǎn),實(shí)時(shí)地發(fā)出脈沖,編碼器將脈沖發(fā)送到控制器進(jìn)行處理,由此實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的實(shí)時(shí)反饋;ARM控制器通過繼電器與電磁閥進(jìn)行有效連接,同時(shí)發(fā)出數(shù)字信號實(shí)現(xiàn)對電磁閥的開關(guān)控制。
圖2 控制系統(tǒng)的整體結(jié)構(gòu)
2.1 主控模塊
系統(tǒng)采用ARM9處理器S3C2440作為主控核心,該芯片采用ARM920T內(nèi)核,功耗低,具有高速的處理計(jì)算能力,可以運(yùn)行在400 MHz的時(shí)鐘頻率下。芯片的設(shè)計(jì)采用MMU、AMBA總線體系結(jié)構(gòu)和哈佛結(jié)構(gòu),集成了SDRAM控制器、FLASH控制器、LCD控制器、SPI控制器等硬件外設(shè)[5]。芯片豐富的資源使得開發(fā)人員可以直接操作系統(tǒng)移植到基于該處理器的目標(biāo)系統(tǒng)中,大大簡化了系統(tǒng)的設(shè)計(jì)。
2.2 采集模塊
系統(tǒng)采用DG系列標(biāo)準(zhǔn)型壓力變送器采集泵的出口壓力,該變送器量程0~70 MPa,準(zhǔn)確度0.25級,輸出信號4~20 mA。在S3C2440芯片的外圍電路中擴(kuò)展一個(gè)8通道12位A/D轉(zhuǎn)換芯片AD7888,將該芯片模擬輸入信號設(shè)置成0~3.3 V,因此需要將變送器輸出的4~20 mA電流信號調(diào)整至0~3.3 V的范圍內(nèi),I/V轉(zhuǎn)換電路如圖3所示。S3C2440和AD7888之間采用SPI總線進(jìn)行數(shù)據(jù)通信,S3C2440內(nèi)部集成SPI控制器,通過使用SPI0接口(包括串行時(shí)鐘線SPICLK0、主入從出數(shù)據(jù)線SPIMISO0、主出從入數(shù)據(jù)線SPIMOSI0以及低電平有效引腳nSS0)實(shí)現(xiàn)與AD7888的連接,連接方式如圖3所示。
圖3 I/V和A/D轉(zhuǎn)換電路
2.3 人機(jī)交互模塊
系統(tǒng)采用4.3英寸的四線電阻式觸摸屏作為數(shù)據(jù)顯示和控制輸入的終端設(shè)備。觸摸屏與S3C2440的接口如圖4所示。圖中,J2為LCD供電選擇信號,可使用3.3 V或5 V供電;VD[23:0]為RGB數(shù)據(jù)信號;電路中的TSXM,TSXP,TSYM,TSYP為四線觸摸屏接口,可以直接與觸摸屏相連。
2.4 存儲(chǔ)模塊
系統(tǒng)采用4 G的SD卡存儲(chǔ)采集到的壓力數(shù)據(jù)。S3C2440處理器內(nèi)部集成了SD控制器,因此,系統(tǒng)采用SD總線模式驅(qū)動(dòng)SD卡。S3C2440處理器在SD模式下使用6根信號線和SD卡進(jìn)行通信,即時(shí)鐘信號SDCLK,命令/響應(yīng)信號線SDCMD,數(shù)據(jù)傳輸線SDDATA[3:0]。SD卡和S3C2440處理器的接口電路如圖5所示。
圖5 SD卡接口電路
3.1 嵌入式Linux系統(tǒng)的搭建
為了更好地管理控制系統(tǒng)中的各項(xiàng)任務(wù),提高控制系統(tǒng)的穩(wěn)定性和實(shí)時(shí)性,需要在S3C2440芯片上搭建操作系統(tǒng)。目前較為流行的嵌入式操作系統(tǒng)有Linux、VxWorks、WinCE等,但VxWorks、WinCE這些操作系統(tǒng)價(jià)格昂貴,不適合低端嵌入式產(chǎn)品開發(fā),而且其源代碼的封閉性在很大程度上限制了開發(fā)者的開發(fā)[6]。嵌入式Linux以其良好的可裁剪性和開源免費(fèi)優(yōu)勢被廣泛應(yīng)用于工業(yè)控制領(lǐng)域[7],所以系統(tǒng)采用嵌入式Linux操作系統(tǒng)。針對S3C2440的軟硬件資源,通過移植引導(dǎo)程序u-boot、裁剪定制Linux內(nèi)核、構(gòu)建根文件系統(tǒng)yaffs2以及編寫和加載系統(tǒng)所需的驅(qū)動(dòng)程序來完成嵌入式Linux操作系統(tǒng)的搭建。
3.2 應(yīng)用程序設(shè)計(jì)
應(yīng)用程序的設(shè)計(jì)采用集成開發(fā)環(huán)境Qt-Creator,在Qt/Embedded C++圖形用戶界面庫下完成人機(jī)界面以及底層控制程序的開發(fā)。
應(yīng)用程序主要包含如下模塊:系統(tǒng)初始化模塊、數(shù)據(jù)采集模塊、控制決策模塊以及數(shù)據(jù)存儲(chǔ)和顯示模塊??刂葡到y(tǒng)應(yīng)用程序的流程圖如圖6所示。系統(tǒng)初始化模塊主要完成相關(guān)硬件設(shè)備的初始化,包括配置系統(tǒng)時(shí)鐘、定時(shí)器初始化、系統(tǒng)變量初始化等;采集模塊控制傳感器定時(shí)采集泵出口壓力;數(shù)據(jù)的存儲(chǔ)模塊負(fù)責(zé)把采集來的數(shù)據(jù)進(jìn)行融合處理后送SD卡進(jìn)行存儲(chǔ);人機(jī)交互模塊完成壓力數(shù)據(jù)的顯示和歷史數(shù)據(jù)的查詢;控制決策模塊根據(jù)采集到的壓力數(shù)據(jù),利用模糊PID算法實(shí)現(xiàn)計(jì)量泵恒壓輸出。
圖6 應(yīng)用程序流程圖
3.3 系統(tǒng)控制算法設(shè)計(jì)
由于恒壓計(jì)量泵控制系統(tǒng)比較復(fù)雜,存在非線性、時(shí)變等環(huán)節(jié),難以建立精確的數(shù)學(xué)模型,采用傳統(tǒng)的PID控制算法效果較差。模糊控制作為一種智能控制算法,可以解決具有非線性、時(shí)變環(huán)節(jié)的復(fù)雜系統(tǒng)的控制問題。因此,系統(tǒng)采用將模糊控制和PID控制相結(jié)合的模糊PID算法進(jìn)行系統(tǒng)控制。
3.3.1 模糊PID控制器的設(shè)計(jì)
模糊PID控制器主要由參數(shù)可調(diào)整的PID控制器和模糊推理器2部分組成,其控制原理如圖7所示。在控制過程中通過不斷檢測泵出口壓力的跟蹤誤差e(k)=y(k)-r(k)和誤差變化率ec(k)=e(k)-e(k-1)兩個(gè)輸入量的大小,依據(jù)模糊推理方法實(shí)現(xiàn)對參數(shù)Kp、Ki、Kd的在線調(diào)整,以滿足不同時(shí)刻誤差e(k)和誤差變化率ec(k)對PID控制器參數(shù)自整定的要求。
圖7 模糊PID控制原理
所設(shè)計(jì)控制器中,e(k)、ec(k)、ΔKp、ΔKi、ΔKd的論域均設(shè)定為{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},其模糊子集為{NB,NM,NS,ZO,PS,PM,PB},其中子集中的元素分別代表負(fù)大、負(fù)中、負(fù)小、零、正小、正中、正大。選取三角形函數(shù)作為e(k)、ec(k)、ΔKp、ΔKi、ΔKd變量的隸屬函數(shù)。根據(jù)上述控制規(guī)則并結(jié)合專家經(jīng)驗(yàn),制定出了ΔKp、ΔKi、ΔKd的模糊控制規(guī)則表。模糊控制規(guī)則表如表1所示。
表1 Kp、Ki、Kd的模糊控制規(guī)則表
依據(jù)模糊規(guī)則,采用加權(quán)平均法進(jìn)行去模糊化,將模糊推理結(jié)果轉(zhuǎn)化為精確值。PID參數(shù)Kp、Ki、Kd可通過式(1)在線計(jì)算得到,從而完成對PID控制器3個(gè)參數(shù)的整定。
(1)
3.3.2 控制算法的實(shí)現(xiàn)
通過壓力變送器和光電編碼器分別檢測到泵的出口壓力和步進(jìn)電機(jī)轉(zhuǎn)速,然后計(jì)算得出壓力誤差值e和壓力誤差變化率ec,利用模糊PID控制器對誤差值進(jìn)行自整定,將壓力校正值轉(zhuǎn)化為相應(yīng)的脈沖頻率u(k)后輸入步進(jìn)電機(jī),調(diào)節(jié)步進(jìn)電機(jī)轉(zhuǎn)速,從而形成控制系統(tǒng)的閉環(huán)控制??刂扑惴鞒倘鐖D8所示。
圖8 控制算法流程
在系統(tǒng)的測試中,將計(jì)量泵應(yīng)用于巖芯驅(qū)替試驗(yàn),用蒸餾水作為流體介質(zhì),并且采用觸摸屏對系統(tǒng)進(jìn)行操作,人機(jī)控制界面如圖9所示。恒壓控制精度試驗(yàn)是在0~40 MPa的壓力輸出范圍內(nèi),試驗(yàn)分別記錄了壓力設(shè)定值為20 MPa和40 MPa時(shí)的實(shí)際壓力值,根據(jù)采集到的實(shí)時(shí)數(shù)據(jù)得出相應(yīng)的壓力響應(yīng)曲線,如圖10所示。根據(jù)系統(tǒng)在穩(wěn)態(tài)狀況下采集記錄的壓力實(shí)際值,計(jì)算壓力控制精度。當(dāng)泵在20 MPa的壓力下工作時(shí),經(jīng)計(jì)算得出控制精度達(dá)到0.29%,響應(yīng)時(shí)間約為6 s;當(dāng)泵在40 MPa的壓力下工作時(shí),控制精度度達(dá)到0.89%,響應(yīng)時(shí)間約為7 s。綜上所述,控制系統(tǒng)的精度小于1%,壓力超調(diào)量小,響應(yīng)時(shí)間≤7s,滿足巖芯驅(qū)替實(shí)驗(yàn)的需求。
圖9 人機(jī)交互界面
圖10 試驗(yàn)壓力響應(yīng)曲線
針對恒壓計(jì)量泵的控制需求,設(shè)計(jì)了一種新型的基于嵌入式平臺(tái)的恒壓計(jì)量泵控制系統(tǒng),該系統(tǒng)融入了嵌入式ARM-Linux控制技術(shù)和模糊PID控制技術(shù),解決了計(jì)量泵高精度輸出恒定壓力的問題。該控制系統(tǒng)已經(jīng)在實(shí)驗(yàn)室開始試用,從實(shí)驗(yàn)結(jié)果可以證明,在0~40 MPa的恒壓輸出中,精度可達(dá)1%,滿足試驗(yàn)需求;同時(shí),系統(tǒng)采用了觸摸屏輸入與液晶屏顯示相結(jié)合的人機(jī)交互,使得參數(shù)設(shè)置、數(shù)據(jù)的實(shí)時(shí)顯示與存儲(chǔ)變得直觀和易于操作,大大提高了巖芯驅(qū)替試驗(yàn)設(shè)備的智能化程度。
[1] 高冰,楊名利,沈毅,等. 基于ARM9的恒壓恒速雙缸泵控制系統(tǒng). 計(jì)算機(jī)工程,2009,35(12):211-213.
[2] 楊友平,翁惠輝,鄒友志. 精密柱塞泵控制系統(tǒng)的設(shè)計(jì). 機(jī)械工程與自動(dòng)化,2006(6):94-96.
[3] 羅曼,周永乾,葉獻(xiàn)方. 精密恒壓泵控制系統(tǒng)軟件設(shè)計(jì). 儀表技術(shù)與傳感器,2005(9):49-51.
[4] 王曉爽,葉獻(xiàn)方. 高壓高精雙缸柱塞泵控制系統(tǒng)的設(shè)計(jì). 電機(jī)與控制應(yīng)用,2008,35(4):60-63.
[5] 王楠,蔣薇,嚴(yán)偉,等. 光刻機(jī)智能控制系統(tǒng)設(shè)計(jì). 紅外與激光工程,2013,42(S2):317-322.
[6] 劉小春,張有為,向偉. 嵌入式Linux下Qt/Embedded應(yīng)用關(guān)鍵技術(shù)研究. 微計(jì)算機(jī)信息,2007,23(35):62-63.
[7] 張志斌,李笑,夏虹. 基于S3C2440的嵌入式膝關(guān)節(jié)康復(fù)訓(xùn)練器控制系統(tǒng). 傳感器與微系統(tǒng),2010,29(12):105-107.
Design of Control System about Constant Pressure Metering Pump Based on Embedded Linux
WANG Jing,WEI Jin-hong,FENG Chao
(Taiyuan University of Technology, Key Lab of Advanced Transducers and Intelligent Control System, Ministry of Education and Shanxi Province, Taiyuan 030024, China)
In order to meet the high precision control requirements of constant pressure metering pump in core displacement experiment,a control system of constant pressure metering pump based on ARM9 and embedded Linux was designed. Its hardware was based on embedded chip S3C2440 as control core and the modular design was adopted. The embedded Linux operating system was used as development platform of application program and fuzzy PID control algorithm was adopted to achieve precise control of constant pressure output for metering pump. The results show that the system has many advantages such as high control precision,fast response, friendly interface and convenient operation.
constant pressure metering pump;embedded Linux;control system;S3C2440;fuzzy PID
國家自然科學(xué)基金項(xiàng)目(U1261102)
2015-02-07 收修改稿日期:2015-06-30
TP274
A
1002-1841(2005)11-0052-04
王晶(1988—),碩士研究生,主要研究領(lǐng)域?yàn)闄C(jī)電系統(tǒng)及生產(chǎn)過程智能控制。E-mail:wj0895@126.com 魏晉宏(1965—),副教授,博士,主要研究領(lǐng)域?yàn)闄C(jī)電系統(tǒng)及生產(chǎn)過程智能控制。E-mail:68506633@qq.com