运行LBNL Buildings库BuildingTimeSeriesWithETS模型遇滞回错误求助
解决Dymola运行LBNL Buildings模型的滞回翻译错误
错误原因
报错核心是Dymola的Modelica翻译器要求条件组件的判断条件必须是固定值,但GreaterThreshold.mo文件里的have_hysteresis是普通变量,不是常量(constant)或参数(parameter),导致greHys和greNoHys这两个条件组件的声明条件无法被识别为固定值。
具体解决步骤
修改变量类型:
打开文件//psf/Home/Documents/Dymola/Library/Buildings 12.1.0/Controls/OBC/CDL/Reals/GreaterThreshold.mo,找到have_hysteresis的声明行,把它改成参数(parameter)类型。比如:// 原声明(示例) Boolean have_hysteresis; // 修改后 parameter Boolean have_hysteresis = true; // 可根据需求设置默认值true/false这样Dymola就能识别这个条件是固定的,满足翻译器要求。
避免修改库文件的替代方案:
如果不想改动库源码,可以在调用GreaterThreshold组件的模型中,显式将have_hysteresis设为固定参数值。比如在实例化组件时添加:GreaterThreshold myThreshold(have_hysteresis = true);确保这个值是参数而非变量。
重新验证模型:
保存修改后,在Dymola中重新加载Buildings库(通过File > Open > Library选择库文件),然后重新翻译运行模型,确认错误消除。
内容的提问来源于stack exchange,提问作者Anneliese Fensch
相关产品推荐
相关产品推荐

