收藏 分享(赏)

计算机控制技术-第6章 控制系统的数据处理技术.ppt

上传人:dreamzhangning 文档编号:3351891 上传时间:2018-10-17 格式:PPT 页数:172 大小:5.48MB
下载 相关 举报
计算机控制技术-第6章 控制系统的数据处理技术.ppt_第1页
第1页 / 共172页
计算机控制技术-第6章 控制系统的数据处理技术.ppt_第2页
第2页 / 共172页
计算机控制技术-第6章 控制系统的数据处理技术.ppt_第3页
第3页 / 共172页
计算机控制技术-第6章 控制系统的数据处理技术.ppt_第4页
第4页 / 共172页
计算机控制技术-第6章 控制系统的数据处理技术.ppt_第5页
第5页 / 共172页
点击查看更多>>
资源描述

1、计算机控制技术,第6章 控制系统的数据处理技术,第6章 控制系统的数据处理技术,计算机控制系统中,除了硬件电路外,还有软件,分为系统软件和应用软件。应用软件指根据系统的具体要求,由用户自己设计、开发,面向控制系统本身的程序。在进行计算机控制系统开发过程中,根据控制过程的实际需要设计应用程序是很重要的一个环节。,应用软件的设计主要包括以下几个模块:1) 系统界面模块、2) 采集模块、3) 控制模块、4) 数据处理模块、5) 打印显示模块、6) 数据存储模块、7) 数据传输模块等,主要内容,本章主要介绍程序设计技术以及计算机数据处理过程常用的技术,如数据的预处理技术、软件抗干扰技术及查表与排序技术

2、等。 6.1 程序设计技术6.2 测量数据的预处理技术6.3 查表与数据排序技术6.4 软件抗干扰技术,6.1 程序设计技术,程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。6.1.1 程序设计的步骤与方法6.1.2 工业控制组态软件,6.1.1 程序设计的步骤与方法,1、程序设计步骤 一个完整的程序设计过程由几部分组成: (1)拟定设计任务书设计任务书要条理清楚、内容完善。 (2)建立数学模型并确定算法根据实际情况,描述出各输出变量与输入变量之间的数学关系,即数学模型。数学模型的正确度是系统性能好坏的决定性因素

3、之一。,从整体出发划分为功能模块、安排程序结构并画出程序设计流程图。程序流程图是用图形的方法将程序设计思路及程序流向完整地展现在平面图上,是程序结构直观、一目了然,有利于程序的审核、差错和修改。,(3)程序的总体设计及其流程图,根据系统总体设计的要求,按照流程图所设定的结构、算法和流向,选择合适的指令顺序编写,所编写的程序即为应用系统的源程序。 (5)源程序的编译与调试源程序都需要经过汇编或编译后才能进行调试。,(4)编写源程序,测试一般由两个阶段组成:第一阶段由程序员根据功能要求进行测试,并写出测试报告;第二阶段由专业程序测试人员完成,根据程序员的软件使用说明和功能进行测试,并出具测试结果和

4、建议,(6)系统软件的整体运行与测试,程序说明文件是对程序工作进行的技术总结,有利于程序的后续修改、开发和经验交流,而且是正确使用、扩展和维护的必备文件。一般应包括以下几个方面的内容: (1) 程序设计任务书,包括功能要求和技术指标; (2)程序流程图,资源分配、参数定义、带注释的源程序清单等; (3)数学模型和应用的算法; (4)实际功能及技术指标测试结果说明书; (5)软件使用及维护说明书。,(7)总结归纳进一步编写程序说明文件,程序设计时一般遵循模块化与结构化的程序设计思想。 (1)模块化程序设计 概念:把一个较长的复杂的程序分成若干个功能模块或子程序,每个功能模块执行单一的功能,每个模

5、块单独设计、编程、调试,最终组合在一起形成系统程序。优点:单个模块的程序要比一个完整的程序更容易编写、查错和调试,并能为其他程序所用。,2、程序设计方法,缺点:在把模块组合成一个大程序时,要对各模块进行连接,以完成模块之间的信息传送;使用模块程序设计占用的内存容量较多。两种思路:自底而上 自顶向下,首先对最底层进行编程、测试。这些模块工作正常后,再用它们开发较高层次的模块。自底向上程序设计的缺点是高层模块设计中的根本错误也许很晚才会发现。, 自底向上,自顶向下程序设计是在程序设计时,先从系统一级的管理程序(或者主程序)开始设计,从属的程序或者子程序用一些程序标志来代替,如编写一些空函数等。当系

