邢秋君 焦宗夏 吳 帥
(北京航空航天大學飛行器控制一體化技術重點實驗室,北京 100191)
一種基于容腔節點的液壓系統建模語言及實現
邢秋君 焦宗夏 吳 帥
(北京航空航天大學飛行器控制一體化技術重點實驗室,北京 100191)
為實現直觀面向系統原理圖對液壓系統建模,提出了一種基于容腔節點法的液壓系統建模語言和一套新的建模語言描述規則,并闡述了利用該建模語言進行程序實現的方法.該建模語言將液壓系統的拓撲結構抽象成具有容腔節點和元件節點的圖形結構.液壓元件模型獨立封裝,可模塊化使用.在建模語言描述規則的基礎上,生成容腔節點與元件節點的連接矩陣.所有節點和連接矩陣構成了系統的整體模型.通過典型智能液壓泵系統建模過程,驗證了該建模描述語言的正確性和有效性.結果表明:該基于容腔節點的液壓系統建模語言可方便建立符合液壓系統原理的拓撲圖,并面向系統原理圖自動生成系統模型.
液壓系統;仿真;建模語言
液壓系統的建模仿真研究從 20世紀 70年代初到今,發展了很多成熟的液壓系統動態建模仿真軟件[1].比較典型的有法國的 AMESim[2],美國的 EASY5[3],德國的 DSH[4],以及英國巴斯大學的 Bathfp.AMESim采用鍵合圖方法建模,為用戶提供了一個時域的建模仿真環境.通過模型庫的概念,采用易于識別的標準 ISO圖標和簡單直觀的多端口窗口,構建系統原型,使用戶能借助其友好的、面向工程應用,研究任何元件或回路的動力學特性[2].EASY 5是一個基于圖形的用來對動態系統進行建模、分析和設計的軟件,其建模主要面向由微分方程、差分方程、代數方程及其方程組所描述的動態系統.模型直觀地由基本的功能性圖塊組裝而成[3].德國亞琛工大的 DSH采用了容腔節點法,用 FORTRAN語言編寫,描述方法比較陳舊,最初主要用解釋執行,制約了其發展.后來開發了面向圖形界面的 DSHplus仿真軟件系統,但是用的也主要是原來的內核.浙江大學對其進行了進一步發展,開發了 ZJUSIM[4-6].
為實現可直觀面向系統原理圖建模,本文提出了一種新的建模語言,方便實現,且容易進行二次開發,引入其他學科模型.綜合各種液壓系統建模方法,容腔節點法可更加直觀地面向系統原理圖來建立系統模型.因此,以下從圖論的基本思想出發,提出了一種基于容腔節點法的液壓系統建模描述方法和一套新的建模語言規則.容腔節點法是基于各構件之間的能量或信號傳遞經過液壓管道實現的思想[7],基于基爾霍夫節點法則,每個容腔都有一個壓力變量,通過流量連續方程表達,是由流量變量到壓力變量的過程.而所有流量變量都由液壓元件提供,因此液壓元件在與容腔相連時,只要給出元件所有端口上的輸入輸出流量關系即可.壓力與流量變量的交替銜接,組成了可求解的微分方程組.液壓系統建模過程需包含建模平臺支持(數據庫、知識庫等)、前處理(模型描述、模型生成等)、解算和后處理(結果可視化、數據分析等),本文主要討論前處理部分.
圖 1表示的是壓強為 p,體積為 V的容腔節點,其流量連續方程表示為


圖 1 容腔節點示意圖
圖 2是一種用圖形拓撲結構來描述的液壓系統示意圖.
基于容腔節點法建模的圖形描述遵循 2個規則:①液壓系統圖形拓撲關系由節點和連接組成.節點分為兩種:元件節點和容腔節點.元件節點又分為液壓元件節點和非液壓元件節點;②液壓元件節點之間不能直接連接,兩液壓元件節點之間如果沒有非液壓元件節點,則自動插入容腔節點.當兩個容腔節點連接時,自動合并為一個容腔節點.

