第7章-计算机控制系统的软件设计-new_第1页
第7章-计算机控制系统的软件设计-new_第2页
第7章-计算机控制系统的软件设计-new_第3页
第7章-计算机控制系统的软件设计-new_第4页
第7章-计算机控制系统的软件设计-new_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机控制系统主讲教师:李振华山东大学控制科学与工程学院Email:;Tel:883958212022/10/112第7章 计算机控制系统的软件设计本章要点:1.计算机控制系统的软件组成和功能2.数字滤波程序3.标度变换算法4.本章小结5.习题2022/10/1137.1 计算机控制系统的软件组成和功能知识点:7.1.1 计算机控制系统软件的组成7.1.2计算机控制系统软件的功能和性能指标2022/10/114计算机软件发展的三个时期 早期时代(60年代中期之前)程序设计阶段: 硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。 第二代(60年代中期-70年代中期)程序系统阶段

2、: 出现“软件作坊”、产品软件;“个体化”开发方法。 第三代(70年代中期之后)软件工程阶段: 软件开发成为一门新兴的工程学科软件工程。 编程的技巧、诀窍强调工程的基本特征2022/10/115软件危机 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要涉及2个问题: 如何开发软件,怎样满足对软件的日益增长的需求; 如何维护数量不断膨胀的已有软件。2022/10/116软件危机的主要表现对软件开发成本和进度的估计不准确用户不满意软件质量不高、可靠性差软件常常不可维护、错误难以改正。缺乏适当的文档资料软件成本占系统总成本的比例逐年上升软件开发速度跟不上计算机发展速度2022/

3、10/117解决软件危机的途径1. 技术措施 使用更好的软件开发方法和开发工具 2. 组织管理措施 软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。 2022/10/118软件工程 软件工程是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 2022/10/119软件工程的传统途径软件工程的传统途径是“生命周期法”,强调“结构化分析、结构化设计”。 软件工程采用的“生命周期法”,就是从时间角度对软件开发和维护的复杂问题进行分

4、解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后再逐步完成每个阶段的任务。 2022/10/1110生命周期划分的原则 各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。 生命周期的划分 软件生命周期一般分为:软件定义(问题定义、可行性研究、需求分析)、软件开发(总体设计、详细设计、编码和单元测试、综合测试)、软件维护等三个时期。 2022/10/1111“生命周期法”的特点 阶段具有顺序性和依赖性 推迟实现的观点 对于有一定规模的信息系统,编码较早,完成的时间反

5、而会更长,甚至导致不可挽回的失败。系统开发生命周期法的一个主要特点就是逻辑设计与物理设计分开,从而大大提高了系统的正确性、可靠性和可维护性。质量保证的观点 每个阶段都必须完成规定的文档 每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误2022/10/1112生命周期法各阶段的工作小结 阶段关键问题结束标准问题定义问题是什么?关于规模和目标的报告书 可行性研究有可行解吗?系统的高层逻辑模型:数据流图、成本/效益分析 需求分析系统必须做什么?系统的逻辑模型:数据流图、数据字典、算法描述 总体设计如何解决已提出的问题?可能的解法:系统流程图、成本/效益分析;推荐的系统结构:层次图

6、详细设计怎样具体实现这个系统?编码规格说明 编码和单元测试正确的程序模块原程序清单:单元测试方案和结果 综合测试符合要求的软件综合测试方案和结果;完整一致的软件配置 维护持久地满足需要的软件完整准确的维护记录 2022/10/11137.1.1 计算机控制系统软件的组成计算机控制系统软件分为:系统软件:计算机控制系统应用软件开发平台和操作平台;应用软件:按用途划分为监控平台软件、基本控制软件、先进控制软件、局部优化软件、操作优化软件、最优调度软件和企业计划决策软件等;2022/10/1114装置优化层cengcemh层企业计划决策软件最优调度软件工业对象操作优化软件监控平台软件基本控制软件局部

7、优化软件先进控制软件先进控制软件局部优化软件先进控制软件先进控制软件先进控制层现场控制层图7-1 计算机控制系统软件组成框图 2022/10/1115从系统功能的角度划分,最基本的计算机控制系统应用软件由直接程序、规范服务性程序和辅助程序等组成。 直接程序是指与控制过程或采样/控制设备直接有关的程序,这类程序参与系统的实际控制过程,完成与各类I/O模板相关的信号采集、处理和各类控制信号的输出任务,其性能直接影响系统的运行效率和精度,是软件系统设计的核心部分。2022/10/1116 规范服务性程序是指完成系统运行中的一些规范性服务功能的程序,如报表打印输出、报警输出、算法运行、各种画面显示等。

