999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

多語言混合編程的民用飛機航材預測與配置平臺

2021-11-01 12:43:18馮蘊雯嚴浩路成薛小鋒
航空工程進展 2021年5期
關鍵詞:頁面程序語言

馮蘊雯,嚴浩,路成,薛小鋒

(西北工業大學航空學院,西安710072)

0 引 言

航材作為綜合后勤保障的物資基礎,其科學的預測與合理的配置是有效保障民用飛機安全經濟運行的前提[1]。波音公司建立了覆蓋全球的供應鏈,擁有行業內先進的分銷網絡,能夠快速為全球客戶配置航材。美聯航建立了完善的航材庫存管理系統,使得各部門之間能夠及時共享信息,為航材管理部門制定庫存計劃和監控備件使用情況提供支持。我國航空公司在航材經營管理方面經驗不足,容易造成航材采購不合理和資金浪費的情況[2]。以國內某航空公司為例,2018年該公司因飛機維修過程中航材缺件引起的航班延誤或取消不到1%,但該公司在預算之內盡量多備航材庫存以滿足飛機維護需求,造成航材庫存成本偏高,公司運營成本增加[3]。

國內研究人員為解決合理采購和配置航材這一工程問題開展了很多研究。李俊生[4]分析了航材管理對于航空公司盈利的重要意義,闡述了信息化對提高航材管理水平的作用;喻拿侖[5]建立了以航材總體成本最小化為目標函數的模型,使用Python編程設計優化算法,選取某航空公司50個航材實際數據作為輸入,得到了成本更優的航材數量推薦清單;王洵麟[6]開發了民用飛機管理信息系統,實現了航材數據管理與航材預測兩個主要功能,其中航材預測功能是基于用戶經驗實現的;楊冰冰[7]使用灰色預測模型對30架B777飛機大修數據進行了研究,并使用VB語言和Access數據庫設計了飛機大修航材預測系統,能夠實現對大修航材的預測。此外,近年來,基于航材共享模式的航材管理也在快速發展。航材共享模式憑借規模優勢能夠有效降低航空公司的航材庫存成本,但一般只包括周轉件[8],并且航材共享支援網絡本身也需要對航材進行合理的采購和配置。

綜上所述,使用信息化平臺技術推動航材預測與配置理論算法工程應用是有必要的,但國內在這一方面尚未有很好的發展。主要存在如下問題:算法程序未能整合入系統平臺,工程上難以應用;系統平臺開發的技術并非主流的軟件開發技術,不利于部署使用及后期維護,同時,系統平臺的擴展性與操作性較差。

針對上述問題,本文設計并實現基于多語言混合編程的航材預測與配置平臺。以Java語言及其相應的SpringBoot、Mybatis、Vue等主流技術框架進行平臺框架搭建,將Python、Matlab編寫的航材預測與配置算法整合到系統平臺中,并運用實際工程數據對平臺的功能進行使用測試驗證。

1 預測與配置方法

目前,針對航材預測與配置的理論研究,國內外已取得了較多的成果,提出了較為豐富的理論算法。其中,航材預測技術總體上可分為三類[9-14]:基于時間序列的航材預測技術、基于回歸分析法的航材預測技術、基于機器學習的航材預測技術。航材配置技術總體上可分為兩類[15-16]:基于解析方法的航材配置管理和基于優化算法的航材配置管理。這些方法為民用飛機航材科學預測與合理配置提供了理論支撐。

支持向量機算法從統計學習理論發展而來,專門用于研究有限樣本情況下的機器學習規律[17],在數據預測問題上有較為廣泛的運用[18]。因此,本文使用支持向量機法作為實現航材預測功能的算法。

