gpt4 book ai didi

algorithm - 如何在特定时间访问变量值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:39:12 25 4
gpt4 key购买 nike

我试过这段代码:

model var
Real x;
Real y;
Real z;
equation

x=6*time;
when time>=6 then
z=x;
end when;
y=3*z;
end var;

但它会给我 y = 3*x(在 time = 6 时)但是从 time = 6 开始,我从一开始就需要它。
这个问题有什么直接的方法吗?

最佳答案

根据人们的评论,您现在知道 Modelica 在处理时间行为方面非常严格。你可能会争辩说它是时间的更物理表示(除了量子和其他疯狂的物理学),因为你不能在你的代码中进行时间旅行。

根据您的应用程序,可能有多种方法可以解决您的问题。一种可能性是将时间行为移至初始化。这样您就可以捕获 time=0 之前的行为,并在 time=0 开始时获得预期的行为。

例如:

model var

parameter Modelica.SIunits.Time t_zero = 6;
parameter Real x(fixed=false);

Real y;
Real z;

initial equation
x = 6*t_zero; // or some more complicated set of equations/functions

equation
z = x;
y=3*z;

end var;

认识到这限制了一些东西,可能太多了,但是你可以有很多参数并且在初始方程 block 中有更复杂的表示。您还可以调用函数 x=func(),其中您已执行积分等,以在 time=0 时获取 x 的值。

希望对现在或将来有所帮助。

关于algorithm - 如何在特定时间访问变量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53646899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com