摘 要:介紹PLC應(yīng)用中軟件濾波功能、方法,以及臺(tái)達(dá)PLC在自動(dòng)控制中軟件濾波程序應(yīng)用。
關(guān)鍵詞:PLC 模擬量采集 噪聲和干擾 濾波電路 濾波方法 閉環(huán)調(diào)節(jié)
1 引言
工業(yè)自動(dòng)化系統(tǒng)中的大型系統(tǒng)或是小型設(shè)備,均含有各種噪聲和干擾。干擾既有來自信號(hào)源本體或傳感器,也有來自外界干擾。為了進(jìn)行準(zhǔn)確測(cè)量和控制,必須消除被測(cè)信號(hào)中的噪聲和干擾。特別是隨著自動(dòng)化程度的提高,許多控制功能通過自動(dòng)閉環(huán)調(diào)節(jié)來完成,設(shè)備控制的效果取決于外部模擬量采集、控制算法、執(zhí)行輸出等等環(huán)節(jié),而在現(xiàn)場(chǎng)工業(yè)環(huán)境中,
電磁干擾、
電源干擾、甚至于
傳感器本身都會(huì)影響外部信號(hào),導(dǎo)致得到的數(shù)據(jù)失真、波動(dòng),如果在數(shù)據(jù)采集環(huán)節(jié)即出現(xiàn)問題,那整個(gè)系統(tǒng)將無法正常工作。本文分析解決的是如何利用軟件數(shù)字濾波的方式處理外部信號(hào)的正確采集,從而才能得到真實(shí)的數(shù)據(jù),實(shí)現(xiàn)自動(dòng)控制,否則設(shè)備的自動(dòng)化控制將無從談起。
2 軟件濾波功能簡(jiǎn)介
2.1 軟件濾波
軟件濾波即是通過軟件算法將數(shù)據(jù)進(jìn)行適當(dāng)處理,從而屏蔽掉噪聲和干擾雜波信號(hào),獲得可用的真實(shí)數(shù)據(jù)的一種方法,也可以說是通過程序處理的方式完成數(shù)據(jù)采集信號(hào)的處理。
對(duì)于采集信號(hào)的處理,除了軟件濾波之外,也可以采用硬件電路實(shí)現(xiàn)濾波處理,比如常見的RC濾波、LC濾波等等,圖1為采用電容濾波電路的信號(hào)曲線。
[align=center]
圖1 電容濾波電路的信號(hào)曲線[/align]
硬件濾波的優(yōu)點(diǎn)在于我們?cè)诔绦蛑胁辉傩枰M(jìn)行復(fù)雜的程序處理,而且數(shù)據(jù)變化響應(yīng)性高;而軟件濾波的優(yōu)勢(shì)在于不需要硬件的投入,簡(jiǎn)化了電路設(shè)計(jì),對(duì)于不同的信號(hào)干擾可以很方便的調(diào)整軟件參數(shù)達(dá)到濾波效果,雖然有些方法在信號(hào)處理上會(huì)有一定的滯后,但只要合理使用各種不同的濾波方式則完全避免因此而帶來的影響。
2.2 數(shù)字軟件濾波優(yōu)點(diǎn)
?。?) 數(shù)字濾波用軟件實(shí)現(xiàn),不需要增加硬設(shè)備,因而可靠性高、穩(wěn)定性好,不存在阻抗匹配問題。
(2) 模擬濾波通常是各通道專用,而數(shù)字濾波則可多通道共享,從而降低了成本。
(3) 數(shù)字濾波可以對(duì)頻率很低(如0.01 Hz)的信號(hào)進(jìn)行濾波,而模擬濾波由于受電容容量的限制,頻率不可能太低。
(4) 數(shù)字濾波可以根據(jù)信號(hào)的不同,采用不同的濾波方法或?yàn)V波參數(shù),具有靈活、方便、功能強(qiáng)的特點(diǎn)。
3 實(shí)現(xiàn)軟件濾波的方法
軟件濾波有很多種方法,主要是針對(duì)不同干擾信號(hào)采取不同的方法將其消除,這里列舉了一些方法并針對(duì)性說明有缺點(diǎn),使大家可以正確選擇采用的濾波方法。
3.1限幅濾波法
(1)方法。根據(jù)經(jīng)驗(yàn)判斷,確定兩次采樣允許的最大偏差值(設(shè)為A),每次檢測(cè)到新值時(shí)判斷:如果本次值與上次值之差<=A,則本次值有效;如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值。
?。?)優(yōu)點(diǎn)。能有效克服因偶然因素引起的脈沖干擾。
(3)缺點(diǎn)。無法抑制周期性的干擾,平滑度較差。
?。?)分析。限幅濾波法是比較簡(jiǎn)單易行的一種方法,難點(diǎn)在于需要由經(jīng)驗(yàn)判斷合理的偏差值,如果偏差值設(shè)小了,起不到濾波作用,設(shè)定過大,將不能及時(shí)采集外部信號(hào)的細(xì)小變化。
3.2中位值濾波法
?。?)方法。連續(xù)采樣N次(N取奇數(shù)),把N次采樣值按大小排列,取中間值為本次有效值。
?。?)優(yōu)點(diǎn)。能有效克服因偶然因素引起的波動(dòng)干擾,對(duì)溫度、液位的變化緩慢的被測(cè)參數(shù)有良好的濾波效果
?。?)缺點(diǎn)。對(duì)流量、速度等快速變化的參數(shù)不宜。
(4)分析。采樣次數(shù)決定了濾波效果,次數(shù)越大,濾波作用越大,但不能對(duì)信號(hào)進(jìn)行快速響應(yīng)。
3.3算術(shù)平均濾波法
?。?)方法。連續(xù)取N個(gè)采樣值進(jìn)行算術(shù)平均運(yùn)算。N值較大時(shí):信號(hào)平滑度較高,但靈敏度較低;N值較小時(shí):信號(hào)平滑度較低,但靈敏度較高。N值的選?。毫髁?,N=12;壓力:N=4。
?。?)優(yōu)點(diǎn)。適用于對(duì)一般具有隨機(jī)干擾的信號(hào)進(jìn)行濾波,這樣信號(hào)的特點(diǎn)是有一個(gè)平均值,信號(hào)在某一數(shù)值范圍附近上下波動(dòng)。
?。?)缺點(diǎn)。對(duì)于測(cè)量速度較慢或要求數(shù)據(jù)計(jì)算速度較快的實(shí)時(shí)控制不適用,比較浪費(fèi)RAM。
3.4遞推平均濾波法
?。?)方法。連續(xù)取N個(gè)采樣值,作為一個(gè)隊(duì)列,每次采樣到一個(gè)新數(shù)據(jù)放入隊(duì)尾,并扔掉原來隊(duì)首的一次數(shù)據(jù),把隊(duì)列中的N個(gè)數(shù)據(jù)進(jìn)行算術(shù)平均運(yùn)算,就可獲得新的濾波結(jié)果。N值的選取:流量,N=12;壓力:N=4;液面,N=4~12;溫度,N=1~4。
?。?)優(yōu)點(diǎn)。對(duì)周期性干擾有良好的抑制作用,平滑度高,適用于高頻振蕩的系統(tǒng)。
?。?)缺點(diǎn)。靈敏度低,對(duì)偶然出現(xiàn)的脈沖性干擾的抑制作用較差,不易消除由于脈沖干擾所引起的采樣值偏差,不適用于脈沖干擾比較嚴(yán)重的場(chǎng)合,比較浪費(fèi)RAM。
3.5一階滯后濾波法
(1)方法。取a=0~1,本次濾波結(jié)果=(1-a)*本次采樣值+a*上次濾波結(jié)果。
?。?)優(yōu)點(diǎn)。對(duì)周期性干擾具有良好的抑制作用,適用于波動(dòng)頻率較高的場(chǎng)合。
?。?)缺點(diǎn)。相位滯后,靈敏度低,滯后程度取決于a值大小,不能消除濾波頻率高于采樣頻率的1/2的干擾信號(hào)。
3.6消抖濾波法
?。?)方法。設(shè)置一個(gè)濾波計(jì)數(shù)器,將每次采樣值與當(dāng)前有效值比較:如果采樣值=當(dāng)前有效值,則計(jì)數(shù)器清零;如果采樣值<>當(dāng)前有效值,則計(jì)數(shù)器+1,并判斷計(jì)數(shù)器是否>=上限N(溢出);如果計(jì)數(shù)器溢出,則將本次值替換當(dāng)前有效值,并清計(jì)數(shù)器。
?。?)優(yōu)點(diǎn)。對(duì)于變化緩慢的被測(cè)參數(shù)有較好的濾波效果,可避免在臨界值附近控制器的反復(fù)開/關(guān)跳動(dòng)或顯示器上數(shù)值抖動(dòng)。
(3)缺點(diǎn)。對(duì)于快速變化的參數(shù)不宜,如果在計(jì)數(shù)器溢出的那一次采樣到的值恰好是干擾值,則會(huì)將干擾值當(dāng)作有效值導(dǎo)入系統(tǒng)。
4 臺(tái)達(dá)PLC軟件濾波應(yīng)用
上面簡(jiǎn)單描述了六種濾波的方法,實(shí)際上濾波的方法很多,而且針對(duì)不同的信號(hào)可以將兩種或三種方法綜合使用以滿足信號(hào)處理的要求。
臺(tái)達(dá)PLC的模擬量采集主要有模塊和混合型主機(jī)兩種。
4.1使用模擬量采集模塊
臺(tái)達(dá)模擬量模塊分為兩大類,-S和-H,分別配合SS/SA/SC主機(jī)和EH主機(jī),如DVP04AD-S、DVP06XA-S、DVP04PT-S、DVP04TC-S為-S模塊,DVP04AD-H、DVP06XA-H、DVP04PT-H、DVP04TC-H為-H為-H模塊。無論哪一款模塊,對(duì)應(yīng)模塊每個(gè)輸入通道都有軟件濾波功能,也就是模塊內(nèi)部控制寄存器中的平均次數(shù)設(shè)置(通道獨(dú)立),在此采用的是遞推平均濾波法,設(shè)置的次數(shù)是上文中提到的采樣N值,可以設(shè)置1~20,不同的濾波系數(shù)適應(yīng)不同的信號(hào),另外當(dāng)輸入有雜波造成配線受噪聲干擾時(shí)還可以連接0.1~0.47 μF 25V做電容濾波,即硬件濾波,如圖2所示。
[align=center]
圖2 硬件濾波[/align]
臺(tái)達(dá)也提供集成模擬量的主機(jī)類型,主要有DVP20EX(8DI/6DO/4AI/2AO)和DVP10SX(4DI/2DO/2AI/2AO),以及在EH主機(jī)上可以擴(kuò)展F2AD卡作為模擬量采集,在PLC中有平均次數(shù)設(shè)置的內(nèi)部特殊寄存器D1062,可以設(shè)置1~4作軟件濾波,同樣的采用的也是遞推平均濾波法。
可以看出,臺(tái)達(dá)PLC作為工業(yè)控制產(chǎn)品,在模擬量采集的處理上作了比較完善的軟、硬件處理滿足大多數(shù)應(yīng)用場(chǎng)合,當(dāng)然并不是說他能滿足所有的信號(hào)處理,特別是混合型主機(jī)的平均次數(shù)比較少,因此可能在某些場(chǎng)合不能滿足要求,在此基礎(chǔ)上我們可以根據(jù)現(xiàn)場(chǎng)信號(hào)的不同特性在程序中作濾波處理。
4.3 基于臺(tái)達(dá)PLC的一階滯后濾波程序設(shè)計(jì)
下面是以燃煤熱水鍋爐系統(tǒng)的爐膛微負(fù)壓為設(shè)計(jì)背景,用臺(tái)達(dá)PLC編制的一個(gè)一階滯后濾波程序案例,以此簡(jiǎn)單介紹濾波程序的編寫方法。
案例采用氧化硅壓力傳感器測(cè)量,由于爐膛負(fù)壓是一個(gè)較小的壓力量,大概在正負(fù)幾百帕之間,很容易受到外界影響(如鼓風(fēng)機(jī)、引風(fēng)機(jī)等),因此這是一個(gè)波動(dòng)較大的采集量,如果直接使用采集值,波動(dòng)將很大(可能是正負(fù)幾十帕的波動(dòng)),根本沒有辦法調(diào)節(jié)控制到正負(fù)20Pa,因此必須對(duì)采集值作處理,減小其周期性波動(dòng)才能完成控制。
一階滯后濾波算法公式:
濾波后輸出值=(1-A)* 本次采樣值 + A*上次濾波結(jié)果
其中A為濾波系數(shù),范圍是0~1
程序中各寄存器定義:
D0: 濾波系數(shù)A
D2: 1- A
D4: “(1-A)* 本次采樣值”的運(yùn)算結(jié)果
D6:“A*上次濾波結(jié)果”的存儲(chǔ)寄存器
D50:上次濾波暫存值
D110: 采集值通過FLT指令轉(zhuǎn)換為浮點(diǎn)數(shù)
D150:濾波后結(jié)果
程序中主要是將直接采集值經(jīng)過上述公式的浮點(diǎn)數(shù)運(yùn)算得到濾波后結(jié)果,從算法中可以看出,當(dāng)濾波系數(shù)為0時(shí),就是當(dāng)前的采集值,而濾波系數(shù)越大,濾波作用越強(qiáng)。程序運(yùn)行后可以看到,當(dāng)采集值D110有變化時(shí),濾波值是逐漸逼向當(dāng)前采集值,因此對(duì)于突波信號(hào)具有抑制作用,使采集值比較穩(wěn)定,減小波動(dòng)。
5 結(jié)束語
本文介紹了6種數(shù)字軟件濾波算法和臺(tái)達(dá)PLC如何實(shí)現(xiàn)濾波的程序編制,每種濾波算法都有其各自的特點(diǎn),在實(shí)際應(yīng)用中,應(yīng)根據(jù)具體的測(cè)量參數(shù)合理的選用。不適當(dāng)?shù)貞?yīng)用數(shù)字濾波,不僅達(dá)不到濾波效果,反而會(huì)降低控制品質(zhì),甚至失控,這點(diǎn)必須予以注意。
在案例中通過一階滯后濾波算法得到的濾波結(jié)果,大大消除了采集值的波動(dòng),使負(fù)壓控制相對(duì)穩(wěn)定,得到較好的控制效果。