PLC在低频时变信号处理中的应用

时间:2022-07-31 06:25:22

PLC在低频时变信号处理中的应用

摘 要 近年来,集成电路(IC)技术的飞速发展,芯片的运算和存储密度越来越大,相应地PLC计算速度和内存也在变大。目前信号处理大多使用专用的高速DSP,本文就是做出一个尝试,即使用PLC来进行信号处理,相信在不久的将来PLC在满足基础自动化的需求的同时,还能够胜任更多的角色。

关键词 PLC;信号处理

中图分类号:TN91 文献标识码:A 文章编号:1671-7597(2013)20-0045-04

The application of PLC in Low Frequency Time-varying Signal Processing

Gao Song1, Gong XiJin1, Yang Wu2, Guo Na1

(1.Beijing General Research Institute of Mining and Metallurgy, Beijing 100070, China;2.Kunming Institute of Precious Metals, Yunnan Kunming 650106, China)

Abstract: In recent years, the development of integrated circuit(IC) technology is very fast, the operation density and memory density of chip is increasingly large, accordingly rapid of operation and memory of PLC is larger than before. Now in most cases we use special high-speed DSP for signal processing, this paper is an attempt, which use PLC for signal processing, I believe the PLC would be competent to do more in the near future.

Key Words: PLC; Signal Processing

集成电路(Integrated Circuit,简称IC)是20世纪中叶发展起来的一种新型半导体器件。从1955年,贝尔实验室研制出的世界上第一台全晶体管计算机TRADIC,装有800只晶体管,功率100瓦,占地0.08495立方米,到2012年intel采用22纳米技术的Core i7-3770,装有14.8亿只晶体管,功率77瓦,核心面积仅159.8平方毫米,时57年。

而在工业生产中广泛使用的PLC的处理器的更新速度远远落后于计算机,例如GE最高端的RX7i使用的还是奔腾3系列处理器,即便如此,在实际使用时,PLC的计算和储存能力往往还是有所剩余。因此可以预见当Core i7处理器镶嵌在PLC中时,如果我们再像现在一样使用的话将是一种极大的浪费。

1 问题的提出

在使用PLC进行程序测试时发现有一个变量呈现周期性变化,且幅值、均值和频率在不同的系统输入下有不同的响应。因此笔者希望能够得到这个信号的周期,以便于进一步分析。

通过查找资料,发现目前比较常用的两种测频方法为电子计数法和傅立叶变换。但对于本文所遇到的情况都不大适用,首先频率较低,电子计数法测频偏差大。其次频率是变化的,因此在使用傅立叶变换时,难以用程序来确定一个恰当的采样数,也难以用程序在傅立叶变换的结果中选出正确的频率值。最终以电子计数法为基础,找到了一种便于在PLC实现并能消除量化误差的方法,然后再使用傅立叶变换对信号分解并重构。

2 具体实现

2.1 相关公式

本文傅立叶变换部分采用主要采用算式如下,其中k为整数,k∈[0,N/2 or (N-1)/2],N为采样数,因N有奇数和偶数两种情况,所以k的终点有两种。

(1)

(2)

幅值计算为单边扩展:

(3)

重构输出如下,记为output4:

(4)

2.2 程序流程

图1为程序整体流程,当PLC置为运行模式后,首先进行初始化,然后循环执行四个相对独立的部分,分别为:采样、零均值化,测频,计算幅值和信号重构。若信号不变即无周期,则输出跟随输入。

第一部分主要是采样一个先进先出队列,并计算其均值,在本例中队列长度设为32,即所测周期最长为31个采用数。

图1 程序结构

Fig.1 the Structure of Program

第二部分测频流程如图2。

若某一信号在T秒时间内重复变化了N次,则根据频率的定义,可知该信号的频率f=N/T,这是电子计数法的原理,但是却存在量化误差,而在这里判断的是越过均值的次数,并分别记录是上升越过还是下降越过,这样不仅可以得到频率,而且还可以得出信号的形状是“+sin”还是“-sin”。

