2024年五一杯数学建模C题煤矿深部开采冲击地压危险预测求解全过程论文及程序

2024年五一杯数学建模

C题 煤矿深部开采冲击地压危险预测

原题再现:

  “煤炭是中国的主要能源和重要的工业原料。然而,随着开采深度的增加,地应力增大,井下煤岩动力灾害风险越来越大,严重影响着煤矿的安全高效开采。在各类深部煤岩动力灾害事故中,冲击地压已成为威胁中国煤矿安全生产最重要的灾害之一,冲击地压事故易造成严重的人员伤亡和财产损失。近年来,研究人员进行了大量深入的研究,采取了许多防控措施,中国煤矿安全形势持续稳步改善。但是,冲击地压事故仍时有发生,煤矿安全形势依然严峻,冲击地压的监测预警和有效防控仍是煤矿安全生产中亟待解决的科技问题。在深部煤矿开采过程中,可以监测声发射(AE)和电磁辐射(EMR)信号,电磁辐射和声发射传感器每30秒采集一个数据,可通过这些数据的变化趋势判断目前工作面或巷道是否存在冲击地压危险。电磁辐射和声发射数据随着采煤工作面的推进波动,一般在冲击地压发生前数天(如0-7天,即大约冲击地压发生前7天内)会有一些趋势性前兆特征,因此我们将电磁辐射和声发射数据分为5类,(A)正常工作数据;(B)前兆特征数据;©干扰信号数据;(D)传感器断线数据;(E)工作面休息数据,其中,A、B、C 类为工作面正常生产时的数据,D类为监测系统不正常时的数据,E类为停产期间的数据。附件1给出了2019年1月9日-2020年1月7日采集的电磁辐射和声发射数据,并且标记出了所对应的A、B、C类以及D或者E类(D/E)数据。请建立数学模型,完成以下问题:
  “问题1:如图1,已知现场工作面的部分电磁辐射和声发射信号中存在大量干扰信号,有可能是工作面的其他作业或设备干扰等因素引起,这对后期的电磁辐射和声发射信号处理造成了一定的影响。应用附件1和2中的数据,完成以下问题。
在这里插入图片描述
  “(1.1) 建立数学模型,对存在干扰的电磁辐射和声发射信号进行分析,分别给出电磁辐射和声发射中的干扰信号数据的特征(不少于3个)。
  “(1.2) 利用问题(1.1)中得到的特征,建立数学模型,对2022年5月1日-2022年5月30日的电磁辐射和2022年4月1日-2022年5月30日及2022年10月10日-2022年11月10日声发射信号中的干扰信号所在的时间区间进行识别,分别给出电磁辐射和声发射最早发生的5个干扰信号所在的区间,完成表1和表2。

在这里插入图片描述
  “问题2:已知在发生冲击地压危险前约7天内,电磁辐射和声发射信号存在随时间循环增大的趋势(如图2所示),这类信号我们称为前兆特征信号。在出现前兆特征信号之后的约7天内,有可能发生冲击地压,所以一般情况下出现前兆特征信号之后,会采取一定措施尽可能的防止冲击地压发生。应用附件1和2中的数据,完成以下问题。
在这里插入图片描述
  “(2.1) 建立数学模型,对电磁辐射和声发射信号中的前兆特征信号进行分析,重点分析信号的变化趋势,分别给出电磁辐射和声发射信号危险发生前(前兆特征)数据的趋势特征(不少于3个)。
  “(2.2) 利用问题(2.1)中得到的特征,建立数学模型,对2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中的前兆特征所在的时间区间进行识别,分别给出电磁辐射和声发射信号最早发生的5个前兆特征信号所在的时间区间,完成表3和表4。

在这里插入图片描述
在这里插入图片描述
  “问题3:为了尽早的识别前兆特征信号,在前兆特征信号出现的第一时间发出预警,需要在每次数据采集的时刻对危险进行预判。附件3给出了一些非连续时间段采集的电磁辐射和声发射信号数据。请建立数学模型,给出附件3中的每个时间段最后时刻出现前兆特征数据的概率,完成表5。
