胡峻豪, 馮 雷, 朱 睿, 李榮強(qiáng)
(中航工業(yè)成都飛機(jī)設(shè)計(jì)研究所,成都 610091)
胡峻豪 碩士,畢業(yè)于西北工業(yè)大學(xué)航天學(xué)院,現(xiàn)就職于中航工業(yè)成都飛機(jī)設(shè)計(jì)研究所,研究方向?yàn)榛谀P偷南到y(tǒng)工程、多學(xué)科聯(lián)合仿真。
由于在成本和效率方面的巨大優(yōu)勢(shì),計(jì)算機(jī)仿真已成為當(dāng)前工程研制的必要環(huán)節(jié)。但目前的計(jì)算機(jī)仿真多集中在物理仿真層面,通過建立系統(tǒng)物理模型,模擬系統(tǒng)工作原理,分析系統(tǒng)性能;對(duì)于前期需求與功能邏輯建模重視不夠,無法將系統(tǒng)的需求、功能和性能作為一個(gè)有機(jī)整體來分析、驗(yàn)證,從而造成頂層設(shè)計(jì)與專業(yè)工程設(shè)計(jì)間反復(fù)迭代。
針對(duì)上述情況,近年興起了基于模型的系統(tǒng)工程(Model-Based System Engineering,MBSE)方法論[1],在分析系統(tǒng)需求的基礎(chǔ)上,采用SysML和UML作為描述系統(tǒng)功能和行為的建模語言,使用模型狀態(tài)機(jī)精確描述系統(tǒng)的功能邏輯和故障處理模式,建立系統(tǒng)的功能模型,并通過模型的仿真、驗(yàn)證,分析需求的滿足程度和系統(tǒng)的功能邏輯流轉(zhuǎn),方便設(shè)計(jì)人員在系統(tǒng)設(shè)計(jì)早期驗(yàn)證設(shè)計(jì)的全面性和正確性。
如果能將系統(tǒng)的功能模型和物理模型聯(lián)合起來,則可用系統(tǒng)功能模型設(shè)計(jì)系統(tǒng)行為處理邏輯和故障處理模式,用其結(jié)果驅(qū)動(dòng)物理模型,并根據(jù)物理模型仿真結(jié)果改善功能模型,實(shí)現(xiàn)基于系統(tǒng)功能、物理模型的確認(rèn)、驗(yàn)證,大大降低設(shè)計(jì)成本、縮短研制周期。
但是,由于系統(tǒng)建模語言與傳統(tǒng)物理建模語言存在很大差異,導(dǎo)致同一系統(tǒng)的功能模型和物理模型難以交互和協(xié)作。Carloni等[2]通過詳細(xì)分析和比較常用工具的語義規(guī)范,提出了HSIF(Hybrid Systems Interchange Format),用以調(diào)解工具間差異,但該方法要求建模工作者深入了解軟件機(jī)理,專業(yè)需求較高;Schamai等[3]提出直接使用Modelica建立UML的狀態(tài)機(jī),但該機(jī)制的狀態(tài)機(jī)在處理可用事件時(shí),只能采用全并行的方式,對(duì)于仿真時(shí)拍不好控制;Sakairi等[4]嘗試使用S函數(shù)將Simulink模型導(dǎo)入狀態(tài)機(jī),實(shí)現(xiàn)了物理模型和功能模型的聯(lián)合仿真,但專用性太強(qiáng),不具有代表性。
基于此,本文選擇功能模型接口FMI(Functional Mockup Interface)標(biāo)準(zhǔn)協(xié)議作為橋梁,利用通用標(biāo)準(zhǔn)接口實(shí)現(xiàn)功能模型和物理模型的信息交互,提出了從系統(tǒng)需求分析、功能建模、物理建模到最終聯(lián)合仿真的支持MBSE的系統(tǒng)設(shè)計(jì)應(yīng)用框架?;诖丝蚣?,設(shè)計(jì)人員在進(jìn)行系統(tǒng)設(shè)計(jì)和驗(yàn)證時(shí),只需專注于模型本身,而不用去分析工具底層的差異。同時(shí),由于打通了功能模型和物理模型的壁壘,在工程樣機(jī)之前即可對(duì)系統(tǒng)進(jìn)行全面驗(yàn)證,減少迭代次數(shù)。
最后,運(yùn)用此設(shè)計(jì)框架設(shè)計(jì)了某飛行器的舵機(jī)伺服系統(tǒng),并對(duì)設(shè)計(jì)結(jié)果進(jìn)行了仿真分析,結(jié)果證明該系統(tǒng)設(shè)計(jì)框架能夠快速設(shè)計(jì)舵機(jī)伺服系統(tǒng),并能對(duì)其進(jìn)行全面的功能、行為和性能驗(yàn)證。
支持MBSE的系統(tǒng)設(shè)計(jì)應(yīng)用框架分為3層:功能模型層,主要描述系統(tǒng)的功能邏輯行為;FMI協(xié)議層,主要用于模型的封裝和協(xié)議標(biāo)準(zhǔn)化,實(shí)現(xiàn)不同建模工具和語言間的模型交互;物理模型層,主要用于實(shí)際系統(tǒng)的物理建模和仿真,支持MBSE的系統(tǒng)設(shè)計(jì)應(yīng)用框架如圖1所示。
功能和物理模型之間關(guān)系采用松耦合方式關(guān)聯(lián):功能模型不考慮物理模型的具體結(jié)構(gòu)和實(shí)現(xiàn),只需關(guān)注系統(tǒng)的功能邏輯;而物理模型也只用考慮真實(shí)物理系統(tǒng)工作原理,兩者通過互留的接口進(jìn)行交互。因此,功能和物理模型可分別設(shè)計(jì),并行工作,最后通過FMI協(xié)議層進(jìn)行綜合。
在依照前文中的標(biāo)準(zhǔn)完成種子的選擇之后,可以通過科學(xué)的種子處理來增加種子的抗逆性和出苗率。具體措施為先使用15℃的涼水將種子浸濕,隨后放入54℃的溫水中浸泡15分鐘,等水溫冷卻至20℃的時(shí)候再浸泡12小時(shí)左右完成浸種。在浸種完成中,需要進(jìn)行催芽處理。將浸好的種子撈出洗凈之后,用濕布包裹完好,放置于27℃左右的恒溫中催芽3天。需要注意的是,在催芽的過程中每天需要翻動(dòng)幾次包裹,并采用清水進(jìn)行淘洗。通過上述操作,可以大幅度增加種子的出芽速度和出苗率。
此外,由于FMI協(xié)議的通用性,既可以將功能模型封裝導(dǎo)入物理模型,也可以將物理模型封裝導(dǎo)入功能模型。也就是說,在設(shè)計(jì)過程中,既可以自頂向下正向設(shè)計(jì),也可以自底向上逆向驗(yàn)證、完善。
圖1 支持MBSE的系統(tǒng)設(shè)計(jì)應(yīng)用框架Fig.1 System design application framework for MBSE
本層的主要工作是采用MBSE方法論對(duì)系統(tǒng)進(jìn)行需求分析和功能建模。在需求分析和管理方面,目前已有許多成熟的工具,常見的有CaliberRM、RequisitePro、Doors等。其中,CaliberRM側(cè)重于分布式開發(fā)團(tuán)隊(duì)協(xié)作開發(fā),提高系統(tǒng)設(shè)計(jì)效率,但不支持對(duì)已有文件和信息的重用與共享;RequisitePro側(cè)重于改進(jìn)項(xiàng)目團(tuán)隊(duì)的溝通協(xié)調(diào),增強(qiáng)協(xié)作開發(fā)能力,但需求追蹤和需求變更功能較差;Doors則是基于整個(gè)項(xiàng)目的需求管理系統(tǒng),用來捕捉、鏈接、跟蹤、分析、管理信息,確保項(xiàng)目與需求和規(guī)范的一致性,是面向管理者、開發(fā)者、追蹤用戶及整個(gè)生命周期的綜合需求管理套件。
功能建模方面,通常使用系統(tǒng)建模語言(Systems Modeling Language,SysML)來創(chuàng)建系統(tǒng)結(jié)構(gòu)、行為、需求和約束的模型。主要建模方法有Weilkiens系統(tǒng)建模(System Modeling,SysMOD)方法、INCOSE面向?qū)ο笙到y(tǒng)工程方法(Object Oriented System Engineering Method,OOSEM)和IBM Telelogic Harmony-SE方 法[1]。 其 中,IBM針 對(duì) 其Harmony-SE方法配備了較成熟的建模工具—Rhapsody,該軟件能很好地覆蓋Harmony-SE方法的整個(gè)設(shè)計(jì)周期,已成為功能建模的主流選擇。
本層設(shè)計(jì)的具體實(shí)現(xiàn)過程如下:在需求分析階段采用Doors對(duì)需求進(jìn)行條目化管理,并利用Rhapsody Gateway將需求導(dǎo)入到Rhapsody進(jìn)行需求分析,得到系統(tǒng)需求分析模型,并抽取出用例。在用例基礎(chǔ)上進(jìn)行功能分析和架構(gòu)分析,建立系統(tǒng)活動(dòng)圖、順序圖,定義出系統(tǒng)應(yīng)具備的屬性、操作和行為,并細(xì)分出系統(tǒng)架構(gòu);其次,根據(jù)角色間交互關(guān)系,生成對(duì)應(yīng)端口,將得到的上述屬性、操作和行為分配到相應(yīng)的端口,得到系統(tǒng)的IBD(Internal Block Diagram)。這里需要注意的是:為滿足后續(xù)FMI的數(shù)據(jù)傳遞要求,此處定義的端口須是流端口(FlowPort)且只能為單向傳遞,各屬性必須有初值。最后,建立系統(tǒng)狀態(tài)圖??稍诿總€(gè)狀態(tài)內(nèi)通過代碼實(shí)現(xiàn)狀態(tài)邏輯判斷和處理,并通過狀態(tài)間的切換、流轉(zhuǎn)反映系統(tǒng)的功能行為邏輯。將之前得到的屬性、操作和行為合理分配,分別作為狀態(tài)出、入口動(dòng)作,狀態(tài)切換觸發(fā)器和分支判定語句,并根據(jù)需要細(xì)化和補(bǔ)充屬性、操作和行為信息,最終得到可運(yùn)行的狀態(tài)機(jī)。至此,完成系統(tǒng)功能模型的構(gòu)建。
對(duì)于邏輯清晰、結(jié)構(gòu)簡(jiǎn)單的系統(tǒng),可以省略絕大部分操作,直接定義出系統(tǒng)的輸入、輸出接口和狀態(tài)切換邏輯,建立系統(tǒng)的IBD和狀態(tài)圖,即可獲得系統(tǒng)功能模型。
FMI標(biāo)準(zhǔn)定義了兩種模型封裝形式[6]:“model exchange”和“cosimulation”。兩者最大的區(qū)別是“model exchange”需要仿真工具提供常微分方程(Ordinary Differential Equations,ODE)來執(zhí)行仿真,因此模型需要暴露出所有的內(nèi)部方程;“co-simulation”自帶模型求解器,不需要仿真工具額外提供仿真算法。
這樣看來,“co-simulation”形式似乎更方便、實(shí)用,但該方式在處理離散事件時(shí)效率不高。這是因?yàn)橄到y(tǒng)的功能模型多是基于離散事件表達(dá)的,而“co-simulation”API并不能像“model exchange”API那樣進(jìn)行下一事件時(shí)間報(bào)告。所以,本文最終選擇“model exchange”方式進(jìn)行模型的封裝[7-8]。
封裝函數(shù)基于QTronic提供的FMU SDK調(diào)用其現(xiàn)成的FMI API,使用建模軟件生成的系統(tǒng)模型代碼,封裝上滿足 FMI標(biāo)準(zhǔn)的“wrapper”,其詳細(xì)實(shí)現(xiàn)過程如下。(1)定義輸入、輸出接口和內(nèi)部變量。找到并列出所有需要與外界進(jìn)行交互的接口,并根據(jù)信息的流向分別定義為輸入、輸出端口,同時(shí)對(duì)端口的規(guī)范性進(jìn)行檢查。(2)創(chuàng)建FMU模型描述文件。按照FMI標(biāo)準(zhǔn)定義的XML文件模板,對(duì)第一步中獲得的信息進(jìn)行填充,創(chuàng)建出FMU的模型描述文件:modelDescription.xml,主要用于描述FMU的接口信息。(3)生成系統(tǒng)模型標(biāo)準(zhǔn)代碼。調(diào)用模型軟件的代碼生成器,生成待導(dǎo)出的系統(tǒng)模型代碼。(4)創(chuàng)建FMU “wrapper”。將第3步中的模型代碼按照FMI標(biāo)準(zhǔn)實(shí)現(xiàn)。FMU “wrapper”支持FMI接口并將其轉(zhuǎn)化為模型軟件對(duì)應(yīng)的接口,在“wrapper”上有對(duì)FMU響應(yīng)的各變量以及一系列內(nèi)部變量(如當(dāng)前仿真時(shí)間等)。絕大多數(shù)的FMI函數(shù)主要用于讀取或設(shè)置這些變量值,最主要的工作通過fmiEventUpdate函數(shù)實(shí)現(xiàn),其具體實(shí)現(xiàn)過程如下:根據(jù)最近一次調(diào)用fmiSetTime獲得的時(shí)間來設(shè)置模型軟件時(shí)間;根據(jù)先前的fmiSetXXX(變量名)來設(shè)置塊輸入變量;調(diào)用模型軟件生成的代碼來執(zhí)行一個(gè)行為步長(zhǎng);更新“wrapper”上FMU輸出所對(duì)應(yīng)的變量;將下一事件時(shí)間設(shè)為最早的超時(shí)門限。(5)編譯并封裝FMU。將上述步驟中的模型代碼和模型描述文件按FMI標(biāo)準(zhǔn)封裝為.fmu文件。
本層的主要功能是搭建系統(tǒng)的物理模型,模擬系統(tǒng)的真實(shí)運(yùn)行場(chǎng)景,獲取系統(tǒng)的各項(xiàng)性能指標(biāo)。
當(dāng)前各專業(yè)的仿真軟件有很多,分別為針對(duì)某一個(gè)或幾個(gè)領(lǐng)域的問題進(jìn)行建模仿真,如用于多體動(dòng)力學(xué)建模的ADAMS、控制仿真的Matlab/Simulink、機(jī)械液壓的AMESim等,但隨著當(dāng)前系統(tǒng)的規(guī)模和復(fù)雜度越來越高,單一的專業(yè)仿真軟件已無法勝任完整的系統(tǒng)建模工作[9]。
基于此,本文選擇了統(tǒng)一建模語言Modelica。它采用面向?qū)ο蠛徒M件的思想,對(duì)不同領(lǐng)域物理系統(tǒng)的模型進(jìn)行統(tǒng)一表述,實(shí)現(xiàn)統(tǒng)一建模,并且建立的模型能真實(shí)反映系統(tǒng)的拓?fù)浣Y(jié)構(gòu)。同時(shí),其基于方程的非因果建模方式極大地減輕了建模工作量(尤其是復(fù)雜系統(tǒng)),還可避免因公式轉(zhuǎn)換和推導(dǎo)引起的錯(cuò)誤,保證了模型的健壯性。此外,Modelica還支持層次結(jié)構(gòu)建模,語言本身帶有可重用的機(jī)械、電子、液壓、控制、熱流等領(lǐng)域的標(biāo)準(zhǔn)庫和擴(kuò)展庫,用戶還可建立自定義的領(lǐng)域模型庫,實(shí)現(xiàn)領(lǐng)域知識(shí)的重用。
當(dāng)前,基于Modelica的建模仿真工具層出不窮,常見的有Dymola、OpenModelica和SimulationX。其中Dymola作為Modelica的原生工具,擁有最及時(shí)的Modelica原生庫和建模規(guī)范更新,是最純粹的Modelica建模工具;OpenModelica是基于Modelica語言的開源軟件,其最大的好處是免費(fèi)且安裝方便,能滿足基本的建模需求,但模型庫匱乏、功能簡(jiǎn)單,可看作Dymola的精簡(jiǎn)版;SimulationX是德國ITI公司開發(fā)的基于Modelica的商業(yè)建模軟件,不僅有完整的Modelica模型庫,還提供了豐富的自主開發(fā)的商業(yè)模型庫,并提供二次開發(fā)平臺(tái)TypeDesigner,用戶不僅可以直接對(duì)SimulationX所有模型進(jìn)行修改,還可以基于Modelica語言創(chuàng)建新的模型,并能夠把用戶自己的C代碼模型以圖形化模塊的方式集成進(jìn)SimulationX軟件包,能滿足大型、多物理系統(tǒng)的建模需求。SimulationX還支持FMI協(xié)議,滿足本設(shè)計(jì)框架的聯(lián)合仿真需求。因此本文選擇SimulationX作為物理建模層的建模和仿真工具。
基于上述應(yīng)用設(shè)計(jì)結(jié)構(gòu),設(shè)計(jì)了某飛行器舵機(jī)伺服系統(tǒng)[10-11]??紤]到舵機(jī)伺服系統(tǒng)主要邏輯判斷和處理在舵機(jī)控制器(Actuator Control Equipment,ACE)進(jìn)行,因此功能模型主要針對(duì)ACE子系統(tǒng),其與作動(dòng)器的交互通過消息傳遞,物理模型主要針對(duì)物理作動(dòng)、執(zhí)行單元,功能和物理設(shè)計(jì)同步進(jìn)行,最后通過FMI協(xié)議層進(jìn)行模型匯總和聯(lián)合仿真。具體過程如下:
首先,采用Doors對(duì)舵機(jī)伺服系統(tǒng)的需求進(jìn)行條目化管理,并利用Rhapsody Gateway將其導(dǎo)入到Rhapsody進(jìn)行需求分析,得到該伺服系統(tǒng)的需求分析模型,如圖2所示。
其次,根據(jù)第1節(jié)中所述方法構(gòu)建系統(tǒng)功能模型,其接口IBD如圖3(a)所示;系統(tǒng)的具體功能行為和故障處理邏輯通過狀態(tài)流轉(zhuǎn)及狀態(tài)處理算法(寫在各狀態(tài)中)實(shí)現(xiàn),最終狀態(tài)如圖3(b)所示。
圖2 系統(tǒng)需求分析模型Fig.2 System requirement analysis model
圖3 系統(tǒng)功能模型Fig.3 System functional model
物理模型層則是采用SimulationX構(gòu)建舵機(jī)執(zhí)行機(jī)構(gòu)的物理模型,該執(zhí)行機(jī)構(gòu)使用“主主式”工作方式:當(dāng)單通道發(fā)生故障時(shí),另一通道接管故障通道職能,保證系統(tǒng)正常運(yùn)行。對(duì)系統(tǒng)抽象、簡(jiǎn)化后模型如圖4所示。
功能和物理模型設(shè)計(jì)完成后,即可通過FMI協(xié)議層進(jìn)行模型的匯總和聯(lián)合仿真。具體做法如下:將功能模型,通過FMI協(xié)議層封裝為FMU模型,作為帶接口的功能塊導(dǎo)入到SimulationX中,并將其接口與相應(yīng)的物理模型連接,得到系統(tǒng)的聯(lián)合仿真模型,如圖5所示;最后,給出相應(yīng)的初始信號(hào),設(shè)置好仿真求解器和步長(zhǎng),即可進(jìn)行功能和物理模型的聯(lián)合仿真。圖6為雙通道正常模式下聯(lián)合仿真結(jié)果:從圖6(a)可以看出,當(dāng)A、B通道有效性值在整個(gè)仿真過程保持為1(即正常)時(shí),舵機(jī)位置曲線(具體位置信息已作歸一化處理)如圖6(b)所示,能很好地跟隨輸入指令曲線。
圖7為單通道故障模式仿真圖。從圖7(a)中可以看出,在仿真時(shí)間40~70s時(shí),令B通道故障(即B通道有效性值為0),舵機(jī)位置響應(yīng)曲線(如圖7(b)所示)在故障切換時(shí),發(fā)生抖動(dòng)并很快恢復(fù)正常,滿足單通道故障模式下的位置跟隨。
由以上仿真分析可以看出,舵機(jī)在正常和故障模式下都能很好地響應(yīng)位置指令,并且能在發(fā)生故障時(shí)按要求進(jìn)行模式切換,在模式切換的瞬間有振顫,并且很快恢復(fù)正常,及時(shí)跟隨位置指令,達(dá)到預(yù)期設(shè)計(jì)需求。
圖4 系統(tǒng)物理模型Fig.4 System physical model
圖5 聯(lián)合仿真模型Fig.5 Co-simulation model
圖6 雙通道正常模式仿真Fig.6 Dual-channel normal simulation
圖7 單通道故障模式仿真Fig.7 Single-channel failure simulation
本文提出的支持MBSE的系統(tǒng)設(shè)計(jì)應(yīng)用框架為大型、多物理領(lǐng)域系統(tǒng)提供了整體設(shè)計(jì)思路,使設(shè)計(jì)人員在初步設(shè)計(jì)階段即可對(duì)系統(tǒng)進(jìn)行全面的需求、架構(gòu)、功能和性能仿真驗(yàn)證,覆蓋從需求到物理元件的設(shè)計(jì)全過程,可避免后期工程物理樣機(jī)的研制出現(xiàn)反復(fù),從而達(dá)到降低設(shè)計(jì)成本、提高效率的目的。
[1]HOFFMANN H P.Model-based systems engineering best practices[M].Beijing:Aviation Industry Press,2011: 1-62.
[2]CARLONI L P,PASSERONE R,PINTO A.Languages and tools for hybrid systems design[J].Foundations and Trends in Electronic Design Automation,2006,1(1/2):1-193.
[3]SCHAMAI W,POHLMANN U,F(xiàn)RITZSON P,et al.Execution of UML state machines using Modelica[C]//The 3rd International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools,Atlanta,2010.
[4]SAKAIRI T,PALACHI E,COHEN C,et al.Designing a control system using SysML and Simulink[C]//2012 Proceedings of SICE Annual Conference (SICE).IEEE Electronic Library,2012: 2011-2017.
[5]BROMAN D,BROOKS C,WETTER M.Determinate composition of FMUs for cosimulation[C]//EMSOFT '13 Proceedings of the Eleventh ACM International Conference on Embedded Software Article No.2,IEEE Electronic Library,2013:1-12.
[6]吳紫俊,趙建軍.多領(lǐng)域功能樣機(jī)可交換模型規(guī)范實(shí)現(xiàn)研究[J].系統(tǒng)仿真學(xué)報(bào),2012,24(10),2083-2086.
WU Zijun,ZHAO Jianjun.Research on functional mock-up interface for multi-domain model exchange[J].Journal of System Simulation,2012,24(10) :2083-2086.
[7]吳義忠,劉敏,陳麗平.多領(lǐng)域物理系統(tǒng)混合建模平臺(tái)開發(fā)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2006,18(1):120-124.
WU Yizhong,LIU Min,CHEN Liping.Development of hybrid modeling platform for multi-domain physical system[J].Journal of Computer-aided Design & Computer Graphics,2006,18(1) :120-124.
[8]MULLER W,WIDL E.Linking FMI-based components with discrete event systems[C]//Proceedings of 2013 IEEE International Systems Conference (SysCon).Orlando,2013:676-680.
[9]王西超,曹云峰,莊麗葵,等.面向復(fù)雜系統(tǒng)虛擬樣機(jī)系統(tǒng)建模的方法研究[J].電子科技大學(xué)學(xué)報(bào),2013,42(5),648-655.
WANG Xichao,CAO Yunfeng,ZHUANG Likui,et al.Collaborative modeling approach for virtual prototype of complex systems[J].Journal of University of Electronic Science and Technology of China,2013,42(5):648-655.
[10]張志強(qiáng),高金行,李俊霖.雙余度舵機(jī)伺服系統(tǒng)設(shè)計(jì)[J].機(jī)械與電子,2012(11):23-25.
ZHANG Zhiqiang,GAO Jinxing,LI Junlin.Design of dual redundancy rudder servo system[J].Machinery & Electronics,2012(11) :23-25.
[11]GHEORGHE A,ZOLGHADRI A,CIESLA C,et al.Model-based approaches for fast and robust fault detection in an aircraft control surface servo loop: from theory to flight tests[Application of Control[J].IEEE Control Systems,2013,33(10):615-630.