| 1 | model SinglePhase_setState_b_stateOnly
|
|---|
| 2 | package Medium = HelmholtzMedia.HelmholtzFluids.Carbondioxide;
|
|---|
| 3 | Medium.AbsolutePressure p(start = 101325);
|
|---|
| 4 | Medium.Temperature T(start = 298.15);
|
|---|
| 5 | Medium.ThermodynamicState state;
|
|---|
| 6 | /*
|
|---|
| 7 | Medium.ThermodynamicState state_dT;
|
|---|
| 8 | Medium.ThermodynamicState state_pd;
|
|---|
| 9 | Medium.ThermodynamicState state_ph;
|
|---|
| 10 | Medium.ThermodynamicState state_ps;
|
|---|
| 11 | Medium.ThermodynamicState state_Ts;
|
|---|
| 12 | */
|
|---|
| 13 | Modelica.Blocks.Sources.Ramp p_sub(duration = 4, startTime = 0.1, height = pcrit - pmin, offset = pmin) annotation(
|
|---|
| 14 | Placement(transformation(extent = {{-80, 60}, {-60, 80}})));
|
|---|
| 15 | Modelica.Blocks.Sources.Ramp p_super(duration = 5, startTime = 6, offset = 0, height = pmax - pcrit) annotation(
|
|---|
| 16 | Placement(transformation(extent = {{-80, 20}, {-60, 40}})));
|
|---|
| 17 | Modelica.Blocks.Sources.Sine T_sine(freqHz = 100, startTime = 0, amplitude = (Tmax - Tmin) / 2, offset = (Tmax - Tmin) / 2 + Tmin) annotation(
|
|---|
| 18 | Placement(transformation(extent = {{-80, -40}, {-60, -20}})));
|
|---|
| 19 | protected
|
|---|
| 20 | Medium.AbsolutePressure p_melt;
|
|---|
| 21 | final constant Medium.Temperature Tmin = Medium.fluidLimits.TMIN;
|
|---|
| 22 | final constant Medium.Temperature Tcrit = Medium.fluidConstants[1].criticalTemperature;
|
|---|
| 23 | final constant Medium.Temperature Tmax = Medium.fluidLimits.TMAX;
|
|---|
| 24 | final constant Medium.AbsolutePressure pmin = Medium.fluidConstants[1].triplePointPressure;
|
|---|
| 25 | final constant Medium.AbsolutePressure pcrit = Medium.fluidConstants[1].criticalPressure;
|
|---|
| 26 | final constant Medium.AbsolutePressure pmax = Medium.fluidLimits.PMAX;
|
|---|
| 27 | equation
|
|---|
| 28 | T = T_sine.y;
|
|---|
| 29 | p_melt = Medium.Ancillary.meltingPressure_T(T);
|
|---|
| 30 | p = min(p_melt, p_sub.y + p_super.y);
|
|---|
| 31 | // set state to valid single-phase values
|
|---|
| 32 | state = Medium.setState_pT(p = p, T = T, phase = 0);
|
|---|
| 33 | // call other setState functions
|
|---|
| 34 | /*
|
|---|
| 35 | state_dT = Medium.setState_dT(d = Medium.density(state), T = Medium.temperature(state), phase = 0);
|
|---|
| 36 | state_pd = Medium.setState_pd(p = Medium.pressure(state), d = Medium.density(state), phase = 0);
|
|---|
| 37 | state_ph = Medium.setState_ph(p = Medium.pressure(state), h = Medium.specificEnthalpy(state), phase = 0);
|
|---|
| 38 | state_ps = Medium.setState_ps(p = Medium.pressure(state), s = Medium.specificEntropy(state), phase = 0);
|
|---|
| 39 | state_Ts = Medium.setState_Ts(T = Medium.temperature(state), s = Medium.specificEntropy(state), phase = 0);
|
|---|
| 40 | */
|
|---|
| 41 | annotation(
|
|---|
| 42 | experiment(StopTime = 12));
|
|---|
| 43 | end SinglePhase_setState_b_stateOnly;
|
|---|