gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 08:48:07 26 4
gpt4 key购买 nike

我想做

    M_type(redeclare package L=L2) m2_instance;

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

    model M2_type
extends M_type(redeclare package L=L2);
end M2_type;
M2_type m2_instance;

这不是一种更短的方法来避免声明 M2_type 吗?

最佳答案

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

M_type(redeclare package L=L2) m2_instance;  // wrong syntax
M_type m2_instance(redeclare package L=L2); // correct

下面是一个小包,它在 Dymola 2021x 和 OpenModelica 1.16.2 中演示了一切并完美模拟。

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;

关于modelica - 如何在创建实例之前在模型中重新声明包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66382882/

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