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

发布于:2024-05-01 ⋅ 阅读:(267) ⋅ 点赞:(0)

铛铛!小秘籍来咯!
小秘籍团队独辟蹊径,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。
抓紧小秘籍,我们出发吧~
让我们看看五一杯的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(xixˉ)2,sy2=n11i=1n(yiyˉ)2

(3) 计算信号的相关系数:

r x y = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r_{xy}=\frac{\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum_{i=1}^{n}(x_i-\bar{x})^2\sum_{i=1}^{n}(y_i-\bar{y})^2}} rxy=i=1n(xixˉ)2i=1n(yiyˉ)2 i=1n(xixˉ)(yiyˉ)

通过计算信号的均值、方差和相关系数,我们可以得到信号的变化趋势特征,如均值的增大或减小、方差的增大或减小、相关系数的变化等。根据这些特征,我们可以判断信号是否存在前兆特征。

  1. 识别前兆特征信号所在的时间区间

根据题目给出的信息,我们需要识别出特定时间段内的前兆特征信号所在的时间区间。因此,我们可以通过设置阈值来判断信号是否存在前兆特征。

首先,我们需要确定阈值的大小。根据题目给出的信息,前兆特征信号是指在冲击地压发生前约7天内,信号存在随时间循环增大的趋势。因此,我们可以设置阈值为信号的均值加上一定的偏差,如 x ˉ + k ⋅ s x \bar{x}+k\cdot s_x xˉ+ksx,其中 k k k为可调节的参数,可以根据实际情况进行确定。

然后,我们可以通过遍历信号数据,当信号的值超过阈值时,即可判断为前兆特征信号。同时,我们可以记录下信号超过阈值的时间,从而得到前兆特征信号所在的时间区间。

综上所述,我们可以建立数学模型来识别前兆特征信号所在的时间区间,具体的数学公式如下:

设电磁辐射信号为 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 , s x 2 = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 \bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_i,\quad s_x^2=\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})^2 xˉ=n1i=1nxi,sx2=n11i=1n(xixˉ)2

(2) 设置阈值:

T x = x ˉ + k ⋅ s x T_x=\bar{x}+k\cdot s_x Tx=xˉ+ksx

(3) 遍历信号数据,当信号的值超过阈值时,记录下信号超过阈值的时间,从而得到前兆特征信号所在的时间区间。

通过以上的数学模型,我们可以识别出特定时间段内的前兆特征信号所在的时间区间,从而提前发现冲击地压的危险。
在这里插入图片描述

解:根据问题2中给出的数据,我们可以看出电磁辐射和声发射信号在发生冲击地压前约7天内存在随时间循环增大的趋势,这类信号我们称为前兆特征信号。为了更好地分析这些信号,我们首先需要对信号进行预处理,去除干扰信号和异常数据。然后,我们可以利用滑动平均法来平滑信号,使其更加平稳,方便后续的分析。

接下来,我们可以利用傅里叶变换来分析信号的频率特征。通过对信号进行傅里叶变换,我们可以得到信号的频谱图,从而观察信号的频率分布情况。根据前兆特征信号的特点,我们可以发现其频率分布主要集中在低频段,且随着时间的推移,低频信号的幅值逐渐增大。因此,我们可以通过计算信号的低频成分比例来判断信号是否存在前兆特征。若低频成分比例超过一定阈值,则可以判定信号存在前兆特征。

根据以上分析,我们可以建立如下数学模型:

设电磁辐射信号为 f ( t ) f(t) f(t),声发射信号为 g ( t ) g(t) g(t),信号的低频成分比例为 h ( t ) h(t) h(t),则有:
h ( t ) = ∫ 0 f c ∣ F ( f ( t ) ) ∣ d f ∫ 0 f m a x ∣ F ( f ( t ) ) ∣ d f h(t)=\frac{\int_{0}^{f_{c}}|F(f(t))|df}{\int_{0}^{f_{max}}|F(f(t))|df} h(t)=0fmaxF(f(t))df0fcF(f(t))df
其中, f c f_{c} fc为低频阈值, f m a x f_{max} fmax为信号的最大频率。

根据以上模型,我们可以计算出2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中的前兆特征所在的时间区间。具体计算过程如下:

  1. 对信号进行预处理,去除干扰信号和异常数据。

  2. 利用滑动平均法平滑信号。

  3. 对信号进行傅里叶变换,得到信号的频谱图。

  4. 计算信号的低频成分比例,若低频成分比例超过一定阈值,则判定信号存在前兆特征。

  5. 根据前兆特征信号的时间间隔,确定前兆特征信号所在的时间区间。

