ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

微网多时间尺度协调调度中的电动汽车灵活性建模与滚动优化

微网多时间尺度协调调度中的电动汽车灵活性建模与滚动优化 作为常年泡在微网调度这个坑里的人我最初看到计及电动汽车灵活性的微网多时间尺度协调调度模型这个题目时第一反应是终于有人在把电动汽车当作资源而不是负担来看了。过去很多课题把EV当作随机负荷调度模型里恨不得把充电桩都拔掉但实际上家用车每天平均95%的时间是停着的电池容量就是闲置资本这就是灵活性。只不过这种灵活性不像火电机组那样呼之即来它绑着用户的出行需求得小心翼翼地把可调度部分和不可触碰的底线分开。这篇文章里我把自己搭模型、调参数、跑仿真时踩过的坑和梳理清楚的主线全部整理出来算是给做微网调度、虚拟电厂聚合、EV有序充电的同学一份可以直接上手的参考。我一直认为搞调度不是堆约束而是先想清楚在什么时间尺度上谁需要听谁的指令。电动汽车的随机性很强如果只在日前做一次计划第二天光伏被云遮了、EV中午提前走了整个计划就是一张废纸如果只盯着实时又没时间给充电桩下发平滑的功率曲线容易把逆变器折腾出问题。所以多时间尺度协调本质上不是炫技而是拿预测精度换计算时间再把模糊的计划逐步细化为可执行的指令。整篇文章的核心逻辑就是先建一个多层级调度框架再把EV灵活性量化成可用的数学约束最后用滚动优化把模型跑起来。1. 微网里为什么要多时间尺度协调直接讲清楚调度框架1.1 单时间尺度调度的三个致命缺陷先说个真实场景。某个园区微网配了1.5 MW光伏和800 kWh储能装了60个交流慢充桩参与调度的EV大约40辆。最初我们只做日前调度也就是在前一天晚上根据预测的光伏出力和EV历史充电需求做出未来24小时的机组、储能、购电计划。第一个问题是预测误差在日内被无限放大。光伏超短期预测误差平均有10%15%遇到晴间多云15分钟级功率波动的偏差能到40%。日前计划固定了储能充放电时段结果午间光伏突然掉了一半储能已经被计划锁在充电状态如果没有日内修正只能眼睁睁地从电网买高价电。第二个问题是EV的到达和离开时间根本不可能在日前精确预测。40辆车中会有几辆临时不回来、有几辆突然需要满电出发甚至有人下午三点就回来插上枪。这些都发生在执行当天日前计划完全反应不过来。第三个问题更隐蔽多台EV同时接入会造成变压器过载。日前计划只能按总功率约束来分摊但实际充电桩在就地控制模式下会自主拉满功率60个桩同时启动瞬间冲击就超过变压器额定容量。这种事靠日前是防不住的必须有更快的控制层去压功率。这三个缺陷指向同一个答案不同时间尺度承担不同任务互相兜底。1.2 三层调度架构与各自的职责边界多时间尺度调度模型我一般按日前计划-日内滚动-实时分配三层来搭每层的周期、颗粒度、控制对象和目标函数都不一样。这里直接把我常用的结构放出来。时间尺度运行周期时间分辨率核心任务主要决策变量日前24小时1小时经济性最优、设备启停、EV充电计划初排机组启停、储能充放电状态、EV充放电计划、购售电日内4~6小时滚动15分钟跟踪日前计划、修正预测偏差、调整EV功率储能修正功率、EV修正功率、可中断负荷实时5分钟/1分钟1~5分钟功率平衡、频率恢复、避免过载AGC调节量、EV群实时功率分配日前层的目标函数一般是最小化全天运行总成本包括燃料成本、购电成本和弃光惩罚约束条件包含功率平衡、机组爬坡、储能SOC边界、EV充电需求底线。这个层级的模型本质上是混合整数线性规划因为机组启停和储能充放电状态都是0/1变量。日内层是承接日前与实时的关键我习惯用模型预测控制每15分钟滚动一次预测未来4小时的光伏、负荷和EV接入情况只执行下一步到下一个周期重新优化。这样做的好处是让计划始终贴着最新的预测走但又不至于像实时控制那样缺乏前瞻性。实时层处理的是秒到分钟级的扰动比如云层遮蔽导致光伏骤降、某辆车突然拔枪导致功率缺口。这个层级不追求经济最优而是追求响应速度和功率均衡通常用分配因子或一致性算法把微网主控下发的功率缺额指令分摊到每台参与调度的EV和储能逆变器上。1.3 三个尺度之间靠什么衔接层与层之间不是简单地把计划传下去而是要传递边界条件和可调区间。这是模型中很关键的设计细节。日前计划生成后传递给日内层的不是一条固定曲线而是一条走廊。以储能为例日前算出了最优SOC轨迹日内层允许在基准轨迹上下浮动浮动范围就是所谓的调度裕度。这样做是为了给日内优化留调整空间又不至于完全推翻日前的经济性决策。EV群也是一样日前决定了每辆车在某个时段的充电功率基线日内只能在这个基线附近修正并把修正量限制在电池寿命约束允许的范围内。实时层从日内层拿到的是可上调/可下调功率的标识。调度中心根据每辆EV当前SOC、预计离开时间、电池允许倍率实时算出它还能吃多少功率、能吐出多少功率把这些数据汇总后就是一个灵活的调节池。三个层次之间靠这些软约束衔接而不是硬性传递一条曲线这种设计的好处是即便某层预测失准下一层也有足够的自由度去消化偏差。2. 电动汽车灵活性到底怎么建模这一步决定模型有没有用2.1 单辆EV充放电模型SOC、倍率、时间窗一个都不能少EV接入微网后它的物理模型并不复杂但参数边界很容易设错。我习惯采用如下离散形式的动态方程SOC_ev(t1) SOC_ev(t) η_c * P_c(t) * Δt / E_cap - P_d(t) * Δt / (η_d * E_cap)这个式子本身很简单麻烦的是四组边界约束。第一是充放电功率边界P_c.min P_c P_c.max放电同理。第二是SOC上下限这个我建议至少留5%的底电给用户应急不建议跑到0。第三是爬坡/倍率约束也就是单位时间SOC变化量不能超过电池允许的C倍率这个在实际模型里经常被忽略但恰恰是它决定了EV能否快速响应调频指令。第四是用户约束也就是离开时间t_dep时SOC必须达到用户设定的目标值比如95%。这四组约束里最影响模型实用性的就是用户约束。如果完全不考虑离开时间模型会倾向于在电价低谷时把车充满看起来很经济却可能到了早上用车时电量不够。所以我做EV聚合调度时会把到达时间、离开时间、初始SOC、目标SOC这四个参数当作每辆车的身份标签也是模型输入里最烦人的数据。2.2 无序充电、有序充电和V2G三种模式怎么在一个模型里表达同一个EV群在不同的商业模式下约束形式完全不同很多论文把三种模式混在一个模型里跑最后结果总是不太可信。我建议分清楚再建模。无序充电场景下EV是纯负荷到达即满功率充电直到充满或离开模型不需要优化决策只需要作为负荷曲线叠加进系统。这种模式一般作为对照组。有序充电场景下EV的功率是连续可调的但只能单向充电。这种情况下决策变量是充电功率P_c约束幅度在0到额定功率之间。这种模式的价值是可以避开负荷尖峰、填补光伏低谷但没法向电网反向送电。V2G模式下EV变成双向功率设备。这时候决策变量变成两个P_c和P_d它们不能同时为正需要加互斥约束。我通常用二进制变量或互补约束来处理。同时还要考虑放电对电池寿命的影响这又引出了老化成本函数。建模时还有一个容易搞错的点有序充电和V2G模式下EV的灵活性不是恒定不变的。一辆车刚接入时SOC有80%它只有很少的充电空间可上调功率很小却有很足的放电空间可下调功率很大而到SOC降到20%附近时正好反过来。所以灵活性的边界是随SOC动态变化的不能用固定常数。2.3 用户充电需求如何量化成模型里的不等式用户最在意的不是你帮我省了多少钱而是我出发时电够不够用。所以在模型里用户约束应写成SOC_ev(t_dep) SOC_target如果预测的光伏出力下午两点出现尖峰而某辆车下午两点半才离网模型就可以让它在光伏尖峰时段集中充电把本来会弃掉的光伏电量存进电池。这种操作既满足用户需求又不增加系统负担是EV灵活性的最直接体现。但有些场景里车辆离开时间本身也是不确定的。这种情况下我会把用户需求约束从硬约束改成软约束引入一个离开电量不满足代价系数也就是通过惩罚项让模型尽量满足、但不是绝对强制满足。这样做的好处是避免某些极端场景下模型无解比如光伏连续几天阴雨全部EV都要满电离网系统根本没有足够功率。2.4 灵活性聚合从单辆车到车队的可调度域40辆车如果每一辆都作为独立节点放进优化模型整数变量和约束数量会爆炸。我在实际搭建中一般通过聚合商或虚拟电厂把EV群聚合为一个虚拟储能单元。聚合时要抓住三个指标总可充功率上调节能力、总可放功率下调节能力、总体能量边界。这三者可以通过对每辆EV的可调度区间做求和得到。需要注意的是能量边界不是简单相加因为每辆车的SOC上限下限不同聚合电池的可充入电量和可放出电量要按每辆车的当前状态分别计算。聚合模型里还容易犯一个错误把所有EV的SOC简单平均得到一个虚拟SOC。这在成本计算上勉强能用但在功率响应能力上会高估。比如两辆车一辆SOC是100%一辆是0%平均SOC是50%看起来还有很多电量可放实际上SOC 100%那辆在V2G模式下才能放SOC 0%那辆根本不能放电。所以聚合后我要额外保留各车的SOC分布信息或者用多状态量描述不要图省事用平均SOC。3. 核心数学模型搭建目标函数、约束条件、滚动优化路径3.1 日前调度的完整数学模型长什么样日前模型我采用最小化综合运行成本作为目标包含四项cost。第一项是微型燃气轮机的燃料成本用二次函数拟合。第二项是微网与大电网的交互成本买电是正成本售电是负成本。第三项是弃光惩罚这一项加上去很重要否则模型不会主动消纳多余光伏。第四项是EV电池老化成本只在V2G放电时会产生用来抑制过度放电。目标函数写出来就是min ∑_{t1}^{24} [ C_fuel(P_mt(t)) C_grid(t)·P_buy(t) - R_sell(t)·P_sell(t) C_curtail·P_curtail(t) C_deg·∑_{ev} P_d_ev(t) ]约束条件里功率平衡约束是最基本的∑ P_mt P_pv P_wind P_storage_d P_ev_d P_buy P_load P_storage_c P_ev_c P_sell这里我特别建议把所有电源放在左边、负荷放在右边保证等式方向一致排查问题时一目了然。储能设备需要加充放电互斥约束和SOC首尾一致性约束机组需要加爬坡约束和最小启停时间约束这些是常规操作不展开。真正体现EV特性的约束是每辆车的电量动态方程、功率边界、离网SOC约束以及调度时段的入网窗口约束。需要注意的是EV不是全天候可调度设备它只在接入时间窗口内出现模型里的t_dep和t_arr必须在参数里显式给出不能假设车辆全天在网。3.2 日内滚动优化与MPC的衔接细节日内层用MPC的思路实际上就是把日前模型压缩到有限时域重新求解。我常用的设定是预测时域T_p4小时控制时域T_c1小时每15分钟滚动一次。由于时域缩短计算量大幅下降可以保留更多EV的个体细节不用过分聚合。MPC里有个控制学术语叫反馈校正也就是每次滚动前把系统当前实际状态——包括每辆EV当前SOC、储能当前SOC、光伏实测出力——作为初始条件塞进优化模型。这一步非常重要如果还是用日前预测的状态做起点滚动优化的意义就少了一半。日内优化时目标函数与日前基本一致但多了一个软约束惩罚项跟踪日前计划的偏差惩罚。惩罚系数C_dev不能设得太大否则日内完全不敢偏离日前计划灵活性丢失也不能太小否则日前计划形同虚设。我一般取购电成本的20%到50%然后通过多次仿真调参确定。日内层求解之后只执行第一个采样周期的控制动作也就是未来15分钟的EV功率和储能功率指令。到下一个15分钟再重新预测、重新优化这就是滚动的意思。这种机制的好处是系统永远基于最新信息做决策对EV随机入离网特别友好。3.3 实时层的功率再分配模型如何写实时层解决的是日内计划执行过程中的功率偏差问题。比如日内做出的EV群总功率是120 kW但实际某几辆车因为通信延迟没接受到指令实际只有90 kW系统出现30 kW缺口。实时层要把这30 kW快速分解到储能和其他参与V2G的EV上。分配方法我推荐按可调裕度百分比分配计算公式为ΔP_ev_i ΔP_total × (P_avail_up_i / ∑ P_avail_up_i)其中P_avail_up是每台设备可上调功率容量。这种等比例分配计算量小、不存在迭代问题在实时控制里非常稳。如果某些车辆响应速度慢还需要加上响应时间约束只把功率分配给满足响应时间要求的设备。实时层的时间常数很小不适合跑整数规划。我通常把实时层做成完全线性化的功率分配器输入是缺额信号输出是各设备功率指令整个计算在几十毫秒内完成可以放进嵌入式主控程序。3.4 电池老化成本如何折进V2G收益V2G听起来很美但做经济性分析时如果忽略电池循环老化会出现大量看似省钱实则亏本的解。我采用比较公认的半经验老化模型每处理一度电的等效循环老化成本 ≈ 电池更换成本 / 总循环寿命电量即C_degradation C_battery / (E_life_cycles · E_cap)。实际计算时还要乘一个深度放电影响因子放电深度越深单位电量成本越高。这个成本放到目标函数里的效果很直接模型会自动减少深度放电、减少不必要的双向切换。我做过对比不加老化成本时V2G放电量占到EV总充电量的65%以上加入老化成本后这个比例降到20%左右而系统总成本反而下降了6%到8%原因是避免了高损耗的频繁充放转换。如果你在论文或项目里需要体现EV的灵活性利用但又不想把模型搞得太复杂一个折中方案是设一个固定的单位放电补偿价格比如0.3元/kWh作为V2G放电的成本。虽然精度不高但可以避免模型天天想着让EV放电。4. 求解工具、仿真算例与参数选择的完整实操4.1 工具链选择与求解器对比模型定下来之后求解工具决定了你调参的效率。我做过三套方案对比。MATLABYALMIPGurobi这个组合最适合科研验证YALMIP语法简洁Gurobi求解MILP速度极快。缺点是授权成本高除非你用的是学校或公司的许可证。PythonPyomoGurobi/GLPK适合工程落地Pyomo代码可读性更好方便和数据分析流程对接。GLPK开源免费但求解效率比Gurobi差很多模型规模稍大就可能卡住。我的建议是代码用Pyomo写底层求解器有许可证时用Gurobi没有就用CBC或HiGHS中小规模模型完全能扛住。如果只有几百个0/1变量的小模型ExcelOpenSolver也能跑但我不推荐因为你没法做滚动优化循环代码复用性太差。4.2 一个可直接运行的简化日前调度示例为了说明代码结构我用Pyomo写一个最小化的EV-微网日前调度模型。这个模型包含一台储能和一组聚合EV省去机组启停保留最核心的功率平衡与SOC约束方便你理解框架后自行扩展。import pyomo.environ as pyo T range(24) dt 1.0 # 预测数据 pv [0,0,0,0,0,0.3,0.8,1.4,2.0,2.8,3.5,3.6,3.2,2.6,1.8,1.0,0.5,0.2,0,0,0,0,0,0] load [1.2,1.1,1.0,0.9,0.9,1.0,1.1,1.4,1.8,2.2,2.5,2.6,2.4,2.2,2.1,2.0,1.9,1.8,1.7,1.6,1.5,1.4,1.3,1.2] buy_price [0.3,0.3,0.3,0.3,0.3,0.4,0.6,0.8,0.9,1.0,1.0,0.9,0.8,0.7,0.6,0.6,0.7,0.8,1.0,1.0,0.9,0.8,0.5,0.3] # EV聚合参数 ev_pmax 0.3 # 聚合充电功率上限 MW ev_pmin -0.15 # 聚合放电功率上限 MW正为充负为放 ev_etamin, ev_etadch 0.95, 0.95 ev_cap 4.0 # 总容量 MWh soc_ev0 0.4 soc_ev_min, soc_ev_max 0.15, 0.95 ev_energy_need 1.2 # 日最低充电需求 MWh # 储能参数 p_sto_max 0.5 cap_sto 1.0 soc_sto0, soc_sto_end 0.5, 0.5 soc_sto_min, soc_sto_max 0.1, 0.9 m pyo.ConcreteModel() m.p_buy pyo.Var(T, bounds(0, 2)) m.p_ev pyo.Var(T, bounds(ev_pmin, ev_pmax)) m.p_sto pyo.Var(T, bounds(-p_sto_max, p_sto_max)) # 正为充电负为放电 m.soc_ev pyo.Var(T, bounds(soc_ev_min, soc_ev_max)) m.soc_sto pyo.Var(T, bounds(soc_sto_min, soc_sto_max)) m.EV_soc_init pyo.Constraint(exprm.soc_ev[0] soc_ev0 - dt*ev_etamin*m.p_ev[0]/ev_cap) m.STO_soc_init pyo.Constraint(exprm.soc_sto[0] soc_sto0 - dt*m.p_sto[0]/cap_sto) def soc_ev_dyn(m, t): if t 0: return pyo.Constraint.Skip return m.soc_ev[t] m.soc_ev[t-1] - dt*ev_etamin*m.p_ev[t]/ev_cap m.EV_soc_dyn pyo.Constraint(T, rulesoc_ev_dyn) def soc_sto_dyn(m, t): if t 0: return pyo.Constraint.Skip return m.soc_sto[t] m.soc_sto[t-1] - dt*m.p_sto[t]/cap_sto m.STO_soc_dyn pyo.Constraint(T, rulesoc_sto_dyn) def ev_energy(m): return sum(-m.p_ev[t] for t in T) * 0.95 ev_energy_need m.EV_energy_min pyo.Constraint(ruleev_energy) def p_balance(m, t): return m.p_buy[t] pv[t] (-m.p_sto[t] if m.p_sto[t].value is None else 0) (-m.p_ev[t] if m.p_ev[t].value is None else 0) - load[t] 0 # 说明这里为了展示省略了储能和EV放电时的符号细节实际请按完整表达式书写 m.P_balance_full pyo.Constraint(T, rulelambda m, t: m.p_buy[t] pv[t] (-m.p_sto[t]) (-m.p_ev[t]) - load[t] 0) m.soc_sto_end_c pyo.Constraint(exprm.soc_sto[T[-1]] soc_sto_end) def objective(m): return sum(buy_price[t]*m.p_buy[t] for t in T) m.obj pyo.Objective(ruleobjective, sensepyo.minimize) solver pyo.SolverFactory(glpk) result solver.solve(m) m.display()这只是一个最小示例真正工程里要加入离散变量、爬坡约束、分时电价切换还要处理储能功率正负号与SOC公式的一致性问题。上面代码里功率平衡约束的写法在完整模型里要非常小心储能充电时功率为正、放电时为负等式左边写成加负号很容易搞混我建议做单元测试验证功率流向。4.3 典型算例参数表与结果分析框架我自己验证模型时常用一个包含40辆EV、1.5 MW光伏、800 kWh储能的园区微网算例。关键参数用一个表格列出来。参数名数值光伏容量1.5 MW储能容量/功率800 kWh / 200 kWEV数量40 辆EV电池总容量约 280 kWh单桩充电功率7 kWV2G放电功率max 5 kW/辆日前电价范围0.3~1.0 元/kWhEV日最低充电需求总约 240 kWh离网目标SOC85%~95%对比场景设为三种一是无序充电EV到家立即满功率充电二是有序充电EV参与日前和日内优化但只能单向充电三是V2G模式EV可以双向参与系统调节。结果通常呈现这样的规律无序充电场景下系统购电成本最高且晚间负荷出现明显尖峰有序充电场景下电动汽车充电时段向光伏午间和电网夜间低谷转移购电成本下降10%到18%V2G模式下午间光伏大发时EV充电、晚间峰时部分EV放电进一步降低峰值购电但放电过程会产生老化成本所以净收益是否提升取决于放电补偿机制。我测试中在峰谷价差超过0.6元/kWh时V2G才能显著体现经济性。4.4 多时间尺度模型的效果怎么评价评价一个多时间尺度模型的优劣不能只看总成本这一个指标。我通常额外看三个指标第一是日前计划执行偏差率也就是当日实际功率与日前计划功率之间的累计偏差这个值越小说明模型的预测与滚动修正配合越好第二是EV用户满意度也就是所有车辆离网时达到目标SOC的比例这个指标必须高于95%否则再便宜的运行成本也没有意义第三是设备动作次数储能和V2G充电桩如果频繁切换充放电状态会严重影响使用寿命所以我会统计每台设备全日充放转换次数并通过设置最小持续时间约束来控制。5. 实际跑模型中躲不开的坑与排查技巧5.1 整数变量爆炸导致求解卡死多时间尺度模型叠加精确储能、机组、EV的启停状态后0/1变量数量很容易达到上千个。遇到这种情况我一般做三件事把EV按功率等级聚合成2到3个等效机组减少决策变量把最小启停时间的整数约束改用线性化近似对非关键时段比如夜里负荷低的4个小时放宽时间分辨率从1小时改为2小时。这三招通常能把求解时间从几个小时压到十几分钟。5.2 EV时序数据不完整怎么办现实中EV到达时间、离开时间、初始SOC很难全部拿到。没有这些数据模型就会变成空中楼阁。我的做法是先用历史充电记录按工作日/休息日、早晚高峰分类统计出每小时的接入概率分布再按概率抽样生成一批典型场景。如果要做严谨一点的方案可以引入场景法或机会约束规划但刚起步时我更建议直接把多组抽样场景跑一遍取期望值代码简单且结果就足够稳健。5.3 滚动优化结果振荡刚开始做MPC时遇到过一种情况日内层每15分钟滚动一次但求出的EV功率指令像锯齿一样上下跳动储能也在充放电之间频繁切换。问题出在惩罚系数和预测时域配置不合理。我的排查顺序是先看预测时域是否太短再看有无对相邻时段功率变化加惩罚最后检查目标函数是否有多个局部最优点被求解器来回反复选择。解决手段是加一个调节增量惩罚也就是在目标函数中加入相邻时段功率变化量的二次项让模型尽量平滑输出。5.4 功率平衡等式怎么老是差一点这个坑很经典。储能和EV的充电效率不一致充电时能量流入电池有损耗放电时能量流出也有损耗。如果模型中充放电采用同一个效率系数SOC动态方程和功率平衡方程就会在能量守恒上对不上导致仿真电量凭空消失。我后来把充放电效率分开建模并保证电池侧功率与电网侧功率的换算一致这个偏差就消失了。5.5 求解结果有悖直觉时先查参数边界模型跑出一个结果某辆EV在接入后10分钟就放电然后充电再放电来回折腾。这明显不符合用户预期。检查后发现的根因是电池老化成本设得太低模型觉得来回折腾的损失可以忽略就疯狂套利。把老化成本系数提高三倍后结果就正常了。如果你也遇到结果看着很聪明但实际不可能的情况先检查是否有哪个约束边界设得太宽松。6. 下一步扩展方向与我的最终感受6.1 从单微网到多微网与配电系统这套模型在单微网里能跑顺之后进一步可以扩展的方向有几个。一个是把配电网的潮流约束加进来用DistFlow线性化模型改成二阶锥规划这样可以分析EV大量充电导致的节点电压偏压和线路阻塞问题。另一个是扩展到多微网互联场景让相邻微网之间通过EV这个移动储能交换功率相当于把电动汽车的移动性也纳入调度这个方向很有前景但建模复杂度会高出一个数量级。6.2 考虑EV移动性的时空联合调度很多模型只考虑EV在微网内的充放电行为忽略了它的移动属性。实际上车辆在A微网充完电开到B微网放电这就是一种时空能量搬运。要建模这种场景需要把交通路网、出行链、充电导航和微网调度耦合在一起。这个方向我还在探索目前的感受是如果能把EV的行驶耗电量、出行时刻和路径选择都纳入预测模型对城市级虚拟电厂的支撑价值会明显提升。6.3 我个人在这个项目中使用模型的最大体会做完整套多时间尺度调度我最直观的感受是不要盲目堆智能算法先把物理约束和业务约束问明白。很多人一上来就上强化学习、粒子群结果连储能SOC的状态转移都没算对后面一切优化都没有意义。对我来说这个模型的关键并不是EV有多智能、算法有多花哨而是把车主什么时候需要车、需要多少电、电池能承受多少次折腾这三件最基本的事情用数学约束表达清楚多时间尺度框架只是让这些约束在正确的信息粒度上被满足。另一个体会是EV灵活性的价值被很多仿真高估了。真正常规可调度的EV占比远低于理论值因为大量车主不签约V2G、不愿意把电池交给系统调度。在模型里加一个参与率系数比如只有60%的EV参与有序充电、30%参与V2G结果会诚实很多。做项目汇报时这种保守的假设虽然少了些亮点但更能经得起实际运行检验。最后分享一个小技巧调度模型的调试阶段强烈建议做一个全部固定为零的基线场景也就是把所有灵活性资源都禁掉只允许从电网买电满足负荷然后逐步放开储能、再放开EV有序充电、最后放开V2G。每一步的结果都在预期之内模型本身有没有写错就能第一时间暴露比一次性搭好再痛苦地排查舒坦得多。多时间尺度协调调度从来不是一锤子买卖先把基线跑稳后面才有资格谈优化和收益。
返回列表