摘要:復(fù)雜機(jī)電系統(tǒng)的功能分析長期以來主要關(guān)注物理子系統(tǒng)實(shí)現(xiàn)的連續(xù)物理變換,忽略了軟件子系統(tǒng)控制的物理過程之間的復(fù)雜執(zhí)行順序。針對這一挑戰(zhàn),提出了一種軟件與物理統(tǒng)一的形式化功能表征與分析方法。對基于流的功能表示方法進(jìn)行擴(kuò)展,形成軟件與物理統(tǒng)一的形式化功能表征。在此基礎(chǔ)上,提出一種基于規(guī)則的功能分解方法,支持軟件與物理混合功能的自動分解。以移動機(jī)器人系統(tǒng)為例,展示了軟件與物理統(tǒng)一的功能分析過程。
關(guān)鍵詞:基于模型的系統(tǒng)工程;概念設(shè)計;機(jī)電一體化;功能分析
中圖分類號:U463.212
Software-physical Unified Formal Functional Analysis for Complex Mechatronic Systems
CAO Yue1* LIU Yusheng2 QIN Xujia1 TANG Ying1
1.College of Computer Science and Technology,Zhejiang University of Technology,Hangzhou,310023
2.State Key Laboratory of CADamp;CG,Zhejiang University,Hangzhou,310058
Abstract: Functional analysis of complex mechatronic systems focused on the continuous physical transformations achieved by physical subsystems, and ignored the complex execution sequences among the physical processes controlled by software subsystems. In response to this challenge, a software-physical integrated formal functional representation and analysis method was proposed. First, the flow-based functional representation was extended to form a unified formal functional representation. Then, a rule-based function decomposition method was proposed to support the automatic decomposition of software-physical hybrid functions. A mobile robot system was used as a case to illustrate the proposed software-physical unified functional analysis processes.
Key words: model-based systems engineering; conceptual design; mechatronics; functional analysis
0 引言
功能分析是復(fù)雜系統(tǒng)早期概念設(shè)計的重要環(huán)節(jié),其目的是從自然語言描述的系統(tǒng)功能需求中抽取結(jié)構(gòu)化的系統(tǒng)功能。該過程通過對功能進(jìn)行形式化、規(guī)范化的建模,以及籠統(tǒng)模糊功能的逐漸分解細(xì)化,形成可直接用于系統(tǒng)設(shè)計集成的子功能結(jié)構(gòu)。功能分析主要包括功能表示與功能分解兩個領(lǐng)域。
功能表示主要研究功能的形式化表征。在眾多的形式化功能表征中,最主流的方法為基于流的功能表示[1-2]。這種方法將系統(tǒng)的預(yù)期行為即功能視為系統(tǒng)對流施加的轉(zhuǎn)換。在此基礎(chǔ)上,HIRTZ等[3]給出流及轉(zhuǎn)換的標(biāo)準(zhǔn)化定義,即功能基(functional basis)。這種流分類方法在本質(zhì)上是以流的物理特征為分類依據(jù)。此外,一些研究人員嘗試采用更為形式化的方法對功能的操作語義進(jìn)行說明。YUAN等[4-5]提出功能效應(yīng)(functional effect)的概念,通過定性描述功能操作的流屬性的初始值、結(jié)束值和變化趨勢來描述功能產(chǎn)生的效果。CHEN等[6]通過對流屬性施加約束來描述功能對流施加的作用。
功能分解的目的是將復(fù)雜的功能分解為相對簡單、便于實(shí)現(xiàn)的子功能,具體可分為自底向上和自頂向下兩類。自底向上的功能分解主要以待分解目標(biāo)功能的輸入輸出流為基準(zhǔn),通過對知識庫中的子功能進(jìn)行查找及組合連接來生成符合目標(biāo)功能接口的功能結(jié)構(gòu)。SRIDHARAN等[7]基于流類型匹配及文法規(guī)則生成總功能的內(nèi)部結(jié)構(gòu)。SANGELKAR等[8]利用圖挖掘算法從知識庫中獲取功能分解規(guī)則,并將這些規(guī)則應(yīng)用到具體的功能分解問題。CHEN等[9]基于流接口特征匹配實(shí)現(xiàn)對總功能的分解。自頂向下的功能分解基于待分解的目標(biāo)功能的輸入流和輸出流的屬性差異,推斷實(shí)現(xiàn)功能的可能物理原理組合,從而實(shí)現(xiàn)功能分解。MALMQVIST[10]采用功能方法樹為目標(biāo)功能尋找實(shí)現(xiàn)方法并從實(shí)現(xiàn)方法中提取多組子功能。UMEDA等[11]采用FBS(function-behavior-state)功能模型,基于總功能的輸入輸出流的狀態(tài)改變來實(shí)現(xiàn)任務(wù)的拆分。YUAN等[4]采用定性表示及定性推理實(shí)現(xiàn)功能的自動分解。CHEN等[12]采用基于仿真的檢索方法查找功能的解決方案。GUI等[13]提出一種針對上下文感知系統(tǒng)的功能分解方法。
從上述研究可知,當(dāng)前的功能表示及分解方法主要關(guān)注物理子系統(tǒng)實(shí)現(xiàn)的連續(xù)物理過程,忽略了軟件子系統(tǒng)承擔(dān)的主要功能——物理過程之間復(fù)雜的執(zhí)行順序。事實(shí)上,復(fù)雜機(jī)電系統(tǒng)是軟件與物理子系統(tǒng)的有機(jī)集成[14],而物理子系統(tǒng)與軟件承擔(dān)的功能差異巨大。更為重要的是,軟件與物理子系統(tǒng)設(shè)計之間可能存在隱蔽但巨大的影響,如果不能在早期功能分析中識別并處理這些潛在的設(shè)計影響,則可能將設(shè)計缺陷帶入后期的詳細(xì)設(shè)計,造成項(xiàng)目的返工甚至失敗。因此,如何在早期設(shè)計中統(tǒng)一分析軟件與物理子系統(tǒng)功能是復(fù)雜機(jī)電系統(tǒng)設(shè)計的重要挑戰(zhàn)。
針對這一困難,本文提出一種面向復(fù)雜機(jī)電系統(tǒng)的軟件與物理子系統(tǒng)統(tǒng)一的形式化功能表征與分析方法。首先,基于流的功能表示并針對軟件功能特點(diǎn)引入時序邏輯相關(guān)表示元素,形成軟件與物理統(tǒng)一的形式化功能表征。之后,提出一種針對混合功能的自動化功能分解方法。該方法能根據(jù)功能的形式化表征判斷功能類型,并基于混合功能的層次化語義模型實(shí)現(xiàn)混合功能的自動分解。
1 方法概述
為實(shí)現(xiàn)從頂層功能到底層功能的結(jié)構(gòu)分析,本文提出軟件與物理融合功能的分析方法框架,如圖1所示,該框架由兩部分組成:
1)軟件與物理的統(tǒng)一形式化功能語義表征。文字化的功能需求描述無法直接用于設(shè)計,需要對功能指定的預(yù)期行為進(jìn)行形式化描述以驅(qū)動設(shè)計的開展。傳統(tǒng)的功能表示方法僅能描述物理子系統(tǒng)的功能,忽略了軟件子系統(tǒng)對執(zhí)行過程的協(xié)調(diào)。本文方法結(jié)合軟件與物理功能的不同特征,對基于流的功能表示進(jìn)行擴(kuò)展,提出新的流分類方法及層次化的操作語義表征。
2)面向混合功能的功能自動分解。系統(tǒng)功能具有軟件與物理相混合的特征,因此以物理為核心的傳統(tǒng)功能分解方法無法直接使用。本文在形式化功能語義表征的基礎(chǔ)上,首先對功能進(jìn)行分類,識別出物理功能、軟件功能和混合功能。之后,針對混合功能給出相應(yīng)的自動分解策略,通過自頂向下迭代開展功能分解,產(chǎn)生直接用于設(shè)計集成的底層功能結(jié)構(gòu)。
需要說明的是,軟件根據(jù)其所實(shí)現(xiàn)的控制功能在復(fù)雜機(jī)電系統(tǒng)中充當(dāng)不同的角色。復(fù)雜機(jī)電系統(tǒng)的控制通常由多個層次的控制器實(shí)現(xiàn)[15-16],其中,低層控制器用于調(diào)節(jié)連續(xù)的物理過程,如閉環(huán)或開環(huán)控制;中層控制器協(xié)調(diào)多個連續(xù)過程的執(zhí)行,實(shí)現(xiàn)邏輯控制和順序控制;高層控制器主要完成系統(tǒng)全局管理的相關(guān)功能,如計劃、監(jiān)視、診斷等。目前已存在大量低層控制器與物理子系統(tǒng)協(xié)同功能分析的相關(guān)研究,而高層控制對系統(tǒng)早期概念設(shè)計的影響相對較小,因此,本文方法研究的軟件特指中層控制部分。
2 統(tǒng)一形式化功能表征
基于流的功能表示是形式化功能表征的主流方法之一。該方法將功能視為流的轉(zhuǎn)換,但從該方法對流的分類和對語義的描述可以看出,它主要針對物理系統(tǒng)的功能而無法表達(dá)軟件功能。
復(fù)雜機(jī)電系統(tǒng)中的軟件部分與物理部分具有截然不同的功能特征。一方面,軟件處理的主要對象是具有不同語義的信息,這必須體現(xiàn)在流的分類中;另一方面,軟件的主要功能是協(xié)調(diào)多個連續(xù)物理過程的執(zhí)行流程,軟件功能的操作語義必須能表征物理過程之間的邏輯及時序關(guān)系。因此,本文從流分類與操作語義兩個方面對基于流的功能表示方法進(jìn)行擴(kuò)展,使其能統(tǒng)一表征復(fù)雜機(jī)電系統(tǒng)的軟件與物理功能語義。
2.1 系統(tǒng)接口描述擴(kuò)展
當(dāng)前,工程設(shè)計領(lǐng)域公認(rèn)的流分類標(biāo)準(zhǔn)由功能基[3]定義,它將系統(tǒng)處理的流分為物料、能量和信號,并定義流的二級子類和三級子類。信號流與其他兩種流的不同之處在于它同時具有物理與信息的特征,即信號由物料或能量承載,同時,信號承載了具有不同語義的信息。信號的物料或能量體現(xiàn)信號的物理特征,信號的語義體現(xiàn)信號的信息屬性。信號的信息屬性卻沒有在當(dāng)前的標(biāo)準(zhǔn)流分類中得到體現(xiàn)。
軟件工程中,系統(tǒng)的處理對象通常分為數(shù)據(jù)流和控制流,前者表示系統(tǒng)執(zhí)行動作的輸入輸出數(shù)據(jù),后者表示激活動作的控制令牌[17]。這兩種流均通過信號承載,體現(xiàn)了信號的信息屬性。因此,本文將功能基(functional basis)中的流分類方法與軟件工程中的流分類進(jìn)行融合,為信號流定義一個新的流屬性——信息類型(information type)。信息類型data、control分別對應(yīng)信息屬性“數(shù)據(jù)”與“控制”。
2.2 層次化功能語義表征
復(fù)雜機(jī)電系統(tǒng)的功能包含連續(xù)物理轉(zhuǎn)換,而物理轉(zhuǎn)換之間存在復(fù)雜的執(zhí)行邏輯。物理轉(zhuǎn)換的執(zhí)行需要遵循一定的順序。多個物理轉(zhuǎn)換可根據(jù)控制模式按照不同的順序執(zhí)行。為描述執(zhí)行順序和控制模式這類復(fù)雜的功能語義,本文擴(kuò)展轉(zhuǎn)換的概念,添加描述轉(zhuǎn)換之間時序及執(zhí)行邏輯的操作層和規(guī)約層,形成具有三層結(jié)構(gòu)的層次化語義表征方法。
2.2.1 轉(zhuǎn)換層
轉(zhuǎn)換層T={t1,t2,…,tn}包含系統(tǒng)需要執(zhí)行的一系列基本物理過程或計算過程。根據(jù)執(zhí)行操作對象的不同,將轉(zhuǎn)換分為物理轉(zhuǎn)換(physical transformation)和計算轉(zhuǎn)換(computational transformation)。物理轉(zhuǎn)換表示改變操作對象(物料流和能量流)的物理屬性。計算轉(zhuǎn)換的操作對象是信號流,表示對數(shù)據(jù)信號的處理或邏輯判斷等。此外,在系統(tǒng)設(shè)計早期中,由于對系統(tǒng)的了解十分有限,操作的對象可能同時包含多種流,因此,除了上述兩種基本轉(zhuǎn)換外,本文還提出復(fù)雜轉(zhuǎn)換(complex transformation)的概念,以表示語義尚不明確的轉(zhuǎn)換。
已有的功能表示方法已對物理轉(zhuǎn)換提供了許多計算機(jī)可理解的描述方法。這些表示方法的共同思想是,將物理轉(zhuǎn)換視為對流的屬性值的改變。例如,功能“加熱氣體”的操作語義描述為將“氣體”的“溫度”從“低”升高為“高”,其中,“氣體”是轉(zhuǎn)換的對象流,“溫度”是流屬性,“低”和“高”是屬性的定性值,“升高”是屬性值的變化趨勢。這種基于流的功能表示是一種與具體實(shí)現(xiàn)方法無關(guān)的描述方法,僅表示客觀、可觀察的改變,不涉及實(shí)現(xiàn)這一改變的具體方式,如物理效應(yīng)、軟件算法等。功能效應(yīng)不但能支持物理功能的自動分解,而且提供了基于系統(tǒng)建模語言(systems modeling language, SysML)的圖形化描述手段[4],因此,本文選取功能效應(yīng)作為物理轉(zhuǎn)換的具體表示方法。
計算轉(zhuǎn)換也可視為對流的改變,但由于計算過程的復(fù)雜性與多變性,很難找到一個類似于功能效應(yīng)的形式化概念來表示計算轉(zhuǎn)換的執(zhí)行語義[18],因此本文方法采用自然語言描述計算轉(zhuǎn)換的語義。
2.2.2 操作層
操作層P=〈T,Os,C〉描述基本轉(zhuǎn)換之間所有可能的執(zhí)行序列。每個執(zhí)行序列稱為一個操作(operation)。若一個功能包含多個轉(zhuǎn)換,則必須建立操作層來說明轉(zhuǎn)換之間的執(zhí)行序列。每個操作表示為轉(zhuǎn)換通過時序算子及約束相連形成的表達(dá)式。時序算子集合Os={amp;,|,∪}中,集合元素“amp;”“|”“∪”分別表示順序、并發(fā)、無時序的執(zhí)行方式。每個時序算子可以添加約束c,以對時序關(guān)系進(jìn)行進(jìn)一步說明。
按照起止時間的不同,任意兩個轉(zhuǎn)換t1和t2之間的執(zhí)行順序有表1所示的4種情況?!癮mp;”表示t2在t1結(jié)束之后才開始,即二者的執(zhí)行過程不存在重疊。“|”表示t2在t1還未結(jié)束時就開始,即二者的執(zhí)行過程存在重疊。c對t1的結(jié)束時間與t2的開始時間的時差進(jìn)行約束,例如,最典型的約束是直接指定2個時間點(diǎn)之間的時間間隔,如c=5 s表示時間間隔為5 s。當(dāng)c=0時,可省略時序算子上的約束。
2個物理轉(zhuǎn)換之間可能存在無時序關(guān)系的情況,即2個轉(zhuǎn)換的執(zhí)行受物理定律的驅(qū)動而非軟件的控制。如吹風(fēng)機(jī)的功能包含3個物理轉(zhuǎn)換,其中,t1表示對空氣進(jìn)行加速,t2表示升高空氣溫度,t3表示引導(dǎo)空氣流向。這3個物理轉(zhuǎn)換的執(zhí)行是由空氣在不同物理機(jī)構(gòu)之間的流動引起的,而不由軟件發(fā)出控制信號決定,因此,該功能的操作表達(dá)式為t1∪t2∪t3。
2.2.3 規(guī)約層
復(fù)雜機(jī)電系統(tǒng)需根據(jù)不同的控制模式執(zhí)行不同的目標(biāo)行為即操作??刂颇J降倪x擇取決于系統(tǒng)接收到的控制或數(shù)據(jù)信號,因此,必須在系統(tǒng)的控制信號與操作之間建立因果關(guān)系。
時序邏輯常常用于描述反應(yīng)系統(tǒng)(reactive system)應(yīng)遵循的動態(tài)特性及需求規(guī)約[19-20]。在多種時序邏輯中,選取計算樹邏輯(computational tree logic,CTL)作為規(guī)約層形式化基礎(chǔ)的原因是:①CTL主要用于描述有限狀態(tài)系統(tǒng)的動態(tài)特性,而大部分軟件密集型系統(tǒng)的行為范式均可抽象為有限狀態(tài)系統(tǒng)[21];②已有模型檢測工具廣泛支持CTL,因此可借助這些模型檢測工具實(shí)現(xiàn)模型的自動推理?;谏鲜鏊枷?,本文基于CTL定義功能語義的規(guī)約層。
規(guī)約層S=〈Pa,OCTL〉描述了系統(tǒng)依據(jù)不同控制模式對操作的選擇。每種控制模式通過1個CTL規(guī)約描述,每個規(guī)約由原子命題通過CTL算子連接而成。若1個功能具有多個操作,則必須通過CTL規(guī)約說明系統(tǒng)在何種條件下選擇并執(zhí)行各個操作。Pa=Ps∪Pe∪Pc表示CTL規(guī)約中的原子命題。Ps為形如STATE=p的狀態(tài)命題集合時,若操作p正在執(zhí)行,則狀態(tài)命題STATE=p為真,其中,STATE表示狀態(tài)。Pe為形如EVENT=e的事件命題集合時,若事件e發(fā)生,則該命題為真。對于Pc為形如PROPERTY=v的條件命題集合,屬性PROPERTY取值為v時,該命題為真。CTL算子OCTL=Ot∪Oq∪Ol中,時態(tài)算子Ot={F,G,X,U}修飾狀態(tài)的時間關(guān)系,F(xiàn)表示某未來狀態(tài),G表示所有未來狀態(tài);路徑量詞Oq ={A,E}修飾時間路徑,A表示對所有路徑,E表示存在一條路徑;基本邏輯算子Ol由與amp;、或|、非瘙綈、蘊(yùn)含→等組成。
下面通過一個例子對上述形式化功能語義描述進(jìn)行說明。某藥生產(chǎn)線的涂層子系統(tǒng)主要負(fù)責(zé)對壓制好的藥片進(jìn)行涂層,以改善口感或便于吞咽[15]。該子系統(tǒng)需要執(zhí)行轉(zhuǎn)料(對待涂層的藥片進(jìn)行轉(zhuǎn)動)與噴料(向藥片噴灑涂料)兩個物理過程。兩個物理過程的執(zhí)行順序由兩個模式定義:模式1表示2個過程順序執(zhí)行,模式2表示2個過程并發(fā)執(zhí)行。基于本文提出的層次化功能語義描述方法,對上述文字化的功能語義進(jìn)行形式化描述。轉(zhuǎn)換層包含的物理過程tr、ts分別表示轉(zhuǎn)料和噴料;操作層包含的操作OP1=tramp;ts,OP2=tr|ts分別表示兩種執(zhí)行模式;規(guī)約層由2條CTL規(guī)約組成:AG(MODE=1→EF STATE=OP1)表示模式1,AG(MODE=2→EF STATE=OP2)表示模式2,其中,MODE為表示模式的變量,STATE為系統(tǒng)狀態(tài),OP1和OP2為操作層定義的操作。
3 面向混合功能的功能自動分解
引入層次化的功能表征后,系統(tǒng)功能不僅包含物理變換,還具有軟件與物理相混合的復(fù)雜特征,以物理變換為核心的功能分解方式不再適用。為此,本文首先根據(jù)功能語義模型將功能分為物理功能、軟件功能、混合功能,然后針對混合功能提出新的分解策略。
3.1 功能自動分類
根據(jù)功能的語義模型的層次結(jié)構(gòu)將功能分為三類:
1)物理功能(physical function)是指僅由物理結(jié)構(gòu)及連續(xù)控制器實(shí)現(xiàn)的功能,其語義模型僅有1個物理轉(zhuǎn)換,不具有操作和CTL規(guī)約層。物理功能分解需基于功能效應(yīng)開展。
2)軟件功能(software function)是指僅由軟件組件(含硬件運(yùn)行環(huán)境)實(shí)現(xiàn)的功能,其語義模型僅有1個計算轉(zhuǎn)換,不具有操作和CTL規(guī)約層。軟件功能分解僅需考慮計算轉(zhuǎn)換語義。
3)混合功能(hybrid function)是指同時需要物理及軟件組件實(shí)現(xiàn)的功能,其語義模型同時具有操作層和CTL規(guī)約層?;旌瞎δ芊纸庑枰C合考慮操作順序和CTL表達(dá)式。
基于上述方法可將功能語義以計算機(jī)可理解的形式表征,為功能的自動分類提供基礎(chǔ)。根據(jù)上述三類功能語義模型可定義如下三條規(guī)則,實(shí)現(xiàn)功能的自動分類:
規(guī)則1 f∈F∧((SIZE(f.OPS)=0)∧(SIZE(f.TRScp)=1)∨(SIZE(f.OPS)≥1))→f∈Fh
規(guī)則2" f∈F∧(SIZE(f.SPEC)=0)∧(SIZE(f.OPS)=0)∧(SIZE(f.TRSp)=1)→f∈Fp
規(guī)則3 f∈F∧(SIZE(f.SPEC)=0)∧(SIZE(f.OPS)=0)∧(SIZE(f.TRSc)=1)→f∈Fs
其中,F(xiàn)h、Fp、Fs分別為混合功能、物理功能、軟件功能的集合;f為待分類的功能;f.SPEC為功能f語義模型中的CTL表達(dá)式,f.OPS為功能f語義模型中的操作;f.TRScp、f.TRSp、f.TRSc分別表示功能f語義模型包含的復(fù)雜轉(zhuǎn)換、物理轉(zhuǎn)換、計算轉(zhuǎn)換,SIZE為集合中元素的數(shù)量。
3.2 混合功能分解
采用1.2節(jié)所述的功能分解方法對物理功能進(jìn)行分解,軟件功能的分解需要軟件專業(yè)人員根據(jù)業(yè)務(wù)流程進(jìn)行分析,因此,本文主要討論混合功能的分解方法。
混合功能可根據(jù)其語義模型結(jié)構(gòu)細(xì)分為圖2所示的幾種情況。
3.2.1 僅有轉(zhuǎn)換層且轉(zhuǎn)換層僅包含1個復(fù)雜轉(zhuǎn)換的功能
對于僅有轉(zhuǎn)換層且轉(zhuǎn)換層僅包含1個復(fù)雜轉(zhuǎn)換的功能,由于復(fù)雜轉(zhuǎn)換的語義尚不明確,因此,首先對該功能進(jìn)行語義分析,構(gòu)建更為明確的語義模型,再進(jìn)行功能分解。
3.2.2 具有操作層和轉(zhuǎn)換層的功能
將具有操作層和轉(zhuǎn)換層功能的語義模型表示為一個操作表達(dá)式,表達(dá)式的操作符為帶約束的時序算子,操作數(shù)為轉(zhuǎn)換。操作數(shù)中的每個轉(zhuǎn)換都可識別出一個子功能,時序算子則需進(jìn)一步討論:
1)時序算子中的并發(fā)算子“|”表示2個轉(zhuǎn)換同時發(fā)生。功能結(jié)構(gòu)中,這一控制邏輯用并發(fā)節(jié)點(diǎn)表示。因此,每個并發(fā)算子需分解為1個分支節(jié)點(diǎn)(fork)及其集合節(jié)點(diǎn)(join)。
2)對于帶約束的時序算子,其約束的判斷需要相應(yīng)的子功能實(shí)現(xiàn),因此,這類算子需要額外創(chuàng)建軟件功能來判斷約束。
某功能語義模型的操作表達(dá)式為(t1|t2)amp;5st3?;谠摫磉_(dá)式可識別出如下子功能:①實(shí)現(xiàn)轉(zhuǎn)換t1、t2、t3的f1、f2、f3;②表示t1和t2并發(fā)執(zhí)行的分支節(jié)點(diǎn)fork和集合節(jié)點(diǎn)join;③延時子功能fd表示f1、f2執(zhí)行完畢并延時5 s后,f3開始執(zhí)行。
3.2.3 具有規(guī)約層、操作層和轉(zhuǎn)換層的功能
CTL規(guī)約主要用于判斷模式,因此需引入1個判斷節(jié)點(diǎn)(decision)及其合并節(jié)點(diǎn)(merge)來連接每個操作對應(yīng)的路徑。對規(guī)約涉及的每個操作按操作層分解方法進(jìn)行分解。
上述功能分解過程涉及多個操作,操作使用的轉(zhuǎn)換可能會有重復(fù),因此,需對所有操作分解出的子功能集合求并集,形成底層子功能集合。
3.3 功能結(jié)構(gòu)平面化
功能分解識別出的底層子功能集合需通過功能結(jié)構(gòu)模型對底層子功能的執(zhí)行順序及交互信息進(jìn)行進(jìn)一步描述。由于功能分解過程逐層迭代開展,因此該過程產(chǎn)生的功能結(jié)構(gòu)模型為一個層次化的圖。這種層次化的圖無法展示最底層葉子功能之間的直接連接關(guān)系,因而難以直接應(yīng)用于設(shè)計集成。如圖3所示,總功能f分解為子功能f1、f2,f1進(jìn)一步分解為f1,1、f1,2,f2進(jìn)一步分解為f2,1、f2,2。分析過程中,建立的3個功能結(jié)構(gòu)圖分別記錄了f1和f2之間的連接、f1,1和f1,2之間的連接、f2,1和f2,2之間的連接,卻沒有展示所有最底層子功能f1,1、f1,2、f2,1和f2,2之間的連接。最底層的功能結(jié)構(gòu)是設(shè)計集成過程所需的,因此,還需對層次化的功能結(jié)構(gòu)圖進(jìn)行“平面化”,將其展開為由最底層功能連接形成的功能結(jié)構(gòu)模型。該模型被稱為底層功能結(jié)構(gòu)模型,是后續(xù)軟件與物理協(xié)同正向設(shè)計的輸入。
平面化算法的基本思路:對功能分解形成的樹形結(jié)構(gòu)進(jìn)行寬度優(yōu)先遍歷,對樹形結(jié)構(gòu)中的任意2個非葉子功能之間的流用這兩個功能的子功能之間的流替換。對象流的替換方法如圖4a所示,非葉子功能f1、f2之間有一條從接口p1指向接口p2的對象流,接口p1、p2分別與子功能f11的接口p11、f21的接口p21 相連,因此,可將非葉子功能之間的對象流替換為子功能的接口p11到p21的流??刂屏鞯奶鎿Q方法如圖4b所示,非葉子功能f1、f2之間具有1條控制流,其中,fe為f1的終止功能,fi為f2的起始功能,則非葉子功能f1、f2之間的控制流可替換為其子功能fe和fi之間的流。
4 案例分析
本文以移動機(jī)器人系統(tǒng)[22]為例來說明軟件與物理融合功能分析方法。圖5a為該系統(tǒng)的概念圖,系統(tǒng)需實(shí)現(xiàn)圖5b所示的迷宮覓食任務(wù),即機(jī)器人需要找到放置于迷宮中任意位置的1個鐵罐。圖5b中,方形表示機(jī)器人的起始位置,圓形表示待拾取的鐵罐。
機(jī)器人首先檢測其四周環(huán)境,以識別其前后左右四個方向是否存在墻壁或罐子。之后,根據(jù)識別結(jié)果,機(jī)器人判斷下一步探索的方向或準(zhǔn)備拾取前方罐子。最后,根據(jù)判斷結(jié)果,機(jī)器人根據(jù)指定方向移動一格或拾取罐子。該系統(tǒng)需求可采用SysML需求圖(圖6)表示。根據(jù)上述需求,對系統(tǒng)逐層開展功能分析。
4.1 迷宮覓食(FetchCan)的功能分析
迷宮覓食(FetchCan)功能被定義為構(gòu)造型為瘙爯Function瘙爲(wèi)的活動。對該功能的分析包括以下3個步驟:
1)功能語義建模。FetchCan的語義模型如圖7所示。功能語義包含操作層和轉(zhuǎn)換層,其中,轉(zhuǎn)換層由復(fù)雜轉(zhuǎn)換障礙檢測(DetectObstacble)和采取行動(TakeAction),以及計算轉(zhuǎn)換引導(dǎo)行動(GuideAction)組成,操作Sequential3表示3個轉(zhuǎn)換順序執(zhí)行。
2)功能分解。FetchCan功能語義模型包含操作層,因此,可判斷該功能為混合功能。根據(jù)功能操作表達(dá)式,將FetchCan分解為3個子功能,即DetectObstacle、GuideAction、TakeAction。
3)功能結(jié)構(gòu)建模。根據(jù)分解結(jié)果創(chuàng)建3個子功能,并將其實(shí)例化為FetchCan的組成部分。將DetectObstacle、GuideAction和TakeAction功能實(shí)例通過對象流與控制流相互連接,形成圖8所示的FetchCan功能的結(jié)構(gòu)模型。
4.2 采取行動(TakeAction)的功能分析
總功能分析完畢后,需要對識別出的每個子功能做進(jìn)一步的功能分析。這里以采取行動(TakeAction)功能為例說明功能分析過程。
1)功能語義建模。TakeAction功能語義的文字描述為:移動機(jī)器人系統(tǒng)根據(jù)探索方向信息作出相應(yīng)操作,即檢測到鐵罐則拾取鐵罐,未檢測到鐵罐則根據(jù)周圍墻壁情況選擇前進(jìn)方向。根據(jù)上述文字描述可知TakeAction包括兩種模式:CanDir不為空即CanDir≠0時,進(jìn)行拾取操作;WallDir不為空即WallDir≠0時,進(jìn)行移動操作,因此,需要定義2個CTL規(guī)約分別表示拾取和移動兩種模式。以拾取模式為例,該規(guī)約表示為AG(CANDIR≠0→EFSTATE=OP1),OP1=t,t=PICKCAN。根據(jù)上述分析,得到圖9所示的TakeAction功能語義模型。
2)功能分解。由于TakeAction功能語義模型包含2個CTL規(guī)約,即圖9中的spec1和spec2,因此,將TakeAction功能自動識別為混合功能。根據(jù)混合功能分解原則識別出子功能移動一步(MoveOneStep)、拾取罐子(PickCan),以及1個判斷/合并節(jié)點(diǎn)。
3)功能結(jié)構(gòu)建模。創(chuàng)建步驟2識別出的3個子功能并將子功能拖入TakeAction的活動圖以對其進(jìn)行實(shí)例化。通過控制流與對象流連接控制節(jié)點(diǎn)與功能實(shí)例,形成圖10所示的功能結(jié)構(gòu)模型。
4.3 移動一步(MoveOneStep)功能分析過程
識別出的子功能MoveOneStep、PickCan還需要進(jìn)行進(jìn)一步分解。這里以MoveOneStep功能為例說明分析過程。
1)功能語義建模。MoveOneStep功能語義的文字描述為:移動機(jī)器人系統(tǒng)根據(jù)周圍墻壁情況移動一格,即WallDir=1時向左移動一格,WallDir=2時向前移動一格,WallDir=3時向右移動一格,WallDir=4時向后移動一格。由于機(jī)器人只能原地旋轉(zhuǎn)或向前移動,因此,向左移動一格的執(zhí)行方式為先左轉(zhuǎn)、再向前移動一格;向右移動一格的執(zhí)行方式為先右轉(zhuǎn)、再向前移動一格;后退移動一格的執(zhí)行方式為先左轉(zhuǎn)兩次、再向前移動一格。根據(jù)文字描述,可定義4個CTL規(guī)約,分別表示4種移動模式。以向左移動為例,該規(guī)約表示為AG(WALLDIR=1→EFSTATE=OP1),OP1=t1amp;t2,t1=TURNLEFT,t2=MOVEFORWARD。根據(jù)上述分析,得到圖11所示的MoveOneStep功能語義模型。
2)功能分解。MoveOneStep的功能語義模型具有規(guī)約層,因此,MoveOneStep為混合功能。
根據(jù)混合功能分解原則將MoveOneStep分解為子功能左轉(zhuǎn)(TurnLeft)、右轉(zhuǎn)(TurnRight)、前進(jìn)(MoveForward),以及1個判斷節(jié)點(diǎn)。
3)功能結(jié)構(gòu)建模。創(chuàng)建步驟2識別出的3個子功能及1個判斷節(jié)點(diǎn),并將子功能拖入MoveOneStep的活動圖并對其進(jìn)行實(shí)例化。通過控制流與對象流連接控制節(jié)點(diǎn)與功能實(shí)例,形成圖12所示的功能結(jié)構(gòu)模型。
子功能TurnLeft、TurnRight和MoveForward的語義模型均只具有物理轉(zhuǎn)換,因此,3個子功能均為物理功能,至此,功能分析過程結(jié)束。所有底層子功能識別完畢后,將所有功能結(jié)構(gòu)模型平面化,形成可直接用于設(shè)計集成的底層功能結(jié)構(gòu)模型,如圖13所示。
5 討論
從上述案例分析可以看出,本方法在功能表示與功能分解過程中考慮了功能的執(zhí)行序列和模式,因而產(chǎn)生的功能結(jié)構(gòu)模型能完整描述功能之間的執(zhí)行邏輯。這些執(zhí)行邏輯對后續(xù)設(shè)計集成中物理原理解的選擇具有重要意義。功能模型要求TurnLeft、TurnRight功能與MoveForward功能必須順序執(zhí)行,因此,所選驅(qū)動機(jī)構(gòu)的平動和轉(zhuǎn)動2個物理效應(yīng)必須獨(dú)立開展,因而能排除阿克曼轉(zhuǎn)向這一物理原理解。傳統(tǒng)方法僅能分解出物理功能TurnLeft、TurnRight、MoveForward,但無法表達(dá)功能之間的執(zhí)行邏輯,因而難以識別邏輯順序約束。由于本文方法分析產(chǎn)生的功能結(jié)構(gòu)模型包含功能執(zhí)行邏輯,因此,可從功能分解結(jié)果推理出軟件控制信息,為后續(xù)的軟件設(shè)計模型生成提供支持。綜上可得,本文的功能分析方法產(chǎn)生的功能模型是支撐復(fù)雜機(jī)電系統(tǒng)軟件與物理并行設(shè)計開展的重要基礎(chǔ)。
值得一提的是,本文方法特別適用于對執(zhí)行順序要求較高的各類復(fù)雜機(jī)電系統(tǒng)。對于物理占主導(dǎo)、軟件參與度較低的系統(tǒng)(如吹風(fēng)機(jī)),設(shè)計過程只需涵蓋其物理子系統(tǒng),而無需考慮軟件與物理的統(tǒng)一功能分析與設(shè)計。
6 結(jié)論
1)對基于流的傳統(tǒng)功能表示方法進(jìn)行了接口和語義的擴(kuò)展,同時融入時序邏輯的概念,使功能表示方法可同時表示物理子系統(tǒng)應(yīng)實(shí)現(xiàn)的連續(xù)物理變換,以及軟件子系統(tǒng)承擔(dān)的執(zhí)行順序控制功能,為復(fù)雜機(jī)電系統(tǒng)軟件與物理統(tǒng)一功能的表示提供形式化的基礎(chǔ)。
2)提出的軟件與物理融合功能分解方法在統(tǒng)一形式化功能表征的基礎(chǔ)上,首先區(qū)分3種功能(物理功能、軟件功能和混合功能)類型,并給出混合功能的自動分解策略。所提方法與已有的物理及軟件功能分解方法兼容,因此,可通過與已有的功能分解方法相結(jié)合,形成軟件與物理融合功能的分析方法。
與面向物理過程的功能建模與分解的傳統(tǒng)方法相比,本文方法最主要的優(yōu)勢在于考慮了軟件子系統(tǒng)承擔(dān)的功能。本文方法增加了描述離散執(zhí)行流程的操作層和規(guī)約層,使功能表征方法適用于復(fù)雜機(jī)電系統(tǒng)軟件與物理相融合的特征。此外,本文方法與已有的物理功能分析方法兼容,保證了已有方法的重用性。本文方法目前考慮的軟件功能類型還比較有限,僅研究了軟件子系統(tǒng)對執(zhí)行順序的協(xié)調(diào)。事實(shí)上,由于軟件開發(fā)的靈活性,軟件子系統(tǒng)還承擔(dān)著多種多樣的功能,因此需要分析梳理軟件功能類型以改進(jìn)本文方法。
參考文獻(xiàn):
[1] PAHL G, WALLACE K, BLESSING L T M, et al. Engineering Design:a Systematic Approach[M]. 3rd ed. London:Springer, 2007.
[2] KRUSE B, GILZ T, SHEA K, et al. Systematic Comparison of Functional Models in SysML for Design Library Evaluation[J]. Procedia CIRP, 2014, 21:34-39.
[3] HIRTZ J, STONE R B, McADAMS D A, et al. A Functional Basis for Engineering Design:Reconciling and Evolving Previous Efforts[J]. Research in Engineering Design, 2002, 13(2):65-82.
[4] YUAN Lin, LIU Yusheng, SUN Zhongfei, et al. A Hybrid Approach for the Automation of Functional Decomposition in Conceptual Design[J]. Journal of Engineering Design, 2016, 27(4/6):333-360.
[5] YUAN Lin, LIU Yusheng, LIN Yunfeng, et al. An Automated Functional Decomposition Method Based on Morphological Changes of Material Flows[J]. Journal of Engineering Design, 2017, 28(1):47-75.
[6] CHEN Yong, LIU Zelin, XIE Youbai. A Knowledge-based Framework for Creative Conceptual Design of Multi-disciplinary Systems[J]. Computer-Aided Design, 2012, 44(2):146-153.
[7] SRIDHARAN P, CAMPBELL M I. A Study on the Grammatical Construction of Function Structures[J]. Artificial Intelligence for Engineering Design, Analysis and Manufacturing, 2005, 19(3):139-160.
[8] SANGELKAR S, McADAMS D A. Mining Functional Model Graphs to Find Product Design Heuristics with Inclusive Design Illustration[J]. Journal of Computing and Information Science in Engineering, 2013, 13(4):041008.
[9] CHEN Bin. Conceptual Design Synthesis Based on Series-parallel Functional Unit Structure[J]. Journal of Engineering Design, 2018, 29(3):87-130.
[10] MALMQVIST J. Improved Function-means Trees by Inclusion of Design History Information[J]. Journal of Engineering Design, 1997, 8(2):107-117.
[11] UMEDA Y, TOMIYAMA T. Functional Reasoning in Design[J]. IEEE Expert, 1997, 12(2):42-48.
[12] CHEN Yong, ZHAO Meng, LIU Ying, et al. A Formal Functional Representation Methodology for Conceptual Design of Material-flow Processing Devices[J]. Artificial Intelligence for Engineering Design, Analysis and Manufacturing, 2016, 30(4):353-366.
[13] GUI Fajun, CHEN Yong, LI Haomin, et al. A Structured Approach for Functional Analysis of Context-aware Systems[J]. Concurrent Engineering, 2023, 31(1/2):21-35.
[14] TOMIZUKA M. Mechatronics:From the 20th to 21st Century[J]. Control Engineering Practice, 2002, 10(8):877-886.
[15] PENAS O, PLATEAUX R, PATALANO S, et al. Multi-scale Approach from Mechatronic to Cyber-physical Systems for the Design of Manufacturing Systems[J]. Computers in Industry, 2017, 86:52-69.
[16] GROOVER M P. Automation, Production Systems, and Computer-integrated Manufacturing[M]. 3rd ed. Delhi:Pearson, 2007.
[17] KAVI, BUCKLES, BHAT. A Formal Definition of Data Flow Graph Models[J]. IEEE Transactions on Computers, 1986, C-35(11):940-948.
[18] GULWANI S, POLOZOV O, SINGH R. Program Synthesis[J]. Foundations and Trends" in Programming Languages, 2017, 4(1/2):1-119.
[19] DEBBABI M, HASSANE F, JARRAYA Y, et al. Verification and Validation in Systems Engineering:Assessing UML/SysML Design Models[M]. Berlin:Springer, 2010.
[20] LJUNGKRANTZ O, AKESSON K, FABIAN M, et al. Formal Specification and Verification of Industrial Control Logic Components[J]. IEEE Transactions on Automation Science and Engineering, 2010, 7(3):538-548.
[21] GIESE H, HENKLER S. A Survey of Approaches for the Visual Model-driven Development of Next Generation Software-intensive Systems[J]. Journal of Visual Languages amp; Computing, 2006, 17(6):528-550.
[22] BRUNL T. Embedded Robotics:Mobile Robot Design and Applications with Embedded Systems[M]. 2nd ed. Berlin:Springer, 2014
(編輯 張 洋)
作者簡介:曹 悅*,女,1986年生,講師。研究方向?yàn)槟P万?qū)動系統(tǒng)設(shè)計。發(fā)表論文10余篇。E-mail:ycao@zjut.edu.cn。
本文引用格式:曹悅,劉玉生,秦緒佳,等.復(fù)雜機(jī)電系統(tǒng)的軟件與物理統(tǒng)一的形式化功能分析[J]. 中國機(jī)械工程,2025,36(2):245-254.
CAO Yue, LIU Yusheng, QIN Xujia, et al. Software-physical Unified Formal Functional Analysis for Complex Mechatronic Systems[J]. China Mechanical Engineering, 2025, 36(2):245-254.
基金項(xiàng)目:國家自然科學(xué)基金(62102367);浙江省自然科學(xué)基金(LQ22F020019,LZ23F020010)