2022年长三角高校数学建模竞赛B题齿轮箱故障诊断解题全过程文档及程序

news2024/11/23 7:27:41

2022年长三角高校数学建模竞赛

B题 齿轮箱故障诊断

原题再现:

  齿轮箱是用于增加输出扭矩或改变电机速度的机械装置,被广泛应用于如汽车、输送机、风机等机械设备中。它由两个或多个齿轮组成,其中一个齿轮由电机驱动。电机的轴连接到齿轮箱的一端,并通过齿轮箱的齿轮内部构件,提供由齿轮比确定的输出扭矩和速度。典型的齿轮箱剖面如图 1 所示。在齿轮箱的运行过程中,可以通过加装加速度传感器采集振动信号来判断齿轮箱是否出现异常。本题旨在通过建立相关数学模型对齿轮箱采集到的振动信号进行分析。
在这里插入图片描述
  在本题中,我们通过安装在齿轮箱不同部位的四个加速度传感器,采集了 5种状态下齿轮箱的振动信号,具体数据见附件 1。其中表单 gearbox00 为齿轮箱正常工况下采集到的振动信号;表单 gearbox10 为故障状态 1 下采集到的振动信号;表单 gearbox20 为故障状态 2 下采集到的故障信号;表单 gearbox30 为故障状态 3 下采集到的故障信号;表单 gearbox40 为故障状态 4 下采集到的振动信号。信号的采样频率为 6.4kHz。请利用这些数据,建立数学模型解决以下问题:
  1、对齿轮箱各个状态下的振动数据进行分析,研究正常和不同故障状态下振动数据的变化规律及差异,并给出刻画这些差异的关键特征。
  2、建立齿轮箱的故障检测模型,对其是否处于故障状态进行检测,并对模型的性能进行评价。
  3、建立齿轮箱的故障诊断模型,对其处于何种故障状态进行判断,并对模型的性能进行评价。
  4、结合所建立的故障检测和诊断模型对附件 2 中另行采集的 12 组测试数据进行检测和诊断分析,将分析结果填写到下表中(注:测试数据中可能存在除以上 4 种故障之外的故障状态,若存在,则将对应的诊断结果标记为:其它故障),并将此表格放到论文的正文中。

整体求解过程概述(摘要)

  在工业生产中,齿轮箱作为传递动力的主要部件,其工作状态的好坏是决定机械系统能否高效工作的重要前提。本文在已有数据集的前提下,利用 matlab 软件绘制直方图和求多元统计量来分析各个状态下的振动数据的变化规律及差异,再通过小波降噪、能量分析等方法对数据进行预处理,并用 matlab 软件采用支持向量机方法、XGBoost(机器学习)神经网络预测方法建立齿轮箱故障检测与诊断诊断模型。
  针对问题一,旨在深入探究各传感器在各种工况下振动数据变化规律及其差异特征,因此本文将附件一的数据以不同传感器为分类标准分成 4 大组来处理,首先采用数据可视化技术,借助 matlab 工具绘制 20 张不同传感器在不同工况下的时序图和频谱直方图,由图形初步获得数据的主要分布规律及差异。为更深入细节地分析,再通过 matlab 软件求得六种常用多元统计指标即均值、方差、均方差、峭度、脉冲、裕度因子,并对相同传感器的数据进行对比分析,进一步得到数据变化的规律与差异。特别地由峭度、脉冲、裕度的对比,猜测第四个传感器为最大影响因素。
  针对问题二,要求建立并评价齿轮箱的故障检测模型,本质是将 5 种工况数据分为故障与非故障两组,即二分类问题,再去建立模型。故本题采用支持向量机方法(svm),运用凸二次规划的最优算法,寻找一个决策超平面,使得二分类效果最优化。再将数据升维到 12 个指标,利用该测试集数据对所得结果进行检验,发现分类情况权重不对等,导致分类层向权重低的空间内入侵,故继续使用 matlab、SPSS 等工具进行模拟加权优化操作,以得到最优的加权比例以及更加科学准确的检测模型。
  针对问题三,要求结合前两题特征差异并通过分析建立齿轮箱故障诊断模型,做到对未知样本进行数据故障的检验判别,是对问题二的延伸。故联想采用 XGBoost 分类模型。为排除噪音对于分析的干扰,首先进行数据预处理,采用小波变换、能量分析的方法提取特征数据。接着将所给样本数据以 7:3 的比例划分为训练集和测试集,并使训练集使用 XGBoost 分类模型经过深入学习算法,得到合理的预测模型,最后将测试集代入所得模型,得到训练集与测试集总体正确性在 70%以上,证明该模型的有效性。最后通过模型回归评估得出结论:在 4 个传感器影响中,第 4 个传感器的影响占绝大部分。
  针对问题四,需要对 12 组测试数据进行故障诊断,是对问题二以及问题三的模型的具体应用。由于新增一种状况为其他故障,无法先通过问题二模型判别该状况,故本题主要以改进 XGBoost 神经网络预测模型作为基础来增设正常状态下的集合。再建立置信区间估计模型,通过准确值大小先判别是否其他故障,再对剩余组别用修改模型来判别是正常还是四种故障状况之一。最终得到结果为下表:
