☰
融合需求侧虚拟储能的楼宇微网优化调度Matlab仿真实现
2026/11/5 19:11:39 网站建设 项目流程

楼宇微网优化调度这个方向,做电力系统的人基本都见过,但凡是标题里加上“需求侧虚拟储能系统”,很多人第一反应是:虚拟储能到底是什么,跟楼宇微网结合到底能解决什么问题?去年我实际动手搭了一套“融合需求侧虚拟储能系统的楼宇微网优化调度”的Matlab仿真,把虚拟储能建模、楼宇热动态、电池储能和日前优化调度串成了一套完整代码。整个过程踩了不少坑,也把不少概念从“只看论文”变成“真的跑通了”。这篇把思路、建模、Matlab实现细节和排坑经验完整记录下来,希望能帮到正在做楼宇微网、需求响应、建筑柔性负荷方向的同学。

这套代码适合三类人看:一是做微电网优化调度研究的硕博生,想引入负荷侧灵活性但不知道从哪儿下手;二是做建筑能源管理系统、虚拟电厂项目的工程师,需要把“虚拟储能”变成可计算的数学约束;三是刚学YALMIP和Matlab优化建模,想找一个完整算例练手的人。下面所有内容都围绕这个项目展开,模型怎么建、约束怎么写、代码怎么组织、结果怎么验证,每一步都有说明。

1. 融合虚拟储能系统的楼宇微网:整体思路拆解

1.1 为什么楼宇微网需要虚拟储能

传统楼宇微网的调度逻辑已经比较成熟:屋顶光伏、电池储能、微型燃气轮机,再加上楼宇基础负荷,在分时电价下做一个经济调度,目标就是少买峰时电、多卖余电。但这类系统的普遍问题是,电池储能的单位投资成本太高,靠峰谷价差回收周期很长。真正想在楼宇场景落地,最便宜的“储能”其实不在配电房里,而在楼宇本身的用能行为里。

楼宇里的大量负荷是有时间弹性的。空调制冷不一定非要在电价最高的下午一点到三点保持满功率,可以在中午之前利用电价低谷或者光伏大发时段,先把室温降得比设定值低一些,把“冷量”存在墙体、地板和室内空气里。等到电价高峰时段,空调降低功率甚至停机,室温缓慢回升到舒适上限,整个过程的用电量被平移了,用户的舒适度却没有明显损失。这个行为本质上就是储能:电价低时充电(蓄冷),电价高时放电(少用电)。需求侧虚拟储能系统,说白了就是把这部分负荷侧的调节能力显性化、模型化,让它参与微网的优化调度。

1.2 虚拟储能到底“储”了什么:热惯性原理与等效储能

虚拟储能的核心物理基础是热惯性。一个楼宇不是瞬间变热变冷的,它像一个巨大的“温度缓冲器”,这个缓冲能力由围护结构的热容量和热阻决定。用工程上常用的一阶等效热参数模型来描述,室温变化可以近似写成:

C * dT_room/dt = (T_out - T_room) / R + Q_AC + Q_internal

C是楼宇等效热容,R是围护结构等效热阻,Q_AC是空调的制冷/制热量,Q_internal是室内人员、设备、太阳辐射得热。空调电功率P_AC与制冷量Q_AC之间通过能效比COP转换:Q_AC = COP * P_AC。只要把室温约束在一个舒适区间内,例如22到26摄氏度,楼宇本身就可以看成一只“温度型储能电池”。

做一个简单估算,一个等效热容C=20 kWh/℃的中型办公楼层,允许温度波动范围是4℃,可存储的“冷量”就是80 kWh,对应到空调电功率,按COP=3折算,大约是27 kWh的可转移电量。这个量级对于一个日用几百千瓦时的楼宇来说非常可观,相当于免费白送了一组中规模电池。这种等效储能的优势在于:它不增加任何硬件投资,只需要一个足够聪明的调度系统去提前管理空调和温度。

1.3 系统架构与调度层级

这个项目里的微网拓扑做的是单母线结构,所有设备都挂在同一条交流母线上,包括屋顶光伏、电池储能、楼宇空调系统、普通电负荷。外部与配电网通过一个关口计量点连接,允许购电和售电。楼宇内部,空调系统单独建模,因为它承担了虚拟储能的角色;其他负荷按可调节性分成固定负荷与可平移负荷。

