如何动态控制一个变量以最大化 Dymola 中的另一个变量

问题描述 投票:0回答:1

我使用 Dymola 一段时间了,但这是我第一次使用控制器。我有一个复杂的热电厂模型,我需要控制一些变量。到目前为止,我已经成功实现了一些 PI 和 PID 控制器,通过施加恒定设定点来控制某些信号。

但是,我现在遇到了一个不同的问题:我需要控制信号以最大化另一个变量的值,而不是将其固定为恒定设定点。我研究了各种方法来解决这个问题,例如使用 PID 控制器、梯度法优化或非免费的 RealTimeOptimization 函数,但我需要一些额外的指导。

这是我需要实现的目标的简化描述(通过一个简单的案例):

我需要控制变量

inputVar
(范围从0到1)以在每个模拟时间步最大化
outputVar
的值。例如,如果我们模拟 3600 秒,结果应显示
inputVar
的最佳值如何随时间变化以最大化
outputVar
,从零开始并可能增加到 1。

我不确定这项任务有多具有挑战性,如果有任何有关如何在 Dymola 中实现此任务的建议或示例,我将不胜感激。谢谢!

model TestOptControlSignal
  "Tests that represents a model complex that must be controlled with an input variable in order to maximize an output variable"

  //Simplified model
  parameter Real amplitude = 10;
  parameter Real frequency = 1e-4;
  parameter Real phase1 = 0;
  parameter Real phase2 = 3.14/2;
  Real sine_wave1;
  Real sine_wave2;

  Real inputVar "variable to be optimized during the entire simulation - values in range: [0,1]";
  Real outputVar "max output";

equation 
 sine_wave1 = amplitude * sin(2 * Modelica.Constants.pi * frequency * time + phase1);
 sine_wave2 = amplitude * sin(2 * Modelica.Constants.pi * frequency * time + phase2);

 inputVar = 1 "This is the variable that must be modified in order to maximize the outputVar in each step of the simulation";

 outputVar = sine_wave1*inputVar+sine_wave2*(1-inputVar);

  annotation (uses(Modelica(version="4.0.0")),experiment(
      StopTime=3600,
      Interval=1,
      __Dymola_Algorithm="Dassl"));
end TestOptControlSignal;
optimization controls modelica openmodelica dymola
1个回答
0
投票

恐怕不是真正的答案,但评论太多了,所以:

您所描述的内容让我想起了光伏 (PV) 电池的 MPPT(最大功率点跟踪)。也许这将是搜索网络的一个很好的起点,因为应该有很多解决方案。 PhotoVoltaics 库中有一个简单的时钟/采样版本,即块

PhotoVoltaics.Components.Blocks.MPTrackerSample
。在下面的屏幕截图中,这将是组件
mpTracker

Screenshot of

这种实现的缺点是,由于采样(上述情况下为 10 秒,默认为 1 秒),它会减慢整体模拟的速度。如果系统相对简单并且应该例如计算光伏系统典型的全年情况,采样事件可能会限制性能。如果这对您的工厂来说不是问题,这可能是一个解决方案。

还有一个关于该主题的更通用的视图可以提供帮助:https://de.mathworks.com/discovery/optimal-control.html

PS:如果您找到一个好的连续解决方案,那将是 PhotoVoltaics 和类似库的一个很好的扩展。所以这里的一些反馈会很好:)

© www.soinside.com 2019 - 2024. All rights reserved.