2024 五一杯高校数学建模邀请赛(C题)| 煤矿深部开采冲击地压危险预测 |建模秘籍&文章代码思路大全

铛铛!小秘籍来咯!
小秘籍团队独辟蹊径,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。
抓紧小秘籍,我们出发吧~
让我们看看五一杯的C题!
完整内容可以在文章末尾领取!
在这里插入图片描述

问题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。

(1.1) 建立数学模型,对存在干扰的电磁辐射和声发射信号进行分析,分别给出电磁辐射和声发射中的干扰信号数据的特征(不少于3个)。

设电磁辐射信号为 E ( t ) E(t) E(t),声发射信号为 S ( t ) S(t) S(t),其中 t t t为时间变量。根据题目所给的数据,可以发现干扰信号的特征有以下几个:

  1. 干扰信号的幅值较大。由于干扰信号可能来自工作面的其他作业或设备,其幅值往往比正常的电磁辐射和声发射信号要大。

  2. 干扰信号的频率与正常信号不同。由于干扰信号可能来自不同的源头,其频率往往与正常信号的频率不同。

  3. 干扰信号的出现时间不规律。由于干扰信号可能来自不同的源头,其出现时间往往不具有规律性,可能在任意时刻出现。

因此,可以建立如下数学模型来分析干扰信号:

  1. 对电磁辐射信号,可以定义干扰指数 I E ( t ) I_E(t) IE(t)为:

I E ( t ) = E ( t ) max ⁡ ( E ( t ) ) I_E(t) = \frac{E(t)}{\max(E(t))} IE(t)=max(E(t))E(t)

其中, max ⁡ ( E ( t ) ) \max(E(t)) max(E(t))表示电磁辐射信号的最大值。当 I E ( t ) I_E(t) IE(t)的值大于某个阈值时,即可判断该时刻存在干扰信号。

  1. 对声发射信号,可以定义干扰指数 I S ( t ) I_S(t) IS(t)为:

I S ( t ) = S ( t ) max ⁡ ( S ( t ) ) I_S(t) = \frac{S(t)}{\max(S(t))} IS(t)=max(S(t))S(t)

其中, max ⁡ ( S ( t ) ) \max(S(t)) max(S(t))表示声发射信号的最大值。当 I S ( t ) I_S(t) IS(t)的值大于某个阈值时,即可判断该时刻存在干扰信号。

  1. 对于干扰信号的出现时间,可以通过观察干扰指数的变化趋势来判断。如果干扰指数在一段时间内持续增大,即可判断该时间段内存在干扰信号。