8、 辅助程序包括接口驱动程序、检验程序等,特别是设备自诊断程序,当检测到错误时,启用备用通道并自动切换,这类程序虽然与控制过程没有直接关系,但却能增加系统的可靠性,是应用软件不可缺少的组成部分。2022/10/1117需求规格说明初步设计(架构设计)详细设计(模块设计) 实施(编程)调试图7-2 软件的设计过程 Step1:对系统进行需求分析;Step2:得到系统的规范说明,进入软件设计阶段;Step3: 编程;Step4:调试,修改相应错误,实现所涉及的功能。2022/10/11187.1.2 计算机控制系统软件的功能和性能指标软件的功能:计算机控制系统软件一般由系统组态程序,前台控制程序,后

9、台显示、打印、管理程序以及数据库等组成。2022/10/1119软件具体实现如下功能:1 实时数据采集 6 可靠性功能2 控制运算 7 流程画面制作3 控制输出 8 管理功能4 报警监视 9 通信功能5 画面显示和报表输出 10 OPC 接口2022/10/1120OPC (OLE for Process Control)产生的背景随着计算机技术的发展,计算机在工业控制领域发挥着越来越重要的作用。各种仪表、PLC等工业监控设备都提供了与计算机通信的协议。但是,不同厂家生产的产品其协议互不相同,即使同一厂家的不同设备与计算机之间通信的协议也不同。2022/10/1121在计算机上,不同的语言对驱

10、动程序的接口有不同的要求。这样又产生了新的问题:应用软件需要为不同的设备编写大量的驱动程序,而计算机硬件厂家也要为不同的应用软件编写不同的驱动程序。这种程序可复用程度低,不符合软件工程的发展趋势,OPC技术就是在这种背景下产生的。2022/10/1122OPC:(OLE for Process Control)它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁;满足不同软件之间的高效性、开放性、互操作性。支持两种类型的访问接口:自动化接口(Automation Interface)和自定义接口(Custom Interface),为不同的编程语言环境提供了访问机制。2022/1

11、0/1123OLE:(Object Linking and Embedding,对象连接与嵌入) 不仅是桌面应用程序的集成,而且还定义和实现了一种允许应用程序作为软件对象,彼此进行连接的机制,如Word中插入Excel,用的都是OLE技术。2022/10/1124随着OLE2的发行,OLE包含了许多新的特征:统一数据传输、结构化存储和自动化。成为独立于计算机语言、操作系统,甚至硬件平台的一种规范,是面向对象程序设计概念的进一步推广。OPC建立于OLE规范之上,它为工业控制领域提供了一种标准的数据访问机制。2022/10/1125工业控制领域用到大量的现场设备,在OPC出现以前,软件开发商需要开

12、发大量的驱动程序来连接这些设备。即时硬件供应商在硬件上做小小改动,也要重写应用程序。硬件开发也面临同样问题。2022/10/1126自OPC提出以后,这个问题终于得到解决。OPC规范OPC服务器OPC客户在硬件供应商和软件开发商之间建立了完整的“规则”。 数据交互是透明的。 硬件商只考虑传输协议等事宜;软件商不必了解硬件事宜。2022/10/1127OPC的特点OPC是为了解决应用软件与各种设备驱动程序的通信而产生的一项工业技术规范和标准。它采用客户服务器体系,基于Microsoft的OLECOM技术,具有语言无关性、代码重用性、易于集成性等优点。为硬件厂商和应用软件开发者提供了一套标准的接口

13、。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。2022/10/1128OPC的特点综合起来说,OPC具有以下3个特点。(1) 计算机硬件厂商只需要编写一套驱动程序就可以满足不同用户的需要。硬件供应商只需提供一套符合OPC Server规范的程序组,无需考虑工程人员需求。2022/10/1129(2) 应用程序开发者只需编写一个接口便可以连接不同的设备。软件开发商无需重写大量的设备驱动程序。(3) 工程人员在设备选型上有了更多的选择。对于最终用户而言,可以根据实际情况的不同,选择符合实际的设备。OPC