圖 2 采用圖形建模語言描述的拓撲原理圖
定義 1 節點是構成系統的基本元素,是液壓系統圖形建模語言描述的最小組成部分.節點是具有屬性的,每一節點都具有唯一不可重復的標識.
1)容腔節點記作數組 V,其節點屬性有:
標識:即序號,記作 id;
容腔體積:容腔節點的唯一參數,記作 volume;
支路數量:記作 nQ;
壓強:容腔節點的變量,記作 p;
微分方程:容腔的流量連續方程,記作dotf(·).
2)液壓元件節點記作數組 C,其節點屬性包括有:
標識:即序號,記作 id;
元件類型:用以區分元件節點的種類,記作type,如可設定 01為雙出桿液壓缸,02為恒壓變量泵,03為伺服閥等;
端口數量:記作 ncom;
端口序號:記作數組 com;
端口屬性:端口屬性分為液壓、機械、電氣等,用 0,1,2等區分.記作數組 comtype,次序對應端口序號;
端口變量:記作數組 va,端口變量包括輸入或輸出流量,對于非液壓端口,則針對不同元件,具有不同變量.各端口變量在數組中的位置對應端口次序;
內部變量:元件隱形變量,前幾位是按照端口順序的壓力變量,后面是元件的內部變量.記作數組inva;
參數:元件自身的內部參數,記作數組 parameter;
代數方程:記作函數 fun(·);
微分方程:記作函數 dotf(·).
3)非液壓元件節點記作數組 D,其節點屬性包括有:
標識:即序號,記作 id;
輸入量端口號:記作數組 incom;
輸出量端口號:記作數組 outcom;
輸入端變量:分別對應 incom順序的變量名,記作數組 invars;
輸出端變量:分別對應 outcom順序的變量名,記作數組 outvars;
輸入端連接元件:分別對應 incom順序的連接元件名,記作數組 ins;
輸入端連接元件端口:分別對應 ins元件數組的端口號,記作數組 inscom;
輸出端連接元件:分別對應 outcom順序的連接元件名,記作數組 outs;
輸入端連接元件端口:分別對應 outs元件數組的端口號,記作數組 outscom;
參數:元件自身的參數,記作數組 para;
代數方程:記作函數 fun(·);
微分方程:記作函數 dotf(·).
按照節點屬性的定義,任一節點都可根據其分類、按照其屬性定義順序,用上述標準形式的語言描述,記作:

只要給定節點描述中所有變量和方程,即可完整描述出惟一確定的節點.
定義 2 圖形拓撲結構中容腔節點和液壓元件節點之間的連接關系可以用矩陣的方式表達,矩陣中的元素所代表的數字表示容腔和對應元件的連接端口號,稱該矩陣為連接矩陣,記作 Z.
如系統中有 m個容腔,n個元件,則 Z記作m×n的矩陣,行為容腔節點序號,列為液壓元件節點序號,zij則表示第 i個容腔和第 j個元件的連接端口,如不相連,則 zij為 0.這樣就能得到容腔系列的通用方程描述公式:

其中,i=1,2,…,m;pi表示第 i個容腔的壓力;Vi是第 i個容腔的體積屬性;k=zij;Qjk表示第 j個元件端口 k的流量,規定流入元件的流量為負,流出元件流量為正,且

對于圖 2所示系統,連接矩陣述為