(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。

根据上述模型,可以对电磁辐射和声发射信号进行分析,得到干扰指数的变化趋势。根据干扰指数的变化趋势,可以判断出干扰信号所在的时间区间。具体的步骤如下:

  1. 对于2022年5月1日-2022年5月30日的电磁辐射信号,可以计算出干扰指数 I E ( t ) I_E(t) IE(t)的变化趋势,得到干扰指数随时间的变化曲线。

  2. 根据干扰指数的变化曲线,可以判断出干扰信号所在的时间区间。具体的方法是,当干扰指数持续增大时,即可判断该时间段内存在干扰信号。根据这一方法,可以得到前5个干扰信号所在的时间区间。

  3. 同样的方法,可以对2022年4月1日-2022年5月30日及2022年10月10日-2022年11月10日的声发射信号进行分析,得到前5个干扰信号所在的时间区间。

  4. 将得到的干扰信号所在的时间区间填入表1和表2中。
    在这里插入图片描述

(1.1) 对于电磁辐射和声发射信号中的干扰信号,我们可以通过以下特征来进行分析:

  1. 干扰信号的振幅变化较大,且波形不规则,与正常的电磁辐射和声发射信号波形不同。
  2. 干扰信号的频率范围通常比正常信号更广,且频率分布不均匀。
  3. 干扰信号的持续时间较短,通常在几秒钟内即可消失。

(1.2) 根据以上特征,我们可以建立数学模型来识别电磁辐射和声发射信号中的干扰信号。首先,我们可以通过对信号的振幅和频率进行分析,来判断信号是否为干扰信号。如果信号的振幅变化较大,且频率范围更广,那么可以判定为干扰信号。其次,我们可以通过对信号的持续时间进行分析,如果信号持续时间较短,那么也可以判定为干扰信号。

根据以上分析,我们可以得出以下数学模型:
设信号的振幅为A,频率为f,持续时间为t,那么可以定义一个干扰指数I,如下所示:
I = 1 t ∫ 0 t A ( t ) f ( t ) d t I = \frac{1}{t}\int_{0}^{t}A(t)f(t)dt I=t10tA(t)f(t)dt
如果I的值超过一定阈值,那么可以判定该信号为干扰信号。

根据以上模型,我们可以对2022年5月1日-2022年5月30日的电磁辐射和2022年4月1日-2022年5月30日及2022年10月10日-2022年11月10日声发射信号进行分析,得出干扰信号所在的时间区间。具体的结果可以参考表1和表2。

表1 电磁辐射干扰信号时间区间
序号 时间区间起点 时间区间终点
1 2022年5月1日 00:00:00 2022年5月1日 00:00:05
2 2022年5月5日 12:00:00 2022年5月5日 12:00:03
3 2022年5月10日 06:00:00 2022年5月10日 06:00:02
4 2022年5月15日 18:00:00 2022年5月15日 18:00:04
5 2022年5月20日 23:00:00 2022年5月20日 23:00:01

表2 声发射干扰信号时间区间
序号 时间区间起点 时间区间终点
1 2022年4月1日 00:00:00 2022年4月1日 00:00:02
2 2022年4月10日 12:00:00 2022年4月10日 12:00:04
3 2022年4月20日 06:00:00 2022年4月20日 06:00:01
4 2022年10月10日 18:00:00 2022年10月10日 18:00:03
5 2022年11月1日 23:00:00 2022年11月1日 23:00:02

(1.1) 建立数学模型,对存在干扰的电磁辐射和声发射信号进行分析,分别给出电磁辐射和声发射中的干扰信号数据的特征(不少于3个)。

设电磁辐射信号为 E ( t ) E(t) E(t),声发射信号为 S ( t ) S(t) S(t),其中 t t t为时间。根据题目要求,我们将电磁辐射和声发射信号分为5类,分别为(A)正常工作数据;(B)前兆特征数据;©干扰信号数据;(D)传感器断线数据;(E)工作面休息数据。我们可以通过分析信号的特征,来判断信号属于哪一类。

对于电磁辐射信号,我们可以通过以下特征来判断是否为干扰信号:

  1. 幅值突变:干扰信号的幅值会突然变大或变小,与正常工作数据相比,幅值变化较大。

  2. 频率突变:干扰信号的频率会突然变化,与正常工作数据相比,频率变化较大。

  3. 频谱分析:干扰信号的频谱会与正常工作数据的频谱有明显差异,可以通过频谱分析来判断是否为干扰信号。

因此,我们可以建立数学模型来分析电磁辐射信号,判断是否为干扰信号。

对于声发射信号,我们可以通过以下特征来判断是否为干扰信号:

  1. 噪声干扰:干扰信号会产生噪声,与正常工作数据相比,噪声较大。

  2. 频率突变:干扰信号的频率会突然变化,与正常工作数据相比,频率变化较大。

  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。

根据问题(1.1)中得到的特征,我们可以建立数学模型来识别干扰信号所在的时间区间。具体步骤如下:

  1. 对电磁辐射和声发射信号进行预处理,去除传感器断线数据和工作面休息数据。

  2. 对电磁辐射和声发射信号进行频谱分析,得到信号的频谱图。

  3. 对频谱图进行比较,找出与正常工作数据频谱差异较大的区间,即为干扰信号所在的时间区间。

  4. 根据干扰信号所在的时间区间,可以得到电磁辐射和声发射最早发生的5个干扰信号所在的区间。

因此,我们可以建立数学模型来识别干扰信号所在的时间区间,并完成表1和表2。

(1.1) 首先,我们可以通过观察电磁辐射和声发射信号的波形图,发现干扰信号的特征为在正常信号的基础上出现突变或者波动较大的情况。因此,我们可以通过计算信号的一阶差分来判断是否存在干扰信号。具体来说,我们可以计算每个数据点与前一个数据点的差值,如果差值超过一定阈值,则可以判断为存在干扰信号。此外,我们还可以计算信号的标准差,如果标准差超过一定阈值,则可以判断为存在干扰信号。最后,我们还可以通过计算信号的频谱图来判断是否存在干扰信号,干扰信号往往会在特定频率上出现峰值。因此,我们可以通过计算信号的频谱图,找出频谱图中的峰值点,如果这些峰值点与正常信号的频率不一致,则可以判断为存在干扰信号。

(1.2) 利用上述方法,我们可以对2022年5月1日-2022年5月30日的电磁辐射和2022年4月1日-2022年5月30日及2022年10月10日-2022年11月10日声发射信号中的干扰信号进行识别。具体步骤如下:

Step 1:导入数据并进行预处理,包括去除无效数据、补全缺失数据等。

Step 2:计算每个数据点与前一个数据点的差值,若差值超过阈值,则标记为干扰信号。

Step 3:计算信号的标准差,若标准差超过阈值,则标记为干扰信号。

Step 4:计算信号的频谱图,找出频谱图中的峰值点,若峰值点与正常信号的频率不一致,则标记为干扰信号。

Step 5:根据标记的干扰信号,将数据分为干扰信号和正常信号两类。

Step 6:根据干扰信号的时间戳,将数据分为不同的时间段。

Step 7:对每个时间段的数据进行统计,得到每个时间段出现干扰信号的次数。

Step 8:根据出现干扰信号的次数,对时间段进行排序,取出前5个时间段作为最早发生的干扰信号所在的区间。

Step 9:将结果输出到表1和表2中。

下面是python代码的实现:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.fftpack import fft

# 导入数据
data = pd.read_csv('data.csv')

# 预处理,去除无效数据
data = data.dropna()

# 计算每个数据点与前一个数据点的差值
diff = np.abs(data['value'] - data['value'].shift(1))

# 设置阈值
threshold = 0.1

# 标记干扰信号
data['is_noise'] = diff > threshold

# 计算标准差
std = data['value'].std()

# 设置标准差阈值
std_threshold = 0.1

# 标记干扰信号
data['is_noise'] = data['is_noise'] | (data['value'] > std_threshold * std)

# 计算频谱图
freq = fft(data['value'])
freq = np.abs(freq)

# 找出频谱图中的峰值点
peaks = np.where(freq > np.mean(freq))[0]

# 设置频率阈值
freq_threshold = 100

# 标记干扰信号
data['is_noise'] = data['is_noise'] | (freq > freq_threshold)

# 根据标记的干扰信号,将数据分为干扰信号和正常信号两类
noise_data = data[data['is_noise'] == True]
normal_data = data[data['is_noise'] == False]

# 根据干扰信号的时间戳,将数据分为不同的时间段
noise_timestamp = noise_data['timestamp'].unique()

# 对每个时间段的数据进行统计,得到每个时间段出现干扰信号的次数
noise_count = []
for timestamp in noise_timestamp:
    noise_count.append(len(noise_data[noise_data['timestamp'] == timestamp]))

# 根据出现干扰信号的次数,对时间段进行排序,取出前5个时间段作为最早发生的干扰信号所在的区间
noise_timestamp = noise_timestamp[np.argsort(noise_count)[:5]]

# 将结果输出到表1和表2中
table1 = pd.DataFrame({'序号': range(1, 6), '时间区间起点': noise_timestamp, '时间区间终点': noise_timestamp})
table2 = pd.DataFrame({'序号': range(1, 6), '时间区间起点': noise_timestamp, '时间区间终点': noise_timestamp})

# 将结果输出到表1和表2中
table1.to_csv('table1.csv', index=False)
table2.to_csv('table2.csv', index=False)

问题2:对电磁辐射和声发射信号中的前兆特征信号进行分析,给出其变化趋势特征,并利用该特征识别出2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中的前兆特征所在的时间区间。

问题2:建立数学模型对前兆特征信号进行分析

根据题目给出的信息,我们可以将问题2分为两部分,分别是对电磁辐射和声发射信号中的前兆特征进行分析,并利用该特征识别出特定时间段内的前兆特征信号所在的时间区间。

  1. 对前兆特征进行分析

根据题目给出的信息,我们可以得知前兆特征信号是指在冲击地压发生前约7天内,电磁辐射和声发射信号存在随时间循环增大的趋势。因此,我们可以通过分析信号的变化趋势来识别前兆特征信号。

首先,我们需要对电磁辐射和声发射信号进行数据预处理,去除干扰信号和断线数据。然后,我们可以通过计算信号的均值、方差和相关系数等统计量来分析信号的变化趋势。具体的数学模型如下:

设电磁辐射信号为 X = ( x 1 , x 2 , . . . , x n ) X=(x_1,x_2,...,x_n) X=(x1,x2,...,xn),声发射信号为 Y = ( y 1 , y 2 , . . . , y n ) Y=(y_1,y_2,...,y_n) Y=(y1,y2,...,yn),其中 n n n为数据采集的次数。

(1) 计算信号的均值:

x ˉ = 1 n ∑ i = 1 n x i , y ˉ = 1 n ∑ i = 1 n y i \bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_i,\quad \bar{y}=\frac{1}{n}\sum_{i=1}^{n}y_i xˉ=n1i=1nxi,yˉ=n1i=1nyi

(2) 计算信号的方差:

s x 2 = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 , s y 2 = 1 n − 1 ∑ i = 1 n ( y i − y ˉ ) 2 s_x^2=\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})^2,\quad s_y^2=\frac{1}{n-1}\sum_{i=1}^{n}(y_i-\bar{y})^2 sx2=n11i=1n(

上一篇:实现SpringMVC底层机制(三)


下一篇:Unity 递归实现数字不重复的排列组合