- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于多线程温度控制专家系统
摘要:针对常规模糊温度控制存在有较大稳态误差、在设定点附近易产生振荡等不足,在此提出将专家系统引入模糊控制,以达到精确控温的目的。介绍了一种以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较小时。希望电阻发热量小些或者风扇转速低些。
图2为系统温度控制电路图,从图中可以看出,脉宽越小,电阻的发热量越大,风扇的转速越高。至于控制的具体脉宽是多少,这就需要不断的尝试,通过经验进行判断,看哪些组合最适合。判断的原则如下:保证系统控制的稳定性;尽量不要出现超调的现象;保证温度的控制精度。通过实验,得到了如下数据的脉冲控制,见表1。
2.3 程序具体结构
在软件系统中,一共有3个线程,按照优先级从高到低的顺序如下:温度设置线程、温度采样线程、温度显示线程。另外系统有1个主进程。
2.3.1 主进程
主进程实现如下操作:设置各个中断(及设置线程)、初始化全局变量以及等待中断。它的流程图如图3所示。
2.3.2 温度设置线程
该线程通过HIS上升沿触发事件来实现,其中HSI.0为温度加10,H1S.1为温度减10,HIS.2为OPTION取反,其流程图如图4所示。
2.3.3 温度采样线程
温度采样线程如图5所示,该线程的扫描周期为3 000。在该线程中,对温度的采集进行了平均化的处理,即每16次平均作为最终结果,这个处理降低了毛刺信号的影响,使得温度采样趋于稳定,从而使温度显示变得比较稳定,提高了系统的抗干扰能力。另外,在“设置HSO_ PWM和PWM_CONTROL”这一步中,采用了专家知识设置控制的脉宽,使得温度的控制趋于更精确。
2.3.4 温度显示线程
温度显示线程图6所示,该线程的扫描周期为1 000。在该线程中,单片机的P1.0~P1.3管脚输出至74LS48译码器,而单片机的P1.4~P1.6管脚分别控制十位、个位、小数点三个数码管的通与断。每一个状态中,数码管只有一个被点亮,在足够短的时间内,通过循环点亮三个数码管,就可以得到数码显示的效果,这一步可以通过对状态的循环移位来实现。
3 结语
由于一般控制理论难以对温度这种大惯性、纯延滞的非线性且参数不易确定的系统进行控制。为此以温度控制为例,介绍了一类多线程温度控制专家系统,该系统具有调节时间短、超调量小、稳态精度高的特点,能够对温度进行较为满意的控制。