事件驱动优化:现实场景举例

本文为 事件驱动优化 举一个 能源互联网 的例子(搬运自这篇综述)。

1 场景

  • 问题概述:
    • 建筑微电网中,分布式风力发电 供给 电动汽车充电,这样的协调优化问题。
    • 电动汽车停在建筑停车场 一段时间(已知),建筑用风电 / 常规电网为它充电,希望充电后的电量能撑过 下一段行程(已知)。
    • 风电免费,如果风电没法 cover 电动汽车充电需求,则使用收费的常规电网充电。
  • 优化目标:尽可能少利用 电网的常规发电。
  • 问题详述:
    • 系统在 t 时刻的状态: St=[Wt,Etn,Ltn]  (n=1,2,...,N) ,其中 Wt 表示 t 时刻的风电发电功率,Etn 表示电动汽车 n 当前剩余的充电需求(为满足下一次出行,最少需要再充多少),Ltn 表示电动汽车 n 当前剩余停车时间(距离下一次离开还有多久)。
    • 决策变量 / action:假设充电功率恒定 P = 1kW,我们需要决策 每时刻 每辆车 充或不充,因此 t 时刻的行动可表示为 At=[at1,at2,,atN],其中 at ∈ {0, 1}(决策的离散时间间隔 ∆t = 30mins)。
    • 目标函数:总充电费用,J=E[t=1Tft(St,At)],其中 ft(St,At)=Ctmax(PtWt, 0) 为电网买电费用,Ct 是电网电价。

2 事件驱动建模

  • 事件定义:
    • 第一类:风力发电水平切换。
      • e0(k0)={St1,St | Wt1[k0P,(k0+1)P), Wt[k0P,(k0+1)P)},其中 k0=0,1,,(N1),共 N 个事件。即,上一时刻电量不在 [kP, (k+1)P) 区间,这一时刻变到了该区间。
      • e0(N)={St1,St | Wt1[NP,), Wt[NP,}。即,上一时刻电量 ≤ NP,这一时刻电量>NP。
      • 这个事件定义 类似状态定义,仅根据变化后的状态,定义 o(n) 个事件。但也与状态不同,只有从其他状态 j 变到 状态 i 才会触发事件 i。
    • 第二类:电动汽车 n 的充电需求。
      • en(1)={St1,St | Et1n<Lt1nP, Etn=LtnP, Ltn>0}。即,上一时刻(如果所有时间都充电)时间富裕,但这一时刻(所有时间都充电)时间刚好够用。(剩余需充电量均不为零,剩余时间均不为零)
      • en(2)={St1,St | Et1n>0, Lt1n>0, Etn=0, Ltn>0}。即,从 未充满状态 变到了 充满状态()。(剩余时间均不为零)
      • en(3)={St1,St | Lt1n>0, Ltn=0}。即,车辆 n 停车完毕,该离开了。
      • 1 2 3 这三个事件是互斥的。
    • 第一类 第二类事件可能同时发生,因此定义 3^N * (N+1) 个互斥的事件,第一项为 N 辆车 每辆车都可能处于 3 种事件之一,第二项为风力发电水平的 N+1 个事件。
  • 实验验证:
    • 详见综述原文第 7 页。
    • outperform 了贪婪策略(到达后就开始充电,直到最小充电需求满足,然后停止),同时决策次数也变少了(真的变少了吗?)
  • 优化方法:
    • 综述里没有写,是我个人的猜想:
    • 本文第二部分 的 ε-greedy 策略,一直跑模拟器 / 直接拿概率算期望,计算 Q 因子。
    • 策略更新:取令 Q 因子 argmax 的 action 作为新 action;或者,如果 (3)式 不满足(并且不能强行假装满足),根据策略梯度 搜索局部最优策略。

返回目录→

本文作者:MoonOut

本文链接:https://www.cnblogs.com/moonout/p/16315330.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   MoonOut  阅读(164)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 Sibelius: Violin Concerto in D Minor, Op. 47:III. Allegro, ma non tanto Jascha Heifetz / Chicago Symphony Orchestra
Sibelius: Violin Concerto in D Minor, Op. 47:III. Allegro, ma non tanto - Jascha Heifetz / Chicago Symphony Orchestra
00:00 / 00:00
An audio error has occurred.