Ticket #5169: SinglePhase_setState_b_inlinedOnly.mo

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