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

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

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

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

相关文章

动静态库(完结版)

文章目录 接上篇完成blog第三方库安装演示动态库加载原理一二三四 接上篇完成blog 上篇链接 第三方库安装演示 sudo yum install -y ncurses-devel下载完成之后 在系统目录下面一定能找到对应的头文件和库文件 此时使用第三方库: 编译之后按错误提示是对应的函数找不到,所以链…

C语言 | Leetcode C语言题解之第60题排列序列

题目&#xff1a; 题解&#xff1a; char* getPermutation(int n, int k) {int factorial[n];factorial[0] 1;for (int i 1; i < n; i) {factorial[i] factorial[i - 1] * i;}--k;char* ans malloc(n 1);ans[n] \0;int valid[n 1];for (int i 0; i < n; i) {val…

“云卷数潮”云原生数据库分论坛亮点回顾!

4月29日&#xff0c;2024中国移动算力网络大会“云卷数潮”云原生数据库分论坛在江苏苏州举行。本次论坛不仅是技术交流的盛宴&#xff0c;更是行业发展趋势的风向标。论坛汇聚了众多企业领袖、专家学者及行业精英&#xff0c;共话云原生数据库技术发展&#xff0c;探讨行业最新…

git 配置相关

问题一&#xff1a;ssh-keygen -t ed25519 -C "Gitee SSH Key" 这个命令中的 ed25519 字符是什么意思&#xff1f; ssh-keygen 是一个用于生成SSH密钥的工具&#xff0c;SSH&#xff08;Secure Shell&#xff09;是一种网络协议&#xff0c;用于加密方式远程登录和其…

数据库(MySQL)—— DML语句

数据库&#xff08;MySQL&#xff09;—— DML语句 什么是DML语句添加数据给全部字段添加数据批量添加数据 修改数据删除数据 什么是DML语句 在MySQL中&#xff0c;DML&#xff08;Data Manipulation Language&#xff0c;数据操纵语言&#xff09;语句主要用于对数据库中的数…

http的basic 认证方式

写在前面 本文看下http的basic auth认证方式。 1&#xff1a;什么是basic auth认证 basic auth是一种http协议规范中的一种认证方式&#xff0c;即一种证明你就是你的方式。更进一步的它是一种规范&#xff0c;这种规范是这样子&#xff0c;如果是服务端使用了basic auth认证…

java:EasyExcel使用(一)读excel

java&#xff1a;EasyExcel使用&#xff08;一&#xff09;读excel 1 前言 EasyExcel相比于传统使用poi进行excel文件读写&#xff0c;编程使用操作上更加方便快捷&#xff0c;且对于内存溢出进行了优化处理。本文是EasyExcel读excel操作。 Java解析、生成Excel比较有名的框…

24.什么是跨域?解决方案有哪些?

为什么会出现跨域问题 存在浏览器同源策略&#xff0c;所以才会有跨域问题。那么浏览器是出于何种原因会有跨域的限制呢。其实不难想到&#xff0c;跨域限制主要的目的就是为了用户的上网安全。 同源策略导致的跨域是浏览器单方面拒绝响应数据&#xff0c;服务器端是处理完毕…

【C++】学习笔记——string_3

文章目录 六、string类5. string类的操作6. string类的转换7. string类的模拟实现 未完待续 搭配文档食用 六、string类 5. string类的操作 上面的函数中&#xff0c;有些是不常用的&#xff0c;咱们只挑几个重要的进行讲解。 c_str 就是将字符串转换成 C语言 字符串的格式。…

(附源码)超级简单的SSM图书交易系统,包含技术栈、架构图、设计图、教程

先看首页效果&#xff0c;包含买家、卖家、管理员三个端口。启动有问题可以联系我解决&#xff0c;微信&#xff1a;keepgoing4u 架构图&#xff1a; 用到软件 Jdk1.8 Mysql IntelliJ IDEA Maven 项目技术&#xff1a; Spring Boot SSM JSP mybatis Maven B/S模式 配置…

区块链技术:DAPP开发

随着科技的飞速发展&#xff0c;区块链技术逐渐渗透到各个领域&#xff0c;其中DAPP&#xff08;去中心化应用&#xff09;的发展尤为引人注目。作为一种新型的应用程序&#xff0c;DAPP正在重塑未来商业生态&#xff0c;其潜力无可估量。 一、DAPP的定义和特点 DAPP是指基于…

CSS高级选择器

一、属性选择器 以value开头的att属性的E元素&#xff1a;E[att^"value"]{ ;} a[href^http]{background-color"red";} css a[href^http]{background-color"red"; } html <!DOCTYPE html> <html lang"en"> <head&…

运营版游戏陪玩平台源码/tt语音聊天/声优服务/陪玩系统源码开黑/约玩源码

简述 一个人的游戏叫孤独&#xff0c;一群人的游戏才是乐趣&#xff0c;随着电竞产业在国内的快速发展&#xff0c;游戏陪练行业也迅速成长&#xff0c;现在很多游戏玩家为了追求更高质量的游戏体验感&#xff0c;往往会在玩游戏的过程中找陪练&#xff0c;通过陪玩系统进行预…

前端开发工程师——Vue

Vue学习笔记&#xff08;尚硅谷天禹老师&#xff09;_尚硅谷天禹老师vue2021讲课笔记下载-CSDN博客 模板语法 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" co…

Springboot+Vue+小程序+基于微信小程序电影票网购系统

Java电影票购买管理系统&#xff0c;Maven管理工具&#xff0c;MyBatis数据库操作&#xff0c;idea平台开发&#xff0c;后台的前端为Vue&#xff0c;前台客户端为小程序&#xff0c;功能丰富&#xff0c;还有电影周边购买功能&#xff0c;请在最下方二维码处联系我即可&#x…

如何判断第三方软件测试公司是否具有资质

在软件开发的过程中&#xff0c;软件测试是确保软件质量、稳定性和用户体验的关键环节。许多企业选择将软件测试工作交给专业的第三方软件测试公司来完成&#xff0c;以确保测试的准确性和公正性。但是&#xff0c;如何判断一个第三方软件测试公司是否具有资质呢&#xff1f;以…

【软件开发规范篇】JAVA后端开发编码格式规范

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

基于FPGA的数字信号处理(7)--如何确定Verilog表达式的位宽

一般规则 很多时候&#xff0c;Verilog中表达式的位宽都是被隐式确定的&#xff0c;即使你自己设计了位宽&#xff0c;它也是根据规则先确定位宽后&#xff0c;再扩展到你的设计位宽&#xff0c;这常常会导致结果产生意想不到的错误。比如&#xff1a; timescale 1ns/1ns mod…

GD32F470内存不能设置512KB

最近研究了下GD32F470芯片手册&#xff0c;发现标称的内存512KB&#xff0c; 其实是连TCMSRAM一起算的&#xff0c;即TCMSRAMSRAM0SRAM1SRAM2ADDSRAM 512KB, 其中SRAM0 - ADDSRAM 这段内存地址是连续的&#xff0c;从地址0x20000000开始。而TCMSRAM地址却是从0x10000000 - 0x1…

新建stm32工程模板步骤

1.先使用keil新建一个project的基本代码 2.stm32启动文件添加 将stm32的启动文件&#xff0c;在原工程当中新建一个Start文件夹把相关的启动文件放到文件夹当中 然后还需要找到下面三个文件 stm32f10x.h是stm32的外设寄存器的声明和定义&#xff0c;后面那两个文件用于配置系…