🌉 伸缩缝位移异常预警模型
城市生命线安全工程 结构健康监测 动态回归建模 多级预警与可视化
📚 项目背景
伸缩缝位移的异常变化是桥梁长期服役中常见的潜在病害。受环境温度等外部因素影响,伸缩缝位移会出现周期性波动。然而,若伸缩缝位移出现超出正常范围的异常波动,往往意味着结构局部受力状态改变或病害隐患,影响桥梁安全性与使用性能。
本模块基于动态回归建模和阈值分析方法,结合温度修正与残差动态阈值计算,实现伸缩缝位移的异常趋势判别和多级预警。模块具备 趋势可视化、历史数据分析、多级预警判别 等功能,支持集成至省级城市生命线安全监测平台。
📌 模型简介
本项目为 城市生命线安全工程监测平台桥梁预警体系核心子模块Ⅱ:伸缩缝位移异常预警模型,旨在识别伸缩缝在长期服役过程中的 异常位移波动及潜在的损伤问题。
模块利用温度修正、基准预测(线性回归)与滑动残差动态阈值分析,动态判断伸缩缝位移的波动是否超出预警阈值,实现 正常、三级、二级、一级预警 的多级判别。支持历史数据离线分析及图形化展示,也可拓展为在线监测系统的子模块。
- 模块名称:
joint_displacement_alert - 模型名称:伸缩缝位移异常预警模型
- 作者:肖图刚
- 开发时间:2025年4月27日
- 最后修改:2025年6月11日
🌟 功能描述
✅ 加载并预处理历史监测数据(时间戳对齐、缺失值处理、10分钟均值降采样等)
✅ 进行温度修正,计算平均温度特征,剔除环境温度影响
✅ 建立位移预测基准模型(线性回归)并计算动态残差阈值
✅ 滑动窗口实时判别异常位移点,分级预警(正常、三级、二级、一级)
✅ 输出各级异常点数量及对应的时间戳
✅ 可视化动态趋势图、位移-温度关系及多级预警判别结果
✅ 模块化设计,支持拓展集成到结构健康监测平台
📂 输入数据说明
- 格式:本地 CSV 文件(3列、无表头)
- 数据内容:
1️⃣ 时间戳(如2024-05-22 11:00:00)
2️⃣ 伸缩缝位移(单位:mm)
3️⃣ 多通道温度(单位:℃,可多传感器温度数据取平均) - 数据来源:桥梁伸缩缝监测系统或附近温度测点数据(建议覆盖一年或更长周期)
- 采样频率:10分钟均值或1小时重采样,保障数据平稳性
- 特别说明:如位移传感器无温度监测能力,可引入附近监测点温度数据,做好对齐处理
💾 输出结果说明
- 核心输出:
- 伸缩缝位移预测序列(基准模型)
- 残差动态阈值曲线
- 各级预警判别结果(含异常点数量和时间分布)
- 关键时段的可视化趋势图(PNG)
- 可拓展输出:
- 季度/年度位移增长率
- 回归模型参数与残差分析
- 潜在异常时间段提示,供运维管理参考
⚙️ 运行环境与依赖
- Python:≥ 3.9.16
- 依赖库:
- pandas ≥ 2.2.3
- numpy ≥ 1.26.4
- matplotlib ≥ 3.9.4
- scikit-learn ≥ 1.5.2
- tabulate ≥ 0.9.0
📝 使用建议
- 适用于桥梁伸缩缝位移长期趋势分析与日常健康监测预警。
- 建议定期更新数据,并结合结构检修计划进行综合分析。
- 可与其他结构监测模块集成,提升整体健康监测智能化水平。
- 安装依赖:
pip install -r requirements.txt
💻 代码示例
📁 安装模块:
cd py_modu/joint_displacement_alert
pip install .
✅ 安装成功:
Successfully installed joint_displacement_alert-0.1.0
⚙️ 运行示例:
python example.py
example.py 示例:
from joint_displacement_alert import (
load_joint_data, build_regression_model,
detect_anomalies, plot_joint_displacement, print_alert_points
)
alert_sigma_mapping = {1: 5, 2: 3, 3: 1}
filepath = 'D:/pycode/lifeline_bridge_alert/wy-temp_10min_2.csv'
# 先统一定义时间段参数
start_time = "2022-10-01"
end_time = "2022-10-07"
df = load_joint_data(filepath)
df, model = build_regression_model(df)
df, std_resid = detect_anomalies(df, alert_sigma_mapping)
# 打印预警点,传入时间段参数
print_alert_points(df, start_time=start_time, end_time=end_time)
# 绘图,传入时间段参数
plot_joint_displacement(df, alert_sigma_mapping,
start_time=start_time, end_time=end_time)
📊 输出示例
训练数据总数:15944
2022-10-01~2022-10-07数据总数:865
===== 各级伸缩缝位移预警点 =====
一级预警:无异常点。
二级预警:无异常点。
三级预警:132个
+------------------+----------+
| 时间 | 位移(mm) |
+------------------+----------+
| 2022-10-01 06:10 | 29.97 |
| 2022-10-01 06:20 | 30.22 |
| 2022-10-01 06:30 | 30.45 |
| 2022-10-01 06:40 | 30.73 |
| 2022-10-01 06:50 | 30.99 |
| 2022-10-01 07:00 | 31.24 |
| 2022-10-01 07:10 | 31.46 |
| 2022-10-01 07:20 | 31.64 |
| 2022-10-01 07:30 | 31.75 |
| 2022-10-01 07:40 | 31.86 |
| 2022-10-01 07:50 | 31.93 |
| 2022-10-01 08:00 | 32.02 |
| 2022-10-01 08:10 | 32.04 |
| 2022-10-01 08:20 | 32.10 |
| 2022-10-01 08:30 | 32.11 |
| 2022-10-01 08:40 | 32.10 |
| 2022-10-01 08:50 | 32.11 |
| 2022-10-01 09:00 | 32.09 |
| 2022-10-01 09:10 | 32.03 |
| 2022-10-01 09:20 | 31.95 |
| 2022-10-02 06:50 | 31.51 |
| 2022-10-02 07:00 | 31.85 |
| 2022-10-02 07:10 | 32.14 |
| 2022-10-02 07:20 | 32.51 |
| 2022-10-02 07:30 | 32.83 |
| 2022-10-02 07:40 | 33.17 |
| 2022-10-02 07:50 | 33.42 |
| 2022-10-02 08:00 | 33.59 |
| 2022-10-02 08:10 | 33.74 |
| 2022-10-02 08:20 | 33.90 |
| 2022-10-02 08:30 | 33.98 |
| 2022-10-02 08:40 | 33.98 |
| 2022-10-02 08:50 | 33.98 |
| 2022-10-02 09:00 | 33.96 |
| 2022-10-02 09:10 | 33.87 |
| 2022-10-02 09:20 | 33.78 |
| 2022-10-02 20:10 | 22.45 |
| 2022-10-02 20:20 | 22.38 |
| 2022-10-02 20:30 | 22.30 |
| 2022-10-02 20:40 | 22.23 |
| 2022-10-02 20:50 | 22.17 |
| 2022-10-02 21:00 | 22.14 |
| 2022-10-02 21:10 | 22.06 |
| 2022-10-02 21:20 | 22.01 |
| 2022-10-02 21:30 | 21.98 |
| 2022-10-02 21:40 | 21.90 |
| 2022-10-02 21:50 | 21.88 |
| 2022-10-02 22:00 | 21.80 |
| 2022-10-02 22:10 | 21.76 |
| 2022-10-02 22:20 | 21.69 |
| 2022-10-02 22:30 | 21.63 |
| 2022-10-02 22:40 | 21.56 |
| 2022-10-02 22:50 | 21.52 |
| 2022-10-02 23:00 | 21.48 |
| 2022-10-02 23:10 | 21.45 |
| 2022-10-02 23:20 | 21.39 |
| 2022-10-02 23:30 | 21.32 |
| 2022-10-02 23:40 | 21.27 |
| 2022-10-02 23:50 | 21.22 |
| 2022-10-03 00:00 | 21.15 |
| 2022-10-03 00:10 | 21.12 |
| 2022-10-03 00:20 | 21.06 |
| 2022-10-03 00:30 | 21.04 |
| 2022-10-03 00:40 | 21.02 |
| 2022-10-03 00:50 | 20.97 |
| 2022-10-03 01:00 | 20.97 |
| 2022-10-03 01:10 | 20.95 |
| 2022-10-03 01:20 | 20.94 |
| 2022-10-03 01:30 | 20.96 |
| 2022-10-03 01:40 | 20.97 |
| 2022-10-03 01:50 | 21.04 |
| 2022-10-03 02:00 | 21.09 |
| 2022-10-03 02:10 | 21.14 |
| 2022-10-03 02:20 | 21.21 |
| 2022-10-03 02:30 | 21.25 |
| 2022-10-03 20:10 | 16.53 |
| 2022-10-03 20:20 | 16.43 |
| 2022-10-03 20:30 | 16.35 |
| 2022-10-03 20:40 | 16.27 |
| 2022-10-03 20:50 | 16.16 |
| 2022-10-03 21:00 | 16.09 |
| 2022-10-03 21:10 | 15.98 |
| 2022-10-03 21:20 | 15.93 |
| 2022-10-03 21:30 | 15.86 |
| 2022-10-03 21:40 | 15.80 |
| 2022-10-03 21:50 | 15.73 |
| 2022-10-03 22:00 | 15.66 |
| 2022-10-03 22:10 | 15.55 |
| 2022-10-03 22:20 | 15.46 |
| 2022-10-03 22:30 | 15.44 |
| 2022-10-03 22:40 | 15.38 |
| 2022-10-03 22:50 | 15.34 |
| 2022-10-03 23:00 | 15.25 |
| 2022-10-03 23:10 | 15.17 |
| 2022-10-03 23:20 | 15.10 |
| 2022-10-03 23:30 | 15.03 |
| 2022-10-03 23:40 | 14.96 |
| 2022-10-03 23:50 | 14.93 |
| 2022-10-04 00:00 | 14.86 |
| 2022-10-04 00:10 | 14.84 |
| 2022-10-04 00:20 | 14.78 |
| 2022-10-04 00:30 | 14.77 |
| 2022-10-04 00:40 | 14.77 |
| 2022-10-04 00:50 | 14.77 |
| 2022-10-04 01:00 | 14.77 |
| 2022-10-04 01:10 | 14.77 |
| 2022-10-04 01:20 | 14.77 |
| 2022-10-04 01:30 | 14.85 |
| 2022-10-04 01:40 | 14.92 |
| 2022-10-04 01:50 | 15.00 |
| 2022-10-04 02:00 | 15.12 |
| 2022-10-04 02:10 | 15.27 |
| 2022-10-04 02:20 | 15.43 |
| 2022-10-04 02:30 | 15.63 |
| 2022-10-04 06:30 | 25.58 |
| 2022-10-04 06:40 | 26.27 |
| 2022-10-04 06:50 | 26.83 |
| 2022-10-04 07:00 | 27.17 |
| 2022-10-04 07:10 | 27.52 |
| 2022-10-04 07:20 | 27.71 |
| 2022-10-04 07:30 | 27.82 |
| 2022-10-04 07:40 | 27.83 |
| 2022-10-04 07:50 | 27.81 |
| 2022-10-04 08:00 | 27.71 |
| 2022-10-04 08:10 | 27.61 |
| 2022-10-04 08:20 | 27.47 |
| 2022-10-04 08:30 | 27.32 |
| 2022-10-04 08:40 | 27.20 |
| 2022-10-04 08:50 | 27.08 |
| 2022-10-04 09:00 | 27.02 |
| 2022-10-04 09:10 | 26.97 |
| 2022-10-04 09:20 | 26.91 |
+------------------+----------+
|
| 返回首页