我尝试编写一个模型(修复),其中我想使用不同模型(房间)的变量:该变量被称为:room.Temp。 如果我在模型中使用"修复"变量:room.Temp - >我收到一条错误消息:使用未声明的变量room.Temp。
我是否必须在我的模型中导入变量"修复" ? Thanx为您提供帮助
答案 0 :(得分:3)
在您的情况下,可能会使用inner
/ outer
个关键字。
我不知道您的模型的确切细节和目的,但我认为room.Temp
代表了整个模型中其他组件应该知道的室温。
例如,您可以查看Modelica.Fluid.Examples
中的任何示例。在这里,您会看到system
(小写' s')模型被定义为类inner
的{{1}}实例 - 一个包含多个通用的模型变量(环境压力和温度等)应该是示例中其他组件所知的。
Modelica.Fluid中的许多组件需要类Modelica.Fluid.System
的{{1}}实例 - 并且应该命名为outer
。例如,请参阅System
。
在实例化模型时应用system
关键字(在Dymola中,将其拖到画布上,右键单击,选择Modelica.Fluid.Interfaces.PartialTwoPort
并勾选inner
)。
在您的情况下,如果您的View Attributes
类引用名为' room'的外部实例,则应确保您只有{strong>一个的{ {1}}类,它被称为Inner
(不是Fix
,Room
或其他)。 room
类中的注释room1
,room_1
和defaultComponentName
可以为您提供帮助(请参阅defaultComponentPrefixes
中的注释)。
祝你好运, Rene Just Nielsen
答案 1 :(得分:3)
我不知道您需要哪种先进的解决方案,但我能看到的最简单的解决方案如下:我假设您的模型看起来像这样:
model Room
Real temp;
end Room;
model Fix
Real room_temp /* = ... Room.temp*/;
end Fix;
model Combined
Room room;
Fix fix;
end Combined;
然后添加"输入"在" room_temp"前面并将一行更改为:
Fix fix(room_temp=room.temp);
将room_temp更改为连接器使其更加图形化。
答案 2 :(得分:2)
我猜你没有在“修复”模型中实例化“房间”模型。你能在这里添加你的代码吗?