基于TableBased创建不可压缩流体模型时遇作用域未找到错误
问题:Modelica不可压缩润滑油测试模型翻译错误
我通过复制Glycol47包,基于TableBase方法创建了不可压缩润滑油流体模型LubeOil,包代码保存无错误:
package LubeOil "LubeOil lubricating oil" extends Modelica.Media.Incompressible.TableBased( mediumName="LubeOil", T_min = Cv.from_degC(0), T_max = Cv.from_degC(320), TinK = false, T0=273.15, tableDensity= [0, 998; 20, 998; 40, 998; 60, 998; 80, 998; 100, 998; 150, 998; 200, 998; 250, 998; 300, 998; 320, 998], tableHeatCapacity= [0, 1; 20, 1; 40, 1; 60, 1; 80, 1; 100, 1; 150, 1; 200, 1; 250, 1; 300, 1; 320, 1], tableConductivity= [0,1; 20,1; 40,1; 60,1; 80,1; 100,1; 150,1; 200,1; 250,1; 300,1; 320,1], tableViscosity = [0, 14370; 20, 1917; 40, 424; 60, 134; 80, 54.5; 100, 26.64; 150, 7.47; 200, 3.22; 250, 1.76; 300, 1.10; 320,0.94], tableVaporPressure= [160, 1; 180, 1; 200, 1; 220, 1; 240, 1; 260, 1; 280, 1; 300, 1; 320, 1]); annotation (Documentation(info="<html> </html>")); end LubeOil;
随后复制TestGlycol模型编写测试代码:
model testlubeoil "LubeOil Medium model" //extends Modelica.Icons; //.Example; //package Medium = Modelica.Media.Incompressible.Examples.LubeOil "Medium model (Glycol47)"; package Medium = Modelica.Media.Incompressible.LubeOil; Medium.BaseProperties medium; Medium.DynamicViscosity eta = Medium.dynamicViscosity(medium.state); Medium.ThermalConductivity lambda = Medium.thermalConductivity(medium.state); Medium.SpecificEntropy s = Medium.specificEntropy(medium.state); Medium.SpecificHeatCapacity cv = Medium.specificHeatCapacityCv(medium.state); Medium.SpecificInternalEnergy u = Medium.specificInternalEnergy(medium.state); Medium.SpecificInternalEnergy h = Medium.specificEnthalpy(medium.state); Medium.SpecificInternalEnergy d = Medium.density(medium.state); protected constant Modelica.Units.SI.Time timeUnit = 1; constant Modelica.Units.SI.Temperature Ta = 1; equation medium.p = 1.013e5; medium.T = Medium.T_min + time/timeUnit*Ta; annotation( experiment(StopTime = 5)); end testlubeoil;
保存测试模型时出现翻译错误:
[testlubeoil: 12:3-12:65]: Class Medium.SpecificInternalEnergy not found in scope testlubeoil
错误原因
测试模型中存在类型不匹配的核心问题:
- 焓(
h)的类型误用了SpecificInternalEnergy,实际应对应Medium.SpecificEnthalpy - 密度(
d)的类型误用了SpecificInternalEnergy,实际应对应Medium.Density
修正后的测试模型代码
model testlubeoil "LubeOil Medium model" //extends Modelica.Icons; //.Example; //package Medium = Modelica.Media.Incompressible.Examples.LubeOil "Medium model (Glycol47)"; package Medium = Modelica.Media.Incompressible.LubeOil; Medium.BaseProperties medium; Medium.DynamicViscosity eta = Medium.dynamicViscosity(medium.state); Medium.ThermalConductivity lambda = Medium.thermalConductivity(medium.state); Medium.SpecificEntropy s = Medium.specificEntropy(medium.state); Medium.SpecificHeatCapacity cv = Medium.specificHeatCapacityCv(medium.state); Medium.SpecificInternalEnergy u = Medium.specificInternalEnergy(medium.state); Medium.SpecificEnthalpy h = Medium.specificEnthalpy(medium.state); Medium.Density d = Medium.density(medium.state); protected constant Modelica.Units.SI.Time timeUnit = 1; constant Modelica.Units.SI.Temperature Ta = 1; equation medium.p = 1.013e5; medium.T = Medium.T_min + time/timeUnit*Ta; annotation( experiment(StopTime = 5)); end testlubeoil;
内容的提问来源于stack exchange,提问作者Sampath Rachakonda
相关产品推荐
相关产品推荐

