一種Simulink圖形模型的形式驗證方法
【專利摘要】一種Simulink圖形模型的形式驗證方法,如下:對Simulink圖進行分析,構(gòu)建Simulink圖在Java中的對應(yīng)對象;以獲得的Java對象為基礎(chǔ),將該Java對象表示的Simulink圖劃分得到一個子圖的集合,使對于子圖集合中的每個子圖僅包含連續(xù)模塊或離散模塊;對獲得的每個子圖進行轉(zhuǎn)化,構(gòu)建每個子圖對應(yīng)的混成通訊順序進程(HCSP)的語法樹;根據(jù)獲得的語法樹輸出符合混成霍爾邏輯(HHL)證明器語法的混成通訊順序進程。最后,這樣得到的混成通訊順序進程作為混成霍爾邏輯證明器的輸入,可以直接應(yīng)用該證明器進行形式化驗證,從而實現(xiàn)了原Simulink圖形模型的形式驗證。本發(fā)明確保了Simulink圖的安全性。
【專利說明】-種Simu I ink圖形模型的形式驗證方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種Simulink圖形模型的形式驗證方法,特別涉及大規(guī)模Simulink 圖形模型的形式驗證。
【背景技術(shù)】
[0002] Simulink是MATLAB最重要的組件之一,它提供一個動態(tài)系統(tǒng)建模、仿真和綜合分 析的集成環(huán)境。該工具使用圖形化的建模方式對動態(tài)系統(tǒng)建模,因而無需大量書寫程序,而 只需要通過簡單直觀的鼠標(biāo)操作便可構(gòu)造出復(fù)雜的系統(tǒng)。Simulink具有適應(yīng)面廣、結(jié)構(gòu)和 流程清晰及仿真精細、貼近實際、效率高、靈活等優(yōu)點?;谝陨蟽?yōu)點,Simulink已被廣泛 應(yīng)用于控制理論和數(shù)字信號處理的復(fù)雜仿真和設(shè)計。同時有大量的第三方軟件和硬件可應(yīng) 用于Simulink。Simulink因其本身強大的表達能力以及良好的仿真效果在工業(yè)界已經(jīng)得 到廣泛的使用。然而由于在語義等理論方面不能得到充足的支撐,使得它的使用暫時停步 在仿真階段,還沒有比較好的形式化驗證支持。
[0003] 混成系統(tǒng)的設(shè)計通常涉及各種復(fù)雜的內(nèi)容,其狀態(tài)空間通常為不可數(shù)無窮。由于 仿真分析具有其天生的不完備性,因而不能確保設(shè)計模型的安全性?;斐赏ㄓ嶍樞蜻M程 (HCSP)是一種用于描述大型混成系統(tǒng)的可組合的形式化建模語言,已經(jīng)有成熟的工具對 HCSP進程的形式化驗證進行支持。因此將Simulink圖形轉(zhuǎn)化為HCSP模型再進行形式化驗 證是一個有效的途徑。所以開發(fā)一個將Simulink圖形轉(zhuǎn)化到HCSP進程的工具有非常重要 的實際需要。
[0004] 國際上已經(jīng)有一些學(xué)者對Simulink的形式化進行了研究。部分工作提供 了 Simulink圖的形式化語義,以將Simulink圖形式化:2012年Bouissou等人提供了 Simulink的操作語義,Hamon等人分別于2004-2007年間提供了 Simulink及其Statef low 插件的操作和指稱語義。通過使用Simulink的形式語義,可以很精確的理解Simulink圖 的含義,然而我們還不能對其進行形式化驗證。另一方面,Tripakis等人于2003-2005年 間將離散的Simulink圖轉(zhuǎn)化為Lustre形式化語言進行驗證,Cavalcanti等人于2005年 將離散的Simulink圖轉(zhuǎn)化成Circus形式化語言進行驗證,Meenakshi等人于2006年將部 分離散的Simulink圖轉(zhuǎn)化為NuSMV模型檢測器進行形式化驗證。這些工作都只能應(yīng)用于 離散的Simulink圖而不能應(yīng)用于連續(xù)的Simulink圖。Dong等人于2009年將Simulink圖 轉(zhuǎn)化為帶時間的區(qū)間演算(Timed Interval Calculus)進行形式化分析,雖然該工作可以 應(yīng)用于連續(xù)Simulink圖,但是該方法只能應(yīng)用于當(dāng)連續(xù)模型的解可求的情況。因此,對于 Simulink圖進行形式化分析的普適方法具有迫切的需求。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明技術(shù)解決問題:克服現(xiàn)有技術(shù)的不足,提供一種Simulink圖形模型的形式 驗證方法,以確保Simulink圖的安全性。
[0006] 本發(fā)明技術(shù)解決方案:首先提供將Simulink圖形轉(zhuǎn)化為HCSP進程,然后應(yīng)用已有 的混成霍爾邏輯(HHL)證明器對轉(zhuǎn)換后的進程進行形式化驗證,從而提供一種Simulink圖 模型的形式化驗證技術(shù)。實現(xiàn)步驟如圖1所示,如下:
[0007] (1)對Simulink圖進行分析,構(gòu)建Simulink圖在Java中的對應(yīng)對象;
[0008] (2)以步驟(1)中獲得的Java對象為基礎(chǔ),將該Java對象表示的Simulink圖劃 分得到一個子圖的集合,使對于子圖集合中的每個子圖僅包含連續(xù)模塊或離散模塊,分別 稱之為連續(xù)子圖或離散子圖;
[0009] (3)對步驟(2)中獲得的每個子圖進行轉(zhuǎn)化,構(gòu)建每個子圖對應(yīng)的HCSP進程。這 里子圖的轉(zhuǎn)化分為兩類:對連續(xù)子圖的轉(zhuǎn)化,以及對離散子圖的轉(zhuǎn)化;
[0010] (4)將步驟(3)中獲得的各個子圖轉(zhuǎn)化后的HCSP進程通過并發(fā)組合作為整個 Simulink圖對應(yīng)的HCSP進程,然后在給定待驗證安全性質(zhì)時,該進程可以直接應(yīng)用HHL證 明器進行形式化驗證,來驗證該進程是否滿足這個安全性質(zhì),從而實現(xiàn)Simulink圖形模型 的形式驗證。
[0011] 所述步驟(2)圖分劃方法步驟如下:
[0012] (2 - 1)將Simulink圖中所有連接連續(xù)模塊與離散模塊得到的信號邊確定為通訊 信號邊,將其它邊確定為數(shù)據(jù)共享信號邊;
[0013] (2-2)先將通訊邊從Simulink圖中刪除,然后利用深度優(yōu)先算法找出Simulink圖 中所有的連通分量,由于連續(xù)模塊和離散模塊間的通訊邊已經(jīng)被刪除,所以每個聯(lián)通分量 只會僅包含連續(xù)模塊或離散模塊,確保獲得的各聯(lián)通分量對應(yīng)的子圖僅包含連續(xù)模塊或僅 包含離散模塊,這些子圖即作為步驟(2)的輸出。
[0014] 所述步驟(3)中對連續(xù)子圖的轉(zhuǎn)化方法步驟如下:
[0015] (3a_l)首先,考慮一個角標(biāo)為i的單個連續(xù)模塊,定義該模塊經(jīng)轉(zhuǎn)化后的對應(yīng) HCSP進程,假定該模塊擁有pi個輸出信號和Qi個功能模式;同時,該模塊的通訊中斷集合 為Ii,該角標(biāo)為i的單個連續(xù)模塊經(jīng)轉(zhuǎn)化后的HCSP進程PC如下:
【權(quán)利要求】
1. 一種Simulink圖形模型的形式驗證方法,其特征在于實現(xiàn)步驟如下: (1) 對Simulink圖進行分析,構(gòu)建Simulink圖在Java中的對應(yīng)對象; (2) 以步驟⑴中獲得的Java對象為基礎(chǔ),將該Java對象表示的Simulink圖劃分,得 到一個子圖的集合,使對于子圖集合中的每個子圖僅包含連續(xù)模塊或離散模塊,以下分別 稱之為連續(xù)子圖或離散子圖; (3) 對步驟(2)中獲得的每個子圖進行轉(zhuǎn)化,構(gòu)建每個子圖對應(yīng)的混成通訊順序進程 (HCSP)的進程;這里子圖的轉(zhuǎn)化分為兩類:對連續(xù)子圖的轉(zhuǎn)化以及對離散子圖的轉(zhuǎn)化; (4) 將步驟(3)中各個子圖轉(zhuǎn)化后獲得的HCSP進程通過并發(fā)組合作為整個Simulink 圖對應(yīng)的HCSP進程,然后在給定待驗證安全性質(zhì)時,該HCSP進程可以直接應(yīng)用混成霍 爾邏輯(HHL)證明器進行形式化驗證,來驗證該進程是否滿足這個安全性質(zhì),從而實現(xiàn) Simulink圖形模型的形式驗證。
2. 根據(jù)權(quán)利要求1所述的Simulink圖形模型的形式驗證方法,其特征在于:所述步驟 (2) 實現(xiàn)如下: (2 - 1)將Simulink圖中所有連接連續(xù)模塊與離散模塊得到的信號邊確定為通訊信號 邊,將其它邊確定為數(shù)據(jù)共享信號邊; (2-2)先將通訊邊從Simulink圖中刪除,然后利用深度優(yōu)先算法找出Simulink圖中所 有的連通分量,由于連續(xù)模塊和離散模塊間的通訊邊已經(jīng)被刪除,所以每個聯(lián)通分量只會 僅包含連續(xù)模塊或離散模塊;這里確保獲得的各聯(lián)通分量對應(yīng)的子圖僅包含連續(xù)模塊或僅 包含離散模塊,這些子圖即作為步驟(2)的輸出。
3. 根據(jù)權(quán)利要求1所述的Simulink圖形模型的形式驗證方法,其特征在于:所述步驟 (3) 中對連續(xù)子圖的轉(zhuǎn)化方法實現(xiàn)如下: (3a-l)首先,考慮一個角標(biāo)為i的單個連續(xù)模塊,定義該模塊經(jīng)轉(zhuǎn)化后的對應(yīng)HCSP進 程,假定該模塊擁有pi個輸出信號和Qi個功能模式;同時,該模塊的通訊中斷集合為Ii,該 角標(biāo)為i的單個連續(xù)模塊經(jīng)轉(zhuǎn)化后的HCSP進程PC如下:
如上面進程定義中所不,參數(shù)丨叫表不輸入信號,〇111^表不輸出信號,化^^表不輸出 信號的初始化值,pSi表示模塊的用戶配置參數(shù);進程定義首先是一系列對Pi個輸出信號 的初始化賦值語句的順序組合(PinitJ,然后是Qi個功能模塊對應(yīng)的微分方程的順序組合 (Pi)的重復(fù)組合(如*所示),其中對所有的1 < k < Qi,每個微分方程Fik定義第k個功 能模式所對應(yīng)的連續(xù)演化過程,其中Bik表示該連續(xù)過程連續(xù)變量的定義域;F ik具有來自于 Ii的通訊中斷,即當(dāng)Ii中的某個通訊i〇j發(fā)生時,該連續(xù)過程被打斷,執(zhí)行進程skip ; (3a-2)假設(shè)子圖中含有η個連續(xù)模塊,對于每個模塊1 < i < n,按照(3a-l)步驟所 示的轉(zhuǎn)換,得到一個HCSP進程;然后,將子圖中所有連續(xù)模塊1到η進行(3a-l)所示轉(zhuǎn)換 得到的η個HCSP進程按照以下方式組合,獲得該子圖對應(yīng)的HCSP進程,其中,SEQ算子將 所有進程順序組合起來; 如上面進程定義中所不,參數(shù)in表不輸入信號集合,out表不輸出信號集合,init表 示輸出信號的初始化值的集合,ps表示模塊的用戶配置參數(shù)集合;對于每個i,in[i]表示 第i個模塊的輸入信號,out [i]表示第i個模塊的輸出信號,init[i]表示第i個模塊的 輸出信號的初始化值,ps[i]表示第i個模塊的用戶配置參數(shù)集合,Qp Pinih和Ffi對應(yīng)于 (3a - 1)中定義的對應(yīng)項。
4.根據(jù)權(quán)利要求1所述的Simulink圖形模型的形式驗證方法,其特征在于:所述步驟 (3)中對離散子圖的轉(zhuǎn)化方法如下: (3b-l)首先,考慮一個角標(biāo)為i的單個離散模塊,定義該模塊經(jīng)轉(zhuǎn)化后的對應(yīng)HCSP進 程,假定該模塊擁有ri個輸入信號、Pi個輸出信號和Qi個離散模塊,該角標(biāo)為i的單個離 散模塊經(jīng)轉(zhuǎn)化后的HCSP進程ro如下:
參數(shù)irii表不輸入信號,outi表不輸出信號,inih表不輸出信號的初始化值,pSi表 不模塊的用戶配置參數(shù),sh表不模塊的樣本時間,cirii和couti分別表不對應(yīng)輸入輸出 信號的通訊通道;進程定義首先是一系列對pi個輸出信號的初始化賦值語句的順序組合 (Piniti),然后是一個順序進程Pi的重復(fù)組合.該順序進程Pi的一次執(zhí)行方式如下:首先 是ri個輸入數(shù)據(jù)采集通訊語句Pirii,然后是Qi個條件語句構(gòu)成的計算進程PcomPi,pi個 控制輸出通訊語句Poutp最后等待樣本時間sti ; (3b-2)假設(shè)子圖中含有η個離散模塊,對于每個模塊1 < i < n,按照(3b-l)步驟所 示的轉(zhuǎn)換,得到一個HCSP進程;然后,將子圖中所有離散模塊1到η進行(3b-l)所示轉(zhuǎn)換 得到的η個HCSP進程按照以下方式組合,獲得該子圖對應(yīng)的HCSP進程;其中,0SEQ算子將 所有依據(jù)離散模塊間的依賴關(guān)系將對應(yīng)的Pcomp進程順序組合起來,由于Simulink圖不容 許離散模塊產(chǎn)生循環(huán)依賴,所以該順序總能找到;
如上面進程定義中所示,參數(shù)in表示輸入信號集合,out表示輸出信號集合,init表示 輸出信號的初始化值的集合,ps表示模塊的用戶配置參數(shù)集合,st表示模塊的樣本時間集 合。對于每個i,in[i]表不第i個模塊的輸入信號,out[i]表不第i個模塊的輸出信號, init [i]表示第i個模塊的輸出信號的初始化值,ps[i]表示第i個模塊的用戶配置參數(shù)集 合,st[i]表示第i個模塊的樣本時間,PinitpPirii和Pouti對應(yīng)于(3b -1)中定義的對應(yīng) 項,t表示該子圖的局部時鐘,temp記錄上一次計算過程的執(zhí)行時間。
【文檔編號】G06F17/50GK104091013SQ201410313539
【公開日】2014年10月8日 申請日期:2014年7月2日 優(yōu)先權(quán)日:2014年7月2日
【發(fā)明者】鄒亮, 詹乃軍, 王淑靈 申請人:中國科學(xué)院軟件研究所