王昭,周波,王為民
(1.西安絲路駝鈴智能科技有限公司,陜西 西安 710077;2.武警工程大學,陜西 西安 710086)
隨著中國工業(yè)信息化、智能化、數(shù)字化和技改升級工作持續(xù)推進,工業(yè)企業(yè)處于由高速增長轉(zhuǎn)向高質(zhì)量發(fā)展階段,許多國內(nèi)大中型企業(yè)新上項目和技改升級項目紛紛采用工業(yè)互聯(lián)網(wǎng)技術(shù)、工業(yè)物聯(lián)網(wǎng)技術(shù)、工業(yè)智能化技術(shù)、工業(yè)數(shù)字化技術(shù)和云計算技術(shù),建設了許多新型工業(yè)測控系統(tǒng)項目。工業(yè)測控系統(tǒng)中現(xiàn)場測量數(shù)據(jù)參與過程控制,現(xiàn)場測量來的數(shù)據(jù)都夾雜有隨機噪聲和突發(fā)干擾,不同的工業(yè)現(xiàn)場噪聲和干擾類型各異,設計工業(yè)測控系統(tǒng)項目必須解決好過程控制數(shù)據(jù)濾波問題,才能實現(xiàn)設計的測控功能,運用正確的控制策略,保證設計要求的控制精度。設計工業(yè)測控系統(tǒng)項目時,工程技術(shù)人員如何選擇及實現(xiàn)數(shù)據(jù)濾波算法,如何編程設計及優(yōu)化數(shù)據(jù)濾波算法均是需要重點研究的問題。采用WinCC 客戶端/服務器結(jié)構(gòu)[1],WinCC服務器與S7-200 SMART PLC通過網(wǎng)絡互聯(lián),數(shù)據(jù)通信采用TCP/IPv4協(xié)議,數(shù)據(jù)傳輸速率為100 Mibit/s[2]。本文研究了過程控制數(shù)據(jù)濾波相關(guān)技術(shù)問題,介紹了數(shù)據(jù)濾波常用算法及濾波特點,給出了WinCC平臺數(shù)據(jù)濾波解決方案,討論了WinCC平臺數(shù)據(jù)濾波算法優(yōu)化問題。本文所述數(shù)據(jù)濾波解決方案和算法優(yōu)化來自多個工程項目實踐經(jīng)驗,具有實用價值,推薦給工業(yè)測控同仁借鑒。
由工業(yè)測控系統(tǒng)獲得的數(shù)據(jù)夾雜有隨機噪聲、突發(fā)干擾和周期干擾,數(shù)據(jù)濾波的根本任務是,根據(jù)隨機噪聲和干擾的某些統(tǒng)計特性,采用數(shù)據(jù)濾波算法最大限度地恢復信號、濾除噪聲和抑制干擾。
本文僅討論因果穩(wěn)定的時域離散數(shù)據(jù)濾波器,用線性常系數(shù)差分方程來描述常用數(shù)據(jù)濾波器。依據(jù)文獻[3],時域離散線性時不變系統(tǒng)具有因果性的充分必要條件是單位脈沖響應是因果序列,即h(n)=0,n<0;時域離散線性時不變系統(tǒng)具有穩(wěn)定性的充分必要條件是單位脈沖響應絕對可和,即 ∑|h(n)| <∞, 0≤n<∞。
依據(jù)文獻[4],數(shù)據(jù)濾波算法系數(shù)選用原則如下: 一是數(shù)據(jù)濾波算法系數(shù)均應大于0且小于1;二是數(shù)據(jù)濾波算法系數(shù)之和應等于1。若數(shù)據(jù)濾波算法系數(shù)選用滿足該原則,則數(shù)據(jù)濾波器穩(wěn)態(tài)輸出幅值等于輸入信號幅值。
低通濾波器LPF算法如式(1)所示,為一階IIR濾波系統(tǒng),信號流程圖有一條反饋支路。WinCC運行全局濾波腳本時按零狀態(tài)遞推,按照數(shù)據(jù)濾波算法系數(shù)選用原則,濾波系數(shù)α取值范圍為0~1??梢宰C明,低通濾波器具有因果性和穩(wěn)定性。
y(n)=(1-α)y(n-1)+αx(n)
(1)
低通濾波器特點歸納如下: 算法簡單,實現(xiàn)容易;任何快變脈沖干擾都將被濾掉,僅保留緩變信號;α取值小時,濾波器輸出對現(xiàn)時刻采樣值不靈敏,而對噪聲和干擾抑制力增強;α取值大時,濾波器輸出對現(xiàn)時刻采樣值靈敏,而對噪聲和干擾抑制力減弱。令a1=1-α,b0=α由式(1)可以得到:
y(n)=a1y(n-1)+b0x(n)
(2)
式(2)是一階差分濾波方程,{b0,a1}取值范圍為0~1,且濾波系數(shù)之和為1,即a1+b0=1。
加權(quán)遞推平均濾波器WRAF算法如式(3)所示,又稱加權(quán)滑動平均濾波器,為FIR濾波系統(tǒng),信號流圖沒有反饋支路。WinCC運行全局濾波腳本時按零狀態(tài)遞推,按照數(shù)據(jù)濾波算法系數(shù)選用原則,各濾波系數(shù){b0,b1,b2,b3,b4}取值范圍為0~1,且濾波系數(shù)之和為1,即b0+b1+b2+b3+b4=1??梢宰C明,加權(quán)遞推平均濾波器具有因果性和穩(wěn)定性。
y(n)=b0x(n)+b1x(n-1)+b2x(n-2)+
b3x(n-3)+b4x(n-4)
(3)
加權(quán)遞推平均濾波器特點歸納如下: 濾波系數(shù)多,濾波效果優(yōu)化靈活,濾波器適應性強;通常對越接近現(xiàn)時刻的采樣值,權(quán)值取得越大,以突出后采樣值對濾波器輸出的貢獻;若給予后采樣值的權(quán)值越大,則對后采樣值越靈敏,而對采樣值平滑度降低;對周期性干擾有良好的抑制作用,適用于有高頻振蕩干擾的工業(yè)測控現(xiàn)場;對突發(fā)脈沖干擾抑制作用差,不適用于脈沖干擾嚴重的工業(yè)測控場合。
二階差分濾波器SODF算法如式(4)所示,為二階IIR濾波系統(tǒng),信號流程圖有兩條反饋支路。WinCC運行全局濾波腳本時按零狀態(tài)遞推,按照數(shù)據(jù)濾波算法系數(shù)選用原則,各濾波系數(shù){a1,a2,b0}取值范圍為0~1,且濾波系數(shù)之和為1,即a1+a2+b0=1??梢宰C明,二階差分濾波器具有因果性和穩(wěn)定性。
y(n)=a1y(n-1)+a2y(n-2)+b0x(n)
(4)
二階差分濾波器特點歸納如下: 算法簡單,易于實現(xiàn);濾波系數(shù)多,濾波效果優(yōu)化靈活,濾波效果好;a1,a2取值大,且b0取值小時,濾波器輸出對現(xiàn)時刻采樣值不靈敏,而對噪聲和干擾抑制力增強;a1,a2取值小,且b0取值大時,濾波器輸出對現(xiàn)時刻采樣值靈敏,而對噪聲和干擾抑制力減弱。
在WinCC開發(fā)平臺,采用C語言全局腳本編程設計數(shù)據(jù)濾波算法,在WinCC服務器上運行全局濾波腳本,實現(xiàn)過程值數(shù)據(jù)濾波[5]。該算法步驟如下:
1)啟動運行WinCC Explorer瀏覽器,進入項目管理器。
2)在左側(cè)瀏覽條,點擊展開全局腳本項,顯示C-Editor和VBS-Editor。
3)雙擊C-Editor,進入全局腳本C編輯器。
4)在頂部工具欄,點擊創(chuàng)建新動作按鈕,右側(cè)顯示編輯窗口。
5)在編輯窗口,編程設計數(shù)據(jù)濾波腳本。
6)腳本編寫設計完成,點擊頂部工具欄編譯按鈕,查看底部輸出窗口編譯結(jié)果,編譯有錯時對腳本錯誤進行修改,并重新編譯,直到編譯通過為止。
7)點擊頂部工具欄信息/觸發(fā)按鈕,彈出屬性窗口,點擊頂部信息選項,填寫腳本創(chuàng)建信息,按需設計腳本密碼。
8)在屬性窗口,點擊頂部觸發(fā)器選項,順次選擇定時器和周期選項。
9)點擊屬性窗口右側(cè)添加按鈕,彈出添加觸發(fā)器窗口,順次進行選擇事件、填寫觸發(fā)器名稱和設定周期,該方案中事件選擇標準周期且設定為1 s,該周期即為數(shù)據(jù)濾波腳本重復執(zhí)行周期。
10)點擊頂部工具欄的保存按鈕,生成擴展名為PAS的腳本文件[6]。
低通濾波算法采用C語言全局腳本代碼段實現(xiàn),該代碼段用到的變量及系數(shù)的含義分別解釋如下: MM_LPF是低通濾波標簽,定義為WinCC內(nèi)部布爾變量; {Ca1,Cb0}表示低通濾波系數(shù),為局部浮點變量; {Ca.1,Cb.0}表示低通濾波系數(shù),定義為WinCC內(nèi)部浮點變量;Xn[1]是低通濾波器n時刻的輸入,為局部浮點變量;Yn[1]是低通濾波器n時刻的輸出,為靜態(tài)局部浮點變量;Yn[0]是低通濾波器(n-1)時刻的輸出,為靜態(tài)局部浮點變量;UR10是過程值濾波器輸入,定義為WinCC外部浮點變量;UR14是過程值濾波器輸出,定義為WinCC外部浮點變量。
WinCC組態(tài)啟動低通濾波器后,置MM_LPF為真,低通濾波器以零狀態(tài)開始遞推,濾波遞推過程如下: 先是采集n時刻濾波輸入Xn[1];再輸入濾波系數(shù){Ca1,Cb0};接著依據(jù)低通濾波算法公式求解n時刻濾波器輸出Yn[1];然后將濾波器輸出值Yn[1]傳送給WinCC組態(tài)以及自動化系統(tǒng);最后將n時刻濾波器輸出Yn[1]送給(n-1)時刻濾波器輸出Yn[0],為下次遞推做好準備[7]。WinCC組態(tài)每執(zhí)行一次全局腳本,就求得一個低通濾波器輸出,連續(xù)濾波遞推,實現(xiàn)過程值數(shù)據(jù)低通濾波,該方案全局腳本代碼重復執(zhí)行周期設為1 s[8],低通濾波器算法流程如圖1所示。
圖1 低通濾波器算法流程示意
特定的工業(yè)測控現(xiàn)場具有特定的噪聲干擾環(huán)境,需要特定類型的數(shù)據(jù)濾波器,同時對應特定的數(shù)據(jù)濾波算法。數(shù)據(jù)濾波算法優(yōu)化有兩項任務: 選擇出合適的濾波算法;篩選出具體的算法系數(shù)。兩項任務相互關(guān)聯(lián),要配合優(yōu)化。數(shù)據(jù)濾波算法優(yōu)化涉及到用戶歸檔、在線表格和在線趨勢對象應用,以低通濾波算法為例詳述對象應用。
在數(shù)據(jù)濾波算法優(yōu)化過程中,濾波系數(shù)用戶歸檔用于設置和調(diào)整濾波算法系數(shù),用于記錄和保存濾波算法系數(shù)[9]。創(chuàng)建數(shù)據(jù)濾波系數(shù)歸檔對象包括: 新建濾波系數(shù)用戶歸檔,添加濾波系數(shù)歸檔對象和設置用戶歸檔對象屬性,應依次設計完成。
在數(shù)據(jù)濾波算法優(yōu)化過程中, WinCC在線表格能夠?qū)崟r顯示濾波器輸入值、輸出值和算法系數(shù)并導出數(shù)據(jù),能夠在線修改表格屬性,用于觀察和評估濾波算法效果[10]。創(chuàng)建數(shù)據(jù)濾波在線表格對象包括: 添加WinCC在線表格對象,設置WinCC在線表格對象屬性,應依次設計完成。
在數(shù)據(jù)濾波算法優(yōu)化過程中,數(shù)據(jù)濾波在線趨勢能夠?qū)崟r顯示濾波器輸入值和輸出值波形并能夠?qū)С鰯?shù)據(jù),能夠在線修改趨勢屬性、移動軸范圍、移動趨勢范圍,用于實時觀察和評估濾波算法效果。創(chuàng)建數(shù)據(jù)濾波在線趨勢對象包括: 添加WinCC在線趨勢對象,設置WinCC在線趨勢對象屬性,應依次設計完成。
數(shù)據(jù)濾波算法優(yōu)化包括以下步驟[11]:
1)考慮工業(yè)現(xiàn)場噪聲和干擾環(huán)境,參照以往工程項目經(jīng)驗,預選多個濾波算法,并排序預選濾波算法。
2)按預選濾波算法排序,選定濾波算法,編程設計濾波算法全局腳本,并測試濾波算法功能。
3)通過濾波系數(shù)用戶歸檔,給定一組算法系數(shù),現(xiàn)場運行全局濾波腳本,通過在線表格觀察濾波器輸出數(shù)據(jù),通過在線趨勢觀察濾波器輸出波形,檢驗濾波算法效果,研判濾波算法是否適應特定工業(yè)測控現(xiàn)場,研判濾波算法性能是否滿足工程項目技術(shù)要求。若濾波算法效果評價達標,則選定濾波算法及算法系數(shù),結(jié)束數(shù)據(jù)濾波優(yōu)化;若濾波算法效果評價未達標,則調(diào)整一組濾波算法系數(shù),重新檢驗濾波算法效果。
4)若反復調(diào)整濾波系數(shù),濾波算法效果無法達標,則重復步驟(2)和步驟(3),直到濾波算法效果評價達標,結(jié)束數(shù)據(jù)濾波算法優(yōu)化。
以低通濾波器LPF算法為例,LPF WinCC用戶歸檔見表1所列,LPF WinCC在線表格見表2所列,LPF WinCC在線趨勢如圖2所示。
表1 LPF WinCC用戶歸檔
表2 LPF濾波器WinCC在線表格
圖2 LPF濾波器WinCC在線趨勢示意
工業(yè)測控系統(tǒng)測量來的數(shù)據(jù)通常夾雜著各種類型的隨機噪聲、突發(fā)干擾和周期干擾,設計并實施工業(yè)測控系統(tǒng)項目既要采取軟件數(shù)據(jù)濾波措施,也要采取硬件信號濾波措施;既要在前端自動化設備上采取硬件濾波措施,也要在前端傳感器上采取硬件抗干擾措施。數(shù)據(jù)濾波算法優(yōu)化時,在滿足工程項目技術(shù)要求前提下也可適當調(diào)整采樣時間來檢驗濾波算法效果。對于多路測量數(shù)據(jù)工業(yè)測控系統(tǒng),可在全局腳本增加其他過程值濾波代碼段,即可實現(xiàn)多路并行數(shù)據(jù)濾波。測試全局濾波腳本功能時,即可采用按鍵觸發(fā)階躍或脈沖離散信號,也可采用周期方波或正弦離散信號。