问题标签 [dymola]
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.
modelica - 为什么使用 dymola 优化库不遵守参数界限?
我正在尝试使用以下代码在 dymola 库优化中使用 ModelOptimization 函数优化(最小化)变量“排放”:
问题是它不尊重我为变量 x1 和 x2 设置的界限,这些界限需要从 0 到 1(1 到 100%)。如果 SolarThermal 用于电力,排放量将最小化。
这是设置图片: 正如您所见,x1 和 x2 大致从 -0.1 变为 1.1,而它们的最大值应该从 0 变为 1。你知道这是什么原因吗?
任何帮助将不胜感激,因为我有点卡住并且不知道如何继续。谢谢!
c - 是否可以修改 Dymola 的编译器包含路径?
这个问题是由于我遇到的一种情况而提出的
假设我有这些外部文件以及其中的一些声明或定义:
foo1.h
extern void ext_func();
foo1.c
无效 ext_func(){ .... }
foo2.c
我在 foo1.c 中定义了 ext_func() 。然后,在 foo1.h 中我将它声明为extern,因为我想在 foo2.c 中使用它。Modelica_func()是我将在 Modelica 中使用的函数。
编译器总是向我抛出错误 LNK2019抱怨unresolved external symbol,我想这可能是由于头文件找不到匹配的 c 文件的原因。我在 Dymola 工作,我已将所有这些文件放在WorkingFolder/Sources/Include中。但我仍然遇到同样的错误。我希望其他人看到我的代码,所以我不能使用静态或动态库。
如果有人可以帮助我,将不胜感激。谢谢!
events - OpenModelica 内部错误 reinit 调用了错误的参数?
我正在编写一个程序,该程序从功能模型单元生成一个完整的 Modelica 模型。当我在 Dymola 中模拟模型时它工作得很好,但在 OpenModelica 中我得到了这个错误:
触发事件后,我调用reinit(states, fmiGetContinuousStates(...));
where以模型的新状态返回。fmiGetContinuousStates
有人知道是什么导致了这个问题吗?
编辑:这是我的程序生成的模型。我现在有一个错误Error: type in operand to change must be simple type in component <NO COMPONENT>.
solver - Dymola/Modelica 中的静态/准静态求解器?
我知道问这样的问题可能很愚蠢,因为 Dymola 是 Dynamic Model lab 的缩写,我应该使用 modelica/dymola 来解决动态问题。
但是,我仍然想知道是否可以通过使用相同的模型从中获得某种准静态结果?
例如:
对于一个简单的质量弹簧阻尼系统,我们有
F = mx_dotdot+cx_dot+kx
当然,modelica 擅长处理这类问题。我的问题是,有没有办法告诉求解器动态组件(状态)应该全部为零而不修改原始模型?然后在每个时间步,我可以获得一个静态解决方案。
F = kx
提前感谢您的任何答案!
evaluation - Modelica 评估顺序
我真的在 Modelica 规范中找不到任何答案,所以请教你们。规范指出,
A tool is free to solve equations, reorder expressions and to not evaluate expressions if their values do not influence the result (e.g. short-circuit evaluation of Boolean expressions). If-statements and if-expressions guarantee that their clauses are only evaluated if the appropriate condition is true, but relational operators generating state or time events will during continuous integration have the value from the most recent event.
If a numeric operation overflows the result is undefined. For literals it is recommended to automatically convert the number to another type with greater precision.
现在,我想知道,该工具可以选择在积分器步骤中多次评估表达式吗?例如(可能不是一个有效的例子,只是为了让你们知道我想知道什么:))
这将多次打印同一时间,所以我认为正在进行某种迭代。但我真的很想得到一些消息来源的证实。
command-prompt - 从命令提示符执行 dymola 命令
有没有办法从 Windows 命令提示符向 Dymola 传递命令?我想向它传递 Simulate()、openModel 等命令。
modelica - 有没有办法自动更改 Modelica/Dymola 中的目录?
我有以下问题:
我有 20 多个不同的模型,我想一个接一个地模拟,但我想每次都更改模拟目录。
现在我在每次模拟后手动更改目录(从 ./ModelOne 到 ./ModelTwo),我想知道在初始化或转换新模型时是否有办法自动更改它。
问候内夫
modelica - modelica中的时间积分稳定性
我正在 Dymola 中构建一个随时间和空间演化的有限体积模型。空间离散化在方程部分是硬编码的,时间演化是用由 der(phi) 组成的项来实现的。
使用可变步长算法时,Dymola 的时间积分是否总是数值稳定?如果没有,我可以对此做些什么吗?
Dymola 的欧拉积分算法是显式还是隐式欧拉方法?
modelica - 混合模型
我想知道是否可以使用几种单一气体(使用 Modelica 库)创建混合物。如果是,是否有任何文件解释此程序?非常感谢你的回答
matlab - 在 dymola 中控制 modelica 模型,使用 matlab 和命令 importInitial(dsName="dsfinal.txt")
我想从 matlab 控制在 Dymola 中实现的 modelica 模型。在每 x 秒,matlab 读取状态值并计算模型的新参数值并调用 dymola 以使用这些新参数值模拟模型。
我尝试使用前一个模拟的最终值初始化状态,使用 importInitial(dsName="dsfinal"); 然后模拟。
如果我直接在模拟日志中给出命令,这可以工作,但是当我从 matlab 调用它时它不起作用,即使完全相同的命令出现在 dymola 模拟日志中。
有人可以帮忙吗?
谢谢!