14、把硬件厂商和软件开发者分离开来,双方工作效率均大大提高。2022/10/1130OPC的适用范围开发OPC的最终目标是在工业控制领域建立一套数据传输规范,现有的OPC规范涉及以下几个领域。1在线数据监测 OPC实现了应用程序和工业控制设备之间高效、灵活的数据读写。2报警和事件处理 OPC提供了OPC服务器发生异常时以及OPC服务器设定事件到来时,向OPC客户发送通知的一种机制。2022/10/11313历史数据访问 OPC实现了对历史数据库的读取、操作和编辑。 4远程数据访问 借助Microsoft的DCOM(Distributed Component Object Model)技术,OPC实

15、现了高性能的远程数据访问能力。OPC实现的功能还包括安全性、批处理和历史报警事件数据访问等。 2022/10/1132软件的性能指标:(1)系统功能是否完善,能否提供足够多的控制算法(包括若干种高级控制算法)。(2)系统内各种功能能否协调运行,如进行实时采样和控制输出的同时,又能显示画面、打印管理报表和进行数据通信。(3)人机接口是否良好,要有丰富的画面和报表形式,有较多的操作指导信息,操作方便灵活。2022/10/1133(4)系统的可扩展性如何,能否不断的满足用户的新要求。 由于控制系统软件功能和指标的特殊性,因此对计算机控制系统软件的设计也提出了较高的要求,设计者不仅应具备一定的自动控制

16、理论基础和工程实践经验,还需要掌握计算机系统软件技术,包括程序设计能力和数据结构、数据库、操作系统等方面的知识。2022/10/11347.2实时多任务系统知识点:7.2.1 实时系统和实时操作系统7.2.2 实时多任务系统2022/10/11357.2.1 实时系统和实时操作系统1实时系统实时计算机系统的定义是:能够在确定的时间内运行其功能并对外部异步事件作出响应的计算机系统。实时控制:飞机的自动驾驶、导弹制导等;实时信息处理:订票系统、情报检索等;2022/10/11367.2.1 实时系统和实时操作系统应注意到,“确定的时间”是对实时系统最根本的要求,实时系统处理的正确性不仅取决于处理结

17、果逻辑上的正确性,更取决于获得该结果所需的时间。例如,一个在大多数情况下能在50s作出响应,但是偶然需要50ms响应时间的系统,它的实时性要劣于一个能在任何情况下以1ms作出响应的系统。2022/10/1137“实时”和“快速”是两个不同的概念。计算机系统处理速度的快慢,主要取决于它的硬件系统,尤其是所采用的处理器的性能。对于一个特定的计算机系统,它的处理速度无论怎样高,如果采用的是普通操作系统,就没有实时性可言。在计算机控制系统中,实时操作系统是实时系统的核心。2022/10/11382实时操作系统 操作系统是计算机运行以及所有资源的管理者,包括任务管理、任务间的信息传递、I/O设备管理,内

18、存管理和文件系统的管理等。从外部来看,操作系统提供了与使用者、程序及硬件的接口。操作系统与计算机I/O硬件设备的接口是设备驱动器,应用程序与操作系统之间的接口是系统调用。 2022/10/1139桌面操作系统:通用计算机系统中运行的操作系统。设计原则:尽量缩短系统的平均响应时间并提高系统的吞吐率。在单位时间内为尽可能多的用户请求提供服务。2022/10/1140注重平均表现性能,不注重个体表现性能。对整个系统来说,注重所有任务的平均 响应时间而不关心单个任务的响应时间;对于某个单个任务来说,注重每次执行的平均响应时间而不关心某次特定执行的响应时间。2022/10/1141计算机控制系统主要使用

