Dymola getExperiment() 访问
Dymola getExperiment() access
有谁知道如何访问 Dymola 内置函数 getExperiment(); 的特定输出?
不幸的是,它只有 returns 真正的标量 StartTime。
函数好像定义如下:
function getExperiment "Get current experiment setting"
output Real StartTime := 0.0 "Start of simulation";
output Real StopTime := 1.0 "End of simulation";
output Integer NumberOfIntervals := 0 "Number of output points";
output Real OutputInterval := 0.0 "Distance between output points";
output String Algorithm := "" "Integration method";
output Real Tolerance := 0.0001 "Tolerance of integration";
output Real FixedStepSize := 0.0 "Fixed step size for Euler";
end getExperiment;
我的测试模型是:
model GetExpTest
Real staTime;
Real outInterval;
equation
(staTime,outInterval)=receiveInfo();
end GetExpTest;code here
具有函数:
function receiveInfo
output Real startT;
output Real outputInterv;
algorithm
(startT,,,outputInterv,,,):=getExperiment();
end receiveInfo;
我收到的错误信息是:
编译和链接模型 (Visual C++)。
dsmodel.c
dsmodel.c(32):错误 C2079:'dummy_mult_' 使用未定义的结构 'getExperiment_struct'
dsmodel.c(32):警告 C4013:'getExperiment' 未定义;假设 extern 返回 int
dsmodel.c(33) : error C2224: '.StartTime0_0_0member' 的左边必须有 struct/union 类型
dsmodel.c(34) : 错误 C2224: '.OutputInterval0_0_0member' 的左边必须有 struct/union 类型
生成 Dymosim 时出错。
提前感谢您的帮助!
如果我这样做:getExperiment()
,将返回以下内容:
= 0.0, 1.0, 500, 0.0, "dassl", 0.0001, 0.0
因此您可以使用采用多个输出的常规赋值来访问这些值。例如:
(StartTime,,NumberOfIntervals) := getExperiment()
哪个returns:
Declaring variable: Real StartTime ;
Declaring variable: Integer NumberOfIntervals ;
StartTime
= 0.0
NumberOfIntervals
= 500
有谁知道如何访问 Dymola 内置函数 getExperiment(); 的特定输出? 不幸的是,它只有 returns 真正的标量 StartTime。 函数好像定义如下:
function getExperiment "Get current experiment setting"
output Real StartTime := 0.0 "Start of simulation";
output Real StopTime := 1.0 "End of simulation";
output Integer NumberOfIntervals := 0 "Number of output points";
output Real OutputInterval := 0.0 "Distance between output points";
output String Algorithm := "" "Integration method";
output Real Tolerance := 0.0001 "Tolerance of integration";
output Real FixedStepSize := 0.0 "Fixed step size for Euler";
end getExperiment;
我的测试模型是:
model GetExpTest
Real staTime;
Real outInterval;
equation
(staTime,outInterval)=receiveInfo();
end GetExpTest;code here
具有函数:
function receiveInfo
output Real startT;
output Real outputInterv;
algorithm
(startT,,,outputInterv,,,):=getExperiment();
end receiveInfo;
我收到的错误信息是:
编译和链接模型 (Visual C++)。
dsmodel.c dsmodel.c(32):错误 C2079:'dummy_mult_' 使用未定义的结构 'getExperiment_struct' dsmodel.c(32):警告 C4013:'getExperiment' 未定义;假设 extern 返回 int dsmodel.c(33) : error C2224: '.StartTime0_0_0member' 的左边必须有 struct/union 类型 dsmodel.c(34) : 错误 C2224: '.OutputInterval0_0_0member' 的左边必须有 struct/union 类型
生成 Dymosim 时出错。
提前感谢您的帮助!
如果我这样做:getExperiment()
,将返回以下内容:
= 0.0, 1.0, 500, 0.0, "dassl", 0.0001, 0.0
因此您可以使用采用多个输出的常规赋值来访问这些值。例如:
(StartTime,,NumberOfIntervals) := getExperiment()
哪个returns:
Declaring variable: Real StartTime ;
Declaring variable: Integer NumberOfIntervals ;
StartTime
= 0.0
NumberOfIntervals
= 500