ICL7135是一个较为常见的双积分型数字转换器芯片。为节约单片机I/O口,本机利用ICL7135的BUSY、POLAR脚,分别与单片机的两个I/O口相连,BUSY输出端高电平宽度等于积分与反积分时间之和,ICL7135内部规定积分固定时间为10 001个时钟脉冲,反积分时间与被测电压成正比,因此,可通过单片机一个定时器来测量BUSY脚脉宽,减去10 001个时钟脉冲后,得到与被测参数成正比的数值。
本程序设计采用了数值滤波的方法,通过ICL7135多次转换后,将最大值、最小值舍弃,余值进行算术平均,保证了测量的准确。
2.2 温度控制
对加热温度的控制是采用模糊积分算法,经单片机逆模糊运算,得到输出值,通过光耦输出的PWM信号,经整流滤波形成0~10 mA的恒流信号,去控制温控阀的启闭,调节蒸汽,来实现对加热器加热,达到理想的温度控制效果。
2.3 人机接口
本机有4只触摸式按键和8位共阳显示数码管,可通过按键对各项控制参数进行调整,还可实现自动、手动操作的无扰切换。采用AT93C66的SPI总线E2PROM,可擦写100万次,用以保存设定温度值、报警温度、温度误差和温差变化率的量化因子,以及输出功能函数表、KI积分系数等,都可通过键盘进行调整,便于生产现场讲行人工整定。
3 算法设计与实现
本系统温度控制中,散热是自然散发,所以在模糊控制中模糊表的建立应根据实际加热器散热的快慢来决定。
3.1 模糊化
设e为温度误差,即实际温度与给定温度之间的偏差。本机初始设定范围为-40~+40℃,划分为5个变量等级(PB,PS,O,NS,NB),ec为温度误差变化率,初始设定范围为-5~+5℃/min,划分为4个变量等级(PB,PS,NS,NB),本系统输入信号e,ec采用梯形隶属度函数,为获得速度上的提高,本样机把输入范围内的256个数据点存储在ROM中,供模糊运算程序查表,这样可避免进行数值计算。本机可通过按键调整温度误差、温度误差变化率的量化因子,方便进行现场整定。