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

modelica - 关于在 OpenModelica 中使用 MassWithStopAndFriction 和硬停

我对 Modelica.Mechanics.Translational.Components.MassWithStopAndFriction 中的硬停有疑问。据我所知,质量不应超出区间 (smin, smax) 但实际上在我的示例中包含以下内容:

难道我做错了什么?

0 投票
2 回答
1290 浏览

modelica - 在 OpenModelica 中对封闭式液压循环进行建模

我想模拟一个封闭的液压循环,可以在 Modelica 标准库/流体/示例/加热系统中找到。对于加热系统以及我的(简约)示例,我遇到了同样的问题:系统过度确定。您可以在接下来的讲座中发现 HeatingSystem 是一个“坏例子”,所以我想这是一个众所周知的问题,但我并不真正明白这一点。 http://www.modprod.liu.se/MODPROD2011/1.252944/modprod2011-day2-talk3-Keynote-Francesco-Casella-Control-and-Modelica.pdf(第 20 页)

我的例子是:

一个泵

抵抗

它们与一个

整个系统是:

任何人都可以给我一个提示问题的全部内容吗?

0 投票
1 回答
683 浏览

modelica - 在 OpenModelica 中为周期性时变实变量建模

我要建模的是一个周期性的时变实变量,下面的代码无法模拟。有人有建议吗?

所有错误信息如下:
Translation 18:32:29 0:0-0:0 Internal error Transformation Module failed!
翻译 18:32:29 0:0-0:0 内部错误 BackendDAETransform.reduceIndexDummyDer 失败!
翻译 18:32:29 0:0-0:0 内部错误 BackendDAETransform.selectDummyState: no state to select
Symbolic 18:32:29 10:3-10:13 模型结构奇异,错误发现排序方程 0.0 = 1.0; 对于变量

0 投票
2 回答
1341 浏览

modelica - Modelica - 在 OpenModelica 中为滑块元素建模

流变模型通常使用三个(或四个)基本元素构建,它们是:

  • 弹簧(例如存在)Modelica.Mechanics.Translational.Components。它的方程是 f = c * (s_rel - s_rel0);

  • 阻尼器(阻尼器)(也存在于 中Modelica.Mechanics.Translational.Components)。它的方程f = d * v_rel;适用于线性阻尼器,可以很容易地修改以模拟非线性阻尼器:f = d * v_rel^(1/n);

  • 滑块,在这个库中不存在(据我所知)......它的方程是 abs(f)<= flim. 不幸的是,我真的不明白如何编写相应的 Modelica 模型......

我认为这个模型应该扩展Modelica.Mechanics.Translational.Interfaces.PartialCompliant,但问题是(在和f之间测量的力)只有在大于...时才应该修改......如果滑块扩展,则意味着它已经遵循方程 并且 添加方程给了我一个错误“模型的一个独立子集的方程和变量数量不平衡”,我无法真正解释,即使我明白如果,方程是无用的......flange_bflange_aflimPartialCompliantflange_b.f = f;flange_a.f = -f;f = if abs(f)>flim then sign(f)*flim else f;abs(f)<=flimf = f

实际上,滑块元件不会产生新的力(就像弹簧一样,取决于它的应变,或者就像阻尼器一样,取决于它的应变率)。力是滑块元素的输入,有时会修改(当该力大于元素允许的限制时)。这就是为什么我真的不明白我应该将这种力定义为输入还是输出......

如果您有任何建议,我将不胜感激!谢谢

在前两条评论之后,我决定添加一张图片,希望能帮助您理解我试图建模的行为。 不同的流变元素 在左侧,您可以看到用于开发流变模型的四个要素:

  • 一:春天
  • b : 线性阻尼器(阻尼器)
  • c : 非线性阻尼器
  • d : 滑块

在右侧,您可以看到我试图重现的行为:a 和 b 是与弹簧的两个关联,c 和 d 分别是预期的应力/应变曲线。我正在尝试对相同的行为进行建模,只是我考虑的是力量而不是压力。正如我在对 Marco 回答的评论中所说,曲线 a 让我想起了二极管的行为:

  • 如果施加在构件上的力小于滑动极限,则两个法兰之间没有相对位移
  • 如果力大于滑动极限,则系统传递的力等于极限,法兰之间存在相对位移