平臺中集成的航材配置算法為邊際分析法,這是一種經濟分析方法,該方法把投入的資金所得到的利益與輸出損失進行比較,如果組織的目標是取得最大利潤,那么當追加的收入和追加的支出相等時,這一目標就能達到[19]。在航材配置過程中,主要考慮的問題是在滿足航材配置需求的前提下盡量降低成本。基于邊際分析法,馮蘊雯等[20]考慮橫向供應的多級庫存配置問題,將維修比例這一實際因素引入庫存配置模型中,提出了一種考慮橫向供應及維修比例的民用飛機備件多級庫存配置方法。與不考慮橫向供應和維修比例的傳統配置模型、以及只考慮維修比例的庫存配置模型相比,該模型顯示的庫存成本得以顯著減少。因此,本文采用這一方法的算法程序來實現航材配置功能。

2 混合編程的實現方式

多種語言混合編程的目的是為了發揮不同語言各自特有的優勢,更好地實現平臺設計。Java語言最主要的特點是面向對象,通過初始化具有不同屬性的對象來實現具體的程序操作。基于這一特性,Java語言被廣泛應用于軟件平臺的開發中,目前也是全世界使用范圍最廣的編程語言,但使用Java語言來進行數據分析和處理的效率很低。Matlab語言在處理矩陣方面具有突出的優勢;Py‐thon語言語法簡潔,且擁有豐富的第三方庫,用戶可以方便地調用第三方庫快速實現數據處理與分析。在軟件平臺的開發過程中,把具體的算法和數據處理工作交給在這一方面具有優勢的編程語言來實現,將復雜的問題轉化為不同語言之間的參數傳遞問題,能夠降低程序設計的復雜程度,提升軟件平臺的性能和開發效率[21]。

2.1 Java與Matlab混合編程的實現過程

Java與Matlab混合編程的實現方式有多種,但核心問題都是要解決兩種語言之間的參數傳遞。本文設計的軟件平臺是以Java語言為主,將其他語言編寫的算法整合到軟件平臺中。算法程序確定后基本不會再修改,而軟件平臺中實現功能的其他程序需要在編寫過程中不斷修改調試。為方便算法的調用和平臺開發,本文使用將Mat‐lab算法程序封裝成jar包程序提供給Java語言直接進行調用的方式來實現Java與Matlab混合編程。具體操作流程如下:

(1)將算法程序處理為函數形式,并封裝成jar程序包:通常情況下,為了便于直接獲取Matlab程序運算產生的過程變量值和結果值,算法程序會以程序流的形式編寫。但若要將程序封裝為jar包程序,則需要首先對腳本程序進行處理,將其處理為方法體的形式,使用function……end將算法程序包裹起來,并明確方法名稱、輸入和輸出參數。具體形式為

如果原程序開頭有clear,clc命令,需要在寫成方法體后將其注釋或刪除,避免該命令運行后將傳入的輸入參數清空。

通過以上步驟完成對算法腳本程序的處理后,在Matlab軟件中使用Library Compiler工具,將算法程序封裝成jar程序包。

(2)在SpringBoot項目中引入環境配置jar包和算法程序jar包:在SpringBoot項目中引入jar程序包有兩種方法,一種是將jar程序包放入本地maven倉庫中,然后在pom配置文件中引入;另一種是在SpringBoot項目中的resource目錄下新建一個lib文件夾,右鍵將其Add as library,項目便可以識別到里面的jar程序包。

考慮到在開發過程中,需要不斷地調試程序,修改jar包,本文選擇建立lib文件目錄的形式,將jar包添加進去。除了算法程序的jar包,還需要引入javabuilder的jar包,提供混合編程的環境配置,主要是為數據類型轉換提供支持,如圖1所示。

圖1 在SpringBoot項目中引入jar程序包示意圖Fig.1 Diagram of introducing a jar package into the SpringBoot project

(3)調用Matlab算法,傳入參數,接收結果:完成上述操作后,即可在Java程序中通過初始化類的方式,調用算法程序。具體操作程序如圖2所示。

圖2 使用Java調用Matlab程序核心代碼Fig.2 Core code of using Java to call the Matlab program

2.2 Java與Python混合編程的實現過程

使用Java調用Python程序的方式有多種,主要包括:

(1)在Java類中直接執行Python語句;

(2)在Java中通過PythonInterpreter類調用Python腳本;

