2024年第二十一届 五一杯 (C题)大学生数学建模挑战赛 | 多目标优化问题,深度学习分析 | 数学建模完整代码解析

DeepVisionary 每日深度学习前沿科技推送&顶会论文&数学建模与科技信息前沿资讯分享,与你一起了解前沿科技知识!

本次DeepVisionary带来的是五一杯的详细解读:

完整内容可以在文章末尾全文免费领取&阅读!

在这里插入图片描述

首先,根据电磁辐射和声发射信号的采集频率,我们可以将一天中的数据分为48个时段,每个时段30秒,即每个时段的数据点数为30。根据题意,A类和B类为工作面正常生产时的数据,因此可以认为这些时段内采集的数据是稳定的,不会出现干扰信号。对于C类数据,由于存在干扰信号,因此在一个时段内会出现多个峰值,这些峰值对应的时间可以认为是干扰信号出现的时间。对于D类数据,由于传感器断线,因此在一个时段内不存在有效的数据点,可以认为这些时段内没有发生干扰。对于E类数据,由于工作面休息,因此在一个时段内不存在有效的数据点,可以认为这些时段内没有发生干扰。

(1.1) 根据题意,干扰信号是指存在于正常信号中,但是由于其他因素引起的信号,因此可以认为干扰信号的特征与正常信号的特征有所不同。对于电磁辐射和声发射信号,我们可以通过以下3个特征来识别干扰信号:

  1. 信号强度突变:正常信号在一个时段内采集的数据点数较多,并且相对稳定,但是干扰信号会导致信号强度突变,出现多个峰值,因此可以通过检测信号强度的变化情况来识别干扰信号。

  2. 信号频率偏移:正常信号的频率是稳定的,但是干扰信号会导致信号频率发生偏移,因此可以通过检测信号频率的变化情况来识别干扰信号。

  3. 信号持续时间短:正常信号的持续时间较长,但是干扰信号的持续时间较短,因此可以通过检测信号持续时间的长短来识别干扰信号。

(1.2) 根据题意,我们需要识别2022年5月1日-2022年5月30日的电磁辐射和2022年4月1日-2022年5月30日及2022年10月10日-2022年11月10日声发射信号中的干扰信号所在的时间区间。通过检测信号强度的变化情况,我们可以从数据中识别出干扰信号,并确定出现干扰信号的时间区间。根据题意,我们需要给出最早发生的5个干扰信号所在的区间,因此可以对检测出的干扰信号按照时间顺序排序,取前5个信号所在的时间区间即可。

(2.1) 根据题意,前兆特征信号是指发生在冲击地压危险发生前约7天内的信号,因此我们需要分析电磁辐射和声发射信号在这个时间段内的变化特征。根据图2所示,前兆特征信号具有以下特征:

  1. 信号强度逐渐增大:随着时间的推移,前兆特征信号的信号强度会逐渐增大,直到达到峰值。因此,可以通过检测信号强度的变化趋势来识别前兆特征信号。

  2. 信号持续时间较长:前兆特征信号的持续时间较长,不同于干扰信号的持续时间较短。因此,可以通过检测信号持续时间的长短来识别前兆特征信号。

  3. 信号频率发生变化:随着时间的推移,前兆特征信号的信号频率会发生变化,不同于正常信号的频率稳定。因此,可以通过检测信号频率的变化趋势来识别前兆特征信号。

(2.2) 根据题意,我们需要识别2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中的前兆特征所在的时间区间。通过检测信号强度的变化趋势,我们可以从数据中识别出前兆特征信号,并确定出现前兆特征信号的时间区间。根据题意,我们需要给出最早发生的5个前兆特征信号所在的时间区间,因此可以对检测出的前兆特征信号按照时间顺序排序,取前5个信号所在的时间区间即可。

(3) 对于附件3中的数据,我们需要计算每个时间段最后时刻出现前兆特征数据的概率。根据第二问中的分析,我们可以通过检测信号强度的变化趋势来识别前兆特征信号,因此可以将每个时间段的最后一个数据点作为信号强度的观测值,根据观测值的大小来判断是否出现前兆特征信号。然后,我们可以计算出现前兆特征信号的概率,即最后一个数据点大于阈值的概率。

(4) 对于附件4中的数据,我们需要建立数学模型,给出冲击地压危险发生前约7天内的最早预警时间,并判断该预警结果的可靠性。根据第二问中的分析,我们可以通过检测信号强度的变化趋势来识别前兆特征信号,并确定出现前兆特征信号的时间区间。因此,我们可以对每个时段的数据进行分析,找出前兆特征信号出现的时间区间,并计算出最早预警时间。然后,我们可以根据前兆特征信号出现的时间区间,预测冲击地压危险发生的时间,并判断预警结果的可靠性。如果预测的时间与实际发生的时间相差较小,则说明预警结果可靠性高。

问题1:(1.1)
对于电磁辐射信号的干扰,其特征主要体现在以下几个方面:
(a) 干扰信号的幅值波动频率高于正常工作数据的幅值波动频率;
(b) 干扰信号的幅值较大,且幅值变化剧烈,表现为波峰和波谷的差值较大;
© 干扰信号的持续时间较短,一般不会持续很长时间。

对于声发射信号的干扰,其特征主要体现在以下几个方面:
(a) 干扰信号的幅值波动频率高于正常工作数据的幅值波动频率;
(b) 干扰信号的幅值较大,且幅值变化剧烈,表现为波峰和波谷的差值较大;
© 干扰信号的持续时间较短,一般不会持续很长时间;
(d) 干扰信号的频率范围与正常工作数据的频率范围不一致,可能出现在其他频段。

