您好,欢迎访问三七文档
1第七章应用程序设计数据处理程序控制算法的程序设计本章要点2微机控制系统中的软件设计,包括选择系统软件及设计应用软件。前者主要选择操作系统和算法语言,后者是根据控制对象的要求编制应用程序。若是有自己设计的单片机或是DSP系统,则不仅要编写应用程序,而且要根据系统要求编制专用的监控程序或系统程序。对单片机而言,则大部分是监控程序。3所以,为控制,处理具体应用对象而编制的程序就叫应用程序。在微机控制系统中,为使程序紧凑,更重要的,为实时性强,常采用汇编语言编写。应用程序一般包括5部分:1.数据处理程序:对计算机的输入输出数据进行处理或变换,如数字滤波,线性化处理及工程量转换等。42.过程监视程序:为监视和控制生产过程,必须有相应的硬件与之配合,比如开关状态的检测及控制操作台,显示器等。应有巡回检测程序及控制操作台服务程序等,以及时反映现场情况和进行人机交互。3.控制算法程序:是为计算机能够按某种检测规律实现控制而编制的程序,如最优控制,PID控制,比值,前馈等。最常用的如PID控制。54.故障自诊断程序:即通过一定的软件去检查控制系统中的相关部件运转是否正常。已有各相关部件较成熟的自检程序,可供参考或借鉴。5.通用子程序:如制表打印格式程序,服务子程序库等。由于时间关系,重点介绍数据处理程序和控制算法程序。67.1数据处理程序7滤波:是将信号频谱中某些成分衰减或滤除。(滤除可用硬件如RC滤波器,也可用软件如数字滤波)高次谐波对电机产生有害影响。脉冲,铁损发热增加基波三次谐波8数字滤波:实质是程序滤波。通过一定的计算方法,减少干扰在有用信号中的比重,使得输入计算机待处理的信号量可能是我们所要求的信号。程序限幅滤波平均值滤波中值滤波一阶惯性滤波复合数字滤波91.无需硬设备,各通道可公用,降低成本。2.各回路间不存在阻抗匹配等问题。故可靠性高,稳定性好。3.对频率很低(如0.01HZ以下)的信号也可滤波,克服了模拟滤波器的缺陷。4.改变滤波方法式滤波器参数只需修改程序,方便,灵活。数字滤波的优点:101.程序限幅滤波经验说明,许多物理量的变化都需要一定的时间,相邻两次采样值之间的变化有一定的限度。当采样信号由于随机干扰,如大功率用电设备的启动或停止,造成电流的尖峰干扰或错误检测,以及变送器不稳定而引起的严重失真等现象时,可采用程序判断法进行滤波。程序判断滤波根据滤波方法的不同,可分为限幅滤波和限速滤波两种。11限幅滤波限速滤波设顺序采样时刻t1,t2,t3所采集的参数分别为Y(1),Y(2),Y(3),那么显然,这类方法对滤除随机干扰特别有效,程序也很简单。122.平均值滤波平均值滤波主要对压力,流量等周期脉动的采样值进行平滑加工,但对脉冲性干扰的平滑不理想,它不适用于脉冲干扰比较严重的场合。算术平均值滤波加权平均值滤波法1311()()niYkXin(1)算术平均值滤波公式为:可见,其实质是:把n个采样值相加,求其平均值,作为时刻k的值。显然n越大,结果越准确,但计算时间越长。算术平均值滤波是要寻找一个Y(k),使该值与各采样值间误差的平方和为最小,14算术平均值滤波主要用于对压力、流量等周期脉动参数的采样值进行平滑加工,但对脉冲性干扰的平滑作用尚不理想。因而它不适用于脉冲性干扰比较严重的场合。采样次数N的选取,取决于系统对于参数平滑度和灵敏度的要求。随着N值的增大,平滑度将提高,灵敏度将降低。所以要根据具体情况选取n,以便取得满意的滤波效果。15算术平均滤波对每次采样给出了相同的加权系数1/n。实际应用场合需要加大新采样值在平均值中的比重,为此可采用:加权平均值滤波法流量信号,取n=10压力信号,取n=5温度等缓慢变化信号,取n=216(2)加权平均值滤波法运算关系式为:1()()niiYkCXiCi为加权系数应满足:1)∑Ci=12)Cn>Cn-1>…>C2>C1因为加权系数常为小数,因此采用浮点运算更为合适。17上述两种滤波程序,为确定一个采样值,需采集n个数,需要时间长,使得检测时间减慢,所以只能用在信号变化比较缓慢的场合。为了提高检测速度,可采用:递推平均滤波或叫数据滑动平均滤波基本思想:每采样一个新值,即舍弃一个最早的采样值,然后求平均值,作为本次的采样。平均值滤波对周期脉动的干扰有较明确的抑制,但对偶尔出现的脉动干扰信号,滤波效果不理想,应采用——中值滤波183.中值滤波对被测参数采样n次(n≥3),再按大小顺序排列,再取中间值作为本次采样值。此法对防止脉冲干扰比较有效。对缓慢变化的过程变量采用此法有良好的效果,快速变化时要求采样点至少≥3,所以不适合用去除脉动性干扰。19程序:n=3为例输入采样值X1,X2,X3X1≥X2小数X1→R0大数X2→R1小数X2→R0大数X1→R1X3≥R1X3≥R0R0→SAMPX3→SAMPR1→SAMP(中值)NYYNYN转其它程序204.一阶惯性滤波前面几种滤波方法基本上属于静态滤波,主要适用于变化比较慢的参数,但对于快速随机变化的参数,要用动态滤波方法,如:一阶惯性滤波。数学表达式:RCX(s)Y(s)fTTT()(1)(1)()YkYkXk21一阶惯性滤波的基本意图是把本次采样值与上次滤波器平均值进行加权平均,因此在转入的过程中,任何快速的干扰均被滤除,仅保留缓慢变化的信号,为此称之为“低通滤波”。T为采样周期,一般事先确定好,Tf=RC为数字滤波器时间常数,通过实际运算可取最优值。方法:不断改变Tf,噪声→最低或消除,即为该系统的Tf值。缺点:造成相位滞后,大小与滤波系数有关。225.复合数字滤波为了进一步提高滤波效果,有时可以把两种或两种以上不同滤波功能的数字滤波器组合起来,构成复合数字滤波器,或称多级数字滤波器。例如:中值+均值可由下式表示:12(2)(3)(1)1()()22NiXXXNYkXiNN=若则(1)(2)(3)(),314XXXXNN上式也称为防脉冲干扰的平均值滤波。此外,也可采用双重滤波的方法,即把采样值经过低通滤波后,再经过一次高通滤波,这样,结果更接近理想值,这实际上相当于多级RC滤波。23各种滤波性能的比较1.滤波效果一般来说,对于变化比较慢的参数,如温度,可选用程序判断滤波及一阶滞后滤波方法。对那些变化比较快的脉冲参数,如压力,流量等,则可选择算术平均和加权平均滤波法,特别是加权平均滤波法。至于要求比较高的系统,需要用复合滤波法。24在算术平均滤波和加权平均滤波中,其滤波效果与所选择的采样次数N有关。N越大,则滤波效果越好,但花费的时间也越长。高通及低通滤波程序是比较特殊的滤波程序,使用时一定要根据其特点选用。2.滤波时间在考虑滤波效果的前提下,应尽量采用执行时间比较短的程序,若计算机计算时间允许,可采用效果更好的复合滤波程序。25注意:数字滤波在热工和化工过程的DDC系统中并非一定需要,需根据具体情况,经过分析,实验加以选用。不适当的应用数字滤波(例如,可能将待控制的偏差值滤掉),反而会降低控制效果,甚至失控,因此必须给与注意。26线性化处理程序在工程实践中,把物理量转化为电信号的传感器,大多带有一定的非线性特征,不便于计算机处理。有的很难找出明确的数学表达式,需根据测量值采取一些特殊的方法进行处理,还有一些参数,相互之间虽然有明确的数学表达式,但计算起来相当麻烦,会占用较多的时间。因此,找出某种既方便又能满足实际功能要求的数据处理办法就是本节要解决的问题。271.计算法如果被测参数和转换的电信号之间有明确的数学表达式,且该表达式又便于计算,就应发挥微机计算机较强的优势,将其表达式转换为线性关系,再行计算。2.查表法所谓查表法,就是把事先计算或测得的数据按一定的顺序编制成表格,查表程序的任务就是根据被测参数的值或者中间结果,查出最终所需要的结果。28微机中表格表格的排列分为有序表和无序表两种。有序表指在表内存放的数有一定的规律(或按大小顺序;或按某种规律),无序表指数据的存放是随意的(或某种函数是无序的)。根据表格的编排方法,查表的方法有3种:顺序查表法计算查表法对分查表法29a.顺序查表法顺序查表法用于无序表格的查找。因为无序表中各项数据和排列无一定的规律可寻。当需要找某一个数(常被称为关键字),只能从表的第一项开始,逐项比较,直至找到关键字。在程序设计时,已知条件是表格的长度和起始地址。在查找的过程中要不断地修改地址和进行计数。直至找到关键字。若表中无此关键字必须给出提示。30b.计算查表法微机控制系统中使用的线性表,是若干个数据元素的集合,各数据元素在表格中的排列方法及所占用的存储单元个数是一样的。因为要搜索的内容和表格的排列方法有一定的关系,故各元素都严格地按某种顺序排列。在此前提条件下才可以使用计算查表法。31计算查表法的思路是:根据给定的要查找的元素,通过一定的计算,求出该元素所对应的数值的地址。从而可从相应单元中取出所需要的量。计算查表法执行速度是很快的,使用这种查表法的关键是寻找一种计算表地址的公式,其缺点是对表格的要求非常挑剔。32对分查表法的具体做法是:对于一个字节长度为n的线性表(设该表从小到大排列),先取n/2处的值与待搜索的关键字x进行比较,如果x大于n/2项的内容,下一次取n/2~n的中间值,即与项的内容进行比较。否则取0~n/2项的中间值,即与项的内容进行比较。依次类推,可以逐次逼近待搜索的关键值所在位置,直至找到。若搜索完毕而未找到需给出提示。3n43n4c.对分查表法33如果在应用中一些数据或函数能够满足从大到小或从小到大的顺序排列,在这种情况下可使用对分查表法。显然对分查表其速度是很快的,它最多的查找次数为lg2n-1。例如,若查长为2068字节,对分查表最多只需要10次,而若采用顺序查表法,其平均查找次数1024次。343.折线法在微机控制系统中,有些参数输入和输出的关系只能通过一条曲线来表示,没有一个明确的表达式或一个有序表格。此种场合,只能够采用局部线性化对其进行处理。折线法实际上是线性插值的算法。这种计算程序的复杂程度和执行时间与折线的分段方程有关。35若采用等距分段,可简化计算过程,但当函数的曲率和斜率变化较大时,引入误差较大。这可以通过细分,使之减小,但占用较多的内存,而且计算量也大。若采用不等距分段,可根据函数曲率变化使分段直线尽量接近该段曲线,使误差减小,但程序编制却比较麻烦。因此,如何分段视具体情况而定。36标度变换程序设计生产过程中各个参数都有不同的量纲和数值。在计算机控制系统中所有这些物理参数经过变送器转换成A/D转换器能接收的电信号,又经A/D转换成一系列的数码。为了操作人员管理及生产过程的需要,必须把这些数码转换成各种工程量单位,使之便于显示,记录和打印。这种转换被称为标度变换或工程量转换。工程量转换有各种不同类型,它取决于被测参数和测量传感器的类型,要根据实际情况进行设计。371.线性参数的标度变换线性标度变换时最常用的标度变换方式,其前提条件是被测参数值与A/D转换结果为线性关系。线性标度变换的公式为:00000mx0x()xxmmmNNAAAANNAAANNN式中为一次测量仪表的下限;为一次测量仪表的上限;为实际测量值(工程量);为仪表下限所对应的数字量;为仪表上限所对应的数字量;为测量值所对应的数字量。38上式为线性标度变换的通用公式,其中Am、A0、Nm、N0对某一固定的被测参数来说都是常数,不同的参数有着不同的值。为了使程序设计简单,一般把一次测量仪表的下限所A0所对应的A/D转换值置为0,即使N0=0。这样,式可写成:00mx()xmNAAAAN在很多测量系统中,仪表下限值A0=0,此时,其对应的N0=0,上式可进一步简化为:xxmmNAAN392.非线性参数的标度变换上述标度变换公式仅适用于线性参数。对非线性参数的标度变换要具体问题具体分析,根据非线性关系求出相应的标度变换公式。流体的流量与被测流体流过节流装置前后产生的压力差的平方根成
本文标题:算术平均值滤波
链接地址:https://www.777doc.com/doc-3214702 .html