19、实时操作系统。又称为“类UNIX”操作系统。2022/10/1142实时操作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏的情况下都要满足其实时性要求。实时操作系统注重个体表现,更准确地讲是个体最坏情况的表现。 2022/10/1143设计原则:采用各种算法和策略,始终保证系统行为的可预测性。可预测性:在系统运行的任何时刻,在任何情况下,实时操作系统的资源分配策略都能为争夺资源的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。2022/10/1144实时操作系统必须具备以下特征:多任务有线程优先级多种中断级别2022/10/1145现代的实时操作系统的内核(Ker

20、nel)通常采用客户/服务者方式,或称为微内核(Microkernel)方式,如图7-3所示。 客户应用网络服务器内存服务器设备服务器显示服务器文件服务器用户态内核态微内核硬件图7-3 微内核操作系统 2022/10/1146 客户/服务者方式概念:为了提高OS的灵活性和可扩充性,将操作系统划分为2部分: 用于提供各种服务的一组服务器(进程)。如:用于提供存储器管理的存储器服务器、提供文件管理的文件服务器等。当一用户进程要求读取文件的一个盘块时,该进程便向文件服务器发出一个请求,当服务器完成用户请求后,便给客户回送一个响应。 内核:用于处理客户和服务器之间的通信,接受客户的请求,再将该请求送到

21、相应的服务器,同时也接收服务器的应答,并将此应答回送给请求客户。2022/10/1147微内核通常只保留任务调度和任务间通信等几项功能,它依据客户-服务者模型概念,把所有其它的操作系统功能都变成一个个用户态的服务器,而用户任务则被当作客户。客户要用到操作系统时,其实就是通过微内核与服务器通信而已,微内核验证消息的有效性,在客户和服务器之间传递它们并核准对硬件的存取,这样,微内核仅仅称为传递消息的工具。 2022/10/1148客户/服务者方式的优点:提高了系统的灵活性、移植性和可扩充性;提高了操作系统的可靠性;可运行于分布式控制系统中。 2022/10/11497.2.2实时多任务系统 处理多

22、任务的理想方法之一是采用紧耦合多处理机系统,让每个处理机各处理一个任务。这种方法真正做到了同一时刻运行多个任务,称为并行处理。分布式控制系统中的各个节点普遍使用单处理机系统。单处理机系统在实时操作系统调度下,可以使若干个任务并发地运行,构成所谓多任务系统,事实上,无论是大型的分布式系统还是小型的嵌入式系统,实时控制系统大多数是以这种方式运行的。并发处理是指在一段时间里调度若干任务“同时”运行,其实具体到任何时刻,系统中只能有一个任务在运行,因为只有一个处理机。并发处理被看做是一种伪并行机制。 2022/10/1150任务及任务切换(1)任务 在操作系统管理下,复杂的应用被分解为若干任务,每个任

23、务执行一项特定的工作。如前所说,任务就是运行中的程序,每个任务所对应的程序通常是一个顺序执行的无限循环,好像是占用着全部CPU的资源,而事实上对于单处理机系统,任何时刻只可能有一个任务在运行,诸多任务是在操作系统的调度下交错地运行。2022/10/1151运行被调度器停止派遣阻塞唤醒阻塞待命图7-4任务的状态转移 运行态,任务正在运行。在任何时刻,只可能有一个任务处在运行态。在待命态排队的任务,可以受调度器的派遣(Dispatch)而进入运行态。2022/10/1152待命态,任务准备好可以运行,但目前还未运行,需要得到调度器的派遣才能进入运行态。处在待命态的任务,以某种规则排队等待进入运行态

24、。处在运行态的任务可以因各种原因(与调度方式和调度策略有关)被调度器重新安排到待命队列去排队。阻塞态,正在运行的任务可能因为操作系统调用等待一个外部事件任务而被阻塞,此时只有被外部事件产生的中断所唤醒(激活),才能从阻塞态进入待命态;任务也可能在请求一个资源时需要等待而被阻塞,例如一个想使用打印机的任务,必须等待其它任务使用完打印机之后才能继续工作。2022/10/1153(2)任务的上下文切换每个任务除了包括程序和相应的数据之外,还有一个用来描述该任务的数据结构,称之为任务控制块(TCB)。 TCB中包括了任务的当前状态、优先级、要等待的事件或资源、任务程序代码的起始地址、初始堆栈指针等信息

25、。2022/10/1154任务状态任务优先级事件或资源计数程序起始地址初始化堆栈指针内容程序计数器内容状态寄存器内容堆栈指针寄存器内容各个通用寄存器内容图7-5任务控制块TCB TCB中的大部分内容构成任务的上下文。任务的上下文指一个运行中的任务被阻塞(或重新运行)时要保存(或恢复)的所有状态信息。2022/10/11552 实时任务调度(1)实时任务的时间特征一个实时任务有两个最基本的特征,重要性和时间特性。与任务调度有关的所有问题,都是围绕着这两个基本特性展开的。实时任务的重要性可以用优先级来确定。实时任务按时间特性可分为三类:周期性任务:是指被以固定的时间间隔发生的事件所激活的任务。20

