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