Esta página es para la versión previous。La página通讯员zh inglés下面的内容是关于versión实际的内容。
Este ejemplo muestra cómo programar dos generadores eléctricos de gas de forma óptima,请注意,我们有一个很好的市长,他的名字叫“ingresos menos el costo”。如果我们没有完全的现实,我们可以cómo我们的成本取决于decisión的时间。
如果你想解决这个问题,请咨询。Envío óptimo de generadores de energía: basado en Solver
萨尔瓦多梅尔卡多德拉electricidad tiene diferentes precios连接diferentes momentos德尔直径。硅tiene generadores阙suministran electricidad,puede aprovechar埃斯特PRECIO变量programando SUS generadores对阙funcionen宽多洛precios儿子托斯。Supongamos阙controlas DOS generadores。CADA generador tiene特雷斯niveles德potencia(desactivado,巴霍ÿ中音)。CADA generador tiene UNA TASA especificada德consumo德可燃Ÿproducción德能源公司EN CADA NIVEL德potencia。萨尔瓦多consumo德可燃ES 0宽多报generador ESTA apagado。
您可以给我们一个新的音程,我们可以给您一个新的音程,我们可以给您一个新的音程。在función de los registros históricos,我们可以用时间间隔来计算我们的体重。我们是澳大利亚歌剧演员,我们的名字是energíahttps://www.nemweb.com.au/REPORTS/CURRENT/
2013年的媒体报道,请访问SUS términoshttps://www.aemo.com.au/Privacy_and_Legal_Notices/Copyright_Permissions_Notice
。
负载dispatchPrice;%获取poolPrice,这是每兆瓦时栏中的收入(poolPrice,0.5)XLIM([。5,48.5])xlabel( '每兆瓦时的价格在每个周期')
我希望你能成为我们的大使después我希望你能成为我们的大使。Además, hay una restricción en el consumo máximo de可燃para día。在restricción存在的我们可以在día的时间内使用易燃的物品,请您使用sólo我们可以在比较中使用。
Puede公式推EL problema德programación科莫联合国problema德programación德enteros binarios。Defina指数,Y,Y未矢量德programaciónbinario,como的SE籼稻一个continuación:一世
j
K.
y
= el número de periodos de tiempo, 48 en este caso。nPeriods
= UN período de tiempo, 1 < = < = 48。一世
一世
= UN índice del generador, 1 < = < = 2 pareste ejemplo。j
j
关多。período,关多。está有潜在危险。y (i, j, k) = 1
一世
j
K.
它在海里,它在海底。k = 1时
k = 2时
El generador está apagado cuando。Sum_k y(i,j,k) = 0
确定Cuándo se inicia un generador después de apagarse。请给我们定义一个变量,它是指把眼镜蛇放在período上的辅助符号。z (i, j)
j
一世
Cuando el generador está apagado en el período, pero está en el período。不配合。Z(I,J)= 1
j
一世
I + 1
Z(I,J)= 0
在其他地方,在其他地方。Z(I,J)= 1
Sum_k y(i,j,k) = 0
Sum_k y(i+1,j,k) = 1
有必要建立一个表格automáticamente en función de la configuración de。Z.
y
Una restricción lineal continuación controla esta configuración。
También必要的是我们parámetros我们的问题是我们的费用,我们的费用是我们的费用,我们的费用是我们的易燃物品。
——英格利索在dólares的间歇poolPrice(ⅰ)
一世
--MW generados POR EL generador一个NIVEL德potencia创(j, k)
j
K.
--Combustible utilizado POR EL generador一个NIVEL德potencia燃料(j, k)
j
K.
——可燃可燃物en un díatotalFuel
-Costo en dólares para iniciar un generador después de haber estado apagadostartCost
--Costo德UNA团结报德可燃fuelPrice
你有cuando ejecutaron。poolPrice
加载dispatchPrice;
Establezca洛杉矶OTROSparámetros德拉siguiente MANERA。
fuelPrice = 3;totalFuel = 3.95 e4;nPeriods =长度(poolPrice);% 48 period nGens = 2;% Two generator gen = [61,152;50,150];%发电机1低= 61 MW,高= 152 MW燃料= [427,806;325,765];%发电机2的燃料消耗低= 325,高= 765 startCost = 1e4;%发电机关闭后启动的成本
检查拉eficiencia德洛斯DOS generadores EN SUS DOS puntos德operación。
效率= gen./fuel;%计算单位燃料耗电量rr =效率';% for标绘h = bar(rr);h(1)。FaceColor = ' g ';h(2)。FaceColor = ' c ';legend(h,'Generator 1','Generator 2','Location','NorthEastOutside') ax = gca;斧子。XTick = [1, 2];斧子。XTickLabel = {'Low','High'}; ylim([.1,.2]) ylabel('Efficiency')
观察2号发电机的效能和1号发电机的效能和operación的通讯(上),如果1号发电机的效能和2号发电机的效能和1号发电机的效能和operación的通讯(上),如果1号发电机的效能和2号发电机的效能和1号发电机的效能和operación的通讯(上)。
帕拉configurar EL problema,德贝codificar待办事项洛杉矶DATOS德尔problemaŸ拉斯restricciones连接形式上德problema。拉斯维加斯变量representan拉solución德尔problema,Y拉斯变量auxiliares靛SI SE carga对encender联合国generador。ES UNA matrizŸES UNA matriz。y (i, j, k)
z (i, j)
y
nPeriods逐nGens×2
Z.
nPeriods-by-nGens
所有的变量都是二元的。
y = optimvar (“y”nPeriods ngen, {'低的'那'高的'},“类型”那“整数”那下界的,0,......' UpperBound ', 1);z = optimvar (' z ', nPeriods ngen,“类型”,“整数”、“下界”,0,…' UpperBound ', 1);
对一个没有任何潜力的人来说,más是一个组成部分,建立一个restricción是一个直系的。
powercons = y (:,:'低的')+ Y(:,:,'高的')<= 1;
工作的代价período易燃的代价período。我们的歌剧没有价值,只有价值。j
K.
fuelPrice *燃料(j, k)
我想知道代理人是否可以使用易燃物品。fuelUsed
yFuel = 0 (nPeriods ngen 2);yFuel(:, - 1, - 1) =燃料(1,1);yFuel(:,1,2) = Fuel(1,2);yFuel(:,2,1) = Fuel(2,1);yFuel(:,2,2) = Fuel(2,2);% generator 2 in high setting fuelUsed = sum(sum(sum(y.*yFuel)));
restricción是可燃物,而不是más是可燃物。
fuelcons = fuelUsed <= totalFuel;
我们的网址是:automáticamente我们的网址是什么?Z.
y
下面我们再来回顾一下,condición符合的是cuándo y。Z(I,J)= 1
Sum_k y(i,j,k) = 0
Sum_k y(i+1,j,k) = 1
观察阙exactamente宽多usted quiere。Sum_k (- y(i,j,k) + y(i+1,j,k)) > 0
Z(I,J)= 1
但是,在这个问题中,包括是一个限制因素。
。sum_k( - Y(I,J,K)+ Y(I + 1,J,K)) - Z(I,J)<= 0
Además,包含变量在función目标的成本中。Z.
精读拉斯变量EN LAfunciónobjetivo,EL solucionador intenta reducir SUS VALORES,老阙阙标志意义intenta establecerlos待办事项igual 0。Z.
在这段时间内,我们的后代都是伊瓜拉尔人。z (i, j)
Cree是表示的一个辅助变量。W.
Y(I + 1,J,K) - Y(I,J,K)
代表在términos的总机上签字。W.
W = optimexpr(nPeriods,nGens);%分配瓦特IDX = 1:(nPeriods-1);瓦特(IDX,:) = Y(IDX + 1,:, '低') - Y(IDX,:, '低')+ Y(IDX + 1,:, '高') - Y(IDX,:,'高的');瓦特(nPeriods,:) = Y(1,:, '低') - Y(nPeriods,:, '低')+ Y(1,:, '高') - Y(nPeriods,:, '高');switchcons = W - z <= 0;
función目标包括易燃费用段ejecución generadores, ingresos de La ejecución generadores y los costos de los generadores。
generatorlevel =零(大小(yFuel));generatorlevel(:,1,1)=根(1,1);% Fill in the levels generatorlevel(:,1,2) = gen(1,2);generatorlevel(: 2 1) =创(2,1);generatorlevel(: 2 2) =创(2,2);
entrantes = y。* generatorlevel。* poolPrice
收入= optimexpr(大小(y));为II = 1:nPeriods收入(二,:,:) = poolPrice(ⅱ)* Y(二,:,:)* generatorlevel(ⅱ。,::);结束
总可燃物=。fuelUsed * fuelPrice
fuelCost = fuelUsed * fuelPrice;
埃尔costo inicial德尔generador =。Z * startCost
startingCost z = * startCost;
萨尔瓦多beneficio = costo德INICIO德尔costo德可燃总去ingresos entrantes。-
-
利润=总和(求和(总和(收入))) - fuelCost - 总和(总和(startingCost));
克里联合国problema德optimizaciónËincluya EL objetivoŸ拉斯restricciones。
调度= optimproblem ('ObjectiveSense'那“最大化”);dispatch.Objective =利润;dispatch.Constraints.switchcons = switchcons;dispatch.Constraints.fuelcons = fuelcons;dispatch.Constraints.powercons = powercons;
一个恐怖的空间,一个visualización迭代。
选择= optimoptions (“intlinprog”那“显示”那“最后一次”);
Resuelve el问题。
[dispatchsol,FVAL,exitflag,输出] =解决(调度,“选项”、选择);
找到最优解。Intlinprog停止是因为客观值在最优值选项的间隙公差范围内。AbsoluteGapTolerance = 0(默认值)。intcon变量是在公差选项内的整数。IntegerTolerance = 1e-05(默认值)。
跟踪la solución en función del tiempo。
次要情节(1,1)栏(dispatchsol.y(:, 1, 1) *创(1,1)+ dispatchsol.y(:, 1, 2) *创(1、2),5,‘g’) xlim ([5, 48.5]) ylabel (“MWh”)标题(“发电机1最优调度”那“FontWeight”那'胆大'次要情节(3、1、2)酒吧(dispatchsol.y(:, 2, 1) *创(1,1)+ dispatchsol.y(:, 2, 2) *创(1、2),5,'C')标题(“发电机2最佳调度”那“FontWeight”那'胆大') xlim ([5, 48.5]) ylabel (“MWh”) subplot(3,1,3) bar(poolPrice,.5) xlim([.5,48.5]) title(能源价格的那“FontWeight”那'胆大')包含('时期') ylabel (“美元/千瓦时”)
埃尔generador 2 CORREMÁS蒂恩波阙EL generador 1,阙cabríaesperar porque ESMÁSeficiente。萨尔瓦多generador 2 SE ejecuta EN苏NIVEL德阿尔塔potencia CADA VEZ阙ESTA encendido。萨尔瓦多generador 1 SE ejecuta principalmente EN苏NIVEL德potencia阿尔塔,佩罗本身extiende一个巴哈potencia对UNA团结报德时代报。CADA generador SE ejecuta对联合国CONJUNTO contiguo德períodosdiariamente Y,POR LO短刀,独奏incure恩未costo德INICIO CADA直径。
我们应该把变量定义为períodos所以我们应该把变量定义为períodos。Z.
Starttimes = find(round(dispatchsol.z) == 1);%对非整数结果使用round [theperiod,thegenerator] = ind2sub(size(dispatchsol.z),starttimes)
年度变化平均数低于=2×123日16
thegenerator =2×11 2
所以,我们的朋友们都认为这是一个巧合。
如果是一个更小的例子,solución就意味着generación的不同时期。startCost
startCost = 500;%选择较低的惩罚用于起动发电机startingCost = Z * startCost;利润=总和(求和(总和(收入))) - fuelCost - 总和(总和(startingCost));dispatch.Objective =利润;[dispatchsolnew,fvalnew,exitflagnew,outputnew] =解决(调度, '选项',选择);
找到最优解。Intlinprog停止是因为客观值在最优值选项的间隙公差范围内。AbsoluteGapTolerance = 0(默认值)。intcon变量是在公差选项内的整数。IntegerTolerance = 1e-05(默认值)。
次要情节(1,1)栏(dispatchsolnew.y(:, 1, 1) *创(1,1)+ dispatchsolnew.y(:, 1, 2) *创(1、2),5,‘g’) xlim ([5, 48.5]) ylabel (“MWh”)标题(“发电机1最优调度”那“FontWeight”那'胆大'次要情节(3、1、2)酒吧(dispatchsolnew.y(:, 2, 1) *创(1,1)+ dispatchsolnew.y(:, 2, 2) *创(1、2),5,'C')标题(“发电机2最佳调度”那“FontWeight”那'胆大') xlim ([5, 48.5]) ylabel (“MWh”) subplot(3,1,3) bar(poolPrice,.5) xlim([.5,48.5]) title(能源价格的那“FontWeight”那'胆大')包含('时期') ylabel (“美元/千瓦时”)
starttimes =找到(圆(dispatchsolnew.z)== 1);%用途轮非整数结果[theperiod,thegenerator] = ind2sub(大小(dispatchsolnew.z),starttimes)
年度变化平均数低于=3×122 16 45
thegenerator =3×11 2 2