计算机控制技术课件.计算机控制系统软件设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

加权平均滤波
原理 • 在算术平均滤波程序中,n次采样值 在最后的结果中所占的比重是相等 的,这样虽然消除了随机干扰,但 有用信号的灵敏度也随之降低。为 了提高滤波效果,将各个采样值取 不同的比重,然后再相加求平均值, 这种方法称为加权平均滤波。

流程图:
加权平均滤波
PUSH PUSH MOV MOV MOV MOV MOV MOV LOOP: MOV MOV MOV PSW A R7,TIME R0,DATA R1,COEFF FLAG,#00H ;保护现场
Yn 1 X n Yn 1

流程图:


求a
y n 1
求 (1 a ) x n
求 (1 a ) x n a y n 1
y n 1 y n
返 回
一阶滞后滤波
MOV MOV MOV MOV ACALL MOV MOV MOV MOV MUL1_H,COEFF1_H MUL1_L,COEFF1_L MUL2_H,DATA1_H MUL2_H,DATA1_L MULTD BUFF1,PR_H BUFF2,PR_L MUL1_H,COEFF2_H MUL1_L,COEFF2_L

限幅滤波流程图:


现场保护
读Yn-1,Yn
Yn-1 -Yn≥0 是
否 求 Yn -Yn-1
Yn-1 -Yn > Y 是 取上次采样值

取本次采样值
现场恢复
返 回
程序判断滤波
PUSH PUSH CLR MOV MOV SUBB JNC
CPL INC
PSW ;保护现场 A C ;进位标志位清零 DATA,DATA2 A,DATA1 A,DATA ;求Yn-1 -Yn COMPARE ;如果Yn-1 -Yn≥0,转 ;COMPARE A ;如果Yn-1 -Yn<0, 求补 A
算术平均滤波
DIVIDE: MOV
MOV CLR RRC MOV MOV RRC DJNZ MOV POP POP RET
TEMP,A
A,FLAG C A FLAG,A A,TEMP A R7,DIVIDE SAMP,A A PSW
;保存累加器中 ;的内容 ;累加结果除2
;未结束,继续 ;执行 ;保存结果至 ;SAMP中 ;恢复现场
;累加和
;数据区地址加1 ;系数地址加1
加权平均滤波
DJNZ MOV DIV128:CLR MOV RRC MOV MOV RRC MOV MOV RRC R7,LOOP R7,#07H C A,FLAG A FLAG,A A,SAMP_H A SAMP_H,A A,SAMP_L A ;未加完,继续 ;设置循环次数 ;累加结果除2
;设置循环次数 ;进位标志位为零, ;转LOOP2 ;PR+MUL2
;PR右移一 ;位
RRC
A
一阶滞后滤波
MOV MOV RRC MOV MOV RRC MOV MOV RRC MOV DJNZ PR_H,A A,PR_L A PR_L,A A,MUL1_H A MUL1_H,A A,MUL1_L A MUL1_L,A R7,LOOP1
;位 MOV PR_L,#00H ;乘积高8位 ;清零
一阶滞后滤波
MOV PR_H,#00H MOV R7,#11H LOOP1:JNC LOOP2 MOV ADD MOV MOV ADDC MOV LOOP2:MOV A,PR_L A,MUL2_L PR_L,A A,PR_H A,MUL2_H PR_H,A A,PR_H
概述
软件功能
实时 数据 采集
控制 运算 控制 输出 报警 监视
画面 显示 和报 表输 出
可靠 性功 能
流程 画面 制作 功能
管理 功能
通信 功能
OPC 接口
概述
主要性能指标
各种功能 系统功能 人机接口 可扩展性 能否协调 是否完善? 是否良好? 如何? 运行?
数字滤波
概念 • 所谓数字滤波,是通过一定 的计算程序对采样信号进行 平滑加工,提高其有用信号, 消除和减少各种干扰和噪音, 以保证计算机系统的可靠性。
;MUL1右移一位
;循环未结束,继续
第二节 标度变换程序
基本原理
线性标度变换
• 对于一般的线性仪表而言,标度变 N N A A A A 换公式为: N N
x 0 x 0 m 0
• 为了简化程序设计,一般把被测参 数的起点A0所对应的A/D转换值设 定为0,即N0=0,这样上式可以改写 N 为: A A A A
程序清单
双 字 节 减 法 子 程 序 ( SUB2 ) 程 序 入 口 : 被 减 数 放 在 SUB1_H 、 SUB1_L单元中,减数放在 SUB2_H、SUB2_L单元中; 程序出口:差放在 DIFF_H、DIFF_L单元中。 SUB2: CLR MOV SUBB MOV MOV SUBB MOV RET C A,SUB1_L A,SUB2_L DIFF_L,A A,SUB1_H A,SUB2_H DIFF_H,A
;数据存储区单元首 ;址 R7,TIME ;读比较次数 FLAG ;清交换标志位 A,@R0 ;取第一个数 FIRST,A ;保存第一个数 R0 SECOND,@R0 ;保存第二个数 C A,@R0 ;两数比较
中值滤波
JC MOV DEC MOV INC SETB NEXT: DJNZ JB DEC CLR MOV NEXT ;第一数小于第二数, ;不交换
程序清单
INC MOV ACALL MOV MOV ACALL MOV MOV MOV INC MOV MOV INC N0 SUB2_H,N0 SUB2 MUL2_H,DIFF_H MUL2_L,DIFF_L MULTD DIV1_H,PR_H DIV1_L,PR_L SUB1_L,NM NM SUB1_H,NM SUB2_L,N0 N0
程序判断滤波
COMPARE: CLR
SUBB JC MOV
C
A,LIMIT ;│Yn-Yn-1│和△y比较 OVER ;如果│Yn-Yn;1│≤△y,DATA2→DATA DATA,DATA1 ;如果│Yn-Yn-1│>△y, ;DATA1→DATA A ;恢复现场 PSW ;返回
OVER:
POP POP RET
CONT:
;取中值
算术平均滤波
原理 • 所谓算术平均滤波就是把 n个采样值相加,然后取 其算术平均值作为本次有 效的采样信号。

