我最近开始使用Modelica(OpenModelica)作为建模工具,并且在使用内部/外部功能时遇到了一个问题。我正在尝试创建一个包含环境温度和压力值的环境模型,以便其他模型可以使用该值。我尝试使用内部关键字和外部关键字来执行此操作,但始终收到以下警告:
找不到组件.Real component.T0声明为“外部”的相应“内部”声明。现有的“内部”组件是:.Real environment.T0; 范围定义:Test.Ambient。检查您是否没有拼错“外部”组件名称。请在顶部范围中声明一个具有相同名称的“内部”组件。仅考虑“外部”组件声明来继续展平。
在这些行下面,您可以看到我正在尝试简化的代码。
这些行下面的三个模型包含在一个名为Test的包中。
环境模型,其中温度T0定义为内部:
within Test;
model Ambient
inner Real T0;
equation
T0 = 300;
end Ambient;
Run Code Online (Sandbox Code Playgroud)
尝试通过外部运算符调用T0的组件的模型:
within Test;
model Component
Real T;
outer Real T0;
parameter Real k = 2;
equation
T = k * time + T0;
end Component;
Run Code Online (Sandbox Code Playgroud)
将环境模型和组件模型都拖放到组合模型中:
within Test;
model System
Test.Ambient ambient annotation(
Placement(visible = true, transformation(origin = {-30, 30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Test.Component component annotation(
Placement(visible = true, transformation(origin = {30, -10}, …Run Code Online (Sandbox Code Playgroud)