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

        ?

        基于博途SCL 語(yǔ)言的平均值濾波算法分析

        2022-04-28 00:23:00張明珠
        電聲技術(shù) 2022年3期
        關(guān)鍵詞:模擬量賦值干擾信號(hào)

        吳 凱,張明珠

        (上海齊耀螺桿機(jī)械有限公司,上海 201100)

        0 引言

        濾波是從含有干擾的接收信號(hào)中提取有用信號(hào)的一種技術(shù)。干擾信號(hào)在工程中一般可以分為兩種:一種是隨機(jī)性的脈沖,此種干擾毫無(wú)規(guī)律性可言;另一種包含周期性的干擾信號(hào)。兩種干擾信號(hào)的波形分別如圖1 和圖2 所示[1]。

        圖1 隨機(jī)脈沖干擾信號(hào)

        圖2 周期性干擾信號(hào)

        針對(duì)上述兩種不同的干擾信號(hào),工程上一般會(huì)設(shè)計(jì)不一樣的濾波算法進(jìn)行濾波。濾波算法也稱(chēng)濾波器,一般分為模擬濾波器和數(shù)字濾波器兩種。模擬濾波器的濾波過(guò)程如圖3 所示。模擬濾波器一般采用由電子元件搭建的電路進(jìn)行濾波。模擬信號(hào)經(jīng)過(guò)模擬濾波器后再進(jìn)入A/D 轉(zhuǎn)換環(huán)節(jié)轉(zhuǎn)換為數(shù)字信號(hào),濾波在A(yíng)/D 轉(zhuǎn)換之前就完成了。針對(duì)不同的干擾信號(hào),需要設(shè)計(jì)不同的濾波電路[2]。

        圖3 模擬濾波過(guò)程

        數(shù)字濾波器的濾波過(guò)程如圖4 所示,因?yàn)槠錇V波過(guò)程在A(yíng)/D 轉(zhuǎn)換以后進(jìn)行,所以其相對(duì)于模擬濾波器來(lái)說(shuō)更加靈活,只需要改變不一樣的算法就可處理不同的干擾信號(hào)。工程中常用的濾波算法有算術(shù)平均濾波法、加權(quán)平均濾波法、中位值平均濾波法以及限幅濾波法。本文主要介紹平均值濾波法,其主要用來(lái)消除周期性的干擾信號(hào)。

        圖4 數(shù)字濾波過(guò)程

        1 中位值平均濾波算法分析

        博圖平臺(tái)內(nèi)處理的模擬量原始數(shù)據(jù)來(lái)源可以是模擬量模塊的輸入、網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)以及內(nèi)部程序塊二次處理的輸出。平均值濾波是對(duì)一組數(shù)據(jù)求平均值,在可編程邏輯控制器(Programmable Logic Controller,PLC)中以窗口的形式來(lái)處理數(shù)據(jù)。先在PLC 中定義窗口值大小,軟件按照窗口值定義數(shù)組,針對(duì)這一組數(shù)據(jù)進(jìn)行處理。數(shù)據(jù)窗口值的處理方式又分為固定窗口和滑動(dòng)窗口兩種[3]。

        1.1 固定窗口處理

        固定窗口處理中,數(shù)據(jù)按照掃描周期依次填滿(mǎn)整個(gè)窗口,當(dāng)窗口滿(mǎn)時(shí),對(duì)窗口內(nèi)的數(shù)據(jù)求取平均值。之后拋棄整組數(shù)據(jù),重新開(kāi)始填滿(mǎn)窗口,直至窗口再次充滿(mǎn),再求平均值。

        對(duì)于固定窗口來(lái)講,第一組求平均的數(shù)據(jù)和第二組的數(shù)據(jù)在時(shí)間上是完全不同的兩組數(shù)據(jù),每組數(shù)據(jù)都不包含之前的信息。在程序執(zhí)行上,求取平均值不是每周期執(zhí)行的,而是每n周期執(zhí)行一次,n是設(shè)置的窗口值。如圖5 所示,每5 個(gè)周期存滿(mǎn)一組數(shù)據(jù),求取一次平均值。當(dāng)窗口值比較大,會(huì)產(chǎn)生比較大的滯后。

        圖5 固定窗口處理

        1.2 滑動(dòng)窗口處理

        滑動(dòng)窗口處理中,數(shù)據(jù)充滿(mǎn)窗口后求取平均值,再有新數(shù)據(jù)進(jìn)入時(shí)窗口向右滑動(dòng),舍棄最舊的數(shù)據(jù),加入最新的數(shù)據(jù),再求取平均值。對(duì)于滑動(dòng)窗口,當(dāng)窗口充滿(mǎn)之后,每次加入新數(shù)據(jù)舍棄最舊的數(shù)據(jù),每個(gè)周期都會(huì)求取平均值。在PLC 中,當(dāng)窗口被充滿(mǎn),新的數(shù)據(jù)會(huì)覆蓋最初的數(shù)據(jù),形成一個(gè)環(huán)形的數(shù)據(jù)隊(duì)列,如圖6 所示。

        圖6 滑動(dòng)窗口處理

        針對(duì)滑動(dòng)窗口優(yōu)化后的環(huán)形隊(duì)列的數(shù)據(jù)存儲(chǔ)算法如圖7 所示。

        圖7 環(huán)形窗口

        此方式定義頭指針和尾指針兩個(gè)指針。頭指針初始化為-1,尾指針初始化為0。

        第一個(gè)周期,數(shù)據(jù)寫(xiě)入尾指針指向的元素0,然后尾指針后移,將頭指針賦值為0 指向第一個(gè)元素;

        第二個(gè)周期,數(shù)據(jù)寫(xiě)入尾指針指向的元素1,然后尾指針后移,頭指針不變;

        第三個(gè)周期,數(shù)據(jù)寫(xiě)入尾指針指向的元素2,然后尾指針后移,頭指針不變;

        第四個(gè)周期,數(shù)據(jù)寫(xiě)入尾指針指向的元素3,然后尾指針后移,頭指針不變;

        第五個(gè)周期,數(shù)據(jù)寫(xiě)入尾指針指向的元素4,然后尾指針移到第一個(gè)元素0,頭指針與尾指針重合,這時(shí)候通過(guò)尾指針等于頭指針,以此判斷緩沖區(qū)滿(mǎn),完成判斷后頭指針移動(dòng)到元素1 的位置;

        第六個(gè)周期,數(shù)據(jù)寫(xiě)入尾指針指向的元素0,然后尾指針移動(dòng)到第一個(gè)元素1,此時(shí)判斷尾指針和頭指針相等,緩存區(qū)滿(mǎn),判斷完成后,頭指針移動(dòng)到元素2 的位置。

        以上為滑動(dòng)窗口的數(shù)據(jù)處理方式,可以使用尾指針等于頭指針來(lái)判斷隊(duì)列是否已滿(mǎn)。

        1.3 平均值濾波算法

        當(dāng)緩存區(qū)滿(mǎn)后,開(kāi)始對(duì)窗口內(nèi)的數(shù)據(jù)進(jìn)行求平均值操作。本文采用去掉最大值和最小值,再對(duì)剩余的數(shù)求平均值的方法。對(duì)應(yīng)的公式為:平均值=(窗口值總和-窗口最大值-窗口最小值)/(窗口尺寸大小-2)。

        考慮到此算法的通用性和可移植性,可以在博途軟件中建立一個(gè)FB 函數(shù)塊。調(diào)用這個(gè)FB 塊時(shí),不用再修改這個(gè)FB 內(nèi)部的程序代碼,只需要給此FB 的輸入輸出接口賦予實(shí)參即可[4]。

        首先,可以在FB 的靜態(tài)變量存儲(chǔ)區(qū)STATIC中定義一個(gè)數(shù)組ARRAY 用來(lái)存儲(chǔ)緩存的數(shù)據(jù),將緩存區(qū)數(shù)據(jù)中的最大值、最小值也在靜態(tài)變量緩存區(qū)STATIC 中進(jìn)行定義,并將最大值以及最小值初始化為數(shù)組ARRAY 中的第一個(gè)值A(chǔ)RRAY[0]。隨著時(shí)間的推移,緩存區(qū)存儲(chǔ)的數(shù)據(jù)會(huì)趨向于一個(gè)穩(wěn)定的值,因此可以將第一個(gè)存儲(chǔ)進(jìn)ARRAY 的數(shù)值定義為臨時(shí)的最大最小值,之后使用一個(gè)FOR循環(huán)來(lái)確認(rèn)數(shù)組ARRAY 中實(shí)際的最大最小值以及對(duì)所有窗口值求和。在FOR 循環(huán)過(guò)程中,如果ARRAY[i]比定義的臨時(shí)最小值A(chǔ)RRAY[0]小,就將ARRAY[i]賦值給最小值;如果ARRAY[i]比定義的臨時(shí)最大值A(chǔ)RRAY[0]大,就將ARRAY[i]賦值給最大值。其次,通過(guò)累加運(yùn)算對(duì)緩存區(qū)的所有值進(jìn)行求和,最后按照公式可以求出平均值的大小。

        2 博圖V15 平臺(tái)下算法的仿真及實(shí)現(xiàn)

        以下以西門(mén)子博途V16 軟件為例介紹模擬量濾波功能數(shù)據(jù)塊的實(shí)現(xiàn)。模擬量濾波功能數(shù)據(jù)塊接口定義如表1 所示。

        表1 FB 接口數(shù)據(jù)定義表

        2.1 初始化及復(fù)位程序處理

        初始化及復(fù)位程序處理部分的代碼如下。

        首先進(jìn)入初始化程序段,清除錯(cuò)誤狀態(tài)并將報(bào)錯(cuò)代碼初始化為沒(méi)有錯(cuò)誤發(fā)生。一旦復(fù)位開(kāi)關(guān)賦值為T(mén)RUE,程序?qū)⑶蠛椭?、頭指針、尾指針?lè)謩e賦值為0、#頭指針初始值、0。將堆棧以滿(mǎn)的狀態(tài)賦值為FALSE,按下復(fù)位開(kāi)關(guān)時(shí),將上個(gè)周期窗口值賦值給本周期窗口值。執(zhí)行完復(fù)位程序之后,執(zhí)行RETURN 指令,跳出該程序段,直到下周期開(kāi)始,從第一條指令開(kāi)始重新執(zhí)行。

        2.2 使用滑動(dòng)窗口優(yōu)化后的數(shù)據(jù)緩存程序處理

        滑動(dòng)窗口優(yōu)化后的數(shù)據(jù)緩存程序處理代碼如下。

        本段程序首先讀取寫(xiě)入一個(gè)新的掃描周期中的模擬量值并將尾指針后移加一,然后判斷尾指針是否等于頭指針。如果尾指針等于頭指針,則判斷數(shù)據(jù)緩存區(qū)堆棧已滿(mǎn),一旦堆棧已滿(mǎn)狀態(tài)為T(mén)RUE,則進(jìn)行濾波算法。最后進(jìn)行頭指針的處理,如果頭指針等于頭指針初始值-1,此時(shí)將頭指針復(fù)位為0并指向第一個(gè)元素,如果數(shù)據(jù)緩存區(qū)堆棧已滿(mǎn),頭指針后移加一,在復(fù)位開(kāi)關(guān)按下時(shí),頭指針也可賦值為-1,其他情況下頭指針不會(huì)被初始化為-1。

        2.3 濾波算法程序處理

        濾波算法程序處理部分代碼如下。

        本程序段首先判斷數(shù)據(jù)緩存區(qū)堆棧是否已滿(mǎn)。如果堆棧已滿(mǎn)=FALSE,則將數(shù)據(jù)緩存區(qū)的數(shù)值直接輸出;如果堆棧已滿(mǎn)=TRUE,則進(jìn)行濾波算法程序處理。在濾波程序中首先將數(shù)據(jù)緩存區(qū)中的第一個(gè)元素分別賦值給最大值、最小值、求和值3 個(gè)變量,再執(zhí)行FOR 循環(huán),從緩存區(qū)的第二個(gè)元素開(kāi)始一直循環(huán)到最后一個(gè)元素。在循環(huán)過(guò)程中,如果該元素小于最小值,則用該元素值替代原最小值;如果該元素大于最大值,則用該元素值替代原最大值,之后執(zhí)行累加求和程序,最后根據(jù)求平均值公式將計(jì)算結(jié)果值賦值給濾波后信號(hào)輸出。

        2.4 隨機(jī)信號(hào)的產(chǎn)生及模擬仿真方法

        隨機(jī)信號(hào)的產(chǎn)生部分程序代碼如下。

        本程序段利用西門(mén)子S71200/1500 系列PLC自帶的時(shí)鐘存儲(chǔ)器位產(chǎn)生隨機(jī)數(shù)進(jìn)行濾波算法的仿真驗(yàn)證。首先定義一個(gè)掃描周期,在該掃描周期內(nèi)利用2 個(gè)延時(shí)關(guān)斷定時(shí)器產(chǎn)生一個(gè)固定頻率的脈沖信號(hào),利用該脈沖的上升沿結(jié)合時(shí)鐘存儲(chǔ)器,可以產(chǎn)生一個(gè)隨機(jī)數(shù)。利用該隨機(jī)數(shù)可以模擬實(shí)際的PLC 模擬量模塊讀取的數(shù)值。再組態(tài)一個(gè)TP1200 的觸摸屏,可以將隨機(jī)數(shù)的波形及濾波后信號(hào)輸出的波形實(shí)時(shí)地在觸摸屏上顯示出來(lái)。仿真結(jié)果波形如圖8 所示。

        由圖8 可知,對(duì)于同樣的模擬量輸入信號(hào),如果采用平均值濾波算法,得到的濾波后的波形的平滑度要比實(shí)際的未經(jīng)過(guò)濾波算法處理的波形的平滑度高[5]。

        圖8 仿真結(jié)果波形

        3 結(jié)語(yǔ)

        隨著實(shí)際工程中模擬量的使用范圍越來(lái)越廣,濾波算法變得尤為重要。對(duì)于變化較快的模擬量輸入信號(hào)存在的偶發(fā)性干擾,本文提出的算法可以有效地去除干擾造成的影響,且算法具有較高的靈敏度。該濾波函數(shù)程序塊具有很好的移植性,可以生成為庫(kù)文件,在不同的項(xiàng)目中調(diào)用。

        猜你喜歡
        模擬量賦值干擾信號(hào)
        關(guān)于1 1/2 … 1/n的一類(lèi)初等對(duì)稱(chēng)函數(shù)的2-adic賦值
        L-代數(shù)上的賦值
        正弦采樣信號(hào)中單一脈沖干擾信號(hào)的快速剔除實(shí)踐方法
        基于粒子群算法的光纖通信干擾信號(hào)定位方法
        基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
        強(qiáng)賦值幺半群上的加權(quán)Mealy機(jī)與加權(quán)Moore機(jī)的關(guān)系*
        關(guān)于600MW火電機(jī)組模擬量控制系統(tǒng)設(shè)計(jì)和研究
        電子制作(2016年21期)2016-05-17 03:53:12
        利用賦值法解決抽象函數(shù)相關(guān)問(wèn)題オ
        淺析監(jiān)控干擾信號(hào)的優(yōu)化處置措施
        模擬量輸入式合并單元測(cè)試儀的研制
        日韩毛片无码永久免费看| 亚洲最大的av在线观看| 白色白色白色在线观看视频 | 国产av一区二区三区在线| 五月婷婷开心五月激情| 午夜熟女插插xx免费视频| 日韩精品免费视频久久| 人妻少妇哀求别拔出来| 中国老熟女重囗味hdxx| 欧美性xxxx狂欢老少配| 亚洲精品日本| 亚洲一区二区视频免费看| 精品人妻久久一区二区三区| 爱情岛论坛亚洲永久入口口| 亚洲av无码精品色午夜| 久久国产影视免费精品| 日韩乱码精品中文字幕不卡| 亚洲视频在线观看一区二区三区| 俺去啦最新地址| 亚洲av永久无码精品国产精品 | 亚洲色成人www永久在线观看| 亚洲有码转帖| 久久久久久久久高潮无码 | 国产精品天干天干综合网| 国产va在线观看免费| av深夜福利在线| 蜜桃一区二区三区在线视频| 中文字幕一区二区中文| 国产无吗一区二区三区在线欢| 亚洲成成品网站源码中国有限公司| 无码av专区丝袜专区| 亚洲熟妇一区二区蜜桃在线观看 | 99精品视频在线观看免费| 久久99国产亚洲高清观看首页| 亚洲无人区乱码中文字幕动画| 亚洲av中文无码字幕色本草| 一本色综合久久| 男人阁久久| av一区二区在线免费观看| 欧美性xxxxx极品老少| 久久伊人色av天堂九九|