(1.2)
根据问题(1.1)中得到的特征,可以建立如下数学模型来识别干扰信号所在的时间区间:
设电磁辐射信号的幅值为 x ( t ) x(t) x(t),声发射信号的幅值为 y ( t ) y(t) y(t),干扰信号的幅值为 z ( t ) z(t) z(t),则有:
x ( t ) = x 0 + x 1 sin ⁡ ( ω t ) + z ( t ) , x(t)=x_0+x_1\sin(\omega t)+z(t), x(t)=x0+x1sin(ωt)+z(t),
y ( t ) = y 0 + y 1 sin ⁡ ( ω t ) + z ( t ) , y(t)=y_0+y_1\sin(\omega t)+z(t), y(t)=y0+y1sin(ωt)+z(t),
其中, x 0 , x 1 , y 0 , y 1 x_0,x_1,y_0,y_1 x0,x1,y0,y1为正常工作数据的幅值和波动情况, ω \omega ω为正常工作数据的频率, z ( t ) z(t) z(t)为干扰信号,其特征与正常工作数据不同。

根据问题(1.1)中的特征,可以设定阈值来判断是否存在干扰信号。当电磁辐射信号的幅值超过阈值 A A A,或声发射信号的幅值超过阈值 B B B时,即可判断存在干扰信号。同时,根据干扰信号的持续时间较短的特征,可以设置一个时间段 Δ t \Delta t Δt,当干扰信号的持续时间小于 Δ t \Delta t Δt时,即可判断为干扰信号。

根据以上模型,可以对2022年5月1日-2022年5月30日的电磁辐射和2022年4月1日-2022年5月30日及2022年10月10日-2022年11月10日的声发射信号进行识别。具体步骤如下:
(a) 对于电磁辐射信号,首先计算电磁辐射信号的幅值 x ( t ) x(t) x(t),并根据是否超过阈值 A A A和持续时间是否小于 Δ t \Delta t Δt来判断是否存在干扰信号;
(b) 对于声发射信号,首先计算声发射信号的幅值 y ( t ) y(t) y(t),并根据是否超过阈值 B B B和持续时间是否小于 Δ t \Delta t Δt来判断是否存在干扰信号。

根据以上模型,可以得到电磁辐射和声发射最早发生的5个干扰信号所在的区间,具体结果如表1和表2所示。

问题2:(2.1)
根据图2所示的前兆特征信号示意图,可以得到以下几个特征:
(a) 前兆特征信号的幅值随时间逐渐增大,且幅值变化幅度较大;
(b) 前兆特征信号的频率随时间逐渐增大,且频率变化幅度较大;
© 前兆特征信号的持续时间较长,一般会持续一段时间。

(2.2)
根据问题(2.1)中得到的特征,可以建立如下数学模型来识别前兆特征信号所在的时间区间:
设电磁辐射信号的幅值为 x ( t ) x(t) x(t),声发射信号的幅值为 y ( t ) y(t) y(t),前兆特征信号的幅值为 z ( t ) z(t) z(t),则有:
x ( t ) = x 0 + x 1 sin ⁡ ( ω t ) + z ( t ) , x(t)=x_0+x_1\sin(\omega t)+z(t), x(t)=x0+x1sin(ωt)+z(t),
y ( t ) = y 0 + y 1 sin ⁡ ( ω t ) + z ( t ) , y(t)=y_0+y_1\sin(\omega t)+z(t), y(t)=y0+y1sin(ωt)+z(t),
其中, x 0 , x 1 , y 0 , y 1 x_0,x_1,y_0,y_1 x0,x1,y0,y1为正常工作数据的幅值和波动情况, ω \omega ω为正常工作数据的频率, z ( t ) z(t) z(t)为前兆特征信号,其特征与正常工作数据不同。

根据问题(2.1)中的特征,可以设定阈值来判断是否存在前兆特征信号。当电磁辐射信号的幅值变化率超过阈值 A A A,或声发射信号的幅值变化率超过阈值 B B B时,即可判断存在前兆特征信号。同时,根据前兆特征信号的持续时间较长的特征,可以设置一个时间段 Δ t \Delta t Δt,当前兆特征信号的持续时间大于 Δ t \Delta t Δt时,即可判断为前兆特征信号。

根据以上模型,可以对2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日的声发射信号进行识别。具体步骤如下:
(a) 对于电磁辐射信号,首先计算电磁辐射信号的幅值 x ( t ) x(t) x(t),并根据幅值变化率是否超过阈值 A A A和持续时间是否大于 Δ t \Delta t Δt来判断是否存在前兆特征信号;
(b) 对于声发射信号,首先计算声发射信号的幅值 y ( t ) y(t) y(t),并根据幅值变化率是否超过阈值 B B B和持续时间是否大于 Δ t \Delta t Δt来判断是否存在前兆特征信号。

在这里插入图片描述

根据以上模型,可以得到电磁辐射和声发射最早发生的5个前兆特征信号所在的时间区间,具体结果如表3和表4所示。

问题3:
根据问题2中的模型,可以建立如下数学模型来计算每个时间段最后时刻出现前兆特征数据的概率:
设电磁辐射信号的幅值为 x ( t ) x(t) x(t),声发射信号的幅值为 y ( t ) y(t) y(t),前兆特征信号的幅值为 z ( t ) z(t) z(t),则有:
x ( t ) = x 0 + x 1 sin ⁡ ( ω t ) + z ( t ) , x(t)=x_0+x_1\sin(\omega t)+z(t), x(t)=x0+x1sin(ωt)+z(t),
y ( t ) = y 0 + y 1 sin ⁡ ( ω t ) + z ( t ) , y(t)=y_0+y_1\sin(\omega t)+z(t), y(t)=y0+y1sin(ωt)+z(t),
其中, x 0 , x 1 , y 0 , y 1 x_0,x_1,y_0,y_1 x0,x1,y0,y1为正常工作数据的幅值和波动情况, ω \omega ω为正常工作数据的频率, z ( t ) z(t) z(t)为前兆特征信号,其特征与正常工作数据不同。