(3)通過Runtime.getRuntime()方法執行Py‐thon腳本。

以上三種方法都可以實現Java調用Python程序,但在實際開發過程中,使用方法(1)和方法(2)存在無法正常引用Python第三方庫的問題,使得Python語言的優勢難以體現。因此,選擇第三種方法來實現混合編程,即保持了算法程序的獨立性,又能夠充分利用Python豐富的第三方庫。具體操作流程如下。

(1)處理Python腳本程序。

首先需要對源程序進行處理,將其改寫為方法體的形式,并聲明主函數入口,在主函數中調用具體的算法函數,確定輸入和輸出參數。具體形式如圖3所示。

圖3 Python腳本程序處理方法Fig.3 Python script processing method

(2)在SpringBoot項目中添加環境依賴。

要在SpringBoot項目的Java程序中調用py‐thon程序需要在pom文件中添加jython依賴,如圖4所示。

圖4 調用Python程序所需添加的依賴Fig.4 The dependencies that need to be added to call the Python program

(3)在Java程序中調用Python腳本程序,傳入參數、處理結果。

完成前述操作后,即可在Java程序中調用Py‐thon算法程序。具體操作程序如圖5所示。

圖5 使用Java調用Python程序核心代碼Fig.5 Core code of using Java to call the Python program

3 平臺設計與實現

3.1 平臺設計

平臺開發采用瀏覽器/服務器(Browser/Serv‐er,簡稱B/S)架構和前后端分離的開發方式,程序開發環境在Windos10系統下進行。平臺功能結構如圖6所示。

圖6 平臺功能結構圖Fig.6 Diagram of platform functional architecture

平臺后端程序基于SpringBoot技術框架,主要使用Java語言開發,并整合了Mybatis技術框架作為數據持久層。前端程序基于Vue技術框架,主要使用JavaScript語言開發,使用了ElementUI組件庫用于前端頁面設計。后臺數據庫使用MySQL數據庫管理系統,用于存儲計算分析的結果。由于平臺功能是基于Java、Matlab、Python混合編程實現的,在平臺開發和運行所使用的服務器上還需要配置這三種語言編譯的環境。基于框架技術,平臺使用模塊化開發方式,便于將來更新和擴展功能模塊。平臺共包含兩個主要功能模塊:航材預測模塊和航材配置模塊,兩個功能模塊的業務流程功能相同,包括:

(1)通用文件查詢:用戶根據文件名查詢數據庫中存儲的數據源文件信息;

(2)文件上傳:用戶上傳數據源文件作為算法程序的輸入;

(3)調用算法程序:用戶完成數據源文件上傳后,點擊相應功能按鈕,系統調用算法程序進行計算分析;

(4)狀態提醒功能:平臺頁面會對用戶的主要操作結果進行提示;

(5)結果導出功能:后臺計算完成并將結果存入結果數據庫后,相應的結果顯示在平臺頁面上,用戶可以將結果進行導出,存儲到本地計算機中。

在航材預測模塊中,將某一型號航材的歷史使用數據作為輸入,調用支持向量機算法,讀取輸入數據后進行計算,得到未來一段時間的航材使用數量預測值。然后,再使用實際的使用數據與預測值進行比較,將比較折線圖和預測值作為輸出,顯示在前端頁面上,計算結果可提供給用戶進行下載導出。

在航材配置模塊中,將包含原始推薦數量、保障率、可用率、報廢率、備件費用、周轉時間、訂貨時間、人工時費用、材料費用、任務間隔時間等信息的航材信息表,機隊運營信息,航材庫位置信息作為輸入,調用邊際分析算法,讀取輸入數據后進行計算分析,得到航材在每個航材庫的配置數量并作為輸出,顯示在前端頁面上,計算結果可提供給用戶進行下載導出。

總之,平臺程序設計的核心就是傳入數據,調用算法程序進行計算分析,返回計算分析結果。輸入數據的內容是根據算法程序的需求來確定的,本文設計的平臺主要通過讀取表格文件內容的方式來實現輸入。在程序開發過程中,主要解決的是不同語言程序之間的數據傳輸問題。