在这里插入图片描述

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

  “虽然煤炭是我国主要的能源和工业原料,但随着开采深度的增加,地应力增加,导致地下煤岩动力灾害的风险增加。岩爆是最严重的灾害之一。虽然采取了预防和控制措施,但事故仍然时有发生,煤矿安全形势严峻。因此,监测、预警和有效防治仍然是亟待解决的科技问题。声发射和电磁辐射信号监测可以及时判断岩爆危险性,并每隔30秒提供数据。通常,在冲击地压发生的前几天,会出现一些趋势前兆特征,这为预防提供了可能。
  “问题1:首先,我们分析了本文提出的干扰信号。从原理图中可以看出,干扰信号的值是离群值。在数据的清理和降噪过程中,我们可以将离群点作为干扰信号集进行分离。我们通过Q-Q图筛选了总共1432个离群值和离群值,然后过滤掉连续时间段中的干扰。最后得到381个干扰信号。得到了干扰信号的几个特征点。对于处理的数据,我们将把离群值返回到0,并将它们视为缺失值。对于缺失的值,我们将使用插值来完成它们。
  “问题2:首先,我们分析了本文提出的信号前兆特征,发现本文所强调的前兆特征是周期数据在一定时间段内连续发生的时候。因此,前兆特征必须包括连续性和周期性的基本特征。考虑到周期时间序列,我们使用sarima分解时间序列模型对原始数据进行分解,提取前兆发生时产生的特征,并在此特征提取模型中预测测试集数据,以查看它是否是前兆特征数据。因此,在提取时间序列分解模型后,我们对原始数据进行迭代预测,最终获得4-10、5-8、5-10、5-28、5-1。前体特征首次出现的三个时间点。
  “问题3:最后一个问题是结合前两个问题的模型。首先,我们使用样条插值算法来完成数据。由于数据波动性太强,很容易导致时间序列模型的白噪声失效,因此我们使用滤波算法对其进行平滑,然后将其代入问题2中建立的时间序列分解模型中进行迭代求解。最终结果为0.92,0.51,0,1,0.93。

模型假设:

  “假设1:电磁辐射和声发射信号的干扰信号具有特定的频率范围特性。
  “合理性:许多设备和操作在运行过程中会产生特定频率的电磁辐射和声发射信号,这些信号可能会在特定范围内干扰目标信号,因此考虑频率范围是合理的。

  “假设2:干扰信号在时间上具有不规则的周期变化。
  “合理性:由于各种因素,许多工作和设备的运行可能会产生干扰信号。根据固定的时间表,这种干扰信号可能不会发生。因此,合理地考虑干扰信号具有不规则的周期变化。

  “假设3:干扰信号的强度可能随着时间或特定操作的进展而变化。
  “合理性:不同的操作或设备可能产生不同强度的干扰信号,干扰信号的强度可能随着操作的进展或设备状态的变化而变化。

  “假设四:工作面上存在与其他作业或设备相关的信号特征,以区分干扰信号和目标信号。
  “合理性:野外工作面可能有各种作业或设备,它们产生的信号可能具有特定的特征,可以用来区分干扰信号和目标信号。

