基于多线程温度控制专家系统
摘要:针对常规模糊温度控制存在有较大稳态误差、在设定点附近易产生振荡等不足,在此提出将专家系统引入模糊控制,以达到精确控温的目的。介绍了一种以80C196KB单片机为控制核心,以多线程和专家系统为算法的控制方法,并介绍了简单的多线程和专家知识在温度控制上的应用。应用结果表明,基于多线程的温度控制专家系统,稳态误差小、控制精度高,控制方案有效、可行。
关键词:单片机;多线程;专家系统;温度控制
0 引言
随着科学技术的发展,温度的自动控制已经广泛地应用在生产和生活中,因此对自动控温方法的研究具有很强的实际意义。由于温度具有大惯性和纯延滞的非线性特性,实际温度控制过程的复杂性又使温度控制系统的参数不易确定,因此实际的温度控制系统是一个复杂的自动控制系统,用一般的控制理论难以得到较为满意的结果。以此为目的,在此设计了基于80C196KB单片机为核心的温度控制系统,通过多线程和专家系统优化程序的算法,对温度进行闭环控制,从而达到精确控温的目的。
1 硬件系统设计
图1为系统原理框图,通过图示可以看出,硬件系统分为:温度采样及放大、显示、按钮输入、温度控制四个部分。系统首先通过AD590采样将温度信号转化为电压信号,电压信号经过放大通过80C196KB单片机对其进行A/D采样,通过采样的结果,可以算得控制系统的温度并显示出来,然后将实际温度与设定的温度(设定温度可以通过输入按钮进行输入)进行比较,根据比较的结果控制加热电阻和风扇的占空比,从而达到闭环控温的目的。
2 软件系统设计
在软件设计中,采用了多线程的编程结构并结合专家知识,对整个系统的控制性能进行改善。
2.1 多线程结构
多线程是指“同时”存在几个执行体,按几条不同的执行线索共同工作的情况。多线程实现单个进程中的并发计算,各线程间共享进程空间的数据,并利用这些共享单元来实现数据交换、实时通信与必要的同步操作。在单片机编程里面,多线程可以通过编写中断子程序进行实现。一个中断子程里面可以包含优先级不同的线程,优先级高的排在该中断子程的开始,优先级最低的排在最后。执行顺序如下:屏蔽其他线程→读系统共用资源→执行操作→改写系统共用资源→开放所有线程→返回主进程。
2.2 专家系统
在该系统中,加热电阻的控制脉冲和风扇的控制脉冲是控制温度关键,其脉宽的设置决定了系统温度控制的精度和稳定性,而脉宽的设置是由专家知识进行判定的。
2.2.1 专家系统概述
所谓专家系统,是指具有专家知识,能够像专家一样解决特定领域复杂问题的计算机软件系统。其特征如下:
(1)系统功能的针对性。ES通过牺牲通用问题求解能力而换得在某一狭窄领域高水平处理问题的能力。
(2)符号推理启发性。ES主要处理不良结构问题,需运用多种启发性经验知识。这些启发式知识往往具有不完全性和不确定性,因此ES常要采用不精确推理等非常规推理方法。
(3)透明性。ES可向用户解释其推理过程,并能回答一些关于它自身的问题。
(4)灵活性。由于ES知识库采用了独立于程序的外部显式表示方法,用户很容易对其进行修改或补充。
2.2.2 脉宽控制
从经验可以知道,当实际温度和目标相差(下面统一称作△T)甚远时,希望电阻发热量大些或者风扇转速高些;而△T较小时。希望电阻发热量小些或者风扇转速低些。
评论