馮蘊(yùn)雯,嚴(yán)浩,路成,薛小鋒
(西北工業(yè)大學(xué)航空學(xué)院,西安710072)
航材作為綜合后勤保障的物資基礎(chǔ),其科學(xué)的預(yù)測(cè)與合理的配置是有效保障民用飛機(jī)安全經(jīng)濟(jì)運(yùn)行的前提[1]。波音公司建立了覆蓋全球的供應(yīng)鏈,擁有行業(yè)內(nèi)先進(jìn)的分銷(xiāo)網(wǎng)絡(luò),能夠快速為全球客戶(hù)配置航材。美聯(lián)航建立了完善的航材庫(kù)存管理系統(tǒng),使得各部門(mén)之間能夠及時(shí)共享信息,為航材管理部門(mén)制定庫(kù)存計(jì)劃和監(jiān)控備件使用情況提供支持。我國(guó)航空公司在航材經(jīng)營(yíng)管理方面經(jīng)驗(yàn)不足,容易造成航材采購(gòu)不合理和資金浪費(fèi)的情況[2]。以國(guó)內(nèi)某航空公司為例,2018年該公司因飛機(jī)維修過(guò)程中航材缺件引起的航班延誤或取消不到1%,但該公司在預(yù)算之內(nèi)盡量多備航材庫(kù)存以滿(mǎn)足飛機(jī)維護(hù)需求,造成航材庫(kù)存成本偏高,公司運(yùn)營(yíng)成本增加[3]。
國(guó)內(nèi)研究人員為解決合理采購(gòu)和配置航材這一工程問(wèn)題開(kāi)展了很多研究。李俊生[4]分析了航材管理對(duì)于航空公司盈利的重要意義,闡述了信息化對(duì)提高航材管理水平的作用;喻拿侖[5]建立了以航材總體成本最小化為目標(biāo)函數(shù)的模型,使用Python編程設(shè)計(jì)優(yōu)化算法,選取某航空公司50個(gè)航材實(shí)際數(shù)據(jù)作為輸入,得到了成本更優(yōu)的航材數(shù)量推薦清單;王洵麟[6]開(kāi)發(fā)了民用飛機(jī)管理信息系統(tǒng),實(shí)現(xiàn)了航材數(shù)據(jù)管理與航材預(yù)測(cè)兩個(gè)主要功能,其中航材預(yù)測(cè)功能是基于用戶(hù)經(jīng)驗(yàn)實(shí)現(xiàn)的;楊冰冰[7]使用灰色預(yù)測(cè)模型對(duì)30架B777飛機(jī)大修數(shù)據(jù)進(jìn)行了研究,并使用VB語(yǔ)言和Access數(shù)據(jù)庫(kù)設(shè)計(jì)了飛機(jī)大修航材預(yù)測(cè)系統(tǒng),能夠?qū)崿F(xiàn)對(duì)大修航材的預(yù)測(cè)。此外,近年來(lái),基于航材共享模式的航材管理也在快速發(fā)展。航材共享模式憑借規(guī)模優(yōu)勢(shì)能夠有效降低航空公司的航材庫(kù)存成本,但一般只包括周轉(zhuǎn)件[8],并且航材共享支援網(wǎng)絡(luò)本身也需要對(duì)航材進(jìn)行合理的采購(gòu)和配置。
綜上所述,使用信息化平臺(tái)技術(shù)推動(dòng)航材預(yù)測(cè)與配置理論算法工程應(yīng)用是有必要的,但國(guó)內(nèi)在這一方面尚未有很好的發(fā)展。主要存在如下問(wèn)題:算法程序未能整合入系統(tǒng)平臺(tái),工程上難以應(yīng)用;系統(tǒng)平臺(tái)開(kāi)發(fā)的技術(shù)并非主流的軟件開(kāi)發(fā)技術(shù),不利于部署使用及后期維護(hù),同時(shí),系統(tǒng)平臺(tái)的擴(kuò)展性與操作性較差。
針對(duì)上述問(wèn)題,本文設(shè)計(jì)并實(shí)現(xiàn)基于多語(yǔ)言混合編程的航材預(yù)測(cè)與配置平臺(tái)。以Java語(yǔ)言及其相應(yīng)的SpringBoot、Mybatis、Vue等主流技術(shù)框架進(jìn)行平臺(tái)框架搭建,將Python、Matlab編寫(xiě)的航材預(yù)測(cè)與配置算法整合到系統(tǒng)平臺(tái)中,并運(yùn)用實(shí)際工程數(shù)據(jù)對(duì)平臺(tái)的功能進(jìn)行使用測(cè)試驗(yàn)證。
目前,針對(duì)航材預(yù)測(cè)與配置的理論研究,國(guó)內(nèi)外已取得了較多的成果,提出了較為豐富的理論算法。其中,航材預(yù)測(cè)技術(shù)總體上可分為三類(lèi)[9-14]:基于時(shí)間序列的航材預(yù)測(cè)技術(shù)、基于回歸分析法的航材預(yù)測(cè)技術(shù)、基于機(jī)器學(xué)習(xí)的航材預(yù)測(cè)技術(shù)。航材配置技術(shù)總體上可分為兩類(lèi)[15-16]:基于解析方法的航材配置管理和基于優(yōu)化算法的航材配置管理。這些方法為民用飛機(jī)航材科學(xué)預(yù)測(cè)與合理配置提供了理論支撐。
支持向量機(jī)算法從統(tǒng)計(jì)學(xué)習(xí)理論發(fā)展而來(lái),專(zhuān)門(mén)用于研究有限樣本情況下的機(jī)器學(xué)習(xí)規(guī)律[17],在數(shù)據(jù)預(yù)測(cè)問(wèn)題上有較為廣泛的運(yùn)用[18]。因此,本文使用支持向量機(jī)法作為實(shí)現(xiàn)航材預(yù)測(cè)功能的算法。
平臺(tái)中集成的航材配置算法為邊際分析法,這是一種經(jīng)濟(jì)分析方法,該方法把投入的資金所得到的利益與輸出損失進(jìn)行比較,如果組織的目標(biāo)是取得最大利潤(rùn),那么當(dāng)追加的收入和追加的支出相等時(shí),這一目標(biāo)就能達(dá)到[19]。在航材配置過(guò)程中,主要考慮的問(wèn)題是在滿(mǎn)足航材配置需求的前提下盡量降低成本。基于邊際分析法,馮蘊(yùn)雯等[20]考慮橫向供應(yīng)的多級(jí)庫(kù)存配置問(wèn)題,將維修比例這一實(shí)際因素引入庫(kù)存配置模型中,提出了一種考慮橫向供應(yīng)及維修比例的民用飛機(jī)備件多級(jí)庫(kù)存配置方法。與不考慮橫向供應(yīng)和維修比例的傳統(tǒng)配置模型、以及只考慮維修比例的庫(kù)存配置模型相比,該模型顯示的庫(kù)存成本得以顯著減少。因此,本文采用這一方法的算法程序來(lái)實(shí)現(xiàn)航材配置功能。
多種語(yǔ)言混合編程的目的是為了發(fā)揮不同語(yǔ)言各自特有的優(yōu)勢(shì),更好地實(shí)現(xiàn)平臺(tái)設(shè)計(jì)。Java語(yǔ)言最主要的特點(diǎn)是面向?qū)ο?,通過(guò)初始化具有不同屬性的對(duì)象來(lái)實(shí)現(xiàn)具體的程序操作。基于這一特性,Java語(yǔ)言被廣泛應(yīng)用于軟件平臺(tái)的開(kāi)發(fā)中,目前也是全世界使用范圍最廣的編程語(yǔ)言,但使用Java語(yǔ)言來(lái)進(jìn)行數(shù)據(jù)分析和處理的效率很低。Matlab語(yǔ)言在處理矩陣方面具有突出的優(yōu)勢(shì);Py‐thon語(yǔ)言語(yǔ)法簡(jiǎn)潔,且擁有豐富的第三方庫(kù),用戶(hù)可以方便地調(diào)用第三方庫(kù)快速實(shí)現(xiàn)數(shù)據(jù)處理與分析。在軟件平臺(tái)的開(kāi)發(fā)過(guò)程中,把具體的算法和數(shù)據(jù)處理工作交給在這一方面具有優(yōu)勢(shì)的編程語(yǔ)言來(lái)實(shí)現(xiàn),將復(fù)雜的問(wèn)題轉(zhuǎn)化為不同語(yǔ)言之間的參數(shù)傳遞問(wèn)題,能夠降低程序設(shè)計(jì)的復(fù)雜程度,提升軟件平臺(tái)的性能和開(kāi)發(fā)效率[21]。
Java與Matlab混合編程的實(shí)現(xiàn)方式有多種,但核心問(wèn)題都是要解決兩種語(yǔ)言之間的參數(shù)傳遞。本文設(shè)計(jì)的軟件平臺(tái)是以Java語(yǔ)言為主,將其他語(yǔ)言編寫(xiě)的算法整合到軟件平臺(tái)中。算法程序確定后基本不會(huì)再修改,而軟件平臺(tái)中實(shí)現(xiàn)功能的其他程序需要在編寫(xiě)過(guò)程中不斷修改調(diào)試。為方便算法的調(diào)用和平臺(tái)開(kāi)發(fā),本文使用將Mat‐lab算法程序封裝成jar包程序提供給Java語(yǔ)言直接進(jìn)行調(diào)用的方式來(lái)實(shí)現(xiàn)Java與Matlab混合編程。具體操作流程如下:
(1)將算法程序處理為函數(shù)形式,并封裝成jar程序包:通常情況下,為了便于直接獲取Matlab程序運(yùn)算產(chǎn)生的過(guò)程變量值和結(jié)果值,算法程序會(huì)以程序流的形式編寫(xiě)。但若要將程序封裝為jar包程序,則需要首先對(duì)腳本程序進(jìn)行處理,將其處理為方法體的形式,使用function……end將算法程序包裹起來(lái),并明確方法名稱(chēng)、輸入和輸出參數(shù)。具體形式為
如果原程序開(kāi)頭有clear,clc命令,需要在寫(xiě)成方法體后將其注釋或刪除,避免該命令運(yùn)行后將傳入的輸入?yún)?shù)清空。
通過(guò)以上步驟完成對(duì)算法腳本程序的處理后,在Matlab軟件中使用Library Compiler工具,將算法程序封裝成jar程序包。
(2)在SpringBoot項(xiàng)目中引入環(huán)境配置jar包和算法程序jar包:在SpringBoot項(xiàng)目中引入jar程序包有兩種方法,一種是將jar程序包放入本地maven倉(cāng)庫(kù)中,然后在pom配置文件中引入;另一種是在SpringBoot項(xiàng)目中的resource目錄下新建一個(gè)lib文件夾,右鍵將其Add as library,項(xiàng)目便可以識(shí)別到里面的jar程序包。
考慮到在開(kāi)發(fā)過(guò)程中,需要不斷地調(diào)試程序,修改jar包,本文選擇建立lib文件目錄的形式,將jar包添加進(jìn)去。除了算法程序的jar包,還需要引入javabuilder的jar包,提供混合編程的環(huán)境配置,主要是為數(shù)據(jù)類(lèi)型轉(zhuǎn)換提供支持,如圖1所示。
圖1 在SpringBoot項(xiàng)目中引入jar程序包示意圖Fig.1 Diagram of introducing a jar package into the SpringBoot project
(3)調(diào)用Matlab算法,傳入?yún)?shù),接收結(jié)果:完成上述操作后,即可在Java程序中通過(guò)初始化類(lèi)的方式,調(diào)用算法程序。具體操作程序如圖2所示。
圖2 使用Java調(diào)用Matlab程序核心代碼Fig.2 Core code of using Java to call the Matlab program
使用Java調(diào)用Python程序的方式有多種,主要包括:
(1)在Java類(lèi)中直接執(zhí)行Python語(yǔ)句;
(2)在Java中通過(guò)PythonInterpreter類(lèi)調(diào)用Python腳本;
(3)通過(guò)Runtime.getRuntime()方法執(zhí)行Py‐thon腳本。
以上三種方法都可以實(shí)現(xiàn)Java調(diào)用Python程序,但在實(shí)際開(kāi)發(fā)過(guò)程中,使用方法(1)和方法(2)存在無(wú)法正常引用Python第三方庫(kù)的問(wèn)題,使得Python語(yǔ)言的優(yōu)勢(shì)難以體現(xiàn)。因此,選擇第三種方法來(lái)實(shí)現(xiàn)混合編程,即保持了算法程序的獨(dú)立性,又能夠充分利用Python豐富的第三方庫(kù)。具體操作流程如下。
(1)處理Python腳本程序。
首先需要對(duì)源程序進(jìn)行處理,將其改寫(xiě)為方法體的形式,并聲明主函數(shù)入口,在主函數(shù)中調(diào)用具體的算法函數(shù),確定輸入和輸出參數(shù)。具體形式如圖3所示。
圖3 Python腳本程序處理方法Fig.3 Python script processing method
(2)在SpringBoot項(xiàng)目中添加環(huán)境依賴(lài)。
要在SpringBoot項(xiàng)目的Java程序中調(diào)用py‐thon程序需要在pom文件中添加jython依賴(lài),如圖4所示。
圖4 調(diào)用Python程序所需添加的依賴(lài)Fig.4 The dependencies that need to be added to call the Python program
(3)在Java程序中調(diào)用Python腳本程序,傳入?yún)?shù)、處理結(jié)果。
完成前述操作后,即可在Java程序中調(diào)用Py‐thon算法程序。具體操作程序如圖5所示。
圖5 使用Java調(diào)用Python程序核心代碼Fig.5 Core code of using Java to call the Python program
平臺(tái)開(kāi)發(fā)采用瀏覽器/服務(wù)器(Browser/Serv‐er,簡(jiǎn)稱(chēng)B/S)架構(gòu)和前后端分離的開(kāi)發(fā)方式,程序開(kāi)發(fā)環(huán)境在Windos10系統(tǒng)下進(jìn)行。平臺(tái)功能結(jié)構(gòu)如圖6所示。
圖6 平臺(tái)功能結(jié)構(gòu)圖Fig.6 Diagram of platform functional architecture
平臺(tái)后端程序基于SpringBoot技術(shù)框架,主要使用Java語(yǔ)言開(kāi)發(fā),并整合了Mybatis技術(shù)框架作為數(shù)據(jù)持久層。前端程序基于Vue技術(shù)框架,主要使用JavaScript語(yǔ)言開(kāi)發(fā),使用了ElementUI組件庫(kù)用于前端頁(yè)面設(shè)計(jì)。后臺(tái)數(shù)據(jù)庫(kù)使用MySQL數(shù)據(jù)庫(kù)管理系統(tǒng),用于存儲(chǔ)計(jì)算分析的結(jié)果。由于平臺(tái)功能是基于Java、Matlab、Python混合編程實(shí)現(xiàn)的,在平臺(tái)開(kāi)發(fā)和運(yùn)行所使用的服務(wù)器上還需要配置這三種語(yǔ)言編譯的環(huán)境?;诳蚣芗夹g(shù),平臺(tái)使用模塊化開(kāi)發(fā)方式,便于將來(lái)更新和擴(kuò)展功能模塊。平臺(tái)共包含兩個(gè)主要功能模塊:航材預(yù)測(cè)模塊和航材配置模塊,兩個(gè)功能模塊的業(yè)務(wù)流程功能相同,包括:
(1)通用文件查詢(xún):用戶(hù)根據(jù)文件名查詢(xún)數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)源文件信息;
(2)文件上傳:用戶(hù)上傳數(shù)據(jù)源文件作為算法程序的輸入;
(3)調(diào)用算法程序:用戶(hù)完成數(shù)據(jù)源文件上傳后,點(diǎn)擊相應(yīng)功能按鈕,系統(tǒng)調(diào)用算法程序進(jìn)行計(jì)算分析;
(4)狀態(tài)提醒功能:平臺(tái)頁(yè)面會(huì)對(duì)用戶(hù)的主要操作結(jié)果進(jìn)行提示;
(5)結(jié)果導(dǎo)出功能:后臺(tái)計(jì)算完成并將結(jié)果存入結(jié)果數(shù)據(jù)庫(kù)后,相應(yīng)的結(jié)果顯示在平臺(tái)頁(yè)面上,用戶(hù)可以將結(jié)果進(jìn)行導(dǎo)出,存儲(chǔ)到本地計(jì)算機(jī)中。
在航材預(yù)測(cè)模塊中,將某一型號(hào)航材的歷史使用數(shù)據(jù)作為輸入,調(diào)用支持向量機(jī)算法,讀取輸入數(shù)據(jù)后進(jìn)行計(jì)算,得到未來(lái)一段時(shí)間的航材使用數(shù)量預(yù)測(cè)值。然后,再使用實(shí)際的使用數(shù)據(jù)與預(yù)測(cè)值進(jìn)行比較,將比較折線(xiàn)圖和預(yù)測(cè)值作為輸出,顯示在前端頁(yè)面上,計(jì)算結(jié)果可提供給用戶(hù)進(jìn)行下載導(dǎo)出。
在航材配置模塊中,將包含原始推薦數(shù)量、保障率、可用率、報(bào)廢率、備件費(fèi)用、周轉(zhuǎn)時(shí)間、訂貨時(shí)間、人工時(shí)費(fèi)用、材料費(fèi)用、任務(wù)間隔時(shí)間等信息的航材信息表,機(jī)隊(duì)運(yùn)營(yíng)信息,航材庫(kù)位置信息作為輸入,調(diào)用邊際分析算法,讀取輸入數(shù)據(jù)后進(jìn)行計(jì)算分析,得到航材在每個(gè)航材庫(kù)的配置數(shù)量并作為輸出,顯示在前端頁(yè)面上,計(jì)算結(jié)果可提供給用戶(hù)進(jìn)行下載導(dǎo)出。
總之,平臺(tái)程序設(shè)計(jì)的核心就是傳入數(shù)據(jù),調(diào)用算法程序進(jìn)行計(jì)算分析,返回計(jì)算分析結(jié)果。輸入數(shù)據(jù)的內(nèi)容是根據(jù)算法程序的需求來(lái)確定的,本文設(shè)計(jì)的平臺(tái)主要通過(guò)讀取表格文件內(nèi)容的方式來(lái)實(shí)現(xiàn)輸入。在程序開(kāi)發(fā)過(guò)程中,主要解決的是不同語(yǔ)言程序之間的數(shù)據(jù)傳輸問(wèn)題。
調(diào)用算法程序計(jì)算得到的結(jié)果返回Java程序后,會(huì)存在數(shù)據(jù)類(lèi)型不一致的問(wèn)題。Python語(yǔ)言為弱類(lèi)型語(yǔ)言,它的參數(shù)類(lèi)型與強(qiáng)類(lèi)型語(yǔ)言Java的參數(shù)類(lèi)型兼容性較好;Matlab語(yǔ)言的參數(shù)類(lèi)型與Java語(yǔ)言參數(shù)類(lèi)型并不完全對(duì)應(yīng),通常需要進(jìn)行處理。
本文涉及到的參數(shù)處理技術(shù)途徑如圖7所示。程序調(diào)用Matlab編寫(xiě)的航材配置算法對(duì)輸入?yún)?shù)進(jìn)行計(jì)算分析后,得到的主要結(jié)果形式為矩陣,Ja‐va語(yǔ)言中沒(méi)有矩陣數(shù)據(jù)類(lèi)型,因此,要先將結(jié)果矩陣轉(zhuǎn)換為Java語(yǔ)言可處理的結(jié)果類(lèi)型,才能對(duì)其進(jìn)行處理,并繼續(xù)將其存入結(jié)果數(shù)據(jù)庫(kù)。Matlab算法計(jì)算得到的是航材配置結(jié)果的矩陣輸出結(jié)果,每一個(gè)元素代表一個(gè)型號(hào)航材在某航材庫(kù)的配置數(shù)量。結(jié)果矩陣返回Java程序后,首先,使用MWNumercArray類(lèi)將其轉(zhuǎn)換為二維數(shù)組;然后,循環(huán)遍歷該二維數(shù)組,依次取出二維數(shù)組中單個(gè)元素,該元素代表一個(gè)型號(hào)航材在若干航材庫(kù)的配置數(shù)量;二維數(shù)組中的單個(gè)元素可看作一維數(shù)組,繼續(xù)循環(huán)遍歷該元素,將其中的每個(gè)數(shù)值賦值給航材配置結(jié)果對(duì)象屬性,并將這個(gè)對(duì)象加入List集合;最后,使用Mybatis框架技術(shù)中的
圖7 參數(shù)類(lèi)型轉(zhuǎn)換及屬性賦值方法流程圖Fig.7 Flowchart of parameter type conversion andattribute assignment methods
4.1.1 航材預(yù)測(cè)功能
登錄系統(tǒng)后,點(diǎn)擊左側(cè)菜單欄的航材預(yù)測(cè)選項(xiàng)進(jìn)入航材預(yù)測(cè)頁(yè)面,頁(yè)面上半部分內(nèi)容為歷史上傳的航材預(yù)測(cè)數(shù)據(jù)源文件信息,下半部分為航材預(yù)測(cè)的結(jié)果,如圖8所示。點(diǎn)擊頁(yè)面右下方上傳數(shù)據(jù)文件按鈕,根據(jù)系統(tǒng)頁(yè)面提示上傳航材歷史使用情況的表格文件,如圖9所示。消耗數(shù)據(jù)表格中記錄了36個(gè)月的航材使用數(shù)據(jù),如圖10所示。繼續(xù)點(diǎn)擊航材預(yù)測(cè)運(yùn)算按鈕,程序調(diào)用后臺(tái)計(jì)算程序開(kāi)始計(jì)算,然后將計(jì)算結(jié)果以表格和折線(xiàn)圖的形式返回到頁(yè)面上,如圖11所示。表格數(shù)據(jù)代表某一航材在一個(gè)月份中的使用數(shù)量預(yù)測(cè)值,折線(xiàn)圖是實(shí)際使用數(shù)據(jù)與預(yù)測(cè)值的對(duì)比情況。用戶(hù)可將表格中的結(jié)果數(shù)據(jù)導(dǎo)出到本地計(jì)算機(jī)中,導(dǎo)出操作如圖12所示。
圖8 航材預(yù)測(cè)模塊頁(yè)面Fig.8 Aviation material prediction module page
圖9 上傳航材預(yù)測(cè)數(shù)據(jù)源文件操作頁(yè)面Fig.9 Upload aviation material prediction data source file operation page
圖10 航材消耗源文件數(shù)據(jù)內(nèi)容Fig.10 Content of aviation material consumption source file
圖11 航材預(yù)測(cè)計(jì)算結(jié)果頁(yè)面Fig.11 Aviation material prediction results page
圖12 航材預(yù)測(cè)結(jié)果導(dǎo)出操作頁(yè)面Fig.12 Export operation page of aviation material prediction results
4.1.2 航材配置功能
登錄系統(tǒng)后,進(jìn)入航材配置頁(yè)面,如圖13所示。頁(yè)面上半部分顯示歷史上傳的數(shù)據(jù)源文件信息,下半部分顯示計(jì)算結(jié)果。點(diǎn)擊“上傳數(shù)據(jù)源文件”按鈕,根據(jù)系統(tǒng)彈窗中的提示選擇機(jī)隊(duì)信息、航站信息、航材信息的數(shù)據(jù)源文件進(jìn)行上傳,如圖14所示。機(jī)隊(duì)信息文件中包含機(jī)隊(duì)數(shù)量、年飛行小時(shí)、航站數(shù)量和基地?cái)?shù)量;航站信息文件中包含每個(gè)基地和航站之間的航程信息;航材信息文件中包含若干航材件的平均非計(jì)劃拆換間隔、原始推薦數(shù)量、保障率、可用度、時(shí)間等多個(gè)參數(shù)信息,如圖15所示。完成上傳后,繼續(xù)點(diǎn)擊“航材配置運(yùn)算”按鈕,程序調(diào)用后臺(tái)程序開(kāi)始計(jì)算,然后將計(jì)算結(jié)果以表格的形式顯示到頁(yè)面上。表格中一行數(shù)據(jù)代表某一型號(hào)航材在多個(gè)航站配置的數(shù)量。用戶(hù)可將表格中的結(jié)果數(shù)據(jù)導(dǎo)出到本地計(jì)算機(jī)中,如圖16所示。
圖13 航材配置模塊頁(yè)面Fig.13 Aviation material configuration module page
圖14 上傳航材配置數(shù)據(jù)源文件操作頁(yè)面Fig.14 Upload aviation material configuration data source file operation page
圖15 航材配置數(shù)據(jù)源文件內(nèi)容Fig.15 Content of aviation material configuration source file
圖16 航材配置計(jì)算結(jié)果及導(dǎo)出操作頁(yè)面Fig.16 Calculation results of aviation material configuration and export operation page
根據(jù)4.1節(jié)中對(duì)各功能模塊的測(cè)試操作可知,平臺(tái)的人機(jī)界面友好,操作簡(jiǎn)單方便,成功整合了航材預(yù)測(cè)與航材配置算法程序,解決了混合編程存在的參數(shù)傳遞問(wèn)題,實(shí)現(xiàn)了預(yù)先設(shè)計(jì)的兩個(gè)主要功能,即通過(guò)平臺(tái)技術(shù)整合理論算法,在平臺(tái)上實(shí)現(xiàn)航材預(yù)測(cè)與航材配置的功能。
(1)本文給出了基于Java、Matlab、Python混合編程的航材預(yù)測(cè)與配置平臺(tái)的設(shè)計(jì),實(shí)現(xiàn)了將航材預(yù)測(cè)和配置理論研究算法整合入信息化平臺(tái)的目的。該平臺(tái)主要實(shí)現(xiàn)了基于航材歷史消耗數(shù)據(jù)的對(duì)航材需求量的預(yù)測(cè)功能,以及基于機(jī)隊(duì)信息、航站信息和航材信息的航材配置功能。
(2)在平臺(tái)開(kāi)發(fā)過(guò)程中,提出了將Matlab矩陣結(jié)果參數(shù)轉(zhuǎn)化為Java語(yǔ)言可處理的參數(shù)類(lèi)型的方法,并成功運(yùn)用到平臺(tái)中。
(3)在將來(lái)的使用中,可以根據(jù)工程實(shí)際需要整合多種類(lèi)型的算法、擴(kuò)展平臺(tái)功能模塊,優(yōu)化原有算法程序,更好地為航材管理提供支持。