问题分析:

  “问题1分析
  “首先,对本文提出的干扰信号进行分析,通过原理图可以得出干扰信号的值是离群值的结论。在数据的清洗和降噪过程中,我们可以将离群值作为干扰信号集进行分离。通过Q-Q图共筛选出1432个离群点和离群点,然后滤除连续时间段内的干扰,最终得到381个时间点的干扰信号。得到了干扰信号的几个特征点。对于处理的数据,我们将把离群值返回到0,并将它们视为缺失值。对于缺失的值,我们将使用插值来完成它们。
  “问题2分析
  “通过对本文提出的信号前兆特征的分析,发现本文所强调的前兆特征是在一定时间段内连续出现的周期性数据。因此,前兆特征必须包括连续性和周期性的基本特征。考虑到周期时间序列,在该特征提取模型中,使用sarima分解时间序列模型对原始数据进行分解,提取前兆发生时产生的特征,并预测测试集数据是否为前兆特征数据。因此,在提取时间序列分解模型后,我们对原始数据进行迭代预测,最终获得较为理想的前兆特征时间点。
  “问题3分析
  “最后一个问题是结合前两个问题的模型。首先,我们使用样条插值算法来完成面对不连续数据的数据。由于数据波动性太强,很容易导致时间序列模型的白噪声失效,因此我们使用滤波算法对其进行平滑,然后将其代入问题2中建立的时间序列分解模型中进行迭代求解。最终结果为0.92,0.51,0,1,0.93。

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

在这里插入图片描述

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

程序代码:

TF=ismissing(data1);
a=sum(TF,1);
b=sum(TF,2);
% ind=find(b>3);
[x_1,y_1]=find(TF==1) %上面为缺失值寻找
Q1=zeros(14,1);
Q2=zeros(14,1);
tmp1=[14,5433]
ind1=[14,5433]
lb=zeros(14,1);
ub=zeros(14,1);
IQR=zeros(14,1);
% clean=clean.'
% for i=1:14
%     Q1(i)=prctile(clean(i,:),25);
%     Q2(i)=prctile(clean(i,:),75);
%     IQR(i)=Q2(i)-Q1(i);
%     lb(i)=Q1(i)-1.5*IQR(i);
%     ub(i)=Q2(i)+1.5*IQR(i);
%     tmp1=find((clean(:,i)<lb(i))|(clean(:,i)>ub(i)));
%     ind1=find(tmp1)
% end %寻找异常值,并赋予nan
对缺失值数据进行填补
V1=mode(data1.VarName9);
V2=mode(data1.VarName10);
V3=mean(data1.VarName18,'omitnan');
V4=mean(data1.VarName21,'omitnan');
V5=mean(data1.VarName22,'omitnan');
fillmissing(data1.VarName9,'constant',V1);
fillmissing(data1.VarName10,'constant',V2);
fillmissing(data1.VarName18,'constant',V3);
fillmissing(data1.VarName21,'constant',V4);
fillmissing(data1.VarName22,'constant',V5);
对数据进行LTC时序分解分析处理,并筛选出重要性较大的部分数据作为该题的选择特征
trainingData=data1;
inputTable = trainingData;
predictorNames = {'VarName1', 'VarName2', 'VarName3', 'VarName4', 'mos', 'VarName6', 'VarName7', 'ARPU', 'VarName9', 'VarName10', 'MB', 'VarName12', 'VarName13', 'VarName14', 'VarName15', 'ARPU1', 'MOU', 'VarName18', 'GPRSKB', 'GPRSKB1', 'VarName21', 'VarName22', 'ARPU2', 'MOU1', 'VarName25', 'VarName26', 'VarName27', 'VarName28', 'VarName29', 'VarName30', 'VarName31', 'VarName32', 'VarName33', 'VarName34', 'VarName35', 'VarName36', 'VarName37', 'VarName38', 'VarName39', 'G', 'VarName41', 'VarName42'};
predictors = inputTable(:, predictorNames);
response = inputTable.VarName43;
[idx,importance]=fscmrmr(predictors,response);
% figure(1);
% bar(importance(importance>0.17))
% importance=importance./sum(importance(:))
% figure(1);
imp_x=find(importance>0.0017);
x_table=categorical(predictorNames(imp_x));
y_table=importance(imp_x);
figure1 = figure('NumberTitle','off','Name','Figure','Color',[1 1 1]);
axes1 = axes('Parent',figure1);
hold(axes1,'on');
bar(x_table,y_table,'FaceColor',[0 0.447058826684952 0.74117648601532],...'EdgeColor',[0 0 1]);
box(axes1,'on');
hold(axes1,'off');
set(axes1,'FontName','Times New Roman','FontSize',12,'FontWeight','bold');
% impdate=importance(importance>0.17)
rng(520);
MinLeafSize=1:15;
NumLearningCycles=5:5:50;
num_i=length(MinLeafSize);
num_j=length(NumLearningCycles);
RMSE_Bag=zeros(num_i,num_j);
R2_Bag=zeros(num_i,num_j);%设置可视化进度条
mywaitbar = waitbar(0);   
TOTAL_NUM = num_i*num_j; 
now_num = 0; for i=1:num_ifor j=1:num_j
template = templateTree(...'MinLeafSize', MinLeafSize(i));
regressionEnsemble = fitrensemble(...predictors, ...response, ...'Method', 'Bag', ...'NumLearningCycles', NumLearningCycles(j), ...'Learners', template);% 使用预测函数创建结果结构体
predictorExtractionFcn = @(t) t(:, predictorNames);
featureSelectionFcn = @(x) x(:,includedPredictorNames);
ensemblePredictFcn = @(x) predict(regressionEnsemble, x);
trainedModel.predictFcn = @(x) ensemblePredictFcn(featureSelectionFcn(predictorExtractionFcn(x)));% 向结果结构体中添加字段
trainedModel.RequiredVariables = {'ARPU', 'ARPU1', 'ARPU2', 'G', 'GPRSKB', 'GPRSKB1', 'MB', 'MOU', 'MOU1', 'VarName1', 'VarName10', 'VarName12', 'VarName13', 'VarName14', 'VarName15', 'VarName18', 'VarName2', 'VarName21', 'VarName22', 'VarName25', 'VarName26', 'VarName27', 'VarName28', 'VarName29', 'VarName3', 'VarName30', 'VarName31', 'VarName32', 'VarName33', 'VarName34', 'VarName35', 'VarName36', 'VarName37', 'VarName38', 'VarName39', 'VarName4', 'VarName41', 'VarName42', 'VarName6', 'VarName7', 'VarName9', 'mos'};
trainedModel.RegressionEnsemble = regressionEnsemble;
trainedModel.About = '此结构体是从回归学习器 R2021a 导出的训练模型。';
trainedModel.HowToPredict = sprintf('要对新表 T 进行预测,请使用: \n yfit = c.predictFcn(T) \n将 ''c'' 替换为作为此结构体的变量的名称,例如 ''trainedModel''\n \n表 T 必须包含由以下内容返回的变量: \n c.RequiredVariables \n变量格式(例如矩阵/向量、数据类型)必须与原始训练数据匹配。\n忽略其他变量。\n \n有关详细信息,请参阅 <a href="matlab:helpview(fullfile(docroot, ''stats'', ''stats.map''), ''appregression_exportmodeltoworkspace'')">How to predict using an exported model</a>');% 提取预测变量和响应
% 以下代码将数据处理为合适的形状以训练模型。
%
inputTable = trainingData;
predictorNames = predictors.Properties.VariableNames(:);
predictors = inputTable(:, predictorNames);
response = inputTable.VarName43;% 执行交叉验证
partitionedModel = crossval(trainedModel.RegressionEnsemble, 'KFold', 10);% 计算验证预测
validationPredictions = kfoldPredict(partitionedModel);% 计算验证 RMSE
validationRMSE = sqrt(kfoldLoss(partitionedModel, 'LossFun', 'mse'));%计算R2
BagR2=1-sum(( validationPredictions - response ).^2,'omitnan') / sum((response - mean(response,'omitnan')).^2,'omitnan');%导出数据
RMSE_Bag(i,j)=validationRMSE;
R2_Bag(i,j)=BagR2;%更新进度
now_num = now_num+1;
mystr=['Loading...',num2str(100*now_num/TOTAL_NUM),'%'];
waitbar(now_num/TOTAL_NUM,mywaitbar,mystr);end
end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VScode背景更改