6、统一级程序编好后,再将各标志扩展成从属程序或子程序,最后完成整个系统的设计。, 自顶向下,结构化程序设计的概念最早由Dijkstra E W提出。1965年他在一次会议上指出:“可以从高级语言中取消GOTO 语句”,“程序的质量与程序中所包含的GOTO语句的数量成反比”。1966年的Bohm C 和Jacopini G证明了只用三种基本的结构就能实现任何单入口单出口的程序。这三种基本的控制结构是“顺序”、“选择”、“循环”。,(2)结构化程序设计方法,结构化程序设计是一种程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。,特点: 程序设计方法简单,设计出来的程序可读性强,

7、容易理解,便于维护,是面向对象程序设计的基础。 结构化程序设计可以表示成如下的公式: 数据操作流程控制结构化程序设计方法,在工业过程控制系统中,有不同层次的程序设计语言, 计算机自己的母语: 机器语言 例如: 0000010000000001. 是Intel8086能理解的一条指令. 把机器语言用助忆符表示: 汇编语言 上例即: ADD AL,1. 需要汇编器处理后机器才懂. 适合人用的语言: 高级语言 如: x = y + 1. 需要编译器或解释器翻译后机器才懂.,6.1.2 工业控制组态软件,最常用的软件设计方法有汇编语言、C语言、Delphi语言及工业控制组态软件。 汇编语言编程灵活,实

8、时性好,便于实现控制; C语言是一种功能很强的语言,特别是Visual C是一种面向对象的语言,用它编写程序非常方便,而且它还能很方便地进行接口; Delphi语言具有编译、执行速度快的特点;,工业控制组态软件是专门为工业过程控制开发的软件,工业控制组态软件采用模块化的设计方法,给程序设计者带来极大的方便。 通常: 在智能化仪器或小型控制系统中多使用汇编语言; 在使用工业计算机的大型控制系统中采用Visual C和Delphi语言开发; 在某些专用大型工业控制系统中,常常采用控制组态软件。,“ 组态” 的概念最早来自英文, 其含义“Configuration”是使用软件工具对计算机及软件的各种

9、资源进行配置 (包括进行对象的定义、制作和编辑,并设定其状态特征属性参数),达到使计算机或软件按照预先设置,自动执行特定任务,满足使用者要求的目的。,常见组态软件 国外:Intouch,Protool,WinCC 国内:北京昆仑通态自动化软件科技有限公司的MCGS北京三维力控科技有限公司的力控北京亚控科技发展有限公司的组态王台湾研华的GENIE等。,(1)嵌入式系统组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统,以及应用软件系统。 (2)常见嵌入式计算机:单板计算机(SBC)、PC104计算机和饼干机(3.5英寸工业单板计算机 )。运行于Windows CE ,DeltaOS (3)嵌入式

10、计算机优点:1)功耗低、可靠性高。 2)功能强大,具有很高的性能价格比。3)实时性强,支持多任务。4)占用空间小,效率高。,1嵌入式组态软件,嵌入式PC/104工业计算机主板,处理器 : AMD Geode GX1,工作频率为00/333MHz,默认值为300MHz。 芯片组 : AMD Geode CS5530A。 系统内存: 在板32M/64M/128MBytes SDRAM,默认为64MBytes。 BIOS : AWARD SYSTEM BIOS,即插即用,Flash写保护控制。 显示接口: 支持CRT18bit TFT真彩LCD屏4M共享内存。 VGA分辨率最大支持102476824

11、bpp128010248bpp; LCD TFT最大支持102476818bpp; LCD 黑白屏最大支持102476818bpp IDE接口 : 支持标准硬盘和CD-ROM,可接DOM(DISK ON MODULE),CF卡。 Super I/O:W83977F-A,内置了RTC,两个串口。 DOC接口 : DOC2000 存储容量为8MBytes1GBytes。,该板主要特性:,USB接口 : 2个USB1.1,BIOS支持USB启动。 多功能接口:包含PS2键盘 , 鼠标, 蜂鸣器,RESET复位接口 串口特点: COM1支持RS232,COM2支持RS232/RS485总线支持: PC

12、/104接口,420mA总线驱动 指示灯 : 电源指示灯、硬盘指示灯。 电源要求: 8PIN电源插头,333MHz工作频率下,+5V0.99A,支持单一的+5V供电。低功耗 : 3.5W(典型值) 电池 : 板上自带或外接后备电池(3.0V-3.6V) ,实时时钟 尺寸 : 符合PC/104 标准,90mm96mm。 PCB板层数: 6层,抗电磁干扰能力强。,工作环境:温度: 2560。 相对湿度: 相对湿度5%95%,非凝结。 贮存温度: -55 +85 防EMI设计: 显示接口、串口、键盘/鼠标接口、USB口等均采用防EMI设计。 Watchdog: 看门狗功能集成在PLD器件之中,128

