Opened 5 years ago
Last modified 4 years ago
#6040 assigned defect
Output variables changing name in FMU
| Reported by: | Andreas Heuermann | Owned by: | Andreas Heuermann |
|---|---|---|---|
| Priority: | low | Milestone: | |
| Component: | FMI | Version: | v1.16.0-dev |
| Keywords: | fmi-cross-check output | Cc: |
Description
When declaring a variable as an output and generating a FMU the variable name gets changed.
Run
loadString("
model simpleOutput
output Real x (fixed=true, start=1);
Real y (fixed=true, start=2);
parameter Real a=2;
equations
der(x) = a*x;
der(y) = a*y;
end simpleOutput;
"); getErrorString();
buildModelFMU(simpleOutput); getErrorString();
system("unzip -p simpleOutput.fmu modelDescription.xml > modelDescription.xml"); getErrorString();
and than the modelDescription.xml will contain
<ModelVariables>
<!-- Index of variable = "1" -->
<ScalarVariable
name="_D_outputAlias_x"
valueReference="0"
initial="exact">
<Real start="1.0"/>
</ScalarVariable>
<!-- Index of variable = "2" -->
<ScalarVariable
name="y"
valueReference="1"
initial="exact">
<Real start="2.0"/>
</ScalarVariable>
<!-- Index of variable = "3" -->
<ScalarVariable
name="der(_D_outputAlias_x)"
valueReference="2"
>
<Real derivative="1"/>
</ScalarVariable>
<!-- Index of variable = "4" -->
<ScalarVariable
name="der(y)"
valueReference="3"
>
<Real derivative="2"/>
</ScalarVariable>
<!-- Index of variable = "5" -->
<ScalarVariable
name="x"
valueReference="4"
causality="output"
>
<Real/>
</ScalarVariable>
<!-- Index of variable = "6" -->
<ScalarVariable
name="a"
valueReference="5"
variability="fixed"
causality="parameter"
>
<Real start="2.0"/>
</ScalarVariable>
</ModelVariables>
This internal name should not be visible outside of the FMU.
Change History (7)
comment:1 by , 5 years ago
comment:3 by , 5 years ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
I'll have a lock at it. It should be possible to have both: Expose start attributes but don't change the name.
But if I can't find a quick solution I will leave it as it is for now and see if I can get around it in my fmi-cross-check tests.
Also this is only a problem for fmi 2.0. For fmi 1.0 this is not a problem.
comment:4 by , 5 years ago
| Priority: | low → critical |
|---|
As mentioned in 5367#comment:13 changing the causality for a state from independent to output changes the behavior at events.
So the problem is way worse than just some changed names.
comment:5 by , 5 years ago
| Priority: | critical → low |
|---|
#6050 is fixed, so it's now only the changed names again.
comment:6 by , 5 years ago
| Milestone: | 1.17.0 → 1.18.0 |
|---|
Retargeted to 1.18.0 because of 1.17.0 timed release.

Usually we hide those internal variables. But in case of states we do expose them to make the start attribute available.