BP神经网络温度补偿器设计

2023-10-19 18:30

本文主要是介绍BP神经网络温度补偿器设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

设计一个具有温度自补偿功能的二传感器数据融合智能传感器系统,其结构如图:
在这里插入图片描述
被补偿的主传感器是压阻式压力传感器,输出值为代表压力的电信号 U P U_P UP,辅助传感器用于监测工作环境的干扰温度T,输出值为 U T U_T UT U P U_P UP U T U_T UT输入到融合补偿器中,补偿器根据两者的数据综合考虑,输出当前的压力值 p ′ p' p.本实验要求将补偿器设计成神经网络结构,并将给定的36个数据分为训练集和测试集,进行网络的训练和效果测试。
36组数据见表:
在这里插入图片描述

预期功能

  • 温度补偿功能: 可对传感器进行温度补偿;
  • 可更换学习样本进行再训练:适应不同压力量程的传感器 在不同工作环境温度影响下进行温度补偿;
  • 可输出进行了零点及非线性补偿的压力值:网络训练完毕后,输入压力传感器量程范围内的任何 U P U_P UP U T U_T UT, 补偿模块可给出在消除温度影响的同时也进行了零点及非线性补偿的压力值 P ′ P′ P

设计要求

  • 写出BPNN(BP神经网络)温度补偿器的matlab代码
  • 评价压力传感器配备了BPNN温度补偿器后的性能

实验分析

网络分析

将表数据集中36组数据随机抽取3个作为测试集(已在表中用加粗、标红),其余33组数据作为训练集。由题意,神经网络的输入层设置2个单输入、7输出的神经元组,输入与输出相等,即权重为1,阈值为0,使用 s i g n sign sign函数进行激发。中间层设置7个神经元,输出层为一个7输入单输出的神经元,网络构成如图所示的结构:
在这里插入图片描述

由图示可以分析出中间层神经元输入有7个权重,即: w 11 ( 1 ) , w 12 ( 1 ) , w 13 ( 1 ) , w 14 ( 1 ) , w 15 ( 1 ) , w 16 ( 1 ) , w 17 ( 1 ) ; w 21 ( 1 ) , w 22 ( 1 ) , w 23 ( 1 ) , w 24 ( 1 ) , w 25 ( 1 ) , w 26 ( 1 ) , w 27 ( 1 ) w_{11}^{(1)},w_{12}^{(1)},w_{13}^{(1)}, w_{14}^{(1)},w_{15}^{(1)},w_{16}^{(1)},w_{17}^{(1)}; w_{21}^{(1)},w_{22}^{(1)},w_{23}^{(1)},w_{24}^{(1)},w_{25}^{(1)},w_{26}^{(1)},w_{27}^{(1)} w11(1),w12(1),w13(1),w14(1),w15(1),w16(1),w17(1);w21(1),w22(1),w23(1),w24(1),w25(1),w26(1),w27(1)
阈值定义为 B 1 B1 B1,是一个数组,维数为7。输出层为一个7输入单输出的神经元,输入有7个权重,即 w 1 ( 2 ) , w 2 ( 2 ) , w 3 ( 2 ) , w 4 ( 2 ) , w 5 ( 2 ) , w 6 ( 2 ) , w 7 ( 2 ) w_{1}^{(2)},w_{2}^{(2)},w_{3}^{(2)},w_{4}^{(2)},w_{5}^{(2)},w_{6}^{(2)},w_{7}^{(2)} w1(2),w2(2),w3(2),w4(2),w5(2),w6(2),w7(2),阈值定义为 B 2 B2 B2,是一个数。
对于输入层,输入即为输出。
对于隐层,输入 h i d e _ i n = x ⋅ w − b hide\_in=x\cdot w-b hide_in=xwb,输出 h i d e _ o u t = f ( h i d e _ i n ) hide\_out=f(hide\_in) hide_out=f(hide_in)其中 f f f为激发函数,在选择上具有一定的随机性,选择S型函数 S i g m o i d Sigmoid Sigmoid作为激发函数,因为S型函数具有输出范围有限、易于求导等特点,计算量小,结果不易发散,且编程简单。所以:
在这里插入图片描述

对于输出层,只有一个7输入、单输出的神经元,将权重表示为向量形式 W 2 ( 7 × 1 ) W2_{(7\times 1)} W2(7×1),则 y _ o u t = h i d e _ o u t ( 1 × 7 ) ⋅ W 2 ( 7 × 1 ) − B 2 ( 1 × 1 ) y\_out = hide\_out_{(1\times 7)}\cdot W2_{(7\times 1)}- B2_{(1\times 1)} y_out=hide_out(1×7)W2(7×1)B2(1×1).

归一化处理

归一化是神经网络里面经常用到的方法,用来给数据进行预处理,可以使网络快速收敛、样本数据量纲化,从而统一评价标准,防止采用sigmoid转移函数时引起的神经元输出饱和。本实验的双输入有一个特性,即两个输入总是成对的,所以虽然输入为2个33维的数据集,但是在训练时并不需要将其两两组合再带入,而是将其配套组合成33组后带入即可。归一化处理后的数据在-1+1或者01之间,此处将数据归一化在 − 1 ∼ 1 -1 \sim 1 11之间,归一化公式为:
X ˉ = X − X min ⁡ X max ⁡ − X min ⁡ \bar{X}=\frac{X-X_{\min }}{X_{\max }-X_{\min }} Xˉ=XmaxXminXXmin

