Ticket #5169: SinglePhase_setState_b_stateOnly.mo

File SinglePhase_setState_b_stateOnly.mo, 2.4 KB (added by Francesco Casella, 8 years ago)
Line 
1model 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}})));
19protected
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;
27equation
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));
43end SinglePhase_setState_b_stateOnly;