非液壓元件已將其連接關系表達在本身的屬性定義中,故在連接矩陣中不用再考慮.
定義 3 節點和連接矩陣構成了系統,記作S.基于模塊化建模思想,可將一個系統封裝成為另一個系統的標準子系統模塊,從而達到模型反復利用,方便建模的目的.對于由液壓元件做起點和終點的局部液壓系統定義成子系統,記作SubS.
這里子系統可看作一種特殊的元件,子系統的封裝形式可描述為:
類型:記作 type;
端口序號:即子系統與其他外部節點連接的端口編號,記作數組 Scon;
端口變量:即對應端口序號的變量,記作數組Sconvar;
參數系列:即子系統內部的所有參數,記作數組Spara;
節點系列:即子系統內部的所有節點,記作數組Snode;
連接矩陣:即子系統內部基點之間的連接關系Scn;
變量系列:即子系統內部的所有變量,記作數組Svars;
內部代數方程系列:即子系統內部的所有代數方程,記作數組 Sfun;
內部微分方程函數系列:即子系統內部的所有微分方程,記作數組 Sfun.
將圖 2所示系統封裝為子系統,組成新的系統,如圖 3所示.新系統只關心連接端口 C4端口2和 C5端口 2的變量.而連接端口變量的獲得需要訪問子模型內部,是一種嵌套關系.子系統封裝中包括所有節點列表、連接矩陣和所有變量,參數以及函數,故連接端口變量可以計算得到.

圖 3 子系統作為特殊元件的圖形建模
液壓系統建模語言需轉化成 VC++環境中的程序語言來實現.各種類型節點都有固定的封裝格式,且為實現元件的模塊化建模,典型元件以類的形式封裝,為元件節點類的衍生類.
采用多態機制中的虛函數技術,允許在不破壞父類封裝的情況下,實現以同名函數的形式調用不同衍生類對象的函數或變量[8].建立只含有兩個空函數的類 Node,用來表示代數方程fun(·)和微分方程 dotfun(·),在衍生類中再定義具體內容.所有節點類都是其衍生類.容腔節點封裝為 V_Node類,在程序中節點封裝如表 1所示.液壓元件節點封裝為 C_Node類,如表 2所示.非液壓元件封裝為 D_Vode類,如表 3所示.

表 1 V_Node類的節點封裝

表 2 C_Node類的節點封裝

表 3 D_Node類的節點封裝
取構成飛機液壓系統的典型元件(液壓缸、液壓泵和伺服閥)為例,來說明元件模型的封裝方式.
1)液壓缸.液壓缸是由一定運動速度的活塞和兩個腔體組成.容腔與所接管路一并考慮,提取為容腔節點,這樣液壓缸等價于慣性節點.圖 4所示雙出桿缸封裝為 Cylinder_Double類,其主要特性方程分為兩部分:活塞運動所帶來的流量變化,為代數方程,以及活塞運動方程,為微分方程,具體表示為

其中,p1,p2為兩腔壓力;Q1,Q2為流入、流出液壓缸的流量.

圖 4 雙出桿液壓缸的程序封裝示意
2)液壓泵.將腔體提取為單獨的容腔節點,液壓泵是一個液壓系統的能量發生點.以圖 5所示的恒壓變量泵為例,封裝為 Pump_Constant_P類.其中代數方程是泵出油量:


圖 5 恒壓變量泵的程序封裝示意
3)伺服閥.伺服閥一般認為是阻性元件,圖6所示的伺服閥有 5個連接端口,代數方程含 4個端口的流量方程和開啟電流到開口量的傳遞函數,這里不展開敘述.封裝為 Servovalve類.

圖 6 伺服閥的程序封裝示意
液壓元件是元件節點的衍生類,而這些典型元件又是液壓元件的二級衍生類.其繼承關系如圖 7所示.

圖 7 節點類的繼承關系
常見節點、連接矩陣以及典型元件的封裝定義保存為頭文件,作為標準模塊供使用者調用.在源文件中進行液壓系統建模,共分為以下步驟:
1)對照液壓系統結構圖,按照建模語言描述規則,生成圖形拓撲結構,依次創建和描述節點類對象和連接矩陣.如創建容腔節點對象,確定其屬性參數 volume,nQ等.

生成連接矩陣,并創建液壓元件,如伺服閥元件,對其參數賦值:

創建非液壓元件對象及賦值:

