首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在创建实例前在模型中重新声明包?

如何在创建实例前在模型中重新声明包?
EN

Stack Overflow用户
提问于 2021-02-26 17:01:43
回答 1查看 57关注 0票数 2

我想做的是

代码语言:javascript
复制
    M_type(redeclare package L=L2) m2_instance;

但不起作用。相反,我可以写

代码语言:javascript
复制
    model M2_type
       extends M_type(redeclare package L=L2);
    end M2_type;
    M2_type m2_instance;

这里有没有一种更简单的方法来做到这一点,并避免声明M2_type?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-26 18:05:24

必须将redeclare修饰符移动到实例名称。

代码语言:javascript
复制
M_type(redeclare package L=L2) m2_instance;  // wrong syntax
M_type m2_instance(redeclare package L=L2);  // correct

下面是一个小包,它演示了一切,并在Dymola2021x和OpenModelica 1.16.2中模拟得很好。

代码语言:javascript
复制
package Redeclaration
  package L1
    constant Real x = 1;
  end L1;

  package L2
    constant Real x = 2;
  end L2;

  model M_type
    replaceable package L = L1;
    Real x = L.x;
  end M_type;
  
  model Example
    M_type m_instance(redeclare package L=L2);
  end Example;
end Redeclaration;
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66382882

复制
相关文章

相似问题

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