13、级,0254秒,产生硬件RESET信号。 操作系统: 系统支持MS-DOS, Linux, Win98,Wince, Win2000,通用版组态软件主要应用于实时性要求不高的监测系统中,它的主要作用是用来做监测和数据后处理,比如动画显示、报表等,运行于Microsoft Windows 95/98/Me/NT/2000/XP等操作系统。通用版组态软件执行速度相对来说慢一些,时间通常都是在秒级。,2、通用版组态软件,(1)如何与采集、控制设备间进行交换数据; (2) 来自设备的数据与计算机图形画面上的各个元素关联起来; (3) 处理数据报警和系统报警; (4) 存储历史数据并支持历史数据查询;

14、(5) 各类报表的生成和打印输出; (6) 为使用者提供灵活多变的组态工具, 适应不同领域的需求; (7) 最终生成的应用系统运行稳定可靠; (8) 具有第三方程序的接口, 方便数据共享。,3、组态软件主要解决的问题:,1)强大的画面显示组态功能。 运行于windows 2)良好的开放性。能与多种通信协议互联,支持多种硬件设备,向下能与底层数据设备通信,向上能与管理层通信,实现上位机和下位机的双向通信。 3)丰富的功能模块。 各种报表、曲线、报警等 4)强大的数据库。 5)可编程的命令语言。 支持C、VB等脚本语言 6)周密的系统安全防范。 7)仿真功能。,4、组态软件的功能,甲班 车速 甲板

15、日产 甲班月产 甲板故障统计 350部分,范例,6.2 测量数据预处理技术,在计算机控制系统中,数据采集是最基本的一种模式。一般是通过传感器、变送器把生产过程的各种物理参数转换成电信号,然后经A/D通道或DI通道,把数字量送入计算机中。计算机在对这些数字量进行显示和控制之前,还必须根据需要进行相应的数据处理。,由于控制系统所处的现场环境不同,采集的数据种类与数值范围不同,精度要求也不一样,各种数据的输入方法及表示方法也各不相同。因此,为了满足不同系统的需要,设计出了许多有效的数据处理技术方法,如预处理,数字滤波,标度变换,查表和越限报警等。 对测量数据的预处理是计算机控制系统数据处理的基础,这

16、包括数字调零技术、系统校准技术等。,零点偏移是造成系统误差的主要原因之一,因此零点的自动调整在实际应用中最多,常把这种用软件程序进行零点调整的方法称为数字调零。,数字调零电路,6.2.0 数字调零,数字调零电路如图所示。在测量输入通道中,CPU分时巡回采集1路校准电路与n路传感变送器送来的电压信号。首先是第0 路的校准信号即接地信号,理论上电压为零的信号,经放大电路、A/D转换电路进入CPU的数值应当为零,而实际上由于零点偏移产生了一个不等于零的数值,这个值就是零点偏移值N0;然后依次采集1、2、 n路,每次采集到的数字量N1、N2、 Nn值就是实际值与零点偏移值N0之和。计算机要进行的数字调

17、零就是做一次减法运算,使(Ni- N0)的差值成为本次测量的实际值。很显然,采用这种方法,可去掉放大电路、A/D转换电路本身的偏移及随时间与温度而发生的各种漂移的影响,从而大大降低对这些电路器件的偏移值的要求,降低硬件成本。,系统误差是指在相同条件下,经过多次测量,误差的数值(包括大小、符号)保持恒定,或按某种已知规律变化的误差。这种误差的特点是,在一定的测量条件下,其变化规律是可以掌握的,产生误差的原因一般也是知道的。因此,原则上讲,系统误差是可以通过适当的技术途径来确定并加以校正的。 实际中一般通过两种方法实现:全自动校准和人工自动校准,6.2.1 系统误差的自动校准,1)原理:全自动校准

18、的特点是由系统自动完成,不需人的介入,可以实现零点和量程的自动校准。,1. 全自动校准,全自动校准结构,系统由多路转换开关(可以用CD4051实现)、输入及放大电路、A/D转换电路、计算机组成。可以在刚通电或每隔一定时间,自动进行一次校准,找到A/D输出N与输入测量电压uy之间的关系,以后再求测量电压时则按照该修正后的公式计算 2)校准步骤: (1)微机控制多路开关使K与3接通,则输入电压u=0,测出此时的A/D值N0。 (2)微机控制多路开关使K与1接通,则输入电压u=uR,测出此时的A/D值NR。,设测量电压与u与N之间为线性关系,表达式为: ,则上述测量结果满足:校正后的公式:如果只校准

