徐 威,蘇東海
(沈陽(yáng)工業(yè)大學(xué)機(jī)械工程學(xué)院,遼寧 沈陽(yáng) 110870)
液壓伺服系統(tǒng)被廣泛地應(yīng)用于各種工業(yè)控制領(lǐng)域[1-3],通常情況下,液壓伺服系統(tǒng)需要進(jìn)行校正才能夠使用,這個(gè)校正器也就是控制器。因而,液壓伺服系統(tǒng)控制器的設(shè)計(jì),是液壓伺服系統(tǒng)設(shè)計(jì)的重要組成部分,有時(shí)甚至起著決定性的作用[4]??刂破饕话愣紟в幸恍Q定其控制性能的參數(shù),如PID控制器的比例、積分和微分參數(shù)[5]以及模糊控制器的量化因子等[6]。這些參數(shù)需要經(jīng)過(guò)試驗(yàn)性調(diào)整,也就是所謂的參數(shù)整定,才能投產(chǎn)使用。這個(gè)參數(shù)整定過(guò)程,需要在生產(chǎn)現(xiàn)場(chǎng)或者借助仿真手段進(jìn)行,一般情況下需要經(jīng)過(guò)反復(fù)調(diào)試,才能夠最終確定。但這2種參數(shù)整定方法,都存在一定的弊端。前者的參數(shù)整定過(guò)程存在一定的安全隱患,受許多現(xiàn)場(chǎng)條件的限制(如效率、成本和安全性等),有時(shí)甚至根本無(wú)法開(kāi)展;后者需要限制在一定的軟件環(huán)境下才能開(kāi)展(如Amesim、MATLAB的Simulink環(huán)境下),整定后的控制算法需要移植到實(shí)際控制器中(如PLC、工控機(jī))[7],才能在生產(chǎn)現(xiàn)場(chǎng)發(fā)揮控制作用,而這個(gè)移植過(guò)程,可能會(huì)帶來(lái)新的問(wèn)題(如移植過(guò)程中出現(xiàn)錯(cuò)誤,軟硬件不兼容、效率低下等),如果能夠直接用實(shí)物控制器進(jìn)行參數(shù)整定,將直接提高液壓伺服控制系統(tǒng)控制器的設(shè)計(jì)效率和準(zhǔn)確性。為了解決上述2種伺服控制器參數(shù)整定方法的弊端,半實(shí)物仿真技術(shù)應(yīng)運(yùn)而生。
廣義的半實(shí)物仿真技術(shù),分為快速控制原型(rapid control prototype,RCP)和硬件在環(huán)(hardware-in-the-loop,HIL)仿真。本文將以基于Linux實(shí)時(shí)內(nèi)核的液壓伺服系統(tǒng)半實(shí)物仿真環(huán)境開(kāi)發(fā)與驗(yàn)證為研究對(duì)象,開(kāi)展硬件在環(huán)半實(shí)物仿真相關(guān)理論和應(yīng)用技術(shù)的研究。
硬件在環(huán)半實(shí)物仿真是一項(xiàng)技術(shù)含量比較高的技術(shù),要想達(dá)到對(duì)實(shí)物控制器性能的全面仿真測(cè)試,涉及到的關(guān)鍵技術(shù)包括:被控對(duì)象的數(shù)學(xué)仿真模型、仿真模型的數(shù)值求解算法、實(shí)時(shí)操作系統(tǒng)、數(shù)字量和模擬量的輸入輸出接口等內(nèi)容。
事實(shí)上,商業(yè)領(lǐng)域內(nèi)已經(jīng)成功開(kāi)發(fā)了多套半實(shí)物仿真系統(tǒng),包括dSPACE、xPC、LabVIEW RT、Opal-R、NI Veristand和Simulation WorkBench等。但上述軟硬件系統(tǒng)的采購(gòu)價(jià)格過(guò)于昂貴。本文的目的在于研究一種相對(duì)廉價(jià)而又不失可行性的接近工業(yè)級(jí)的半實(shí)物仿真系統(tǒng)的技術(shù)方案,使液壓伺服系統(tǒng)的實(shí)物控制器能在相對(duì)廉價(jià)的環(huán)境下進(jìn)行半實(shí)物仿真測(cè)試,為科學(xué)研究或者工業(yè)級(jí)的應(yīng)用探索一條可行的途徑。
實(shí)時(shí)性是硬件在環(huán)半實(shí)物仿真的必要前提。在仿真回路中接入實(shí)時(shí)控制器,必須保證仿真過(guò)程實(shí)時(shí)運(yùn)行,即仿真模型時(shí)間標(biāo)尺和自然時(shí)間標(biāo)尺相似,這樣才能驗(yàn)證控制器對(duì)實(shí)物系統(tǒng)動(dòng)態(tài)特性是否能夠正確有效的響應(yīng)。一般情況下,這需要一整套軟硬件環(huán)境的支持,才能實(shí)現(xiàn)高精度的實(shí)時(shí)性。從軟件的角度看,這通常需要實(shí)時(shí)操作系統(tǒng)的參與,但目前市面上流行的商用實(shí)時(shí)操作系統(tǒng)[8]價(jià)格昂貴,這再次拉高了液壓伺服系統(tǒng)半實(shí)物仿真的成本。為了降低半實(shí)物仿真系統(tǒng)的應(yīng)用門檻,本文介紹一種基于Linux(Ubuntu)操作系統(tǒng)加Preempt_RT(搶占式實(shí)時(shí)內(nèi)核)補(bǔ)丁的實(shí)時(shí)操作系統(tǒng)實(shí)現(xiàn)方案。由于Linux操作系統(tǒng)及其Preempt_RT補(bǔ)丁是公開(kāi)源碼的操作系統(tǒng),可以在遵守開(kāi)源協(xié)議(GNU)的條件下進(jìn)行使用、編譯和再發(fā)布,任何人都可以免費(fèi)使用,因而極大地降低了實(shí)時(shí)操作系統(tǒng)的實(shí)現(xiàn)成本。
硬件在環(huán)半實(shí)物仿真的核心思想在于用安裝有實(shí)時(shí)操作系統(tǒng)的計(jì)算機(jī)模擬實(shí)物被控對(duì)象(稱為仿真計(jì)算機(jī)),將仿真計(jì)算機(jī)與實(shí)物控制器連接起來(lái)完成仿真試驗(yàn)。因此,仿真計(jì)算機(jī)必須具備與實(shí)物控制器之間的接口。同樣出于成本和效率的因素,選用市場(chǎng)上相對(duì)廉價(jià)又不失精度的數(shù)據(jù)采集卡是一套行之有效的方案。考慮到實(shí)時(shí)操作系統(tǒng)已經(jīng)選定為L(zhǎng)inux系統(tǒng),因此,本文選用帶有Linux驅(qū)動(dòng)的研華數(shù)據(jù)采集卡作為仿真計(jì)算機(jī)的對(duì)外接口硬件。這種方案既兼顧了操作系統(tǒng)對(duì)硬件驅(qū)動(dòng)的要求,又保證了成本和精度的可控。
描述真實(shí)物理系統(tǒng)的仿真模型本質(zhì)上是1組一階微分方程或代數(shù)方程,而仿真真實(shí)物理系統(tǒng)的動(dòng)態(tài)特性其實(shí)就是求解這些微分方程或代數(shù)方程,這就涉及到數(shù)值求解算法。同樣出于成本和效率的考慮,本文選用GNU科學(xué)庫(kù)(GNU scientific library,GSL)作為微分方程數(shù)值求解算法庫(kù)。該軟件在GNU通用公共許可證下是免費(fèi)的,在保證本文開(kāi)發(fā)的半實(shí)物仿真系統(tǒng)穩(wěn)定性的前提下,進(jìn)一步降低了開(kāi)發(fā)成本,同時(shí)又保證了穩(wěn)定性和可用性。
本文要開(kāi)發(fā)的半實(shí)物仿真系統(tǒng),是以液壓伺服系統(tǒng)為仿真對(duì)象的半實(shí)物仿真系統(tǒng),因而液壓伺服系統(tǒng)的數(shù)學(xué)模型也是半實(shí)物仿真系統(tǒng)的重要組成部分。本文以閥控缸系統(tǒng)為例,介紹所開(kāi)發(fā)的液壓伺服系統(tǒng)仿真模型的建模方法。
閥控缸系統(tǒng)是液壓伺服系統(tǒng)的典型代表,其數(shù)學(xué)模型集合了流體力學(xué)中油液的彈性模型、孔口流量公式等基礎(chǔ)模型,再加上伺服閥的動(dòng)態(tài)特性方程式,共同組成了高階、非線性的微分方程組。閥控缸系統(tǒng)的原理如圖1所示。圖1中,ps和pt分別為系統(tǒng)的供油壓力和回油壓力;p1和p2分別為液壓缸無(wú)桿腔和有桿腔的壓力;xv為伺服閥芯的位移;1、2、3和4分別為伺服閥的4個(gè)節(jié)流口;y為液壓缸的位移。
圖1 閥控缸系統(tǒng)原理
(1)
m為外負(fù)載質(zhì)量;A1、A2為液壓缸無(wú)桿腔、有桿腔面積;b為外負(fù)載的粘性阻尼系數(shù);FL為外負(fù)載力;K為油液的彈性模量;V01、V02為管道至液壓缸之間的初始容積;ωv為伺服閥的固有頻率;ζv為伺服閥的阻尼比;ksp為伺服閥的增益。
值得注意的是,式(1)中的Q1和Q2為考慮了孔口流量公式非線性特性的代數(shù)方程,即
(2)
其中
(3)
Cdmax為最大孔口流量系數(shù);dx為伺服閥直徑;Δp為節(jié)流口前后壓力差;ρ為油液密度;υ為油液的運(yùn)動(dòng)粘度;λc為臨界雷諾數(shù)。
2.2.1 總體架構(gòu)
本文的半實(shí)物仿真系統(tǒng)架構(gòu)如圖2所示。
圖2 硬件在環(huán)仿真系統(tǒng)軟硬件架構(gòu)
該硬件在環(huán)仿真系統(tǒng)的硬件環(huán)境是搭建在研盛Intel/NUC工控主板MINI-ITX工業(yè)PC上的。數(shù)據(jù)采集卡選擇的是研華USB-5820、USB-5817和USB-4704。做出以上選擇的原因不僅是上述數(shù)據(jù)采集卡采集精度高(16位),而且是USB3.0總線,可以同時(shí)滿足半實(shí)物仿真系統(tǒng)對(duì)便攜性、熱插拔性、可擴(kuò)展性、采集速率和采集精度的要求。
2.2.2 硬件
選擇研華數(shù)據(jù)采集卡有3個(gè)原因:合理的價(jià)位、包含Linux系統(tǒng)驅(qū)動(dòng)、用C++封裝的可進(jìn)行底層I/O操作的biodaq庫(kù)。上述優(yōu)勢(shì)共同保證了本文所開(kāi)發(fā)的基于Linux實(shí)時(shí)內(nèi)核的硬件在環(huán)仿真系統(tǒng)的經(jīng)濟(jì)性和可行性。
USB-5817提供4條單端模擬量輸入通道,最高允許電壓為±10 V,最大電流為20 mA。USB-5820提供2條模擬量輸出通道,最高允許電壓為±10 V,最大允許電流為20 mA。USB-4704數(shù)據(jù)采集卡提供2條12位模擬量輸出通道,4條11位模擬量輸入通道,8條隔離數(shù)字輸入輸出,TTL電平。
在數(shù)據(jù)采集卡和實(shí)物控制器之間有可能出現(xiàn)電平不匹配的問(wèn)題(包括模擬量和數(shù)字量)。這時(shí),可以在數(shù)據(jù)采集卡的數(shù)字I/O口和實(shí)物控制器的數(shù)字I/O口之間添加光耦進(jìn)行電平轉(zhuǎn)化。如果數(shù)據(jù)采集卡和實(shí)物控制器之間模擬量的電壓值不匹配,可以在兩者之間添加放大器。
2.2.3 軟件
本硬件在環(huán)仿真系統(tǒng)的仿真模型采用C語(yǔ)言編寫,如前文所述,動(dòng)態(tài)系統(tǒng)的仿真模型以1組一階微分方程組來(lái)進(jìn)行描述。微分方程組的求解算法利用C語(yǔ)言調(diào)用開(kāi)源科學(xué)數(shù)值算法庫(kù)(GSL)實(shí)現(xiàn)。
值得一提的是,半實(shí)物仿真過(guò)程中的定時(shí)器的性能決定了半實(shí)物仿真系統(tǒng)的性能。借助Linux RT Preempt向?qū)9],在Linux RT Preempt環(huán)境下,高精度定時(shí)器的實(shí)現(xiàn)方式要遵循下述規(guī)則:
a.實(shí)時(shí)調(diào)度和優(yōu)先級(jí)。
b.內(nèi)存鎖定。鎖定調(diào)用進(jìn)程所有映射到地址空間的頁(yè)面,防止該內(nèi)存被分頁(yè)到交換區(qū)。
c.限制處理器的省電狀態(tài)和狀態(tài)轉(zhuǎn)換。為了防止系統(tǒng)進(jìn)入省電狀態(tài)并提供最快的空閑狀態(tài)時(shí)間,內(nèi)核用處理器引導(dǎo)。選取max_cstate=1和idle=poll選項(xiàng)。
d.禁用X窗口服務(wù)器和網(wǎng)絡(luò)接口。
只要遵循上述規(guī)則,就可以保證硬件在環(huán)仿真系統(tǒng)的實(shí)時(shí)性能和準(zhǔn)確性。
將以上軟硬件技術(shù)相結(jié)合,搭建的硬件在環(huán)仿真試驗(yàn)系統(tǒng)的實(shí)物如圖3所示。
圖3 硬件在環(huán)仿真試驗(yàn)系統(tǒng)實(shí)物
硬件在環(huán)仿真試驗(yàn)驗(yàn)證的關(guān)鍵,在于在高負(fù)荷仿真計(jì)算的情況下系統(tǒng)的實(shí)時(shí)性能。
為了驗(yàn)證本文系統(tǒng)的性能,設(shè)計(jì)了2類試驗(yàn)。第1類試驗(yàn)為實(shí)時(shí)性能驗(yàn)證,單純驗(yàn)證實(shí)時(shí)系統(tǒng)的定時(shí)器精度;第2類試驗(yàn)為全模型性能驗(yàn)證,以6階閥控缸非線性液壓伺服系統(tǒng)為硬件在環(huán)仿真對(duì)象,驗(yàn)證平臺(tái)在帶有計(jì)算負(fù)荷情況下的實(shí)時(shí)性能。
為了對(duì)硬件在環(huán)仿真系統(tǒng)實(shí)時(shí)性這個(gè)關(guān)鍵性能進(jìn)行驗(yàn)證,設(shè)計(jì)了方波發(fā)生試驗(yàn)和正弦波發(fā)生試驗(yàn),分別在Linux實(shí)時(shí)系統(tǒng)和Windows10(非實(shí)時(shí))系統(tǒng)下進(jìn)行,并用示波器觀察所發(fā)生波形的周期是否準(zhǔn)確,比較2種操作系統(tǒng)實(shí)時(shí)性能的優(yōu)劣。試驗(yàn)結(jié)果如表1和表2所示。
表1 Windows系統(tǒng)實(shí)時(shí)性試驗(yàn)結(jié)果
表2 帶實(shí)時(shí)內(nèi)核Linux系統(tǒng)實(shí)時(shí)性試驗(yàn)結(jié)果
表1中的聯(lián)合仿真是指在Windows下,利用Amesim仿真軟件與C語(yǔ)言聯(lián)合實(shí)現(xiàn)的硬件在環(huán)仿真。
由表1和表2可以知道:無(wú)論是Windows還是Linux實(shí)時(shí)內(nèi)核情況下,多線程的定時(shí)器精度都要優(yōu)于單線程的定時(shí)器精度;同等條件下,Linux實(shí)時(shí)內(nèi)核的定時(shí)器精度,要遠(yuǎn)優(yōu)于Windows的定時(shí)器精度。在Linux實(shí)時(shí)內(nèi)核的情況下,誤差是以幾十微秒至幾百微秒計(jì)的(取決于生成函數(shù)的總周期),相對(duì)定時(shí)誤差小于2%。證明本文提出的Liunx實(shí)時(shí)內(nèi)核方案滿足硬件在環(huán)半實(shí)物仿真對(duì)定時(shí)器的要求。
全模型驗(yàn)證采用經(jīng)典的閥控缸系統(tǒng),在本文所開(kāi)發(fā)的硬件在環(huán)仿真平臺(tái)上進(jìn)行仿真試驗(yàn)。
閥控缸系統(tǒng)是6階非線性微分方程,可以在一定程度上驗(yàn)證,在對(duì)高階非線性微分方程進(jìn)行數(shù)值求解的計(jì)算負(fù)荷作用下,系統(tǒng)的動(dòng)態(tài)特性的仿真結(jié)果是否會(huì)受到影響。為了驗(yàn)證硬件在環(huán)仿真的正確性,將硬件在環(huán)仿真的仿真結(jié)果和非半實(shí)物仿真(Amesim仿真軟件)的仿真結(jié)果進(jìn)行對(duì)比,如果曲線完全相同,則證明硬件在環(huán)仿真的正確性。但是,這首先要求二者的仿真參數(shù)必須一致,參數(shù)一致的情況下,才有可能達(dá)到仿真結(jié)果的一致,才有可能對(duì)實(shí)時(shí)性能進(jìn)行驗(yàn)證。全模型性能驗(yàn)證的關(guān)鍵參數(shù)如表3所示。
表3 全模型驗(yàn)證主要參數(shù)
在表3的參數(shù)下,分別在Amesim仿真軟件和本文所開(kāi)發(fā)的硬件在環(huán)仿真環(huán)境下進(jìn)行仿真運(yùn)行,采集仿真時(shí)間0~5 s的數(shù)據(jù)進(jìn)行記錄,生成的曲線如圖4所示。
圖4 系統(tǒng)階躍響應(yīng)曲線
將表3中PID控制器的比例、積分和微分系數(shù)修改為300、100和50時(shí),系統(tǒng)的階躍響應(yīng)曲線如圖5所示。
圖5 修改PID控制器參數(shù)后的階躍響應(yīng)曲線
從圖4和圖5可以看出,在相同的階躍信號(hào)作用下,Amesim仿真與HIL仿真的響應(yīng)曲線幾乎完全相同。表明硬件在環(huán)仿真系統(tǒng)在實(shí)物控制器的參與下,所得到的控制響應(yīng)曲線沒(méi)有發(fā)生變形,本文系統(tǒng)從技術(shù)上是切實(shí)可行的。
通過(guò)以上方法,就可以在硬件在環(huán)仿真的過(guò)程中調(diào)整控制器的參數(shù),安全高效。使用實(shí)物控制器進(jìn)行參數(shù)調(diào)試,整定好參數(shù)的控制器可以直接在生產(chǎn)現(xiàn)場(chǎng)應(yīng)用,從而提高了控制器的開(kāi)發(fā)效率。
本文從實(shí)用性和經(jīng)濟(jì)性出發(fā),提出了一種利用開(kāi)源操作系統(tǒng)加實(shí)時(shí)內(nèi)核補(bǔ)丁作為平臺(tái)、研華數(shù)據(jù)采集卡作為仿真器接口的硬件在環(huán)仿真系統(tǒng)方案。通過(guò)在所開(kāi)發(fā)的仿真平臺(tái)上,進(jìn)行周期函數(shù)生成以及閥控缸系統(tǒng)PID控制器階躍響應(yīng)輸出試驗(yàn),證明了本文系統(tǒng)技術(shù)上是可行的,在一定程度上能夠輔助液壓伺服系統(tǒng)控制器的設(shè)計(jì)以及參數(shù)整定工作,具備一定程度上在工業(yè)領(lǐng)域中應(yīng)用的條件。另外,本文所提出的液壓伺服系統(tǒng)的仿真模型的建立方法,也為液壓系統(tǒng)硬件在環(huán)仿真模型的建立,提供了一種可行的方案。