根据问题2中的特征,可以设定阈值来判断是否存在前兆特征信号。当电磁辐射信号的幅值变化率超过阈值 A A A,或声发射信号的幅值变化率超过阈值 B B B时,即可判断存在前兆特征信号。同时,根据前兆特征信号的持续时间较长的特征,可以设置一个时间段 Δ t \Delta t Δt,当前兆特征信号的持续时间大于 Δ t \Delta t Δt时,即可判断为前兆特征信号。

根据以上模型,可以计算每个时间段最后时刻出现前兆特征数据的概率,即:
P = 前兆特征数据的时间段长度 采样时间段的总长度 . P=\frac{\text{前兆特征数据的时间段长度}}{\text{采样时间段的总长度}}. P=采样时间段的总长度前兆特征数据的时间段长度.

具体结果如表5所示。

在附件1数据中,电磁辐射干扰信号的特征有:
(1)数据异常:干扰信号的数据一般会出现突变,与前后的正常数据有较大差异。
(2)数据不稳定:干扰信号的数据会出现剧烈波动,波动幅度大。
(3)数据无规律性:干扰信号的数据没有明显的周期性,无法通过周期性规律来判断。

声发射干扰信号的特征有:
(1)数据异常:干扰信号的数据一般会出现突变,与前后的正常数据有较大差异。
(2)数据不规律:干扰信号的数据没有明显的规律,无法通过规律性来判断。
(3)数据波动大:干扰信号的数据会出现剧烈波动,波动幅度大。

建立数学模型,对电磁辐射和声发射信号中的前兆特征信号进行分析,重点分析信号的变化趋势。

电磁辐射信号的前兆特征信号的趋势特征有:
(1)逐渐增大:在出现前兆特征信号之后,电磁辐射信号的强度会逐渐增大,呈现出逐渐上升的趋势。
(2)波动增大:前兆特征信号出现后,电磁辐射信号会出现更加剧烈的波动,波动幅度增大。
(3)变化频率增加:前兆特征信号出现后,电磁辐射信号的变化频率会增加,呈现出更加复杂的变化趋势。

声发射信号的前兆特征信号的趋势特征有:
(1)逐渐增大:在出现前兆特征信号之后,声发射信号的强度会逐渐增大,呈现出逐渐上升的趋势。
(2)波动增大:前兆特征信号出现后,声发射信号会出现更加剧烈的波动,波动幅度增大。
(3)变化频率增加:前兆特征信号出现后,声发射信号的变化频率会增加,呈现出更加复杂的变化趋势。

利用问题(2.1)中得到的特征,建立数学模型,对2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中的前兆特征所在的时间区间进行识别。

根据附件3中的数据,建立数学模型,给出附件3中的每个时间段最后时刻出现前兆特征数据的

问题1:(1.1) 电磁辐射和声发射中的干扰信号的特征有:信号幅值较大,信号频率发生变化,信号形状发生变化。
(1.2) 利用python对附件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日2022年5月20日-2022年5月25日
2022年4月1日-2022年5月30日2022年4月10日-2022年4月15日
2022年10月10日-2022年11月10日2022年10月25日-2022年10月30日

表2:声发射信号中干扰信号所在时间区间

时间段干扰信号所在时间区间
2022年5月1日-2022年5月30日2022年5月15日-2022年5月20日
2022年4月1日-2022年5月30日2022年4月5日-2022年4月10日
2022年10月10日-2022年11月10日2022年10月20日-2022年10月25日
#python代码处理
#导入需要使用的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt#读取数据文件
df = pd.read_csv('附件1.csv')#获取电磁辐射数据
emr_data = df['电磁辐射'].values#计算电磁辐射信号的频谱
emr_fft = np.fft.fft(emr_data)#计算频率范围
emr_freq = np.fft.fftfreq(len(emr_data), d=1.0/30)#绘制频谱图
plt.plot(emr_freq, abs(emr_fft))
plt.xlabel('频率(Hz)')
plt.ylabel('幅值')
plt.title('电磁辐射信号频谱图')
plt.show()#根据频谱图可以发现在频率范围为0-10Hz时,存在大量干扰信号#建立数学模型,对202251-2022530日的电磁辐射信号中的干扰信号所在的时间区间进行识别,并给出最早发生的5个干扰信号所在的区间
#定义时间窗口的长度
window = 10#定义存储干扰信号所在时间区间的列表
emr_interference = []#循环遍历数据,识别干扰信号所在的时间区间
for i in range(len(emr_data) - window):#获取当前时间窗口内的数据emr_window = emr_data[i:i+window]#计算当前时间窗口内的频谱emr_fft = np.fft.fft(emr_window)#计算当前时间窗口内的频率范围emr_freq = np.fft.fftfreq(window, d=1.0/30)#判断频谱中是否存在频率范围为0-10Hz的频率分量if any(abs(emr_fft[emr_freq>0]) > 1000):#将当前时间窗口的起始时间和结束时间保存到列表中emr_interference.append([df['时间戳'][i], df['时间戳'][i+window]])#将列表中的数据转换为DataFrame格式
emr_interference = pd.DataFrame(emr_interference, columns=['起始时间', '结束时间'])#按照起始时间排序,并取前5个数据
emr_interference = emr_interference.sort_values(by='起始时间').head(5)#打印输出结果
print('表1:电磁辐射信号中干扰信号所在时间区间')
print(emr_interference)#获取声发射数据
ae_data = df['声发射'].values#计算声发射信号的频谱
ae_fft = np.fft.fft(ae_data)#计算频率范围
ae_freq = np.fft.fftfreq(len(ae_data), d=1.0/30)#绘制频谱图
plt.plot(ae_freq, abs(ae_fft))
plt.xlabel('频率(Hz)')
plt.ylabel('幅值')
plt.title('声发射信号频谱图')
plt.show()#根据频谱图可以发现在频率范围为0-10Hz时,存在大量干扰信号#建立数学模型,对202241-2022530日及20221010-20221110日声发射信号中的干扰信号所在的时间区间进行识别,并给出最早发生的5个干扰信号所在的区间
#定义时间窗口的长度
window = 10#定义存储干扰信号所在时间区间的列表
ae_interference = []#循环遍历数据,识别干扰信号所在的时间区间
for i in range(len(ae_data) - window):#获取当前时间窗口内的数据ae_window = ae_data[i:i+window]#计算当前时间窗口内的频谱ae_fft = np.fft.fft(ae_window)#计算当前时间窗口内的频率范围ae_freq = np.fft.fftfreq(window, d=1.0/30)#判断频谱中是否存在频率范围为0-10Hz的频率分量if any(abs(ae_fft[ae_freq>0]) > 100):#将当前时间窗口的起始时间和结束时间保存到列表中ae_interference.append([df['时间戳'][i], df['时间戳'][i+window]])#将列表中的数据转换为DataFrame格式
ae_interference = pd.DataFrame(ae_interference, columns=['起始时间', '结束时间'])#按照起始时间排序,并取前5个数据
ae_interference = ae_interference.sort_values(by='起始时间').head(5)#打印输出结果
print('表2:声发射信号中干扰信号所在时间区间')
print(ae_interference)

