我尝试使用python模拟我的库的简单模型:

dymola.translateModel("path.to.model")

output = dymola.simulateExtendedModel('path.to.model')
log = dymola.getLastErrorLog()
print(log)
print(output)


输出为:

翻译=真

输出=

Failed
Not possible to open file "dsres.mat": No such file or directory
 = false, {}

[False, []]


似乎该模型可以很好地转换,但无法完成/开始模拟。

编辑:


许可证状态正确
使用DymolaInterface(showwindow = False)显示正确的模型及其所有依赖关系已被加载
相当多的警告(例如使用错误的单位),但是该模型模拟了音调异常良好


错误信息:

python - 无法使用dymola python软件包进行仿真-找不到dsres.mat-LMLPHP

也:
我正在使用Modelica.Utilities.Files.loadResource(modelica://ProjectFolder/Data/Files/file.csv)将一些文件加载​​到模型中。

编辑2:


在该项目中,我有两个软件包,一个包含仿真中使用的所有模型,另一个用于实际仿真的模型。
使用基本模型从第一个程序包模拟checkmodel很好用。
从第一个程序包中的第二个程序包中移出内容不会帮助解决相同的错误
模拟真实模型不起作用。为什么在第二个程序包中模拟模型不起作用?

最佳答案

解决了这个问题:

由于我使用的库会预先加载其他库,因此在加载过程中必须先设置EnvironmentVariables:

model.executeCommand('Modelica.Utilities.System.setEnvironmentVariable("{}", "{}");'
                               .format("startupscript",repopath + "/libaryXY.mos"))


这些环境变量是在不使用Python打开Dymola时使用的load.mos脚本中设置的。

没有这些,Dymola无法找到必要的csv文件。

关于python - 无法使用dymola python软件包进行仿真-找不到dsres.mat,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54483215/

10-15 00:09
查看更多