问题标签 [jmodelica]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
806 浏览

modelica - 在 Dymola 中创建的基本模型无法在 JModelica 中进行模拟 - FMU 异常

我使用建筑物库包中的组件在 Dymola 中创建了一个热水储水缸的基本模型。我已将模型保存为 .mo 文件并成功编译 fmu 并将模型加载到 JModelica 中。当我模拟使用时会出现问题:

这会导致以下错误消息:

FMUException Traceback (last last call last) in () ----> 1 res = model.simulate(final_time=100000)

src\pyfmi\fmi.pyx 在 pyfmi.fmi.FMUModelME1.simulate (src\pyfmi\fmi.c:35608)()

src\pyfmi\fmi.pyx 在 pyfmi.fmi.ModelBase._exec_simulate_algorithm (src\pyfmi\fmi.c:6045)()

src\pyfmi\fmi.pyx 在 pyfmi.fmi.ModelBase._exec_simulate_algorithm (src\pyfmi\fmi.c:5936)()

C:\JModelica.org-2.1\install\Python\pyfmi\fmi_algorithm_drivers.pyc in init (self, start_time, final_time, input, model, options) 300 if isinstance(self.model, fmi.FMUModelME1): 301 self.model .time = start_time #设置初始化前的开始时间 --> 302 self.model.initialize(tolerance=rtol) 303 304 elif isinstance(self.model, fmi.FMUModelME2) or isinstance(self.model, fmi_coupled.CoupledFMUModelME2):

src\pyfmi\fmi.pyx 在 pyfmi.fmi.FMUModelME1.initialize (src\pyfmi\fmi.c:34954)()

FMUException:初始化返回错误。检查日志以获取信息 (FMUModel.get_log)。

正如所建议的那样,我已经检查了使用model.get_log()这也没有多大意义的日志:

FMIL:模块 = 模型,日志级别 = 2:[错误][FMU 状态:错误] 无法将根括在“1”中。下限和上限都在界限内。

FMIL:模块 = 模型,日志级别 = 2:[INFO][FMU 状态:错误] 初始化失败。

FMIL:模块 = 模型,日志级别 = 2:[错误][FMU 状态:错误] 无法将根括号括起来 name="block">"1"。下限和上限都在界限内。

FMIL:模块 = 模型,日志级别 = 2:[INFO][FMU 状态:错误] 初始化失败。

FMIL: module = Model, log level = 2: [ERROR][FMU status:Error] category="error">Could not bill the root in name="block">"1". 下限和上限都在 > 范围内。

FMIL:模块 = 模型,日志级别 = 2:[INFO][FMU 状态:错误] 初始化失败。

FMIL: module = Model, log level = 2: [ERROR][FMU status:Error] category="error">Could not bill the root in name="block">"1". 下限和上限都在 > 范围内。

FMIL:模块 = 模型,日志级别 = 2:[INFO][FMU 状态:错误] 初始化失败。

关于这里发生了什么的任何建议?我听说很多人用 Dymola 构建系统,保存脚本,然后在 JModelica 中导入和模拟。然而,这可能是这里的问题吗?

0 投票
1 回答
315 浏览

modelica - 将 Modelica 模型从 Dymola 转换为 JModelica - 解决日志文件中的错误

我目前正在尝试在 JModelica 中编译netCDF-DataReader,但似乎该包是在 Dymola 中开发的。该过程在编译阶段失败:

CcodeCompilationError:生成的 C 代码编译失败。

创建的日志文件包含 326 行。中途说

======模型编译成功=======

但是之后有很多错误。一些错误包括:

