在不声明记录实例的情况下访问Modelica中的记录参数

在不声明记录实例的情况下访问Modelica中的记录参数,modelica,Modelica,在Modelica中,我可以访问记录实例的内容,如下所示: model Unnamed1 record Example parameter Real x = 5; end Example; Example ex; Real test; equation test = ex.x; end Unnamed1; 但是,我希望在不声明记录实例的情况下访问该记录的内容,如下所示: model Unnamed1 record Example parameter

在Modelica中,我可以访问记录实例的内容,如下所示:

model Unnamed1
  record Example
    parameter Real x = 5;
  end Example;

  Example ex;
  Real test;
equation 
  test = ex.x;
end Unnamed1;
但是,我希望在不声明记录实例的情况下访问该记录的内容,如下所示:

model Unnamed1
  record Example
    parameter Real x = 5;
  end Example;

  Real test;
equation 
  test = Example().x;
end Unnamed1;
…但这不起作用。有什么方法可以实现我想做的吗?

这是不可能的(即使从语法的角度来看)。点(.)的右侧需要是类或组件引用。您只能通过点符号访问包中的常量/参数

package X
  constant Real x = 1;
end X;

model M
  Real x = X.x
end M;

是的,在模型中没有实际的实例是可能的,但是它需要一些额外的代码

model Unnamed1
  record Example
    parameter Real x = 5;
  end Example;

  function getX
    input Example r;
    output Real x;
  algorithm 
    x:=r.x;
  end getX;

  Real test;
equation 
  test = getX(Example());
end Unnamed1;
(我知道函数中有实例是在作弊,但是……) 另一个选择是

  for r in {Example()} loop
    test=r.x;
  end for;

(根据允许)

感谢您的回复。然而,我要澄清的是:我试图做的是在不声明实例的情况下访问记录的内容。是否使用点符号或其他符号并不特别重要。不管怎样,你是说这是不可能的吗?