Python 在仿真过程中访问FMU系统变量

Python 在仿真过程中访问FMU系统变量,python,modelica,jmodelica,Python,Modelica,Jmodelica,我有一个FMU,我正试图在JModelica中模拟它。输入参数需要参考JModelica FMU模拟中某些变量的当前状态。但是,我在访问这些时遇到了问题 阅读文档时,我会相信函数.get\u variable\u nominal()或.get()将提供对这些函数的访问,但事实并非如此 该守则的基本结构如下: 从pyfmi导入加载 型号=无 def输入功能(t): 全局模型 #获取所需变量的当前状态 variable=model.some函数(“object.variable\u name”) #

我有一个FMU,我正试图在JModelica中模拟它。
输入
参数需要参考JModelica FMU模拟中某些变量的当前状态。但是,我在访问这些时遇到了问题

阅读文档时,我会相信函数
.get\u variable\u nominal()
.get()
将提供对这些函数的访问,但事实并非如此

该守则的基本结构如下:

从pyfmi导入加载
型号=无
def输入功能(t):
全局模型
#获取所需变量的当前状态
variable=model.some函数(“object.variable\u name”)
#做一些数学处理以得到输入值
输入值=foo(变量)
返回输入值
def main():
全局模型
#FMU的输入变量
输入=[“列表”、“组”、“输入”、“变量”]
#从FMU文件获取模型
模型=加载\u fmu(“模型\u名称.fmu”)
#为模拟方法创建输入对象
inputObj=(输入,inputFunction)
#做一些模拟
opts=模型。模拟_选项()
结果=模型。模拟(开始时间=0,最终时间=100.0,输入=输入,选项=选项)
如果名称=“\uuuuu main\uuuuuuuu”:
main()
如果我使用
.get\u variable\u nominal(“object.variable\u name”)
代替
.some\u函数(“object.variable\u name”)
,该函数将返回一个浮点值
1.0
(如果指定不同的FMU变量,我似乎会得到不同的任意值)。而对于
.get(“object.variable_name”)
,则返回错误
fmueexception:无法获取实际值。
。我在模拟开始时期望的值是
float
值,大约为
303

请注意,如果使用固定的输入值运行,FMU模拟将正确运行,因此正确的值确实存储在模型中

感谢所有能帮助我理解这里发生的事情的人