我尝试制作一个参数化库。我使用包和连接器作为参数工作正常。
使用模型作为参数也是可能的。但是,如果在库中使用模型来使用扩展构建新模型,那么这是不允许的,我理解。
我想知道库是否包含具有内部/外部连接器样式的模型,是否允许让内部模型成为库的参数?
下面用一个简单的例子来说明问题。TEST 是库,Fish3b 是应用程序。当我在库 TEST 中运行示例时,一切正常,但是当我有一个单独的应用程序文件时,它就不行了。
错误文本是:找不到运行 JModelica 2.4 的 AquariumType 的类声明
package TEST
model FishType1
outer Real T;
Real health;
equation
health = 30-T;
end FishType1;
model FishType2
outer Real T;
Real health;
equation
health = 32-T;
end FishType2;
package Equipment
model AquariumType
replaceable model FishType
end FishType;
FishType fish;
inner Real T;
equation
T = 29;
end AquariumType;
end Equipment;
// Adapt AquariumType model to actual fish
model Aquarium
import TEST.Equipment.AquariumType;
extends AquariumType(redeclare model FishType=FishType2);
end Aquarium;
// Example
model Example
Aquarium aquarium;
end Example;
end TEST;
下面是从上面的库导入的应用程序代码示例 - 我认为这是一些错误。
encapsulated package Fish3b
model FishType3
outer Real T;
Real health;
equation
health = 34-T;
end FishType3;
// Adapt package Equipment with AquariumType model to actual fish
package Equipment3
import TEST.Equipment;
extends Equipment.AquariumType(redeclare model FishType=FishType3);
end Equipment3;
// Example
model Example
import Fish3b.Equipment3;
Equipment3.AquariumType aquarium;
end Example;
end Fish3b;