超声波液位计液态介质测量高精度的探讨 三十五
4.4.3训练结果
训练一个单隐层的三层BP网络,根据如下经验公式选择隐层节点数。
由此可以看出:
(1)增加隐层节点数可以减少训练误差,但超过10以后测试误差产生波动,即泛化能力发生变化。综合比较隐层节点数为10与12的训练误差和测试误差,决定隐层节点数选用。
(2)训练误差和测试误差都很大,而且收敛速度极慢,这个问题可以通过对输出量进行归一化来解决。根据Sigmoid型传递函数输入和输出的范围,对输入变量不进行归一化处理,只对输出变量进行归一化,这是因为在输出数据要求归一化的同时,对输入数据也进行
归一化的话,权值的可解释性就更差了。
这样靠近数据变化区间端点的网络输出值就有一波动范围,网络的性能较好。用新生成的训练样本与测试样本对隐层节点数为10的网络进行训练。
4.5最终训练后的神经网络结构
4.5.1 BP网络模型编程及训练
确定如下的超声波传感器速度模型和训练方法:单隐层BP网络,输入层两个节点,当u很大时上式接近于梯度法,当Ⅱ很小时上式变成了Gauss—Newton法,在这种方法中,u也是自适应调整的。利用Matlab7 l构造了神经网络并训练,由于采用tansig传递函数,所以用表4 2的35组数据作样本,其巾25组数据作训练样本,10组作测试样本,对输入变量和输出变量进行简单的归一化处理后.
采用三层BP网络实现温度、湿度与声波速度的转换关系,其中隐层含有10个节点,传递函数采用tansig函数;输出层传递函数选用purelin函数。经过测试后结果满意,可以认为该神经网络可以用来实现这个关系映射。
把在MatIab环境下训练完成后返回的权值wl、w2,阈值b1、b2保存留用,在应用系统编程时用C语言构造相同的BP网络,编写一个前向计算函数,获得系统的在线数据(当时环境下的超声波传播速度)。
实验证明:如果仅考虑温度补偿,利用回波测距法测得在不同温度和湿度下实际距离为3米的误差。
实验结果表明,利用BP神经网络能很好地逼近非线性函数的特点,解决了超声波回波测距法在不同的环境下测量误差大的缺点,同时由于是采用了编程软件的方法,当所测液体种类发生变化时无须修改硬件,而只须重新测量出正确样本,离线训练好网络,提取出新的参数,在应用系统的软件中替换原有参数即可适应新的环境和不同的测量对象,使所设计的液位计在测量时不仅精度高而且具有良好的通用性。
详情请浏览公司网站的产品中心 http://www.dlysys.com/ 超声波液位计