我想知道是否有人使用过Dymola中的优化库,可以在没有明确的植物本构方程输入到criteriaFunction中的情况下使用RealtimeOptimization函数?具体地说,我试图使用我的模型的一些状态作为条件函数,但是当我输入带有或不带引号的y[1] := mymodel.state;时,Dymola拒绝该函数。任何想法都会很有帮助。谢谢。
发布于 2013-04-30 17:58:58
不可能访问函数中的模型变量。您必须通过函数的输入提供变量的值。任务RealtimeOptimization的目标是在Modelica模型的模拟过程中调用。criteria函数具有定义的输入nTuners、nCriteria、tunersnTuners。您可以添加其他输入变量,请参见示例Optimization.Tasks.RealtimeOptimization.Examples.Example02.RunSampled和函数Optimization.Tasks.RealtimeOptimization.Examples.Example02.criteriaFunc02.中的记录UserData通过这些附加变量,您可以将一些状态变量转移到critiera函数中。
如果您提供有关您的设置的更多信息,也许我们可以为您提供帮助。我是Dymola中优化库的主要开发人员。
发布于 2013-04-30 16:57:30
您可以尝试将输出(Modelica.Blocks.Interfaces.RealOutputs)添加到模型的顶层,然后使用Modelica.Blocks.Sources.RealExpression块将这些输出链接到状态。
然后,当使用优化功能时,转到criteria页面,使用Select按钮并选择这些输出,将它们添加为criteria。
https://stackoverflow.com/questions/16269533
复制相似问题