3.2 參數處理技術

調用算法程序計算得到的結果返回Java程序后,會存在數據類型不一致的問題。Python語言為弱類型語言,它的參數類型與強類型語言Java的參數類型兼容性較好;Matlab語言的參數類型與Java語言參數類型并不完全對應,通常需要進行處理。

本文涉及到的參數處理技術途徑如圖7所示。程序調用Matlab編寫的航材配置算法對輸入參數進行計算分析后,得到的主要結果形式為矩陣,Ja‐va語言中沒有矩陣數據類型,因此,要先將結果矩陣轉換為Java語言可處理的結果類型,才能對其進行處理,并繼續將其存入結果數據庫。Matlab算法計算得到的是航材配置結果的矩陣輸出結果,每一個元素代表一個型號航材在某航材庫的配置數量。結果矩陣返回Java程序后,首先,使用MWNumercArray類將其轉換為二維數組;然后,循環遍歷該二維數組,依次取出二維數組中單個元素,該元素代表一個型號航材在若干航材庫的配置數量;二維數組中的單個元素可看作一維數組,繼續循環遍歷該元素,將其中的每個數值賦值給航材配置結果對象屬性,并將這個對象加入List集合;最后,使用Mybatis框架技術中的標簽,將完成屬性賦值的對象集合值存入數據庫,完成整個參數處理過程。

圖7 參數類型轉換及屬性賦值方法流程圖Fig.7 Flowchart of parameter type conversion andattribute assignment methods

4 使用測試

4.1 測試過程

4.1.1 航材預測功能

登錄系統后,點擊左側菜單欄的航材預測選項進入航材預測頁面,頁面上半部分內容為歷史上傳的航材預測數據源文件信息,下半部分為航材預測的結果,如圖8所示。點擊頁面右下方上傳數據文件按鈕,根據系統頁面提示上傳航材歷史使用情況的表格文件,如圖9所示。消耗數據表格中記錄了36個月的航材使用數據,如圖10所示。繼續點擊航材預測運算按鈕,程序調用后臺計算程序開始計算,然后將計算結果以表格和折線圖的形式返回到頁面上,如圖11所示。表格數據代表某一航材在一個月份中的使用數量預測值,折線圖是實際使用數據與預測值的對比情況。用戶可將表格中的結果數據導出到本地計算機中,導出操作如圖12所示。

圖8 航材預測模塊頁面Fig.8 Aviation material prediction module page

圖9 上傳航材預測數據源文件操作頁面Fig.9 Upload aviation material prediction data source file operation page

圖10 航材消耗源文件數據內容Fig.10 Content of aviation material consumption source file

圖11 航材預測計算結果頁面Fig.11 Aviation material prediction results page

圖12 航材預測結果導出操作頁面Fig.12 Export operation page of aviation material prediction results

4.1.2 航材配置功能

登錄系統后,進入航材配置頁面,如圖13所示。頁面上半部分顯示歷史上傳的數據源文件信息,下半部分顯示計算結果。點擊“上傳數據源文件”按鈕,根據系統彈窗中的提示選擇機隊信息、航站信息、航材信息的數據源文件進行上傳,如圖14所示。機隊信息文件中包含機隊數量、年飛行小時、航站數量和基地數量;航站信息文件中包含每個基地和航站之間的航程信息;航材信息文件中包含若干航材件的平均非計劃拆換間隔、原始推薦數量、保障率、可用度、時間等多個參數信息,如圖15所示。完成上傳后,繼續點擊“航材配置運算”按鈕,程序調用后臺程序開始計算,然后將計算結果以表格的形式顯示到頁面上。表格中一行數據代表某一型號航材在多個航站配置的數量。用戶可將表格中的結果數據導出到本地計算機中,如圖16所示。

圖13 航材配置模塊頁面Fig.13 Aviation material configuration module page

圖14 上傳航材配置數據源文件操作頁面Fig.14 Upload aviation material configuration data source file operation page