流程图:


现场保护
设置数据区首址
设置循环次数
读数据
累加求和

所有数据 加完否? 是 求平均值
恢复现场


算术平均滤波
PUSH PUSH MOV MOV MOV CLR LOOP: ADD JNC INC NEXT: INC DJNZ MOV PSW A FLAG,#00H R0,DATA R7,#08H A A,@R0 NEXT FLAG R0 R7, LOOP R7,#03H ;现场保护 ;进位位清零 ;设置数据存储区首址 ;设置采样数据个数 ;清累加器 ;两数相加 ;无进位,转NEXT ;有进位,进位位加1 ;数据指针加1 ;未加完,继续加 ;设置循环次数
@R0,FIRST R0 @R0,SECOND ;交换两数 R0 FLAG ;置交换标志位 R7,LOOP ;进行下一次比较 FLAG,SORT ;进行下一轮比较 R0 C A,TIME
中值滤波
RRC A MOV R7,A DEC R0 DJNZ R7,CONT MOV SAMP,@R0 POP A POP PSW RET
;数据个数设置 ;数据区首址设置 ;系数存储首址设置 ;累加结果存储区清 ;零
SAMP_L,#00H SAMP_H,#00H A,@R0 ;读采样值 B,A A,@R1 ;读加权平均系数
加权平均滤波
MUL CLR ADD MOV MOV ADDC JNC INC NEXT: MOV INC INC AB C A,SAMP_L SAMP_L,A A,B A,SAMP_H NEXT FLAG SAMP_H,A R0 R1
加权平均滤波
MOV SAMP_L,A DJNZ R7,DIV128 ;未除完,继续 MOV SAMP,SAMP_L ;保存滤波后采样值 POP A ;恢复现场 POP PSW RET
一阶滞后滤波
原理 • 上述几种滤波方法只适用于变化过 程比较快的参数,对于慢速随机变 化的参数,其滤波效果则不太明显。 此时可采用一阶滞后滤波方法。
中值滤波
原理 • 所谓中值滤波法就是对某一 被测参数连续采样n次(n一 般取奇数),然后把n次采样 值按顺序排列,取其中间值 做为本次采样值。

