在 OpenModelica 的结果变量浏览器中看到的 StateSet 变量的用途是什么

What is the purpose of the StateSet variables seen in OpenModelica's result variable browser

当我模拟下面的模型时,我得到了标记为 $STATESET1 的附加变量,这些变量显然是自动生成的。

从用户的角度来看,这些变量的目的是什么?通常我只对解决方案感兴趣,而不对特定求解器实现它的具体策略感兴趣,对吗?那么,这不是更像是只有在打开某种模型调试时才应该输出的东西,而不是普通 OpenModelica 用户可以利用的东西吗?如果有多个 "state set"(比如 $STATESET1$STATESET2)怎么办:我应该如何知道这些变量与我的模型的关系,给定它们的通用名称?更具体地说,什么是 $STATESET1.x[:]?原始模型或扁平化模型中没有任何内容暗示这一点...

model StateSetTest
  import SI = Modelica.SIunits;
  Real[3] q(start = zeros(3), each fixed = true);
  Real q4(start = 1);
  Real[3] w(start = zeros(3), each fixed = true);
  SI.Torque[3] TResult;
equation
  q * q + q4 * q4 = 1;
  w = 2.0 * (q4 * der(q) - der(q4) * q - cross(der(q), q));
  der(w) = TResult;
  TResult = zeros(3);
end StateSetTest;

它们用于动态选择,即在模拟过程中改变状态。是的,用户并不真正需要它们。我想我们可以从 OMEdit 中过滤掉它们。我会开一个关于这个的工单。