关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于模糊控制的恒温控制系统设计

基于模糊控制的恒温控制系统设计

作者: 时间:2010-12-10 来源:网络 收藏

1.3 温度控制和超界报警模块
系统利用控制电热丝在一个加热周期内的加热时间来实现对水温的控制。端口信号经过光耦隔离后,利用三级管驱动电磁继电器的闭合与断开,从而控制加热时间。当温度超过100℃或者实时温度变化超过10℃时,将驱动蜂鸣器进行长时间报警提示,当设置温度变化超过10℃时,蜂鸣器进行短时间报警提示。

2 软件系统设计
系统的控制思路为:根据模糊控制模型和实际应用情况推理出模糊查询表,模糊查询表表示对于不同状态的加温周期时间。单片机根据实时采样温度的变化查取模糊查询表,对加温周期做出调整,从而达到对温度控制的目的。
2.1 主程序
主程序一直处于等待接收串口信号状态,同时判断是否需要发送数据。定时中断每秒对采样温度进行平均值滤波后,置串口发送标志,在主程序中发送。单片机接收到PC信号的第一个字节时,调用接收数据子程序,将剩余数据接收到缓冲区内,并判断接收数据的类型,执行相应操作。
为避免串口干扰信号,系统采用应答模式和单向传输混用的串口通信,以提高通信的稳定性和系统的实时性。上位机下发命令采用应答模式,单片机实时温度信息上传采用单向通信模式。通信协议由包头、命令、数据长度、数据包、校验位组成。
2.2 1ms定时中断程序
1ms定时中断作为系统的总时钟。每1 ms刷新一位数码管,每10 ms扫描一次按键,每1 s的最后100 ms中,每隔10 ms采样一次温度值,将10次采样值冒泡排序,去掉最大值和最小值后的平均值,作为本次实时采样的最终值送入显示缓冲区。若恒温控制开关打开,则每1 s还要调用恒温控制程序。若报警开关打开,则每1 s取反一次扬声器输出。定时中断返回前将重置看门狗。
2.3 模糊控制模型建立
系统利用了双输入单输出的模糊控制模式。2个输入语言变量E,EC分别表示温度误差和温度误差的变化率,输出语言变量U表示继电器的闭合时间。语言变量E赋8个值,即正小(PS)、正零(PO)、负零(NO),负小(NS),负中(NM),负大(NL),负加大(NXL),负超大 (NXXL),考虑到系统中并未设置降温措施,E的赋值并不对称。EC赋7个值,即正大(PL)、正中(PM)、正小(PS)、零(PO)、负小 (NS)、负中(NM)、负大(N-L)。U赋4个值:零(O)、正小(PS)、正中(PM)、正大(PL)。为补偿温度控制无超调量,E的量化值为 -10~2,EC,U的量化值分别为-6~6,0~6。每个值采用三角形隶属函数模型,如图3~图5所示。

本文引用地址://m.amcfsurvey.com/article/162581.htm

f.JPG

g.JPG

依靠经验来建立控制规则,但是得到的控制量并是一个模糊量,不能直接用来作为控制输出,采用C语言进行解模糊处理,得到模糊查询表,并在测试中反复调整,最终得到模糊查询表如表1所示。
2.4 模糊控制程序
在单片机的程序中,设置了变量TOUT表示恒温控制周期,TSET表示一个恒温控制周期中韵加热输出时间,即表中的U。每隔TOUT的时间,将调用模糊推理程序,求出误差E和误差变化率EC。其中:
E=实时采样温度值-设定温度值
EC=当前误差-上次误差
当误差较大时,不必进行模糊控制,只需判断是全速加热或是停止加热。当误差进入预设的控制范围时,量化E,EC,并由量化值查询模糊查询表,得出该周期应该输出的加热时间TSET。
在测试中发现,采用单一的E,EC论域的效果并不让人满意,系统灵敏度较低。考虑加热惯性和高温散热较快的影响,采用了两级控制的方式。在第一级控制中,E和EC的论域范围较大,可快速加热到恒温设定温度附近;此后进入第二级控制,缩小E和EC的论域范围,提高控制的灵敏度。经测试,采用此方式可在各温度层次控制过程中将恒温误差稳定在±0.3℃以内。



关键词:单片机传感器

评论


相关推荐

技术专区

关闭