26、22/10/1156非周期性任务:是指被无规则的或者随机的外部事件所激活的任务。偶发任务:也可以归类为非周期性任务,只是事件发生的频率低。2022/10/1157任务的时间特性包括:限定时间。根据对限定时间的要求,可以把实时任务分为硬实时、强实时、弱实时和非实时等类型。最坏情况下的执行时间。通常定义为,在没有更高优先级任务的干扰的情况下,任务执行时所需的最长时间。执行周期(对周期性任务而言)。2022/10/1158典型的周期性任务的例子是数字反馈系统,例如,三个闭环反馈控制任务以不同的频率控制三个独立的被控对象,它们都是具有严格定义周期的任务。此外,定期的数据采集,时钟定时触发以及显示更新等

27、,都是周期性任务的例子。2022/10/1159多数控制应用还要处理非周期性的和偶发性的外部事件:出错检测、需要人工干预的停/启时间等。实时多任务调度的许多困难来源于非周期性任务调度。2022/10/1160(2)任务调度器实时应用中,根据需要可以把应用分解为强实时、弱实时和非实时不同等级的任务,用某种调度方式安排运行。实时内核中有一个调度器,专门用于调度应用任务。实时操作系统中的任务调度方法有许多种,其中最广泛使用的是基于优先级的抢先调度方式及轮转调度方式。2022/10/1161外部设备所发出的激励信号并无明显的周期,但却都有一个截止时间:开始截止时间、完成截止时间。根据截止时间的要求可分

28、为:强实时任务:系统必须满足对截止时间的要求,否则可能出现难以预测的结果(航空航天、军事、核工业等一些关键领域) ;弱实时任务:有一个截止时间,但并不严格,偶尔错过了任务的截止时间,对系统产生的影响不大(视频点播等)。 2022/10/1162调度器的基本功能是管理待命队列和阻塞队列,并负责控制每个任务在各个状态之间的切换。2022/10/11633 中断处理在实时操作系统管理下的控制系统是事件驱动的系统,许多优先级的任务切换是被中断所引起的,或者说,任务被外部事件(例如I/O事件)驱动而运行。当外部事件未出现时,处理该外部事件的任务处在阻塞态,等待着被唤醒。外部事件引起中断后,进入中断服务程

29、序,在中断服务程序中,通过系统调用与相应的处理任务通信并唤醒该任务。 2022/10/11647.9 数字滤波程序 由于工业生产的现场环境非常恶劣,各种干扰源很多,计算机系统通过输入通道采集到的数据信号,虽经硬件电路的滤波处理,但仍会混有随机干扰噪声。因此,为了提高系统性能,达到准确的测量与控制,一般情况下还需要进行数字滤波。2022/10/1165数字滤波:通过一定的计算程序对采样信号进行平滑加工,提高其有用信号,消除或减少各种干扰和噪音,以保证计算机系统的可靠性。2022/10/1166 生产过程采样数字滤波CPUD/A 数字滤波示意图2022/10/1167 这种滤波方法只是根据预定的滤

30、波算法编制相应的程序,实质上是一种程序滤波。因而可靠性高,稳定性好,修改滤波参数也容易,而且一种滤波子程序可以被多个通道所共用,因而成本很低。另外,数字滤波可以对各种干扰信号,甚至极低频率的信号进行滤波。它的不足之处是需要占用CPU的机时。 总之,数字滤波与硬件滤波器相比优点甚多,因此得到了普遍的应用。2022/10/11687.9.1 程序判断滤波适应场合:采样信号由于随机干扰、误检测、变送器不稳定引起严重失真。方法:根据生产经验确定出两次采样输出信号可能出现的最大偏差 ,若超过此偏差值,则表明是干扰信号,应该去掉;反之,可将此信号作为本次采样值。分类:限幅滤波、限速滤波程序判断滤波算法可用