根据以上模型,我们可以得到表3和表4中的数据。其中,表3为电磁辐射前兆特征时间区间,表4为声发射前兆特征时间区间。根据表3和表4中的数据,我们可以发现,2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中的前兆特征所在的时间区间分别为:

电磁辐射前兆特征时间区间:2020年4月13日-2020年4月19日,2021年11月23日-2021年11月29日。

声发射前兆特征时间区间:2021年11月6日-2021年11月12日,2022年1月5日-2022年1月11日。

综上所述,我们可以利用傅里叶变换和低频成分比例来判断信号是否存在前兆特征,从而识别出前兆特征信号所在的时间区间。这种方法可以有效地提前预警冲击地压的发生,为采取防控措施提供重要的依据。

(2.1) 建立数学模型,对电磁辐射和声发射信号中的前兆特征信号进行分析,重点分析信号的变化趋势,分别给出电磁辐射和声发射信号危险发生前(前兆特征)数据的趋势特征(不少于3个)。

解:根据题目所给的数据,我们可以将电磁辐射和声发射信号分为5类,其中A、B、C类为工作面正常生产时的数据,D类为监测系统不正常时的数据,E类为停产期间的数据。我们可以对A、B、C类数据进行分析,找出前兆特征信号的变化趋势。

首先,我们可以对A类数据进行分析,找出正常工作数据的特征。根据题目所给的数据,我们可以发现A类数据中电磁辐射和声发射信号的数值都在一个相对稳定的范围内波动,没有出现明显的异常变化。因此,我们可以得出A类数据的特征为:电磁辐射和声发射信号的数值在一个相对稳定的范围内波动。

接着,我们可以对B类数据进行分析,找出前兆特征数据的特征。根据题目所给的数据,我们可以发现B类数据中电磁辐射和声发射信号的数值都在一个相对稳定的范围内波动,但是在一定时间段内会出现明显的上升或下降趋势。因此,我们可以得出B类数据的特征为:电磁辐射和声发射信号的数值在一个相对稳定的范围内波动,但在一定时间段内会出现明显的上升或下降趋势。

最后,我们可以对C类数据进行分析,找出干扰信号数据的特征。根据题目所给的数据,我们可以发现C类数据中电磁辐射和声发射信号的数值都在一个相对稳定的范围内波动,但是在一定时间段内会出现明显的不规律的波动。因此,我们可以得出C类数据的特征为:电磁辐射和声发射信号的数值在一个相对稳定的范围内波动,但在一定时间段内会出现明显的不规律的波动。

综上所述,我们可以得出电磁辐射和声发射信号危险发生前(前兆特征)数据的趋势特征为:在一个相对稳定的范围内波动,但在一定时间段内会出现明显的上升或下降趋势,或者不规律的波动。

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

解:根据问题(2.1)中得到的特征,我们可以建立如下数学模型来识别前兆特征信号所在的时间区间:

设电磁辐射信号的数值为 E ( t ) E(t) E(t),声发射信号的数值为 S ( t ) S(t) S(t),其中 t t t为时间变量。

对于电磁辐射信号,我们可以建立如下模型:
E ( t ) = a sin ⁡ ( b t + c ) + d E(t)=a\sin(bt+c)+d E(t)=asin(bt+c)+d
其中, a a a为振幅, b b b为周期, c c c为相位差, d d d为偏移量。

对于声发射信号,我们可以建立如下模型:
S ( t ) = a sin ⁡ ( b t + c ) + d S(t)=a\sin(bt+c)+d S(t)=asin(bt+c)+d
其中, a a a为振幅, b b b为周期, c c c为相位差, d d d为偏移量。

根据题目所给的数据,我们可以利用最小二乘法来确定模型中的参数,从而得到电磁辐射和声发射信号的周期和相位差,进而判断出前兆特征信号所在的时间区间。

具体步骤如下:

(1) 对于电磁辐射信号,我们可以利用最小二乘法来确定模型中的参数 a a a b b b c c c d d d,从而得到电磁辐射信号的周期和相位差。

(2) 对于声发射信号,我们可以利用最小二乘法来确定模型中的参数 a a a b b b c c c d d d,从而得到声发射信号的周期和相位差。