19、零点时,实际的测量值则为,2、人工自动校准,全自动校准只适合于基准参数是电信号的场合,且不能校正由传感器引入的误差,为此,可采用人工校准的方法。 人工自动校准不是自动定时校准,而是由人工在需要时接入标准的参数进行校准测量,并将测量的参数存储起来以备以后使用。人工校准一般只测一个标准输入信号yR,零信号的补偿由数字调零来完成。,输出与被测量之间呈现非线性关系,需要进行线性化处理和非线性补偿。线性化处理对系统的测量精度起决定性的作用,也直接关系到系统的控制精度。,6.2.2 线性化处理,Pt100铂热电阻适用于测量-200850全部或部分范围测温,主要特性是测温精度高,稳定性好。Pt100阻值与温

20、度的关系分为两段:-2000和0800,其对应关系为: -2000范围内0800范围内,1铂热电阻的阻值与温度的关系,查表法:根据公式,离线计算出所测量温度范围内温度与铂热电阻的对应关系表即分度表,然后将分度表输入计算机中,利用查表的方法实现; 分段线性:画出对应的曲线,然后分段进行线性化,即用多段折线代替曲线。线性化过程见插值算法。,在过程控制中,由于由传感器等检测元件测得的电信号与被检测的物理参数之间往往存在非线性关系,例如,温度测量中,热电偶输出的热电势信号与温度之间的关系是非线性的。为了得到均匀的显示刻度,希望系统的输出与输入有线性关系,往往采用非线性补偿方法,将非线性关系转化为线性关

21、系。,2. 热电偶热电势与温度的关系,补偿的目的是使输出更加接近理论值。造成非线性关系输出的原因很多,除了传感器自身的因素外,还有很多外界因素(例如漂移)。这些外界因素很复杂,不能直接计算得到。所以要进行非线性补偿,排除其他影响,才能得到合理的输出。硬件补偿:补偿精度不高 软件补偿:方法灵活,补偿精度高,铜康铜热电偶当误差规定小于0.2时,在0400范围内仅取如下4项计算温度:,铁康铜热电偶 镍铬镍铝热电偶常见的关系可以用下式表示:,编程时利用下式计算,省去了四次方、三次方、平方等运算,简化计算过程。也可以如热电阻处理所述,利用查表或线性化处理的方法。,6.2.3 标度变换,在计算机控制系统中

22、,生产中的各个参数都有着不同的数值和量纲,所有这些参数都经过变送器转换成A/D转换器所能接收的05V统一电压信号,又由AD转换成00FFH(8位)的数字量。为进一步显示、记录、打印以及报警等,必须把这些数字量转换成不同的单位,以便操作人员对生产过程进行监视和管理。这就是所谓的标度变换。概念:将A/D转换后的数字量转换成与实际被测量相同量纲的过程称为标度变换,也称为工程量转换。,如热电偶测温,其标度变换说明如图所示,要求显示被测温度值。其电压输出与温度之间的关系表示,。,所谓线性参数,指一次仪表测量值与A/D转换结果具有线性关系,或者说一次仪表是线性刻度的。 标度变换公式为 :,式中:A0 一次

23、测量仪表的下限; Am 一次测量仪表的上限;Ax 实际测量值(工程量); N0 仪表下限对应的数字量;Nm 仪表上限对应的数字量; Nx 测量值所对应的数字量。,1. 线性参数标度变换,为使程序简单,一般把被测参数的起点A0(输入信号为0)所对应的A/D输出值为0,即N0=0,这样上式可化作:,示例:,某热处理炉温度测量仪表的量程为200 - 1000,在某一时刻计算机采样并经数字滤波后的数字量为0CDH,设仪表量程为线性的,求出此时温度值。,A0=200 ,Am=1000 , Nx=0CDH=(205)D,Nm=0FFH=(255)D, 可得此时温度为,有时,工程量的实际值还需经过一次变换。

24、如电压测量值是电压互感器的二次测的电压,则其一次侧的电压还有一个互感器的变比问题,这时上式应再乘上一个比例系数,即,(1) 公式变换法(2) 其他标度变换法,2. 非线性参数标度变换,多项式变换,还有些传感器的输出信号与被测参数之间虽为非线性关系, 但它们的函数关系无法用一个解析式来表示,或者解析式过于复杂而难于直接计算。这时可以采用一种既计算简便又能满足实际工程要求的近似表达式插值多项式来进行标度变换。,插值多项式是用一个n次多项式来代替某种非线性函数关系的方法。其插值原理是:被测参数y与传感器的输出值x具有的函数关系为y= f( x ),只知道在n+1个相异点处的函数值为: f( x0 )

25、 = y0,f( x1 ) = y1,f( xn ) = yn。现构造一个n次多项式Pn( x ) = anxn+ an-1xn-1+ + a1x + a0 去逼近函数y = f( x ),把y = f( x )中这n+1个相异点处的值作为插值代入n次多项式Pn( x ),便可以获得n+1个一次方程组:,式中x0,x1,xn是已知的传感器的输出值,y0,y1,yn是被测参数,可以求出n+1个待定系数a0、a1、,an,从而构造成功一个可代替这种函数关系的可插值多项式Pn( x )。,下面用热敏电阻测量温度的例子来说明这一过程。热敏电阻具有灵敏度高、价格低廉等特点,但是热敏电阻的阻值与温度之间的

