问题标签 [openmodelica]

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 投票
0 回答
1092 浏览

modelica - 如何避免封闭媒体电路中的循环相等错误?(模型)

我正在尝试使用 thermo.fluid 库组件(在 OpenModelica 中进行编译)在 modelica 中构建泵送水热交换回路的模型。定容泵的入口连接到加热管组件的流口,表面上是由泵驱动的回路中的“最后”级,因此回路完成。

当我的介质从环境源、泵、系统流出到环境接收器时,该系统工作,但现在我已经“完成了电路”,模拟失败并且我收到“循环相等”错误. 这在物理上有点意义,因为压力型变量需要参考基线,但似乎我系统中基于摩擦的元件会通过系统产生压力损失,并且泵将正常运行,因为压力会到达在通向泵的管道中为零。

关于如何清除这些“循环相等”错误或我应该注意的特定陷阱的任何想法?会不会是定容泵运行干扰了压力计算,我应该使用理想的泵库组件?

谢谢你的想法!

0 投票
1 回答
602 浏览

modelica - 如何为具有多体组件的移动滑轮建模

我正在努力自学 Modelica。到目前为止,我已经阅读了所有可用的书籍,并且我还从 github 下载了 Michael Tiller 出色的“Modelica By Example”代码。我希望有更多的多体示例可用,这些示例使用 Dymola 和 OpenModelica 中的标准多体库。我试图通过构建一个移动滑轮来学习如何使用多体组件,也就是说一个在非惯性参考系中旋转的滑轮。例如,这是一种用于滑车和滑车的滑轮。这种滑轮将有 3 个连接到任意平移组件的连接器,并且可能会使用具有不同长度的棱柱组件。

谁能指出我如何在 Modelica 中制作滑轮的正确方向,或者我可以在哪里找到类似多体模型的示例?

谢谢,

0 投票
1 回答
783 浏览

input - dymola 模型的导出需要其输入的导数

我想将 Dymola 模型导出到 Simulink。该模型由衍生块 (der)、RealInput、RealOutput 和连接组成。

当我翻译这个模型时,出现以下错误:

“该模型需要一些输入的导数,如下所列:1 u”

对我来说为什么需要导数是合乎逻辑的,但是为什么导出获取导数很重要,为什么会导致错误?出现此错误,我无法继续导出。我知道simulink中有衍生块,但是实际模型更复杂,并且出现了相同类型的错误。有没有可能避免它?我的 dymola 版本是 2014(64 位)。我使用“Visual Studio 2010/Visual C++ 2010 Express”作为编译器。

0 投票
1 回答
130 浏览

xml - OpenModelica:仿真后创建的“_info.xml”文件太大。怎么减呢?

我使用 OpenModelica 在模拟后生成的“.xml”和“.exe”文件(_init.xml、_info.xml 和 .exe)创建了一个工具。这个工具有一个用户友好的 Excel 界面来管理这个已经编译的模型。

我的问题是生成的文件的大小,尤其是“_info.xml”太大(120 Mo)。Modelica 模型当然也很大(由于模型的离散化部分,有 25000 个变量)。

为什么这个文件这么大(很多变量的描述都是重复的,看起来没用)?有什么减小尺寸的小窍门吗?

0 投票
1 回答
2045 浏览

modelica - OpenModelica 和 Dymola 中的 DASSL 求解器

我对 OpenModelica 和 Dymola 中的事件处理有疑问。以下模型将输入信号限制在某个阈值。这是为了避免 log() 的否定参数。因此,会创建一个事件,并且随着事件变为真,参数“l”的变量会发生变化。

据我了解,DASSL 求解器应识别事件并自动调整其步长以正确解决事件。给定的间隔数仅用于定义保存到输出的点数。

在 Dymola 中使用 DASSL 求解模型“CompleteModel”10 秒,间隔数为 100 可以正常工作,变量“l”限制为 0.05。仅用 10 个区间求解模型失败。奇怪的是,OpenModelica 中的 DASSL 可以正确地求解模型,与给定的间隔数无关。

可以预期这种行为吗?Dymola 和 OpenModelica 的 DASSL 求解器之间是否存在很大差异?在我看来,使用 DASSL 的模型的正确解决方案应该独立于(保存的)间隔的数量(就像在 OpenModelica 中一样)。

0 投票
1 回答
1262 浏览

modelica - Modelica:创建简单的流体模型

我正在尝试创建流组件的模块化模拟(起初不使用标准 Modelica.Fluid,以方便学习和简化)。我决定从只担心质量流量(而不是温度/焓)开始,并创建了一个Stream如下所示的连接器:

使用此连接器,我想跟踪整个简单系统的压力和流量:

我为这些组件创建了以下模型:

我可以创建这些模型的实例并将它们连接到一个单独的模型中。但是,我遇到了一个我认为是边界条件的问题。我想指定输入流体源的压力。然后,当流量流向油箱时,阀门将产生压降。这是由罐内标称压力和流体源之间的差异决定的,应该可以正常工作。

问题是当泵遇到流体槽时(或者如果我有一个泵直接进入水箱)。设置流体槽的压力会导致我的泵出现问题,因为它也会设置泵出口的压力(它们已连接)。泵的压力需要是入口压力和流量的函数(它应该给系统增加一些压力),并且水槽的压力应该基于此计算。然而,在计算 dp 时也需要这种压力......所以我最终绕了一圈。

我做错了什么,有没有更好的方法来实现这样的系统?

谢谢!

编辑:我忘了提到设定点(泵尚未实现)是在使用这些模型和方程的主模型中设置的。所以我所有的模型都是平衡的。(请参阅我对下面答案的评论)。

0 投票
1 回答
272 浏览

modelica - 在 Modelica 中液位 <= 0 时限制水箱流量

我有一个正在创建的坦克模型,如下所示:

我怎样才能做到这一点,当液位 <= 0 时,水箱将不允许任何负值流动(没有端口可以有流体离开,但流体仍然可以进入)?我觉得我错过了一些微不足道的东西,但如果没有太多方程(超定系统),似乎找不到方法。

谢谢

0 投票
1 回答
378 浏览

modelica - 未指定维度的 Modelica 数组

给定一个模型,其中包含未指定大小的连接器数组 x,例如

x 如何以特定大小实例化,例如像这样的东西?

0 投票
1 回答
67 浏览

modelica - Modelica 数组方程

在第 99 页的 Modelica 3.3 rev 1 语言规范中,有以下参数声明。

[1]在这种情况下是什么意思?

0 投票
2 回答
767 浏览

modelica - 在 Modelica 中动态切换连接

假设我有一个涉及各种基本类型(Real、Integer、String、Boolean)的大型连接器。如何根据状态事件切换连接?我想做这样的事情:

这不起作用。如何在 Modelica 中正确表达?

根据 Adrian Pop 的评论回答。

更新:上面的模型是错误的,因为如果没有事件发生,ocon 将永远输出 icon[1] 的初始值,这不是您对开关的期望。请注意,这不是由于错误的答案,而是由于我对答案的错误解释。以下模型基于 Michael Tiller 的回答。