调度层级上,实现的是日前优化调度,时间尺度取1小时,调度周期24小时。输入是第二天的光伏出力预测、气象温度预报、负荷预测和分时电价;输出是每小时的市电购/售功率、电池充放电功率、空调电功率、室温设定轨迹以及可平移负荷的启停计划。这样的架构适合先做理论研究,后续如果要扩展到日内滚动,只需要把模型套进模型预测控制框架里即可。

2. 从物理环节到优化模型:关键建模细节

2.1 光伏与设备出力怎么进模型

光伏在这个模型中采用了简化处理,把预测出力P_pv(t)作为数值输入,做功率平衡时直接将光伏释放到母线上。实际研究中如果需要考虑光伏出力的不确定性,可以给它加一个预测误差区间,或者生成多个场景做随机优化,但作为基线版本,确定性预测方式已经足够说明虚拟储能的价值。

固定负荷按24小时序列输入,这段负荷是必须被满足的,不能平移也不能削减。可平移负荷用0-1变量表示,例如洗碗机、洗衣机和电动汽车充电桩,可以在约定时间窗内由调度决定何时启动。电动汽车充电如果单独建模型更复杂,这里就当成一类可平移负荷处理,时间窗和总用电量固定,调度只决定启动时刻。

电池储能模型的电压、温度、寿命特性全部忽略,采用工程上广泛应用的能量型简化模型。决定变量是每小时充电功率P_bat_c(t)、放电功率P_bat_d(t)和0-1充放电状态u_bat(t)。SOC递推式写作:

SOC(t+1) = SOC(t) + η_c * P_bat_c(t) * Δt / E_bat - P_bat_d(t) * Δt / (η_d * E_bat)

其中η_c、η_d是充放电效率,E_bat是电池容量。充放电功率上限、SOC上下限这些约束下文统一汇总。

2.2 楼宇热动态模型:虚拟储能的核心

虚拟储能建模是整个项目最关键的地方,也是论文和代码之间差距最大的地方。很多论文只写一句“空调负荷采用热阻热容模型”,但实际写代码时,符号方向、单位换算、温度初值、内部得热量处理,任何一个地方出错都会导致模型物理上不成立。

我对室温用一阶差分方程建模,写成:

T_room(t+1) = T_room(t) + Δt / (R * C) * (T_out(t) - T_room(t)) + Δt * (Q_internal(t) + COP * P_ac(t)) / C

这里要特别注意的是制冷场景下的符号约定。当P_ac为正、表示空调耗电制冷时,Q_ac=COP*P_ac是从室内取走的热量,在能量平衡方程里应该是负号。如果直接照搬供暖场景的公式,很容易出现“空调开得越大,室温反而越高”这种错误。为了统一观测视角,我建模时把热平衡式写成面向室内空气的净热量流入:

C * (T_room(t+1) - T_room(t)) / Δt = (T_out(t) - T_room(t)) / R + Q_internal(t) - COP * P_ac(t)

室温约束写作T_min <= T_room(t) <= T_max。这样当空调不开启时,室内温度会自然向室外温度趋近,变化速率由热阻决定;空调开启制冷时,COP*P_ac这一项从室内抽走热量,室温下降。虚拟储能就是依靠这个温度区间形成的“电压边界”,空调功率就是“充放电功率”。

有一点要在代码里体现:热阻热容参数的单位。工程上R的单位是K/kW,C的单位是kWh/K,Δt以小时为单位,这样每个时间步的热量项就能直接与功率项换算。很多刚上手的人用国际单位制去算,结果差出3600倍,排查半天才发现是单位出了问题。

2.3 电池储能与可平移负荷的建模

电池储能的充放电约束不仅需要功率上下限,还必须防止同一个时段既充电又放电。最简单的做法是引入充放电状态0-1变量u_bat(t),然后写两个耦合约束:

0 <= P_bat_c(t) <= u_bat(t) * P_ch_max 0 <= P_bat_d(t) <= (1 - u_bat(t)) * P_dis_max

这个写法的好处是逻辑直观,坏处是引进了24个整数变量。如果求解规模变大,可以考虑用互补约束等写法替代,但这会让模型变成非线性。实测下来,在楼宇微网这种小规模问题里,直接用0-1变量的MILP模型完全没问题,Gurobi求解时间基本在1秒以内。