26、关系是非线性的,而且只能以表的方式表示。现构造一个三阶多项式P3( R )来逼近这种函数关系。,表 热敏电阻的温度-电阻特性,取三阶多项式为t = P3( R ) = a3 R 3+ a2 R 2+ a1R + a0 并取t=10,17,27,39这4点为插值点,便可以得到以下方程组:,解上述方程组,得a3 = 0.2346989 a2 = 6.120273a1 = 59.28043 a0 = 212.7118 因此,所求的逼近多项式为 t = 0.2346989 R 3 + 6.120273 R 259.28043 R + 212.7118,这就是用来标度变换的插值多项式,将采样测得的电阻值

27、R代入上式,即可获得被测温度t。,显然,插值点的选择对于逼近的精度有很大的影响。通常在函数y = f( x )的曲线上曲率大的地方应适当加密插值点。一般来说,增加插值点和多项式的次数能提高逼近精度。但同时会增加计算时间,而且在某些情况下反而可能会造成误差的摆动;另一方面,对于那些带拐点的函数,如果用一个多项式去逼近,将会产生较大的误差。,为了提高逼近精度,且不占用过多的机时,较好的方法是采用分段插值法。分段插值法是将被逼近的函数根据其变化情况分成几段,然后将每一段区间分别用直线或抛物线去逼近。分段插值的分段点的选取可按实际曲线的情况灵活决定,既可以采用等距分段法,又可采用非等距分段法。,6.2

28、.4 插值算法,原因:(1)非线性,运算复杂、误差大; (2)有时没有明确数学表达式; (3)实际系统允许一定范围的误差。1、 线性插值算法 用直线AB代替弧线AB 插值点x0与x1之间的间距越小,则在这一区间内f(x)与g(x)之间的误差越小。,(1)基本思想:将被逼近的函数(或测量结果)根据其变化情况分成几段,为了提高精度及缩短运算时间,各段可根据精度要求采用不同的逼近公式。 最常用的是线性插值和抛物线插值。,2、分段插值算法,1)用实验法测量出传感器的输出变化曲线yg(x) 2)将上述曲线进行分段,选取各插值基点。曲线分段的方法主要有两种,等距分段法和非等距分段法。等距分段法非等距分段法

29、 3)根据各插值基点的 (xi,yi)值,使用相应的插值公式,求出实际曲线g(x)每一段的近似表达式fn(x)。 4)根据fn(x)编写出应用程序。,(2)分段插值算法程序设计步骤,如上例热敏电阻温度t与阻值R的插值多项式,其计算量较大,程序也较复杂。为使计算简单,提高实时性,可采用分段线性插值公式或称分段线性化的方法,即用多段折线代替曲线进行计算。,图 热敏电阻特性及分段线性化,根据表中的数据制成图7-5所示的热敏电阻特性及分段线性化,图中曲线为热敏电阻的负温度-电阻特性,折线L0、L1、L2代替或逼近曲线。当获取某个采样值R后,先判断R的大小处于哪一折线段内,然后就可按相应段的线性化公式计

30、算出标度变换值。其计算公式是:,k0(R - R0) + t3 R0RR1t = k1(R - R1) + t2 R1RR2k2(R R2) + t1 R2RR3 式中k0、k1、k2分别为线段L0、L1、L2的斜率。,同样,分段数越多,线性化精度越高,软件开销也相应增加。分段数应视具体情况和要求而定。当分段数多到线段缩成一个点时,实际上就是另一种方法查表法。,6.2.5 越限报警处理,在计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有上、下限检查及报警系统,以便提醒操作人员注意或采取相应的措施。其方法就是把计算机采集的数据经计算机进行数据处理、数字滤波、标度变换之后,与该

31、参数上、下限给定值进行比较,如果高于(或低于)上限(或下限),则进行报警,否则就作为采样的正常值,以便进行显示和控制。,如果需要判断的报警参数是xn,该参数的上下限约束值分别为xmax和xmin,则上下限报警的物理意义如下:上限报警:若xn xmax ,则上限报警,否则执行原定操作。下限报警:若xn xmin ,则下限报警,否则执行原定操作。,上下限报警:若xn xmax ,则上限报警,否则继续判断xn xmin是否成立。若成立,则下限报警;否则继续执行原定操作。根据上述规定,编写程序可以实现对被控参数、偏差、控制量等进行上下限报警。,报警系统一般为声光报警信号,在某些系统中,需要增加功能,还

