gpt4 book ai didi

modelica - OMShell 返回 String 但无法识别它

转载 作者:行者123 更新时间:2023-12-04 00:28:38 25 4
gpt4 key购买 nike

对于我的一个模型,需要读取所有变量的最终值并将它们设置为下一次模拟的初始值。我真正的问题是由于 OMShell 中定义的类型。从the scripting commands可以看出OpenModelica的,有String类型和“VariableName”,“TypeName”类型。详细说明区别:

// The following loads the Standard Modelica Library
>> loadModel(Modelica)
true

// The following throws an error
>> loadModel("Modelica")

原因是 loadModel 函数不需要字符串变量。它需要模型的名称。返回我的问题,我尝试使用如下所示的val函数,以便我可以将值作为下一次模拟的初始值。

>> final_time := 200;
>> myVarValue := val(myVar, final_time);

这可以通过使用 for 循环 为每个变量完成,我认为我有几个变量,此时我意识到了这个问题。

// Get the list of all variables
>> myVarList := readSimulationResultVars(currentSimulationResult);
>> size(myVarList)
{724}

// The problem is that this list contains strings
>> myVarList[1]
"mySubSystem.myComponent.myPin.v"

// Following throws an error as it doesn't expect a string
>> val(myVarList[1], final_time)

如何从 OMShell 返回给我的字符串中删除“”?我需要将 "myVar" 转换为 myVar 以便我可以将其用作 OMShell 函数的输入。

最佳答案

您可以使用 stringVariableName 函数。

>>> vars:=OpenModelica.Scripting.readSimulationResultVars(currentSimulationResult)
{"r","time"}
>>> val(stringVariableName(vars[1]), 0.0)
1.0

关于modelica - OMShell 返回 String 但无法识别它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45756551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com