版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章常用应用程序设计本章以51单片机为基础,主要介绍结构化汇编语言的监控程序设计思想和实时测控系统中最常用的数字滤波技术、标度变换、插值算法以及报警程序设计等。程序与程序设计的概念使用计算机求解某些问题或完成某一特定功能,就要先对问题或特定功能进行分析,确定形成的算法和步骤,然后选择相应的指令,按一定顺序排列起来,这样就构成了求解某一问题或实现特定功能的程序。通常把这一编制程序的工作称为程序设计。常用程序设计语言有汇编语言、C语言等。程序设计的基本步骤:
(1)分析问题。弄清问题要求,对问题有正确理解。
(2)算法设计。针对问题设计一个能完成相应功能的算法,尽可能速度快,占有计算机存储量小。
(3)程序结构设计。模块化方法、自顶向下逐步求精的方法进行设计。
(4)编写源程序。
(5)建立可运行的目标程序。
(6)程序的调试与修改。
(7)编制程序的说明文件。5.2数字滤波技术数字滤波就是通过一定的计算程序,对测量信号(采样数据)进行平滑加工,提高其有用信号,消除或减少各种干扰和噪音,以保证计算机控制系统的可靠性。
数字滤波器与模拟滤波器相比优点如下:(1)无需增加任何硬件设备,在程序进入数据处理和控制算法之前,附加一段数字滤波程序即可。(2)由于数字滤波器不需要增加硬件设备,各回路间不存在阻抗匹配问题,所以系统可靠性高。(3)数字滤波器可多通道共享,从而降低了成本,而对于模拟滤波器,通常是各通道专用的。(4)可以对频率很低的信号进行滤波,而模拟滤波器由于受电容容量的限制,频率不可能太低。(5)可根据需要选择不同的滤波方法或改变滤波器的参数,使用灵活、方便。
常用数字滤波器5.2.1中值滤波5.2.2程序判断滤波5.2.3平均值滤波5.2.4一阶滞后滤波5.2.1中值滤波中值滤波的设计思想
对某一参数连续采样N次(一般N取奇数,多数情况下N=3),然后把N次采样值从小到大(或从大到小)排队,取中间值作为本次采样值。中值滤波的特点这种方法对于去掉偶然因素引起的波动或采样器不稳定而造成的误差所引起的脉冲干扰比较有效。若变量变化比较缓慢,则采用中值滤波效果比较好,但对快速变化的参数,则不宜采用。5.2.2程序判断滤波程序判断滤波的设计思想根据生产经验,确定出相邻两次采样信号之间可能出现的最大偏差Δy。若信号采样值与上次采样值的偏差超过此偏差值,则表明该输入信号是干扰信号,应该去掉;若小于此偏差值,则可将该信号作为本次采样值。程序判断滤波的分类程序判断滤波根据滤波方法的不同,可分为限幅滤波和限速滤波两种。
限幅滤波的用途和使用注意事项:
限幅滤波主要用于变化比较缓慢的参数,如温度。使用时,关键问题是最大允许误差Δy的选取,Δy太大,各种干扰信号将“乘机而入”,使系统误差增大;Δy太小,又会使某些有用信号被“拒之门外”,使计算机采样效率变低。因此,门限值Δy的选取是非常重要的。限速滤波
方法是:当|y(2)–y(1)|>Δy时,不像限幅滤波那样,用y(1)作为本次采样值,而是再采样一次,取得y(3),然后根据|y(3)–y(2)|与Δy的大小关系来决定本次采样值。其具体判别式如下:
设顺序采集的参数分别是y(1),y(2),y(3),那么当|y(2)–y(1)|≤Δy时,则取y(2);当|y(2)–y(1)|>Δy时,则不采用y(2),继续采样取得y(3);当|y(3)–y(2)|≤Δy时,则取y(3);当|y(3)–y(2)|>Δy时,则取|y(3)+y(2)|/2。限速滤波的用途和使用注意事项:
限速滤波是一种折衷的方法,既照顾了采样的实时性,又顾及了采样值变化的连续性。但这种方法也有明显的缺点:第一,Δy的确定不够灵活,必须根据现场的情况不断更换新值;第二,不能反映采样点数N>3时各采样数值受干扰的情况。因此,它的应用受到一定的限制。
在实际使用中,可用[|y(1)–y(2)|+|y(2)–y(3)|]/2取代Δy,这样也基本保持限速滤波的特性,虽增加运算,但灵活性有所提高。5.2.3平均值滤波1.算术平均值滤波寻找一个Y它与各采样值Xk之间误差的平方和E为最小。根据极值原理得:××××××××××××××××××××××××算术平均值法滤波对干扰的抑制×-各采样时刻得到的采样值;虚线-滤波器输出值(a)无干扰情况;(b)有规则干扰情况;(c)带脉冲干扰情况连续取N个采样值进行算术平均运算。N值较大时:信号平滑度较高,但灵敏度较低;N值较小时:信号平滑度较低,但灵敏度较高;N值的选取:一般流量,N=12;压力:N=4。算术平均值滤波主要适用于对压力、流量等周期脉动的采样值进行平滑加工,但对于脉冲性干扰信号的平滑效果欠佳。
一般采样值次数愈靠后,取的比例愈大,这样可增加新的采样值在平均值中所占的比例。这种滤波方法可以根据需要突出信号的某一部分来抑制信号的另一部分,适用于系统纯滞后时间较大而采样周期较短的过程。
3.滑动平均值滤波特点:每计算一次有效采样值必须连续进行N次采样。滑动平均滤波是在每个采样周期只采样一次,将这一次采样值和过去的若干次采样值一起求平均,所得结果即为当前有效采样值。具体作法:可用循环队列结构方式来实现数据的存放。比如取N个采样值求滑动平均,只要在RAM中开辟N个数据暂存区,每次新采集一个数据便存入暂存区的队尾,同时冲掉队首的一个数据,这样在存储器队列中始终保持有N个最新的数据。再求包括新数据在内的N个数据的算术平均值或加权平均值。5.2.4一阶滞后滤波X(s)Y(s)CR由于大的时间常数及高精度的RC电路不易制作,所以硬件RC滤波器不可能对极低频率的信号进行滤波。一阶滞后滤波是模拟RC滤波器的数字形式:
A、优点:
对周期性干扰具有良好的抑制作用
适用于波动频率较高的场合
B、缺点:
相位滞后,灵敏度低
滞后程度取决于a值大小
5.2.5复合滤波防脉冲干扰的算术平均值滤波算法(去掉Xmax和Xmin):而算术平均值滤波:优点:兼有了中值滤波和算术平均值滤波的优点。缺点:执行时间较长。5.2.6各种数字滤波性能的比较2.滤波时间在考虑滤波效果的前提下,应尽量采用执行时间比较短的程序,若计算机计算时间允许,可采用效果更好的复合滤波程序。注意事项:在实际应用中,究竟采用哪一种数字滤波,都应视具体情况而定。如果同时采用几种滤波方法,一般先用中位值滤波或限幅滤波,然后再用平均值滤波法。数字滤波应用得不恰当,非但达不到滤波效果还会降低控制品质。5.3标度变换5.3.1线性参数的标度变换为了运算、显示或打印输出,必须把数字量转换成操作人员所熟悉的工程量,即转换为带有原工程量纲的数值。这种转换称为工程量转换,也称为标度变换
5.3标度变换设被测参数与A/D转换后的数字量之间呈线性关系,则标度变换公式为:如果被测参数的起点A0所对应的A/D转换值为0,即N0=0,则上述标度变换公式可简化为:非线性标度变换应根据具体情况具体分析,一般采用查表法。例:某加热炉温度测量元件的量程为100~500℃,系统的A/D转换器为8位。若某一时刻温度测量元件送出的信号经A/D转换器转换后的数字量为80H,求此时的温度值(设温度测量元件的量程是线性的)。解:根据式(5-7),=100,=500,=00H,=FFH=255,=80H=128所以,此时的温度为5.4插值算法5.4.1线性插值算法在进行控制系统设计时,总希望输出和输入呈简单的线性关系。在实际工程中,测量信号和被测物理量之间经常存在非线性关系。如温度测量中热电偶的输出和温度的关系即为非线性。在计算机控制系统中,需要通过数据处理程序将非线性关系变化为线性关系。对于可以用解析式明确表达的非线性函数关系,可借助高级语言程序完成线性化处理。或用高级语言完成离线计算,将结果存在数据表中,通过查表的方式完成线性化处理。本节主要讲线性插值原理进行线性化处理。线性插值原理某传感器的输入输出特性如下图:将该非线性关系的曲线按一定要求分成若干段,然后把相邻分段点用直线连接起来。用直线代替相应曲线。由此可求出输入x对于的输出y设x在[xi,xi+1]区间内,则对应的逼近式为:5.4.2二次抛物线插值算法二次抛物线插值法xx2x1x0yCBA二次抛物线插值法的原理是,通过曲线上的三个已知点作一条抛物线,用此抛物线代替该段的曲线。如图所示,有一函数y=f(x),用抛物线来逼近它.5.4.2二次抛物线插值算法二次抛物线插值法xx2x1x0yCBA其一般形式为:
y=k0+k1x+k2x2
式中,k0、k1、k2为待定系数,由曲线y=f(x)的三个点A、B、C联立方程组求得。已知点A(x0,y0)、B(x1,y1)、C(x2,y2)的数值,求出k0、k1、k2,然后根据测量值x用公式求出相应的y值。5.5查表顺序查表法顺序查表法是针对无序排列表格的一种方法。因为无序表格中所有各项的排列均无一定的规律。所以,只能按照顺序从第一项开始逐项寻找,直到找到所要查找的关键字为止。在程序设计时,已知条件应该是表格的长度及表的起始地址,在查找过程中应该不断的进行地址修改和计数,直到找到关键字。若表中无此关键字,需要给出提示。在控制系统中,如果已经建立了表格,其地址是按一定规律排列的,而且要查找的内容与表格有一定关系时,则可通过简单的计算,找出所需的地址,然后从相应的内存单元中取出结果,这种方法就是计算查表法。计算查表法对分查表法当需要查找表中的数据元素有序(假设递增有序),则在查找时可不必逐个比较,而采用跳跃式的方式,即先与“中间”位置的数据元素比较,若相等,则查找成功;若给定值大于“中间位置”的数据元素,则在查找表的后半部分继续进行二分查找,否则在前半部分进行二分查找。5.6电机控制程序设计5.6.1步进电机控制程序设计5.6.2直流电机控制程序设计5.7报警程序设计报警处理程序一般都需要根据系统的要求编写,如有的报警系统要求能够发出声光报警信号、记录报警时间和报警参数或进行自动处理等。虽然不同系统的报警处理程序是不一样的,但报警程序的设计基本思想是相同的。报警程序主要有以下几个步骤组成:
(1)采样被测参数;(2)比较采样值和给定值的上下限;(3)根据比较结果执行相应的处理程序。在控制系统中,报警参数可以是被控参数、被测参数、输入偏差或控制量等,设需要判断的报警参数为XK,XK为当前数据,该参数的上、下限约束值分别为XH和XL,则越限报警有如下几种形式:上限报警若XK>XH,则发出上限报警,否则继续执行原定操作。上、下限报警若XK>XH,则上限报警;否则,判断XK<XL吗?若是,则下限报警;否则,继续执行原定操作。
具体设计报警程序时,为了避免测量值在极限值一点处来回摆动造成频繁报警,一般应在极限值附近设置一个回差带,如图5-17所示。被测值上限值下限值越上限报警复限复限越下限报警ABCDHL图5-17越限报警示意图目的:防止不必要的报警动作。本章小结本章主要讲述了微机控制系统中软件设计的概念和基本设计思想、常用的数字滤波算法、标度变换和插值算法、查表算法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学四年级下班主任工作计划范文
- 教师教学工作计划范文五篇
- 三年级上学期语文教学计划合集5篇
- 心理工作计划
- 2022年高中德育工作计划
- 高中数学教学工作计划模板汇编五篇
- 2022高考满分作文写酒
- 银行主任竞聘演讲稿三篇
- 下学期工作计划
- 2022国庆节创意活动方案流程策划
- 基于STM32的智能温控风扇设计
- 交易所商业计划书
- 2024年华电江苏能源有限公司招聘笔试参考题库含答案解析
- 远程银行行业背景分析
- 如何提高孩子的注意力和专注力
- 2022-2023学年海南省海口市重点中学八年级(上)期末物理试卷(含解析)
- 胆石症教案完
- 护士个人优点和缺点(六篇)
- 教师管理培训系统的设计与开发
- 2021年新高考语文Ⅰ卷真题现代文阅读《石门阵》解析
- 老化测试记录表
评论
0/150
提交评论