我想知道是否有人在Dymola中使用优化库已经能够利用RealtimeOptimization功能而无需将明确的植物本构方程式输入到criteriaFunction中?具体来说,我试图使用我的某些模型状态作为标准函数,但是当我在状态周围输入带有或不带引号的y[1] := mymodel.state;
时,Dymola拒绝该功能。任何想法都会非常有帮助。谢谢。
答案 0 :(得分:0)
您可以尝试将输出(Modelica.Blocks.Interfaces.RealOutputs)添加到模型的顶层,然后使用Modelica.Blocks.Sources.RealExpression块将这些输出链接到状态。
然后在使用优化功能时,转到条件页面并使用“选择”按钮并选择这些输出以将它们添加为条件。
答案 1 :(得分:0)
无法访问函数内的模型变量。您必须通过函数的输入提供变量的值。 RealtimeOptimization任务旨在在模拟Modelica模型期间调用。条件函数具有定义的输入nTuners,nCriteria,tuners [nTuners]。您可以添加其他输入变量,请参阅Example Optimization.Tasks.RealtimeOptimization.Examples.Example02.RunSampled以及函数Optimization.Tasks.RealtimeOptimization.Examples.Example02.criteriaFunc02中的记录UserData。通过这些额外的变量,您可以将一些状态变量转移到Critiera函数中。
如果您提供有关您的设置的更多信息,也许我们可以为您提供帮助。我是Dymola优化库的主要开发人员。