流程图:


现场保护
设置数据区首址
设置数据个数

数据排序

排序 完成否?

是 取中值
现场恢复
返 回
中值滤波
PUSH PSW PUSH A SORT: MOV R0,DATA MOV CLR LOOP: MOV MOV INC MOV CLR SUBB
程序判断滤波
限速滤波 • 所谓限速滤波就是把两次相邻的采样值进行 相减,求出其增量(以绝对值表示),然后 与采样允许的最大差值(由被控对象的实际 情况决定)ΔY进行比较,如果小于或等于 ΔY ,则取本次采样值;如果大于ΔY ,则 在采样一次,并重新计算增量,若新计算的 增量小于或等于ΔY ,则取最后一次采样值 为本次采样结果,否则取最后两次采样的平 均值为本次采样结果。
一阶滞后滤波
MOV MOV ACALL CLR MOV ADD MOV MOV ADDC MOV MUL2_H,DATA2_H MUL2_H,DATA2_L MULTD C A,PR_H A,BUFF1 PR_H,A A,PR_L A,BUFF2 PR_L,A
一阶滞后滤波
双字节无符号位乘法子程序(MULTD) 入口条件:乘数MUL1存于MUL1_H和MUL1_L单元中,被乘数 MUL2存于MUL2_H和MUL2_L单元中。 出口条件:乘积按顺序存于PR_H、PR_L、MUL1_H、MUL1_L 单元中。 MULTD:CLR C ;清进位标志
程序清单
MOV ACALL MOV MOV ACALL CLR MOV ADDC MOV INC MOV ADDC MOV RET SUB2_H,N0 SUB2 DIV2_H,DIFF_H DIV2_L,DIFF_L DUBDIV C A,DIV1_L A,A0 AX,A A0 A,DIV1_H A,A0 AX,A
Leabharlann Baidu字滤波
程序判断滤波
原理 • 根据生产经验确定出两次采样输出信号可能 出现的最大偏差,若超过此偏差值,则表明 输入信号是干扰信号,应该去掉;若小于此 一偏差,可将信号作为本次采样值。
应用 • 由于随机干扰和误检测或变送器不稳定而出 现严重失真的情况
程序判断滤波
限幅滤波 • 所谓限幅滤波就是把两次相邻的采样 值进行相减,求出其增量(以绝对值 表示),然后与两次采样允许的最大 差值(由被控对象的实际情况决定) ΔY进行比较,如果小于或等于ΔY , 则取本次采样值;如果大于ΔY ,则 取上次采样值作为本次采样结果 。
;A←SUB1_L ;低8位相减 ;保存低8位差值 ;A←SUB1_H ;高8位相减 ;保存高8位差值
程序清单
程序入口:被除数存放在DIV1_H、DIV1_L单元中, 除数存放在 DIV2_H、 DIV2_L单元中; 程序出口:商存放在 DIV1_H、DIV1_L单元中,余数存放在L_L和L_H单元中。
x x
m
0
Nm
m
0
0
基本原理
非线性标度变换
•具体情况具体处理
程序清单
标度变换程序 BDCHAN:
MOV INC MOV MOV INC MOV ACALL MOV MOV MOV INC MOV MOV SUB1_L,AM AM SUB1_H,AM SUB2_L,A0 A0 SUB2_H,A0 SUB2 MUL1_H,DIFF_H MUL1_L,DIFF_L SUB1_L,NX NX SUB1_H,NX SUB2_L,N0
第8讲 计算机控制系统软件设计
介绍计算机控制系统软件设计基础
讲师:李东升
主要内容
数字滤波程序 标度变换程序
第一节 数字滤波程序
概述
计算机控制系统软件
系统软 件
开发 平台 操作 平台 监控 平台 软件 基本 控制 软件
应用软件
先进 控制 软件 局部 优化 软件 操作 优化 软件 最优 调度 软件 企业 计划 决策 软件
相关文档
最新文档