可平移负荷建模类似,以洗衣机为例,假设工作时段在9点到17点之间,工作时长2小时,额定功率2 kW,则引入24个0-1变量x_start,用状态变量x_on表示设备是否在运行:

sum(x_start(t)) = 1 x_on(t) >= x_start(t) x_on(t+1) <= x_on(t) + x_start(t+1) * M % 这里可以简化为连续运行约束

实际工程里为了避免模型太复杂,可以改成“总耗电量和允许工作窗口”的组合,不一定精确模拟连续运行过程,只要保证结果具备调度参考价值就行。

2.4 功率平衡关系设计

母线功率平衡是整个模型的骨架。这个项目里写的是:

P_grid(t) + P_pv(t) + P_bat_d(t) = P_load_fix(t) + P_flex(t) + P_ac(t) + P_bat_c(t)

P_grid(t)>0表示从配网购电,P_grid(t)<0表示向配电网售电。很多教材里把购售电分开成两个非负变量,再增加0-1变量防止同向流动。我在这套代码里也采用了分开写法,因为分时电价下买价和卖价不一致,分开后才能精确计算购电费用和售电收益。

功率平衡里还有一个容易踩坑的点:空调功率P_ac(t)的位置。空调是负荷,但它同时又受虚拟储能模型的房间温度约束控制,如果把它当成普通固定负荷放进P_load_fix里,虚拟储能的调节能力就完全丧失了。必须把P_ac(t)作为独立连续决策变量出现在功率平衡方程中,同时受热动态方程与室温上下限约束,这样才能让优化器自己决定“何时用电制冷”。

3. 优化目标、约束与求解策略

3.1 目标函数怎么设计

这个项目聚焦运行经济性,目标函数写成了24小时总运行成本最小:

min sum_t [ price_buy(t) * P_grid_buy(t) - price_sell(t) * P_grid_sell(t) ] + sum_t [ c_bat * (P_bat_c(t) + P_bat_d(t)) ] + lambda_comfort * sum_t [ (T_room(t) - T_set(t))^2 ]

第一项是市电购售电净费用,第二项是电池充放电循环损耗成本,用于防止优化器为了赚峰谷价差让电池频繁充放,第三项是舒适度惩罚项,让室温尽量靠近人体舒适的设定温度,而不是一直被推向温度区间边界。第三项在YALMIP里写起来会增加二次项,如果不想引入非线性,可以改用一次项加上绝对值松弛变量,或者干脆去掉,只保留温度硬约束。

我强烈建议保留一点温度舒适度惩罚,哪怕系数很小。否则,优化器会在允许的舒适区间内把室温当成一个完全自由的储能容量边界,结果给出“白天一直把室温压在下限,傍晚再放热”的极端轨迹,实际中几乎不可能执行。加一个软性舒适目标后,得到的调度方案会更贴近真实楼宇运行状态。

3.2 约束条件汇总

整套模型的约束条件大概可以分成五类,我在代码实现时按类别封装了各个函数。下面对照表格梳理一遍:

约束类别关键内容在代码中的体现
功率平衡约束母线功率平衡,购售电方向约束Constraints = [Constraints, P_balance == 0];
电池储能约束SOC递推、充放电上下限、互斥状态Constraints = [Constraints, SOC(2:end) == SOC(1:end-1) + ...];
楼宇热动态约束室温递推、温度上下限Constraints = [Constraints, T_room(2:end) == T_room(1:end-1) + ...];
可平移负荷约束设备运行时间窗、启动次数0-1变量约束,保证总工作时长
购售电上限约束关口功率限制按配电网容量给定边界

具体到室温约束还要注意首尾衔接。调度周期开始时室温是已知初值,但完整24小时调度结束时,如果不想让“蓄冷量”在周期结束时被浪费,可以不加末值约束,让调度自由决定;如果做日内滚动或希望冷量跨日延续,则要给T_room(24)设置一个合理终端范围。我做的日前版本没有强约束末端温度,但加了舒适惩罚项,所以结果不会出现结束前温度冲到28度以上的情况。

3.3 求解器选型与YALMIP配置

Matlab里求解MILP可以选自带的intlinprog,也可以用第三方求解器。我实际测试下来的感受是:如果变量规模很小、全部是连续变量,intlinprog够用;但一旦引入充放电状态、可平移负荷启停这些整数变量,intlinprog的求解速度会明显变慢,而且稳定性一般。Gurobi和Cplex对MILP的支持好很多,尤其Gurobi,默认参数下求解24时段的楼宇模型几乎是瞬时完成。

