第四讲 模拟量的输入输出通道
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四讲 模拟量的输入输出通道
过程控制
前向通道和后向通道是过程控制系统的重要组成部分
1、前向通道
数字信号处理
1.1 A/D 转换
1.1.1 硬件电路设计
(1)分辨率的选择
分辨率用位表示,n 位的A/D 转换器表示可以把输入信号分为2n 份,每一份为全量程1/2n ,称为1个LSB 。例如,本例程中采用8位A/D 温度范围为20℃~100℃,则
C 5.0C 3125.02
20
100LSB 18
︒<︒=-=
(设计要求) 所以选择8位的A/D 转换器即可 (2)精度的选择
精度用LSB 表示,即分辨率的倍数来表示,例,若精度为±2LSB ,说明转换误差为±2×0.3125=±0.625℃〉±0. 5℃不满足设计要求。 (3)速度选择 完成一次转换的时间(采样速度) 按要求可选择芯片:ADC0804 参数:单通道8位,分辨率8位 精度±1LSB 满足要求 速度 100μs 带有三态缓冲器,可以直接和数据总线接口 (4)电路连接
片选RD WR ADC0804
WR
RD
INTR
DB 0~DB 7CS
A/D 转换的时序图
1.1.2 软件的编制 查询法和中断法 (1)查询法
Extern unsigned char convert_ad(void)
{
Char xdata *dptr;
Dptr=0x8000;
*dptr=0;
While(int0);
Return(*dptr);
}
1.1.3 测试
可以用LCB直接显示转换结果(3位整数),描点画线检查A/D转换的线性度。
A/D
万用表测出
的输入电压
1.2 数字滤波器
1.2.1 问题定义
来自传感器或变送器的有用信号中,往往混杂了各种频率的干扰信号。为了抑制这些干扰信号,通常在信号入口引入滤波器。常用的RC 滤波器能抑制高频干扰信号,但对低频干扰信号的滤波效果较差。而数字滤波器可以对极低频干扰信号进行滤波,以弥补RC 滤波器的不足。另外,它还具有某些特殊的滤波功能。
所谓数字滤波,就是在计算机中用某种计算方法对输入的信号进行数学处理,以便减少干扰在有用信号中的比重,提高信号的真实性。这种滤波方法不需要增加硬件设备,只需根据预定的滤波算法编制相应的程序即可达到信号滤波的目的。
1.2.2 常用的滤波算法
(1)限幅滤波
限幅滤波的作用是把两次相邻的采样值相减,求出其增量(以绝对值表示),然后与两次采样允许的最大差值(由被控对象的实际情况决定)Δy进行比较,若小于或等于Δy,则取本次采样值;若大于Δy,则仍取上次采样值作为本次采样值
当| y(n)- y(n -1)|≤Δy时,则取y(n)= y(n)
当| y(n)- y(n -1)| >Δy时,则取y(n)= y(n -1)
对采样信号由于随机干扰,如大功率设备的启停,造成的尖峰干扰使得采样数据偏离实际值太远,可以采用限幅滤波。 (2)算术平均值滤波
算术平均值法滤波的实质即把一个采样周期内对信号的 n 次采样值进行算术平均,作为 本次的输出 Y (n ),即
∑==n
i n y n n Y 1
)(1)(
适合于压力、流量等周期脉动的采样值进行平滑加工,但对偶然出现的脉冲性干扰的平滑作用不理想,因而它不适用于脉冲性干扰比较严重的场合。 (3)中值滤波
所谓中值滤波是对某一参数连续采样 n 次(一般 n 取奇数),然后把 n 次的采样值从小到大或从大到小排队,再取中间值作为本次采样值。中值滤波对于去掉由于偶然因素引起的波动或采样器不稳定而造成的误差所引起的脉动干扰比较有效。若变量变化比较缓慢,则采用中值滤波效果比较好,但对快速变化过程的参数(如流量),则不宜采用。一般 n 取 3 ~5次。
(4)低通数字滤波
前面讲的几种滤波方法基本上属于静态滤波,主要适用于变化过程比较快的参数,如压力、流量等。但对于慢速随机变量,则采用短时间内连续采样求平均值的方法,其滤波效果往往不够理想。
为了提高滤波效果,可以仿照模拟系统 RC 低通滤波器的方法,将普通硬件 RC 低通滤波器的微分方程用差分方程来表示,便可以用软件算法来模拟硬件滤波器的功能。
00
u dt
du u i +=τ
称为电路的时间常数RC =τ 用计算机程序仿真该滤波器
输入用X 替代u i ,输出用Y 替换u o 用差分代替微分
)()
1()()(n Y t
n Y n Y n X +∆--=τ
整理得
)1()()(-∆++∆+∆=
n Y t n X t t n Y ττ
τ
令t t
∆+∆=τα
则 )1()1()()(--+=n Y n X n Y αα 或 ))1()(()1()(--+-=n Y n X n Y n Y α Δt —— 为采样周期,本例中为10ms=0.01s α —— 为惯性时间常数,1<∆+∆=
t
t
τα
本例中若 取τ=0.1s (较快)则 α=0.09
τ=0.3s (较慢)则 α=0.03
由上式可以看出,本次滤波的输出值主要取决于上次滤波的输出值(注意,不是上次的采样值,这和加权平均滤波是有本质区别的)。本采样值对滤波输出的贡献是比较小的,但多少有些修正作用。这种算法便模拟了具有较大惯性的低通滤波功能。 适用场合:适用于高频和低频的干扰信号。 1.2.3 程序设计
与时间有关,必须在10ms 定时中断中运行,每次中断采集一个A/D 转换数据进行一次计算,Y(n)必须为一个全局变量,其值下次计算要用到。为保证精度,Y(n)应该用浮点数。 Filter_out=Filter_out+AFA*(float)(x- Filter_out)
令LCD 直接显示filter_out ***。** 可以观察到滤波效果。
1.3 标度变换与非线性校正
在计算机控制系统中,生产中的各个参数都有着不同的数值和量纲,例如,测温元件用热电偶或热电阻,温度单位为℃ ,传感器将温度信号变换成电流或电压信号,在经过变送器转换成 A /D 转换器所能接收的 0 ~ 5V 统一电压信号,又由 A /D 转换成 00 ~ FFH (8位)的数字量。为进一步显示、记录、打印以及报警等,必须把这些数字量转换成我们熟悉的物理量纲℃单位,以便操作人员对生产过程进行监视和管理,这就是所谓的标度变换。
如果在信号传递、变换过程中的每个环节都是线性的,则实际温度与A/D 口读数应该有如下的线性关系。
A/D 读数
max
t t max
如果已知(X0,T0)(Xmax ,Tmax)根据线性插值的公式任意读数所代表的温度可用下式求出:
0max 0max 00x x t
t x x t t --=-- 000
max 0
max )(t x x x x t t t +---=
例如:在我们的试验系统中,温度系统模拟器的温度范围为20~ 100,对应的输出是0~5V ,对应的A/D 读数为0~255,所以: X0=0 xmax=255 T0=20 Tmax=100 带入上式可得 t=0.3125x+20
利用这个式子很容易编成程序,将x 变成t ,例如x=128 T=0.3125*128+20=60