网站大量收购独家精品文档,联系QQ:2885784924

计算机控制技术63.ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机控制技术63.ppt

第三节 常用控制程序设计 1 数字滤波程序设计 2 线性化处理 3 上下限报警处理程序设计 4 LED数码管显示程序设计 5 PID算法程序设计 一、 数字滤波程序设计 1 概述 2 数字滤波的方法 概 述 和模拟滤波装置相比,数字滤波有以下几个优点: (1)数字滤波通过程序实现,不需硬件设备,系统的可靠性较高。 (2)数字滤波可实现多通道共用。 (3)可对低频信号(如0.01Hz)实现滤波。 (4)采用不同的算法和参数就可实现对不同信号的滤波,使用起来灵活、方便。 数字滤波的方法 1. 程序判断滤波 2. 中值滤波 3. 算术平均滤波 4. 加权平均滤波 5. 一阶滞后滤波 6. 防脉冲干扰平均值法 1. 程序判断滤波 限幅滤波 是把相邻的两次采样值相减,求出其增量(以绝对值表示),然后与两次采样允许的最大偏差值(由被控对象的实际情况决定) △y进行比较,如果小于等于△y,则取本次采样值;如果大于△y,则仍取上次采样值作为本次采样值。 即: │Yn-Yn-1│≤△y, 则Yn=Yn , 取本次采样值 │Yn-Yn-1│ △y, 则Yn=Yn-1 ,取上次采样值 限幅滤波程序流程框图 限幅滤波程序程序清单: PUSH PSW ;保护现场 PUSH A CLR C ;进位标志位清零 MOV DATA,DATA2 MOV A,DATA1 SUBB A,DATA ;求Yn-1 -Yn JNC COMPARE ;如果Yn-1 -Yn≥0,转COMPARE CPL A ;如果Yn-1 -Yn0, 求补 INC A COMPARE: CLR C SUBB A,LIMIT ;│Yn-Yn-1│和△y比较 JC OVER ;如果│Yn-Yn-1│≤△y,DATA2→DATA MOV DATA,DATA1 ;如果│Yn-Yn-1│△y,DATA1→DATA OVER: POP A ;恢复现场 POP PSW RET ;返回 限速滤波 滤波原理如下: 设在顺序采样时刻T1、T2、T3所采集的数据分别为Y1、Y2、Y3,则当 ∣Y2-Y1∣≤△y,则Y2作为采样值; ∣Y2-Y1∣△y, 则保留Y2,但不作为采样值,继续采样得Y3; 如果∣Y3-Y2∣≤△y,则Y3作为采样值; ∣Y3-Y2∣△y, 则取作为采样值。 2. 中值滤波 所谓中值滤波法就是对某一被测参数连续采样n次(n一般取奇数),然后把n次采样值按顺序排列,取其中间值做为本次采样值。中值滤波程序的流程框图如图3-17所示。 中值滤波程序程序清单: PUSH PSW PUSH A SORT: MOV R0,DATA ;数据存储区单元首址 MOV R7,TIME ;读比较次数 CLR FLAG ;清交换标志位 LOOP: MOV A,@R0 ;取第一个数 MOV FIRST,A ;保存第一个数 INC R0 MOV SECOND,@R0 ;保存第二个数 CLR C SUBB A,@R0 ;两数比较 JC NEXT ;第一数小于第二数,不交换 MOV @R0,FIRST DEC R0 MOV @R0,SECOND ;交换两数 INC R0 SETB FLAG ;置交换标志位 NEXT: DJNZ R7,LOOP ;进行下一次比较 JB FLAG,SORT ;进行下一轮比较 DEC R0 CLR C MOV A,TIME RRC A MOV R7,A CONT: DEC R0 DJNZ R7,CONT MOV SAMP,@R0 ;取中值 POP A POP PSW RET 3. 算术平均滤波 所谓算术平均滤波就是把n个采样值相加,然后取其算术平均值作为本次有效的采样信号,即: 算术平均滤波程序清单:(本例中取采样次数n=8) PUSH PSW ;现场保护 PUSH A MOV FLAG,#00H ;进位位清零 MOV R0,DATA ;设置数据存储区首址 MOV R7,#08H ;设置采样数据个数 CLR A ;清累加器 LOOP: ADD A,@R0 ;两数相加 JNC NEXT ;无进位,转NEXT INC FLAG ;有进位,进位位加1 NEXT: INC R0 ;数据指针加1 DJNZ R7, LOOP ;未加完,继续加 MOV R7,#03H ;设置循环次数 DIVIDE: MOV TEMP,A ;保存累加器中的内容 MOV A,FLAG ;累加

文档评论(0)

报告论文库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档