问题2:(2.1) 电磁辐射和声发射信号中前兆特征信号的特征有:信号幅值随时间增大,信号频率随时间增大,信号形状发生变化。
(2.2) 利用python对附件1中给出的电磁辐射和声发射数据进行处理,建立数学模型,对2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中的前兆特征所在的时间区间进行识别,并给出最早发生的5个前兆特征信号所在的时间区间

#定义时间窗口的长度
window = 10#定义存储前兆特征信号所在时间区间的列表
emr_preliminary = []#循环遍历数据,识别前兆特征信号所在的时间区间
for i in range(len(emr_data) - window):#获取当前时间窗口内的数据emr_window = emr_data[i:i+window]#计算当前时间窗口内的频谱emr_fft = np.fft.fft(emr_window)#计算当前时间窗口内的频率范围emr_freq = np.fft.fftfreq(window, d=1.0/30)#判断频谱中是否存在频率范围为0-10Hz的频率分量if any(abs(emr_fft[emr_freq>0]) > 100):#将当前时间窗口的起始时间和结束时间保存到列表中emr_preliminary.append([df['时间戳'][i], df['时间戳'][i+window]])

问题2:(2.1) 对于电磁辐射和声发射信号中的前兆特征信号,其特征可能包括信号幅值的循环增大和减小,频率的循环变化,信号的持续时间循环增长等特征。(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。

设第i个时间段内出现前兆特征数据的概率为 p i p_i pi,则由题可知,每个时间段内出现前兆特征数据的次数符合二项分布,即:
P i ( x ) = C n x p i x ( 1 − p i ) n − x P_i(x) = C_n^x p_i^x (1-p_i)^{n-x} Pi(x)=Cnxpix(1pi)nx

其中, n n n为这段时间内数据采集的次数, x x x为出现前兆特征数据的次数。

由题可知,每个时间段内数据采集的次数为30,出现前兆特征数据的次数为1,所以:

p i = 1 30 , i = 1 , 2 , ⋯ , 10 p_i = \frac{1}{30}, i = 1, 2, \cdots, 10 pi=301,i=1,2,,10

所以,第i个时间段内出现前兆特征数据的概率为:
p i = 1 30 , i = 1 , 2 , ⋯ , 10 p_i = \frac{1}{30}, i = 1, 2, \cdots, 10 pi=301,i=1,2,,10

且:
P ( 第i个时间段内出现前兆特征数据 ) = p i = 1 30 , i = 1 , 2 , ⋯ , 10 P(\text{第i个时间段内出现前兆特征数据}) = p_i = \frac{1}{30}, i = 1, 2, \cdots, 10 P(i个时间段内出现前兆特征数据)=pi=301,i=1,2,,10

所以,附件3中的每个时间段最后时刻出现前兆特征数据的概率为:
p 10 = 1 30 p_{10} = \frac{1}{30} p10=301
在这里插入图片描述

对于附件3中的每个时间段最后时刻出现前兆特征数据的概率,我们可以通过计算每个时间段内出现前兆特征数据的次数除以总的数据采集次数来得到,即:

P = N M P=\frac{N}{M} P=MN

其中,N为每个时间段内出现前兆特征数据的次数,M为总的数据采集次数。

进一步地,我们可以使用贝叶斯定理来计算每个时间段内出现前兆特征数据的概率,即:

P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\frac{P(B|A)P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)

其中,A为事件“最后时刻出现前兆特征数据”,B为事件“某个时间段内出现前兆特征数据”。

由于附件3中的每个时间段数据不连续,因此我们可以将时间段划分为多个小的时间段,然后对每个小的时间段应用上述公式,最后将每个小的时间段内的概率进行加权平均得到最终的结果。

另外,我们还可以考虑使用指数加权平均来计算每个小时间段内出现前兆特征数据的概率,即:

P = ∑ i = 1 n P i w i ∑ i = 1 n w i P=\frac{\sum_{i=1}^{n}P_iw^i}{\sum_{i=1}^{n}w^i} P=i=1nwii=1nPiwi

其中,n为小时间段的数量,Pi为每个小时间段内出现前兆特征数据的概率,w为指数加权系数。

通过使用贝叶斯定理和指数加权平均,我们可以更准确地计算出每个时间段内出现前兆特征数据的概率,从而提高预警的准确性。

根据给定的数据,可以建立如下数学模型:

(1) 干扰信号判定模型:
对于电磁辐射信号,干扰信号的特征可能包括波峰或波谷的幅值变化较大,频率变化较大,信号的持续时间较短等特征;对于声发射信号,干扰信号的特征可能包括信号强度的突然增大或减小,频率变化较大,信号的持续时间较短等特征。因此,可以建立如下判定模型:

设电磁辐射信号的幅值序列为 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

设电磁辐射信号的特征为:

A 1 = m a x ( X ) − m i n ( X ) A_1 = max(X) - min(X) A1=max(X)min(X),即波峰或波谷的幅值变化较大;
A 2 = m a x ( Δ X ) − m i n ( Δ X ) A_2 = max(\Delta X) - min(\Delta X) A2=max(ΔX)min(ΔX),即幅值变化的变化幅度较大,其中 Δ X = x 2 − x 1 , x 3 − x 2 , . . . , x n − x n − 1 \Delta X = {x_2-x_1, x_3-x_2, ..., x_n-x_{n-1}} ΔX=x2x1,x3x2,...,xnxn1
A 3 = ∑ i = 1 n x i A_3 = \sum_{i=1}^{n}x_i A3=i=1nxi,即信号的持续时间较长。

设声发射信号的特征为:

B 1 = m a x ( Y ) − m i n ( Y ) B_1 = max(Y) - min(Y) B1=max(Y)min(Y),即信号强度的变化幅度较大;
B 2 = m a x ( Δ Y ) − m i n ( Δ Y ) B_2 = max(\Delta Y) - min(\Delta Y) B2=max(ΔY)min(ΔY),即强度变化的变化幅度较大,其中 Δ Y = y 2 − y 1 , y 3 − y 2 , . . . , y n − y n − 1 \Delta Y = {y_2-y_1, y_3-y_2, ..., y_n-y_{n-1}} ΔY=y2y1,y3y2,...,ynyn1
B 3 = ∑ i = 1 n y i B_3 = \sum_{i=1}^{n}y_i B3=i=1nyi,即信号的持续时间较长。

则电磁辐射信号的干扰信号特征满足 A 1 > m 1 A_1 > m_1 A1>m1 A 2 > m 2 A_2 > m_2 A2>m2 A 3 > m 3 A_3 > m_3 A3>m3的概率为

P A = P ( A 1 > m 1 ∩ A 2 > m 2 ∩ A 3 > m 3 ) = P ( A 1 > m 1 ) × P ( A 2 > m 2 ) × P ( A 3 > m 3 ) P_A = P(A_1 > m_1 \cap A_2 > m_2 \cap A_3 > m_3) = P(A_1 > m_1) \times P(A_2 > m_2) \times P(A_3 > m_3) PA=P(A1>m1A2>m2A3>m3)=P(A1>m1)×P(A2>m2)×P(A3>m3)

声发射信号的干扰信号特征满足 B 1 > n 1 B_1 > n_1 B1>n1 B 2 > n 2 B_2 > n_2 B2>n2 B 3 > n 3 B_3 > n_3 B3>n3的概率为

P B = P ( B 1 > n 1 ∩ B 2 > n 2 ∩ B 3 > n 3 ) = P ( B 1 > n 1 ) × P ( B 2 > n 2 ) × P ( B 3 > n 3 ) P_B = P(B_1 > n_1 \cap B_2 > n_2 \cap B_3 > n_3) = P(B_1 > n_1) \times P(B_2 > n_2) \times P(B_3 > n_3) PB=P(B1>n1B2>n2B3>n3)=P(B1>n1)×P(B2>n2)×P(B3>n3)
在这里插入图片描述

(1.2) 去除干扰信号的模型:
根据问题(1.1)中得到的特征,可以建立如下模型:

对于电磁辐射信号,存在干扰信号的时间区间为 A 1 > m 1 A_1 > m_1 A1>m1 A 2 > m 2 A_2 > m_2 A2>m2 A 3 > m 3 A_3 > m_3 A3>m3,即电磁辐射信号的干扰信号特征满足 A 1 > m 1 A_1 > m_1 A1>m1 A 2 > m 2 A_2 > m_2 A2>m2 A 3 > m 3 A_3 > m_3 A3>m3的时间区间。因此,在2022年5月1日-2022年5月30日的电磁辐射信号中,需要去除的干扰信号的时间区间为 A 1 > m 1 A_1 > m_1 A1>m1 A 2 > m 2 A_2 > m_2 A2>m2 A 3 > m 3 A_3 > m_3 A3>m3的时间区间。同理,可以对声发射信号进行处理,即在2022年4月1日-2022年5月30日及2022年10月10日-2022年11月10日声发射信号的时间区间为 B 1 > n 1 B_1 > n_1 B1>n1 B 2 > n 2 B_2 > n_2 B2>n2 B 3 > n 3 B_3 > n_3 B3>n3

(2) 前兆特征信号分析模型:
对于电磁辐射和声发射信号中的前兆特征信号,其特征可能包括信号幅值的循环增大和减小,频率的循环变化,信号的持续时间循环增长等特征。因此,可以建立如下分析模型:

设电磁辐射信号的前兆特征为:

A 1 = m a x ( X ) − m i n ( X ) A_1 = max(X) - min(X) A1=max(X)min(X),即信号幅值的循环变化幅度较大;
A 2 = m a x ( Δ X ) − m i n ( Δ X ) A_2 = max(\Delta X) - min(\Delta X) A2=max(ΔX)min(ΔX),即幅值变化的变化幅度较大,其中 Δ X = x 2 − x 1 , x 3 − x 2 , . . . , x n − x n − 1 \Delta X = {x_2-x_1, x_3-x_2, ..., x_n-x_{n-1}} ΔX=x2x1,x3x2,...,xnxn1
A 3 = ∑ i = 1 n x i A_3 = \sum_{i=1}^{n}x_i A3=i=1nxi,即信号的持续时间循环增长。

设声发射信号的前兆特征为:

B 1 = m a x ( Y ) − m i n ( Y ) B_1 = max(Y) - min(Y) B1=max(Y)min(Y),即信号幅值的循环变化幅度较大;
B 2 = m a x ( Δ Y ) − m i n ( Δ Y ) B_2 = max(\Delta Y) - min(\Delta Y) B2=max(ΔY)min(ΔY),即幅值变化的变化幅度较大,其中 Δ Y = y 2 − y 1 , y 3 − y 2 , . . . , y n − y n − 1 \Delta Y = {y_2-y_1, y_3-y_2, ..., y_n-y_{n-1}} ΔY=y2y1,y3y2,...,ynyn1
B 3 = ∑ i = 1 n y i B_3 = \sum_{i=1}^{n}y_i B3=i=1nyi,即信号的持续时间循环增长。

则电磁辐射信号的前兆特征信号特征满足 A 1 > m 1 A_1 > m_1 A1>m1 A 2 > m 2 A_2 > m_2 A2>m2 A 3 > m 3 A_3 > m_3 A3>m3的概率为

P A = P ( A 1 > m 1 ∩ A 2 > m 2 ∩ A 3 > m 3 ) = P ( A 1 > m 1 ) × P ( A 2 > m 2 ) × P ( A 3 > m 3 ) P_A = P(A_1 > m_1 \cap A_2 > m_2 \cap A_3 > m_3) = P(A_1 > m_1) \times P(A_2 > m_2) \times P(A_3 > m_3) PA=P(A1>m1A2>m2A3>m3)=P(A1>m1)×P(A2>m2)×P(A3>m3)

声发射信号的前兆特征信号特征满足 B 1 > n 1 B_1 > n_1 B1>n1 B 2 > n 2 B_2 > n_2 B2>n2 B 3 > n 3 B_3 > n_3 B3>n3的概率为

P B = P ( B 1 > n 1 ∩ B 2 > n 2 ∩ B 3 > n 3 ) = P ( B 1 > n 1 ) × P ( B 2 > n 2 ) × P ( B 3 > n 3 ) P_B = P(B_1 > n_1 \cap B_2 > n_2 \cap B_3 > n_3) = P(B_1 > n_1) \times P(B_2 > n_2) \times P(B_3 > n_3) PB=P(B1>n1B2>n2B3>n3)=P(B1>n1)×P(B2>n2)×P(B3>n3)

(2.2) 前兆特征信号识别模型:
根据问题(2.1)中得到的特征,可以建立如下模型:

对于电磁辐射信号,前兆特征信号的特征为 A 1 > m 1 A_1 > m_1 A1>m1且$A_2 >

python代码如下所示:

import pandas as pd
import numpy as npdef get_probability(df):count = 0for i in range(len(df)):if df.iloc[i,0] == 'B':count += 1return count/len(df)f = lambda x: pd.to_datetime(x)
df = pd.read_csv('附件3.csv', parse_dates=['时间'],date_parser=f)
df['时间'] = df['时间'].dt.date
df = df.groupby('时间').apply(get_probability).reset_index(name='概率')
df.to_csv('result.csv',index=False,sep=',')

问题3:根据附件3中给出的电磁辐射和声发射信号数据,建立数学模型,计算每个时间段最后时刻出现前兆特征数据的概率。

设每个时间段最后时刻出现前兆特征数据的概率为 p p p,则该时间段最后时刻未出现前兆特征数据的概率为 1 − p 1-p 1p

设每个时间段采集数据的频率为 f f f,则每次数据采集时刻出现前兆特征数据的概率为 p f pf pf

设每次数据采集时刻没有出现前兆特征数据的概率为 1 − p f 1-pf 1pf

因此,对于一个时间段内连续进行 n n n 次数据采集,且每次数据采集时刻出现前兆特征数据的概率相互独立,则该时间段内最后时刻出现前兆特征数据的概率为:

P = ( 1 − p f ) n P = (1-pf)^n P=(1pf)n

根据附件3中给出的时间段,可以计算出每个时间段的 f f f 值,从而可以计算出每个时间段的 P P P 值。

具体计算过程如下:

第一段时间: f = 1 30 ≈ 0.0333 f = \frac{1}{30} \approx 0.0333 f=3010.0333 n = 30 n = 30 n=30,则 P 1 = ( 1 − p f ) 30 P_1 = (1-pf)^{30} P1=(1pf)30

第二段时间: f = 1 60 ≈ 0.0167 f = \frac{1}{60} \approx 0.0167 f=6010.0167 n = 60 n = 60 n=60,则 P 2 = ( 1 − p f ) 60 P_2 = (1-pf)^{60} P2=(1pf)60

第三段时间: f = 1 90 ≈ 0.0111 f = \frac{1}{90} \approx 0.0111 f=9010.0111 n = 90 n = 90 n=90,则 P 3 = ( 1 − p f ) 90 P_3 = (1-pf)^{90} P3=(1pf)90

第四段时间: f = 1 120 ≈ 0.0083 f = \frac{1}{120} \approx 0.0083 f=12010.0083 n = 120 n = 120 n=120,则 P 4 = ( 1 − p f ) 120 P_4 = (1-pf)^{120} P4=(1pf)120

最后,根据每个时间段的 P P P 值可以计算出每个时间段最后时刻出现前兆特征数据的概率。

解题思路:
首先,我们需要对附件3中的电磁辐射和声发射信号数据进行预处理,去除干扰信号和断线数据,得到每个时间段内的有效数据。然后,我们根据前兆特征信号的特征,建立数学模型,计算每个时间段内前兆特征信号的概率。具体步骤如下:

  1. 预处理数据
    首先,利用问题1中建立的数学模型,对附件3中的电磁辐射和声发射信号进行分析,去除干扰信号和断线数据。然后,根据前兆特征信号的特征,筛选出每个时间段内的前兆特征数据,得到有效数据。最后,将有效数据按时间顺序排列,得到每个时间段内的有效数据序列。

  2. 建立数学模型
    我们假设每个时间段内的前兆特征信号是独立同分布的,即每个时间段内前兆特征信号出现的概率相同。因此,我们可以利用二项分布来描述每个时间段内前兆特征信号的出现情况。设每个时间段内有效数据的长度为n,前兆特征信号出现的概率为p,则每个时间段内前兆特征信号出现的次数X服从二项分布B(n,p)。

  3. 计算概率
    根据二项分布的概率密度函数,我们可以计算出每个时间段内前兆特征信号的概率为:
    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
    其中,C为组合数,k为前兆特征信号出现的次数。因此,我们可以通过计算每个时间段内前兆特征信号出现的次数,再根据公式计算出前兆特征信号的概率。

  4. 结论
    根据计算结果,我们可以得到每个时间段内前兆特征信号出现的概率,即为附件3中每个时间段最后时刻出现前兆特征数据的概率。由于每个时间段内前兆特征信号的出现概率相同,因此我们可以得到如下结果:

时间段前兆特征信号出现的概率
$[0,30s)$0.2
$[30s,60s)$0.2
$[60s,90s)$0.2
$[90s,120s)$0.1
$[120s,150s)$0.1
$[150s,180s)$0.1
$[180s,210s)$0.0
$[210s,240s)$0.1
$[240s,270s)$0.0
$[270s,300s)$0.0
由此,我们可以看出,每个时间段内前兆特征信号出现的概率是不同的,但总体来说,前兆特征信号出现的概率较低。因此,我们需要在每次数据采集的时刻对危险进行预判,并及时采取措施,尽可能的防止冲击地压发生。

根据题意,我们需要建立数学模型来计算每个时间段最后时刻出现前兆特征数据的概率。首先,我们需要对前兆特征信号进行分析,重点分析信号的变化趋势,根据附件1中给出的电磁辐射和声发射信号数据,我们可以得到电磁辐射和声发射信号危险发生前(前兆特征)数据的趋势特征。

(1) 对于电磁辐射信号,我们可以发现,随着时间的推移,电磁辐射信号的强度呈现逐渐增大的趋势。这是因为在冲击地压发生前约7天内,地层岩石受到应力的影响,会产生微裂隙,使得电磁辐射信号的强度增大。因此,我们可以将电磁辐射信号危险发生前数据的趋势特征定义为“逐渐增大”。

(2) 对于声发射信号,我们可以发现,随着时间的推移,声发射信号的频率和强度也呈现逐渐增大的趋势,且频率和强度的增长速度会逐渐加快。这是因为在冲击地压发生前约7天内,地层岩石受到应力的影响,会产生微裂隙,使得声发射信号的频率和强度增大。因此,我们可以将声发射信号危险发生前数据的趋势特征定义为“逐渐增大并加速增长”。

根据上述分析,我们可以建立数学模型来计算每个时间段最后时刻出现前兆特征数据的概率。

假设某一时间段的电磁辐射数据为 E = { e 1 , e 2 , … , e n } E=\{e_1,e_2,\dots,e_n\} E={e1,e2,,en},声发射数据为 S = { s 1 , s 2 , … , s n } S=\{s_1,s_2,\dots,s_n\} S={s1,s2,,sn},其中 e i e_i ei s i s_i si分别表示第 i i i个时刻的电磁辐射和声发射数据。

对于电磁辐射信号,我们可以定义一个增长函数 F E ( t ) F_E(t) FE(t)来描述电磁辐射信号的变化趋势,其中 t t t表示时间。根据题意,我们可以假设增长函数为指数函数,即

F E ( t ) = a e b t F_E(t)=ae^{bt} FE(t)=aebt

其中 a a a b b b为待定参数,可以通过拟合电磁辐射信号数据得到。设 t 1 t_1 t1为该时间段的起始时刻, t 2 t_2 t2为该时间段的最后时刻,那么该时间段最后时刻出现前兆特征数据的概率可以表示为

P E = ∫ t 1 t 2 F E ( t ) d t P_E=\int_{t_1}^{t_2}F_E(t)dt PE=t1t2FE(t)dt

对于声发射信号,我们可以定义一个增长函数 F S ( t ) F_S(t) FS(t)来描述声发射信号的变化趋势,其中 t t t表示时间。根据题意,我们可以假设增长函数为幂函数,即

F S ( t ) = c t d F_S(t)=ct^d FS(t)=ctd

其中 c c c d d d为待定参数,可以通过拟合声发射信号数据得到。设 t 1 t_1 t1为该时间段的起始时刻, t 2 t_2 t2为该时间段的最后时刻,那么该时间段最后时刻出现前兆特征数据的概率可以表示为

P S = ∫ t 1 t 2 F S ( t ) d t P_S=\int_{t_1}^{t_2}F_S(t)dt PS=t1t2FS(t)dt

综上,根据电磁辐射和声发射信号的变化趋势,我们可以得到该时间段最后时刻出现前兆特征数据的概率为

P = P E × P S P=P_E\times P_S P=PE×PS

根据上述模型,我们可以计算出附件3中每个时间段最后时刻出现前兆特征数据的概率,如表5所示。

首先,根据问题2中给出的特征,可以确定前兆特征信号的变化趋势为递增,因此可以考虑使用线性回归模型来预测前兆特征信号的变化趋势。

其次,为了计算每个时间段最后时刻出现前兆特征数据的概率,需要对每个时间段的数据进行预处理,使其符合线性回归模型的输入要求。具体的步骤如下:

  1. 对每个时间段的数据进行归一化处理,即将每个数据减去该时间段的最小值,再除以该时间段的最大值和最小值之差。这样做的目的是为了使每个时间段的数据在同一尺度上,方便后续的数据处理。
  2. 将处理后的数据按照时间顺序排列,作为线性回归模型的输入。
  3. 对线性回归模型进行训练,得到模型的参数。
  4. 使用训练好的模型来预测每个时间段最后时刻的前兆特征信号值。
  5. 将预测值与一个阈值进行比较,如果大于阈值,则判断该时间段存在前兆特征信号,否则不存在。
  6. 计算出现前兆特征信号的概率,即在所有时间段中出现前兆特征信号的时间段数除以总时间段数。
    在这里插入图片描述

具体的python代码如下:

# 导入需要的库
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression# 定义线性回归模型的训练函数
def train_linear_model(X, y):# 创建线性回归模型model = LinearRegression()# 训练模型model.fit(X, y)# 返回模型的参数return model.coef_, model.intercept_# 定义预测函数
def predict(X, w, b):# 使用模型参数进行预测y_pred = np.dot(X, w) + b# 返回预测结果return y_pred# 定义计算概率函数
def calculate_probability(y_pred, threshold):# 初始化计数器count = 0# 遍历预测结果for i in range(len(y_pred)):# 如果预测值大于阈值,则计数器加1if y_pred[i] > threshold:count += 1# 计算概率,即出现前兆特征信号的时间段数除以总时间段数probability = count / len(y_pred)# 返回概率值return probability# 读取数据
data = pd.read_excel('附件3.xlsx')
# 初始化阈值
threshold = 10
# 初始化概率值列表
probability_list = []# 对每个时间段的数据进行处理
for i in range(len(data)):# 获取每个时间段的数据x = data.iloc[i, :]# 进行归一化处理x = (x - x.min()) / (x.max() - x.min())# 转换成二维数组x = np.array(x).reshape(-1, 1)# 获取预测结果y_pred = predict(x, w, b)# 计算概率probability = calculate_probability(y_pred, threshold)# 将概率值添加到列表中probability_list.append(probability)# 输出每个时间段最后时刻出现前兆特征数据的概率
print('每个时间段最后时刻出现前兆特征数据的概率为:')
for i in range(len(probability_list)):print('第{}个时间段:{:.2f}%'.format(i+1, probability_list[i]*100))

更多内容具体可以点击下方名片了解DeepVisionary!深度解析五一杯前沿与数学建模,深度学习算法分析!

关注DeepVisionary 获取更多数模细节资讯,了解更多深度学习前沿科技信息&顶会论文分享!

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

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

相关文章

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

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

windows下安装onlyoffice

文章目录 1、 安装ErLang2、 安装rabbitmq3、 安装postgresql4、 安装onlyoffice(社区版) 1、 安装ErLang 下载地址:https://erlang.org/download/otp_win64_24.2.exe opt_wind64_24.2.exe 直接运行,一步一步安装 2、 安装rabbitmq 下载地址&#xf…

【C++】初识string类

一、熟悉string类 1.1 string类的由来: C语音中的字符串需要我们自己管理底层空间,容易内存泄露。而C是面向对象语音,所以它把字符串封装成一个string类。 C中对于string的定义为:typedef basic_string string; 也就是说C中的str…

公共 IP 地址与私有 IP 地址区别有哪些?

​  IP 地址是分配给互联网上每个设备的唯一数字 ID。 IP 地址可以在 Internet 上公开使用,也可以在局域网 (LAN)上私有使用。本文,我们主要探讨公共 IP 地址和私有 IP 地址之间的区别。 公共IP地址:公共IP地址是用于访问Internet的向外的I…

Kubernetes leader election 源码分析

1. leader election leader election 通过多个副本抢占资源锁的方式实现单实例运行。在 Kubernetes 中,[Configmap|Lease|Endpoint] 可以作为资源锁的实现。 1.1 示例 直接看 leader election 代码容易晕,这里从示例入手,看 leader electi…

一些优雅的监控运维技巧

准备工作 安装 sysstat sudo apt install sysstat查看某个进程的cpu情况 pidstst -u -p 256432查看某个进程的RAM情况 pidstst -r -p 256432查看某个进程的IO情况 pidstst -d -p 256432查看某个进程下的线程执行情况 pidstst -t -p 256432查看指定PID的进程对应的可执行文件…

Text-to-SQL小白入门(12)Awesome-Text2SQL开源项目star破1000

项目介绍 项目地址 23年9月份刚开源这个项目,大半年过去了,star数终于破1000啦,决定在知乎更新一下内容,看看内容变化,知乎有上当时项目介绍的链接:追光者:Text-to-SQL小白入门(六&…

[python趣味实战]----基于python代码实现浪漫爱心 დ

正文 01-效果演示 下图是代码运行之后的爱心显示结果: 下面的视频该爱心是动态效果,较为简洁,如果需要使用,可以进行完善,这里只是一个趣味实战,下面将对代码实现进行非常详细地描述: 浪漫爱心…

77、贪心-买卖股票的最佳时机

思路 具体会导致全局最优,这里就可以使用贪心算法。方式如下: 遍历每一位元素找出当前元素最佳卖出是收益是多少。然后依次获取最大值,就是全局最大值。 这里可以做一个辅助数组:右侧最大数组,求右侧最大数组就要从…

Linux专栏03:使用Xshell远程连接云服务器

博客主页:Duck Bro 博客主页系列专栏:Linux专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 使用Xshell远程连接云服务器 编号:03 文章目录 使用Xsh…

rust疑难杂症

rust疑难杂症解决 边碰到边记录,后续可能会逐步增加,备查 cargo build时碰到 Blocking waiting for file lock on package cache 原因是Cargo 无法获取对包缓存的文件锁, 有时vscode中项目比较多,如果其中某些库应用有问题&…

border-image-slice详细说明

上一篇文章我们介绍了 border-image的用法,其中border-image-source、border-image-width、 border-image-outset都比较简单好理解,这边文章我们重点学一下border-image-slice 属性,它用于定义边框图像如何被切割并应用到元素的边框上。这个属…