31、于变化较缓慢的参数:温度、液位等。2022/10/1169限幅滤波 是第n 次采样值; 是第n-1次采样值; 是两次采样值所允许的最大偏差,其大小取决于采样周期T及Y值的变化和动态响应。限幅滤波程序允许的 存入LIMIT单元,上次采样值存入DA-BYTE1单元,本次采样值采样到DA-BYTE2单元。PRODET: PUSH AX PUSH BX MOV AL,DA-BYTE1 MOV BL,AL ; MOV AL,DA-BYTE2 SUB AL,BL JNC LOOP1 ; NEG AL ;否则求补LOOP1: CMP AL,LIMIT JNA DONE ; MOV DA-BYTE2,BLDO

32、NE: POP BX POP AX RET2022/10/1171限速滤波 为顺序采样时刻, 为所采集的参数2022/10/11727.9.2 中值滤波程序中值滤波是将信号 的连续m次采样值按大小进行排序,取其中间值作为本次的有效采样值。本算法为取中值,故采样次数m应为奇数,一般35次即可。2022/10/1173 编制中值滤波的算法程序,首先把m个采样值从小到大(或从大到小)进行排队,这可采用几种常规的排序算法如冒泡算法,然后再取中间值。 中值滤波对缓变过程中的偶然因素引起的波动或采样器不稳定造成的误差所引起的脉动干扰比较有效,而对快速变化过程(如流量)的信号采样则不适用。2022/10/1

33、1747.9.3 算术平均滤波程序 对目标参数进行连续采样,然后求其算术平均值作为有效采样值。是n 次采样值的算术平均值; 是第i 次采样值,n 是采样次数2022/10/1175 采样次数n值决定了信号的平滑度和灵敏度。提高n的值,可提高平滑度,但系统的灵敏度随之降低.采样次数n的取值随被控对象的不同而不同。一般情况下,流量信号可取12左右,压力信号可取4左右,温度、成分等缓变信号可取2甚至不进行算术平均。 在编制算法程序时,n一般取2、4、8等2的整数幂,以便于用移位来代替除法求得平均值。 这种算法适用于对周期性干扰的信号滤波。 2022/10/1176 采样次数n=8,且8次采样值已经存

34、放在以SBUFFER为首址的内存单元中,滤波后的结果存放在DBUFFER单元,A/D的为数是12位。具体程序清单如下。程序清单2022/10/1177AVFPR PROC FAR PUSH SI ;保护现场 PUSH AX PUSH CX MOV AX, DATA MOV DS, AX MOV AX, 0 ;累加结果单元清0 MOV SI, 0 ;数据首址 SI MOV CX, 8 ;数据个数 CXAVFPR1:ADD AX,SBUFFER SI ;加一个数AVFPR2:INC SI ;数据地址加2 INC SI2022/10/1178 LOOP AVFPR1 ;未加完返回AVFPR1 MOV

35、 CL, 3 ;累加结果右移3次; SAR AX,CL ;除以8 MOV DBUFFER,AX ;结果存于DBUFFER POP CX POP AX ;恢复现场 POP SI RET ;返回AVFPR ENDP2022/10/11797.9.4 加权平均滤波程序 在算术平均滤波中,对于n次采样所得的采样值,在其结果中的比重是均等的,有时为了提高滤波效果,将各次采样值取不同的比例,然后再相加加权平均法。2022/10/1180均为常数项,是各次采样值的系数,且满足:2022/10/1181 一般采样次数愈靠后,其对应次数愈大,可以增加新的采样值在平均值中的比例,可突出信号的某一部分,抑制信号的另

36、一部分。 这种算法能协调系统的平滑度和灵敏度的矛盾,提高灵敏度,更适用于纯滞后较大的对象。2022/10/1182 首先把采样值存放在以SBUFFER为首址的内存单元中,加权平均系数存放在以COEFF滤为首址的内存单元,波后的结果存放在DBUFFER+2单元。具体程序清单如下。程序清单2022/10/1183AWVPR PROC FAR PUSH SI ;保护现场 PUSH DI PUSH AX PUSH BX PUSH CX MOV AX, DATA MOV DS, AX LEA SI, SBUFFER ;采样数首址 SI LEA DI, COEFF ;系数首址 DI MOV CX, N ;

37、采样次数 CX MOV AX, 0 ;累加结果单元清0 2022/10/1184 MOV DBUFFER,AX MOV DBUFFER+2,AX AWVPR1:MOV AX,SI ;取 MUL AX,WORD PTR DI ;求 ADD WORD PTRBUFFER,DX ;累加 ADC WORD PTRBUFFER+2,AX INC SI ;采样值地址加2 INC SI INC DI ;系数地址加2 INC DI LOOP AWVPR1 ;未完转AWVPR1 2022/10/1185 POP CX ;恢复现场 POP BX POP AX POP DI POP SI RET ;返回AWVPR

