Я не видел подобной проблемы в Dymola (использовал Dymola 2018 без видимой причины), так что это похоже на проблему в OpenModelica.
Чтобы запустить пример, который я использовал:
model ExhaustGas
import Modelica.Media.IdealGases.Common;
package P=Modelica.Media.IdealGases.Common.MixtureGasNasa (
mediumName="ExhaustGas",
data={Common.SingleGasesData.O2,Common.SingleGasesData.CO2,Common.SingleGasesData.H2O,
Common.SingleGasesData.N2,Common.SingleGasesData.Ar,Common.SingleGasesData.SO2},
fluidConstants={Common.FluidData.O2,Common.FluidData.CO2,Common.FluidData.H2O,
Common.FluidData.N2,Common.FluidData.Ar,Common.FluidData.SO2},
substanceNames={"Oxygen","Carbondioxide","Water","Nitrogen","Argon","Sulfurdioxide"},
reference_X={0.1383,0.032,0.0688,1 - 0.1383 - 0.032 - 0.0688 - 0.0000000001 -
0.0000000001,0.0000000001,0.0000000001});
Real etaX[6];
algorithm
for i in 1:6 loop
etaX[i] = P.fluidConstants[i].criticalTemperature;
end for;
end ExhaustGas;
Поскольку модель, наследуемая от пакета, не является законной.Я заметил два предупреждения о том, что normalBoilingPoint находится вне диапазона.
Изменено : я изменил его, чтобы использовать алгоритм вместо уравнения, в Dymola это не имеет значения, и я неЯ не вижу причин, почему это должно иметь значение.