0 投票
1 回答
483 浏览

modelica - 如何从算法部分提取值?

我正在使用与代数方程混合的抛物线 PDE,并且所有这些方程都是耦合的。我在 OM(1.9.1)("residualFcn[some number]") 中使用了欧拉方法(Dassl 太慢)和大容差(用于快速模拟)和接收错误(两种类型)。问题是求解器不能t 求解非线性系统(数学上,系统是正确的)。第一个问题是什么类型的方法在 OM 中使用欧拉积分法(显式或隐式或 Crank-Nicholson ......或......)?所以我试图用数字解决它(显式欧拉方法(在“new [N]”下面的代码中)(也许问题可能是CFL条件。),但我有问题(特定采样时间的样本重建)。所以,第二个问题是指重现特定采样时间的值?!在下面的代码中有数组“a [3]”。想法是针对每个“

还有一件事,如果 delta(t)/(delta(x))^2 >= 0.5 (delta(t) 定义用户,并指代方程部分,则 delta(x) 如下面的代码所示,并使用空间离散化在方程部分(经典前馈方法)),是否满足数值稳定性?同样的例子,但算法部分?问候

这是代码:

0 投票
2 回答
270 浏览

modelica - 如何一对一模拟执行 2 个模型?

我试图通过状态图在模拟中一个一个地执行 2 个模型。伪代码如下。在模型测试中,有两个块,stateA 和 stateB。在模拟开始时,执行 stateA。10 秒后,stateA 停止,而 stateB 执行。停止点 v 的值需要从 stateA 转移到 stateB。有人可以给我一些建议吗?非常感谢!



另一件事是为什么我无法在 openModelica 中模拟以下简单示例?

错误:在范围 StateMachine1 中找不到类 initialState

0 投票
1 回答
400 浏览

ubuntu - 绘制未显示在 OpenModelica 中的变量

今天,在 Ubuntu 12.10 中安装了 OpenModelica,并在模拟中运行了其中一个示例。它第一次工作得很好。然后我关闭了 OpenModelica 编辑器中的 Plotting Variables 窗口,当我再次运行相同的模拟时,该窗口没有列出绘图变量,而是仅显示应存储变量的 .mat 文件的路径。如何恢复默认行为?是否有我可以在某处删除的设置文件?

0 投票
3 回答
2072 浏览

modelica - 如何使用前一个区间中的变量值作为方程的输入......?

是否可以使用时变变量的先前值

例如:假设我的管道入口温度为 298K,具有指定的均匀质量流量(m_flow),现在假设我正在使用 100 瓦的加热器加热管道。出口温度将达到假设 302K 的更高温度,现在如果我必须使用这个出口温度作为我的入口温度(从某种意义上说我正在循环水),我会怎么做?

是否可以根据前一个时间步的出口温度更新入口温度的值?因此,对于下一次迭代,入口温度将与前一次迭代中的出口温度相同(换句话说,流体将再循环)。

谢谢

0 投票
1 回答
4254 浏览

modelica - modelica 中的功能集成

我想在Modelica中执行除时间以外的变量函数的集成,但我不知道该怎么做。例如,如何评估 x dx 与上限 5 和下限 2 的积分?

0 投票
1 回答
2445 浏览

modelica - 如何在 Modelica 仿真期间确定上一个时间步的值?

如何在 Modelica 仿真期间确定上一个时间步的值?我有等式Q=m*c*(Ts2-Ts1-Tr),我需要从中提取Ts2价值Ts1

  • Ts2- 是时间步 2 的值
  • Ts1- 是上一个时间步的值
  • Ts是输入信号,它在时间上有变化。每一步都有不同的价值。在我的情况下,时间步长是 1s。其他值是固定的。

我可以在方程变量中设置time吗?例如:

还是应该在这个模型中输入?

关于 Tymofii