第8章-数据处理及程序设计PPT课件.ppt_第1页
第8章-数据处理及程序设计PPT课件.ppt_第2页
第8章-数据处理及程序设计PPT课件.ppt_第3页
第8章-数据处理及程序设计PPT课件.ppt_第4页
第8章-数据处理及程序设计PPT课件.ppt_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

第8章数据处理及程序设计 测量数据的处理数值运算非数值运算作用 可以消除测量过程中的系统误差和随机误差 8 1测量数据的非数值处理 重点 8 2系统误差的数据处理 重点 8 3数字滤波技术 重点 难点 8 4量程自动转换 自学 8 5智能仪器系统软件的组成与设计 自学 2020 3 27 1 8 1测量数据的非数值处理 8 1 1数据结构8 1 2线性表查表技术8 1 3链表的插入 删除和查找8 1 4排序 2020 3 27 2 8 1 1数据结构 1 线性表线性表是智能仪器中最简单也是最常用的一种数据结构 是N个元素的集合 各数据元素间具有线性的位置关系 即元素在线性表中的位置只取决于自己的序号 2 堆栈堆栈是一种特殊形式的线性表 写入和读出遵循 后进先出 的原则 通常在调用子程序或响应中断保护现场时使用 需设置一个指针来指示栈底的位置 3 队列队列是一种 先进先出 的线性表 新元素必须从队尾加入 要取出的元素必须从队头取出 每个队列必须设置2个指针分别指示队头和队尾 4 线性链表线性链表的存储方式为链式结构 除了存储元素值 还需要一个指针来指明下一个元素在存储器的位置 2020 3 27 3 图8 1线性链表的结构图a 主表b 自由表 8 1 1数据结构 2020 3 27 4 8 1 2线性表查表技术 1 顺序查找2 对半查找3 直接查表法 2020 3 27 5 1 顺序查找 顺序查找就是从头开始 按照顺序把表中的元素的关键项逐一地与给定的关键字进行比较 若比较结果相同 所比较的元素就是要查找的元素 若表中所有元素的比较结果都不相同 则该元素在表中查找不到 这种查找方法适用排列无序 不按一定的规律排列 的表格或清单 顺序查找是基本的查表方法 查找速度相对较慢 2020 3 27 6 2 对半查找 有序表的数据排列有一定规律 就不必像无序表那样逐个查找 可以采用对半查找 亦称二分法查找 对半查找就是每次截取表的一半 确定查找元素在哪一部分 逐步细分 缩小检索范围 从而大大加快查找速度 进行对半查找时 需要设置两个指针LO HI 分别保存表的低界元素和高界元素的序号 设置 LO 0 HI N 1 设N个元素按照从小到大的顺序排列 中心元素的序号为 2020 3 27 7 2 对半查找 图8 3对半查找子程序框图 2020 3 27 8 2 对半查找 max 97 min 0 Mid 0while 1 查表求出温度值 mid max min 2 if Table mid da max mid elsemin mid if max min 1 break if max min da min else da max Table max da Table max Table min 2020 3 27 9 3 直接查表法 这是智能仪器中经常使用的快速查表方法 这种方法不需要像上述两种方法那样逐个比较表中的关键项 查找表中那个关键项的记录 直接根据关键项或由关键项经过简单计算 即可找到该数据 因此 要求关键项与数据记录所在的位置或次序有严格的对应关系 这种方法仅适宜于有序表格 2020 3 27 10 8 1 3链表的插入 删除和查找 1 链式结构2 链表的初始化3 链表的插入4 链表的删除5 链表的查找 2020 3 27 11 2 链表的初始化 图8 5链表初始化程序框图 2020 3 27 12 3 链表的插入 图8 6节点A插入链表 1 先判断FREE指针是否为0 为0表示自由表空 不能进行插入 不为0则可进行下列操作 2020 3 27 13 3 链表的插入 图8 7链表插入子程序框图 2020 3 27 14 3 链表的插入 2 将FREE指针指向自由表的下一个节点 3 确定节点K的地址 4 在新节点的指针域内存放K 1节点的地址 5 在节点K的指针域内写入新节点的指针 6 存储新节点数据 图8 8从链表中删除节点2的操作示意图 2020 3 27 15 4 链表的删除 1 保存节点K指针值 2 把FREE指针值写入K的指针中 3 把节点K的地址写入FREE指针中 4 把保存的原节点K的指针值写入节点K 1的指 图8 9链表删除子程序框图 2020 3 27 16 5 链表的查找 链表的查找比较方便 一般就是从FIRST指向的第一个节点开始向后逐个进行查找 当发现给定的值x等于数据项中的关键字时 说明节点找到 否则再找下一个节点 直至查到或指针值等于0为止 2020 3 27 17 8 1 4排序 1 气泡排序法2 希尔排序 2020 3 27 18 1 气泡排序法 图8 10气泡排序法过程 依次比较2个相邻的一对数据 如不符合规定的顺序 则交换位置 2020 3 27 19 2 希尔排序 图8 11希尔排序过程 依次比较一定间距hi的一对数据 如不符合规定的顺序 则交换位置依次比较hi 2间距的一对数据 如不符合规定的顺序 则交换位置依次比较hi 2 2间距的一对数据 如不符合规定的顺序 则交换位置直到间距为1 2020 3 27 20 8 2系统误差的数据处理 8 2 1系统误差模型的建立8 2 2系统误差的标准数据校正法8 2 3非线性校正8 2 4零位误差和增益误差的校正8 2 5温度误差的补偿 2020 3 27 21 8 2 1系统误差模型的建立 1 代数插值法2 最小二乘法 2020 3 27 22 8 2 1系统误差模型的建立 输入接基准电压 输入接地 输入接x 仪器中的运放测量电压会引入零位误差和增益误差 如何消除 任何输入输出就可以由这样的公式来求出输出值 从而消除偏差实际情况复杂 难以建立适当的模型 因此 多通过测量获得的一组离散数据 建立反映测量值变化的近似模型 2020 3 27 23 1 代数插值法 设有n 1组离散点 x0 y0 x1 y1 xn yn x a b 和未知函数f x 用n次多项式 去逼近f x 使Pn x 在节点xi处满足 插值法 设法找一个函数g x 插值函数 使在xi处与f xi 相等 方法 2020 3 27 24 系数an a1 a0应满足方程组 要用已知的 xi yi i 0 1 n 去求解方程组 即可求得ai i 0 1 n 从而得到Pn x 对于每一个信号的测量数值xi就可近似地实时计算出被测量yi f xi Pn xi 2020 3 27 25 最常用的多项式插值有 线性插值和抛物线 二次 插值 1 线性插值 从一组数据 xi yi 中选取两个有代表性的点 x0 y0 和 x1 y1 然后根据插值原理 求出插值方程 x Vi P1 Xi f Xi i 1 2 n 1若在x的全部取值区间 a b 上始终有Vi 为允许的校正误差 则直线方程P1 x a1x a0就是理想的校正方程 图8 12非线性特性曲线的直线方程校正 2020 3 27 26 线性插值举例 测量0 490 的镍铬 镍铝热电偶 若允许的校正误差小于3 分析能否用直线方程进行非线性校正 2020 3 27 27 取A 0mv 0 和B 20 12mv 490 两点 可求得a1 24 245 a0 0 即P1 x 24 245x 此即为直线校正方程 两端点的误差为0 通过计算可知最大校正误差在x 11 38mV时 分度表为280 此时P1 x 275 91 误差为4 09 在240 360 范围内校正误差均大3 即用直线方程进行非线性校正不能满足准确度要求 2020 3 27 28 2 抛物线插值 二阶插值 在一组数据中选取 x0 y0 x1 y1 x2 y2 三点 相应的插值方程 y 2020 3 27 29 现仍以表4 1所列数据说明抛物线插值的个体作用 节点选择 0 0 10 15 250 和 20 21 490 三点 可以验证 用此方程进行非线性校正 每点误差均不大于3 最大误差发生在130 处 误差值为2 277 2020 3 27 30 图8 14最小二乘法直线拟合 通过实验获得有限对测试数据 xi yi 利用这些数据来求取近似函数y f x 式中x为输出量 y为被测物理量 曲线拟合并不要求y f x 的曲线通过所有离散点 xi yi 只要求y f x 反映这些离散点的一般趋势 不出现局部波动 Z要求误差平方和最小 2 最小二乘法 2020 3 27 31 1 直线拟合法设一组测试数据 现在要求出一条最能反映这些数据点变化趋势的直线 设最佳拟合直线方程为 式中a1 a0为直线方程系数 下面求出直线方程系数a1 a0 令 有 拟合原则 残差的平方和最小 2020 3 27 32 分别对 1 0求偏导数 并令其为0 得 联立求解 得 就可以求出直线方程系数 从而得到这组测量数据在最小二乘意义上的最佳拟合直线方程 2020 3 27 33 2 曲线拟合为了提高拟合精度 通常对n个实验数据对 xi yi i 1 2 n 选用m次多项式 2020 3 27 34 8 2 2系统误差的标准数据校正法 进行测量时现场情况往往很复杂 有时难以通过理论分析建立起仪表的误差校正模型 这时可以通过实验 即用实际的校正手段来求得校正曲线 然后 把曲线上的各个校正点的数据以表格形式存入仪器的内存中 一个校正点的数据对应一个 或几个 内存单元 在以后的实时测量中 通过查表来修正测量结果 2020 3 27 35 8 2 3非线性校正 1 校正函数2 用插值法进行校正3 利用最小二乘法进行非线性校正 非线性校正使仪器线线性化介绍仪器常用的几种方法 2020 3 27 36 1 校正函数法 如果确切知道传感器或检测电路的非线性特性的解析式y f x 则就有可能利用基于此解析式的校正函数 反函数 来进行非线性校正 例 某热电偶温度与电势之间的关系为 Xp是与冷端温度有关的函数 只要知道冷端温度T0 就可得到 难以用准确的函数表达的信号 不宜用校正函数进行校正 2020 3 27 37 2 用插值法进行校正 回顾 测量0 490 的镍铬 镍铝热电偶 若允许的校正误差小于3 分析能否用直线方程进行非线性校正 取A 0mv 0 和B 20 12mv 490 两点 可求得a1 24 245 a0 0 即P1 x 24 245x 此即为直线校正方程 两端点的误差为0 通过计算可知最大校正误差在x 11 38mV时 分度表为280 此时P1 x 275 91 误差为4 09 在240 360 范围内校正误差均大3 即用直线方程进行非线性校正不能满足准确度要求 为了提高精度 可以用分段直线方程来进行非线性校正 分段后的每一段曲线用一个直线方程来校正 折线节点有等距和非等距两种取法 2020 3 27 38 2 用插值法进行校正 1 等距节点分段直线校正法等距节点的方法适用于特性曲线的曲率变化不大的场合 拟合结果满足 2020 3 27 39 2 用插值法进行校正 2 非等距节点分段直线校正法有的曲线曲率变化大 若采用等距节点分段直线校正法进行非线性校正 分段数N会很大 各段误差不均匀 占用内存多非等距 线性好的部分节点距离大些 反之小些 误差可达均匀分布 2020 3 27 40 2 用插值法进行校正 图8 15非等距节点分段直线校正 不等分3段即可 等分4 5段 2020 3 27 41 设某传感器的输入 输出特性曲线如图所示 图中x为传感器的输出值 y为传感器的输入值 实际被测量 分四段直线逼近该传感器的非线性曲线 可以写出各段的直线方程式为 2020 3 27 42 编程时应将系数k1 k2 k3以及数据x1 x2 x3 y1 y2 y3分别存放在指定的ROM中 智能仪器在进行校正时 先根据测量值的大小 找出所在直线段区域 从存储器中取出该直线段的系数 然后计算 获得实际被测量值y 2020 3 27 43 在表4 1中所列的数据中取三点 0 0 10 15 250 20 21 490 并用经过这三点的两个直线方程来近似代替整个表格 通过计算得 可以验证 第一段的最大误差发生在130 处 误差值为1 278 第二段最大误差发生在340 处 误差1 212 显然与整个范围内使用抛物线插值法相比 最大误差减小约1 因此 分段插值可以在大范围内用较低的插值多项式 通常不高于二阶 来达到很高的校正精度 例子 用2段非等距法校正镍铬 镍铝热电偶的非线性 2020 3 27 44 8 2 4零位误差和增益误差的校正 1 零位误差的校正方法2 增益误差的校正方法 2020 3 27 45 智能仪器做零位校正时 需中断正常的测量过程 把输入端短路 使输入为零 这时包括传感器在内的整个仪器的输入通道的输出为零位输出 但由于存在零位误差 使仪器的输出值并不为零 根据整个仪器的增益 将仪器的输出值折算成输入通道的零位输入值 并把这一零位输入值存在内存单元中 在正常测量过程中 仪器在每次测量后均从采样值中减去原先存入的零位值 从而实现了零位校正 这种零位校正法已经在智能化数字电压表 数字欧姆表等仪器中得到广泛的应用 1 零位误差的校正方法 2020 3 27 46 仪器开机后或每隔一定时间 测量一次基准参数 如测量标准电压和零电压 建立误差校正模型 确定存储校正模型参数根据测量结果和模型求校正值 消除误差方法很多 自动校正法 2 增益误差的校正方法 2020 3 27 47 自动校正法微计算机控制多路开关在每一个测量周期或中断正常的测量过程中 把输入接地 即使输入为零 此时整个测量输入通道的输出即为零位输出 一般其值不为零 N0 再把输入接基准电压Vr测得数据Nr 并将N0和Nr存于内存 然后输入接Vx 测得Nx 则测量结果可用下式计算出来 2020 3 27 48 8 2 5温度误差的补偿 y为未经温度校正的测量值 yc为经温度校正的测量值 为实际工作环境与标准温度之差 a0和a1为温度变化系数 a1用于校正由于温度变化引起的传感器零位漂移 a0用于校正由于温度变化引起的传感器标度的变化 智能仪器中的放大器 模拟开关 A D转换器等各种集成电路及传感器 都会受温度的影响而产生温度误差 因此温度变化会影响整个仪器的性能指标 智能仪器出现以前 电子仪器要采用各种硬件方法进行温度补偿 线路很复杂 由于智能仪器中有计算机 可以充分发挥软件的优势 利用各种算法进行温度补偿 为此 需要建立比较精确的温度误差数学模型 并采用相应的算法 另外 为了实现自动补偿 必须在仪器里安装测温元件 常用的测温元件是PN二极管 热敏电阻或AD590等 它们接在线路中 可将温度转换成电量 经信号调理电路 A D转换器转换成与温度有关的数字量 利用 的变化计算温度的补偿量 2020 3 27 49 8 3数字滤波技术 数字滤波算法的优点 1 数字滤波只是一个计算过程 无需硬件 因此可靠性高 并且不存在阻抗匹配 特性波动 非一致性等问题 模拟滤波器在频率很低时较难实现的问题 不会出现在数字滤波器的实现过程中 2 只要适当改变数字滤波程序有关参数 就能方便的改变滤波特性 因此数字滤波使用时方便灵活 3 软件实现 成本低 2020 3 27 50 8 3 1限幅滤波 克服大脉冲 尖脉冲 干扰的数字滤波法 克服由仪器外部环境偶然因素引起的突变性扰动或仪器内部不稳定引起误码等造成的尖脉冲干扰 尖脉冲干扰信号随时可能窜入智能仪器中 使得测量信号突然增大 造成严重失真 对于这种随机干扰 限幅滤波是一种十分有效的方法 其基本方法是 通过比较相邻 n和n 1时刻 的两个采样值yn和yn 1 如果它们的差值过大 超出了参数可能的最大变化范围 则认为发生了随机干扰 并视这次采样值yn为非法值 予以剔除 2020 3 27 51 1 限幅滤波法 又称程序判别法 具体方法是 依赖已有的时域采样结果 将本次采样值与上次采样值进行比较 若它们的差值超出允许范围 则认为本次采样值受到了干扰 应予易除 已滤波的采样结果 若本次采样值为yn 则本次滤波的结果由下式确定 2020 3 27 52 a是相邻两个采样值的最大允许增量 其数值可根据y的最大变化速率Vmax及采样周期T确定 即a VmaxT 实现本算法的关键是设定被测参量相邻两次采样值的最大允许误差a 要求准确估计Vmax和采样周期T 2020 3 27 53 2 中值滤波法 对某一被测参数连续采样n次 一般n应为奇数 然后将这些采样值进行排序 选取中间值为本次采样值 中位值滤波能有效地克服因偶然因素引起的波动或仪器不稳定引起的误码所造成的脉冲干扰 对温度 液位等缓慢变化的被测参数 采用中值滤波法一般能收到良好的滤波效果 但对于流量 压力等快速变化的参数 一般不采用中位值滤波算法 2020 3 27 54 3 算数平均滤波 N个连续采样值 分别为X1至XN 相加 然后取其算术平均值作为本次测量的滤波值 即 设滤波效果主要取决于采样次数N N越大 滤波效果越好 但系统的灵敏度要下降 因此这种方法只适用于慢变信号 Si为采样值中的有用部分ni为随机误差 2020 3 27 55 3算术平均值滤波 算术平均值滤波法就是连续取n个采样值进行平均 其数学表达式为算术平均值滤波法用于对一般具有随机干扰的信号进行滤波 这种信号的特点是围绕着一个平均值 在某一范围附近作上下波动 因此仅取一个采样值作为滤波值是不准确的 算术平均值滤波法对信号的平滑程度完全取决于N 从理论上讲 在无系统误差的情况下 当N 其平均值趋近于期望值 但实际上N是有限的 当N较大时 平滑度高 但灵敏度低 当N较小时 平滑度低 但灵敏度高 应根据具体情况选取N 既保证滤波效果 又尽量减少计算时间 2020 3 27 56 例 数组tem存放有16个采集数据 要求进行限幅和平均值相结合的复合滤波处理 即去掉其中大于10和小于16的所有数据 取其余数据的平均值存于temp变量中 编写实现此数字滤波的C51程序 2020 3 27 57 inti num 0 定义变量floatsum 0 for i 0 i10 sum sum temperature i 求8个数中的累加和num 有效的数据个数 temp sum num 所求结果 2020 3 27 58 4 滑动平均滤波法 对于采样速度较慢或要求数据更新率较高的实时系统 算术平均滤法无法使用的 每计算一次数据 需测量N次 滑动平均滤波法把N个测量数据看成一个队列 队列的长度固定为N 每进行一次新的采样 把测量结果放入队尾 而去掉原来队首的一个数据 这样在队列中始终有N个 最新 的数据 计算平均值时 只要把队列中的N个数据进行算术平均 就可得到新的算术平均值 这样每进行一次测量 就可计算得到一个新的算术平均值 2020 3 27 59 为第n次采样经滤波后的输出 为未经滤波的第n i次采样值 N为滑动平均项数 利于消除周期性干扰 平滑度高 灵敏度低 但对偶然出现的脉冲性干扰的抑制作用差 实际应用时 通过观察不同N值下滑动平均的输出响应来选取N值以便少占用计算机时间 又能达到最好的滤波效果 2020 3 27 60 ucharfiltering void 递推平均滤波子函数 ucharidata addr x inti uchardatacount 0 x0c 设置采样值个数 uchardatasum 0 addr x 0 x30 设置采样值存储单元首址 for i 1 i count 1 i addr x i 1 addr x i sum sum addr x i 1 addr x count 1 sample 将新采样值送到采样值存储单元末地址 aver sum sample count 求平均值 2020 3 27 61 8 3 5低通数字滤波 RC滤波器的传递函数 RC滤波器的差分方程 将描述普通硬件RC低通滤波器特性的微分方程用差分方程来表示 便可以用软件算法来模拟硬件滤波器的功能 2020 3 27 62 标度变换 仪器采集的数据并不等于原来带有量纲的参数值 它仅仅对应于参数的大小 必须把它转换成带有量纲的数值后才能显示 打印输出和应用 这种转换就是工程量变换 又称标度变换 例 测量机械压力时 当压力变化为0 100N时 压力传感器输出的电压为0 10mV 放大为0 5V后进行A D转换 得到00H FFH的数字量 假设也采用8位ADC 2020 3 27 63 线性标度变换 假设包括传感器在内的整个数据采集系统是线性的 则标度变换公式为 式中 A0为测量仪表的下限 Am为测量仪表的上限 Ax为实际测量值 工程量 N0为仪表下限所对应的数字量 Nm为仪表上限所对应的数字量 Nx为测量值所对应的数字量 2020 3 27 64 某智能温度测量仪采用8位ADC 测量范围为10 100 仪器采样并经滤波和非线性校正后 即温度与数字量之间的关系已为线性 的数字量为28H 此时 A0 10 Am 100 Nm FFH 255 Nx 28H 40 求Ax 应用实例 2020 3 27 65 8 4量程自动转换 自行学习 8 4 1一般要求8 4 2自动量程转换电路举例8 4 3量程自动转换电路的控制8 4 4量程自动转换电路的保护 2020 3 27 66 8 4 1一般要求 1 尽可能高的测量速度自动量程转换的测量速度是指根据被测量的大小自动选择合适量程并完成一次测量的速度 2 确定性自动量程转换的确定性是指在升 降量程时 不应该发生在二个相邻量程间反复选择的现象 3 安全性由于每次测量并不都从最高量程开始 而是在选定量程上进行 因此不可避免地会发生被测量超过选定量程的最大测量范围 甚至达到仪器的最大允许值 2020 3 27 67 8 4 2自动量程转换电路举例 图8 18电压量程自动转换电路 2020 3 27 68 8 4 2自动量程转换电路举例 表8 2各量程开关动作状态 2020 3 27 69 8 4 3量程自动转换电路的控制 表8 3量程自动转换阈值 2020 3 27 70 8 4 3量程自动转换电路的控制 图8 19量程自动转换程序流程 2020 3 27 71 8 4 4量程自动转换电路的保护 1 输入过压保护2 过载电压的快速切除 2020 3 27 72 1 输入过压保护 图8 20输入过压保护电路图 2020 3 27 73 1 输入过压保护 图8 21保护电路等效电路 2020 3 27 74 2 过载电压的快速切除 图8 22输入过载电压快速切除保护电路 2020 3 27 75 8 5智能仪器系统软件的组成与设计 8 5 1监控主程序8 5 2键盘管理8 5 3中断管理及处理8 5 4子程序模块 2020

温馨提示

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

评论

0/150

提交评论