Dymola优化库约束

时间:2014-02-14 17:18:13

标签: modelica dymola openmodelica

再次我。对不起可能是愚蠢的问题,但我是新手,所以我有这个初步的问题和困境。

我想在这个理论案例中使用dymola优化库来优化碳排放。有电网和光伏作为供应的手段,有需求。如果使用网格,它会发出一些碳。因此应始终使用PV。但有时PV不够,所以必须使用电网。电网和PV的使用量由变量x1和x2控制,变量x1和x2应该从0到1(作为百分比的平均值)。如果我运行以下代码,它会说太多变量。如果我将x1设置为值为1的参数,它会运行,但是然后无法执行优化,因为即使我在优化设置中设置x1可以从0更改为1,但由于代码,它无法更改它。

我该怎么办?我想优化依赖于x1和x2的排放变量。变量x1和x2的约束应该是0 <= x1 <= 1,0 <= x2 <= 1。 x1和x2缺少一个等式。但x1 + x2不需要为0,因为solarThermal.y和电力不相等。那么从优化到改变2变量是否有一种方法可以最小化第三变量?我可以将x1设置为1作为参数,以便代码可以编译,然后我希望优化为var1 x1和x2。有可能吗?

提前谢谢!

model konacno
parameter Real electricity=999;
Real x2(start=0);
Real x1;
Real emissions(start=0);
Modelica.Blocks.Sources.TimeTable solarThermal(table =  [0,300;3590,295;3600,200;7195,201;7200,300;10795,299;10800,200]);
Modelica.Blocks.Sources.TimeTable heatDemand(table = [0,300;3590,295;3600,250;7195,251;7200,300;10800,300]);
equation 
0=x2*electricity+x1*solarThermal.y - heatDemand.y;
der(emissions)=0.13*x2*electricity;
end konacno;

0 个答案:

没有答案