效果 实现方法 第0步 以管理员身份运行VScode 首先 需要安装这个扩展 然后 接下来 找到配置文件 再后来 在配置文件的下面但不超过最后一个大括号的地方加入以下内容 "update.enableWindowsBackgroundUpdates": true,"background.fullscreen": {…

Nature 正刊丨群体爆发中的神经元序列在人类皮层中编码信息

01摘要 传统上&#xff0c;神经编码是通过对不同刺激的放电率和潜伏期的变化来检查的1,2,3,4,5。然而&#xff0c;神经元群体也可能表现出短暂的尖峰活动爆发&#xff0c;其中神经元以特定的时间顺序或序列放电6,7,8。人脑可以利用群体爆发中的这些神经元序列来有效地表示信息…

React中的useState和useEffect解析

一、组件状态管理——useState 1.定义 useState 是一个 React Hook&#xff08;函数&#xff09;&#xff0c;它允许我们向组件添加一个状态变量&#xff0c;从而控制影响组件的渲染结果 和普通JS变量不同的是&#xff0c;状态变量一旦发生变化组件的视图UI也会跟着变化&…

力扣 中等 82.删除排序链表中的重复元素 II

文章目录 题目介绍题解 题目介绍 题解 只需在83题基础上加一个while循环即可 class Solution {public ListNode deleteDuplicates(ListNode head) {ListNode dummy new ListNode(101, head);ListNode cur dummy;while (cur.next ! null && cur.next.next ! null) {…

汇编程序设计

文章目录 语句类型语句格式指令助记符操作数常量变量和符号运算符算数运算符逻辑运算符关系运算符分析运算符综合运算符优先级 伪指令数据定义伪指令符号定义伪指令标号定义伪指令&#xff1f;段定义伪指令段寻址伪指令过程定义伪指令程序计数器和定位伪指令&#xff1f;宏定义…

诺贝尔物理学奖与机器学习、神经网络:一场跨时代的融合与展望

诺贝尔物理学奖与机器学习、神经网络&#xff1a;一场跨时代的融合与展望 机器学习与神经网络的崛起 机器学习与神经网络的发展前景 机器学习和神经网络的研究与传统物理学的关系 总结 2024年&#xff0c;诺贝尔物理学奖颁给了机器学习与神经网络&#xff0c;这一具有里程碑…

一些关于FMEA在供应链风险管理中的实际应用案例_SunFMEA

【大家好&#xff0c;我是唐Sun&#xff0c;唐Sun的唐&#xff0c;唐Sun的Sun。一站式数智工厂解决方案服务商】 FMEA&#xff08;失效模式与影响分析&#xff09;在供应链风险管理中的实际应用案例&#xff1a; 案例一&#xff1a;某电子制造企业 该企业在生产一款新型智能手…

4 -《本地部署开源大模型》在Ubuntu 22.04系统下部署运行ChatGLM3-6B模型

在Ubuntu 22.04系统下部署运行ChatGLM3-6B模型 大模型部署整体来看并不复杂&#xff0c;且官方一般都会提供标准的模型部署流程&#xff0c;但很多人在部署过程中会遇到各种各样的问题&#xff0c;很难成功部署&#xff0c;主要是因为这个过程会涉及非常多依赖库的安装和更新及…

Spark安装

Downloads | Apache Spark 拖动安装包 上传虚拟机 # 解压锁环境就安装好能使用 tar -zxvf spark-3.3.1-bin-hadoop3.tgz# 修改文件名称 mv spark-3.3.1-bin-hadoop3 spark-local 1.Local模式 测试案例&#xff1a;计算圆周率π # Usage: spark-submit [options] <app ja…

AtCoder Beginner Contest 375 F - Road Blocked

AtCoder Beginner Contest 375 F - Road Blocked 题目大意 给你一个n个点m条边的无向图&#xff0c;接下来有两种操作 1.删除编号为 i i i 的边 2.询问 x , y x,y x,y 两点之间的最短路 思路 注意到 n < 300 n<300 n<300 &#xff0c;而且我我们需要任意两点最…

界面控件Telerik UI for WPF 2024 Q3亮点 - 支持禁用数据过滤等

Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序&#xff0c;同时还能快速构建企业级办公WPF应用程序。UI for WPF支持MVVM、触摸等&#xff0c;创建的应用程序可靠且结构良好&#xff0c;非常容易维护&#xff0c;其直观的API将无缝地集成Visual Studio…

HarmonyOS NEXT 应用开发实战(七、知乎日报轮播图的完整实现)

在今天的博文中&#xff0c;我们将深入探讨如何在 HarmonyOS NEXT 中使用 ArkUI 实现一个轮播图组件。我们将通过一个示例代码来演示这个完整的过程&#xff0c;其中包含获取数据、管理数据源以及渲染组件等多个部分。 先来看下最终实现效果&#xff1a; 项目准备 首先&#…

Deep Learning

深度学习 文章目录 前言面向开发人员的 NVIDIA AI 平台每个 AI 框架 - 加速统一平台从开发到部署前言 深度学习是 AI 和机器学习的一个子集,它使用多层人工神经网络在对象检测、语音识别、语言翻译等任务中提供最先进的准确性。 深度学习与传统机器学习技术的不同之处在于,深…

MySQL8.0主从同步报ERROR 13121错误解决方法

由于平台虚拟机宿主机迁移&#xff0c;导致一套MySQL主从库从节点故障&#xff0c;从节点服务终止&#xff0c;在服务启动后&#xff0c;恢复从节点同步服务&#xff0c;发现了如下报错&#xff1a; mysql> show slave status\G; *************************** 1. row *****…

Linux 外设驱动 应用 2 KEY 按键实验

2 按键 2.1 按键介绍 按键是指轻触式按键开关&#xff0c;也称之为轻触开关。按键开关是一种电子开关&#xff0c;属于电子元器件类&#xff0c;最早出现在日本&#xff0c;称之为&#xff1a;敏感型开关&#xff0c;使用时以满足操作力的条件向开关操作方向施压开关功能闭合…

spring05

一: 场景设定和问题复现 1 准备项目 pom.xml //单元测试:每个业务单独运行 <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.3.1</version> <scope>…

民宿预订新纪元:SpringBoot实现的在线平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理民宿在线预定平台的相关信息成为必然。开发…

springboot041师生健康信息管理系统(论文+源码)_kaic

摘 要 随着移动应用技术的发展&#xff0c;越来越多的用户借助于移动手机、电脑完成生活中的事务&#xff0c;许多的传统行业也更加重视与互联网的结合。 本论文主要介绍基于java的师生健康信息管理系统&#xff0c;运用软件工程原理和开发方法&#xff0c;采用springboot框架…

Flink时间语义和时间窗口

前言 在实际的流计算业务场景中&#xff0c;我们会发现&#xff0c;数据和数据的计算往往都和时间具有相关性。 举几个例子&#xff1a; 直播间右上角通常会显示观看直播的人数&#xff0c;并且这个数字每隔一段时间就会更新一次&#xff0c;比如10秒。电商平台的商品列表&a…

VSCode自搭建嵌入式环境的make构建工具选择

make构建工具即make.exe。 make.exe作为环境变量&#xff0c;和Makefile脚本同步协作&#xff0c;Makefile里面的语法规定了代码项目中多文件的编译顺序和编译规则。 ①MinGW-64&#xff1a;如果选择MinGW/bin文件目录下的mingw32-make.exe&#xff0c;将其重命名为make.exe&a…