圖15 航材配置數據源文件內容Fig.15 Content of aviation material configuration source file

圖16 航材配置計算結果及導出操作頁面Fig.16 Calculation results of aviation material configuration and export operation page

4.2 測試結果

根據4.1節中對各功能模塊的測試操作可知,平臺的人機界面友好,操作簡單方便,成功整合了航材預測與航材配置算法程序,解決了混合編程存在的參數傳遞問題,實現了預先設計的兩個主要功能,即通過平臺技術整合理論算法,在平臺上實現航材預測與航材配置的功能。

5 結 論

(1)本文給出了基于Java、Matlab、Python混合編程的航材預測與配置平臺的設計,實現了將航材預測和配置理論研究算法整合入信息化平臺的目的。該平臺主要實現了基于航材歷史消耗數據的對航材需求量的預測功能,以及基于機隊信息、航站信息和航材信息的航材配置功能。

(2)在平臺開發過程中,提出了將Matlab矩陣結果參數轉化為Java語言可處理的參數類型的方法,并成功運用到平臺中。

(3)在將來的使用中,可以根據工程實際需要整合多種類型的算法、擴展平臺功能模塊,優化原有算法程序,更好地為航材管理提供支持。

猜你喜歡
頁面程序語言
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
讓語言描寫搖曳多姿
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
累積動態分析下的同聲傳譯語言壓縮
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
我有我語言
主站蜘蛛池模板: 国产91av在线| 欧洲极品无码一区二区三区| 午夜高清国产拍精品| 国内精品伊人久久久久7777人| 亚洲欧美综合在线观看| 国产特级毛片aaaaaa| 久久99精品国产麻豆宅宅| 国产精品香蕉| 欧美a在线| 国产精品所毛片视频| 国产成人禁片在线观看| 99er精品视频| 亚洲激情99| 精品视频免费在线| 国产高颜值露脸在线观看| 亚洲综合精品第一页| 亚洲一区二区成人| 女人毛片a级大学毛片免费 | 精品三级在线| 成人一级免费视频| 四虎永久在线精品国产免费| 欧美性爱精品一区二区三区| 激情综合网激情综合| 精品亚洲麻豆1区2区3区| 亚洲婷婷在线视频| 91视频99| 国产一二三区视频| 成人夜夜嗨| 国产成年女人特黄特色大片免费| 亚洲swag精品自拍一区| 国产又粗又猛又爽视频| 国内熟女少妇一线天| 久久久黄色片| 欧美日韩精品在线播放| 国产毛片久久国产| 国内99精品激情视频精品| 亚洲日本在线免费观看| 亚洲精品制服丝袜二区| 中日无码在线观看| 久久国产精品嫖妓| 国产H片无码不卡在线视频| 国产免费a级片| 999国内精品久久免费视频| 动漫精品中文字幕无码| 毛片免费试看| 亚洲精品国产乱码不卡| 五月婷婷综合网| 亚洲一区精品视频在线| 成人综合网址| 国产午夜福利片在线观看| 夜精品a一区二区三区| 欧美日韩中文字幕在线| 成人夜夜嗨| 国产理论最新国产精品视频| 99这里只有精品免费视频| 在线a视频免费观看| 日韩人妻无码制服丝袜视频| 青青草原国产| 69国产精品视频免费| 成人国产精品网站在线看 | 日韩欧美成人高清在线观看| 中文字幕无码制服中字| 国产成人综合久久精品下载| 国产精品va| 国产一级妓女av网站| 色综合激情网| 国产一区自拍视频| 日本一区二区三区精品视频| 欧美一区二区三区国产精品| 伊人精品成人久久综合| AV网站中文| 99国产精品一区二区| 日韩A级毛片一区二区三区| jizz国产在线| 亚洲制服中文字幕一区二区| 亚洲第一精品福利| 亚洲男人的天堂在线| 国产夜色视频| 青青青国产精品国产精品美女| 国产高清免费午夜在线视频| 亚洲精品无码久久毛片波多野吉| 国产亚洲欧美在线视频|