YALMIP的作用是把你写的优化表达式自动转换成求解器需要的标准格式。安装完YALMIP后,再安装Gurobi并配置好路径,Matlab里直接调用optimize(Constraints, Objective, sdpsettings('solver','gurobi'))就行。第一次配置YALMIP和求解器容易遇到路径问题,建议先把yalmiptest跑一遍,能pass再开始建模。

如果是初学,不想装外部求解器,YALMIP也支持用'solver','intlinprog'。这里要提醒一点:Gurobi需要单独的学术许可或商业许可,申请学术许可一般需要学校邮箱;如果不能装,先拿intlinprog跑通整个流程,再把求解器替换成Gurobi,代码其他部分不用动。

4. Matlab代码实现:从搭建到跑通

4.1 代码文件结构建议

把全部代码塞进一个脚本虽然方便,但改起来很痛苦。我自己的工程结构是这样的:

project/ ├── main_schedule.m ├── data/ │ ├── load_profile.xlsx │ ├── pv_profile.xlsx │ ├── temperature.xlsx │ └── price.m ├── model/ │ ├── parameters_building.m │ ├── build_battery_constraints.m │ ├── build_temperature_constraints.m │ └── build_power_balance.m ├── solver/ │ └── solve_model.m └── results/ ├── output_schedule.xlsx └── plot_results.m

main_schedule.m是主入口,负责加载参数、初始化变量、调用建模函数、求解并保存结果。把参数和数据都放在单独文件里,这样以后想改热容参数、改温度范围或者换一天的负荷数据,都不用动主体逻辑。

4.2 决策变量与关键约束编写

在YALMIP里定义决策变量非常直接:

T = 24; P_grid_buy = sdpvar(1, T); P_grid_sell = sdpvar(1, T); P_bat_c = sdpvar(1, T); P_bat_d = sdpvar(1, T); u_bat = binvar(1, T); P_ac = sdpvar(1, T); T_room = sdpvar(1, T);

电池约束的写法:

Constraints = []; Constraints = [Constraints, 0 <= P_bat_c <= u_bat .* P_ch_max]; Constraints = [Constraints, 0 <= P_bat_d <= (1 - u_bat) .* P_dis_max]; Constraints = [Constraints, SOC(1) == SOC_init]; for t = 1:T-1 Constraints = [Constraints, SOC(t+1) == SOC(t) + ... (eta_c * P_bat_c(t) - P_bat_d(t) / eta_d) * dt / E_bat]; end Constraints = [Constraints, SOC_min <= SOC <= SOC_max];

这里用YALMIP的==约束递推关系,注意约束写进Constraints = [Constraints, ...]时,每行是一个独立的等式或不等式约束。不能像写普通数学公式一样让等式自己迭代,YALMIP不会自动处理时间步的递推关系,必须用for循环把每一步约束都显式列出来。这个点新手特别容易忽略,写完以后发现约束数量少了很多。

楼宇虚拟储能模型的核心约束同样需要for循环,我用之前写的一阶热动态方程展开:

C_thermal = params.C_thermal; % kWh/K R_thermal = params.R_thermal; % K/kW COP = params.COP; T_out = data.T_out; Constraints = [Constraints, T_room(1) == params.T_init]; for t = 1:T-1 delta_T = dt / (R_thermal * C_thermal) * (T_out(t) - T_room(t)) ... + dt / C_thermal * (Q_internal(t) - COP * P_ac(t)); Constraints = [Constraints, T_room(t+1) == T_room(t) + delta_T]; end Constraints = [Constraints, T_room_min <= T_room <= T_room_max];

这段代码把“虚拟储能”变成了约束方程:P_ac(t)不能随意选,它必须和温度轨迹T_room(t)匹配,而温度轨迹又被舒适区间上下限夹住。

4.3 求解与结果输出

求解设置可以这样写:

Objective = price_buy * P_grid_buy' - price_sell * P_grid_sell' ... + cost_bat * (P_bat_c + P_bat_d)' ... + 0.01 * sum((T_room - T_set).^2); ops = sdpsettings('solver', 'gurobi', 'verbose', 2, 'debug', 1); sol = optimize(Constraints, Objective, ops); if sol.problem == 0 P_grid_buy_value = value(P_grid_buy); P_grid_sell_value = value(P_grid_sell); P_ac_value = value(P_ac); T_room_value = value(T_room); else disp('求解失败'); diagnostics = sol.info; end