警告:.drectve `/DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized collect2.exe: error: ld returned 1 exit status mingw32-make 1 : *** [ceval_] Error 1 Cannot export ??_C@_01LFCBOECM @?4?$AA@: 找不到符号无法导出 ??_C@_01NOFIACDB@w?$AA@: 找不到符号 C:\JModelica.org-2.1\install\Makefiles\MakeFile:190: 目标'fmume10 的配方' 失败的

我在编译器和调试 C 代码方面没有太多经验,我更愿意把时间花在创建模型上;因此,这导致了一些问题:

  1. 此错误日志中是否存在可以通过使 Dymola 库可用于其他基于 Modelica 的程序(例如 JModelica)的方式来解决的模式?
  2. 那么是否还有其他可能更适合交叉兼容模型的编译器?
  3. 我是否在浪费时间试图让 Dymola 模型在 JModelica 中运行?在 JModelica 中单独重新创建模型会更明智吗?缺乏前端界面使这很棘手。
0 投票
2 回答
736 浏览

modelica - 在 JModelica 中向 MODELICAPATH 添加其他库

在 JModelica 中,我想使用来自多个现有库的组件创建模型。

这意味着将多个库添加到 MODELICAPATH 将非常有用,因此可以在不更改其现有路径的情况下引用组件。在Dymola中似乎有类似的东西。

在 JModelica 1.13 中,这似乎曾经可以使用

我已经阅读了 JModelica 2.1 文档,似乎没有提到这个论点。我也尝试过运行上面的脚本,编译器无法找到选项中列出的库中包含的模型的路径。

将库添加到 JModelica 安装中的第三方 MSL 文件夹不是一种选择,因为我将使用的多个库是 GitHub 存储库。

是否可以通过启动脚本或 IPython 代码将这些多个库添加到 MODELICAPATH?

0 投票
1 回答
316 浏览

python - JModelica 结合 CasADi 在 Python 中获得线性化模型

我最近发现论文“ MAKING MODELICA MODELS AVAILABLE FOR ANALYSIS IN PYTHON CONTROL SYSTEMS LIBRARY ”解释了如何结合使用 JModelica 和 CasADi 在 Python 中获得线性化模型。这正是我正在寻找的,但显​​然这篇论文来自 2014 年并且使用了 JModelica 1.12。所描述的方法已被弃用,使用的功能不再可用。

JModelica 的文档关于这个主题非常有限,我不知道如何使用最新版本的 JModelica 完成所描述的任务。该类CasadiModel不再使用,并且该函数compile_fmux引发编译错误。

我的最终目标涉及在 Modelica 中对(非线性)系统进行建模。我需要这个模型的符号表示来自己执行线性化。然后使用线性化模型在 Python 中设计控制器。

有人有建议吗?

0 投票
1 回答
410 浏览

modelica - 更改目录时无法导入pyjmi模块

我在 Windows 上使用 JModelica 2.1,直到最近我总是能够毫无问题地导入 pyjmi。例如,在 IPython 控制台中,我经常会毫无问题地运行以下命令:

然而,最近,我不小心打开了一个新的 IPython 控制台并运行了之前的代码段,却没有意识到我已经打开了一个运行优化问题的控制台。从那时起,前面的代码就会抛出以下错误:

奇怪的是,上述错误仅在我更改当前目录时发生。相反,如果我不这样做cd并留在默认目录 (C:\Users\Public\Documents\JModelica.org) 中,那么它会毫无问题地导入并在之后正常工作。它只发生在 pyjmi 上(例如 pyfmi 将毫无问题地导入),这似乎表明它可能是与环境变量相关的问题。但是,我找不到它们有任何问题,在所有情况下JMODELICA_HOME,以及找到的所有其他环境变量pyjmi.environ似乎都可以正常工作。

我尝试通过安装 JModelica 2.2 来规避该问题,但问题仍然存在(无论是 2.1 还是 2.2)。但是应该注意的是,我在执行此操作时并没有卸载 JModelica 2.1。

如果有人对导致这种行为的原因有任何想法,我将不胜感激。

编辑: 事情已经发生了最坏的转变,现在我在使用 JModelica 2.1 时在任何情况下都无法导入 pyjmi(而之前的行为仍然适用于 JModelica 2.2)。我不知道到底发生了什么变化导致了这种情况。

0 投票
1 回答
175 浏览

modelica - JModelica FMU 中的方向导数

如何在 JModelica FMU 中启用定向导数?

我找不到有关该编译器标志的任何信息。

谢谢

0 投票
1 回答
1194 浏览

python - pyFMI Modelica:FMU 不包含此平台的二进制文件

我正在尝试在 Python 中使用 pyFMI 包运行简单的教程示例,但出现错误 FMU 不包含此平台的二进制文件。尝试为 FMULibrary 设置环境变量,但错误仍然存​​在。

我会很感激任何提示。

0 投票
1 回答
489 浏览

python - FMUException:加载二进制文件时出错。无法加载 DLL:动态链接库 (DLL) 初始化例程失败

我正在使用 pyfmi 在 Python 中加载 Modelica 生成的模型。加载模型后,我想执行优化和参数估计。问题是对于每个参数估计(优化迭代),通常需要加载 FMU,它需要大约 300-400 次迭代,但由于二进制加载错误,它没有收敛。我应该在哪里寻找灵魂?欢迎任何提示。

经过 50-60 次迭代后,我得到了一个错误:

0 投票
1 回答
140 浏览

python-2.7 - jmodelica 优化存在运行时错误

我正在尝试遵循不同的论文和教程来学习如何解决模型模型的优化问题。在http://www.syscop.de/files/2015ss/events/opcon-thermal-systems/optimization_tool_chain_in_jmodelica.org_toivo_henningsson.pdf我找到了一个非常简单的教程。但是当我执行它时,我会收到一些非常开放的错误消息。我正在将 Python 2.7 与 jupyther 一起使用。这是我的记事本:

我的模型文件:

当我执行代码时,我得到一个 RuntimeError,告诉我发生了一个 java 错误以及打印的详细信息。从 Traceback 我不知道注释是什么

该文件与经典类和新式类兼容

意思是。我知道我的设置工作正常,因为我执行了 modelon 提供的 CSTR 教程。但是现在,它尝试使用我自己的模型,它给了我这个错误。

运行时错误说明

0 投票
0 回答
62 浏览

jmodelica - 无法在 Windows 上运行 JModelica 演示

我在 Windows 上按照用户指南的说明安装了 JModelica.org。但是,我未能运行 cstr_casadi 演示。你知道是什么原因吗?我会很感激的。这是用户指南用户指南的链接