测量第一个信号周期需要的时间是一个信号周期加一个采样周期,从第二个信号周期开始更新时间平均值为半个信号周期。

第三部分计算幅值,只有当捕捉到一个新的完整周期时才会启动计算,并更新幅值,从而节省时间,流程如图3。

为使用Cooley-Tukey快速傅立叶变换算法FFT,将函数序列数不为2的整数次幂的N 1补零使之成为N为2的整数次幂的做法,需谨慎使用,因为补零前和补零后傅立叶变换的结果是不相同的。同时为使傅立叶变换前后的结果相同,N必须是2的整数次幂,而这已满足快速傅立叶变换要求。所以若仅为适用快速傅立叶变换算法要求, 补零已无意义。而本文中周期、幅值和均值均不固定,同时为了使计算结果容易判读,所以决定采用直接算法。

第四部分为信号重构,如图4,即在捕捉到一个完整周期后,再重构信号,所以重构输出要比输入信号滞后一个信号周期。

在实际使用中发现当信号为标准方波信号时。直接使用式(4),拟合度略差。

(5)

式(4)是在每个采样周期的末尾采样,而式(5)则是在周期之初采样。经过观察发现取两者的平均值,记为output5,对标准方波信号的拟合度效果较好。

图4 信号重构

Fig.4 Re-structure the Signal

如图5所示。

图5 标准方波重构

Fig.5 the Restructure of Standard Square-wave

2.3 信号重构结果

本程序使用罗克韦尔RSLogix5000 V16.03软件编写,并使用emulate5000仿真测试,编程语言为梯形图和结构文本,图6为使用L61处理器时数据与程序内存使用情况,除了前文所述程序外还包含一个长度为7200的单精度浮点数组用于存储测试信号,上位软件为FTView6.0加SQL Server。

本文所用程序经过约5小时的测试,为准确记录数据设置程序循环周期为200 ms,记录周期为100 ms,即仿真的PLC采样频率为5 Hz。单次扫描用时前三位为48.221 ms, 14.119 ms,5.411 ms。前两个分别出现在开始测试约20秒和1小时44分一次修改程序之后,且仅出现一次。

图6 数据和程序内存使用情况

Fig.6 Estimated Data and Logic Memory

因为是在计算机上进行仿真,系统环境比PLC要复杂很多,因此忽略不计,在本次试验中最大采样频率约为184.8 Hz。

测试信号波形大致可分为6种,重构结果如图7所示。

(A)

(B)

(C)

(D)

(E)

(F)

图7 重构结果

Fig.7 the Result of Restructure

4 结束语

本文所做尝试,说明在现有的PLC指令系统中也可以进行傅立叶变换,得出输入信号各频段信号分量,以便于分析,或摘取、滤除指定频率的信号。

同时本文所设计算法对输入信号的频率、幅值和均值均没有特殊要求,只需要修改存储信号的队列以及一些中间变量的数组长度即可。因此可以预想在不久的将来PLC在满足基础自动化的需求的同时,还能够胜任更多的角色。

参考文献

[1]陈夕松,王木兰.过程控制系统[M].北京:科学出版社,2005.

[2]金以慧,方崇智.工程控制[M].清华大学出版社,1993.

[3]Kennedy J, Eberhart R C.Partical swarm optimization[C].Australia; IEEE international Conference on Neural Networks, 1995.

[4]王冰,申卫昌,田来科,姚合宝,马爱华.快速傅立叶变换Cooley-Tukey算法补零问题[J].西北大学学报(自然科学版),2004,34(1):31-33.

[5]Rockwell Automation Inc. Logix5000 Controllers Structured Text Programming Manual[M].Rockwell Automation Inc., 2012.

作者简介

高嵩(1984-),男,辽宁沈阳市人,工学硕士,助理工程师。

上一篇:主变压器油色谱异常的分析 下一篇:Struts2、Spring和Hibernate框架技术分析