【发布时间】:2019-07-01 12:36:10
【问题描述】:
我最近开始使用 Modelica (OpenModelica) 作为建模工具,但在使用内部/外部功能时遇到了问题。我正在尝试创建一个包含环境温度和压力值的环境模型,以便其他模型可以使用这些值。我尝试使用内部和外部关键字这样做,但我不断收到以下警告:
没有为组件 .Real 找到相应的“内部”声明 component.T0 声明为“外部”。现有的“内部”组件 是:.真实环境.T0;在范围内定义:Test.Ambient。检查是否 您没有拼错“外部”组件名称。请声明 在顶部范围内具有相同名称的“内部”组件。继续 通过仅考虑“外部”组件声明进行展平。
在这些行下面,您可以看到我正在尝试的代码的简化。
这些行下面的三个模型包含在一个名为 Test 的包中。
将温度 T0 定义为内部的环境模型:
within Test;
model Ambient
inner Real T0;
equation
T0 = 300;
end Ambient;
试图通过外部操作符调用T0的组件模型:
within Test;
model Component
Real T;
outer Real T0;
parameter Real k = 2;
equation
T = k * time + T0;
end Component;
环境和组件模型都在组合模型中拖放:
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}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
end System;
运行系统时,我收到上述警告。此外,除了方程式之外,还有一个变量(这是有道理的,因为它无法将 Component.T0 与 Ambient T0 连接起来)
【问题讨论】:
标签: modeling modelica openmodelica