0

我想知道在 Dymola 中使用过优化库的人是否能够在没有明确的植物本构方程输入到标准函数的情况下使用 RealtimeOptimization 函数?具体来说,我试图使用我模型的一些状态作为标准函数,但是当我y[1] := mymodel.state;在状态周围输入带或不带引号时,Dymola 拒绝该函数。任何想法都会非常有帮助。谢谢你。

4

2 回答 2

0

您可以尝试将输出 (Modelica.Blocks.Interfaces.RealOutputs) 添加到模型的顶层,然后使用 Modelica.Blocks.Sources.RealExpression 块将它们链接到状态。

然后在使用优化功能时转到标准页面并使用选择按钮并选择这些输出以将它们添加为标准。

于 2013-04-30T08:57:29.747 回答
0

无法访问函数内部的模型变量。您必须通过函数的输入提供变量的值。任务 RealtimeOptimization 旨在在 Modelica 模型的模拟期间调用。标准函数具有定义的输入 nTuners、nCriteria、tuners[nTuners]。您可以添加其他输入变量,请参见示例 Optimization.Tasks.RealtimeOptimization.Examples.Example02.RunSampled 和函数 Optimization.Tasks.RealtimeOptimization.Examples.Example02.criteriaFunc02 中的记录 UserData。通过这些附加变量,您可以将一些状态变量转移到标准函数中。

如果您提供有关您的设置的更多信息,也许我们可以为您提供帮助。我是 Dymola 中优化库的主要开发人员。

于 2013-04-30T09:58:58.453 回答