windows环境下python-dymola通信
dymp的Python项目详细描述
windows下python中与dymola通信的工具 dympy通过dde(动态数据交换)与dymola通信。 与打开的dymola窗口建立连接后,可以像在dymola命令行中键入命令一样发送命令。 为了便于使用,已经预定义了几个有用的命令(打开模型、设置模型参数、编译、编写dsin.txt文件、模拟和加载结果…)。
查看下面的示例以获得快速启动,或查看docstrings以获得更完整的指南。
示例
首先初始化dymola连接。最好在初始化后清除dymola中所有打开的模型,以避免重新定义冲突,但这不是必需的:
dymola = dympy.Dymola() dymola.clear()
接下来,我们将打开一个模型并编译它:
dymola.openModel('example.mo') dymola.compile('example')
可以使用set_parameters方法更改参数。该方法接受一个名为、值为对的字典作为输入。 可以使用write_dsu方法将输入写入dsu.txt文件。该方法再次接受一个名为、值对为输入的字典,time必须始终是输入之一:
dymola.set_parameters({'C_in.C':5e6,'C_em.C':10e6,'UA_em_in.G':1600,'UA_in_amb.G':200}) dymola.set_parameters({'C_em.T':300}) dymola.write_dsu({'time':[0,43200,86400],'Q_flow_hp':[1000,5000,2000],'T_amb':[273.15,278.15,273.15]})
现在可以在特定的时间范围内开始模拟:
dymola.simulate(StopTime=86400)
完成模拟后,可以使用get_result()将结果作为字典加载。 结果是一个以点表示法的变量名作为键的字典:
res = dymola.get_result() print(res.keys())
还实现了一个get_res方法,该方法将返回作为所提供参数键的子级的所有结果键。 如果参数没有子参数,则返回其值:
dymola.get_res('UA_em_in')