modelica相关内容

如何显示Modelica库的层次结构?

假设我有一个由其他人构建的Modelica库,我想知道详细信息并重写这个库?我如何知道此库中组件的继承层次结构? 下图是一个示例,但我不确定如何生成这种层次结构图。 推荐答案 我曾经尝试过绘制这样的图表,我必须承认成功有限。对于非平凡的示例,图表会变得非常大,特别是当您组合继承和组件视图时。您知道您的图像是由工具创建的还是手动改进的? 以Modelica.Mechanics ..
发布时间:2022-06-20 17:47:04 其他开发

Dymola、空白和版本控制

我在Dymola中打开了一个Modelica库,更改了一行,关闭了Dymola并单击了&“全部保存”,现在TortoiseSVN显示了数百个更改的文件,而不是我想要做的更改了一行的文件。所有这些变化似乎都是迪莫拉引入的空格或换行符。 当然,我现在可以小心地只提交我更改的文件(并恢复其余的文件),但这会使提交比需要的更耗时、更容易出错。或者我可以全盘承诺,但这让我的同事很难审查这一变化。此外,它感 ..
发布时间:2022-04-03 19:09:24 其他开发

条件组件声明和以下 if 等式

我正在尝试构建一个模型,该模型将根据是否存在某些组件(在我的情况下为流体端口)具有略微不同的方程. 下面的代码不起作用: 参数布尔值 use_component=false;组件组件 if use_component;方程如果 use_component 那么组件.x = 0;万一; 我该如何解决这个问题? 解决方案 如果要使用条件组件,需要注意一些限制.Modelica 3.3 ..
发布时间:2022-01-20 23:57:41 其他开发

Modelica 中的稳态初始化

例如,我有一个初始高度为 0.1 米(所有车轮垂直载荷 = 0)的多体车辆模型,当 sim 运行时,车辆会掉到地上,10 秒后,它达到稳定状态. 我想知道是否可以在稳定状态下精确地初始化模型?我读了一些关于同伦命令的东西,但由于缺乏示例,我什至不确定它是否是我正在寻找的东西,所以我无法将它实现到我的模型中.我想知道这种初始化问题是否还有其他解决方案? 提前致谢! 解决方案 感谢 ..
发布时间:2022-01-19 00:05:28 其他开发

Modelica 库使用不同的 MSL 版本

我想在 Dymola 中一起使用两个 Modelica 库,所以为了方便起见,我编写了一个小脚本,loadLibraries.mos 来打开这两个库.但是他们使用不同版本的 MSL(3.2.1 与 3.2.2),由顶级 package.mo 中的 uses 注释定义: annotation(uses(Modelica(version="3.2.1"))); 我们开发的库使用的是3.2.2,使用 ..
发布时间:2021-11-10 23:10:19 其他开发

Modelica 库使用不同的 MSL 版本

我想在 Dymola 中一起使用两个 Modelica 库,所以为了方便起见,我编写了一个小脚本,loadLibraries.mos 来打开这两个库.但是他们使用不同版本的 MSL(3.2.1 与 3.2.2),由顶级 package.mo 中的 uses 注释定义: annotation(uses(Modelica(version="3.2.1"))); 我们开发的库使用的是3.2.2,使用 ..
发布时间:2021-11-10 23:09:17 其他开发

dsin.txt 中的数据类型是如何定义的?

我目前正在开发一个 Python 接口,用于使用 Dymola 运行 Modelica 模拟,但我找不到关于 dsin.txt 文件中使用的数据类型的任何文档: ...0 0 0 0 4 328 #timeToEmpty-1 0 0 100 2 272 # 级别0 0 0 0 3 256 # der(级别)-1 10 0 0 1 280 #initialFlowRate0 0 0 0 6 320 ..
发布时间:2021-09-11 20:14:53 其他开发

Modelica Flow Simulation 表示除以零

我正在尝试模拟管道中的流量,该管道开始部分充满,然后逐渐充满.一旦它满了,流量方程就需要改变.我已经尝试了以下代码,但是一旦管道已满,我就会得到除以零的错误.TestTrap1 是显示问题的演示.一旦管道已满,似乎某些等式不正确.我正在使用 openmodelica 来运行它. 包 FlowPackage封装接口扩展 Modelica.Icons.InterfacesPackage;//将此用 ..
发布时间:2021-06-03 19:00:30 其他开发

部分模型的 Modelica 数组

设 A 为部分模型,C、D 为扩展 A 的模型.给定一个模型 部分模型 X一个[3];结束 X; 我如何实例化 X,例如类似的东西 A X.a = {C,D,C}; 更新:我尝试了 2 个变体.一个是 包P部分模型 A 端 A;模型 B 扩展了 A;B端;模型 C 扩展了 A;C端;部分模型 X一个[3];结束 X;模型 Y 扩展 X(a={c,b,c});乙乙;Cc;Y端;结束P; ..
发布时间:2021-06-03 19:00:27 其他开发

Dymola 中的 FMU-Export:是否可以使 Modelica 枚举类型变量“可调"?导出为 FMU/FMI 时

