Modelica 为什么使用dymola优化库不遵守参数边界?

Modelica 为什么使用dymola优化库不遵守参数边界?,modelica,dymola,openmodelica,Modelica,Dymola,Openmodelica,我正在尝试使用dymola优化库中的ModelOptimization函数,使用以下代码优化(最小化)可变“排放”: model opt parameter Real electricity=999; Real x2(start=0); Real x1(start=0); Real usageEle; Real usagePV; Real emissions(start=0); Modelica.Blocks.Sources.TimeTable solarThermal(table = [0,4

我正在尝试使用dymola优化库中的ModelOptimization函数,使用以下代码优化(最小化)可变“排放”:

model opt
parameter Real electricity=999;
Real x2(start=0);
Real x1(start=0);
Real usageEle;
Real usagePV;
Real emissions(start=0);
Modelica.Blocks.Sources.TimeTable solarThermal(table = [0,400;3599,400;3600,200;7199,200;7200,400;10799,400;10800,200]);
Modelica.Blocks.Sources.TimeTable heatDemand(table = [0,300;3600,300;7200,300;10800,300]);
equation 
x2*electricity+x1*solarThermal.y=heatDemand.y;
0=x2*electricity+x1*solarThermal.y - heatDemand.y;
total=x2*electricity+x1*solarThermal.y - heatDemand.y;
usageEle=x2*electricity;
usagePV=x1*solarThermal.y;
der(emissions)=0.13*x2*electricity;
end opt;
问题是它不遵守我为变量x1和x2设置的边界,变量x1和x2需要从0到1(1到100%)。如果在电力上使用太阳能热,排放量将降至最低

以下是设置的图片: 正如您所见,x1和x2大致从-0.1变为1.1,而它们的最大值应该从0变为1。你知道这是什么原因吗


任何帮助都将不胜感激,因为我有点卡住了,不知道如何继续。谢谢大家!

我想你走错方向了。您选择“x1”和“x2”作为要优化的参数,但“x1”和“x2”在模型中未定义为参数。参数在模拟运行期间是固定的


如果你想改变时间轨迹,你必须使用优化任务“轨迹优化”

我想你已经看过Dymola用户手册了吧?第二卷,第三章是关于设计优化。谢谢你指出这一点。如果这对我有效,我会试试。