matlab & yalmip在微电网优化调度中的应用(二)——蓄电池的SOC

查看蓄电池的SOC

荷电状态(state of charge, SOC)定义为当前的蓄电池剩余容量与额定容量的百分比。
比如:假设蓄电池的额定容量为200kWh,初始状态为100kWh,初始SOC就是50%。第1个小时内蓄电池出力60kW,剩余100-60 = 40kWh,那么SOC就变为了20%。

第一个想法

  • 当前能量 = 上个小时的能量 - 蓄电池出力
  • SOC = 当前储能/额定容量

基于这个想法设计程序:

EBa1 = 100;
EBae = 200;
EBa = EBa1 * ones(1,T);
for i = 2:T
    EBa(i) = EBa(i-1) - P(2,i-1);
end
SOC = EBa/EBae;

运行时报错:

错误使用 - (第 42 行)
Adding NaN to an SDPVAR makes no sense.

出错 MG_2_0223 (第 43 行)
EBa(i) = EBa(i-1) - P(2,i-1);

第二个想法

于是就有了第二个想法:

  • 每个时刻的SOC = 当前时刻的能量 / 额定容量
  • 当前时刻的能量 = 初始容量 - 到当前时刻为止蓄电池的出力
    基于第二个想法设计程序:
EBa1 = 20;
EBae = 200;
for i = 1:T
    SOC(i) = (EBa1-sum(P(2,1:i)))/EBae;
end

其中,SOC(i)代表ih末蓄电池的SOC。
由此可以得到按照(一)中优化结果运行时,Ba的SOC变化情况:
在这里插入图片描述
可以发现,24h末SOC已经到了-5到-6之间,表明释放了5~6个电池的额定容量。这是因为不断地释放能量耗尽了蓄电池可以储存的能量。所以我们必须加上SOC限制。

给蓄电池加上SOC限制

有了上一步的基础,我们可以很容易地添加SOC的限制:

SOC上下限限制

SOC_min = 0.1;
SOC_max = 0.9;
for i = 1:T
   Constraints = [Constraints; SOC_min <= SOC(i) <= SOC_max];
end

SOC末态限制

Constraints = [Constraints;SOC(T) >= EBa1/EBa2];

结果与分析

于是加入SOC限制之后,在新的优化结果以及Ba的SOC变化如下:
在这里插入图片描述
在这里插入图片描述
可以发现,SOC在规定的范围内(0.1~0.9)内变动,符合实际情况。随着SOC限制的加入,目标函数也从(一)中的-731.11变为了-458.35。这表明条件更严格的情况下最优结果的成本升高了。

还可以发现一个有趣的现象:当前得到的结果中G保持着最大出力,这并不奇怪,回顾(一)中的参数设置(线性简化):

KG = 0.3;
KBa = 0.2;
Kgrid = 0.5;

卖电的收益高于G发电的成本,高于Ba的消耗。 所以G和Ba会尽可能地发电/放电然后去卖电——除非冗余电量超过了传输功率上限,G才会减少发电——于是在Ba放电受到SOC限制后,G会尽可能地发电。
这也表明了我们的成本参数设置可能不符合实际。

注:参数更改

相比于(一)中有部分参数更改

PG_min = 0;PG_max = 50;
dPG_min = -40;dPG_max = 40;
PBa_min = -30;PBa_max = 100;
Pgrid_max = 160;Pgrid_min = -160;

数据来自:[1]王腾超. 含微电网的配电网日前能量优化[D].山东大学,2020.DOI:10.27272/d.cnki.gshdu.2020.006084.

  • 8
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值