- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 计算机控制系统应用软件 在计算机控制系统中,除了硬件电路外,还有软件。所谓应用软件就是面向控制系统本身的程序,它是根据系统的具体要求,由用户自己设计的。在进行计算机控制系统设计时,大量的工作就是如何根据各个生产过程的实际需要设计应用程序。 教学要求 基本要求:掌握软件滤波方法和标度变换方法 教学重点:主要介绍计算机控制系统的应用程序设计与实现技术。 主要内容 7.1 程序设计技术 7.2 测量数据预处理技术 7.3 数字控制器的工程实现 7.4 软件抗干扰技术 7.1 程序设计技术 一个完整的程序设计过程可以用图7-1来说明 问题定义 程序设计 编码 调试 维护和再设计 应用程序设计的每一步往往是相互影响的。 7.1.1 模块化与结构化程序设计 1. 模块化程序设计 (1)自底向上模块化设计 在编主程序前,先开发各个子程序,然后,用一个测试用的主程序来测试每一个子程序。这种方法是汇编语言设计常用的方法。 (2)自顶向下模块化设计 首先对最高层进行编码、测试和调试。该方法一般适合用高级语言来设计程序。 2.结构化程序设计 结构化程序设计的方法给程序设计施加了一定的约束,它限制采用规定的结构类型和操作顺序。常用的结构如下: 顺序结构 条件结构 循环结构 结构化程序设计优点: 单入口单出口的控制结构 易于装配成模块 易于用程序框图来描述 7.1.2 面向过程与面向对象的程序设计 面向过程的程序设计 面向对象的程序设计 7.2 测量数据与处理技术 传感器把生产过程的信号转换成电信号,然后用A/D转换器把模拟信号变成数字信号,读入计算机中。 对于这样得到的数据,一般要进行一些预处理,其中最基本的处理有线性化处理、标度变换和误差自动校准。 7.2.1 系统误差的自动校准(自学) 7.2.2 线性化处理程序设计 在实际的控制系统中,总是希望系统的输入和输出之间为线性关系,这样不但读数看起来清楚方便,而且使仪表在整个范围灵敏度一致,从而便于读出及对系统进行分析与处理。 常用的线性化方法:计算法、差值逼近法、折线近似法。 当参数间的非线性关系可以用数学方程式来表示时,计算机可按公式进行计算,完成对非线性补偿。 在计算机控制系统中常遇到的两个非线性关系是温度与热电势、差压与流量。 一般热电势与温度的关系可用下式表示: 2.查表与插值逼近法 所谓查表法就是事先就算好的数据按一定顺序编制成表格存入计算机中,查表程序的任务就是根据被测参数的值,查出最后所需的结果。 一般的表格有两种排列方法:无序表格和有序表格。 查表的方法有:顺序查表法、计算查表法、对分搜索法等。 由于存储容量的限制,有些表格只给出一些稀疏点上的函数值。而对任何相邻两点中间的函数值常采用插值近似计算。 最常用的插值是运算量较小的线性插值法和二次插值法。 线性插值的原理如图7-2所示。 A、B两点的点斜式直线方程为: 二次插值的公式为: 上式可以简化为: 3.近似折线法 图7-2给出了近似折线的原理。 例如;设在区间 内,则其对应的逼近值为 或者 7.2.3 标度变换程序设计 在实际应用中,被测模拟信号被检测出来并转换成数字量后,需要转换成带有量纲的数值后才能计算、显示或打印输出,这种转换就是工程量变换,又称标度变换。 1. 线性参数的标度变换 例如:某液压系统的压力量程为2Mpa~40Mpa,在某一时刻计算机采样并经数字滤波后的数字量为:08DH,求此时液压系统的实际压力是多少? 解: 在微机系统中,可把其设计成专门的子程序。 程序清单: //函数名:ScaleChange //入口参数: X-采样值 //出口参数:标度变化后的数值 #define A0 2 #define Am 40 #define N0 0 #define Nm 255 double ScaleChange(double X) { double temp; temp=(Am-A0)*(X-N0)/(Nm-N0)+A0; return temp; } 某热处理炉温度变化范围为 0~1200℃,经过温度变送器变换为1~5V电压送至ADC0809,ADC0809的输入范围为0~5V。当t =KT时,ADC0809 的转换结果为9BH,问此时的炉内的温度为多少度? 9BH对应的十进制数为155 对应的温度为 ℃ 某密闭容器的压力变化范围为 0~0.25MPa,经过压力变送器变换为1~5V电压送至ADC574,ADC574的输入
文档评论(0)