集中出清规则

输入:

电厂报价报量`arr1[][]`,
用户报价报量`arr2[][]`。
不应该是数组,而应该是一个抽象的数据类型,存有

输出:

出清价格:Price
成交电量对(一个用户可以在多个成交对之中)ResultSet。

算法流程:

0-. 按地区分组
0. 数据有效筛选(购方申报数据筛选和售方数据筛选不一样)

  1. 按照报价排序,电厂升序p1,用户降序p2,相应的报量序列为q1,q2;【价格相同时,售方按照单机容量等级由大到小进行排列】
  2. 得到成交电量对,其中成交电量为q_current = min{q1[0],q2[0]}
  3. 更新p1,p2以及q1,q2.

    从对应的报量序列中减去当前成交的电量q_current,如果报量为0,则将其与对应的报价排序中的元素移除;

  4. 对更新后的序列执行步骤1,直至q1,q2中有一个为空,结束。

可视化

过程可视化?
结果可视化:
图片,表格

编码

其中,不同步骤的数据模型是不一样的,最起码在这里的模型是没有那些成本信息的。
问题在于如何返送回去?
数据进行封装,通过id进行索引。

  1. 基本数据模型:

    抽象父类—–发电商顶级类 —
    |
    —电力用户顶级类—
  2. 代理类:
  3. 封装类:

最终保存的结果【比如一个用户成交了几笔,关联交易表】在entity怎么保存。
交易实体类

广东省的出清

在广东的规则中,对日前市场如何出清是这样描述的:

  “电力调度机构综合考虑发电侧电力报价曲线、用户侧电力需求价格曲线、非市场用户负荷预测、外送受电曲线、A 类机组出力曲线、发电机组检修计划、输变电设备检修计划、发电机组运行约束条件、电网安全运行约束条件等因素,以社会福利最大为优化目标,采用安全约束机组组合(SCUC)、安全约束经济调度(SCED)算法进行集中优化计算,出清得到运行日的机组开机组合以及分时发电出力曲线、售电公司与批发用户分时分节点的中标用电曲线、分时节点电价。”

显示 Gitment 评论