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.mzph.cn/bicheng/57517.shtml

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

相关文章

transient关键字详解

今天没打算写blog&#xff0c;在看一篇关于多线程环境下SimpleDateFormat线程不安全的问题&#xff0c;一般我们都知道多线程下这个是不安全&#xff0c;但是为什么不安全不太清楚&#xff0c;我在看的这篇文章讲的比较透彻&#xff0c;我根据文章中讲结合SimpleDateFormat源码…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十五集:制作更多地图,更多敌人,更多可交互对象

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、第一个代表性场景 1.制作更多敌人2.制作更多可交互对象二、第二个代表性场景 1.制作更多敌人2.制作更多可交互对象三、第三个代表性场景 1.制作更多敌人2.制…

苹果手机照片误删还能恢复吗?3款数据恢复工具推荐

照片是人们记录生活点滴与美好回忆的重要方式之一。而苹果手机则具备了较强的拍照功能&#xff0c;深受市场欢迎&#xff0c;但其也存在误删照片并难以恢复的难题。现在市面上也又很多照片恢复软件&#xff0c;其功能参差不齐。今天&#xff0c;小编为您找到了3款高效且可靠的苹…

猫咪掉毛上岸!一招解决清理难题——好用的宠物空气净化器

养宠前就知道猫咪有换毛季&#xff0c;我了解的是一年有两次&#xff0c;养宠后才知道&#xff0c;一次是半年...秋天风大的时候更加严重&#xff0c;直接就是一只“蒲公英”&#xff0c;随时散落一地的猫毛。早晚给它梳毛&#xff0c;每次都能收获巨大一张猫饼。 家里的地板上…

高标准农田信息化推动农业产业链升级

在当前全球农业转型的关键时期&#xff0c;高标准农田信息化作为现代农业发展的核心驱动力之一&#xff0c;正深刻地影响并推动着农业产业链的全面升级。这一进程不仅关乎粮食安全与质量的提升&#xff0c;更是实现农业可持续发展、促进农村经济繁荣的重要途径。 技术应用&…

TCL中环开工率下滑,员工集体要求解约赔偿

“ 尽管中环的市占率有所提高&#xff0c;但是高开工率也带来了巨量硅片库存&#xff0c;严重拖累了公司业绩。 ” 转载&#xff1a;科技新知 原创 作者丨依蔓 编辑丨蕨影 因大幅下调开工率&#xff0c;光伏硅片龙头TCL中环疑似遭遇员工“离职潮”&#xff1f; 近日&…

Java EE规范

1、简介 Java EE的全称是Java Platform, Enterprise Edition。早期Java EE也被称为J2EE&#xff0c;即Java 2 Platform Enterprise Edition的缩写。从J2EE1.5以后&#xff0c;就改名成为Java EE。一般来说&#xff0c;企业级应用具备这些特征&#xff1a;1、数据量特别大&…

curl支持ssl报错:SSL certificate problem: unable to get local issuer certificate

1. 说明 在使用curl时返回CURLE_OUT_OF_MEMORY&#xff0c;猜想可能是ssl的问题&#xff0c;用curl命令做实验发现访问http没问题&#xff0c;访问https会有问题&#xff0c;根据打印log判断是缺少证书&#xff0c;需要下载证书并声明证书路径。 1.1 curl访问http 访问正常&…

计算机网络基础进阶

三次握手四次挥手 三次握手 1------建立连接----------------------2 ACK1&#xff0c;seq0 2------传输数据&#xff0c;建立连接---------1 1------传输数据&#xff0c;建立连接---------2 三次握手用于建立TCP连接&#xff0c;确保通信双方都准备好进行数据传输。整个…

Gin 协程mysql客户端