我在一个 Modelica 模型中实现了三个类似的出版物,使用枚举类型变量来选择出版物.目标是通过在线更改枚举类型变量的值来切换计算方法(即在出版物之间). 计算包括三个步骤,每个步骤都有自己的枚举变量.这允许混合计算方法,例如通过设置第1步根据出版物1计算,第2步和第3步根据出版物2计算. 每一步都是这样的 model Calculation_step类型 pubSelect = 枚举 ..
发布时间:2021-06-03 19:00:24 其他开发

在 Modelica 中寻找 PID 调整库

我正在使用 Modelica 标准库构建一个控制系统.但是我在调​​整PID系统中的参数时遇到了麻烦,所以我想使用一个可以对PID系统进行自动调整的库.在谷歌上搜索后,Modelica 中似乎没有这样的库.我的问题:有人可以为 PID 系统推荐一个自动调整库吗? 解决方案 你应该看看 Modelica IndustrialControlSystems (https://github.com ..
发布时间:2021-06-03 19:00:22 其他开发

Dymola中非线性系统初始化时如何保证收敛

Dymola 中非线性系统初始化时是否有提高收敛能力的指南?通常,连接器包含起始值,但它们并不总是适合我构建的模型,因此在初始化期间可能会出现发散问题.我怎样才能避免这个问题? 解决方案 Dymola 用户手册第 1 卷有几个章节,涉及非线性系统的初始化.在 Dymola 2020 中,章节是: 5.6.8 仿真过程中模型中非线性方程的初始猜测 5.8.3 区分起始值 5.8.4 ..
发布时间:2021-06-03 19:00:19 其他开发

缺少起始值

这是一个后续问题.在我解决了结构奇异性错误之后.它给我一个新的错误说 Hochdruckreiniger2:迭代变量“der(Hochdrucktank.V)";缺少起始值!迭代变量“der(Hochdrucktank.medium.h)"缺少起始值迭代变量“der(Niederdrucktank.V)"缺少起始值!迭代变量“der(Niederdrucktank.medium.h)"缺少起始值 ..
发布时间:2021-06-03 19:00:16 其他开发

动态管道系统

我尝试使用 Modelica 在 Twinbuilder 中对液压系统进行建模.但是我总是遇到错误,我认为这与收敛问题有关.为了理解问题是什么,我将我的系统简化为动态管道、固定边界和扫描体积,其运动将由正弦函数给出.但是在这种简化的情况下,我仍然遇到错误.即使收到警告,我也能够编译模型.当我尝试求解模型时,.它没有解决.我想问一下你对这个问题有什么建议吗? 这是模型的框图 我在尝试求解 ..
发布时间:2021-06-03 19:00:13 其他开发

初始化系统结构单一

我尝试在 modelica 中为泵建模,但它提示我一个错误: 初始化系统在结构上是单一的.以下变量无法与任何等式匹配:Swept1.medium.pSwept1.medium.hNiederdrucktank.levelNiederdrucktank.medium.hHochdrucktank.levelHochdrucktank.medium.h前(Sweet1.medium.phase)预( ..
发布时间:2021-06-03 19:00:10 其他开发

在 Dymola 中初始化期间非线性求解器无法收敛

我在使用 ThermoSysPro 库的初始化过程中遇到错误. 看起来Turbine5.Pe 比Turbine2.Pe 大,所以结果是否定的.不过我查了一下参数,应该不会有这样的问题. 这是因为非线性求解器无法求解下图中的方程吗? 解决方案 没有足够的信息,我建议在仿真设置中设置细节和/或非线性迭代>调试>非线性求解器诊断以获得更多信息.> 导致问题的完整表达式是sqrt(( ..
发布时间:2021-06-03 19:00:06 其他开发

尝试生成随机变量时未找到翻译错误类

我正在尝试遵循 这个例子 生成随机时间函数: 模型测试数据扩展 Modelica.Icons.Example;参数 Real k = 1.0;真实 theta1;真实 theta2;参数 Real tau = 1.0;参数 Modelica.SIunits.Period samplePeriod = 0.05;参数整数 globalSeed = 30020;输出真正的omega1;算法当初始() ..
发布时间:2021-06-03 19:00:03 其他开发

如何在 Dymola 中通过更改参数继续模拟运动?

我正在构建电梯模型,想在 Dymola 中模拟从起点到固定目的地的运动.在每次模拟之后,例如电梯到了一个目的地.我想从上一个位置继续移动到下一个位置.在我的模型中,使用了一个 PID 控制器,它有两个输入(目的地位置和当前位置).我每次都复制“dsfinal"输出文件,并将其定义为“dsin"输入文件作为下一次的起始条件.但是接收定义的目标位置的输入信号总是记住第一次模拟中的那个.这意味着,PID ..
发布时间:2021-06-03 19:00:00 其他开发

OpenModelica 中的可变采样频率

我指的是这篇文章: 具有不同采样范围的示例函数的替代方案 我想测量具有可变采样频率的 RMS 值(或平均值),我可以将其作为输入信号输入. 几乎适合我需要的建议方法如下: 模型 RMS常数 Real f_max = 2*2*asin(1.0);常数 Real f = 1+abs(2*asin(time));真实信号 = sin(time);真实有效值 = 如果时间 这会引发 ..
发布时间:2021-06-03 18:59:51 其他开发