gpt4 book ai didi

modelica - “Variability” 函数调用模型出错

转载 作者:行者123 更新时间:2023-12-02 21:02:42 26 4
gpt4 key购买 nike

以下代码

model FunctionCall
Boolean result;

function F
input Real p1;
output Boolean result;
algorithm
result :=p1 < 0.5;
end F;

algorithm
result :=F(time);
end FunctionCall;

(也在 http://www.modelica-forum.com/forums/index.php?showtopic=2 中进行了描述)在 Dymola 2018FD01 中仍然抛出错误,而在 OpenModelica 中它被接受。这是错误的 Modelica 代码还是 Dymola 错误?提前致谢。

最佳答案

模型不正确。

3.8 “对于赋值 v:=expr 或绑定(bind)方程 v=expr,v 必须声明为至少与 expr 一样的变量”

根据3.8.3“离散时间变量,即整数、 bool 值、字符串变量和枚举变量,以及在when子句中分配的实数变量”, bool 变量是离散时间表达式

F(time) 不是离散时间表达式,因为 3.8.3 只包含“函数的所有输入参数都是离散时间表达式的函数调用”

全部根据 Modelica 3.4。

原因是模型中的 bool 变量只应在事件发生时发生变化,而 F(time) 等函数的结果既不能保证也不能可靠地生成事件。

关于modelica - “Variability” 函数调用模型出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48315027/

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