如何在预定时间内在Modelica中模拟单个时间事件?

时间:2017-11-04 09:42:14

标签: modelica openmodelica

我想建立一个连续时间系统,该系统在预先知道的某个时刻改变其行为。一个小例子如下。

setNeedsLayout

1 个答案:

答案 0 :(得分:4)

你的解决方案几乎没问题。以下是您的代码,有一些修改。

  • 已使用的if then else也可以if then elseif then elseif then ... else
  • 添加了余额变量xb以获得常见的导数方程式(不仅仅是编码风格)。

代码:

model time_event      
    Real x(start = 0)  "state variable for this example";
    parameter Real T_ch = 5 "time at which the system dynamics undergoes a change";
    Real xb "Balance variable for derivative";
equation
    der(x) = xb; 
    if time <= T_ch then 
        xb = x + 1;
    else
        xb = -x;
    end if;
end time_event;

结果图:

红色= x

蓝色= der(x)

Plot of x and der(x)