本发明涉及恒温控制算法领域,具体地说是一种基于神经网络的温度控制方法。
背景技术:
近年来,超声波分散仪在诸如中药提取、矿浆浸取、液体处理、分散、乳化等领域有着广泛的应用。其在提高产品效率,缩短反应时间,降低系统能耗等方面都有着显著的效果。但是在实际应用过程中会出现很多的问题,其中温度控制就是其中之一。因为超声波分散仪提取中药材的最佳温度是在40℃到60℃之间,温度过高会影响萃取剂的稳定性并影响萃取效率,所以温度控制程度是考量分散仪工作效率的一个重要的指标。
温度控制系统往往是一个具有非线性、滞后性、时变性的复杂系统,因此如何利用合适的温度控制系统进行温度控制是我们要解决的问题。现今我们常用的恒温控制系统主要基于pid控制方法进行控制,pid方法原理简单、适应性强、稳定性强等优点。但是传统的pid控制方法在进行非线性、滞后性、时变性的温度控制是难以取得预期的控制效果。并且由于超声波设备在实际工作中的时候放热速度快,对温度控制的快速性、稳定性、鲁棒性有很高要求,所以仅仅只用pid控制不足以满足要求。
技术实现要素:
本发明针对现有技术的不足,提出了一种基于神经网络的超声波分散仪温度控制方法。
超声波分散仪在反应釜中对材料进行分解的时候会放出大量的热量,通过在反应釜的外围的冷却水管道,用恒温槽中的冷却水来降低反应釜中的温度,由于冷却水的流速越大的时候,降温的速度也会越快,从而我们可以控制冷却水的流速来控制反应釜的温度。
在前馈系统中,利用神经网络构成前馈控制器,使得神经网络起到一个前馈补偿器的作用。其中输入为干扰的测量值即为进料量,输出为冷却水阀的控制信号。因为在前馈系统中,系统对扰动实现全补偿的条件是,当扰动q不为零时,输出的温度y为零。所以当系统中只有前馈系统时,将输出的温度值是否为零作为神经网络的训练目标进行训练,温度输出量的变化将引导网络权值及输出的调整,最终使得温度输出不受扰动量变化的影响。
在反馈系统中,通过反应釜中的温度传感器测得温度值,先将温度信号通过滤波算法进行滤波处理,然后将处理完的温度信号和期望的温度信号传送到模糊rbf神经网络中,通过模糊rbf神经网络输出的pid参数传送给pid控制器。而后根据pid算法控制冷却水流量阀的给进量来控制冷却水流量。进而控制反应釜的温度。
本发明方法的步骤包括:
步骤1、通过传感器对恒温控制系统的各项指标进行数据采集。
用流量传感器采集反应材料的进料量,用温度传感器采集反应釜中的环境温度,用流量传感器采集冷却水管中流量的大小。
步骤2、bp神经网络训练以及前馈控制。
在前馈系统中,利用神经网络构成前馈控制器,使得神经网络起到一个前馈补偿器的作用。其中输入为干扰的测量值即为进料量,输出为冷却水阀的控制信号。因为在前馈系统中,系统对扰动实现全补偿的条件是,当扰动q不为零时,输出的温度y为零。所以当系统中只有前馈系统时,将输出的温度值是否为零作为神经网络的训练目标进行训练,温度输出量的变化将引导网络权值及输出的调整,最终使得温度输出不受扰动量变化的影响。设y为输出即温度信号,gpd(s)为干扰量和被控变量温度之间的传递函数,gpc(s)为操纵变量(冷却水流量)对被控变量温度之间的传递函数,gff(s)为前馈补偿函数。出现扰动后,使得扰动q作为bp神经网络的输入,从而输出一个前馈控制信号来控制冷却水阀的开度。
因为在实际生产过程中由于被控对象的特性十分复杂,有许多的其他干扰因素,所以无法获取到理想的扰动通道和控制通道的数学模型,即gpd(s)和gpc(s),从而很难求出
step2.1、先对网络中权值、学习率、动量因子进行初始化,选取n个扰动信号q作为样本在bp神经网络中的迭代训练,设第k个样本的输入向量为
step2.2、bp神经网络的隐含层的输入输出分别为
式中
设bp神经网络隐含层神经元的泛化函数为
step2.3、bp神经网络的输出层的输入为
输出为:
式中
step2.4、由误差函数
step2.5、对于输入样本,反向计算每一层神经元的局部梯度,按式
式中g′(x)=g(x)(1-g(x)),f′(x)=(1-f2(x))/2,
k+1时刻下输出层和隐含层的权值为:
计算修正后的权值,放入下一个样本值,转到step2.3。
步骤3、用滤波算法对反应釜中的温度采样信号进行滤波
根据信号的采样频率fs,用公式ld=k×fs×lp计算出中值滤波器的窗口宽度ld,lp为毛刺脉冲宽度,k为整数型窗口系数,。得到窗口宽度ld后,按权值向量w=[w1,w2,...,w2d+1]对窗口内数据进行加权处理。再按
l(a)=med[w1※s(a-d),wd+1※s(a),...,w2d+1※s(a+d)]
进行取中值运算,对信号进行重新的输出,得到加权中值滤波后的处理结果作为神经网络的输入信号。其中med表示取窗口内所有位数的中位数,※表示复制即
步骤4、对rbf神经网络进行训练。
step4.1、初始化隶属函数的中心c0和宽度b0,以及网络的初始权值。选定学习系数和惯性系数。
step4.2、采样系统给定值和实际输出,计算误差e(k)和误差变化率ec(k)。k表示第k个采样点。
step4.3、在rbf神经网络中,设输入向量x=[x1,x2]t,其中x1为实际输出温度和期望值之间的误差e(k),x2为误差变化率ec(k)。
由此可以确定模糊rbf神经网络第二层的节点数为7层,即l=7,第三层的节点数为49个,即n=49。
第一层为输入层即f1(i)=xi,i=1,2。
第二层为模糊化层,模糊隶属函数均选用高斯函数,得到的输入分量在不同的模糊语言值对应的隶属度为:
其中cij、bij分别时第i个输入变量第j个模糊集合的隶属函数的中心矢量和宽度。
第三层为模糊推理层,每个节点的适用度为:
其中
第四层为输出层,即f4(1),f4(2),f4(3)分别为pid的三个参数kp,ki,kd。
其中wsd为输出层节点与第三层各个节点的连接权矩阵,s=1,2,3。pid调节器的控制规律为:
其中kp为比例系数,ki为积分系数,kd为微分系数。
因为控制器δu(k)=kpx(1)+kix(2)+kdx(3),其中
x(1)=e(k)-e(k-1)
x(2)=e(k)
x(3)=e(k)-2e(k-1)+e(k-2)
采用增量式pid算法
u(k)=u(k-1)+δu(k)
网络逼近误差指标函数为二次型
其中r(k)为温度的期望值也就是我们的给定值,y(k)为实际的输出温度值。判断e是否小于阈值ε,小于则退出训练,否则进行下一步。
step4.4、根据梯度下降法,节点基宽、节点中心及权值调节可得
其中η1为学习率,α1为动量因子,取值均在0到1之间。
step4.5、取下一个采样数据,返回step4.2。
步骤5、用模糊rbf神经网络计算pid参数。
把rbf神经网络和模糊pid算法相结合,设r(k)为输入的给定信号,y(k)为输出信号,则基于rbf神经网络改进的pid控制误差为e(k)=r(k)-y(k)
pid算法中的每个参数由x(1),x(2),x(3)分别表示。
x(1)=e(k)-e(k-1)
x(2)=e(k)
x(3)=e(k)-2e(k-1)+e(k-2)
将x(1),x(2),x(3)代入到增量式pid控制算法中求解,得控制算法
u(k)=u(k-1)+kpx(1)+kix(2)+kdx(3)
神经网络的训练指示为
将e(k)带入增量pid控制器的参数kp,ki,kd的表达式中
其中,学习效率由η表示,系统的灵敏度信息由
本发明相对于现有技术具有效果:控制速度快,鲁棒性高,具有超调性。
附图说明
图1为温度控制系统;
图2为bp神经网络结构图;
图3为模糊rbf网络结构;
图4为前馈学习控制系统;
图5为改进pid控制策略。
具体实施方式
本发明采用了前馈加反馈的方法控制反应釜的温度。结构如图1所示。
一种基于神经网络的超声波分散仪温度控制方法,该方法具体包括以下步骤:
步骤1、通过传感器对恒温控制系统的各项指标进行数据采集。
通过传感器对恒温控制系统中的各项参数指标进行数据采集,用流量传感器采集反应材料的进料量,用温度传感器采集反应釜中的环境温度,用流量传感器采集冷却水管中流量的大小。
步骤2、bp神经网络训练以及前馈控制。
训练过程可以分为两种,即在线训练和离线训练。所谓在线训练是在每个采样时刻都以温度输出值作为误差对神经网络的权值进行修正,不断更新网络。而离线训练则是在某次扰动出现后,对整个调节过程进行采样,以让温度输出值趋于零作为训练目标对网络进行训练并更新其输出,重复此过程直到网络输出达到要求。本文主要采用离线训练的方式。
如图4所示,y为输出即温度信号,为输出即温度信号,gpd(s)为干扰量和被控变量温度之间的传递函数,gpc(s)为操纵变量(冷却水流量)对被控变量温度之间的传递函数,gff(s)为前馈补偿函数。出现扰动后,使得扰动q作为bp神经网络的输入,从而输出一个前馈控制信号来控制冷却水阀的开度。
因为在实际生产过程中由于被控对象的特性十分复杂,有许多的其他干扰因素,所以无法获取到理想的扰动通道和控制通道的数学模型,即gpd(s)和gpc(s),从而很难求出
stfp2.1、在bp神经网络中,初始选取输入层节点数为1,即输入为扰动量(物料的进料量)记为x(1)。所以隐含层的节点个数为3,输出量y为前馈控制信号(冷却水的流量),即设置bp神经网络的结构为1-3-1。如图2所示。
先对网络中权值、学习率、动量因子进行初始化,选取n个扰动信号q作为样本在bp神经网络中的迭代训练,设输入向量为
stfp2.2、bp神经网络的隐含层的输入输出分别为
式中
设bp神经网络隐含层神经元的泛化函数为
step2.3、bp神经网络的输出层的输入输出分别为
式中
step2.4、由误差函数
step2.5、对于输入样本,反向计算每一层神经元的局部梯度,按式
式中
g′(x)=g(x)(1-g(x)),f′(x)=(1-f2(x))/2,
k+1时刻下输出层和隐含层的权值为:
计算修正后的权值,放入下一个样本值,转到step2.3。
步骤3、用滤波算法对反应釜中的温度采样信号进行滤波
由于超声波设备的瞬时释放功率大,从而导致温度信号的毛刺多,从而首先需要对输入的温度信号进行滤波。
根据信号的采样频率fs,计算出中值滤波器的窗口宽度ld,一般取2~4倍毛刺脉冲宽度作为中值滤波器的窗口宽度,即:
ld=k×fs×lp
其中lp为毛刺脉冲宽度,k为整数型窗口系数,取值范围[2,4]。
得到窗口宽度ld后,按权值向量w=[w1,w2,...,w2d+1]对窗口内数据进行加权处理。
按l(a)=med[w1※s(a-d),wd+1※s(a),...,w2d+1※s(a+d)]进行取中值运算,对信号进行重新的输出,得到加权中值滤波后的处理结果作为神经网络的输入信号。其中med表示取窗口内所有位数的中位数,※表示复制即
这种方法可以使得中值滤波器中的窗口宽度可以自由根据毛刺宽度的大小自由调节而不需要像传统的中值滤波那样取一个固定值。
步骤4、对rbf神经网络进行训练。
step4.1、初始化隶属函数的中心c0和宽度b0,以及网络的初始权值。选定学习系数和惯性系数。
step4.2、采样系统给定值和实际输出,计算误差e(k)和误差变化率ec(k)。
step4.3、在rbf神经网络中,如图3所示,设输入向量x=[x1,x2]t,其中x1为实际输出温度和期望值之间的误差e(k),x2为误差变化率ec(k)。k表示第k个采样点。
由此可以确定模糊rbf神经网络第二层的节点数为7层,即l=7,第三层的节点数为49个,即n=49。
第一层为输入层即f1(i)=xi,i=1,2。
第二层为模糊化层,模糊隶属函数均选用高斯函数,得到的输入分量在不同的模糊语言值对应的隶属度为:
其中cij、bij分别时第i个输入变量第j个模糊集合的隶属函数的中心矢量和宽度。
第三层为模糊推理层,每个节点的适用度为:
其中
第四层为输出层,即f4(1),f4(2),f4(3)分别为pid的三个参数kp,ki,kd。
其中wsd为输出层节点与第三层各个节点的连接权矩阵,s=1,2,3。pid调节器的控制规律为:
其中kp为比例系数,ki为积分系数,kd为微分系数。由于rbf神经网络有很强的收敛性而且和模糊逻辑有很强的互补特性,从而我们可以基于rbf神经网络对于模糊自适应pid算法进行优化。
因为控制器δu(k)=kpx(1)+kix(2)+kdx(3),其中
x(1)=e(k)-e(k-1)
x(2)=e(k)
x(3)=e(k)-2e(k-1)+e(k-2)
采用增量式pid算法
u(k)=u(k-1)+δu(k)
网络逼近误差指标函数为二次型
其中r(k)为温度的期望值也就是我们的给定值,y(k)为实际的输出温度值。判断e是否小于阈值ε,小于则退出训练,否则进行下一步。
step4.4、根据梯度下降法,节点基宽、节点中心及权值调节可得
其中η1为学习率,α1为动量因子,取值均在0到1之间。
step4.5、取下一个采样数据,返回step4.2。
步骤5、用模糊rbf神经网络计算pid参数。
把rbf神经网络和模糊pid算法相结合,如图5所示,设r(k)为输入的给定信号,y(k)为输出信号,则基于rbf神经网络改进的pid控制误差为e(k)=r(k)-y(k)
pid算法中的每个参数由x(1),x(2),x(3)分别表示。
x(1)=e(k)-e(k-1)
x(2)=e(k)
x(3)=e(k)-2e(k-1)+e(k-2)
将x(1),x(2),x(3)代入到增量式pid控制算法中求解,得控制算法
u(k)=u(k-1)+kpx(1)+kix(2)+kdx(3)
神经网络的训练指示为
将e(k)带入增量pid控制器的参数kp,ki,kd的表达式中
其中,学习效率由η表示,系统的灵敏度信息由