- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定一个在动态建模实验室 (Dymola) 中触发模拟的 Python 脚本。
我的目标是获取模拟轨迹的数据,但采样间隔不同。例如。我希望以 1 秒的间隔对从 0 秒到 1000 秒的 transient 部分进行采样,并以 100 秒的间隔对从 1000 秒到 100000 秒的稳态部分进行采样,而不必执行具有不同开始时间、停止时间和输出的两次模拟间隔。
触发 transient 部分模拟的代码摘录:
[result, simulation_result] = dymola.simulateExtendedModel(problem=problem,
initialNames=["input1", "input2", "input3"],
initialValues=[input1, input2, input3],
finalNames=output_names,
outputInterval=1,
startTime=0,
stopTime=1000,
resultFile=result_filename)
trajectory_size_transient = dymola.readTrajectorySize("simulation_result_python.mat")
sim_res_transient = np.array(dymola.readTrajectory("simulation_result_python.mat",
output_names,
trajectory_size_transient))
模拟稳态的代码:
[result, simulation_result] = dymola.simulateExtendedModel(problem=problem,
initialNames=["input1", "input2", "input3"],
initialValues=[input1, input2, input3],
finalNames=output_names,
outputInterval=100,
startTime=1000,
stopTime=10000,
resultFile=result_filename)
trajectory_size_steady = dymola.readTrajectorySize("simulation_result_python.mat")
sim_res_steady = np.array(dymola.readTrajectory("simulation_result_python.mat",
output_names,
trajectory_size_steady))
值“outputInterval”是将结果写入轨迹的时间间隔。如所见,我必须执行两次模拟并稍后叠加结果。我宁愿进行一次模拟,并设置两个不同的“outputInterval”值
startTime=0
stopTime=10000
这样我就可以从一次模拟中获得两条轨迹。
有人知道这是否可行吗?或者也许还有其他方法?
最佳答案
我认为以下内容可以满足您的需求。虽然有点麻烦,但值得一试:
tgrid = [0,10,13.75,97]'
save tgrid.mat tgrid -v4
dsin.txt
看起来像这样:# Method tuning parameters
double method(27,1)
2 # grid type of communication time grid, defined by
# = 1: equidistant points ("Increment/nInterval")
# = 2: vector of grid points ("tgrid")
# = 3: variable step integrator (automatically)
# = 4: model (call of "increment" in Dymola, e.g.
# incr=Time > 2 then 0 else 0.1
# dummy=increment(incr))
# grid = 1,3 is stopped by "StopTime"
# grid = 2 is stopped by "tgrid(last)"
# grid = 4 runs forever (stopped by model)
1 # nt Use every NT time instant, if grid = 3
3 # dense 1/2/3 restart/step/interpolate GRID points
0 # evgrid 0/1 do not/save event points in comm. time grid
通常需要更改以下内容:(1) 第 3 行 ( 2
) 中的标志激活 tgrid
的使用-向量。(2) 最后一行中的标志 ( 0
) 禁止在事件中创建网格点。
alist.exe
应用 tgrid
-矢量至dsin.txt
使用命令行: "<DymolaInstallDir>\Mfiles\alist.exe" -b "<DymolaWD>\dsin.txt" "<DymolaWD>\tgrid.mat" "<DymolaWD>\dsin.mat"
这应该创建一个文件 dsin.mat
新网格存储在其中。如果重新翻译模型,则不应覆盖该文件。从 Dymola GUI 进行模拟将忽略 dsin.mat
中的设置.
在 DymolaWD
执行dymosim.exe -s dsin.mat
,对于给定的示例,这应该产生以下结果:
Integration terminated successfully at T = 97
CPU-time for integration : 0.031 seconds
CPU-time for one GRID interval: 10.3 milli-seconds
Number of result points : 4
Number of GRID points : 4
Number of (successful) steps : 492
Number of F-evaluations : 19726
Number of Jacobian-evaluations: 0
Number of (model) time events : 0
Number of (U) time events : 0
Number of state events : 0
Number of step events : 0
Minimum integration stepsize : 0.000732
Maximum integration stepsize : 20
Maximum integration order : 7
Calling terminal section
... "dsfinal.txt" creating (final states)
并创建一个文件dsres.mat
包含模拟结果。
关于python - dymola.readTrajectory - 不同的采样时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55059721/
我正在寻找一种更好的方法在 Dymola 中进行模拟后进行数据后处理,我可以使用 Dymola 安装附带的 MATLAB 脚本,但是是否有更多用户友好的后处理工具?比如我想获取10s到100s之间的数
Dymola 中的某些设置可以通过在“命令”窗口中设置标志来更改: 标志的一些示例是: 高级自动格式化 Advanced.PedanticModelica Advanced.LogStartValue
我正在寻找一种更好的方法在 Dymola 中进行模拟后进行数据后处理,我可以使用 Dymola 安装附带的 MATLAB 脚本,但是是否有更多用户友好的后处理工具?比如我想获取10s到100s之间的数
在 dymola 中,错误消息会使用行号来显示错误来源,但文本编辑器没有显示行号,我如何在 dymola 中启用此功能? 最佳答案 Dymola 在右下角的状态栏中显示当前行号。 在 Dymola 2
我需要从 dymola 的建模对象中获得相当好的图像。由于模型的大小,截屏/使用截图工具会导致图片质量很差。 有没有办法导出我在 dymola 中绘制的“图片”? 最佳答案 您可以将模型导出为可缩放和
在 https://trac.modelica.org/Modelica/ticket/2229#comment:2据称,当对库进行更改时,Dymola 能够自动更新转换脚本。我正在搜索 Dymola
我在使用 Dymola 2020 转换 Modelica 模型时遇到问题:当我尝试转换模型时,出现以下错误消息: "unknown internal error in Dymola". 模型前几天正在
我们正在尝试测试 Dymola 的联合仿真选项并创建了一个 fmu 文件。我们从 www.fmi-standard.org 安装/构建了 FMILibrary-2.0b2 和 FMUChecker-2
我经常遇到如下所示的初始化问题,它说某种非线性求解器会尝试处理这个问题。据我所知,Dymola在得到原始DAE系统的BLT形式后,使用牛顿法求解方程,那么这个非线性求解器到底是什么? 最佳答案 一般来
我正在使用 Dymola 构建动态模型,但根据我的经验,dymola 经常崩溃,尤其是在使用它几个小时后,有时当我将 View 更改为模拟或模型时,它会崩溃而没有任何迹象。我每天可以遇到这个问题 3-
Dymola 中是否有命令集或引用手册?例如,如果我想知道当前的工作目录,我应该使用哪个命令?我尝试了 pwd 和 dir,但它们不起作用。 最佳答案 有多个来源可以找到我检查的命令 - 没有特殊顺序
我一直在 Dymola 中对许多简单的区域供热网络进行建模和仿真,并且在初始化过程中经常遇到错误。 我们模拟的系统包括 生产者:两个压力边界 - 源和汇。源头压力通过 PI 进行控制,确保源头压力使得
是否有指定模拟的标志/脚本方式: Store variable at events,同Simulation Setup\Output\Store variables at events 等距时间网格,
我在 Dymola 中打开了一个 Modelica 库,更改了一行,关闭了 Dymola 并单击了“全部保存”,现在 TortoiseSVN 显示了数百个更改的文件,而不是我打算更改一行的一个文件。所
在 Dymola2020x 中使用多核功能是否总能加快求解速度?我的观察是将 Advanced.ParallelizeCode=true 用于 DOF~23k 的模型;编译时间与单线程相当,但默认求解
使用 dymola 模拟模型,根据所选的集成方法,我会得到不同的结果。所以我的问题是:为什么选择哪种方法? 最佳答案 理想情况下,方法的选择应基于哪种方法能够最快地给出足够接近准确结果的结果。 但我们
在 Dymola 中,我经常遇到非线性系统初始化失败,或者可能是大型热流体系统中难以求解的刚性系统,但对于简单的系统,不会出现此类问题。我的问题是: 所以我想知道求解非线性系统模型的最大能力是多少?例
我所在的一个团队使用 Dymola 并在很长一段时间内使用它来模拟一个相当复杂的模型。 他们最终得到大约 150gb 的大输出文件 (.mat),因此在后期处理时会出现问题。 我从事 IT 工作,毕业
我所在的一个团队使用 Dymola 并在很长一段时间内使用它来模拟一个相当复杂的模型。 他们最终得到大约 150gb 的大输出文件 (.mat),因此在后期处理时会出现问题。 我从事 IT 工作,毕业
我在 Dymola 中遇到函数调用错误,因此我尝试查找原因以及在模型中调用该函数的位置。下面是错误信息: 原因是焓为负。 根据报错信息,可以找到参数的定义,但是找不到模型调用函数的地方。 所以如果我想
我是一名优秀的程序员,十分优秀!