【发布时间】:2018-02-09 10:39:20
【问题描述】:
我正在尝试通过 dymola python 接口设置参数和初始值。当我尝试设置一个参数/值时,它可以完美运行,但是当我尝试设置多个值时,它就不起作用了。
工作:
output = dymola.simulateExtendedModel("Wall_to_Py.Test", 0.0, 60000.0, 3326, 0.0, "Dassl", 0.0001, 0, "TryWall", ["rCWall2.T[mNode]"], TstartWall, ["rCWall2.T[mNode]"], True)
不工作:
output = dymola.simulateExtendedModel("Wall_to_Py.Test", 0.0, 60000.0, 3326, 0.0, "Dassl", 0.0001, 0, "TryWall", ["rCWall2.n", "rCWall2.T[mNode]"], [nWall, TstartWall], ["rCWall2.n", "rCWall2.T[mNode]"], True)
我正在使用这个:
simulateExtendedModel(problem, startTime, stopTime, numberOfIntervals, outputInterval, method, tolerance, fixedstepsize, resultFile, initialNames, initialValues, finalNames, autoLoad)
参数:
problem (str) – Name of model, e.g. Modelica.Mechanics.Rotational.Components.Clutch.
startTime (float) – Start of simulation.
stopTime (float) – End of simulation.
numberOfIntervals (int) – Number of output points.
outputInterval (float) – Distance between output points.
method (str) – Integration method.
tolerance (float) – Tolerance of integration.
fixedstepsize (float) – Fixed step size for Euler.
resultFile (str) – Where to store result.
initialNames (str[]) – Parameters and start-values to set. Dimension [:].
initialValues (float[]) – Parameter values. Dimension [size(initialNames, 1)].
finalNames (str[]) – Variables at end-point. Dimension [:].
autoLoad (bool) – Auto load result.
我不明白语法必须是:
initialValues (float[]) – Parameter values. Dimension [size(initialNames, 1)].
【问题讨论】:
-
mNode 是参数吗?对于第一个工作 - 改变 TstartWall 真的会影响模拟吗?我希望在这种情况下您需要一个文字索引,例如["rCWall2.T[12]"] - 所以我对这个工作案例有点惊讶。
-
哦,你是对的。这行不通。只有当我像你说的那样宣布它时。但我的问题是,我的模型是一堵有 n 层的墙,对于每一层我都有长度 l[n]、热容量 cp[n] 等等,我想从文本文件中加载这些参数。那么是否有可能根据n定义参数(通过python接口)?
标签: python python-2.7 modelica dymola