误差

误差计算公式为: e = z _ o u t − z [ i ] e = z\_out - z[i] e=z_outz[i],其中 y [ i ] y[i] y[i]为每个训练样本的实际值。

反向修正

神经网络的一大特点即为可以反复修正,通过误差的大小自动调整拟合模型,最终无限接近于样本。
训练的目标为各个输入的权重和神经元的阈值。首先按照式\ref{单输入最后一层修正}从输出层开始修正,其中:
d B 2 = − t h r e s h o l d ⋅ e d W 2 = e ⋅ t h r e s h o l d ⋅ h i d e _ o u t \begin{array}{l} dB2 = -threshold \cdot e \\ dW2 = e \cdot threshold \cdot hide\_out \end{array} dB2=thresholdedW2=ethresholdhide_out

最后修正中间层(输入层没有可改变的权重与阈值,所以不需要修正),如式: d B 1 = W 2 ⋅ s i g m o i d ( h i d e _ i n ) ⋅ ( 1 − s i g m o i d ( h i d e _ i n ) ) ⋅ − e ⋅ t h r e s h o l d d W 1 = W 2 ⋅ s i g m o i d ( h i d e _ i n ) ⋅ ( 1 − s i g m o i d ( h i d e _ i n ) ) ⋅ x ⋅ e ⋅ t h r e s h o l d \begin{array}{c} dB1 = W2 \cdot sigmoid(hide\_in)\cdot (1 - sigmoid(hide\_in)) \cdot -e \cdot threshold \\ dW1 = W2 \cdot sigmoid(hide\_in)\cdot (1 - sigmoid(hide\_in)) \cdot x \cdot e \cdot threshold \end{array} dB1=W2sigmoid(hide_in)(1sigmoid(hide_in))ethresholddW1=W2sigmoid(hide_in)(1sigmoid(hide_in))xethreshold
其中, s i g m o i d ( h i d e _ i n ) ⋅ ( 1 − s i g m o i d ( h i d e _ i n ) ) sigmoid(hide\_in)\cdot (1 - sigmoid(hide\_in)) sigmoid(hide_in)(1sigmoid(hide_in)) s i g m o i d ( h i d e _ i n ) sigmoid(hide\_in) sigmoid(hide_in)的导数。
最后将用W和B减去对应的改变值dW和dB,即可得到新的权值和阈值,由循环语句进行循环迭代即可,如式::
W 1 = W 1 − d W 1 B 1 = B 1 − d B 1 W 2 = W 2 − d W 2 B 2 = B 2 − d B 2 \begin{array}{c} W1 = W1 - dW1\\ B1 = B1 - dB1\\ W2 = W2 - dW2\\ B2 = B2 - dB2\\ \end{array} W1=W1dW1B1=B1dB1W2=W2dW2B2=B2dB2

实验过程

训练

隐层神经元数量为7个,迭代次数200,学习速率0.007时,总训练误差为3.44.此误差较高,尝试使用增加隐层神经元数量的方法,将隐层神经元数量增加为15个,重新训练,得到的总误差为1.644.绘制迭代的代数与总误差的曲线图,如图:
在这里插入图片描述
由图像可以发现,在训练的前2-3代,误差迅速降低,继而变成缓慢而均匀地下降,但是始终没有趋于水平,这在优化思想上是没有趋于最优解的,此时如果将迭代的次数增加,基本会有理想的收获。

将迭代次数从200次增加至1000次,再次运行程序。总误差约为0.67,绘制迭代的代数与总误差的曲线图,如图:
在这里插入图片描述
果然,从图像中可以看出,在350代附近时误差几乎不再减少,网络已经训练到此模型下的最优形式。

测试

将剩余的3组测试数据带入训练好的模型进行计算,得到的数据如表\ref{test}.对于此训练集,总误差为0.0212,系统对数据的拟合程度较高。

第一个点第二个点第三个点
真实值415
计算值3.989440780.997954654.85474882
偏差0.0110.0020.145

总结

本次作业利用神经网络进行传感器融合-温度补偿实验,学习了神经网络建立、校正等知识。实验很成功,但是在反馈方式等方面理论知识依然不足,一直在使用最小二乘法进行校正,如果换用其他方法,同时调整校正速度,有可能会获取更好的拟合效果与收敛速度。

程序

关于本实验的python程序,见:链接。如有疑问,请联系evandjiang@qq.com

这篇关于BP神经网络温度补偿器设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/241577

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

分布式文件系统设计

分布式文件系统是分布式领域的一个基础应用,其中最著名的毫无疑问是 HDFS/GFS。如今该领域已经趋向于成熟,但了解它的设计要点和思想,对我们将来面临类似场景 / 问题时,具有借鉴意义。并且,分布式文件系统并非只有 HDFS/GFS 这一种形态,在它之外,还有其他形态各异、各有千秋的产品形态,对它们的了解,也对扩展我们的视野有所俾益。本文试图分析和思考,在分布式文件系统领域,我们要解决哪些问题、有