Modelica 从连接器阵列中提取阵列

Modelica 从连接器阵列中提取阵列,modelica,openmodelica,Modelica,Openmodelica,似乎至少不鼓励使用连接器作为参数编写Modelica函数。如果我尝试,我会得到警告 假设我有一个连接器 connector con Real x; Real y; end con; 唱片 record rec Real x; Real y; end rec; 和一个函数 function f input rec r[:]; output Real z; algorithm ... end f; function convert input Integer N

似乎至少不鼓励使用连接器作为参数编写Modelica函数。如果我尝试,我会得到警告

假设我有一个连接器

connector con
  Real x;
  Real y;
end con;
唱片

record rec
  Real x;
  Real y;
end rec;
和一个函数

function f
  input rec r[:];
  output Real z;
algorithm
  ...
end f;
function convert
  input Integer N;
  input Real x[N];
  input Real y[N];
  output rec z[N];
algorithm 
  z.x := x;
  z.y := y;
end convert;
给定一个连接器数组,即
conc[N]
,如何将其转换为记录数组
rec

一种方法是使用函数

function f
  input rec r[:];
  output Real z;
algorithm
  ...
end f;
function convert
  input Integer N;
  input Real x[N];
  input Real y[N];
  output rec z[N];
algorithm 
  z.x := x;
  z.y := y;
end convert;
并通过
convert(大小(c,1),c.x,c.y)
调用它


有更简单的方法吗?

哦,那很容易。你是对的。谢谢。我概括了这个问题。它可能适用于r=c;没有任何功能,但我不是100%确定。或r.x=c.x;r、 y=c.y;