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

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名片即可

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringMvc入门

SpringMvc用来代替展示层Servlet,均属于Web层开发技术 Servlet是如何工作的 1、导入Servlet依赖坐标 2、创建一个Servlet接口实现类,重写其中的所有方法 3、在Servlet实现类上加上WebServlet注解,用来配置Servlet访问路径 4、启动Tomca…

总结906

学习目标: 月目标:6月(线性代数强化9讲,背诵15篇短文,考研核心词过三遍) 周目标:线性代数强化3讲,英语背3篇文章并回诵,检测 每日规划 今日已做: 1.回环背诵…

详解Hystrix

目录 1.微服务中的容错 1.1.服务雪崩 1.2.解决办法 2.hystrix 2.1.概述 2.2.项目结构及依赖 2.3.代码示例 2.3.1.注册中心 2.3.2.服务调用者 2.3.3.服务提供者 2.4.服务降级 2.4.1.单点响应 2.4.2.默认响应 2.4.3.前置响应 2.5.服务熔断 2.5.1.概述 2.5.2.使用…

centos 安装 nginx

1.下载nginx安装包 wget -c https://nginx.org/download/nginx-1.24.0.tar.gz 下载到了当前目录下 2.解压安装包 解压后的结果 3.安装依赖 yum -y install gcc gcc-c make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel 4. ./configure --prefix/usr/lo…

【Linux】深入理解文件系统

系列文章 收录于【Linux】文件系统 专栏 关于文件描述符与文件重定向的相关内容可以移步 文件描述符与重定向操作。 可以到 浅谈文件原理与操作 了解文件操作的系统接口。 想深入理解文件缓冲区还可以看看文件缓冲区。 目录 系列文章 磁盘 结构介绍 定位数据 抽象管理…

高速电路设计系列分享-电源噪声分析

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示:这里可以添加技术概要 例如: 当今许多应用都要求高速采样模数转换器(ADC)具有12位或以上的分辨率,以便用户能够进行更精确的系统测量。然而,更高分辨率…

【机器学习】机器故障的二元分类模型-Kaggle竞赛

竞赛介绍 数据集描述 本次竞赛的数据集(训练和测试)是从根据机器故障预测训练的深度学习模型生成的。特征分布与原始分布接近,但不完全相同。随意使用原始数据集作为本次竞赛的一部分,既可以探索差异,也可以了解在训…

使用CloudOS快速实现K8S容器化部署

关于容器技术 容器技术(以docker和Kubernetes为代表)呱呱坠地到如今,在国内经历了如下3个阶段: 婴儿期:2014-2016年的技术探索期; 少儿期:2017-2018年的行业试水期; 少年期&…

【Django | 爬虫 】收集某吧评论集成舆情监控(附源码)

🤵‍♂️ 个人主页: 计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 文章目录 一、爬取帖子、二级评论二、构建数据表三、并入项目1. spider代码2. view视图代码3. 优化后台界面3. urls路由 四、定…

自然语言处理: 第三章NPLM(Neural Probabilistic Language Mode)

理论基础 NPLM的全称是"Neural Probabilistic Language Model",即神经概率语言模型。这是一种基于神经网络的语言模型,用于生成自然语言文本。最早是由Bengio 在2003年的A Neural Probabilistic Language Model一文中提出来的, NP…

【永久服务器】EUserv

1. 请先自行准备网络(我用的伦敦还可以)、以及visa卡,淘宝可以代付,我总共花了97人民币(10.94欧代付费) 现在只能申请一台,多了会被删除,也就是两欧元,然后选择visa卡 选…

MySQL(六):基本的SELECT语句

基本的SELECT语句 前言一、SELECT...二、SELECT ... FROM三、列的别名四、去除重复行五、空值参与运算六、着重号七、查询常数八、显示表结构九、过滤数据 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主&#…

AI2:仅凭开源数据,可达ChatGPT 83%表现

夕小瑶科技说 原创 作者 | Python ChatGPT强大的性能让人爱不释手,ChatGPT迟迟不开源让人恨得牙根痒痒。那仅通过开源数据,能够取得怎样的效果呢?近期,AI2的一篇论文显示,最好的65B规模的模型能够达到ChatGPT表现的8…

【MySQL事务】保证数据完整性的利器

1、事务的认识 事务:事务就是将多个SQL给打包在一起,组成一个整体。组成这个整体的各个SQL,要么全部成功,要么全部失败。 举例说明: 情人节到了,滑稽老铁打算给他女朋友小美发给红包,但是他又害…

Spring 是什么?IoC 和 DI的区别

1. Spring 是什么?2. IoC是什么? 2.DI概念说明 1. Spring 是什么? 我们通常讲的Spring指的是Spring Framework(Spring框架),它是一个开源的框架,有着活跃而庞大的社区,这也是它之所谓经久不衰的原因。官方的解读是:Spring官网 翻译过来就是:Spring使Java编程对每…

优维低代码实践:面包屑配置以及菜单配置

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。 优维…

MySQL的版本从5.7跳到了8.0有哪些原因?

MySQL的版本从5.7跳到了8.0的原因? 一、引言1.1、MySQL是什么?1.2、MySQL 5.7和8.0的历史背景 二、MySQL 8.0的新功能2.1、更好的安全性2.2、更高的性能2.3、更好的可扩展性2.4、JSON支持 三、MySQL 8.0的重要改进3.1、更严格的数据类型检查3.2、其他重要…

【CSS3系列】第七章 · 过渡和动画

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…

群晖nas(DS423+)和百度云盘互相自动备份

群晖nas提供了云同步功能,使用该功能,可以将百度云盘和群晖nas设置成互为备份,这样我们nas上的的重要数据就有多了一层保护。 通过设置,可以将nas上的某个目录同步到百度云盘的一个目录中,同步的方向可以自行定义&…

五、浅析[ElasticSearch]底层原理与分组聚合查询

目录 一、ElasticSearch文档分值_score计算底层原理1.boolean model2.relevance score算法2、分析一个document上的_score是如何被计算出来的 二、分词器工作流程1.character filter、tokenizer、token filter2、内置分词器的简单介绍3、定制分词器3.1默认的分词器--standard3.…