32、带有打印输出,如记下报警的参数、时间等,并能自动进行处理,如自动切换到手动,切断阀门或自动拨出电话号码等。,一种是软件报警。这种方法的基本作法是把被测参数如温度、压力、流量、速度、成分等参数,经传感器、变送器、AD转换送入计算机后,再与规定的上、下限值进行比较,根据比较的结果进行报警或处理,整个过程都由软件实现。另一种是直接报警。基本作法是被测参数与给定值的比较在传感器中进行,如果被测参数超过给定值,就会通过硬件向CPU提出中断请求,CPU响应中断后,会产生报警信号。,报警程序的设计方法:,不论是软件报警,还是直接报警,都需要经过以下三个步骤: 对被测参数进行采样。 将采样值与给定值的上、下限

33、值进行比较。 根据比较结果执行相应的报警处理程序。下面分别举例介绍这两种报警程序的设计。,软件报警程序设计,假设被测参数的采样值为Ux,设定该参数的上、下限值分别为Umax、Umin。要求若被测参数Ux Umax时,则上限报警;若被测参数Ux Umin时,则下限报警。为此设计的报警电路如图所示。,当参数正常时,绿灯亮。若超过上限或低于下限值,将发出声光报警。由于参数位都接有反相器,所以当某位为“1”时,该位的灯亮。本程序的设计思想是设置一个报警模型标志单元ALARM,然后把参数的采样值分别与上、下限值进行比较。若某一位需要报警,则将相应位置“1”,否则,清“0”。待参数判断完后,看报警模型标志

34、单元ALARM的内容是否为00H。如果为00H,说明参数正常,使绿灯发光;如果不为00H,则说明参数越限,输出报警模型。,软件报警程序流程图,直接报警程序,这种报警方法的前提条件是被测参数与给定值的比较是在传感器中进行的。当检测值超过上限或低于下限时,结点开关闭合,从而产生报警信号。这类报警系统的电路如图所示。,在图中,SL1和SL2分别为被测参数的上、下限报警结点。当被测参数处于正常范围时,P1.0和P1.1均为高电平,当参数超过上限或低于下限时,其中的一个结点就会闭合,这样就会由高电平变为低电平,向CPU发出中断请求。CPU响应中断后,读入报警状态P1.0和P1.1,然后从P1.4和P1.

35、5输出报警信号,完成越限报警。,注意事项:,具体设计报警程序时,为了避免测量值在极限值一点处来回摆动造成频繁报警,一般应在极限值附近设置一个回差带,如图所示:,图中XH、XL是上、下限约束值,2e为回差带宽。当被测值超越XHe时,才算越过上限报警值并设置相应的越上限标志(上限标志位置1),同时输出越上限的声、光报警;当被测值下降到XHe 以下时,则复位上限,这时应撤消越上限标志(上限标志位清0)及相应的声光报警。同理,当被测值低于XLe点时,才算越过下限并设置相应的越下限标志(下限标志位置1),同时输出越下眼的声、光报警;当被测值上升到XLe以上时,则复位下限,这时应撤消越下限标志(下限标志位

36、清0)及相应的声光报警。如此,回差值e免了测量值在极限值XH或XL一e点处来回摆动造成频报警,e值的大小可根据现场具体的被测参数设定。,6.3 查表及数据排序技术,原因:计算复杂、难于计算 概念:把事先计算或测得的数据按一定顺序编制成表格,查表程序的任务就是根据被测参数的数值或者中间结果,查出最终所需要的结果,一般将要查询的数据或字符称为关键字 表格有两种排列方法: (1)无序表格,即表中数据任意排列; (2)有序表格,即表中数据按一定顺序排列,如按升序或降序排列等,一、数据排序技术,目的:把无序的数据表按大小顺序排列,变成有序的数据表。 在排序过程中,若所有的数据都是放在内存中处理,排序时不

37、涉及数据的内、外存交换,则称之为内部排序(简称内排序);反之,若排序过程中要进行数据的内、外存交换,则称之为外部排序。常用的排序方法:直接插入排序、希尔排序、选择排序和快速排序等。,1、直接插入排序,图6.5 直接插入排序示例,每次把第i个数据与前i-1个数据逐个比较,一旦找到合适位置就插入。,图6.6 希尔排序示例,2希尔排序,3选择排序,图6.7 选择排序示例,4快速排序,图6.8快速排序过程示例,冒泡排序与快速排序(互换排序),定义:所谓互换排序是指借助数据元素之间的互换进行排序的一种方法。 冒泡排序(Bubble Sort)是一种最简单的互换排序,它是通过相邻两项目的比较,按一定次序互

