ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

电动汽车随机充电对配电网影响的蒙特卡洛建模与复现指南

电动汽车随机充电对配电网影响的蒙特卡洛建模与复现指南 简介《电动汽车随机充电对配电网影响的研究》是一篇电力系统与新能源汽车领域的学术论文适合配电网规划与运行人员、电动汽车技术研究者及专业学生作为参考文献与专业指导。资源为单个PDF文件约446KB内含完整论文正文、图表、公式与参考文献可直接阅读引用。已有75人学习下载。该研究基于家庭用车出行链结构利用蒙特卡洛模拟各段行程行驶里程并判断充电频次采用泊松分布分析充电起始时间构建电动汽车充电负荷模型仿真量化了不同渗透率下电动汽车接入对配电网造成的负荷冲击、电压偏移与网络损耗并关注高峰时段无序充电的“峰上加峰”现象可为充电有序调控提供理论依据对相关课题研究和电网规划有直接参考价值。1. 一篇把随机充电做成可计算模型的论文值得拆开看的技术样本拿到这篇论文的PDF如果只是扫一眼摘要很容易归类成“又一篇电动汽车充电负荷的学术研究”。但真正做过配电网规划或充电设施评估的人会发现它把一个很棘手的问题——电动汽车随机充电对配电网的影响——拆成了一套可以照着算的完整链路先用出行链结构描述用户一天的行程轨迹用蒙特卡洛方法抽取每段行程的行驶里程用泊松分布确定车辆抵达充电场所的时间最后把聚合充电负荷叠加到33节点配电网上去评估冲击负荷、网损率和电压偏移。整条链路从用户行为到电网指标是闭环的不是停留在概念层面的泛泛讨论。这篇资源对三类人最有用做配网潮流分析和电压质量评估的工程师、研究充电负荷预测或有序充电控制的研究生、以及需要为充电桩布点和台区容量评估准备基础数据的技术人员。它给的虽然不是现成代码但把“随机充电”这个模糊问题变成可编程模型的一整套判断逻辑和参数都在论文里了复现路径非常清晰。2. 出行链与三个概率分布这套模型的底层逻辑和参数标定很多人一上来就去看充电负荷曲线容易忽略论文真正花心思的地方——它先把“人怎么用车”建模了再谈“车什么时候充电”。这一章把三个概率工具讲透出行链结构、对数正态分布的行驶里程、泊松过程的抵达时间。2.1 为什么用出行链描述充电行为而不是直接假设“回家就充电”早期研究常用“日行驶里程最后一次返家时刻”两个因素估算充电需求默认一天只充一次电。这篇论文的建模粒度更细核心在于引入了出行链trip chain的概念家是一天出行链的起点和终点车辆从家出发后可能经过工作、购物吃饭、休闲娱乐、其他事务等多个停留点每个停留点都有可能充电。出行链按复杂程度分为简单链和复杂链。简单链是“家—单一目的地—家”复杂链则包含两个以上目的地比如“家—工作—商场—家”。论文将出行目的划分为回家H、工作W、购物吃饭SE、休闲娱乐SR、其他事务O五类并聚焦不超过3段行程的13种出行链。为什么要截断到3段因为出行链越长每段行程的行驶里程、出发和抵达时间的统计就越困难参数标定容易失真仿真结果反而不稳定。这个取舍很务实实际做负荷预测时过度追求链条长度会让模型复杂度急剧上升收益却有限。对充电负荷建模来说出行链带来的直接好处是充电频次不再拍脑袋决定而是由行程结构自然推导。车辆在某个停留点是否充电取决于当前剩余电量能否支撑后续行程这就有了明确的物理判断依据。建模时一个小区内电动汽车数量由传统汽车数量和渗透率估算N_ev(t)N_car(t)×渗透率这个关系在后续配网影响分析中会被反复用到。2.2 行驶里程的对数正态分布参数取值和单位换算是第一个坑每段行程的行驶里程是充电负荷模型最基础的输入之一。论文基于NHTS 2009全美家用车辆调查数据对各出行链的行程段行驶里程做了拟合分析结论是每段行程的里程近似满足对数正态分布f(x) 1/(x·σ·√(2π)) · exp[-(ln x - μ)²/(2σ²)]以“家—工作”H-W这段行程为例论文给出的拟合参数是μ2.78、σ0.82对应行驶里程的概率分布峰值大约在4~7公里区间。注意这里的单位是英里μ和σ都是对ln(英里数)的均值和标准差换算成公里时需要先按英里采样再乘1.609或者把μ整体做偏移。这里特别提醒如果直接拿μ2.78当成公里数去采样行驶里程会被系统性低估约60%进而导致SOC下降偏慢、充电频次偏少最后算出来的充电负荷会明显偏小。这是复现时第一个容易翻车的细节。实际操作中市内出行H-W、H-SE等的里程分布相对集中σ通常在0.6~0.9之间远郊通勤链路的μ会明显偏大。如果没有本地调研数据按论文给出的这套参数起步是合理的但要注意美国出行特征和国内的差异——国内一线城市的平均通勤距离、机动车出行分担率和美国有显著区别有条件的话用本地居民出行调查数据重新拟合μ、σ比直接套用更可靠。2.3 泊松过程确定抵达时间从到达率反推每辆车的抵达时刻车辆抵达停车场的行为可以用泊松过程描述。对任意t0在时间区间(a, at]内抵达的车辆数服从参数λ0的泊松分布Pr{N(at)-N(a)n} e^(-λt)·(λt)ⁿ/n!这里λ是单位时间内的平均到达率决定了车辆抵达停车场的频度。泊松过程的一个关键性质是相邻车辆抵达的时间间隔服从参数λ的指数分布。这给仿真带来了极大便利——不需要逐辆车去查统计表只要给定时段的到达率λ就能用逆变换采样生成每辆车的抵达时刻。具体做法是生成一个服从(0,1)均匀分布的随机数θ则相邻两车抵达时间间隔τ -ln(θ)/λ。论文原文给出的公式就是这个形式其中λ_τj表示车辆j抵达时刻的到达率是随时间变化的——因为不同时段的到达率不同晚高峰返家的到达率远高于白天。可以用一段简洁代码实现这个过程import numpy as np def arrival_times_by_poisson(rate_profile, n_vehicles, seed42): rng np.random.default_rng(seed) times [] t 0.0 for _ in range(n_vehicles): hour int(t) % 24 lam rate_profile[hour] # 该时段平均每小时到达车辆数 u rng.uniform(0.0, 1.0) interval -np.log(u) / lam # 指数分布间隔单位小时 t interval times.append(t) return np.array(times)这段代码的逻辑是逐辆车生成抵达时间先根据当前时刻t落在哪个小时段查该时段的到达率λ再用指数分布逆变换采样得到与上一辆车的间隔。参数说明rate_profile是一个长度为24的数组存放各小时段车辆平均到达率来源是论文图7中“车辆最后一次出行结束时间”的统计数据n_vehicles是本场景下的电动汽车总数seed固定下来方便复现。这里最需要注意的一点是λ的时变性。如果图省事用全天平均到达率模拟出来的返家时间峰会变得非常平缓晚高峰充电负荷的核心特征直接丢失。正确做法是把一天按小时分段每个时段用各自的λ。论文图7正是统计出的各时段到达率变化曲线仿真时应当按这个曲线逐小时取值。3. 充电负荷模型落地SOC判断、充电时长与可复现的伪代码模型框架搭好后进入最核心的计算环节怎么判断一辆车该不该充电、充多久、功率多大。这一章把SOC计算、充电频次判断、充电时长公式和总负荷聚合完整的串起来。3.1 SOC计算与充电频次判断两个条件的优先级电动汽车剩余荷电状态与之前行驶的累积里程直接相关计算公式为SOC_cur (SOC_prev - Σl / d_range) × 100%其中SOC_prev是上一次充电结束后的荷电状态Σl是自上次充电后到目前的累积行驶里程d_range是车辆续航里程。这个公式隐含一个前提——车辆每次充电都充满即SOC_prev初始为100%因为论文假设用户返家后会把电池充满以备次日使用。充电频次的判断是整个模型里最体现工程经验的地方论文设计了两个条件条件一是基于电池寿命的考虑假设剩余电量不应低于20%因此当累积行驶里程满足Σl ≥ 0.8×d_range时判定为需要充电。也就是说车辆最多只允许消耗80%的续航里程剩余20%作为安全裕度避免电池深度放电损坏寿命。这个0.8的系数是一个很实用的工程默认值实际做项目时可以根据电池特性和用户习惯调整但0.8是合理的起步值。条件二是返家必充。无论剩余电量多少车辆经过一天的行程最终返回住宅后默认车主会接入充电桩将电池充满以备次日使用。这一点特别重要——返家充电是住宅区充电负荷的主要来源如果漏掉这个强制条件晚高峰充电负荷会被严重低估。综合起来判断逻辑就是在每一个行程段结束后计算当前SOC若剩余电量无法满足后续行程条件一成立则充电若当前停留点是家条件二成立则充电否则不充电。条件二优先于条件一因为即使电量充足返家后仍然要充满。3.2 充电时长与功率等级参数怎么设定充电时长由四个因素决定电池容量C_bkWh、到达时的起始SOC、充电功率PkW和充电效率η。计算公式为T_charge C_b × (SOC_target - SOC_arrive) / (η × P) × 60其中T_charge单位为分钟SOC_target是用户预设的离开时荷电状态充满则为1.0。以论文仿真参数为例电池容量24kWh慢充功率3.5kW220V、16A充电效率0.9。假设车辆返家时剩余SOC为40%则充电时长为24×(1.0-0.4)/(0.9×3.5)×60 ≈ 457分钟约7.6小时——正好覆盖夜间谷时段。充电功率等级的选择有明确的行业标准可循。论文参照QC/T 841-2010《电动汽车传导式充电接口》标准将充电模式分为慢速充电、常规充电、快速充电三类。住宅区返家充电选用P1慢充模式即单相220V、16A、3.5kW工作单位和商场停车场模拟时采用P2-1常规充电模式功率等级更高。同一充电场所的充电功率水平假设一致且停车场充电桩数量足够所有电动汽车接入——这个假设在配网影响分析时是合理的因为研究重点不是充电设施容量规划而是充电负荷对电网的影响。3.3 充电负荷聚合与仿真主循环伪代码落地有了单辆车的充电行为规则就能聚合出某停车场t时刻的总充电负荷。t时刻场所a的总充电负荷等于所有正在充电车辆的充电功率之和P_a,t Σ P_a × y_j(t)其中y_j(t)是接入状态指示变量车辆j在充电期间为1否则为0T_start和T_duration分别为充电起始时间和充电持续时长。把一天按分钟离散化逐分钟累加所有车辆的充电功率就得到全天充电负荷曲线。这部分完整仿真逻辑可以写成伪代码便于直接翻译成Python或MATLABimport numpy as np def charging_minutes(capacity_kwh, soc_start, power_kw, efficiency0.9): # 充电时长从起始SOC充到100%所需时间分钟 energy_needed capacity_kwh * (1.0 - soc_start) return energy_needed / (efficiency * power_kw) * 60.0 def simulate_ev_charging(evs, trip_chains, range_km160.0, capacity_kwh24.0, power_kw3.5, efficiency0.9, soc_min0.2): charge_log [] # 每个元素: (起始时刻, 时长, 功率) for ev in evs: soc 1.0 accumulated_km 0.0 for seg in ev.trip: mileage_km lognorm_sample(seg.mu_km, seg.sigma_km) accumulated_km mileage_km soc 1.0 - accumulated_km / range_km soc max(soc, 0.0) remaining_km sum(seg.remaining_mileages) # 后续所有行程里程之和 need_charge remaining_km (1 - soc_min) * range_km is_home (seg.destination H) if need_charge or is_home: duration_min charging_minutes(capacity_kwh, soc, power_kw, efficiency) start_hour seg.arrive_hour charge_log.append((start_hour, duration_min, power_kw)) # 充满后重置累积里程与SOC soc 1.0 accumulated_km 0.0 return charge_log这段伪代码的逻辑可以拆成三层看。外层循环是遍历每辆车每辆车依次经过当天的各个行程段内层逻辑先根据本段行驶里程更新累积里程和SOC再判断本段结束后是否充电。判断条件里need_charge用“后续行程总里程是否接近续航上限的80%”来判断is_home则强制执行返家必充。充电结束后立即重置累积里程和SOC因为论文假设每次充电都充满下次行程从满电状态开始计。参数说明range_km是车辆续航里程论文中电池容量24kWh对应的实际续航约160公里量级具体取值由车型参数决定soc_min是保护性下限0.2对应公式里的0.8×d_range阈值power_kw按充电场所区分住宅区取3.5工作单位和商场取P2-1等级。论文原文的仿真是以15分钟或1小时为步长统计负荷的实际实现时建议以分钟为步长生成充电事件再聚合成小时级曲线这样曲线更平滑与基础负荷叠加时也更自然。4. 蒙特卡洛仿真与配网影响分析从5000次抽样到三个核心指标单次仿真只能得到一种随机场景下的负荷曲线不能代表统计规律。论文用蒙特卡洛方法重复仿真M次取数学期望作为最终的充电负荷预测值再接入配电网做潮流计算。这一章是复现项目时的主战场涉及仿真流程、收敛判据和配网分析的完整细节。4.1 仿真主流程与收敛判据为什么是5000次蒙特卡洛仿真的主流程是设置总车辆数、渗透率、各出行链比例、抵达停车场时间统计数据、各行程段里程概率分布等系统输入然后对每辆车随机采样出行链类型按对数正态分布抽取每段行程的行驶里程按泊松过程生成抵达时间按照第3章的判断规则确定充电事件最后把所有车辆的充电功率按时段累加得到一次仿真的充电负荷曲线。重复M次后t时刻的充电负荷期望值为P̄_t (1/M) × Σ P_t,m这里M是仿真总次数论文设为5000次。为什么是这个数量级因为蒙特卡洛方法的误差收敛速度是1/√M从1000次增加到4000次标准差减半但从4000次增加到16000次标准差只再减半。5000次已经能把充电负荷期望值的波动压到工程可接受范围继续增加计算量和收益不成比例。蒙特卡洛的精度用方差系数coefficient of variation来评估而不是直接用标准差。方差系数的定义是β max(β_t) max{ σ(P_t) / (√M × E(P_t)) }其中β_t是t时刻充电负荷的方差系数σ(P_t)是标准差E(P_t)是期望值。用方差系数而不是标准差是因为不同时刻的充电负荷绝对值差异很大——深夜低谷时段负荷很小标准差也小直接看标准差会误判相对误差。方差系数是相对量能统一衡量全天各时刻的收敛水平。实际操作中通常设定β 0.005即0.5%作为停止判据如果5000次后仍未达到需要增加仿真次数或对稀有场景做分层抽样。4.2 33节点配网与渗透率场景设计参数怎么搭配论文用33节点配网系统测试模型节点1为参考节点平衡节点系统拓扑就是电力系统分析教材里常用的IEEE 33节点算例——辐射状结构、总负荷约3.7MW、电压等级10kV具体支路参数可以直接引用文献[19]的数据或者从Matpower等工具里导出标准测试系统。很多复现者第一次卡住的地方就是这里论文说“系统参数见文献[19]”实际上用的就是IEEE 33节点标准参数不需要额外寻找。仿真场景设计的核心是渗透率。论文假设该住宅小区有320户住户、每户平均拥有一辆汽车车辆出行链比例如原文表3所示。电动汽车渗透率分别取0、30%、50%和75%对应电动车数量为0辆、96辆、160辆和240辆。这些电动汽车随机分布在网络各节点上——这里论文做了一个简化某一渗透率下的车辆数按平均数分布于各节点而不是逐辆车分配位置。这样做的好处是每个节点的充电负荷与渗透率成严格正比便于对比分析缺点是丢失了空间随机性实际做规划评估时建议用伪随机数发生器逐辆车分配节点位置多跑几次取均值。充电参数方面慢充模式电压220V电流16A功率3.5kW电池容量24kWh每次充电均充满充电机效率0.9。住宅区基础负荷按原文表4的小区日负荷功率数据设定负荷峰值集中在傍晚时段。需要强调的是这个基础负荷是“无电动汽车时的纯居民负荷”叠加充电负荷时要做两次潮流计算——第一次不加电动车得到基线第二次加上充电负荷两者相减才能分离出电动汽车的净影响。4.3 三个影响指标怎么量化冲击负荷、网损率、电压偏移仿真结果从三个维度衡量电动汽车随机充电对配电网的影响这三个指标也是配电网规划中最关心的三个问题。首先是冲击负荷。论文图8给出了不同渗透率下系统日负荷期望值曲线核心结论是“峰上加峰”——电动汽车充电高峰恰好叠加在居民用电晚高峰上。居民负荷峰值在19:00前后而车辆返家后立即接入充电充电负荷高峰也在19:00-20:00两者叠加使系统负荷在这一时段显著抬升。充电负荷的波动幅度可以用期望值±3σ置信区间估计上下限论文明确指出充电负荷99%的概率分布在E±3σ范围内这个区间对判断变压器是否过载很有实用价值。其次是系统网损。电动汽车接入会增加线路潮流导致有功损耗上升。论文给出了不同渗透率下的网损率数据这是复现时可以直接对照验证的硬指标渗透率有功损耗率0%6.69%30%7.48%50%7.98%75%8.87%网损率随渗透率近似线性增加75%渗透率时比无电动车时高出约2.2个百分点。这个表可以作为仿真代码正确性的验证基准——如果复现出来的网损率和这几个数偏差超过0.3个百分点大概率是充电负荷时序或渗透率计算出了问题。第三是电压偏移。论文以19:00为例分析各节点电压原因是居民负荷和充电功率在这一时刻同时达到峰值电压跌落最严重。根据电力系统运行规程低压用户容许的电压偏移为-10%~7%。仿真结果表明渗透率较低时节点电压仍在允许范围内随着渗透率加大末端节点电压开始越限。这是一个典型的末端电压问题——辐射状配电网的末端线路阻抗累积最大充电负荷一旦集中接入末端节点电压跌落非常明显。论文图9展示的节点电压曲线在渗透率75%时末端节点已经明显低于0.9p.u.。5. 复现避坑指南五个最容易被论文细节绊倒的地方这篇论文的数据和公式都写得很完整但真正动手复现时还是有几个地方容易踩坑。这一章把这些坑集中拿出来说每一条都是实际跑仿真时绕不过去的细节。5.1 行驶里程的单位换算英里还是公里差之毫厘谬以千里现象用论文给出的μ2.78、σ0.82直接做对数正态采样仿真出的充电负荷偏低充电车辆比例明显少于论文结果。原因NHTS 2009的数据是英里制μ2.78和σ0.82是对ln(英里数)的统计。直接把这个参数当成公里数使用相当于把行驶里程系统性缩小了约38%SOC下降变慢触发充电判断的车辆自然减少。解决在采样环节就把单位统一。先用英里参数采出里程值再乘1.609换算成公里或者把μ加上ln(1.609)≈0.475后按公里采样。换算后的H-W链均值大约是4.47公里这个量级才是合理的市内通勤距离。仿真中所有涉及里程和续航的参数必须用同一单位制建议全程用公里。5.2 泊松到达率是时变的用全天平均λ会把晚高峰抹平现象模拟出的车辆返家时间分布全天非常均匀傍晚没有明显的聚集峰充电负荷曲线与论文图8形态差异很大。原因把一天24小时的到达率取平均得到一个固定的λ用这个λ生成指数分布间隔相当于假设车辆均匀抵达。但实际居民返家行为高度集中在17:00-21:00论文图7明确给出了各时段不同的到达率。解决把一天按小时分段每段用各自的λ值。代码实现上先生成每个小时的到达率数组rate_profile在采样循环内部根据当前时刻t所在的小时段动态取λ。判断t落在哪个小时段时注意边界条件t23.5小时应该取23时段而非重新从0开始取数。5.3 “返家必充且每次充满”的假设不能丢现象对比论文表5的网损率复现值系统性偏低尤其是渗透率越高偏差越大。原因很多复现者只实现了“剩余电量不满足后续行程才充电”的条件觉得返家后如果电量充足就不用充了。但论文明确假设车主返家后会充满电池以备次日使用这是住宅充电负荷的主要组成部分。漏掉这个条件晚高峰充电负荷少了很大一块网损率和电压偏移自然偏低。解决在充电判断逻辑里把返家目的地为H单列为强制充电条件优先于电量判断执行。同时注意每次充电后要重置SOC和累积里程为满电状态否则后续行程的电量计算会累积误差。5.4 渗透率是车辆数量比例不是充电桩接入比例现象仿真算出的充电负荷峰值只有预期的一半但渗透率明明已经设成75%。原因把渗透率理解成了“充电桩的接入率”实际只有一部分电动车同时接了充电桩。但论文里的渗透率定义很明确——N_ev(t) N_car(t) × 渗透率即小区内电动车数量占汽车总量的比例。并且假设停车场充电桩数量足够所有电动汽车接入所以渗透率75%就意味着240辆车全部接入电网充电。解决按“电动车总数住户汽车总数×渗透率”进行抽样一辆车对应一个充电事件序列。不要额外乘充电桩利用率或同时率之类的系数那是充电设施规划的课题不是这篇论文的场景。5.5 蒙特卡洛次数以满足方差系数判据为准不是越大越好现象把仿真次数从5000次加到50000次充电负荷曲线几乎不变但计算时间却要等很久。原因蒙特卡洛收敛速度是1/√M5000次时方差系数已经压得很低继续增加次数对期望值的改善微乎其微。解决每次仿真结束后计算各时刻的方差系数β_t取最大值与预设精度ε比较论文原文用的精度判据是βε建议ε取0.005即0.5%。满足判据就停止不满足再增加次数。这个做法比固定次数更科学工作日和周末场景的收敛速度不同统一按判据截断能省不少计算时间。6. 进阶玩法渗透率分档、结果校验与有序充电的逻辑延伸模型跑通之后接下来可以做几件有用的事验证仿真代码的可靠性、扩展场景设计、以及把无序充电的结论往有序充电方向延伸。验证代码可靠性的第一件事是跑一个渗透率为0%的基线场景也就是纯居民负荷不加任何电动车。这一步有两个作用一是确认基础负荷数据和潮流计算正确二是为后续对比提供基准。论文表5的网损率数据是现成的校验标尺0%渗透率时网损率应该是6.69%30%时7.48%50%时7.98%75%时8.87%。如果代码正确这四个点应该能严格对上对不上的话重点检查充电时长计算和渗透率车辆数的取值。另外还要检查电压曲线——无电动车时各节点电压应该全部在0.9p.u.以上末端节点电压最低但不应越限这是辐射状配网的正常特性。渗透率分档是另一个值得细化的方向。论文用了0、30%、50%、75%四档做工程评估时建议加密到10%、20%……90%甚至按实际小区电动汽车保有量数据逐档扫描。每一档都记录三个指标高峰时刻的充电负荷期望值含±3σ置信区间、全天网损率、19:00各节点电压最低值。把这些指标随渗透率的变化画成曲线能直观看出“临界渗透率在哪里”——比如末端电压在50%~75%之间某一点首次跌破0.9p.u.那么这个点就是该配电台区的电动汽车承载力上限对扩容规划很有参考价值。有序充电的延伸是论文结论的自然落点。模型已经告诉你无序充电会造成“峰上加峰”下一步自然是研究怎么削峰。最常见的方案是把充电起始时间从返家时刻19:00左右推迟到23:00以后利用谷时段充电。实现方式可以很简单在仿真代码里加一个控制策略模块对返家充电事件统一延迟4~6小时再计算新的负荷曲线、网损率、电压偏移。对比调控前后的曲线能直观看出有序充电对“峰上加峰”的改善程度。更精细的做法是按电价或台区负荷率动态分配充电起始时间这是V2G和需求响应的课题了但底层模型完全可以直接沿用这篇论文的出行链和SOC框架。还有一个值得尝试的扩展方向是空间随机性。论文把电动车按平均数分布到各节点这是为了便于理论分析。实际项目中车辆更可能集中在部分楼栋接入同一台区下的负荷分布很不均匀。可以把逐辆车随机分配节点位置多跑几次取统计结果和平均数分布的结论做对比往往能看到更严重的末端电压问题——这正是实际规划中要重点关注的场景。从复现到应用这篇论文真正教会的不是某个公式而是一整套把用户行为转化为电网负荷的建模思路。从那以后我每次做充电负荷仿真都会强制先跑一遍0%渗透率的基线场景确认潮流计算无误后再叠加电动车负荷——这个习惯帮我挡掉了至少三次参数设置错误。把这个习惯分享给你希望帮到你。本文还有配套的精品资源点击获取
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进