我是Modelica的新手(我正在使用OpenModelica),并且我正在尝试对双弹簧-质量系统进行建模。整个仿真过程中,弹簧连接之间的角度必须为90度,因此每个弹簧只有1个轴c(平移SpringConstant)分量。为此,我定义了一个平面+棱柱形约束,该约束提供了在x-z平面上移动我的Y轴弹簧并使其仅在Y轴上压缩的能力。对于Z轴弹簧,Modelica不要让我放置其他棱柱形或平面约束,因此我想说它的frame_a位置为{0,springY.r_rel_0 [2],-s_unstreached}因此,当Y-one压缩时,Zone没有倾斜分量,而只有她的轴分量。显然,我不能使用fixedTranslation或fixed来完成此操作,因为它们不接受变量作为输入,因此我创建了一个新的fixedTranslation模型(称为mobileTranslation),该模型在r的定义上具有较高的可变性,并写了r(从frame_b转换而来) Y轴弹簧到Z轴弹簧的frame_a的输入具有这些输入值{0,springY.r_rel_0 [2],-s_unstreached}。当我尝试验证模型或进行编译时,我收到一个错误:在范围mobileTranslation中找不到springY.r_rel_0 [2],我也不知道为什么。两种模型(springY和mobileTranslation属于同一包)
我希望它能工作,因为r_rel_0 [2]不应该是受保护的变量。如果我尝试定义任何变量(随机变量,如常量Real q = 3)并将其调用为mobileTranslation模型,似乎受保护的前缀不是问题,