• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      改進主成分分析的KNN故障檢測研究

      2018-12-26 12:09:10白巖松
      沈陽化工大學學報 2018年4期
      關鍵詞:類別聚類距離

      李 元, 白巖松

      (沈陽化工大學 信息工程學院, 遼寧 沈陽 110142)

      隨著近年來科學技術(shù)的快速發(fā)展,工業(yè)生產(chǎn)過程越來越復雜,其中具有很多生產(chǎn)環(huán)節(jié),且各環(huán)節(jié)間聯(lián)系更加緊密.現(xiàn)代工業(yè)生產(chǎn)過程具有規(guī)模大、危險性高、影響因子多等特點,導致其產(chǎn)生的故障具有類型多、相關變量多[1]等特點,因此,保證生產(chǎn)過程安全可靠運行對當今社會活動有著重大的意義.在故障檢測過程中,為確保檢測結(jié)果的準確可靠,通常盡可能多的收集大量數(shù)據(jù),獲得足夠多的信息.

      對于實際生產(chǎn)過程,故障檢測方法大致可以分為3類[2]:基于數(shù)據(jù)驅(qū)動的方法、基于解析模型的方法和基于知識的方法.由于基于數(shù)據(jù)驅(qū)動的故障檢測方法通過研究過程產(chǎn)生的數(shù)據(jù)進行故障檢測,無需建立相應的模型,因此,基于數(shù)據(jù)驅(qū)動的方法越來越受到專家和學者的關注,其中,統(tǒng)計過程控制(Statistics Process Contol,SPC)方法為基于數(shù)據(jù)驅(qū)動的方法中最常用的方法之一[3].SPC即為通過判斷當前時刻數(shù)據(jù)是否處于正常數(shù)據(jù)周圍進行故障檢測.從統(tǒng)計方面來說,通常是通過比較當前時刻數(shù)據(jù)與正常數(shù)據(jù)的概率密度判斷是否發(fā)生故障.然而,對于復雜的工業(yè)過程,估計其多維空間的概率密度十分困難.

      針對上述問題,Q.Peter He提出了一種基于k最近鄰規(guī)則(k-Nearest Neighbor,kNN)的故障檢測算法[4-5],該方法以樣本間的距離為標準衡量樣本故障與否,其具有簡單、直觀、健壯性強等特點,能夠處理非線性問題和時變性問題;由于該方法需要對每個待分類樣本進行計算以得到k個近鄰[2-4],因此具有計算量大、所需存儲空間大的缺點.當生產(chǎn)過程由于生產(chǎn)因素變化產(chǎn)生多個工況時,產(chǎn)生的數(shù)據(jù)歸屬于幾個不同的工況.對于待檢測樣本,其邊界往往具有不確定性,此時采用kNN算法進行在線檢測效果不夠理想,容易產(chǎn)生漏報或誤報的情況.

      本文研究基于主成分分析(Principal Component Analysis,PCA)方法在故障檢測領域的應用[6-8],在分析PCA方法局限性的基礎上提出一種新的基于K-means 主成分分析k近鄰規(guī)則(K-means Principal Component AnalysisK-Nearest Neighbor,K-PCA-KNN)的故障檢測方法.K-PCA-KNN方法首先采用k-means算法對原始數(shù)據(jù)進行聚類處理,然后利用PCA算法降維,減少計算量,最后使用k近鄰規(guī)則構(gòu)建距離統(tǒng)計指標進行故障檢測.本文最后通過青霉素發(fā)酵仿真實驗驗證所提方法的有效性[5].

      1 相關算法介紹

      1.1 K-means聚類

      K-means聚類算法分別于1995年由Steinhaus、1965年由Ball & Hall、1967年由McQueen各自在不同的研究領域提出[9].聚類算法的主要中心思想即為對收集到的全部數(shù)據(jù)進行分類,使不同類別數(shù)據(jù)之間的差距盡可能大,相同類別數(shù)據(jù)之間的差距盡可能小.該算法與其他分類算法的不同之處在于:在聚類開始前,類別數(shù)、分類標準以及聚類分析時數(shù)據(jù)集合的特征均是未知的.

      給定一個數(shù)據(jù)集X={x1,x2,…,xi,…,xn}∈Rn×d,K-means聚類算法將數(shù)據(jù)集劃分為K個子集C={ck,k=1,2,…,K},每個子集代表一個類別,每個類存在一個類別中心μk.劃分類別時,根據(jù)數(shù)據(jù)對象間的相似程度進行分組,使數(shù)據(jù)滿足如下條件:

      {Cj|j=1,2,…,k},Cj?V,

      (1)

      以上過程稱為聚類,{ck|k=1,2,…,K}稱為簇.

      本文選用歐氏距離作為數(shù)據(jù)間相似性判斷準則,使用式(2)計算類內(nèi)各點到聚類中心μk的距離平方和.

      D2(ck)=∑xk∈Ck‖xk-μk‖2

      (2)

      聚類算法主要包括數(shù)學分類學和傳統(tǒng)模式識別兩部分.其基本實現(xiàn)方法可以為預先定義兩個樣本間的距離,也可以不依賴距離,預先定義一個優(yōu)化目標,通過優(yōu)化獲得最小值.

      定義聚類算法的輸入為待分類樣本[x1,x2,…,xm],其中兩個子類中心的最小距離閾值為θ;算法的輸出為子類數(shù)量c,其中子類中心為[x1,x2,…,xm].

      聚類算法的具體流程如下:

      (1) 在空間內(nèi)選定k個數(shù)據(jù)點作為初始的聚類中心,其中每個點代表一個類別的中心,一般是從樣本中均勻選取;

      (2) 計算各聚類中心的距離,若距離小于預定的閾值θ,則剔除其中一個聚類中心;

      (3) 計算所有樣本與聚類中心的距離,以距離為準則將它們分配到與其最近的中心進行聚類.

      (4) 經(jīng)過Inum次迭代后,若某聚類中心所獲得的樣本數(shù)沒有達到一定數(shù)量,則剔除該類別.當所有樣本均分配完成后,重新計算k個聚類中心的位置.

      (5) 若結(jié)果滿足收斂條件則結(jié)束計算,反之返回步驟2至滿足收斂條件.收斂條件通常為:兩次迭代的聚類中心之間的距離變化小于一個很小的數(shù)ε,或類內(nèi)各點到其聚類中心的距離平方和及子類之間的距離平方和達到最小.

      1.2 主成分分析(PCA)

      對于復雜的現(xiàn)代工業(yè)實際生產(chǎn)過程,往往存在很多個變量,每個變量在不同程度上攜帶著與生產(chǎn)相關的不同信息,且許多變量之間存在一定的相關關系,根據(jù)這些變量能夠獲取信息,以便對問題做出較為可靠的判斷.然而過多的變量會導致數(shù)據(jù)維數(shù)過大、計算量大且復雜,進而增加問題分析難度.PCA就是一種提取少數(shù)變量,利用其與大多數(shù)變量的相關關系反映原有信息的算法,通過對提取的少數(shù)變量進行研究達到降維效果.

      定義一個(n×m)維的數(shù)據(jù)矩陣X:

      (3)

      為消除量綱的影響,由下式對矩陣X進行z-score標準化處理,得到均值為0,方差為1的矩陣X*:

      (4)

      計算標準化后矩陣X*的協(xié)方差矩陣:

      (5)

      同時,求出S的特征值λi及其對應的特征向量pi,i=1,2,…,m,并按照從大到小的順序排列.取前A個特征值及其對應的特征向量,得到主元空間的協(xié)方差矩陣Λ和負載矩陣P,由式(6)得到主元的得分矩陣T:

      T=X*·P

      (6)

      一般情況下,PCA算法中A的大小通常采用方差貢獻率方法(一般要求貢獻率達到80 %以上)或經(jīng)驗法確定.

      1.3 k近鄰(kNN)

      kNN算法根據(jù)距離衡量樣本間的相似程度:距離越大,相似程度越低;距離越小,相似程度越高.其基本思路為:對于測試樣本庫和訓練樣本庫,求取每個測試樣本與訓練樣本之間的距離,選擇距離最近的k個近鄰,根據(jù)k個近鄰所屬類別對測試樣本進行歸類.

      常用的距離有歐氏距離、曼哈頓距離和馬氏距離等,本文選用歐氏距離,具體計算公式如下:

      (10)

      其中:dij表示第i個樣本與第j個樣本之間的距離.

      2 青霉素發(fā)酵過程仿真研究

      2.1 青霉素發(fā)酵過程

      青霉素是一種極具臨床醫(yī)用價值的抗生素,廣泛應用于現(xiàn)代社會.青霉素的生產(chǎn)過程是一個具有時變性、非線性、多階段等特點的間歇過程.該過程初始為間歇培養(yǎng)過程,此時微生物在培養(yǎng)基中生長,40 h后由發(fā)酵過程轉(zhuǎn)換為半間歇操作模態(tài).本文運用的仿真平臺為美國Illinois州立理工學院AliCinar領導的過程監(jiān)控與技術(shù)小組設計的青霉素生產(chǎn)仿真軟件Pensim 2.0,該軟件可以對不同初始條件下青霉素生產(chǎn)過程的不同變量進行仿真,產(chǎn)生所需實驗數(shù)據(jù).

      本文選取分屬3個工況的75個正常批次進行仿真實驗,每個批次具有17個變量,如表1所示.采樣時間為400 h,每1 h采樣1次,3個工況反應體積分別設置為130 L、160 L和190 L,每個工況各產(chǎn)生25個批次.

      表1 青霉素生產(chǎn)過程的過程變量Table 1 Variables of fed-batch penicillin fermentation process

      間歇過程數(shù)據(jù)通常為三維矩陣,而常見的故障檢測方法只能對二維數(shù)據(jù)進行運算,因此在故障檢測前必須對數(shù)據(jù)進行預處理,即數(shù)據(jù)展開處理.按時間將各批次的三維數(shù)據(jù)展開成二維數(shù)據(jù),具體展開方式和結(jié)果如圖1所示.

      圖1 數(shù)據(jù)展開方法Fig.1 Data expansion method

      圖1中i(i=1,2,…,I)表示采樣時刻,j(j=1,2,…,J)表示變量.對于任意批次,將數(shù)據(jù)所有采樣時刻的所有變量橫向展開即可得到一個1×(400×17)的矩陣,因此所有批次數(shù)據(jù)全部展開后即可得到一個75×(400×17)的二維矩陣,同理所有故障數(shù)據(jù)展開后得到的二維矩陣為12×(400×17)維.

      為驗證方法有效性,本文對于3個工況,發(fā)酵200 h時在通風率和攪拌功率上分別加入5 %、10 %的斜坡誤差直到結(jié)束,每個工況產(chǎn)生4批故障數(shù)據(jù),共12個故障批次;從3個工況中分別隨機抽取2個批次,共6個批次作為校驗批次,加入故障數(shù)據(jù),從而得到新的建模數(shù)據(jù)為69×(400×17)維,新的待檢測數(shù)據(jù)為(12+6)×(400×17)維,即待檢測數(shù)據(jù)共有18個批次,其中前12個批次為故障批次,后6個批次為正常批次.

      2.2 基于PCA的故障檢測

      針對PCA的兩個故障檢測指標SPE和T2,任意一個指標將批次檢測為故障批次則將該批次視為故障批次.圖2為采用PCA算法的故障檢測結(jié)果,由圖2可以看出:前12個故障批次全部位于控制限上方,被檢測為故障批次;對于校驗的6個正常批次,批次13、批次14、批次16、批次17和批次18均誤檢為故障批次.由此可見,PCA方法存在誤報,且誤報率很高.

      圖2 PCA故障檢測結(jié)果Fig.2 PCA fault detection results

      2.3 基于Kmeans-PCA的故障檢測

      針對傳統(tǒng)PCA的故障檢測方法誤報率過高的不足,提出了一種基于Kmeans-PCA(K-means Principal Component Analysis,Kmeans-PCA)的故障檢測方法對PCA算法進行改進.該算法首先采用K-means算法對建模數(shù)據(jù)進行分類,然后利用PCA算法建模并進行故障檢測.K-means聚類結(jié)果如圖3所示.由圖3可知:75個批次的正常數(shù)據(jù)被分成3類,即這些數(shù)據(jù)產(chǎn)生于3個不同的批次,這與本文在進行數(shù)據(jù)采集仿真時的設定一致.本次仿真根據(jù)分類結(jié)果,分別對不同類別的數(shù)據(jù)進行檢測,每類建模數(shù)據(jù)為23×(400×17),待檢測為(4+2)×(400×17),其中前4個批次為故障批次,后2個批次為用于校驗的正常批次.圖4、圖5和圖6分別為Kmeans-PCA對3類數(shù)據(jù)的檢測結(jié)果.

      圖3 K-means對青霉素數(shù)據(jù)分成3個工況Fig.3 Penicillin data is divided into three conditions by using K-means

      圖4 改進的PCA在工況1下的檢測結(jié)果Fig.4 Improved PCA test results under the first working condition

      圖5 改進的PCA在工況2下的檢測結(jié)果Fig.5 Improved PCA test results under the second working condition

      圖6 改進的PCA在工況3下的檢測結(jié)果Fig.6 Improved PCA test results under the third working condition

      由圖4~圖6可知:對于故障批次,不同類別的故障批次均能夠被檢測;對于檢驗批次,類別1全部誤檢為故障批次,類別2和類別3的第6個批次被誤檢為故障批次.綜上所述,Kmeans-PCA方法能根據(jù)數(shù)據(jù)的不同類別分別建模及故障檢測,對于故障批次可以有效檢測,但對于校驗批次,存在誤報批次,檢測效果并不理想.由于該方法需要對于不同的工況進行分類建模和檢測,增加了計算量,導致整體檢測時間過長.

      2.4 基于K-PCA-KNN的故障檢測

      針對基于Kmeans-PCA的故障檢測方法檢測效果不夠理想的問題,提出一種基于K-PCA-KNN的故障檢測方法.該方法首先利用K-means算法對建模數(shù)據(jù)進行分類處理,然后采用PCA算法進行數(shù)據(jù)降維,一定程度上簡化計算,最后在主元空間引入k近鄰距離統(tǒng)計量進行故障檢測.基于K-PCA-KNN的故障檢測結(jié)果如圖7所示,由圖7可以看出:故障批次全部被檢測為故障批次,檢測率達到100 %,校驗批次全部被檢測為正常批次,誤報率為0,由此說明K-PCA-KNN方法能夠?qū)⒐收虾驼5呐斡行У乜刂圃诳刂葡薜纳舷?,具有理想的故障檢測效果.

      圖7 3種工況的K-PCA-KNN檢測結(jié)果Fig.7 Detection results of three conditions by using K-PCA-KNN

      3 結(jié) 論

      介紹了幾種基于數(shù)據(jù)驅(qū)動的復雜工業(yè)過程故障診斷中能應用到的算法,如K-means、PCA、KNN等,并采用青霉素發(fā)酵過程的數(shù)據(jù)對這幾種方法進行仿真實驗.針對青霉素發(fā)酵過程具有多階段的特點,本文提出了一種基于K-PCA-KNN的故障檢測方法,該方法使用K-means聚類算法進行分類,然后利用PCA模型提取不同類別的主成分信息,最后在主元空間上建立KNN模型進行故障檢測,通過仿真實驗驗證了該方法的有效性.為后續(xù)啟動故障診斷機制、準確地診斷事故發(fā)生的原因提供良好的故障數(shù)據(jù).

      猜你喜歡
      類別聚類距離
      算距離
      基于DBSACN聚類算法的XML文檔聚類
      電子測試(2017年15期)2017-12-18 07:19:27
      每次失敗都會距離成功更近一步
      山東青年(2016年3期)2016-02-28 14:25:55
      服務類別
      新校長(2016年8期)2016-01-10 06:43:59
      基于改進的遺傳算法的模糊聚類算法
      愛的距離
      母子健康(2015年1期)2015-02-28 11:21:33
      一種層次初始的聚類個數(shù)自適應的聚類方法研究
      論類別股東會
      商事法論集(2014年1期)2014-06-27 01:20:42
      中醫(yī)類別全科醫(yī)師培養(yǎng)模式的探討
      距離有多遠
      荥阳市| 临邑县| 监利县| 博客| 历史| 濉溪县| 台南市| 赤水市| 土默特右旗| 葵青区| 松江区| 红原县| 嘉义市| 资中县| 营山县| 花莲市| 偏关县| 新乡县| 闸北区| 陈巴尔虎旗| 宜城市| 社旗县| 石门县| 大渡口区| 永仁县| 七台河市| 大宁县| 芜湖县| 固阳县| 望江县| 左权县| 仁布县| 广安市| 天镇县| 靖远县| 榆树市| 双桥区| 新昌县| 宽城| 娄烦县| 赤城县|