康震宇,袁書強(qiáng)
(中國(guó)兵器科學(xué)研究院寧波分院, 浙江寧波 315103)
破片分布預(yù)測(cè)是彈藥領(lǐng)域的一項(xiàng)難題。目前對(duì)于彈藥破片的空間分布、速度分布都有相應(yīng)軟件進(jìn)行較為準(zhǔn)確的預(yù)測(cè),而破片的形成與彈體材料性能、微觀組織、炸藥種類、裝藥結(jié)構(gòu)等因素都有關(guān)系[1],準(zhǔn)確預(yù)測(cè)彈藥破片質(zhì)量分布、數(shù)量分布難度較高,但對(duì)威力預(yù)測(cè)意義重大。
中國(guó)兵器工業(yè)集團(tuán)有限公司第五二研究所(以下簡(jiǎn)稱五二研究所)于1986年研發(fā)了《彈丸破片質(zhì)量與數(shù)量分布預(yù)測(cè)計(jì)算軟件》(以下簡(jiǎn)稱86版軟件),其預(yù)測(cè)精度達(dá)到了國(guó)內(nèi)先進(jìn)水平。但隨著彈體材料、處理工藝、炸藥及彈藥結(jié)構(gòu)設(shè)計(jì)的不斷發(fā)展,計(jì)算機(jī)技術(shù)的不斷進(jìn)步,該軟件版本已經(jīng)不能適應(yīng)當(dāng)前彈丸破片質(zhì)量與數(shù)量分布預(yù)測(cè)的科研生產(chǎn)要求,亟待升級(jí)改造。文中闡述了新版軟件的系統(tǒng)架構(gòu)、工作機(jī)理及成效。
86版軟件采用傳統(tǒng)面向過程設(shè)計(jì),Basic解釋型語言開發(fā)。其科學(xué)計(jì)算、圖形處理能力弱;輸入/輸出(I/O)操作為命令行模式,可視化程度低、操作不便;無存儲(chǔ)機(jī)制,實(shí)驗(yàn)參數(shù)、過程數(shù)據(jù)、預(yù)測(cè)結(jié)果無法二次利用。圖1為86版軟件Basic語言源代碼和運(yùn)行環(huán)境。
圖1 86版軟件源代碼及遠(yuǎn)行環(huán)境
在預(yù)測(cè)能力提升與發(fā)展方面,新版軟件采用面向?qū)ο笤O(shè)計(jì),從架構(gòu)上保證系統(tǒng)的通用性、可擴(kuò)展性;采用Python、Pycharm等先進(jìn)開發(fā)工具與技術(shù),提升科學(xué)計(jì)算、圖形處理、接口開發(fā)等能力,同時(shí)為今后機(jī)器學(xué)習(xí)與知識(shí)庫建設(shè)提供技術(shù)支撐。
在易操作、可視化方面,新版軟件采用UI圖形化界面設(shè)計(jì)及研發(fā)工具,實(shí)現(xiàn)I/O數(shù)據(jù)電子化、模板化管理及歷史數(shù)據(jù)電子歸檔。
采用UML(unified modeling language)[2]進(jìn)行設(shè)計(jì)。圖2是新版軟件核心類圖,描述了軟件總體框架與核心類功能。破片分布計(jì)算支持多種預(yù)測(cè)模型,計(jì)算處理后得到主報(bào)告及3個(gè)分報(bào)告,使用Excel工具包進(jìn)行I/O處理。
圖2 新版軟件核心類圖
圖3是新版軟件核心功能交互視圖[3]。破片質(zhì)量與數(shù)量分布預(yù)測(cè)需要執(zhí)行主控程序,讀取分析員提供的預(yù)測(cè)參數(shù)Excel文件以及系統(tǒng)內(nèi)部計(jì)算參數(shù)配置,然后執(zhí)行破片分布計(jì)算處理,依次計(jì)算:
1)計(jì)算各單元的質(zhì)量,前(N-2)個(gè)單元的外圓臺(tái)體積和內(nèi)圓臺(tái)體積;
2)計(jì)算每個(gè)單元的炸藥質(zhì)量、各單元A值;
3)計(jì)算每個(gè)單元的外錐角、內(nèi)錐角以及各單元B值;
4)計(jì)算每個(gè)單元單位長(zhǎng)度payman參數(shù)和每個(gè)單元payman參數(shù);
5)計(jì)算每個(gè)單元對(duì)破片質(zhì)量分布的貢獻(xiàn);
6)計(jì)算每個(gè)單元對(duì)破片數(shù)量分布的貢獻(xiàn),計(jì)算每個(gè)單元在某質(zhì)量范圍的質(zhì)量、破片數(shù);
7)計(jì)算大于各質(zhì)量區(qū)間的破片質(zhì)量和數(shù)量,其中用Mott方程計(jì)算最大破片重量[4]。
圖3 執(zhí)行系統(tǒng)交互視圖
I/O數(shù)據(jù)的電子化、模板化管理。采用Excel文件作為I/O接口,通過定制Excel I/O模板,方便分析人員導(dǎo)入預(yù)測(cè)指標(biāo)參數(shù),預(yù)測(cè)分布報(bào)告二次處理,以及歷史數(shù)字化文檔歸檔與檢索。
采用Python作為主開發(fā)語言。Python有免費(fèi)/開源、自動(dòng)內(nèi)存管理、支持面向?qū)ο箝_發(fā)、可移植性和可擴(kuò)展性好、第三方支持庫豐富等諸多優(yōu)勢(shì)[5-6]。同時(shí)采用PyCharm IDE作為集成開發(fā)平臺(tái),以提高開發(fā)效率,方便調(diào)試、Project管理、單元測(cè)試等項(xiàng)目管理。
圖形用戶界面(GUI)應(yīng)用開發(fā)。使用PyQt中間件作為GUI應(yīng)用開發(fā)工具包,Qt庫是目前最強(qiáng)大的圖形界面開發(fā)庫之一,具有優(yōu)良的跨平臺(tái)、面向?qū)ο蠹柏S富的API;支持2D/3D圖形渲染,支持OpenGL[7-8]。
1)預(yù)測(cè)指標(biāo)參數(shù)導(dǎo)入。如圖4所示,分析人員只需按模板格式填寫相關(guān)參數(shù),或修改已有模板參數(shù),導(dǎo)入工作由軟件自動(dòng)完成。
2)破片質(zhì)量與數(shù)量分布預(yù)測(cè)計(jì)算。如圖5所示,在圖形用戶界面GUI中,分析人員通過點(diǎn)擊鼠標(biāo)即可完成相關(guān)預(yù)測(cè)計(jì)算任務(wù)。
圖4 預(yù)測(cè)指標(biāo)參數(shù)導(dǎo)入模板
圖5 破片質(zhì)量與數(shù)量分布預(yù)測(cè)計(jì)算GUI
3)預(yù)測(cè)結(jié)果報(bào)告
預(yù)測(cè)結(jié)果分為主報(bào)告及3個(gè)附件子報(bào)告,如圖6~圖9。其中,主報(bào)告為“破片質(zhì)量、數(shù)量分布預(yù)測(cè)結(jié)果”;附件1為“破片質(zhì)量分布情況”;附件2為“破片數(shù)量分布情況”;附件3為“各單元諸參數(shù)的計(jì)算結(jié)果”。
圖6 破片質(zhì)量、數(shù)量分布預(yù)測(cè)結(jié)果(主報(bào)告)
圖7 破片質(zhì)量分布情況(附件1)
圖8 破片數(shù)量分布情況(附件2)
圖9 各單元諸參數(shù)的計(jì)算結(jié)果(附件3)
1)通用性驗(yàn)證
86版軟件針對(duì)彈丸不同型號(hào)存在通用版和若干定制版,需要根據(jù)情況分別執(zhí)行不同小版本軟件,給軟件使用和維護(hù)帶來諸多不便。新版軟件通過優(yōu)化設(shè)計(jì),將86版軟件各小版本進(jìn)行了整合,用戶只需簡(jiǎn)單選擇預(yù)測(cè)模型即可在不同預(yù)測(cè)算法間靈活切換。通過執(zhí)行各預(yù)測(cè)模型算法,有效破片數(shù)量/質(zhì)量與歷史實(shí)驗(yàn)結(jié)果平均相對(duì)誤差小于±3%;殺傷破片數(shù)量/質(zhì)量與歷史實(shí)驗(yàn)結(jié)果相對(duì)誤差小于±1.9%。
2)準(zhǔn)確性驗(yàn)證
下面以給定材料和裝藥的130加榴彈為例,通過對(duì)比新版軟件與實(shí)驗(yàn)數(shù)據(jù)的破片質(zhì)量/數(shù)量分布情況,來驗(yàn)證新版軟件的準(zhǔn)確性,如表1所示。
表1 新版軟件與實(shí)驗(yàn)數(shù)據(jù)分布情況對(duì)比
該軟件的成功開發(fā)解決了86版破片預(yù)測(cè)程序圖形處理能力弱、可視化程度不高、無存儲(chǔ)機(jī)制等問題,擴(kuò)大了預(yù)測(cè)程序適用范圍,提高了計(jì)算精度;通過采用面向?qū)ο蠹夹g(shù)、Python等現(xiàn)代技術(shù),保證了系統(tǒng)的先進(jìn)性,為后續(xù)機(jī)器學(xué)習(xí)、智能預(yù)測(cè)以及與威力預(yù)測(cè)程序信息共享開發(fā)提供了技術(shù)支撐;彌補(bǔ)了傳統(tǒng)商業(yè)威力預(yù)測(cè)軟件破片分布預(yù)測(cè)誤差過大的問題,具有重要的使用價(jià)值。