电力调度优化理论与应用例题代码(2)

P39 适应节能环保需求的经济调度扩展模型

例3-2

K=[
0.455600280000000	0.492360000000000	0.527360000000000	0.562360000000000
0.456000000000000	0.508000000000000	0	0
0.458000000000000	0.502000000000000	0.548000000000000	0]
cons=[];
load K;
% 行:机组阶段出力,列:时段
x=sdpvar(2,9);

%耗煤量(吨/小时)与功率(千瓦时/小时,即千瓦)有线性关系
F_G1_1=41+K(1,1)*x(1,1)+K(1,2)*x(1,2)+K(1,3)*x(1,3)+K(1,4)*x(1,4);
F_G1_2=41+K(1,1)*x(2,1)+K(1,2)*x(2,2)+K(1,3)*x(2,3)+K(1,4)*x(2,4);

F_G2_1=47.2+K(2,1)*x(1,5)+K(2,2)*x(1,6);
F_G2_2=47.2+K(2,1)*x(2,5)+K(2,2)*x(2,6);

F_G3_1=58.6+K(3,1)*x(1,7)+K(3,2)*x(1,8)+K(3,3)*x(1,9);
F_G3_2=58.6+K(3,1)*x(2,7)+K(3,2)*x(2,8)+K(3,3)*x(2,9);
%各机组的时段总出力
P1_1=100+x(1,1)+x(1,2)+x(1,3)+x(1,4);
P1_2=100+x(2,1)+x(2,2)+x(2,3)+x(2,4);
P2_1=120+x(1,5)+x(1,6);
P2_2=120+x(2,5)+x(2,6);
P3_1=150+x(1,7)+x(1,8)+x(1,9);
P3_2=150+x(2,7)+x(2,8)+x(2,9);

%% 目标函数:购电成本最小:各机组的购电成本之和
% 目标函数:购电成本=煤价*总耗煤量
y=500*(F_G1_1+F_G1_2)+550*(F_G2_1+F_G2_2)+600*(F_G3_1+F_G3_2);
%% 约束条件
% 时段功率平衡
cons=[cons,P1_1+P2_1+P3_1==700];
cons=[cons,P1_2+P2_2+P3_2==500];
%时段区间功率约束
for i=1:2
    cons=[cons,0<=x(i,1)<=25];
    cons=[cons,0<=x(i,2)<=25];
    cons=[cons,0<=x(i,3)<=25];
    cons=[cons,0<=x(i,4)<=25];
    cons=[cons,0<=x(i,5)<=100];
    cons=[cons,0<=x(i,6)<=30];
    cons=[cons,0<=x(i,7)<=50];
    cons=[cons,0<=x(i,8)<=50];
    cons=[cons,0<=x(i,9)<=50];
end



%下爬坡约束
cons=[cons,-50<=P1_2-P1_1];
cons=[cons,-60<=P2_2-P2_1];
cons=[cons,-150<=P3_2-P3_1];

%煤耗约束:第一小时内第一台机组煤耗不超过70t
cons=[cons,F_G1_1<=70];

%so2约束:总排放量
SO2=0.02*(F_G1_1+F_G1_2)+0.015*(F_G2_1+F_G2_2)+0.01*(F_G3_1+F_G3_2);
cons=[cons,SO2<=8];

ops=sdpsettings('solver','gurobi','showprogress',1);
z=optimize(cons,y,ops);
x=double(x)
y=double(y)
if z.problem==0
    -value(y)
else
    disp('something wrong!');
end

P41 计及网络安全约束的经济调度模型

例3-5

K=[
40	50	57.5000000000000
43.7500000000000	46.2500000000000	48.7500000000000
55.8000000000000	57	58.2000000000000]
cons=[];
% 行:机组阶段出力,列:时段
load K;
x=sdpvar(1,9);

%耗煤量(吨/小时)
F_G1_1=3300+K(1,1)*x(1,1)+K(1,2)*x(1,2)+K(1,3)*x(1,3);
F_G2_1=4225++K(2,1)*x(1,4)+K(2,2)*x(1,5)+K(2,3)*x(1,6);
F_G3_1=2910+K(3,1)*x(1,7)+K(3,2)*x(1,8)+K(3,3)*x(1,9);

%各机组的时段总出力
P1_1=100+x(1,1)+x(1,2)+x(1,3);
P2_1=100+x(1,4)+x(1,5)+x(1,6);
P3_1=50+x(1,7)+x(1,8)+x(1,9);
%% 目标函数:购电成本最小:各机组的购电成本之和
% 目标函数:购电成本
y=F_G1_1+F_G2_1+F_G3_1;
%% 约束条件
% 时段功率平衡
cons=[cons,P1_1+P2_1+P3_1==800];

%时段区间功率约束
    cons=[cons,0<=x(1,1)<=200];
    cons=[cons,0<=x(1,2)<=200];
    cons=[cons,0<=x(1,3)<=100];
    cons=[cons,0<=x(1,4)<=100];
    cons=[cons,0<=x(1,5)<=100];
    cons=[cons,0<=x(1,6)<=100];
    cons=[cons,0<=x(1,7)<=50];
    cons=[cons,0<=x(1,8)<=50];
    cons=[cons,0<=x(1,9)<=50];

%安全约束
SF=[0 -2/3 -1/3
    0 -1/6 -1/3
    0 1/3 -1/3];

P3=P3_1-800;


cons=[cons,(P1_1*SF(1,1)+P2_1*SF(1,2)+P3*SF(1,3))<=300];
cons=[cons,(SF(2,1)*P1_1+SF(2,2)*P2_1+SF(2,3)*P3)<=300];
cons=[cons,(SF(3,1)*P1_1+SF(3,2)*P2_1+SF(3,3)*P3)<=330];

ops=sdpsettings('solver','gurobi','showprogress',1);
z=optimize(cons,y,ops);
x=double(x)
y=double(y)
if z.problem==0
    -value(y)
else
    disp('something wrong!');
end

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值