
一、为什么选择传感器异常检测在工程现场温度、压力、流量等传感器数据能够反映设备运行状态。一旦某一路数据出现突变、漂移或异常波动往往意味着设备状态发生变化。因此如何从时序数据中识别异常是工程数据分析、测试技术和工业智能运维课程中非常适合讲解的基础问题。但在实际教学中真实工业数据往往不易获取数据标注也需要较高成本。为降低教学使用门槛我们基于MWORKS.Syslab开发了一个传感器数据异常检测教学案例。案例通过脚本自动生成模拟传感器数据并使用滑动窗口与 Z-score 方法完成异常检测、结果可视化和性能评价。本案例已在MoHub 开源提供完整代码、示例数据、运行脚本和配套教学文档。教师下载后可直接用于课堂演示、上机实验或课程作业。案例开源地址https://mohub.net/education/26317/summary二、案例亮点本案例围绕“传感器信号 → 异常检测 → 结果评价”的完整流程展开主要特点包括自带数据生成脚本无需额外准备真实工程数据覆盖突变、漂移、噪声、联动等典型传感器异常类型使用滑动窗口与 Z-score 方法原理清晰便于课堂讲解自动输出异常检测结果、评价指标和可视化图表配套学生实验指导书和教师使用建议提供 MWORKS AI 辅助学习提示词支持代码解释、参数修改和实验报告生成案例已在 MoHub 开源便于教师和学生下载、复现和二次扩展。三、案例目标这个实验要完成什么本案例围绕一个核心任务展开模拟工业设备运行过程生成多通道传感器信号使用统计方法检测异常并定量评价检测效果。学生可以通过本案例完成以下学习目标层级目标知识理解突变、漂移、噪声、联动等典型传感器异常的表现形式方法掌握滑动窗口与 Z-score 异常检测的基本思路技能使用 Syslab 完成数据生成、异常检测、结果可视化和性能评估思维理解阈值、窗口长度对误检和漏检的影响形成工程参数权衡意识四、适用课程与教学场景本案例面向高校教学场景设计可直接用于课堂演示、上机实验或课后作业。课程使用方式建议年级工程数据分析核心上机实验大三测试技术传感器数据处理实验大三自动化检测算法验证实验大三 / 大四工业大数据入门时序异常检测实践大四 / 研一人工智能导论实验课非深度学习异常检测示例大二 / 大三适用专业包括机械工程、车辆工程、自动化、测控技术、工业工程、智能制造等。五、数据设计没有真实数据怎么办本案例通过脚本自动生成 1200 个采样点的模拟传感器数据包含三个通道通道物理含义正常范围噪声水平temperature温度单位 °C约 60σ 0.3pressure压力单位 MPa约 2.5σ 0.02flow流量单位 m³/h约 120σ 1.0在此基础上案例设计了四类典型异常突变异常某一时刻数据突然升高或降低模拟传感器接触不良、电磁干扰等情况漂移异常一段时间内数据缓慢偏离基准值模拟传感器老化或零点漂移噪声异常短时间内出现剧烈随机波动模拟信号线路干扰联动异常多个传感器之间出现不合理变化模拟设备内部状态异常。对于教学案例来说使用模拟数据有一个明显优势异常类型、出现位置和标签都可以控制便于学生理解异常是如何产生的也便于教师组织参数对比实验。六、方法原理滑动窗口与 Z-score 异常检测本案例不依赖复杂的深度学习模型而是采用适合课堂讲解的统计方法滑动窗口 Z-score 异常检测。1. 滑动窗口对时序数据设置一个固定宽度的观察窗口例如默认窗口长度为 50。窗口沿时间轴滑动每次提取当前采样点附近的一段数据作为局部上下文。这样一个采样点是否异常不是和全局数据比较而是和其附近一段时间内的局部数据比较。2. Z-score 判断对每个采样点基于窗口内数据计算局部均值和标准差然后计算 Z-scoreZ_i |X_i - μ_local| / σ_local当 Z-score 超过设定阈值时将该点判断为异常。默认情况下本案例使用阈值 2.5。学生可以通过调整阈值观察误检和漏检的变化。简单伪代码如下for 每个采样点 X_i: 取当前点附近的滑动窗口数据 计算窗口均值 μ 计算窗口标准差 σ 计算 Z_i |X_i - μ| / σ 如果 Z_i 阈值则标记为异常这种方法原理直观、计算过程清晰非常适合在工程数据分析、测试技术和人工智能导论实验课中讲解。七、案例实现流程整个案例分为四个脚本按顺序执行即可完成完整实验。生成传感器数据 ↓ 加入异常状态 ↓ 读取数据并绘图 ↓ 滑动窗口统计 ↓ Z-score 异常判断 ↓ 输出检测标签 ↓ 绘制异常检测结果 ↓ 计算准确率、误检和漏检对应脚本如下01_generate_data.jl 生成模拟数据与原始曲线 02_detect_anomaly.jl 使用滑动窗口和 Z-score 检测异常 03_evaluate_result.jl 计算评价指标并输出实验结论 04_visualize_result.jl 绘制阈值对比和综合结果图在 Syslab 中可按以下顺序运行include(src/01_generate_data.jl) include(src/02_detect_anomaly.jl) include(src/03_evaluate_result.jl) include(src/04_visualize_result.jl)八、代码结构说明案例目录结构如下sensor_anomaly_detection/ ├── README.md # 案例说明文档 ├── data/ │ ├── sensor_data.csv # 自动生成的传感器数据 │ └── anomaly_result.csv # 异常检测结果 ├── src/ │ ├── 01_generate_data.jl # 数据生成 │ ├── 02_detect_anomaly.jl # 异常检测 │ ├── 03_evaluate_result.jl # 结果评估 │ └── 04_visualize_result.jl # 综合可视化 ├── figures/ │ ├── raw_sensor_data.png │ ├── anomaly_detection_result.png │ ├── zscore_sequence.png │ ├── anomaly_compare_detail.png │ ├── threshold_comparison.png │ └── detection_overview.png └── docs/ ├── 学生实验指导书.md └── 教师使用建议.md案例提供完整代码和文档学生可以先运行默认脚本再进一步修改阈值、窗口长度或异常类型观察检测结果的变化。九、运行效果展示以默认参数运行完整流程后系统会输出异常检测结果和评价指标。示例结果如下指标数值总采样点数1200真实异常点99检测到异常点64准确率 Accuracy91.4%精确率 Precision46.9%召回率 Recall30.3%F1 Score0.368误检 FP34漏检 FN69这组结果非常适合用于教学讨论。可以看到虽然准确率较高但这是因为正常点占多数而召回率较低说明默认参数下仍有不少异常点没有被检测出来。这正好可以引导学生思考为什么异常检测不能只看准确率阈值变大后误检会减少还是增加阈值变小后漏检会减少还是增加对于漂移类异常为什么简单 Z-score 方法不一定敏感在真实工程中应该如何平衡误报和漏报十、如何在课堂中使用这个案例教师可以按照以下节奏组织课堂环节建议时间内容案例背景讲解10 分钟介绍工业传感器异常检测场景和四类异常代码运行演示15 分钟运行数据生成和异常检测脚本展示结果图参数修改实验20 分钟学生修改阈值和滑动窗口长度记录结果变化结果讨论15 分钟分析误检、漏检和工程参数权衡拓展任务课后增加新的异常类型或尝试其他检测方法配套文档中包含学生实验指导书包含实验目的、实验步骤、思考题和报告要求教师使用建议包含课堂组织方式、上机实验安排、课后作业建议和 MWORKS AI 引导方式。因此教师可以将该案例直接作为一次完整的上机实验使用。十一、MWORKS AI 如何辅助学生学习本案例提供了 MWORKS AI 辅助学习提示词。学生在实验过程中可以借助 AI 理解代码逻辑、修改参数、扩展功能或生成实验结论。例如1. 理解代码逻辑请解释 02_detect_anomaly.jl 中滑动窗口异常检测的实现逻辑。2. 修改参数实验请将异常检测阈值从 2.5 改为 3.0并说明检测结果可能发生什么变化。3. 增加新的异常类型请在当前案例中增加一种间歇性振荡异常并重新绘制结果图。4. 生成实验报告结论请根据本次实验结果生成一段实验结论。5. 拓展学习除了 Z-score 方法还有哪些常见的时序数据异常检测方法各适用于什么场景通过这种方式案例不仅可以用于 Syslab 数据分析教学也可以用于展示 MWORKS AI 在工程代码理解、参数修改和实验辅助中的作用。十二、案例可以如何扩展对于学有余力的学生本案例还可以继续扩展拓展方向说明增加传感器类型加入振动、位移、电流等更多工业信号引入更多检测方法对比移动平均、孤立森林、LOF 等异常检测方法多变量联合检测利用多个传感器之间的相关性进行异常判断自适应阈值根据信号波动情况动态调整 Z-score 阈值实时在线检测模拟数据流实现逐点检测和报警故障类型分类不仅判断是否异常还进一步区分异常类型真实数据替换使用公开数据集或真实实验数据替换模拟数据这些拓展方向可以作为课程设计、综合实验或学生课后实践任务。十三、总结与案例下载本案例围绕工业传感器异常检测场景基于 MWORKS.Syslab 完成了模拟数据生成、异常注入、异常检测、结果可视化和性能评价的完整流程。案例无需外部真实数据学生下载后即可运行适合用于课堂演示、上机实验和课程作业。案例特点包括自带数据生成脚本无需额外准备数据覆盖突变、漂移、噪声、联动等典型异常类型使用滑动窗口与 Z-score 方法原理清晰便于教学讲解输出原始数据、检测结果、阈值对比等多类图表配套学生实验指导书和教师使用建议提供 MWORKS AI 辅助学习提示词支持代码解释、参数修改和实验报告生成已在 MoHub 开源支持下载、复现和二次开发。完整案例文件、示例数据、运行脚本和配套教学文档已整理在 MoHub欢迎下载体验。案例开源地址https://mohub.net/education/26317/summary适用工具MWORKS.Syslab适用对象高校教师、学生、工程数据分析初学者欢迎高校教师和学生在教学实践中使用本案例并基于 MoHub 开源案例进行反馈、改进和二次开发。