目录
一、按等耗量微增率原则分配发电厂负荷
1.1 算例
某发电厂的机组耗量特性及相关参数见表1,系统给定24小时荷见表2,试按等微增率原则分配该发电厂24小时的负荷。
表1 发电厂的机组耗量特性及相关参数
机组 | a | b | c | Pmin/MW | Pmax/MW |
1 | 0.000786 | 0.27 | 8.00 | 30 | 100 |
2 | 0.000792 | 0.3 | 5.0 | 20 | 80 |
3 | 0.000764 | 0.28 | 6.4 | 25 | 120 |
4 | 0.000270 | 0.2657 | 20 | 50 | 150 |
5 | 0.000424 | 0.308 | 5.8 | 50 | 150 |
6 | 0.001020 | 0.28 | 3.0 | 15 | 60 |
7 | 0.000578 | 0.2529 | 9.8 | 120 | 320 |
8 | 0.000296 | 0.2427 | 16.4 | 75 | 200 |
9 | 0.000254 | 0.2791 | 21.00 | 250 | 520 |
10 | 0.000522 | 0.2700 | 14.40 | 75 | 280 |
表2 系统给定负荷
时间 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
负荷/MW | 1022 | 963 | 978 | 993 | 1037 | 1066 | 1095 | 1124 |
时间 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
负荷/MW | 1138 | 1154 | 1182 | 1197 | 1242 | 1271 | 1314 | 1372 |
时间 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
负荷/MW | 1314 | 1271 | 1285 | 1290 | 1372 | 1459 | 1459 | 1081 |
1.2 原理
我们知道每小时消耗量总和=。
为各发电机组每小时消耗量,同时满足
为各时间段的负荷总量,这就是约束条件。
由此可以建立拉格朗日目标函数。
使消耗量最小化的条件是使L最小化,即对L求偏导=0,推出
其中df/dp即为耗量微增率,所以满足等耗量微增率。又,所以耗量微增率
1.3 编程思路
根据等耗量微增率原则以及总负荷量的约束条件,可列出以下方程式组:
求解上述方程式组可得出P1~P10的初步结果,但由于每台发电机组有最大和最小出力的限制,因此对于上述的初步结果应当进行验证,当1台越限时,用它的边界值代替它的初步结果值,当有多台越限时,首先判断这些越限机组中最大的a值,再取a值最大的机组用它的边界值代替它的初步结果值,从以上可以看出无论1台还是多台越限第一次验证只改变1台越限机组的初步结果,因此将改变初步结果值的越限机组所对应的上述方程改为-bn*Pn/m=-bn,其中m为该机组所对应的边界值,显然Pn即=m,其它方程不变,还是11个方程解11个未知数,求得结果再进行第2次,第3次......反复验证,直到所有发电机组的功率全部在最大和最小出力的限制范围内,最后求出每个小时所对应的所有机组的总消耗量,验证程序结束,最后显示1~24小时内每个时间点的各个发电的出力,等耗量微增率以及总消耗量。
二、按照等报价策略分配负荷
2.1 算例
各发电厂的报价函数及相关参数见表1,系统给定24小时负荷见表2,试按等报价法确定各发电厂24小时的交易计划(出力及价格)。
表1 各发电厂的报价函数系数及技术参数(f=api+b)
电厂 | a | b | Pmin/MW | Pmax/MW |
1 | 0.000786 | 0.27 | 30 | 100 |
2 | 0.000792 | 0.3 | 20 | 80 |
3 | 0.000764 | 0.28 | 25 | 120 |
4 | 0.000270 | 0.2657 | 50 | 150 |
5 | 0.000424 | 0.308 | 50 | 150 |
6 | 0.001020 | 0.28 | 15 | 60 |
7 | 0.000578 | 0.2529 | 120 | 320 |
8 | 0.000296 | 0.2427 | 75 | 200 |
9 | 0.000254 | 0.2791 | 250 | 520 |
10 | 0.000522 | 0.2700 | 75 | 280 |
表2 系统给定负荷
时间 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
负荷/MW | 1022 | 963 | 978 | 993 | 1037 | 1066 | 1095 | 1124 |
时间 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
负荷/MW | 1138 | 1154 | 1182 | 1197 | 1242 | 1271 | 1314 | 1372 |
时间 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
负荷/MW | 1314 | 1271 | 1285 | 1290 | 1372 | 1459 | 1459 | 1081 |
部分代码:
function ans =jiaoyanjieguo(jizucanshu,D,A,geidingfuhe,time)%初步结果进行验证,使各机组功率均在范围内,
%输出为11行1列的数组,数据包括各机组功率和总耗量
h=0;%标志位,当有越限时,h值为越限机组中a值最大的机组号
l=0;%所有越限机组中最大的a值
m=0;%a值最大的机组的边界值
for i=1:10%对第一到第十的机组验证,若有越限,找出a值最大的机组,把机组号赋值给h,最大的斜率a赋值给l,边界值赋值给m
if D(i,1)<jizucanshu(i,5)%判断是否小于最小值
if jizucanshu(i,2)>l
l=jizucanshu(i,2);
h=i;
m=jizucanshu(i,5);
end
else if D(i,1)>jizucanshu(i,6)%判断是否大于最大值
if jizucanshu(i,2)>l
l=jizucanshu(i,2);
h=i;
m=jizucanshu(i,6);
end
end
end
end
if h>0 %有越限,更改A矩阵中a值最大的越限机组座对应的行参数
A(h,11)=0;
A(h,h)=-jizucanshu(h,3)/m;
D=chubujieguo(jizucanshu,geidingfuhe,A,time); %重新求得各机组的功率
jiaoyanjieguo(jizucanshu,D,A,geidingfuhe,time);%再次进行验证
else %上述循环后至无越限,G存放总耗量,最后连同各机组功率一起存放至E中,即E为输出结果
E=zeros(11,1);%存放输出结果
G=zeros(1,1);%存放总耗量
for i=1:10
G(1,1)=G(1,1)+jizucanshu(i,2)*D(i,1)^2+jizucanshu(i,3)*D(i,1)+jizucanshu(i,4);%求总耗量
end
E=[D;G];%输出结果
ans=E;
end
end
2.2 原理
我们知道只要给定边际电价就可以根据等报价策略c=aP+b算出发电各机组的出力
2.3 编程思路
首先必须假定一个初始边际电价c(较小,本次采用0.27)和步长dc,再根据P=(c-b)/a等式循环算出各个机组的出力P,又因为各机组有最大最小出力限制,因此当出力超出限制范围时用边界值最为越限功率,最后算出每个时间点的总功率t,判断若t不满足改时间点的负荷功率要求则根据c=c+dc重新取边际电价,再次计算各功率,直到 该时间点的总功率满足负荷要求,最后显示1~24小时各时间点的各机组功率,边际电价和功率总和t.