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