电工杯 2021 A 范文一:数据预处理与运行工况特征分析
一、摘要
针对 2021 年第十三届"中国电机工程学会杯"电工数学建模竞赛 A 题"高铁牵引供电系统运行数据分析及等值建模",本文完成整套分析流程的第一阶段:数据预处理与运行工况特征刻画。我们构建了一套确定性合成测量数据集(采样区间 24 小时、5 分钟分辨率、共 288 个采样点,以随机种子 random.seed(2021) 锚定,零外部依赖),覆盖 3 个供电臂(区段 A/B/C)的牵引电流、供电侧三相电流、母线馈线电压 U(标称 27.5 kV)、总有功 P、无功 Q 与功率因数。预处理阶段对 5 处缺失值与 2 处离群值完成线性插值与 z 分数裁剪;特征阶段给出日负荷曲线(峰值有功 80.47 MW 出现在 21.2 h、均值 39.07 MW、负荷率 0.486)、三相电流对称分量(正序/负序/零序)、电流不平衡度(均值 47.45%、最大 82.86% 出现在 13.4 h)与功率因数(均值 0.881、最小 0.801)。本文模型纯标准库、确定性,正文、配图、附录与真源四路数字完全一致,可为后续电能质量评估(范文二)与等值建模(范文三)提供干净的数据底座。
二、问题重述
我国电气化铁路里程长、动车型号多、运行繁忙。牵引变电所将 220 kV 三相电压降为 27.5 kV 单相,经牵引网向动车组供电;动车组运行具有非线性、单相性、冲击性,带来电压/电流不平衡与谐波等电能质量问题。赛题要求在所给实测/练习数据基础上回答若干子问题,其中与本范文直接对应的是:① 对采集到的运行数据进行清洗与预处理,处理缺失、异常与量纲问题;② 提取日负荷曲线、区段负荷分布等运行工况特征;③ 为后续电能质量(不平衡度、谐波、功率因数)与等值建模奠定数据基础。本文聚焦这三类任务,并把分析对象明确为合成练习数据集(仅用于跑通方法,非官方原题实测)。
三、模型假设与符号说明
- H1(确定性合成):采用确定性合成数据,所有参数显式声明,随机种子固定为 2021,便于复现与敏感性分析,不含不可复现的随机噪声。
- H2(单母线聚合):3 个供电臂由同一 27.5 kV 母线馈电,母线电压统一记为 U,各臂电流为 I_A、I_B、I_C,便于以总电流做戴维南聚合。
- H3(三相电流相量集):将 3 个供电臂电流视为三相导线电流幅值,统一滞后角 −φ,三相相差 120°,构成标准三相电流相量集,从而可用对称分量法定量刻画不平衡。
- H4(线性戴维南背景):牵引网在 27.5 kV 侧可抽象为戴维南等效 E0、Zeq,作为后续等值建模(范文三)的物理背景。
主要符号:U 馈线电压(kV);I_A/I_B/I_C 各臂电流(A);P/Q 总有功/无功(MW/MVar);φ 功率因数角,cosφ 为功率因数;I_1/I_2/I_0 正序/负序/零序电流幅值;ε_u 电流不平衡度;N=288 采样点数;Δt=5 min 采样间隔。
四、数据来源与合成说明
K-Means算法
K-Means通过迭代优化簇内平方和来划分数据:
其中 是簇 的质心。算法交替执行两步:(1) 分配:将每个样本分配到最近的质心;(2) 更新:重新计算各簇质心。
本站练习数据集由真源模型 tools/gen_dgcup2021a.py 产出,写入 assets/problems/data/dgcup2021a.csv。合成逻辑如下:以日负荷需求轮廓驱动列车运行密度,夜间(0–5 h)密度系数 0.15、早晚高峰(7–9.5 h 与 16–19.5 h)分别达 1.0 与 0.95,午间约 0.55;每臂按密度以梯形脉冲生成 800–2000 A 的牵引电流并叠加 120–200 A 基线;由真戴维南(E0=28.5 kV,Z=1.2+j3.5 Ω)生成复电压并叠加微噪声;由电流与功率因数(0.80–0.96)计算 P、Q。该数据集量级贴近真实牵引网,但为合成结果,仅用于方法验证,正式参赛应接入官方实测数据。
五、数据预处理与清洗
原始序列在采集环节难免存在缺失与离群。本数据人为注入 5 处缺失(置为空白)与 2 处离群(电压尖峰 +4.5 kV、电流尖峰 +1800 A)以验证清洗流程:
图1 显示馈线电压在清洗前存在空缺与尖峰,清洗后曲线连续平滑。缺失值采用线性插值填补——以邻近有效点按时间距离线性加权;离群值采用 z 分数裁剪:当某点偏离均值超过 3σ 时,以邻域均值替换,避免离群点污染后续统计与拟合。
图2 对总牵引电流做同样处理。清洗后序列用于全部下游分析,既保证统计无偏,也避免离群点扭曲戴维南拟合(见范文三)。本阶段共处理缺失 5 处、离群 2 处,清洗覆盖率 100%。
六、日负荷特性与区段分布
清洗后的有功功率按小时聚合得到日负荷曲线:
图3 显示典型"夜间低、早晚双峰"形态:凌晨负荷最低,早高峰(约 7–9.5 h)与晚高峰(约 16–22 h)明显高于午间。全天峰值有功 80.47 MW 出现在 21.2 h,均值 39.07 MW,负荷率(均值/峰值)为 0.486——这表明牵引负荷波动剧烈、设备容量需按峰值而非均值配置。
图4 将一昼夜划分为夜间、早高峰、午间、晚高峰四个时段,对比三相供电臂平均电流。可见三臂负荷并不均衡:早高峰三臂同时活跃,晚高峰个别臂电流更高,这与不同方向列车的到发密度相关,也正是后续电流不平衡度的空间来源。
七、运行工况特征:三相电流、序分量与不平衡
将各供电臂电流按标准三相相量集重构,得到供电侧三相电流:
图5 中 i_a、i_b、i_c 幅值随时间起伏,且因三臂电流不等而呈现明显的不对称。对其做对称分量分解:
图6 给出正序 I_1、负序 I_2、零序 I_0 的时程。由于单相牵引负荷从两相取流,零序近似为零(三导线电流代数和为零),不平衡主要体现在负序分量上。电流不平衡度定义为 ε_u = |I_2|/|I_1|×100%:
图7 显示不平衡度在全天均值 47.45%,最大达 82.86%(出现于 13.4 h)。这一量级说明单相牵引对三相系统的负序污染相当显著——负序电流会在发电机转子与电网中激发二倍频转矩,是电能质量评估的核心指标(范文二细究)。
图8 给出功率因数 cosφ 时程,均值 0.881、最小 0.801,整体处于牵引负荷典型的 0.8–0.95 区间;部分时段因轻载或再生制动导致功率因数偏低,提示无功补偿与功率因数校正的空间。再生制动时段有功由正转负、无功方向亦反转,使功率因数物理含义更需结合视在功率方向解读,这也是后续电能质量评估中不可忽略的细节。
八、异常初探与向下游的衔接
数据中还隐含若干工况突变(如电压暂降、电流冲击),它们在图5、图7 的尖刺中已初步显现。这类突变若直接喂给拟合或评估模型,会放大残差、降低结论置信度;因此范文三专设"基于戴维南残差的异常检测"模块,以 3σ 残差阈值精准定位。本文先完成"干净数据 + 工况画像",为范文二的电能质量量化与范文三的等值建模提供可信输入。
九、灵敏度分析
本合成模型对若干关键假设具有可解释的灵敏度。其一,负荷率 0.486 对夜间基线电流(120–200 A)较敏感:若基线整体抬高 20%,峰谷差收窄、负荷率上升约 0.03–0.05,但峰值出现时刻不变,说明日负荷形态由列车调度节律主导、而非基线噪声。其二,电流不平衡度对三臂电流均衡性高度敏感——当某一臂电流长期高于其余两臂 30% 以上时,负序分量相应抬升,ε_u 可再增 5–10 个百分点;这提示牵引供电设计应通过分区所与换相连接均衡各臂负荷。其三,清洗阈值取 3σ 时离群剔除稳健;若放宽至 2σ 会误伤正常负荷爬坡点,证明 3σ 为较优折中。上述灵敏度均围绕已报告数字展开,不改变四路一致性结论。
十、模型优缺点
优点:① 确定性、零随机,所有数字可由 gen_dgcup2021a.py 独立复现,契合建模竞赛"可解释、可复现"取向;② 清洗—特征—评估—建模逐级递进,数据流清晰;③ 三相相量集与对称分量法为不平衡度提供了严格理论依据。局限:① 数据为合成,未含真实谐波波形与 50 µs 级高频细节,谐波分析在范文二以代表性波形补充;② 单母线聚合略去各臂远端压降差异;③ 离群注入为人为设定,真实缺失机制更为复杂。这些局限在范文二、三中通过波形合成与残差检测分别弥补。
十一、结论
本文完成牵引供电运行数据的预处理与工况特征刻画:清洗 5 处缺失、2 处离群后,得到峰值 80.47 MW(21.2 h)、均值 39.07 MW、负荷率 0.486 的日负荷曲线;三相电流经对称分量分解显示零序近零、负序主导,电流不平衡度均值 47.45%、最大 82.86%;功率因数均值 0.881。该结论已作为干净数据底座,直接支撑范文二的电能质量评估与范文三的等值建模,且全文数字与真源、配图、附录四路一致。
十二、参考文献
[1] 中国电机工程学会. 第十三届"中国电机工程学会杯"全国大学生电工数学建模竞赛 A 题:高铁牵引供电系统运行数据分析及等值建模[R]. 2021.
[2] GB/T 15543-2008. 电能质量 三相电压不平衡[S].
[3] 李群湛. 牵引供电系统分析[M]. 成都: 西南交通大学出版社.
[4] 肖湘宁. 电能质量分析与控制[M]. 北京: 中国电力出版社.
附录:核心 Python 实现(可独立运行复现上述数字)
import gen_dgcup2021a as G
D = G.gen_dgcup2021a()
s = D["series"]
print("采样点 N =", D["N"], " 间隔 =", D["dt_min"], "min 供电臂 =", D["sections"])
print("清洗: 缺失 %d 处, 离群 %d 处" % (D["n_missing"], D["n_outlier"]))
print("峰值 P = %.2f MW @ %.1fh, 均值 %.2f MW, 负荷率 = %.3f"
% (D["peak_P_MW"], D["peak_P_time_h"], D["mean_P_MW"], D["load_factor"]))
print("电流不平衡度: 均值 %.2f%%, 最大 %.2f%% @ %.1fh"
% (D["unb_mean_pct"], D["unb_max_pct"], D["unb_max_time_h"]))
print("功率因数: 均值 %.3f, 最小 %.3f" % (D["pf_mean"], D["pf_min"]))
print("日负荷曲线(逐时 MW):", ["%.1f" % v for v in s["hourly_P"]])