38、换,使表格逐步达到有序化。 快速排序(Quick Sort)是对冒泡排序的一种改进。,1. 冒泡排序,基本思想: 首先对具有n个项目的无序表进行扫描,比较相邻两个元素的大小,若发现逆序则进行互换,由此可以使n个项目中的最大者沉到表的最后; 然后对剩下的未排序好的项目再进行扫描,使它们之中的最大者又沉到表的最后; 以此类推,直到将表全部排序好为止。,大数在前,小数在后!,将第一个记录的关键字与第二个记录的关键字进行比较,若为逆序r1.keyr2.key,则交换;然后比较第二个记录与第三个记录;依次类推,直至第n-1个记录和第n个记录比较为止第一趟冒泡排序,结果关键字最大的记录被安置在最后一个记录

39、上.,对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被安置在第n-1个记录位置 重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止,冒泡排序和气泡在水中不断往上冒的情况有些类似。气泡大的(大的数据)在下面,气泡小的(小的数据)在上面。 冒泡排序的基本原理是对存放原始数据的数组,按从前往后的方向进行多次扫描,每次扫描称为一趟。当发现相邻两个数据的次序与排序要求的大小次序不符合时,即将这两个数据进行互换。这样,较小的数据就会逐个向前移动,好象气泡向上浮起一样。,用冒泡排序的方法将下面一组无序数组排成从小到大, 49,38,65,97,76,13,27,49 ,分析: 首

40、先为了方便分析,我们把所给的数据先用一个表格列出来,如下:,例:,对比原数据经过第一趟排序,实现了什么目的?,第一趟排序,一共进行了多少次比较?,4938,交换位置,原数据和序号,第一趟排序的步骤:,经过第一趟排序,把最大的数沉到最底了!,4965, 保持不变,6597, 保持不变,9776, 交换位置,9713, 交换位置,9727, 交换位置,9749, 交换位置,经过第二趟排序,实现了什么目的?,经过第二趟排序,把第二大的数沉到倒数第二个位置了!,3849,保持不变,第一趟排序后的数据和序号,第二趟排序的步骤:,4965, 保持不变,6576, 保持不变,7613, 交换位置,7627,

41、 交换位置,7649, 交换位置,7697, 保持不变,观察原数据与第一、二趟排序后的数据,快速排序,在冒泡排序中,每经过一次数据元素的互换只能移掉一个逆序。 如果在排序过程中,每经过一次比较,使元素移动不止一个位置,这就有可能同时移掉多个逆序,达到加速排序的目的。 基本思想:通过一趟分割将线性表分成两部分,其中前一部分的所有元素值均不大于后一部分中的每一个元素值;然后对每一部分再进行分割,直到整个线性表有序为止。,具体做法,从线性表中选取一个元素,设为T。然后将线性表后面小于T的元素移到前面,而前面大于T的元素移动到后面,结果就将线性表分成了两部分(两个子表),而T插入到其分界线的位置处。该

42、过程被称为线性表的分割。对分割后的各子表再按上述原则进行分割,直到所有子表为空为止,则此时的线性表就变成了有序表。,首先,在表的第一个、中间一个与最后一个元素中选取中项,设为L(k),并将L(k)赋给T,再将表中的第一个元素与L(k)交换。 然后设置两个指针i和j分别指向表的起始与最后的位置。反复作以下两步: (1)将j逐渐减小,并逐次比较L(j)与T,直到发现一个L(j)T为止,将L(j)移到L(i)的位置上。,(2)将i逐渐增大,并逐次比较L(i)与T,直到发现一个L(i)T为止,将L(i)移到L(j)的位置上。 上述两个操作交替进行,直到指针i与j指向同一个位置(即ij)为止。,快速排序

43、的过程,完成一趟排序: ( 27 38 13) 49 (76 97 65 50),分别进行快速排序: ( 13) 27 (38) 49 (50 65) 76 (97),快速排序结束: 13 27 38 49 50 65 76 97,49,27,49,65,13,49,49,97,二、查表技术,表的排列方式分为无序表格和有序表格 查表的方法主要有: 顺序查表法; 计算查表法; 对分查表法等,1、顺序查表法,顺序查表法又称为线形查表法,是针对无序表格查询的一种方法 特点:程序设计简单,查询效率很低。 顺序查表速度较慢。设表中有n个数据,平均查找次数M约为n(n+1)/2。 只适用于表中数据较少的情

44、况。,2、计算查表法,计算查表法又称直接查表法 D=KN+F 这种有序表格要求各元素在表中排列的格式及所占用的空间必须一致,而且表中各元素严格按顺序排列的。 它适用于某些数值计算程序,功能键地址转移程序以及数码转换程序等,3、对分查表法,表格为有序表格 对分查表法的具体作法: 先选择表中间的一个数据d,与要搜索的关键字k进行比较,若相等,则查到。若不等,则继续查找。 对于从小到大的顺序来说,如果kd,则取表的后半中间的数据d1,如果kd1,那就再取表的前半部中间的数据,再与k进行比较,这样重复执行,直到找到所需要的记录。 如果没有,则查找失败。,11 12 23 34 45 55 66 78,