2)方程列表的獲取:對于液壓系統,方程列表包含兩部分:容腔節點和元件節點.容腔節點系列的方程可根據式(2)得到.所有元件節點的方程可根據元件定義得到.所有節點均為Node類的衍生類,定義 Node類指針數組:vector<Node*>list.然后將液壓元件節點類對象和非液壓元件節點的類對象依次保存在 equ_list數組中:

(*equ_list[m]).fun(·)表示第 m個節點的代數方程,(*equ_list[m]).dotf(·)表示微分方程.
液壓元件節點的方程中用到的液壓類型端口的壓力變量,可由連接矩陣 Z得到.當 k=zij≠0時,則對于 i=1,2,…,m,j=1,2,…,n,m和 n分別是連接矩陣的行數和列數,都有

其中,pjk為第 j個元件端口 k的壓力.子系統的封裝模型中已定義好其方程列表,故可直接調用.
3)方程解算:得到函數列表,采用常見的數值計算方法,如龍格庫塔法,就可對微分方程組進行解算.微分方程組每一步解算都需要進行一次代數方程運算.
圖 8是一個智能泵系統,Ur是要跟蹤的壓力控制信號,通過壓力傳感器 Us/P實時檢測出口壓力,并反饋給系統輸入,經過反饋比較之后,用PID控制器實時控制伺服閥開口,進一步實現控制液壓缸的輸出位移和變量泵的斜盤角度,恒壓變量泵通過改變斜盤傾角來控制流量,通過節流負載達到控制壓力的目的[8],Ux/x是位移傳感器.圖 9為對應的圖形拓撲結構圖.

圖 8 智能泵系統結構

圖 9 圖形拓撲結構圖
在.h文件中,添加包含節點、連接矩陣以及典型元件定義的頭文件.在.cpp用戶文件中,按照拓撲圖定義所有對象:其中 3個容腔節點分別對應液壓泵及周圍管路容腔,和伺服閥左右腔及周圍管路,定義和部分賦值表達如下:

4個元件節點分別對應恒壓變量泵、節流閥、伺服閥、液壓缸.定義和部分賦值表達如下:

6個非液壓元件節點:對應用斜盤傾角到活塞桿的機械連接、位移傳感器、壓力傳感器、信號比較器 2、信號比較器 1、PID控制器.同上對其定義和賦值.連接矩陣 m_z描述為

特殊液壓元件節點自動賦值到 m_C中,非液壓元件自動賦值到 m_D中,并將其添加到節點類對象 equ_list中.自動賦值的代碼如下:
for(int j=0;j<num_of_C_node;j++)
switch(m_C[j].type)
{case 02://Pump_Constant_P類
m_C[j].ncom=3;//恒壓變量泵端口數量
m_C[j].com[3]=(0,1,2);//端口編號
m_C[j].com type[3]=(1,1,0);//對應端口屬性
m_C[j].va[3]=(m_pump.Q[0],m_pump.Q[1],m_pump.θ);//對其變量編號命名
equ_list.push_back(&m_pump);
……}
依次掃描 3個容腔節點,添加到 equ_list:for(int i=0;i<3;i++)
equ_list.pushback(m_volume[i]);
并且可通過連接矩陣獲得參數傳遞的等式:
for(int i=0;i<num_of_V_node;i++)
{m_volume[i].Q=0;
for(int j=0;j<num_of_C_node;j++)
if(m_z[i][j]!=0)
m_volume[i].Q=m_volume[i].Q+m_C[j].va[m_z[i][j]];}
最后得到的 equ_list中就包含了系統所有的代數方程和微分方程.表 4給出了一些基本仿真參數.圖 10即跟蹤壓力信號為 21MPa,調節節流閥節流孔面積,得到的斜盤傾角和出口壓力曲線.

圖 10 智能泵建模仿真結果圖

