问题标签 [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 投票
3 回答
210 浏览

modelica - 扩展包和访问内容

我继续致力于了解如何最好地在库和应用程序中划分代码。在之前的几篇文章中,我使用了一个带有应用程序 dxx_app7 的玩具示例 DEMO_xx 库。下面是一个稍微更新的版本来涵盖这里的问题。我已经包括在收获罐中添加传感器的可能性。

现在我想了解如何在应用程序代码中引入从库 Medium2 扩展的应用程序 Medium7 的信息,并在应用程序的新组件模型中完全使用它。

我的理解是,如果您导入从另一个包扩展的包,您只会得到“最新”包,而不是通过扩展构建的包和汇总的 Medium7 总信息。

示例中通过将常量 SensorX.component 从有效的 C 更改为无效的 A 或 B 来说明这一事实。

但是,如果我创建了 Medium7 的本地实例,那么我将获得 Medium7 的完整信息。我可以在 SensorX 中做到这一点,标记为问题 1 - alt 2。我也可以选择这种基板来测量系统配置并标记为 Question 1 alt 3。我认为这是更具可读性的代码。

  1. 但是如何使 Medium7 的所有内容在本地可用?我必须为我需要的每个常量在本地定义一个新常量,正如我在这里使用 sensorX.component 展示的那样吗?一般来说,您可能希望在模型中访问介质的各种属性,并且方便放入包中

  2. 另外我希望我可以导入适用于 Medium7 的连接器 LiquidCon,而不是在 Sensor7 包中再次编写该代码。按建议导入不起作用。还有其他方法吗?我只测试了 JModelica 2.4 中的代码,它可能是一个错误?

希望对这两个问题提供一些意见。/ 简·彼得

在问题感兴趣的应用程序代码 d12_app7 下方,然后是相关的库 DEMO_v12。我已经标记了这两个问题的代码更改注释,就代码而言,它是针对问题 1 alt 1 的。

最后是库代码 DEMO_v12

0 投票
0 回答
109 浏览

python - 在仿真期间访问 FMU 系统变量

我有一个试图在 JModelica 中模拟的 FMU。input参数需要参考JModelica FMU仿真中部分变量的当前状态。但是,我无法访问这些。

阅读文档,我会相信这些功能.get_variable_nominal().get()会提供对这些功能的访问,但事实并非如此。

代码的基本结构如下:

如果在 的地方.some_function("object.variable_name"),我使用.get_variable_nominal("object.variable_name"),该函数返回一个浮点值1.0(如果我指定不同的 FMU 变量,我似乎得到不同的任意值)。而使用.get("object.variable_name")FMUException: Failed to get the Real values.则返回错误。我在模拟开始时期望的float值是大约303.

请注意,如果使用固定输入值运行 FMU 模拟,则其行为正确,因此正确的值确实存储在模型中。

感谢任何可以帮助我了解这里发生了什么的人。

0 投票
2 回答
1071 浏览

python - 使用 pyfmi 库在 python 中加载 fmu 时出错

我已经安装了 PyFMI 库并尝试在 python 中加载由 GT-Suite 创建的 fmu。

我正在关注 jmodelica 的本教程:

https://jmodelica.org/pyfmi/tutorial.html

这组发出警告

当我尝试加载 fmu 模型时

我收到一个错误

有人可以帮我弄这个吗。该怎么办?

'pyfmi.check_packages()' 的输出

0 投票
1 回答
482 浏览

python - 如何解决 - FMUException: 从站初始化失败

我是 FMU 世界的新手,并从它开始。我正在尝试在 Python 中加载和模拟在 GT-Suite 中创建的 FMU。我在加载 FMU 时很难解决错误,但最终可以做到。我正在关注jmodelica 教程

现在,当我尝试模拟模型时出现错误。错误是:

可能是什么原因?我的 .fmu 文件是否有问题,因为当我尝试加载和模拟从fmi-standard下载的 fmu 时,一切正常。

'RoomHeating_OM_RH.fmu'来自fmi 标准

0 投票
0 回答
130 浏览

python - JModelica transfer_optimization_problem 方法的变化?

我相信 JModelicatransfer_optimization_problem方法发生了未记录的更改。如果有这样做的新方法,我想知道,因为我是 JModelica 的新手。我正在关注 JModelica 2.2 的手册,我注意到

不存在,但这确实:

但是这一行返回一个错误:

错误:

0 投票
1 回答
320 浏览

python - 使用 pyfmi 创建 2 元组作为 fmu 模型的 model.simulate() 的输入时出错

我在 gt-suite 中创建了一个 fmu。我正在尝试使用 python PyFMI 包在 python 中使用它。我的代码

文档说,model.simulate 将输入作为其参数之一

'InputVarI','InputVarP' 是输入变量,u_traj,v_traj 是数据矩阵。

我的代码给出了一个错误给出了一个错误 -

input_object 创建错了吗?有人可以帮助如何根据文档正确创建输入元组吗?

0 投票
1 回答
416 浏览

python - FMUException: 未能设置实验

我有一个在 GT-Suite 中创建的 fmu,并试图在 python 中使用它。

我遵循了 jmodelica 教程

我的 fmu 已加载,但是当我尝试运行 model.simulate 步骤时会引发错误

我曾尝试在我的电脑的多个环境中运行它,但遇到了同样的错误。谷歌搜索了很多,但找不到任何东西。有人可以帮我解决这个问题吗?

0 投票
2 回答
617 浏览

modelica - matrix singular under determined linear system not solvable

Following this question, I modified my code to:

However, I get the preprocessing warning of

[1] .... Translation Warning

Iteration variables with default zero start attribute in torn nonlinear equation system:

which doesn't make sense but I assume I can safely ignore, and the compiling error of:

Matrix singular!

under-determined linear system not solvable

which had also been previously reported here. if I remove the lines

and

and changing

works perfectly fine. However, setting Muk to zero, which theoretically the same thing leads to the same error as above! I would appreciate if you could help me know what is the problem and how I can resolve it.

P.S.1. On the demo version of Dymola the simulation test finishes with no errors, only the warning:

P.S.2. Using JModelica, removing the noEvent and using the python code:

it solves the model blazingly fast for small values (e.g. 0.1) of Muk. But again it gets stuck for bigger values. The only warnings are:

0 投票
2 回答
289 浏览

emscripten - 问题:使用 emscripten 从 jmodelica 编译 FMU c 代码

问题

如果我尝试使用 emcc 编译 c 代码(来自 JModelica 导出的 FMU),我会收到一个错误,即找不到头文件“gnu/stubs-32.h”。

错误

我已经尝试通过安装 libc6-dev:i386 为编译器提供所需的头文件。但它不起作用,因为在 64 位机器上编译 32 位软件。来自 emscripten的人已经告诉我,没有可用的 32 位版本的 emcc 编译器。所以我认为唯一的方法是继续使用64位......

我在 gnu/stubs.h 中找到了负责选择错误头文件的文件:

因此我得出结论,__LP64__没有定义但应该定义为能够使用 64 位头文件。

有谁知道我如何能够用 emcc 编译 c 代码?

添加(添加 16.08.2019)

我又开始了一次尝试:

不使用系统头文件进行编译emcc -I /home/osboxes/Programme/JModelica/include/RuntimeLibrary/ -I /home/osboxes/Programme/JModelica/ThirdParty/FMI/2.0/ BouncingBall.c会导致此错误'linux/limits.h' file not found

所以我访问了包含“linux/limits.h”的文件。它是 JModelica 的头文件,名称为/../JModelica/include/RuntimeLibrary/jmi_utils.h

所以我通过传递emcc -I /home/osboxes/Programme/JModelica/include/RuntimeLibrary/ -I /home/osboxes/Programme/JModelica/ThirdParty/FMI/2.0/ BouncingBall.c -DRT给 emcc 编译器来定义“RT”,一切正常工作。

但是变量 RT 和 NRT 是什么?这样做我是否需要担心一些事情?


我的环境:

  • Ubuntu 18.10(64 位)
  • JModelica(版本 r12614)
  • Emscripten(emcc:1.3820 / clang:6.0.1 / 目标:x86_64-unknown-linux-gnu / 选定的 gcc:/usr/lib/gcc/x86_64-linux-gnu/8)
0 投票
0 回答
297 浏览

openmodelica - 无法在 PyFMI 中模拟 OpenModelica ThermoSysPro FMU

运行 64 位 Windows 10。Anaconda 安装 PyFMI 和 pip OMPython。

我想使用 OMPython 自动在 Python 中运行 Rankine Cycle 模型(使用 ThermoSysPro 组件)来创建 FMU,然后使用 PyFMI 来模拟它。

我已经设法使用这种方法在 ThermoPower 库中模拟了布雷顿循环,它也在模拟循环的一部分。

但是,一旦我添加了 Exchanger 组件(dynamicExchangerWaterSteamFlueGases),它就会停止工作。

如果不设置 log_level,错误消息是:

更新

RankineCycle_log.txt 给了我一个 FMU 状态错误,但我不确定如何解决这个问题。