首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dymola getExperiment()访问

Dymola getExperiment()访问
EN

Stack Overflow用户
提问于 2015-11-16 17:53:34
回答 1查看 156关注 0票数 3

有人知道如何访问Dymola内置函数getExperiment()的特定输出吗?不幸的是,它只返回真正的标量StartTime。该职能的定义如下:

代码语言:javascript
复制
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;

我的测试模型是:

代码语言:javascript
复制
model GetExpTest
  Real staTime;
  Real outInterval;
equation 
  (staTime,outInterval)=receiveInfo();
end GetExpTest;code here

具有以下职能:

代码语言:javascript
复制
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错误。

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-17 05:40:27

如果我这样做:getExperiment(),则返回以下内容:

代码语言:javascript
复制
= 0.0, 1.0, 500, 0.0, "dassl", 0.0001, 0.0

因此,您可以使用接受多个输出的常规赋值来访问这些值。例如:

代码语言:javascript
复制
(StartTime,,NumberOfIntervals) := getExperiment()

返回:

代码语言:javascript
复制
Declaring variable: Real StartTime ;
Declaring variable: Integer NumberOfIntervals ;
StartTime
 = 0.0
NumberOfIntervals
 = 500
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33741617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档