Sysplorer更换介质之后报错3213,如何处理?
技术分享
发布于 2025-10-16 23:49:14
查看 2过去229天
Q:更换介质之后为什么报错3213,怎么解决。
A:更换介质属于一种变型,每一种介质里都定义了很多内容,更换了介质之后,模型里面很多同名的组件/变量/函数等都会使用更换的这种介质里的内容。
在这个问题中,是因为更换的这种介质中重声明的函数 Midium.Criticalp (这里的Medium就是介质)中没有输入,也没有输出,将此函数作为其他函数的参数时报错。
之所以使用这种介质会报错, 使用其他介质不会,是因为其他介质中的函数 Criticalp 有返回值。
这种情况报 3213 错误
如下例
model Model36
function TestFunc
end TestFunc;
Real a = 10 * sin(time);
Real b;
equation
b = min(a, TestFunc());
end Model36;
比如A介质和B介质中都有函数F,如果使用A介质,模型里面就用A.F,使用B介质,模型里就是用B.F。A.F和B.F名字相同,都是F,但是里面的实现不一样。
比如函数 f1 需要两个参数,函数 f2 没有返回值,如果这样写:f1(1, f2()) 就会报错,因为函数 f2() 没有返回值,相当于 f1 函数的第二个参数不存在。
所属专栏:Modelica语言
产品信息:Sysplorer系统建模仿真环境