亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        糧倉建筑氣密性預(yù)測軟件的開發(fā)

        2020-01-14 07:18:56郭治洪童滬琨張夢歌劉震華李建平陳光中
        工程建設(shè)與設(shè)計 2020年1期
        關(guān)鍵詞:氣密性糧倉向量

        郭治洪,童滬琨,張夢歌,劉震華,李建平,陳光中

        (1.河南工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,鄭州450001;2.河南工業(yè)大學(xué)土木建筑學(xué)院,鄭州450001)

        1 引言

        糧倉建筑的氣密性對于儲糧安全具有重要意義,在以往的糧倉建筑設(shè)計中,缺乏針對糧倉設(shè)計方案與糧倉氣密性的關(guān)系進(jìn)行量化分析的工具,糧倉設(shè)計人員在進(jìn)行糧倉建筑氣密性設(shè)計時需要可供參考的依據(jù)[1]。本研究試圖建立糧倉設(shè)計特征變量與糧倉氣密性的回歸模型,開發(fā)出可以根據(jù)影響糧倉氣密性的相關(guān)因素對糧倉氣密性進(jìn)行提前預(yù)估的軟件,方便糧倉設(shè)計人員依照糧倉氣密性預(yù)測結(jié)果改進(jìn)設(shè)計方案,提高儲糧的安全性,減少糧食產(chǎn)后損失。

        建立糧倉建筑設(shè)計方案特征變量與糧倉氣密性指標(biāo)的回歸模型需要一定數(shù)量的已建成糧倉的氣密性數(shù)據(jù),由于受到人力和財力限制,已建成糧倉的氣密性數(shù)據(jù)為小樣本數(shù)據(jù)。在文獻(xiàn)[1]中,支持向量機(jī)和bootstrap 方法相結(jié)合,將影響糧倉氣密性的特征變量值進(jìn)行歸一化和Onehot 編碼,建立回歸模型進(jìn)行氣密性區(qū)間預(yù)測,測試表明,糧倉氣密性的區(qū)間預(yù)測取得了較好的效果。該軟件的計算方法是:一方面,采用支持向量機(jī)建立糧倉氣密性回歸模型,利用該回歸模型對糧倉氣密性指標(biāo)進(jìn)行點預(yù)測;另一方面,將糧倉氣密性回歸模型與bootstrap 方法相結(jié)合,實現(xiàn)對糧倉氣密性指標(biāo)的區(qū)間預(yù)測,區(qū)間預(yù)測采用了文獻(xiàn)[1]提出的方法。

        由臺灣大學(xué)林智仁先生開發(fā)的LIBSVM 支持向量機(jī)工具箱[2]被廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、交通、電力、醫(yī)學(xué)等多學(xué)科研究分析預(yù)測過程中[3~6]。為方便設(shè)計人員預(yù)測糧倉設(shè)計方案的氣密性,本研究使用LIBSVM 工具箱,并采取C++ GUI 框架Qt與MATLAB 混合編程相結(jié)合的方式開發(fā)了應(yīng)用軟件EAGDS 1.0,混合編程可以把MATLAB 強(qiáng)大的計算能力和Qt 優(yōu)秀的軟件界面設(shè)計性能結(jié)合起來[7,8]。本研究的軟件界面設(shè)計美觀實用,簡約大方,操作方便。該軟件使用多線程加速技術(shù)[9]防止卡頓,能夠讓使用者獲得良好的體驗。為了確保數(shù)據(jù)安全,該軟件加入正則表達(dá)式功能對用戶輸入進(jìn)行限制[10],使用異常警告來提示突發(fā)情況,幫助使用者分析和解決問題。軟件使用界面如圖1 所示。

        圖1 EAGDS 1.0 軟件界面圖

        2 計算原理

        2.1 數(shù)據(jù)預(yù)處理

        數(shù)據(jù)集合表現(xiàn)為矩陣形式,矩陣每一行為一條數(shù)據(jù),每一列與一個變量相對應(yīng)。糧倉設(shè)計特征變量包括數(shù)值變量和種類變量,數(shù)值變量的變量值可以比較大小和排序,如墻厚、建筑面積等;種類變量的變量值不可比較大小和排序,如倉型、屋蓋類型等。

        在數(shù)據(jù)預(yù)處理階段,對數(shù)值變量數(shù)據(jù)進(jìn)行歸一化,歸一化計算公式如下:

        式中,xij表示矩陣中第i行第j列的數(shù)據(jù);x′i表示歸一化后的數(shù)據(jù)表示第j列的最小值;makx(xk)j表示第j列的最大值。

        用公式(1),將數(shù)值變量值映射到區(qū)間[0,1]。

        對于種類變量,采取Onehot 編碼[11],例如,有3 個種類,則第1 類編碼為(1,0,0),第2 類編碼為(0,1,0),第3 類編碼為(0,0,1)。

        2.2 支持向量機(jī)

        支持向量機(jī)是一種基于統(tǒng)計學(xué)的機(jī)器學(xué)習(xí)算法,能夠有效地處理小樣本數(shù)據(jù),可以避免局部最小值,具有較好的泛化能力[12,13]。支持向量機(jī)可以完成分類、回歸和分布估計等任務(wù)。本研究采用LIBSVM 工具箱建立糧倉設(shè)計特征變量與氣密性的回歸模型,氣密性指標(biāo)為500Pa 壓力半衰期[14]。

        2.3 boot st r ap 方法

        bootstrap 方法由美國統(tǒng)計學(xué)家Efron 系統(tǒng)地提出[15]。bootstrap 應(yīng)用了有放回抽樣技術(shù),可以用于機(jī)器學(xué)習(xí)模型的區(qū)間預(yù)測[16,17]。本研究采用支持向量機(jī)回歸模型結(jié)合bootstrap 方法對糧倉氣密性進(jìn)行區(qū)間預(yù)測。

        3 軟件開發(fā)

        3.1 Qt 和MATLAB混合編程

        在Qt 和MATLAB 混合編程前,應(yīng)該根據(jù)MATLAB 版本選擇合適的C++編譯器和Qt 版本,在本研究中,采用較新的MATLAB 2016b 版本,該版本支持與VS2015(對應(yīng)Qt 版本5.9.3)進(jìn)行混合編程,在安裝相關(guān)軟件后應(yīng)該對MATLAB 進(jìn)行設(shè)置。操作方法是在MATLAB 命令窗口輸入mbuild-setup 配置MATLAB 編譯器,選擇C++編譯模式進(jìn)行開發(fā)。

        MATLAB 可以導(dǎo)出dll 動態(tài)鏈接庫與Qt 進(jìn)行調(diào)用,利用MATLAB 完成算法運算,Qt 的界面顯示和交互數(shù)據(jù)輸入輸出,從而滿足研究使用[18]。

        由于Qt 是基于C++的開源庫,C++是面向?qū)ο螅∣OP)的開發(fā)語言,在軟件開發(fā)過程中應(yīng)該以面向?qū)ο蠓绞竭M(jìn)行開發(fā),配合Qt 的信號與槽函數(shù)機(jī)制使用。因此,要將之前的MATLAB 流程化代碼改成模塊化代碼,在本研究中,筆者將計算部分拆分成4 個模塊:(1)使用已有模型進(jìn)行點預(yù)測模式;(2)重新訓(xùn)練模型進(jìn)行點預(yù)測模式;(3)使用已有模型進(jìn)行區(qū)間預(yù)測模式;(4)重新訓(xùn)練模型進(jìn)行區(qū)間預(yù)測模式。這4 個模塊分別對應(yīng)軟件流程圖的4 條路線(見圖2)。

        圖2 EAGDS 1.0 軟件流程圖

        在Qt 與MATLAB 編程中,MATLAB 導(dǎo)出含有頭文件動態(tài)運行庫,需要將該頭文件加入到Qt 的項目工程中,同時通過#include <calc.h>頭文件的方式進(jìn)行調(diào)用(calc 這里只是實例名稱,實際研究可能不同),MATLAB 調(diào)用傳遞參數(shù)由mxArray 進(jìn)行聲明,聲明時要有該變量的種類和數(shù)值范圍,如含有多個實數(shù)(mxREAL)浮點矩陣類(mxDOUBLE_CLASS)。

        3.2 Qt 信號槽機(jī)制介紹

        信號槽是Qt 的核心機(jī)制,信號就是發(fā)生某種動作的條件,槽函數(shù)是滿足條件要執(zhí)行運算的函數(shù)[19,20]。例如,在Qt 中按下界面的按鈕就發(fā)送一個信號,信號發(fā)出后由槽函數(shù)接收并且進(jìn)行響應(yīng),槽函數(shù)可以是計算任務(wù)、網(wǎng)絡(luò)操作、消息事件的發(fā)出。在本研究中,筆者使用了大量信號槽機(jī)制來確保軟件的正常工作。

        3.3 LI BSVM庫的配置

        LIBSVM 庫下載后解壓,改變MATLAB 工作目錄并進(jìn)入庫的根目錄,運行make 命令進(jìn)行編譯,將編譯好的庫添加到MATLAB 搜索路徑中。

        3.4 動態(tài)鏈接庫建立

        在MATLAB 中,輸入deploytool 命令打開開發(fā)工具對話框,選擇第三個庫編譯器(Library Compiler),打開動態(tài)鏈接庫生成器,選擇C++動態(tài)鏈接庫后,加入MATLAB 計算源碼文件*.m,等待軟件鏈接庫的打包。

        打包之后會產(chǎn)生一個頭文件.h,一個編譯用靜態(tài)符號庫.lib,動態(tài)鏈接庫.dll,編輯Qt 的項目文件,添加頭文件和動態(tài)鏈接庫文件,并且同時添加MATLAB 的基礎(chǔ)庫文件(見圖3)。

        3.5 軟件功能的開發(fā)

        對于本研究中軟件不同的預(yù)測類型、支持向量機(jī)訓(xùn)練模型方式的選擇,會產(chǎn)生不同的計算結(jié)果,表1 展示了預(yù)測類型,支持向量機(jī)訓(xùn)練模型方式及計算結(jié)果的評價指標(biāo)。

        在本軟件中,筆者使用QButtonGroup 作為功能模式的選擇菜單,使用QLineEdit 作為用戶的抽樣數(shù)據(jù)輸入控制,使用QTextBrower 作為計算結(jié)果的輸出。在不同功能模式按鈕下,筆者使用了多個槽函數(shù)控制預(yù)測結(jié)果的顯示模式[21];同時為了限制用戶輸入,筆者在用戶輸入框使用正則表達(dá)式確保輸入符合取值范圍,保證用戶結(jié)果的準(zhǔn)確;為了能夠提示異常情況的發(fā)生,筆者利用MATLAB 對數(shù)據(jù)進(jìn)行了判斷處理,設(shè)置信號變量傳遞Qt 程序用以判斷響應(yīng),提示使用者注意[22];軟件還加入了數(shù)據(jù)文件自檢的功能,當(dāng)文件不存在時會告知用戶軟件受到損壞將無法使用。

        圖3 Qt 工程項目配置MATLAB鏈接庫

        表1 軟件功能表

        3.6 多線程的使用

        本研究開發(fā)的第一代軟件實現(xiàn)了軟件的主要功能,但在測試使用中發(fā)現(xiàn)軟件在計算時主界面會卡死并出現(xiàn)崩潰的情況,使用者無法在界面得到軟件計算提示,重新得到響應(yīng)需等待計算過程結(jié)束,嚴(yán)重影響了使用者的體驗。這是由于主界面和計算功能共同使用一個線程,使用多線程可以避免這類情況。

        在本研究開發(fā)第二代軟件中,筆者使用計算線程和界面主線程分開的方式分別完成不同的功能。在計算線程中完成MATLAB 計算接口的調(diào)用,使用自定義信號變量和槽函數(shù)告知計算功能的完成和異常情況的發(fā)生,該計算線程的定義如圖4 所示,界面主線程只負(fù)責(zé)執(zhí)行與用戶交互動作的功能。經(jīng)過實驗和測試,使用多線程編程起到了很好的效果。

        圖4 計算線程的定義

        4 結(jié)語

        本研究開發(fā)的糧倉氣密性預(yù)測軟件EAGDS 1.0 使用了支持向量機(jī)和bootstrap 對糧倉氣密性數(shù)據(jù)進(jìn)行建模分析,可以對新建糧倉氣密性進(jìn)行預(yù)測,以便設(shè)計人員改進(jìn)設(shè)計,提高儲存糧食的質(zhì)量,保證儲存糧食的安全,減少不必要的損失。本研究根據(jù)相關(guān)的算法開發(fā)出計算預(yù)測軟件,該軟件界面友好,簡潔易用,使得研究結(jié)果具有較好的實用性和推廣應(yīng)用價值。

        猜你喜歡
        氣密性糧倉向量
        小刺猬的糧倉
        好糧倉就是硬底氣
        向量的分解
        車門氣密性對風(fēng)噪的影響分析
        關(guān)于布袋除塵器氣密性試驗新方法的研討
        聚焦“向量與三角”創(chuàng)新題
        某排氣系統(tǒng)球鉸氣密性仿真分析
        檢查氣密性方法有多種
        糧倉
        寶藏(2017年10期)2018-01-03 01:53:09
        樹懶的糧倉
        幼兒畫刊(2017年5期)2017-06-21 21:17:02
        亚洲处破女av日韩精品| 国产精品丝袜一区二区三区在线 | 精品一区二区三区在线观看l| 亚洲熟女国产熟女二区三区| 午夜麻豆视频在线观看| 婚外情长久的相处之道| 国产猛男猛女超爽免费视频| 亚洲精品无码av人在线播放| a级毛片在线观看| 99久久综合九九亚洲| 国产av乳头久久一区| 午夜视频一区二区三区在线观看| 91超精品碰国产在线观看| 在线看片免费人成视频电影| 亚洲精品无码成人片久久不卡| 亚洲国产精品线路久久| 久久精品国产88久久综合| 亚洲国产av午夜福利精品一区| 久久国产在线精品观看| 少妇爆乳无码专区| 欧美成人精品a∨在线观看| 人妻少妇精品视频无码专区| 天天做天天爱天天综合网| 亚洲男人天堂2019| 男女上床视频免费网站| 亚洲av手机在线观看| 中文字幕av久久亚洲精品| 久久久亚洲精品无码| 久久精品国产自清天天线| 国产精品久久久久久久久KTV| 亚洲精品亚洲人成在线播放| av男人操美女一区二区三区| 蜜臀av一区二区三区| 欧美性生交大片免费看app麻豆 | 人妻少妇猛烈井进入中文字幕| 玩弄少妇人妻中文字幕| 草草浮力地址线路①屁屁影院| 免费网站国产| 综合图区亚洲偷自拍熟女| 国产嫩草av一区二区三区| 在线精品无码字幕无码av|