表 4 智能泵建模仿真的基本參數
基于容腔節點法的液壓系統建模語言,其主要特點:①按照其描述規則,可形成符合液壓系統原理的拓撲圖;②按照節點和連接矩陣的描述規則,節點和常用元件標準封裝,模塊化調用,加上統一規范的容腔節點的描述公式,方便模型自動生成.在今后的研究中,加入圖形化建模到建模語言描述的過程,采用編譯執行方式,或用命令流方式,就能發展成為一個完整的液壓系統仿真軟件.
References)
[1]李成功,和彥淼.液壓系統建模與仿真分析[M].北京:航空工業出版社,2008:2-6 Li Chenggong,He Yanm iao.Hydraulic system modeling and simulation analysis[M].Beijing:Aviation Industry Press,2008:2-6(in Chinese)
[2]ChengKai,Zhang Jing,DaiQunliang.Modelingand simulation of hybrid hydraulic excavator based on AMESim[C]//2010 International Conferenceon Applied Mechanicsand MechanicalEngineering.Changsha:Trans Tech,2010:2071-2075
[3]Zhang Ming,Nie Hong,Wei Xiaohui.Modeling and simulation of aircraft anti-skid braking and steering using co-simulation method[J].The International Journal for Computation and Mathematics in Electrical and Electronic Engineering,2009,28(6):1471-1488
[4]Backe W,Hoffman W.DSH-program system for digital simulation of hydraulic systems[C]//6th International Fluid Power Symposium.Cambridge:BHRA Fluid Eng,1981:95-114
[5]Hull SR,Bowns D E.Development of an automatic procedure for the digital simulation of hydraulic systems[C]//Proceeding on Computer Aided Design in High Pressure Hydraulic Systems.London:Mechanical Engineering Publ Ltd,1983:67-72
[6]吳躍斌.液壓仿真軟件 ZJUSIM的開發與參數優化研究[D].杭州:浙江大學機械工程學系,2004 Wu Yuebin.Development of hydraulic simulation software ZJUSIM and study on parameter optimization[D].Hangzhou:Department of Mechanical Engineer,Zhejiang University,2004(in Chinese)
[7]楊燦軍,金玉珍.基于分布式網絡的液壓系統仿真軟件研究[J].中國機械工程,2005,16(10):906-909 Yang Canjun,Jin Yuzhen.Study on simulation software of hydraulic system based on distributed nett work[J].Chinese Mechanical Engineering,2005,16(10):906-909(in Chinese)
[8]王世富,馬俊功,王占林.機載智能液壓泵的建模與仿真[J].中國機械工程,2007,15(5):398-401 Wang Shifu,Ma Jungong,Wang Zhanlin.Modeling and simulation of airborne intelligent hydraulic pump[J].Chinese Mechanical Engineering,2007,15(5):398-401(in Chinese)
(編 輯:趙海容)
Hydraulic system modeling language base on finite volume and implementation
Xing Qiujun Jiao Zongxia Wu Shuai
(Science and Technology on Aircraft Control Laboratory,Beijing University of Aeronautics and Astronautics,Beijing 100191,China)
To achieve schematic-oriented modeling directly on the hydraulic system,a new modeling language based on finite volume and a new set of rules to describe the modeling language were proposed,also the corresponding procedural method was described.Based on the modeling language,the topology of the hydraulic system was abstracted to graphical structure with volume nodes and elements nodes.The components model was defined and packaged independent.Coperating with describing rules,the connection matrix of volume nodes and components would be generated.The overall system model was constituted by all nodes and the connection matrix.By typical intelligent hydraulic pump modeling process,the validity and effectiveness of this modeling language was proved.The results showed that by this language,the topology was established easily,and schematic-oriented hydraulic system model was generated conveniently.
hydraulic system;simulation;modeling language
TH 137
A
1001-5965(2011)04-0499-06
2010-12-01
國家杰出青年科學基金資助項目(50825502)
邢秋君(1982-),女,山西陽泉人,博士生,silvia@asee.buaa.edu.cn.