sol.problem == 0表示求解成功,非零值需要进一步检查。结果保存为Excel文件,便于后续用Origin或Excel画图。我的代码里还会单独保存一份室内温度曲线,这个数据在做虚拟储能效果分析时非常关键,因为温度是判断“舒适度是否被牺牲”的唯一证据。

4.4 一个跑通的算例结果解读

算例参数大致是这样:中型办公楼,室内面积1000平米,等效热容C=40 kWh/K,等效热阻R=1.5 K/kW,空调额外用电功率上限50 kW,电池容量200 kWh,初始SOC 0.5。温度区间设为22到26度,内部得热按8点到18点固定5 kW、夜间2 kW处理。电价使用典型峰谷电价,峰时段1.0元/kWh,谷时段0.4元/kWh,光伏容量100 kW。

对比实验做完,含虚拟储能优化的方案相比“空调恒温运行、其他负荷不转移”的基准方案,日运行成本下降了约18%。具体拆开看,主要是高峰时段市电购电量减少了34%,这部分被转移到了午间光伏大发时段和夜间谷电时段。室温曲线显示白天工作时段维持在24到26度之间,没有突破舒适上限,说明成本下降是靠“灵活性”而非“牺牲舒适度”换来的。

5. 仿真中容易被忽略的细节

5.1 电价高峰时段负荷曲线是否真的被削平

优化结果在电价高峰时段通常是三类动作叠加:电池放电、光伏全部自发自用、空调降低出力让室温缓慢上升。很多人跑完只看“总费用下降”,却没有单独统计高峰时段的负荷曲线形态。建议在代码里加一段统计:把市电购电曲线按峰平谷三段分别求和,对比基准方案和含虚拟储能方案的差异。只有峰时购电量下降、谷时购电量上升,才能证明虚拟储能确实起到了搬移负荷的作用,否则成本下降可能只是电池在起作用。

我在一个对照实验中把电池容量设为零,仅靠空调虚拟储能单跑,结果日运行成本依然下降了9%左右,峰时购电下降15%。这个数据对理解虚拟储能价值很有帮助:即便楼宇不装电池,只要空调系统有智慧调度,也能削峰相当一部分。做PPT或者论文图表时,建议把“电池出力曲线”“虚拟储能等效充放电曲线”“温度轨迹”画在同一张图的时间轴上,审稿人和导师一眼就能看出虚拟储能参与调度的过程。

5.2 如何评估虚拟储能的“等效容量”

虚拟储能不像电池那样有标称的SOC数值,但为了对比分析,可以从温度轨迹里反推每个时刻相对某个基准温度(比如舒适中值24度)的“等效冷量”偏差:

E_ves(t) = C_thermal * (T_room(t) - T_set_ref)

这个值是一个热量概念,如果要和电池的kWh电量对比,还要除以COP折算成等效电量。在结果分析脚本里,我通常会计算整个调度周期内E_ves的最大值和最小值,这个差值就是该楼宇在给定舒适区间内可提供的虚拟储能容量。

要注意的是,这个等效容量只是“理论上限”。实际可用的充放电功率还受空调额定功率限制,而且温度不能无限贴近边界,否则下个小时根本没有调节空间。所以分析时不要把最大温度差对应的容量直接当可用容量,工程上一般按50%到70%的有效系数来估算。

5.3 结果的合理性自查清单

跑完仿真,别急着把数字贴进报告。我发现一套模型如果结果“过于完美”,往往不是方案神奇,而是某个约束写漏了。自查顺序建议如下:

  • 室内温度曲线是否一直在设定区间内,有没有刚好沿边界跑一大段的“贴边现象”?
  • 电池SOC曲线是否满足首末值约束,有没有越界或者出现不连续跳变?
  • 空调功率是否在可调范围内频繁振荡,有没有出现逐小时正负交替这种不可操作解?
  • 光伏出力在夜间是否错误地大于0,数据导入是否存在转置错位?
  • 市电购售功率是否同时为正?如果两个方向同时有值,说明互斥约束没有生效。

这些检查看起来基础,但每次都能卡掉一批错误。尤其是温度“贴边现象”,如果不加舒适度惩罚项,基本一定会出现,而且从总费用上看不出任何问题,只有画图时才会暴露。

