-应用程序设计与实现技术[]PPT课件_第1页
-应用程序设计与实现技术[]PPT课件_第2页
-应用程序设计与实现技术[]PPT课件_第3页
-应用程序设计与实现技术[]PPT课件_第4页
-应用程序设计与实现技术[]PPT课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1 第7章计算机控制系统应用软件 在计算机控制系统中 除了硬件电路外 还有软件 所谓应用软件就是面向控制系统本身的程序 它是根据系统的具体要求 由用户自己设计的 在进行计算机控制系统设计时 大量的工作就是如何根据各个生产过程的实际需要设计应用程序 2 教学要求 基本要求 掌握软件滤波方法和标度变换方法教学重点 主要介绍计算机控制系统的应用程序设计与实现技术 3 主要内容 7 1程序设计技术7 2测量数据预处理技术7 3数字控制器的工程实现7 4软件抗干扰技术 4 7 1程序设计技术 一个完整的程序设计过程可以用图7 1来说明问题定义程序设计编码调试维护和再设计应用程序设计的每一步往往是相互影响的 5 6 7 1 1模块化与结构化程序设计 1 模块化程序设计 1 自底向上模块化设计在编主程序前 先开发各个子程序 然后 用一个测试用的主程序来测试每一个子程序 这种方法是汇编语言设计常用的方法 2 自顶向下模块化设计首先对最高层进行编码 测试和调试 该方法一般适合用高级语言来设计程序 7 2 结构化程序设计 结构化程序设计的方法给程序设计施加了一定的约束 它限制采用规定的结构类型和操作顺序 常用的结构如下 顺序结构条件结构循环结构结构化程序设计优点 单入口单出口的控制结构易于装配成模块易于用程序框图来描述 8 7 1 2面向过程与面向对象的程序设计 面向过程的程序设计面向对象的程序设计 9 7 2测量数据与处理技术 传感器把生产过程的信号转换成电信号 然后用A D转换器把模拟信号变成数字信号 读入计算机中 对于这样得到的数据 一般要进行一些预处理 其中最基本的处理有线性化处理 标度变换和误差自动校准 7 2 1系统误差的自动校准 自学 10 7 2 2线性化处理程序设计 在实际的控制系统中 总是希望系统的输入和输出之间为线性关系 这样不但读数看起来清楚方便 而且使仪表在整个范围灵敏度一致 从而便于读出及对系统进行分析与处理 常用的线性化方法 计算法 差值逼近法 折线近似法 11 当参数间的非线性关系可以用数学方程式来表示时 计算机可按公式进行计算 完成对非线性补偿 在计算机控制系统中常遇到的两个非线性关系是温度与热电势 差压与流量 一般热电势与温度的关系可用下式表示 1 计算法 12 2 查表与插值逼近法 所谓查表法就是事先就算好的数据按一定顺序编制成表格存入计算机中 查表程序的任务就是根据被测参数的值 查出最后所需的结果 一般的表格有两种排列方法 无序表格和有序表格 查表的方法有 顺序查表法 计算查表法 对分搜索法等 由于存储容量的限制 有些表格只给出一些稀疏点上的函数值 而对任何相邻两点中间的函数值常采用插值近似计算 13 最常用的插值是运算量较小的线性插值法和二次插值法 线性插值的原理如图7 2所示 A B两点的点斜式直线方程为 14 图7 2插值法原理 15 二次插值的公式为 上式可以简化为 16 3 近似折线法 图7 2给出了近似折线的原理 例如 设在区间内 则其对应的逼近值为或者 17 7 2 3标度变换程序设计 在实际应用中 被测模拟信号被检测出来并转换成数字量后 需要转换成带有量纲的数值后才能计算 显示或打印输出 这种转换就是工程量变换 又称标度变换 1 线性参数的标度变换 18 例如 某液压系统的压力量程为2Mpa 40Mpa 在某一时刻计算机采样并经数字滤波后的数字量为 08DH 求此时液压系统的实际压力是多少 解 在微机系统中 可把其设计成专门的子程序 19 程序清单 函数名 ScaleChange 入口参数 X 采样值 出口参数 标度变化后的数值 defineA02 defineAm40 defineN00 defineNm255doubleScaleChange doubleX doubletemp temp Am A0 X N0 Nm N0 A0 returntemp 20 某热处理炉温度变化范围为0 1200 经过温度变送器变换为1 5V电压送至ADC0809 ADC0809的输入范围为0 5V 当t KT时 ADC0809的转换结果为9BH 问此时的炉内的温度为多少度 9BH对应的十进制数为155对应的温度为 21 某密闭容器的压力变化范围为0 0 25MPa 经过压力变送器变换为1 5V电压送至ADC574 ADC574的输入范围为0 5V 当t KMPa时 ADC574的转换结果9ABH 问此时的容器内的压力为多少兆帕 22 2 非线性参数的标度变换 如果测量为非线性刻度 则其变换式应根据具体问题分析 首先求出它所对应的标度变换公式 然后再进行程序设计 例如在流量测量中 其流量和差压的公式为于是得到测量流量时的标度变换式为 23 对于流量仪表 一般下限为零 所以上式简化为若取流量下限对应的数字量为零 则进一步简化公式为 24 于是得式中 25 7 2 4越限报警处理 越限报警是工业过程常见而又实用的一种报警形式 它分为上限报警 下限报警及上下限报警 在实际应用中 为了避免测量值在极限值附近摆动造成频繁的报警 因此在上 下线附近设计一个回差带 如图7 3所示 它的基本思想就是将采样 数字滤波后的数据与该被测点上下限给定值进行比较 检查是否越限 或者与上限复位值 下限复位值进行比较 检查是否复限 其程序流程图如图7 4所示 26 图7 3越显报警示意图 27 图7 4越限报警程序流程图 28 程序清单 函数名 Alarm 入口参数 X 采样值 出口参数 无 描述 读者可以根据自己的硬件系统 修改端口地址 报警值上下限以及复限带区宽度 definePORT0FFFFelseif XBoundMax RoomH 2 outport PORT 1 if AlarmUpFlag 0 return AlarmUpFlag 1 elseif X BoundMin RoomL 2 outport PORT 1 if AlarmDownFlag 1 return AlarmDownFlag 0 29 7 3数字控制器的工程实现 1 位置式PID算法程序设计位置型PID算法 式中 30 为了程序设计方便 对上式进一步改进 令 上式可改写为 31 程序清单 函数名 PositionPID 入口参数 Y 采样值地址 出口参数 位置式PID算法的结果 defineKp20 defineKi10 defineKd15externdoubleEk1externdoublePIk1externdoubleRkdoublePositionPID double Y doublePPk doublePIk doublePDk doubleEk doubleresult 32 Ek Rk Y PPk Kp Ek PIk Ki Ek PIk1 PDk Kd Ek Ek1 result PPk PIk PDk Ek1 Ek PIk1 PIk returnresult 33 2 增量式PID算法程序设计 增量式PID算法的表达式为式中 34 程序清单 函数名 IncrementPID 入口参数 Y 采样值地址 出口参数 增量式PID算法的结果 defineKp20 defineKi10 defineKd15externdoubleEk1externdoubleEk1externdoubleRkdoubleIncrementPID double Y doubleEk doubleresult Ek Rk Y result Kp Ek Ek1 Ki Ek Kd Ek 2 Ek1 Ek2 Ek2 Ek1 Ek1 Ek returnresult 35 3 抗积分饱和PID控制算法程序设计 其控制算式为 其中 36 程序清单 函数名 SeparatePID 入口参数 Y 采样值地址 出口参数 积分分离PID算法的结果 defineKp20 defineKi10 defineKd15 defineEpsilon10externdoubleEk1externdoublePIk1externdoubleRkdoubleSepatatePID double Y doublePPk doublePIk doublePDk doubleEk doubleKE doubleresult 37 Ek Rk Y PPk Kp Ek PIk Ki Ek PIk1 PDk Kd Ek Ek1 Ifabs Ek EpsilonKE 0 ElseKE 1 result PPk PIk PDk Ek1 Ek PIk1 PIk returnresult 38 4 不完全微分PID控制算法程序设计 不完全微分PID控制器增量型控制算式为 式中 39 程序清单 函数名 IncompletePID 入口参数 Y 采样值地址 出口参数 PID算法的结果 defineKp20 defineKi10 defineKd15 defineAlfa5externdoubleEk1externdoubleEk2externdoublePD1externdoublePD2externdoubleRkdoubleIncompletePID double Y doubleEk doubleresult 40 Ek Rk Y result Kp Ek Ek1 Ki Ek Kd Ek 2 Ek1 Ek2 Alf PD1 PD2 Ek2 Ek1 Ek1 Ek PD2 PD1 PD1 Kd Ek e Ek1 Ek2 returnresult 41 7 4软件抗干扰技术 采用数字滤波方法来抑制有效信号中的干扰成分 消除随机误差 同时对信号进行必要的平滑处理 以保证系统的正常运行 数字滤波相比模拟滤波的优点 节约硬件成本可靠稳定功能强方便灵活不会丢失原始数据 42 1 算术平均滤波法 算术平均滤波是要按输入的N个采样数据寻找这样一个y 使y与各采样值之间的偏差的平方和最小 即 由一元函数求极值的原理可得 算术平均滤波算法适用于对一般具有随机干扰的信号进行滤波 43 编制算术平均滤波程序需要注意两点 1 是的输入方法 对于定时测量 为了减少数据的存储容量 可对测得的y值直接按公式进行测量但对于某些应用场合 为了加快数据测量的速度可采用先测量数据 并把他们存放在存储器中 测量完N点后 在对测得的N个数据进行平均值计算 2 适当选取数据格式 算术平均滤波法的流程图如图7 8所示 44 算术平均滤波程序 返回 Y N Y 图7 8算术平均值滤波程序流程图 45 程序清单 函数名 AverageFilter 入口参数 N 采样值个数 Y 采样值数组首地址 出口参数 平均值 滤波值 描述 求累加和 再取平均 采样值放在以Y为首地址的数组中doubleAverageFilter double X intN inti doubletemp temp 0 for i 0 i N i temp temp Y i temp temp N returntemp 46 中位值滤波法的原理是对被测参数连续采样m次 m 3 且是奇数 并按大小顺序排列 再取中间值作为本次采样的有效数据 特点 中位值滤波法对脉冲干扰信号等偶然因素引发的干扰有良好的滤波效果 如对温度 液位等变化缓慢的被测参数采用此法会收到良好的滤波效果 对流量 速度等快速变化的参数一般不宜采用中位值滤波法 中位值滤波法和平均值滤波法结合起来使用 滤波效果会更好 即在每个采样周期 先用中位值滤波法得到m个滤波值 再对这m个滤波值进行算术平均 得到可用的被测参数 也称为去脉冲干扰平均值滤波法 2 中位值滤波法 47 中位值滤波程序 返回 N 图7 7中位值滤波程序流程图 Y N N Y Y 48 3 程序判断滤波 程序判断滤波可以分为 限幅滤波和限速滤波 1 限幅滤波当y n yH时 则取y n yH 上限值 当y n yL时 则取y n yL 下限值 当yL y n yH时 则取y n 49 2 限速滤波 当 y n y n 1 y0时 则取y n 当 y n y n 1 y0时 则取y n y n 1 其中 y0为两次相邻采样值之差的可能最大变化量 y0值的选取 取决于采样周期T及被测参数y应有的正常变化率 因此 一定要按照实际情况来确定 y0 yH及yL 否则 非但达不到滤波效果 反而会降低控制品质 50 4 一阶惯性滤波法 一阶惯性滤波算法是一种以数字形式通过算法来实现动态的RC滤波方法 数字一阶低通滤波器算法 模拟低通滤波器的传递函数为离散化后可得 51 一阶惯性滤波算法对周期性干扰具有良好的抑制作用 适用于波动频繁的参数滤波 其不足之处是带来了相位滞后 灵敏度低 滞后的程度取决于值的大小 同时它不能滤除频率高于采样频率二分之一 称为乃奎斯特频率 的干扰信号 对于高于乃奎斯特频率的干扰信号 应该采用模拟滤波器 52 程序清单 函数名 OneStepFilter 入口参数 Yn 过去采样值 Yn1 当前采样值 出口参数 滤波值 描述 按公式计算滤波值 并

温馨提示

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

最新文档

评论

0/150

提交评论