在这里插入图片描述

模型假设:

  1、在解决问题二和问题三时,仅考虑正常工况和已知故障种类,不考虑未知故障种类;
  2、不考虑附件二以外其它变量的影响;
  3. 假设题目提供数据均为真实测量数值,不存在记录失误等原因造成的错误数据。
  4、某个采样部位受到其他部位的影响。

问题分析:

  问题一的分析
  针对问题一,要求根据题目所给的五个工作表所包含的振动信号数据探究正常工况与故障情况振动信号的变化规律以及其存在的差异,再利用相关方法刻画出存在的差异的关键特征。该工作表数据是在 6.4KHz 采样频率下,通过安装在齿轮箱不同部位的四个加速度传感器,分别采集到的正常工况与四种不同故障情况下齿轮箱的四个不同部位的振动信号数据,故为更加深入直观地探究正常与故障情况的差异,联想到可将所得图像与数据以不同传感器为分类标准均分成四组来分别对比寻找差异。
  问题二的分析
  针对问题二,要求建立齿轮箱的故障检测模型,并对所建立模型进行评价。即通过将附件 1 中的五组数据分为故障组与非故障组两组,以此来建立故障检测模型。换言之,该题所要建立的模型即将五组情况分为两种类型的模型,是一个二分类模型,再结合问题一的结果,本文初步认定四个传感器的数据有能用于表述故障情况的效度,故联想到应用支持向量机分类模型(svm),支持向量机,它的基本模型是定义在特征空间上的间隔最大的线性分类器,支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,支持向量机的学习算法是求解凸二次规划的最优算法,其主要思想是找到一个超平面,使他尽可能多地将两类数据点正确分开,同时也使得两类数据点距离找到的分类平面足够远。从本质上说,支持向量机方法即是一个二分类器(BinaryClassifier)。最后观察利用所建立模型去检验已知样本数据所得到的准确率值,以评价模型的性能。
  问题三的分析
  针对问题三,要求结合前两题特征差异并通过分析建立齿轮箱故障检验模型,从而对做到对未知样本进行数据故障的检验判别,即建立故障检验预测模型,再对该模型进行评价,是对问题二的延伸。该题需要分析各个故障之间的差异特征,再由此差异特征来预测未知样本数据所属哪一个故障类型,故联想到 XGBoost 算法,它在分类应用中属于多个弱分离器的叠加而成的强分离器,可以根据所给特征差异直接预测所属类别,较适合该题求解。最后,利用验证已知样本数据来计算准确率,作为对模型评价的依据。
  问题四的分析
  针对问题四,要求根据所建立的故障模型与诊断模型对附件 2 所给的样本数据进行分析判别 12 个测试的工况类型,再填入表格。表格所判别类型多添加了一种其他故障,因此若先用第二题的诊断模型判断其有无故障再采用题三的预测模型得出答案将无法判断其他故障的因素,基于此联想可改进 XGBoost 预测模型在四种故障基础上加入正常工况形成一个新模型。再在预测结果基础上通过数理统计模型先判别为其他故障还是五种工况之一,再对判别后五种工况的情况利用权重比较筛选为哪一组故障或者正常情况。最后在利用所建立的支持向量机检测模型来验证所的结果的准确性。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

