基于神经元PID的温湿度实验箱设计与实现
2015-01-18陶兴朋
陶兴朋,王 婵,张 铮
(湖北工业大学机械工程学院,湖北 武汉430068)
温湿度精确控制是保证生产和实验环境的一项重要内容。常规的PID控制器只有在参数确定的情况下才能完成控制任务,一旦环境发生变化,就需要重新调整PID控制参数[1]。本文提出的基于神经元PID的温湿度实验箱的设计具有自学习能力,可对PID参数进行自整定,提高了生产和实验效率。
1 系统硬件设计
1.1 温湿度控制箱设计要求
根据某客户温湿度实验箱的实际需求,温湿度控制的基本功能需求如下:具有四路数字式温湿度传感器,分别从四个方位测量实验箱的温湿度值;两路模拟式流量控制阀,一路控制干空气流量,另一路控制湿空气流量;四路PWM控制的半导体温控模块,兼具加热和制冷两种功能,控制实验箱的温度;四路电子天平进行控制和数据显示,采用7英寸(17.8cm)电容式触摸屏作为人机接口,实时监控温湿度实验箱的数据;控制器扩展RS232接口,用于上位机监控温湿度实验箱的数据;在60cm×60cm×60cm的温湿度实验箱中,温湿度控制范围和精确度指标如表1所示。
表1 温湿度控制范围和精度要求
1.2 温湿度实验箱控制系统硬件总体结构设计
温湿度实验箱的控制系统硬件结构主要包括:电源模块、温湿度采集模块、触摸屏人机界面、STM32最小系统、改进的H桥驱动电路、半导体温度控制器、D/A转换器、湿度控制流量器,以及扩展串口模块(图1)。其中电源模块将交流220V电源分别转换为直流24V、12V、5V、3.3V电源为各模块供电;温湿度采集模块采用数字式温湿度传感器,其温度测量精度为0.1℃,量程为-40℃~120℃,相对湿度的测量精度为1%,量程为0~100%,传感器数据使用IIC总线方式进行读取。
图1 控制系统硬件框图
STM32最小系统采用意法半导体的STM32F103RBT6作为主控芯片。该芯片是一款基于ARM的32位处理器,处理能力较强,能够执行一些复杂算法,具有20K的RAM和128KB的FLASH;改进的H桥驱动电路用来驱动半导体温度控制器[2]16位的D/A转换器将0~65 535的数字量转换为0~5V的模拟量电压用来控制湿度流量控制阀的流量大小。扩展串口模块采用MAX232芯片将TTL电平转换为RS232电平,与PC上位机进行通信。
1.3 四路温湿度数据采集模块设计
对于四路温湿度传感器而言,若为每路温湿度传感器分配2个IO口,则需要占用8个IO口,布线较多,资源利用率降低,系统的更改和扩充比较复杂且可靠性也不高。考虑到四路温湿度传感器采用IIC串行总线具备多主机系统所需的包括总线裁决和高低速器件同步功能,只有2根双向信号线(一根是数据线SDA,另一根是时钟线SCL),每个接到总线上的温湿度传感器都有唯一的地址[3]。如图2所示,将四路温湿度传感器分别挂接在同一个IIC总线上,主机与温湿度传感器之间的数据传输可以由主机发送地址和命令到温湿度传感器,相应的温湿度传感器收到指令后立即将采集的数据发送到主机。此时温湿度传感器为发送器,主机为接收器。
图2 四路温湿度数据采集模块
1.4 改进H桥驱动电路设计
由于半导体温湿度控制器的功率较大,不能直接使用STM32来驱动,可采用H桥驱动电路,然而H桥驱动电路半导体温度控制器时,通常难以保证H桥上处于两个同侧位置的两个三极管不会同时导通,倘若同侧的两个三极管同时导通,那么电流就会从正极穿过三极管直接回到负极,此时电路中电流会因为电路中没有其他负载而达到最大值,甚至烧坏三极管。H桥电路所需的控制引脚较多,每个引脚单独控制,同步性较差[4]。基于上述原因,在实际驱动电路中通常要用硬件方式方便控制三级管的开关。如图3所示,改进的H桥驱动电路在基本的H桥电路基础上增加了4个与门和2个非门。其中4个与门由同一个使能端信号“ENABLE”控制,通过使能信号就可控制整个电路的开关。而两个非门通过提供一种方向输入,可以保证任何时候在H桥的同侧都只有1个三极管导通。采用以上方法,对半导体温度控制器的控制只需要3个信号:ENABLE、DIR0、DIR1。若ENABLE置为1,DIR0置1,而DIR1置0,Q1、Q4导通,Q2、Q3截止,则半导体温度控制器处于加热模式;若ENABLE置1,DIR0置0,而DIR1置1,Q2、Q3导通,Q1、Q4截止,电流反向,半导体温度控制器处于制冷模式,加热和制冷的功率大小可通过PWM方式进行控制。
图3 改进H驱动电路图
2 系统软件设计
2.1 神经元PID温湿度控制原理
神经元是神经网络的基本单位,具有自学习能力,其结构相对简单而且容易实现。若将其与通用PID控制算法相结合,可以在一定程度上解决传统PID控制器参数不易在线调整、环境适应性差等问题[5]。神经元PID控制器控制原理如图4所示[6]:
图4 神经元PID 控制原理图
假设神经元的3个输入分别是:
式中,系统输入与输出的偏差e(k)=r(k)-c(k)。可以选择线性函数作为输出节点的激励函数:y(k)=K0u(k),单神经元输入节点的输入与输出关系为
其中:K为比例系数,Wi(k)为连接权系数,而增量式PID控制器的算式为
对比式(1)和式(2),采用待定系数法可得PID控制器参数
神经元的权系数可以通过自学习进行自适应调整。为有效发挥神经元的自学习能力,采用移动的学习算法对权值进行学习。首先引入性能指标函数Z,Z是输出误差的平方,即
使权系数Wi(k)的修正方向与Z减小的方向相同,即对Wi(k)沿着负梯度方向搜索,并选择ηi(0<ηi<1)作为学习速率,则有
从式(4)中可见该算法的运行效果与可调参数K和学习速率η1、η2、η3等的选取有很大关系。在实际应用中,主要通过改变K的值来提高响应速度:当误差较大且大于零时,增大K以提高动态行程;当误差小于0时,应减少K以抑制超调。
2.2 下位机软件设计
2.2.1 μC/OS-II操作系统的运行流程 考虑到温湿度控制系统需要执行温度采集与控制、湿度采集与控制、神经元PID控制算法、触摸屏的显示和控制、串口通信等多个任务,若采用非操作系统的方式开发程序则实时性难以保证,可靠性不高而且代码的移植性较差,可使用μC/OS-II统来解决上述问题。μC/OS-II是一个微型的、可移植、固化、剪裁的抢先式实时系统,支持多任务管理[7],μC/OS-II操作系统运行流程如图5所示。
图5 μC/OS-II操作系统运行流程图
μC/OS-II操作系统运行流程如下。启动操作系统后首先进行系统全局变量和数据结构的初始化,然后开始创建用户任务(包括创建任务堆栈并指定任务的优先级),接着就是启动μC/OS-II多任务管理,执行优先级较高的任务。最高优先级任务执行完毕后,开始执行下一个用户任务;任务执行过程中,产生高优先级的任务中断,系统将执行高优先级的中断任务。
2.2.2 神经元PID温湿度控制流程 神经元PID温湿度控制流程如下:系统初始化之后通过IIC总线方式采集四路温湿度传感器数据,并通过用户指令决定是否进行PID参数自整定;若需要进行参数自整定,则通过神经元PID控制算法的自学习功能,使权值在过程中不断学习,达到优化控制的目的;整定完成后将整定的参数进行存储并输出,然后进行温湿度控制模式,当测量的温度值超出设定的温度值范围时,启动神经元PID温度控制算法,并输出PWM控制量完成对温度的控制;同理,当测量的湿度超出设定的范围时,启动相应的神经元PID控制算法,并输出控制数字量;最后通过A/D转换器将数字量转换为模拟量控制干湿空气流量从而完成湿度控制。神经元PID控制流程如图6所示。
图6 神经元PID温湿度控制流程图
2.3 触摸屏人机界面设计
采用Kinco公司的ET070型触摸屏,其显示屏为7英寸,通过RS232串口与STM32最小系统进行通讯。下位机将采集的四路温湿度传感器数据和四路电子天平数据发送给触摸屏,触摸屏对收到的数据进行处理显示。如图7a所示,界面软件系统对四路温湿度分别求其平均值,并显示在编辑框中。为了帮助用户对采集的数据进监控和分析,显示界面分别添加了温湿度监测的棒状图和趋势图,以及对温湿度进行设定的输入框。如图7b所示的称重界面,分别添加4个天平的显示框和趋势图,方便用户对四路天平称重数据的变化趋势进行监测,同时还可通过清零、去皮、称重、退出等按钮发送相应的指令对电子天平进行控制。
图7 监控界面
3 实验测试与分析
为了充分验证本温湿度控制系统的准确性和可靠性,通过触摸屏界面分别将温度目标值从0℃~50℃范围递增,递增步长设置为5℃,相对湿度目标值从0~100%范围递增,递增步长设置为10%,设置间隔为5min,并记录结果得出一组数据。该实验重复10次,取平均值,得到数据如表2和表3所示。
表2 实验箱温度控制数据表
表3 实验箱湿度控制数据表
从表2中可以看出当温度范围为10℃-30℃时,超调量小于0.3℃,稳态精度不超过0.3℃,且较为稳定,调节时间少于2min。当温度范围为0℃~10℃、30℃~50℃时,超调量低于0.4℃;调节时间最大为3.1min,满足控制要求;同理,由表3可知,当相对湿度范围为25%~75%时,超调量低于6%,稳态精度不超过3%,调节时间最大为3.5min,当相对湿度范围为0~25%、75%~100%时,超调量最大为13%,稳态精度低于5%,调节时间缩短为2.5min以内,也满足控制要求。可见当温度处于0~10℃、30℃~50℃范围内或相对湿度为0~25%、75%~100%时,超调量有所增加,稳态精度变大,超调时间也延长了,经研究发现,其主要原因在于实验箱并非完全封闭的结构,当实验箱中温湿度偏高或偏低,与环境温湿度相差较大时,易受到外部的干扰,所以出现了较大的超调和稳态误差,以及较长的调整时间。
4 结束语
基于神经元PID温湿度实验箱的设计包括硬件设计和软件设计。硬件设计选用32位的STM32作为主控芯片,可充分利用其硬件资源;四路温湿度传感器采用IIC总线进行通信,大大节省了IO口的数量和布线数量;温度控制部分在原有的H桥驱动电路基础上改进提高了驱动的稳定性和同步性。软件设计部分移植了μC/OS-II操作系统,方便对多任务进行管理,提高了应用程序的执行效率和可移植性,控制部分采用神经元的PID控制算法,该算法具有自学习能力,能够根据实验状态进行PID参数自整定,获得最佳的PID控制参数,为了方便用户对温湿度控制进行实时监控,设计了触摸屏人机交互界面。最后对整个温湿度实验箱进行了测试与分析,测试结果表明该控制系统满足应用要求。
[1] 陶永华.新型PID控制及其应用[M].北京:机械工业出版社,2002.
[2] 祁鸿芳.半导体温度控制系统研究[J].兰州工业学院学报,2013(02):13-16.
[3] 王 毅,万 英.基于IIC总线的温湿度测量系统的设计[J].福建师范大学学报,2014(06):40-45.
[4] 陶 凯,赖康生.基于PWM控制H桥驱动半导体制冷片的恒温系统[J].工业控制计算机,2013(04):131-133.
[5] 孙 健,王金城.基于单神经元PID的电阻炉智能温度控制系统[D].大连:大连理工大学,2008:38-39.
[6] 李 科,王永骥.温控系统的智能PID控制算法研究[D].武汉:华中科技大学,2006:11-15.
[7] 任 哲.嵌入式实时操作系统μC/OS-II原理及应用[M].北京:北京航空航天大学出版社,2005.