一、Gin框架 mysql配置 这里选择yaml文件配置 二、配置读取 viper 读取yaml文件中对应配置 三、mysql 的协程客户端 文件位置 package databaseimport ("database/sql""fmt""github.com/spf13/viper""log""net/http"&quo…

鸿蒙_基础

HarmonyOS基础 页面跳转 import { router } from kit.ArkUIButton(去首页).onClick(()>{router.pushUrl({ // 普通跳转&#xff0c;可以返回url:pages/Index}) }) Button(登录).onClick(()>{router.replaceUrl({ // 替换跳转&#xff0c;无法返回&#xff0…

Zabbix进阶实战!将告警推送到Syslog服务器详细教程

需求场景&#xff1a; 用户需要将zabbix产生的告警事件推送给rsyslog服务器&#xff0c;syslog服务器再对事件日志进行分析处理. 环境配置信息 服务器 IP地址 ZabbixServer 192.168.200.195 Rsyslog服务器 192.168.200.128 *Rsyslog服务器防火墙需要放通 UDP/514端口 推送脚本…

C#描述-计算机视觉OpenCV(7):MSER特征检测

C#描述-计算机视觉OpenCV&#xff08;7&#xff09;&#xff1a;MSER特征检测 基本概念操作实例效果优化 基本概念 前文C#描述-计算机视觉OpenCV&#xff08;6&#xff09;&#xff1a;形态学描述了如何对图像的前后景特征形态进行检测与运算&#xff0c;本篇将分析基于形态的…

CANoe与C#联合仿真方案

引言 CANoe作为一款强大的网络仿真工具,能够模拟各种通信协议,尤其是在汽车领域的CAN、LIN、Ethernet等协议。而C#作为一种广泛使用的编程语言,能够为CANoe提供灵活的用户界面和逻辑控制。本文将探讨如何将CANoe与C#结合,实现高效的联合仿真方案。 1. 系统架构 联合仿真…

秋招突击——8/6——万得数据面试总结

文章目录 引言正文面经整理一1、讲一下java的多态&#xff0c;重载&#xff0c;重写的概念&#xff0c;区别2、说一下Java的数组&#xff0c;链表的结构&#xff0c;优缺点3、创建java线程的方式有哪些&#xff0c;具体说说4、创建线程池呢、每个参数的意义5、通过那几种方式保…

软件测试工程师:如何写出好的测试用例?

软件测试用例(Test Case)是软件测试过程中的一种详细文档或描述&#xff0c;用于描述在特定条件下&#xff0c;对软件系统或组件进行测试的步骤、输入数据、预期输出和预期行为。编写高质量的测试用例是确保软件质量的关键步骤之一。以下是一些编写优秀测试用例的建议&#xff…

如何快速解决谷歌网站页面收录难题?

在外贸网站的运营中&#xff0c;页面无法被谷歌收录是一个常见的困扰。即便你的内容再优秀&#xff0c;如果搜索引擎的爬虫无法抓取到你的页面&#xff0c;那一切努力都将白费。而GPC爬虫池服务可以帮助你快速解决网站页面的收录问题。它通过千万级的爬虫池资源&#xff0c;强力…

数据结构与算法:贪心算法与应用场景

目录 11.1 贪心算法的原理 11.2 经典贪心问题 11.3 贪心算法在图中的应用 11.4 贪心算法的优化与扩展 总结 数据结构与算法&#xff1a;贪心算法与应用场景 贪心算法是一种通过选择当前最佳解来构造整体最优解的算法策略。贪心算法在很多实际问题中都取得了良好的效果&am…

NGINX 保护 Web 应用安全之基于 IP 地址的访问

根据客户端的 IP 地址控制访问 使用 HTTP 或 stream 访问模块控制对受保护资源的访问&#xff1a; location /admin/ { deny 10.0.0.1; allow 10.0.0.0/20; allow 2001:0db8::/32; deny all; } } 给定的 location 代码块允许来自 10.0.0.0/20 中的任何 IPv4 地址访问&#xf…

如何保证测试用例的充分性?

需求理解与分析&#xff1a; 深入理解软件需求规格说明书&#xff08;SRS&#xff09;&#xff0c;确保所有需求都被正确理解。 将需求分解为更小的、可测试的功能点或特性。 等价类划分&#xff1a; 将输入数据划分为若干等价类&#xff0c;从每个等价类中选取一个或少数几个…