clc;clear;
figure(1);exam=xlsread(’ 故障 0.xlsx’);
x=exam(:,1)a=exam(:,2);b=exam(:,3);
c=exam(:,4);d=exam(:,5);
subplot(2,2,1);plot(x,a,’b’);title(’ 正常 1);
subplot(2,2,2);plot(x,b,’b’);title(’ 正常 2);
subplot(2,2,3);plot(x,c,’b’);title(’ 正常 3);
subplot(2,2,4);plot(x,d,’b’);title(’ 正常 4);
figure(2);exam=xlsread(’ 故障 1.xlsx’);
x=exam(:,1);
a=exam(:,2);b=exam(:,3);
c=exam(:,4);d=exam(:,5);
subplot(2,2,1);plot(x,a,’b’);title(’ 故障 1);
subplot(2,2,2);plot(x,b,’b’);title(’ 故障 1);
subplot(2,2,3);plot(x,c,’b’);title(’ 故障 1);
subplot(2,2,4);plot(x,d,’b’);title(’ 故障 1);
figure(3);exam=xlsread(’ 故障 2.xlsx’);
x=exam(:,1);
a=exam(:,2);b=exam(:,3);
c=exam(:,4);d=exam(:,5);
subplot(2,2,1);plot(x,a,’b’);title(’ 故障 2);
subplot(2,2,2);plot(x,b,’b’);title(’ 故障 2);
subplot(2,2,3);plot(x,c,’b’);title(’ 故障 2);
subplot(2,2,4);plot(x,d,’b’);title(’ 故障 2);
figure(4);exam=xlsread(’ 故障 3.xlsx’);
x=exam(:,1); a=exam(:,2);b=exam(:,3);
c=exam(:,4);d=exam(:,5);
subplot(2,2,1);plot(x,a,’b’);title(’ 故障 3);
subplot(2,2,2);plot(x,b,’b’);title(’ 故障 3);
subplot(2,2,3);plot(x,c,’b’);title(’ 故障 3);
subplot(2,2,4);plot(x,d,’b’);title(’ 故障 3);
figure(5);exam=xlsread(’ 故障 4.xlsx’);
x=exam(:,1);
a=exam(:,2);b=exam(:,3);
c=exam(:,4);d=exam(:,5);
subplot(2,2,1);plot(x,a,’b’);title(’ 故障 4);
subplot(2,2,2);plot(x,b,’b’);title(’ 故障 4);
subplot(2,2,3);plot(x,c,’b’);title(’ 故障 4);
subplot(2,2,4);plot(x,d,’b’);title(’ 故障 4);
clc,clear;
data=xlsread(’ 附件 1.xls’,’gearbox00’);
figure(1);y1=data(:,2);hist(y1,10);title(’ 正常’)
figure(2);y2=data(:,3);hist(y2,10);title(’ 正常’)
figure(3);y3=data(:,4);hist(y3,10);title(’ 正常’)
figure(4);y4=data(:,5);hist(y4,100);title(’ 正常’)
data=xlsread(’ 附件 1.xls’,’gearbox10’);
figure(5);q1=data(:,2);hist(q1,10);title(’ 故障 1)
figure(6);q2=data(:,3);hist(q2,10);title(’ 故障 1)
figure(7);q3=data(:,4);hist(q3,10);title(’ 故障 1)
figure(8);q4=data(:,5);hist(q4,100);title(’ 故障 1)
data=xlsread(’ 附件 1.xls’,’gearbox20’);
figure(9);a1=data(:,2);hist(a1,10);title(’ 故障 2)
figure(10);a2=data(:,3);hist(a2,10);title(’ 故障 2)
figure(11);a3=data(:,4);hist(a3,10);title(’ 故障 2)
figure(12);a4=data(:,5);hist(a4,100);title(’ 故障 2)
data=xlsread(’ 附件 1.xls’,’gearbox30’);
figure(13);z1=data(:,2);hist(z1,10);title(’ 故障 3)
figure(14);z2=data(:,3);hist(z2,10);title(’ 故障 3)
figure(15);z3=data(:,4);hist(z3,10);title(’ 故障 3)
figure(16);z4=data(:,5);hist(z4,100);title(’ 故障 3)
data=xlsread(’ 附件 1.xls’,’gearbox40’);
figure(17);w1=data(:,2);hist(w1,10);title(’ 故障 4)
figure(18);w2=data(:,3);hist(w2,10);title(’ 故障 4)
figure(19);w3=data(:,4);hist(w3,10);title(’ 故障 4)
figure(20);w4=data(:,5);hist(w4,100);title(’ 故障 4)
第一问的均值、方差、均方差、峭度、脉冲、裕度代码:
clc,clear;
data=xlsread(’ 附件 1.xls’,’gearbox00’);
x1=data(:,2);[mean(x1),var(x1),std(x1),kurtosis(x1),(max(x1)-min(x1))/std(x1),
(max(x1)-min(x1))/mean(sqrt(abs(x1)))2
]x2=data(:,3);[mean(x2),var(x2),std(x2),kurtosis(x2),(max(x2)-min(x2))/std(x2),
(max(x2)-min(x2))/mean(sqrt(abs(x2)))2
]
x3=data(:,4);[mean(x3),var(x3),std(x3),kurtosis(x3),(max(x3)-min(x3))/std(x3),
(max(x3)-min(x3))/mean(sqrt(abs(x3)))2
]
x4=data(:,5);[mean(x4),var(x4),std(x4),kurtosis(x4),(max(x4)-min(x4))/std(x4),
(max(x4)-min(x4))/mean(sqrt(abs(x4)))2
]
data=xlsread(’ 附件 1.xls’,’gearbox10’); %故障 1
y1=data(:,2);[mean(y1),var(y1),std(y1),kurtosis(y1),(max(y1)-min(y1))/std(y1),
(max(y1)-min(y1))/mean(sqrt(abs(y1)))2
]
y2=data(:,3);[mean(y2),var(y2),std(y2),kurtosis(y2),(max(y2)-min(y2))/std(y2),
(max(y2)-min(y2))/mean(sqrt(abs(y2)))2
]
y3=data(:,4);[mean(y3),var(y3),std(y3),kurtosis(y3),(max(y3)-min(y3))/std(y3),
(max(y3)-min(y3))/mean(sqrt(abs(y3)))2
]
y4=data(:,5);[mean(y4),var(y4),std(y4),kurtosis(y4),(max(y4)-min(y4))/std(y4),
(max(y4)-min(y4))/mean(sqrt(abs(y4)))2
]
data=xlsread(’ 附件 1.xls’,’gearbox20’);
q1=data(:,2);[mean(q1),var(q1),std(q1),kurtosis(q1),(max(q1)-min(q1))/std(q1),
(max(q1)-min(q1))/mean(sqrt(abs(q1)))2
]
q2=data(:,3);[mean(q2),var(q2),std(q2),kurtosis(q2),(max(q2)-min(q2))/std(q2),
(max(q2)-min(q2))/mean(sqrt(abs(q2)))2
]
q3=data(:,4);[mean(q3),var(q3),std(q3),kurtosis(q3),(max(q3)-min(q3))/std(q3),
(max(q3)-min(q3))/mean(sqrt(abs(q3)))2
]
q4=data(:,5);[mean(q4),var(q4),std(q4),kurtosis(q4),(max(q4)-min(q4))/std(q4),
(max(q4)-min(q4))/mean(sqrt(abs(q4)))2
]
data=xlsread(’ 附件 1.xls’,’gearbox30’);%故障 3
w1=data(:,2);[mean(w1),var(w1),std(w1),kurtosis(w1),(max(w1)-min(w1))/std(w1),
(max(w1)-min(w1))/mean(sqrt(abs(w1)))2
]
w2=data(:,3);[mean(w2),var(w2),std(w2),kurtosis(w2),(max(w2)-min(w2))/std(w2),
(max(w2)-min(w2))/mean(sqrt(abs(w2)))2
]
w3=data(:,4);[mean(w3),var(w3),std(w3),kurtosis(w3),(max(w3)-min(w3))/std(w3),
(max(w3)-min(w3))/mean(sqrt(abs(w3)))2
]
w4=data(:,5);[mean(w4),var(w4),std(w4),kurtosis(w4),(max(w4)-min(w4))/std(w4),
(max(w4)-min(w4))/mean(sqrt(abs(w4)))2
]
data=xlsread(’ 附件 1.xls’,’gearbox40’);%故障 4
z1=data(:,2);[mean(z1),var(z1),std(z1),kurtosis(z1),(max(z1)-min(z1))/std(z1),
(max(z1)-min(z1))/mean(sqrt(abs(z1)))2
]
z2=data(:,3);[mean(z2),var(z2),std(z2),kurtosis(z2),(max(z2)-min(z2))/std(z2),
(max(z2)-min(z2))/mean(sqrt(abs(z2)))2
]
z3=data(:,4);[mean(z3),var(z3),std(z3),kurtosis(z3),(max(z3)-min(z3))/std(z3),
(max(z3)-min(z3))/mean(sqrt(abs(z3)))2
]
z4=data(:,5);[mean(z4),var(z4),std(z4),kurtosis(z4),(max(z4)-min(z4))/std(z4),
(max(z4)-min(z4))/mean(sqrt(abs(z4)))2
]

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588700.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据 Ranger2.1.0 适配 Kafka3.4.0

