通过出力方案得到段价:
function y = select(x)
dj = [ -505 -505 124 124 124 252 252 252 252 489
-560 -560 182 203 245 300 320 320 320 495
-610 -610 152 152 233 233 308 356 356 500
-500 150 170 200 255 302 325 325 325 800
-590 0 116 116 188 215 215 310 396 510
-607 -607 159 173 173 252 305 380 380 520
-500 120 180 251 260 306 315 335 348 548
-800 -800 183 183 253 253 303 318 400 800];
drl = [ 70 70 120 120 120 150 150 150 150 190
30 30 50 58 73 79 81 81 81 89
110 110 150 150 180 180 200 240 240 280
55 60 70 80 90 100 115 115 115 116
75 80 95 95 110 125 125 135 145 155
95 95 105 125 125 140 150 170 170 180
50 65 70 85 95 105 110 120 123 125
70 70 90 90 110 110 130 140 155 160];
[m,n]=size(drl);
for i = 1:m
ch = x(i);
for j=1:n
if j==1
if ch<=drl(i,j)
y(i) = dj(i,j);
break;
elseif ch>drl(i,j)&&ch<drl(i,j+1)
y(i) = dj(i,j+1);
break;
end
elseif j==n
if ch>=drl(i,j)
y(i) = dj(i,j);
break;
elseif ch>drl(i,j-1)&&ch<drl(i,j)
y(i) = dj(i,j);
break;
end
else
if ch==drl(i,j)
y(i) = dj(i,j);
break;
elseif ch>drl(i,j)
for k = j+1:n-1
if ch<dj(i,k)
y(i) = dj(i,k);
break;
end
end
end
end
end
end
通过负荷得到基本出力方案:
clear;clc;
drl = [70 0 50 0 0 30 0 0 0 40
30 0 20 8 15 6 2 0 0 8
110 0 40 0 30 0 20 40 0 40
55 5 10 10 10 10 15 0 0 1
75 5 15 0 15 15 0 10 10 10
95 0 10 20 0 15 10 20 0 10
50 15 5 15 10 10 5 10 3 2
70 0 20 0 20 0 20 10 15 5
];
dj = [-505 0 124 168 210 252 312 330 363 489
-560 0 182 203 245 300 320 360 410 495
-610 0 152 189 233 258 308 356 415 500
-500 150 170 200 255 302 325 380 435 800
-590 0 116 146 188 215 250 310 396 510
-607 0 159 173 205 252 305 380 405 520
-500 120 180 251 260 306 315 335 348 548
-800 153 183 233 253 283 303 318 400 800];
Fh = input('请输入负荷需求量(MW):');
S = 0;
pri = 0;
A = [dj(:) drl(:)];
AA = sortrows(A,1);
SS = zeros(1,8);
v = [2.2 1 3.2 1.3 1.8 2 1.4 1.8];
g = [120 73 180 80 125 125 81.1 90];
gmax = g+v*15;
gmin = g-v*15;
for i = 1:80
if sum(SS)<Fh
pri = pri+AA(i,1);
[row,~] = (find((AA(i,1)==dj)&(AA(i,2)==drl)));
for j =1:length(row)
if (SS(row(j))<gmax(row(j)))&&(SS(row(j)) + AA(i,2))<gmax(row(j))
SS(row(j)) = SS(row(j)) + AA(i,2);
elseif (SS(row(j))<gmax(row(j)))&&(SS(row(j)) + AA(i,2))>=gmax(row(j))
SS(row(j)) = gmax(row(j));
end
end
else
disp('清算价为:')
qs = AA(i-1,1)
break;
end
end
remain = sum(SS)-Fh;
[row1,~] = (find((AA(i-1,1)==dj)&(AA(i-1,2)==drl)));
SS(row1) = SS(row1) - remain;
disp('各个机组出力为:')
SS
本文介绍了一种通过输入负荷需求来确定最优电力出力方案的函数,包括了通过查找表的方式处理边界条件和连续区间,以及如何根据负荷需求分配机组出力,确保满足需求并实现成本最小化。
3694

被折叠的 条评论
为什么被折叠?



