有人知道如何访问Dymola内置函数getExperiment()的特定输出吗?不幸的是,它只返回真正的标量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++)。
C dsmodel.c .c(32):error C2079:'dummy_mult_‘使用未定义的结构'getExperiment_struct’dsmodel.c.c(32):警告C4013:'getExperiment‘未定义;假设extern返回int dsmodel.c.c(33):error C2224: left of '.StartTime0__0member’必须具有结构/联合类型dsmodel.c.c(34):error C2224: of '.OutputInterval0__0member‘的左侧必须具有结构/联合类型。
产生Dymosim错误。
提前感谢您的帮助!
发布于 2015-11-17 05:40:27
如果我这样做:getExperiment(),则返回以下内容:
= 0.0, 1.0, 500, 0.0, "dassl", 0.0001, 0.0因此,您可以使用接受多个输出的常规赋值来访问这些值。例如:
(StartTime,,NumberOfIntervals) := getExperiment()返回:
Declaring variable: Real StartTime ;
Declaring variable: Integer NumberOfIntervals ;
StartTime
= 0.0
NumberOfIntervals
= 500https://stackoverflow.com/questions/33741617
复制相似问题