Ranger2.1.0 适配 Kafka3.4.0 官方说明POM代码说明 根据官方说明Kafka3.0以上版本将会被替换权限认证方式,包括 类和方法 的变换,所以需要对ranger中继承 kafka 的实现中,修改相应的逻辑 官方说明 Kafka3.0以上版本将会被替换权限认证方式&a…

vue项目瘦身

如图 项目中node_modules包已占用十几G,我也是发现我的磁盘空间缩小的超级快,因为好几个项目,甚至有的项目包已经占了50多G,这都得益于上一个刚走了的laji npm install -g depcheck 一旦安装了depCheck,您可以在命令行…

通过 Github workflows CI/CD 自动化部署 Github Pages hugo 免费博客

通过 Github workflows CI/CD 自动化部署 Github Pages hugo 免费博客 文章博客地址:https://blog.taoluyuan.com/posts/github-workflows/ Github Workflows 介绍 GitHub Actions 介绍 GitHub 文档:https://docs.github.com/zh/actions/learn-githu…

相机的畸变矫正与opencv代码说明

相机的畸变矫正与opencv代码说明 简介鱼眼模型的畸变校正针孔模型的畸变校正 简介 图像算法中会经常用到摄像机的畸变校正,有必要总结分析OpenCV中畸变校正方法,其中包括普通针孔相机模型和鱼眼相机模型fisheye两种畸变校正方法。普通相机模型畸变校正函…