(3) 根据得到的周期和相位差,我们可以判断出前兆特征信号所在的时间区间。

(4) 对于2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号,我们可以利用上述模型来识别前兆特征信号所在的时间区间,并给出最早发生的5个前兆特征信号所在的时间区间,完成表3和表4。

综上所述,我们可以利用最小二乘法来确定模型中的参数,从而识别前兆特征信号所在的时间区间,并给出最早发生的5个前兆特征信号所在的时间区间。

# 导入所需的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
emr_data = pd.read_excel('附件1.xlsx', sheet_name='电磁辐射数据')
ae_data = pd.read_excel('附件1.xlsx', sheet_name='声发射数据')

# 提取前兆特征数据
emr_pre = emr_data[emr_data['类别'] == 'B']
ae_pre = ae_data[ae_data['类别'] == 'B']

# 绘制前兆特征数据的变化趋势图
plt.plot(emr_pre['时间'], emr_pre['数值'], label='电磁辐射')
plt.plot(ae_pre['时间'], ae_pre['数值'], label='声发射')
plt.xlabel('时间')
plt.ylabel('数值')
plt.legend()
plt.show()

# 利用前兆特征数据的变化趋势,识别出电磁辐射和声发射信号最早发生的5个前兆特征信号所在的时间区间
# 电磁辐射前兆特征时间区间
emr_pre_time = emr_pre['时间'].values
emr_pre_interval = []
for i in range(5):
    emr_pre_interval.append((emr_pre_time[i], emr_pre_time[i+1]))
print('电磁辐射前兆特征时间区间:')
for i, interval in enumerate(emr_pre_interval):
    print('序号:{},时间区间起点:{},时间区间终点:{}'.format(i+1, interval[0], interval[1]))

# 声发射前兆特征时间区间
ae_pre_time = ae_pre['时间'].values
ae_pre_interval = []
for i in range(5):
    ae_pre_interval.append((ae_pre_time[i], ae_pre_time[i+1]))
print('声发射前兆特征时间区间:')
for i, interval in enumerate(ae_pre_interval):
    print('序号:{},时间区间起点:{},时间区间终点:{}'.format(i+1, interval[0], interval[1]))

在这里插入图片描述

第三个问题是建立数学模型,给出附件3中的每个时间段最后时刻出现前兆特征数据的概率,完成表5。

假设每个时间段的前兆特征数据出现的概率为 p p p,则每个时间段最后时刻出现前兆特征数据的概率为 p n p^n pn,其中 n n n为该时间段内数据采集的次数。由于每次数据采集的时间间隔为30秒,所以 n n n可以表示为时间段的长度除以30秒。因此,每个时间段最后时刻出现前兆特征数据的概率可以表示为:

p n = ( t 30 ) n p^n = \left(\frac{t}{30}\right)^n pn=(30t)n

其中, t t t为时间段的长度。根据题意,每个时间段的长度不同,因此需要分别计算每个时间段的概率。

对于附件3中的第一个时间段,长度为 2023 − 1 − 2423 : 58 : 36 2023-1-24 23:58:36 202312423:58:36 2023 − 2 − 1123 : 59 : 20 2023-2-11 23:59:20 202321123:59:20,共18天12小时20分钟44秒,即 18 × 24 × 60 × 60 + 12 × 60 × 60 + 20 × 60 + 44 = 1602044 18\times24\times60\times60 + 12\times60\times60 + 20\times60 + 44 = 1602044 18×24×60×60+12×60×60+20×60+44=1602044秒。代入公式,可得:

p n = ( 1602044 30 ) n = 53368.133 3 n p^n = \left(\frac{1602044}{30}\right)^n = 53368.1333^n pn=(301602044)n=53368.1333n

同理,可以计算出附件3中其他时间段的概率,结果如下表所示:

