modified: .gitignore new file: __pycache__/convert_teacher_csv.cpython-314.pyc new file: __pycache__/evaluation_studio.cpython-314.pyc new file: convert_teacher_csv.py new file: downloads/Non_TMD/free_vib/data_converted_free.csv new file: downloads/TMD/val/data_converted_tmd.csv new file: evaluation_studio.py new file: scripts_2/__pycache__/__init__.cpython-314.pyc new file: scripts_2/__pycache__/signal_utils.cpython-314.pyc new file: scripts_2/__pycache__/task3_identify.cpython-314.pyc new file: scripts_3/__pycache__/__init__.cpython-314.pyc new file: scripts_3/__pycache__/task4_predict_freq.cpython-314.pyc modified: scripts_3/task4_predict_freq.py new file: scripts_4/__pycache__/__init__.cpython-314.pyc modified: scripts_4/__pycache__/adapter.cpython-314.pyc
结构动力特性识别脚本 (Free-Vibration Identification)
项目简介
本目录用于完成建筑结构动力特性识别任务。脚本基于专门的自由衰减数据文件,提取顶部响应传感器 WSMS00007 的 Z 向信号,识别结构一阶自振频率与阻尼比,并输出可视化诊断结果。
技术路线
本目录的分析流程围绕自由衰减信号展开,包含信号读取、主频识别、滤波降噪与阻尼估计四个步骤:
- 顶部响应读取
从
free_vib目录下的 CSV 文件中读取WSMS00007的value3列,作为结构顶部响应信号。 - 频域主频识别
对原始自由衰减信号执行 FFT,在
0.1Hz ~ 5.0Hz范围内寻找主峰,识别一阶自振频率。 - 带通滤波 以识别出的主频为中心,构造巴特沃斯带通滤波器,对原始信号进行滤波,得到平滑的衰减振动波形。
- 阻尼比计算 从滤波信号中提取波峰,自动选择包络线质量较高的一段,通过对数衰减率计算平均衰减量与阻尼比。
核心模块说明
signal_utils.py共享信号处理工具。负责传感器常量定义、采样率估计、稳态段截取、FFT 主频识别、抛物线插值、带通滤波与波峰筛选。task3_identify.py任务主入口。负责校验自由衰减数据来源、执行一阶频率与阻尼比识别,并生成包含原始波形、滤波波形和包络线的诊断图。
使用指南
1. 运行任务脚本 对单个自由衰减 CSV 文件执行结构动力特性识别:
python scripts_2\task3_identify.py --file downloads\Non_TMD\free_vib\free_decay.csv
2. 指定输出目录 将图像与诊断结果输出到自定义目录:
python scripts_2\task3_identify.py --file downloads\Non_TMD\free_vib\free_decay.csv --output-dir evaluation_outputs\task3_custom
3. 调整滤波带宽 通过命令行参数修改主频两侧的带宽范围:
python scripts_2\task3_identify.py --file downloads\Non_TMD\free_vib\free_decay.csv --bandwidth 0.25