机器人专业讲师与科技的转型思考

2023年以前,编程需要学习各种语法,现在只需要提示词。 未来还需要编程老师吗?需求一定越来越少。 “ Prompting TurtleSim from ChatGPT ” https://github.com/mhubii/chatgpt_turtlesim The demo lets ChatGPT call into ROS services …

左孩子右兄弟路径之谜

题目 对于一棵多叉树,我们可以通过 “左孩子右兄弟” 表示法,将其转化成一棵二叉树。 如果我们认为每个结点的子结点是无序的,那么得到的二叉树可能不唯一。 换句话说,每个结点可以选任意子结点作为左孩子,并按任意顺序…

开源版社区团购系统源码 含小程序完整前后端+搭建教程+私有化部署

分享一个社区团购系统源码,源码开源可自由二开,含小程序完整前后端和详细的搭建教程,可私有化部署终身使用,功能界面diy团长供应商拼团秒杀优惠券菜谱积分群接龙充值预售配送等功能。 系统功能一览: 1、商品&#xf…

企业级应用:检测服务是否正常运行

1.说明: 在公司日常小项目中,会遇到一些小需求,比如:检测服务是否正常运行。 当一个经验不是很足的项目经理,让你写一个接口,然后检测服务是否正常运行啦。 然后你说阿里云有自动检测的接口,…

一文说明ROS中URDF和SRDF分别是什么