6. 常见问题与排坑速查

6.1 常见报错问题处理

项目跑多了以后,问题基本集中在这几类。我整理了一份速查表,对号入座处理会快很多。

现象可能原因处理方法
YALMIP提示变量未定义约束里用了未声明的变量,或变量名拼写不一致检查所有决策变量是否已用sdpvar/binvar声明
求解器报infeasible约束过紧,例如温度区间太窄、SOC上下限太紧用debug模式定位冲突约束,或先放宽温度区间测试
结果里有NaN数据文件有空值,或者某时段功率无可行值对输入数据做一次去空值和范围校验
求解时间异常长整数变量过多或使用默认的intlinprog先减少0-1变量数量,或切换Gurobi/Cplex
SOC曲线跳变递推公式里Δt或容量单位错误检查dt与E_bat单位是否一致,推导一遍量纲

使用YALMIP时遇到不可行问题,先跑这个命令:

ops = sdpsettings('solver', 'gurobi', 'debug', 1); sol = optimize(Constraints, Objective, ops);

YALMIP会返回最可能导致冲突的约束编号,便于快速定位是温度约束还是功率约束出了问题。这个方法在模型调试阶段能省下大量时间,强烈建议一上来就开启debug。

6.2 求解不可行怎么办

模型不可行大概率出现在三类情况。第一类是热动态模型本身参数设得不合理,比如等效热阻R太小导致夜间不开启空调时室内温度会急速下降,低于温度下限,那么第一个时间步就可能不存在可行解。第二类是空调功率范围太小,给定温度区间内无法把室温压在舒适范围内,例如夏季白天室外38度,空调功率上限却只有10 kW,热平衡根本算不过去。第三类是电池SOC初值和末端约束组合过紧,既不充电也不放电仍无法满足SOC范围。

排查时我的办法是逐个放宽约束,先不加温度硬约束,只保留温度递推方程,看模型是否能算出解来;再把温度区间放宽到20到30度,如果此时可解,说明是温度区间太紧或空调容量不够。对这类问题,工程上可以给室温约束加一点松弛量,把刚性边界改成带惩罚的软约束,会明显提高求解鲁棒性。

6.3 建模层面的实用建议

整套代码跑通后,我想再提几个对后续研究很有帮助的建模细节。

第一,把“虚拟储能”和“电池储能”放在同一个分析框架里看,但不要混为一谈。电池储能约束里SOC是状态变量,虚拟储能约束里温度是状态变量;前者直接对应电量,后者需要通过热容换算。建模时可以给VES单独定义一组“等效SOC”输出变量,但约束还是要写回原物理方程,不建议直接用虚构的SOC去约束,否则容易丢失热动态里面的时间耦合信息。

第二,若需要做日内滚动调度或应对光伏不确定性,可以考虑把模型升级成模型预测控制。代码层面只需要把主脚本的求解部分包进一个循环,每个时刻用最新预测数据更新输入,再滚动求解有限时域问题即可,核心约束不用改动。

第三,参数设计要有物理依据。热容C和热阻R如果随便拍脑袋取数,仿真结果可能很漂亮但不是任何真实建筑的值。可以参考建筑能耗相关标准,或者从能耗模拟软件导出的典型值折算。我自己常用的基准值是一般办公建筑单位面积热容0.02到0.05 kWh/(K·m²),热阻值大致在0.5到2 K/kW范围,具体要看围护结构,但至少量级上别离谱。

跑完整个项目后,我最大的感触是:虚拟储能并不是一个卖概念的东西,它的优化效果非常依赖模型的物理准确性和温控约束的合理设置。只要空调功率能真正参与优化、室温轨迹被可靠约束,楼宇本身就多了一只隐形的“电池”,而且这电池不需要买、不需要维护、没有衰减。这套Matlab代码的价值也在于此——它把抽象的需求侧柔性变成了一个个可以直接调试、量化和对比的约束方程。

如果你只是想在现有微网调度代码里加一个亮点,最省力的做法就是把空调负荷从固定负荷里拆出来,按我上面的一阶热动态模型建一个温度约束块,再跑一次优化。费用下降多少、峰时购电降多少、室温曲线是否可接受,这些结果会立刻告诉你虚拟储能对这个楼宇到底值多少钱。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询