38、ENDP2022/10/11867.9.5 低通滤波程序 以上的几种滤波方法基本属于静态滤波,主要适用于变化过程比较快的参数,对于慢速随机变化的参数,为了提高其滤波效果,通常采用动态滤波方法一阶滞后滤波。2022/10/1187第n次采样值 上次滤波结果输出第n次采样后滤波结果输出滤波平滑系数滤波环节的时间常数采样周期2022/10/1188 一般采样周期远小于滤波环节的时间常数,即远小于1,表明本次有效采样值(滤波输出值)主要取决于上次有效采样值(滤波输出值),而本次采样值仅起到一点修正作用。这是一般滤波器的概念,所以此方法相当于RC滤波器。2022/10/1189设计时,应根据采样周期与截

39、止频率适当选取 值,使得滤波器的输出既无明显纹波,又不太滞后。显然,该算法比较简单,比起平均值滤波法要快, 能很好地消除周期性干扰和较宽频率的随机干扰信号。2022/10/11907.9.6 滑动平均滤波程序 前几种的平均滤波算法有一个共同点:即每取得一个有效采样值必须连续进行若干次采样。 当系统的采样速度较慢或采样信号变化较快时,系统的实时性就无法得到保证。滑动平均滤波是在每个采样周期只采样一次,将这一次采样值和过去的若干次采样值一起求平均,所得结果即为有效采样值。2022/10/1191 具体作法可由循环队列结构方式来实现数据的存放,比如取 m 个采样值求滑动平均,只要在RAM中开辟m个数

40、据暂存区,每次新采集一个数据便存入暂存区的队尾, 同时冲掉队首的一个数据,这样在存储器队列中始终保持有m个最新的数据。 滑动平均滤波算法的最大优势就是实时性好,提高了系统的响应速度。2022/10/11927.9.7 复合滤波程序 将几种滤波方法向结合形成复合滤波方法。 中值和算术平均法相结合防脉冲干扰平均滤波:把采样值首先按大小排序,然后去掉最大和最小值;再把剩下的N-2个数值加起来取算术平均值。 在实际应用中,为了加快测量速度,N一般取4。具有计算方便、速度快,存储量小等优点。2022/10/11937.9.8 各种滤波方法的比较主要考虑两个方面:滤波效果变化缓慢的参数程序判断滤波及一阶滞

41、后滤波变化比较快的参数算术平均滤波或加权平均滤波要求比较高的系统复合滤波方法滤波时间考虑滤波效果的前提下,尽量选择执行时间短的程序2022/10/1194 几种数字滤波方法,各有其特点。在实际应用中,究竟采用不采用、以及采用哪一种数字滤波,都应视具体情况而定。可能有的系统并不需要进行数字滤波或者应用得不恰当,非但达不到滤波效果还会降低控制品质,而有的系统采用了复合滤波方法即把几种滤波方法结合起来使用,可能会取得更好的滤波效果。对微型计算机控制系统进行设计时,千万不可千篇一律,或生搬硬套。2022/10/11957.10 标度变换程序 生产中的各种参数都有着不同的量纲和数值,但在计算机控制系统的

42、采集、A/D转换过程中已变为无量纲的数据,当系统在进行显示、记录、打印和报警等操作时,必须把这些测得的数据还原为相应量纲的物理量,这就需要进行标度变换。 标度变换的任务是把计算机系统检测的对象参数的二进制数值还原变换为原物理量的工程实际值。2022/10/11967.10.1线性标度变换程序标度变换的主要方法有:线性式变换、非线性式变换、多项式变换以及查表法。本书主要介绍线性标度变换。线性标度变换:参数值与A/D转换结果之间为线性关系。2022/10/1197物理参数数字量线性变换原理图2022/10/1198由斜率的计算可以推导出线性标度变换的通用公式::一次测量仪表的下限:一次测量仪表的上限:实际测量值:仪表下限所对应的数字量:测量值所对应的数字量:仪表上限所对应的数字量2022/10/1199其中 、 、 、 对某一个具体的被测参数与输入通道来说都是常数,不同的参数有着不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论