基于知識(shí)的槍管CAD系統(tǒng)的研究與開發(fā)
引 言
槍管是自動(dòng)武器中最重要的零部件之一,槍管設(shè)計(jì)是自動(dòng)武器設(shè)計(jì)中最基礎(chǔ)的一環(huán)。當(dāng)前槍管設(shè)計(jì)過程中主要是借助一些通用CAD軟件完成一些諸如繪圖、三維實(shí)體建模等方面的工作,計(jì)算機(jī)對(duì)設(shè)計(jì)人員的輔助作用非常有限,設(shè)計(jì)的自動(dòng)化程度很低。為了提高槍管設(shè)計(jì)中CAD智能化的程度,解決槍管設(shè)計(jì)自動(dòng)化的問題,本文采用AI技術(shù)和參數(shù)化設(shè)計(jì)技術(shù),對(duì)開發(fā)基于知識(shí)的槍管CAD系統(tǒng)進(jìn)行了研究和實(shí)踐。基于知識(shí)的系統(tǒng),是人工智能中最活躍的分支之一,旨在研究利用計(jì)算來模仿人類專家的智能活動(dòng)。在自動(dòng)武器設(shè)計(jì)中引入AI技術(shù),目的在于提高自動(dòng)武器行業(yè)中CAD智能化的程度。參數(shù)化設(shè)計(jì)使設(shè)計(jì)人員通過變動(dòng)某些參數(shù)來更新設(shè)計(jì),是基于尺寸驅(qū)動(dòng),可變化幾何圖形的技術(shù)。
1 基于知識(shí)的槍管CAD系統(tǒng)總體結(jié)構(gòu)及其功能
基于知識(shí)的槍管CAD系統(tǒng)的總體結(jié)構(gòu)見圖1。
圖1 基于知識(shí)的槍管CAD系統(tǒng)結(jié)構(gòu)示意圖
(1) 知識(shí)獲取模塊 用于對(duì)知識(shí)庫(kù)中的知識(shí)進(jìn)行修正和更新。其中添加功能可以使專家或用戶把自己在設(shè)計(jì)過程中發(fā)現(xiàn)的知識(shí)庫(kù)中所缺乏的相應(yīng)知識(shí)按一定的方式加入知識(shí)庫(kù);刪改功能有來刪除不必要的或過時(shí)的知識(shí);修改功能則完成對(duì)知識(shí)不能完全反映設(shè)計(jì)的本質(zhì)過程但仍有運(yùn)用價(jià)值的知識(shí)更新。通過該模塊可以使知識(shí)庫(kù)保持與用戶或?qū)<医涣鳎瓜到y(tǒng)中的知識(shí)更趨于合理。
(2) 系統(tǒng)總控模塊 用于接受用戶輸入的最初設(shè)計(jì)要求。依次調(diào)用初始方案設(shè)計(jì)功能,評(píng)價(jià)與決策功能以及再設(shè)計(jì)功能等,通過推理機(jī)激活知識(shí)庫(kù)中與之匹配的知識(shí),對(duì)設(shè)計(jì)過程進(jìn)行推理、運(yùn)算,把各階段所得設(shè)計(jì)結(jié)果存入數(shù)據(jù)庫(kù),并通過解釋機(jī)制向用戶顯示系統(tǒng)運(yùn)行情況。
(3) 解釋機(jī)制 旨在對(duì)系統(tǒng)運(yùn)行過程、運(yùn)行情況進(jìn)行說明。采用預(yù)置文本的方法,將每一問題求解方式的解釋框架采用自然語(yǔ)言事先組織好,插入相應(yīng)的程序段中。
(4) 知識(shí)庫(kù)與數(shù)據(jù)庫(kù) 知識(shí)庫(kù)中存放進(jìn)行初始方案設(shè)計(jì)、評(píng)估與決策、方案再設(shè)計(jì)過程所需運(yùn)用的各種專業(yè)知識(shí)。這些知識(shí)包括經(jīng)驗(yàn)性知識(shí)、原理性知識(shí)和常識(shí)性知識(shí)。數(shù)據(jù)庫(kù)中存放設(shè)計(jì)所需的原始數(shù)據(jù)、設(shè)計(jì)過程所產(chǎn)生的中間數(shù)據(jù)、以及經(jīng)再設(shè)計(jì)后的最終數(shù)據(jù)等。
(5) 圖形處理模塊 從數(shù)據(jù)庫(kù)中讀取推理、計(jì)算所得出的槍管的參數(shù),并檢索公差,然后通過與商用CAD軟件的應(yīng)用程序接口(API—application program interface),來對(duì)系統(tǒng)所求得的槍管方案進(jìn)行二維、三維顯示輸出。
(6) 分析計(jì)算與規(guī)整 由槍管設(shè)計(jì)中需要依據(jù)一定的公式、算法進(jìn)行求解的規(guī)模比較大的子程序庫(kù)組成。除進(jìn)行分析計(jì)算之外,還對(duì)計(jì)算所得結(jié)果進(jìn)行規(guī)整。這類計(jì)算主要包括求解內(nèi)彈道和強(qiáng)度計(jì)算及校核等。
2 系統(tǒng)中知識(shí)的表示
(1) 槍管設(shè)計(jì)的特點(diǎn) 槍管設(shè)計(jì)過程是把設(shè)計(jì)者的構(gòu)思、設(shè)想轉(zhuǎn)化為現(xiàn)實(shí)的實(shí)踐活動(dòng),其中不僅包含了公理性的知識(shí),而且也包含了諸多經(jīng)驗(yàn)性的知識(shí)。其目的是為了使設(shè)計(jì)目標(biāo)能夠容納槍彈、賦予彈頭一定的方向和初速,并符合全槍外形設(shè)計(jì)要求,具有足夠的強(qiáng)度、剛度工和使用壽命等。槍管設(shè)計(jì)的內(nèi)容見圖2。
圖2 槍管設(shè)計(jì)內(nèi)容
(2) 系統(tǒng)中知識(shí)表示形式的選擇 常用的知識(shí)表示形式有產(chǎn)生式規(guī)則、框架表示、語(yǔ)義網(wǎng)絡(luò)表示、一階謂詞邏輯表示、過程表示等。槍管設(shè)計(jì)的知識(shí)是屬擴(kuò)散型的,其中包括有大量經(jīng)驗(yàn)性知識(shí),而設(shè)計(jì)又可以分解為外部構(gòu)造設(shè)計(jì)、內(nèi)膛設(shè)計(jì)、強(qiáng)度設(shè)計(jì)這樣一些可以相對(duì)獨(dú)立進(jìn)行的子問題,子問題又可以分解為更細(xì)小的子問題,如內(nèi)膛設(shè)計(jì)又可以分解為線膛設(shè)計(jì)與彈膛設(shè)計(jì)。最終的分解成為一些公式性、規(guī)則性的知識(shí)。產(chǎn)生式規(guī)則是一種適合表示因果關(guān)系的表示模式。它在語(yǔ)義上表示“IF A THEN B”的因果關(guān)系。運(yùn)用產(chǎn)生式規(guī)則就可以基本上來表達(dá)一系列設(shè)計(jì)中可以分解出來的最小的設(shè)計(jì)元素。框架表示則層次化、模塊化地表示客觀事物所具有的屬性或所處的狀態(tài),以及它與其它事物的關(guān)系。但是單一的產(chǎn)生式規(guī)則表示知識(shí)存在著不足,這種方法不宜于表達(dá)各規(guī)則之間的層次關(guān)系,因?yàn)檫@些規(guī)則在概念上、功能上的層次深淺是不一樣的。從這種層次深度出發(fā),選擇框架表示知識(shí)是必要的。從槍管設(shè)計(jì)知識(shí)結(jié)構(gòu)的實(shí)際出發(fā),選用產(chǎn)生式與框架相結(jié)合的知識(shí)表示體系。這里框架的槽值可以為一產(chǎn)生式,從而可以使所要表達(dá)的知識(shí)充分、清晰、易懂。表1說明了用產(chǎn)生式與框架相結(jié)合來表示的關(guān)于槍管設(shè)計(jì)的知識(shí)。
在構(gòu)建本系統(tǒng)過程中,選用了專家系統(tǒng)工具CLIPS(C language integrated production system)作為專家系統(tǒng)的開發(fā)軟件。CLIPS是美國(guó)航空航天局(NASA)推出的一種基于產(chǎn)生式規(guī)則的通用型專家系統(tǒng)開發(fā)工具,在1997年的6.0版本中,又加入了基于過程,基于模塊,面向?qū)ο蟮姆椒āS肅LIPS構(gòu)建專家系統(tǒng)比用高級(jí)語(yǔ)言(C++、Ada、Prolog等)具有更高的效率。CLIPS是基于規(guī)則的系統(tǒng),本文采用CLIPS的結(jié)構(gòu)命令deftemple來定義框架。deftemple命令表示框架的一般形式為
(deftemple〈框架名〉[〈功能描述〉]
(slot〈規(guī)則名〉)
(slot〈規(guī)則名〉)
(… …))
當(dāng)定義規(guī)則時(shí),使用結(jié)構(gòu)命令defrule,相當(dāng)于IF〈模式〉THEN〈動(dòng)作〉,即
(defrule〈規(guī)則名〉[〈功能描述〉]
《模式》
?
《動(dòng)作》
這樣就可以實(shí)現(xiàn)規(guī)則/框架混合的知識(shí)表示。
表 產(chǎn)生式/框架相結(jié)合的槍管設(shè)計(jì)知識(shí)的表示
框架名 | 槽名 | 槽值 | 槽名 | 槽值 | 槽名 | 槽值 |
槍管
設(shè)計(jì) |
外部 構(gòu)造 |
外部構(gòu)造 框架 |
內(nèi)膛 | 內(nèi)膛設(shè)計(jì) 框架 |
強(qiáng)度 | 強(qiáng)度設(shè)計(jì) 框架 |
外部 構(gòu)造 |
槍管 尾部 |
槍管尾部 設(shè)計(jì)框架 |
槍管 外形 |
槍管外形 設(shè)計(jì)框架 |
槍口 形狀 |
槍口形狀 設(shè)計(jì)框架 |
… | … | … | … | … | … | … |
… | … | … | … | … | … | … |
槍管 尾部 |
尾端面 形狀 |
尾端面形狀 設(shè)計(jì)規(guī)劃 |
||||
… | … | … | … | … | … | … |
3 系統(tǒng)數(shù)據(jù)庫(kù)
槍管設(shè)計(jì)推理的啟動(dòng)參數(shù),如膛壓、線膛的長(zhǎng)度等;設(shè)計(jì)過程中產(chǎn)生的各類過渡型參數(shù);以及最終所選定的槍管的尺寸、公差、材料等,都存放在系統(tǒng)數(shù)據(jù)庫(kù)中。為了有效地管理這些數(shù)據(jù),采用了面向?qū)ο蟮姆椒ā?/FONT>
面向?qū)ο蟮姆椒ㄖ杏袃蓚€(gè)重要概念“類”和“對(duì)象”。在CLIPS6.0中,分別稱為“Class”、“Instance”。CLIPS有一個(gè)最高級(jí)的類OBJECT,它有一個(gè)子類USER。USER類用來定義用戶自定義類。在本系統(tǒng)中類的定義如下:
(defclass BARREL(is-a USER))
(defclass BORE(is-a BARREL))
(defclass CHAMBER(is-a BORE))
對(duì)象的定義如下:
(definstances NEW_CHAMBER
(new_chamber of CHAMBER))
設(shè)計(jì)過程中所產(chǎn)生的各種參數(shù),都存放在各實(shí)例對(duì)象對(duì)應(yīng)的屬性中。這種面向?qū)ο蟮臄?shù)據(jù)庫(kù)結(jié)構(gòu)簡(jiǎn)單,一目了然。在系統(tǒng)運(yùn)行中只需對(duì)數(shù)據(jù)庫(kù)中某一對(duì)象的屬性進(jìn)行讀、寫操作即可。
數(shù)據(jù)庫(kù)中除了存放新的設(shè)計(jì)內(nèi)容,還包括一些成熟的設(shè)計(jì)實(shí)例。一些國(guó)內(nèi)外裝備過的制式槍械的槍管,如56沖、M16步槍的槍管等,都放在數(shù)據(jù)庫(kù)中。這樣不僅使設(shè)計(jì)者在設(shè)計(jì)過程中可隨時(shí)調(diào)用以作參考,而且可以適應(yīng)基于實(shí)例的推理方式。CLIPS是以基于規(guī)則的推理為主,但基于實(shí)例的推理也是可以適當(dāng)采用的。譬如在設(shè)計(jì)時(shí)采用某種制式彈,那么在設(shè)計(jì)彈膛時(shí),系統(tǒng)提出兩套設(shè)計(jì)方法——基于規(guī)則和基于實(shí)例。基于實(shí)例的設(shè)計(jì)使設(shè)計(jì)者在為制式槍彈設(shè)計(jì)彈膛時(shí),可以通過人機(jī)對(duì)話,選擇一種制式槍械槍管的彈膛作為新設(shè)計(jì)槍管的彈膛的原型,新的設(shè)計(jì)可通過對(duì)這種原型在滿足一定條件(規(guī)則)的前提下進(jìn)行修改而得出。這樣可以使設(shè)計(jì)過程得以簡(jiǎn)化。
4 設(shè)計(jì)計(jì)算及計(jì)算結(jié)果的規(guī)整
槍管設(shè)計(jì)中涉及計(jì)算的部分主要由三部分組成:內(nèi)彈道計(jì)算、主要斷面處壁厚的計(jì)算、安全系數(shù)的校核。
內(nèi)彈道計(jì)算的目的在于計(jì)算出裝填條件一定和彈頭一定的發(fā)射條件下膛壓、彈頭速度與彈頭行程、時(shí)間的關(guān)系。通過分析,認(rèn)為在槍彈已知的條件下,膛壓的峰值(最大膛壓)、該峰值出現(xiàn)的位置、線膛總長(zhǎng)、膛口壓力這四個(gè)量在槍管設(shè)計(jì)中最為重要。
當(dāng)膛壓特性確定之后,對(duì)膛壓曲線進(jìn)行處理,就可以根據(jù)膛壓曲線確定槍管主要斷面處壁厚。壁厚由下式計(jì)算:
r2=r1[(3σs+2np)/(3σs-4np)]1/2 (1)
式中,r1、r2分別為槍管內(nèi)、外半徑;σs為材料屈服極限;n為斷面處完全系數(shù);p為斷面處膛壓。
由式(1)計(jì)算得出主要斷面處的外徑、壁厚,并形成槍管的理論外形之后,還需要考慮與槍管結(jié)合零部件的大小和所在位置,工藝性要求,壁厚差的容許量等,并按這些因素對(duì)槍管理論外形進(jìn)行規(guī)整。本系統(tǒng)既可采用人機(jī)交互的方式進(jìn)行尺寸規(guī)整,也可以采用知識(shí)庫(kù)和推理機(jī)進(jìn)行外形尺寸規(guī)整。
5 槍管參數(shù)化圖形設(shè)計(jì)原理與應(yīng)用
本系統(tǒng)中選用美國(guó)SDRC公司的微機(jī)版本IDEAS MS6.0作為圖形參數(shù)化模塊的CAD支撐平臺(tái)。IDEAS是一個(gè)功能強(qiáng)大的CAD/CAE/CAM集成軟件包。在IDEAS中,物體的某些尺寸可以設(shè)置為參數(shù)關(guān)系式,以參數(shù)來控制物體的幾何元素。用戶可以產(chǎn)生兩種類型的參數(shù):驅(qū)動(dòng)參數(shù)型和等式參數(shù)型。驅(qū)動(dòng)參數(shù)型的尺寸值是用戶在產(chǎn)生該物體時(shí)輸入的初始值,這種尺寸可以參數(shù)化,從而在等式參數(shù)型中作為變量。等式參數(shù)型定義了物體上相關(guān)參數(shù)間的數(shù)學(xué)等式關(guān)系。該等式由用戶定義,其中包含有驅(qū)動(dòng)參數(shù)或其它等式參數(shù)。物體的關(guān)鍵尺寸、輪廓約束尺寸等設(shè)為參數(shù)變量(可以賦一初始值)。物體的參數(shù)化過程實(shí)際上就給這些參數(shù)賦予某個(gè)具體尺寸的過程。
本系統(tǒng)通過對(duì)IDEAS的二次開發(fā)來實(shí)現(xiàn)槍管圖形的參數(shù)化三維顯示。系統(tǒng)中推理、計(jì)算所得的槍管的外形尺寸、尺寸約束關(guān)系記錄在數(shù)據(jù)庫(kù)中。系統(tǒng)總控模塊以一定的順序讀取數(shù)據(jù),并生成專用數(shù)據(jù)文件。之后通過C語(yǔ)言編寫的接口程序啟動(dòng)IDEAS,并執(zhí)行一個(gè)相應(yīng)的由IDEAS自帶的高級(jí)語(yǔ)言編寫的程序文件,將數(shù)據(jù)文件中的數(shù)據(jù)賦給預(yù)先建好的槍管三維實(shí)體參數(shù)化模型。
具體實(shí)現(xiàn)方法如下:
(1) 參數(shù)化實(shí)體模型的建立 在IDEAS實(shí)體建模模塊中生成一個(gè)槍管實(shí)體模型,存放在參數(shù)化模型庫(kù)中。可以手工建立模型,并記錄在程序文件中;或者用IDEAS自帶的高級(jí)語(yǔ)言編寫程序文件。這個(gè)模型包括了典型槍管所具有的結(jié)構(gòu)特征。該模型所具有的結(jié)構(gòu)參數(shù)中有一部分可以設(shè)置為驅(qū)動(dòng)參數(shù)型變量,定義、命名這些變量。之后定義、命名與這些驅(qū)動(dòng)參數(shù)型相關(guān)的等式參數(shù)型變量,并給出約束關(guān)系(尺寸鏈要求、聯(lián)接件的形狀約束等)。
(2) 幾何尺寸與結(jié)構(gòu)形式的確定 通過推理、計(jì)算所確定的結(jié)構(gòu)及尺寸存放在數(shù)據(jù)庫(kù)中,以便于圖形處理模塊調(diào)用。
(3) 參數(shù)變量賦值 系統(tǒng)總控模塊從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),生成專用數(shù)據(jù)文件,并啟動(dòng)IDEAS。數(shù)據(jù)讀取的順序依據(jù)前面所產(chǎn)生的數(shù)據(jù)文件的格式確定。依次讀取各段的數(shù)據(jù),放入指定的數(shù)據(jù)結(jié)構(gòu)中。讀取完成后,將讀取成功的槍管的尺寸、結(jié)構(gòu)參數(shù)數(shù)據(jù)傳給參數(shù)化實(shí)體模型,在屏幕上輸出顯示,并生成二維工程圖。
6 結(jié)論
知識(shí)的表達(dá)與數(shù)據(jù)庫(kù)的構(gòu)造是運(yùn)用專家系統(tǒng)工具CLIPS過程中的兩個(gè)最基本的問題,也是該系統(tǒng)能否有效運(yùn)行的關(guān)鍵。在系統(tǒng)中采用規(guī)則與框加混合的知識(shí)表達(dá)體系,允許框加的槽值為一組產(chǎn)生式,將產(chǎn)生式局部化,比單一的產(chǎn)生式有更高的效率。數(shù)據(jù)庫(kù)的構(gòu)造中運(yùn)用了面向?qū)ο蟮姆椒ㄒ约盎趯?shí)例的方法,使得數(shù)據(jù)庫(kù)中數(shù)據(jù)間的關(guān)系表達(dá)易于理解,便于維護(hù)。參數(shù)化設(shè)計(jì)思想可以實(shí)現(xiàn)數(shù)據(jù)與圖形的結(jié)合,有效地解決了設(shè)計(jì)結(jié)果向圖形的轉(zhuǎn)化。綜合運(yùn)用上述技術(shù)開發(fā)的智能化槍管CAD系統(tǒng),較好地解決了槍械主要零部件——槍管的自動(dòng)化設(shè)計(jì)問題。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。