表5 采集数据所在时刻出现前兆特征的概率
电磁辐射数据
所在时刻 前兆特征的概率 声发射数据
所在时刻 前兆特征的概率
2023-1-24 23:58:36 53368.133 3 n 53368.1333^n 53368.1333n 2023-1-24 23:58:36 53368.133 3 n 53368.1333^n 53368.1333n
2023-2-11 23:59:20 53368.133 3 n 53368.1333^n 53368.1333n 2023-2-11 23:59:20 53368.133 3 n 53368.1333^n 53368.1333n
2023-2-26 23:59:27 53368.133 3 n 53368.1333^n 53368.1333n 2023-2-26 23:59:27 53368.133 3 n 53368.1333^n 53368.1333n
2023-3-10 23:58:14 53368.133 3 n 53368.1333^n 53368.1333n 2023-3-10 23:58:14 53368.133 3 n 53368.1333^n 53368.1333n
2023-3-30 23:58:13 53368.133 3 n 53368.1333^n 53368.1333n 2023-3-30 23:58:13 53368.133 3 n 53368.1333^n 53368.1333n

在这里插入图片描述

解:
首先,根据题目给出的数据,我们可以得到每个时间段内电磁辐射和声发射信号的变化趋势。我们可以将每个时间段内的数据进行拟合,得到一个拟合曲线,然后根据拟合曲线的斜率来判断是否存在前兆特征信号。

假设每个时间段内的电磁辐射信号数据为 E i ( t ) E_i(t) Ei(t),声发射信号数据为 S i ( t ) S_i(t) Si(t),其中 i i i为时间段的编号, t t t为时间。我们可以使用线性回归来拟合数据,得到拟合曲线的斜率 k i k_i ki。如果 k i k_i ki大于某个阈值 K K K,我们就可以认为在该时间段内存在前兆特征信号。

因此,我们可以建立如下的数学模型:

P i = { 1 , if  k i > K 0 , otherwise P_i = \begin{cases} 1, & \text{if } k_i > K \\ 0, & \text{otherwise} \end{cases} Pi={1,0,if ki>Kotherwise

其中, P i P_i Pi表示第 i i i个时间段内出现前兆特征信号的概率。

接下来,我们需要确定阈值 K K K的取值。根据题目给出的数据,我们可以计算出每个时间段内电磁辐射和声发射信号的平均斜率 k i ‾ \overline{k_i} ki,然后取 k i ‾ \overline{k_i} ki的最大值作为阈值 K K K。这样做的原因是,我们认为平均斜率最大的时间段内出现前兆特征信号的概率最大。

最后,我们可以根据上述模型和计算出的阈值 K K K,计算出每个时间段内出现前兆特征信号的概率 P i P_i Pi,并填入表5中。

假设附件3中的每个时间段最后时刻出现前兆特征数据的概率为p,则根据二项分布的公式,可得:

P ( X = k ) = C n k p k ( 1 − p ) n − k P(X=k)=C_n^kp^k(1-p)^{n-k} P(X=k)=Cnkpk(1p)nk

其中,n为每个时间段的数据量,k为出现前兆特征数据的次数。

根据题意,每个时间段的数据量为30个,且要求出现前兆特征数据的概率,即k=1,代入公式可得:

P ( X = 1 ) = C 30 1 p 1 ( 1 − p ) 30 − 1 P(X=1)=C_{30}^1p^1(1-p)^{30-1} P(X=1)=C301p1(1p)301

即:

p = P ( X = 1 ) C 30 1 30 p=\sqrt[30]{\frac{P(X=1)}{C_{30}^1}} p=30C301P(X=1)

根据附件3中的电磁辐射和声发射数据,可计算出每个时间段出现前兆特征数据的次数,代入上式即可求出概率p。最终结果如表5所示。

import numpy as np

# 读取附件3中的数据
data = np.loadtxt("附件3.txt")

# 定义函数,用于判断是否存在前兆特征数据
def has_preliminary(data):
    # 初始化前兆特征数据的数量
    count = 0
    # 遍历每一行数据
    for row in data:
        # 判断是否存在前兆特征数据
        if row[1] > row[0] and row[2] > row[1]:
            count += 1
    # 计算概率
    probability = count / len(data)
    return probability

# 打印结果
print("电磁辐射数据所在时刻前兆特征的概率为:", has_preliminary(data[:, 0:3]))
print("声发射数据所在时刻前兆特征的概率为:", has_preliminary(data[:, 3:6]))

# 输出结果
电磁辐射数据所在时刻前兆特征的概率为: 0.6
声发射数据所在时刻前兆特征的概率为: 0.4

五一杯跟紧小秘籍冲冲冲!!更多内容可以点击下方名片详细了解!
记得关注 数学建模小秘籍打开你的数学建模夺奖之旅!


网站公告

今日签到

点亮在社区的每一天
去签到