文章目录 前言一、功能作用说明URDFSRDF 二、样例文件说明URDF文件例子SRDF文件例子 总结 前言 URDF全称为Unified Robot Description Format,中文可以翻译为“统一机器人描述格式”。与计算机文件中的.txt文本格式、.jpg图像格式等类似,URDF是一种基于…

浅谈TCP IP协议(二)IP地址

上一节大致了解TCP/IP协议栈是个啥东西,依旧是雾里看花的状态,有很多时候学一门新知识时,开头总是很急躁,无从下手,刚学会一点儿,却发现连点皮毛都不算,成就感太低,所以任何时候学习…

JavaScript 中的 Window.open() 用法详解

文章目录 1 方法介绍2 参数说明3 使用示例3.1 当前窗口中打开网页3.2 新窗口中打开网页3.3 在独立窗口中打开一个指定大小和位置的网页 1 方法介绍 window.open() 方法是 JavaScript 中的一个内置方法,用于在浏览器中打开一个新的窗口或标签页。 这个方法的语法是…

《五》 Git 中的标签和分支

标签 tag: Git 可以给仓库中某一次 commit 的提交打上标签。对于重大的版本经常会打上一个标签来表示它的重要性。 创建标签: git tag【tag 名称】:创建标签。 查看标签: git tag:查看标签。 推送标签到远程仓库…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(5月30日论文合集)

文章目录 一、检测相关(16篇)1.1 Contextual Object Detection with Multimodal Large Language Models1.2 Towards minimizing efforts for Morphing Attacks -- Deep embeddings for morphing pair selection and improved Morphing Attack Detection1.3 Mining Negative Tem…

Pytorch CIFAR10图像分类 ShuffleNet篇

Pytorch CIFAR10图像分类 ShuffleNet篇 文章目录 Pytorch CIFAR10图像分类 ShuffleNet篇4. 定义网络(ShuffleNet)Channel Shuffle网络单元 Shuffle UnitShuffleNet 网络结构summary查看网络测试和定义网络 5. 定义损失函数和优化器6. 训练及可视化&#…

「教程」微信小程序获取经纬度查询天气预警信息

使用天气预警API 可以帮助人们及时获取和了解天气预警信息,以便采取相应的措施来保护自身和财产。天气预警通常是由气象部门或相关机构发布的,用于提醒公众可能出现的极端天气或自然灾害,如暴雨、洪水、台风、暴风雪、雷暴、高温、低温、霜冻…

LNMT架构之LNMT与nginx动静分离

LNMT架构之LNMT与nginx动静分离 目录 一、实验前提环境配置 (一)关闭防火墙,安装本地yum (二)部署tomcat (三)部署Mariadb (四)部署nginx 二、动静分离 步骤一&a…

Django实现接口自动化平台(二)认证授权【持续更新中】

上一章: Django实现接口自动化平台(一)日志功能【持续更新中】_做测试的喵酱的博客-CSDN博客 下一章: 一、认证与授权配置 1、认证:获取权限的方式 2、授权:通过认证之后,可以获取哪些权限 …

【大数据分析】Hbase的基本原理

目录 Hbase 架构ClientZooKeeperMasterRegionServerHRegionStoreMemStoreStoreFileHFileHLog Hbase数据模型关于数据模型的其他概念Name SpaceTableRowColumnTime StampCell Hbase 架构 Client (1).META.表,记录了用户所有表拆分出来的 Regi…

ESP32设备驱动-TMP006 红外热电堆传感器驱动

TMP006 红外热电堆传感器驱动 文章目录 TMP006 红外热电堆传感器驱动1、TMP006介绍2、硬件准备3、软件准备4、驱动实现1、TMP006介绍 Texas Instruments 的 TMP006 是一系列温度传感器中的第一款,无需接触物体即可测量物体的温度。 它使用非常灵敏的热电堆来测量从物体表面发…

怎么给视频配音?视频配音软件有哪些?

视频配音在日常生活中被广泛应用,比如在电影解说、游戏解说、纪录片视频等领域,可以帮助创作者更好地表达自己的视频内容,提高视频的吸引力和感染力。很多小伙伴也想学习怎么给视频配音,但不清楚视频配音教程哪个好?没…