45、第二次: 11 12 23 34 45 55 66 78L=5 D=6 H=8 第二次: 11 12 23 34 45 55 66 78L=5 D=5 H=5,第一次: 11 12 23 34 45 55 66 78,L=1,D=4,H=8,6.4 软件抗干扰技术,概念:软件抗干扰技术是当系统受干扰后使系统恢复正常运行或输入信号受干扰后去伪求真的一种辅助方法。 研究内容: 采取软件的方法抑制叠加在模拟输入信号上噪声的影响,如数字滤波技术; 由于干扰而使运行程序发生混乱,导致程序乱飞或陷入死循环时,采取使程序纳入正规的措施,如软件冗余、软件陷阱技术等。 目的:保证系统长期稳定可靠运行。,所谓数字

46、滤波,就是通过一定的计算程序或判断程序减少干扰在有用信号中的比重。所谓数字滤波,就是在计算机中用某种计算方法对输入的信号进行数学处理,以便减少干扰在有用信号中的比重,提高信号的真实性。,6.4.1 数字滤波技术,这种滤波方法不需要增加硬件设备,只需根据预定的滤波算法编制相应的程序即可达到信号滤波的目的。 数字滤波可以对各种干扰信号,甚至极低频率的信号进行滤波。 数字滤波由于稳定性高,滤波参数修改也方便,一种滤波子程序可以被各控制回路调用,因此得到广泛的应用。,与模拟滤波器相比,具有如下优点: 由于数字滤波采用程序实现,所以无需增加任何硬设备,可以实现多个通道共享一个数字滤波程序,从而降低了成本

47、。 由于数字滤波器不需增加硬设备,所以系统可靠性高、稳定性好,各回路间不存在阻抗匹配问题。 可以对频率很低(如0.01Hz)的信号实现滤波,克服了模拟滤波器的缺陷。 可根据需要选择不同的滤波方法,或改变滤波器的参数。较改变模拟滤波器的硬件电路或元件参数灵活、方便。,(1) 算术平均值滤波算术平均值法滤波的实质即把一个采样周期内对信号的n次采样值进行算术平均, 得到接近于真值的采样值,作为本次的输出 , 即,1、平均值滤波,n 值决定了信号平滑度和灵敏度。随着n的增大,平滑度提高,灵敏度降低。 应视具体情况选取n,以便得到满意的滤波效果。为方便求平均值,n值一般取4、8、16之类的2的整数幂,以

48、使用移位来代替除法。 主要用于对压力、流量等周期脉动的参数采样值进行平滑加工,通常流量信号取12项,压力信号取6项,温度、成分等缓慢变化的信号取2项甚至不平均。,算术平均值滤波主要用于对压力、流量等周期脉动的采样值进行平滑加工,但对偶然出现的脉冲性干扰的平滑作用尚不理想,因而它不适用于脉冲性干扰比较严重的场合。另外该滤波方法比较浪费RAM。,方法一:将采样值依次保存在内存空间的单元中,将 n 个数据相加得到累加结果,累加结果除以 n ,即可得到算术平均值。 方法二:将第一次采样值存入内存空间,第二次采样值与第一次采样值相加保存累加结果,依此类推直至将 n 个结果累加完毕,再将累加结果除以 n

49、得到平均值,该方法优点是占用内存空间相对第一种方法要小。,程序实现方法,算术平均值法对每次采样值给出相同的加权系数,即 , ,但实际上有些场合各采样值对结果的贡献不同,有时为了提高滤波效果,提高系统对当前所受干扰的灵敏度,将各采样值取不同的比例,然后再相加,此方法称为加权平均值滤波法。 加权平均值滤波法公式为,(2)加权算术平均值滤波,其中:k0、k1、kn-1为加权系数,体现了各次采样值在平均值中所占的比例,它们都为大于0的常数项,且满足,一般采样次数愈靠后,取的比例愈大,这样可增加新的采样值在平均值中的比例。这种滤波方法可以根据需要突出信号的某一部分,抑制信号的另一部分。适用于纯滞后较大的被控对象。,滑动平均滤波法把n个测量数据看成一个队列,队列的长度固定为n,每进行一次新的采样,把测量结果放入队尾,而去掉原来队首的一个数据,这样在队列中始终有n个“最新”的数据。然后把队列中的n个数据进行算术平均运算,就可获得新的滤波结果。 关键:每采样一次,移动一次数据块,然后求出新一组数据之和,再求平均值。 注意:在滑动平均值滤波中开始时要先把数据采样 n 次,再实现滑动滤波。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报