Performance Functions
Performance Functions#
These functions are available in the ccp.point module and they are mainly used by the ccp.Point class in the performance calculation.
- ccp.point.disch_from_suc_head_eff(suc, head, eff, polytropic_method=None)#
Calculate discharge state from suction, head and efficiency.
- Parameters
- succcp.State
Suction state.
- headpint.Quantity, float
Polytropic head (J/kg).
- effpint.Quantity, float
Polytropic efficiency (dimensionless).
- Returns
- dischccp.State
Discharge state.
- ccp.point.eff_isentropic(suc, disch)#
Isentropic efficiency.
- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- eff_isentropicpint.Quantity
Isentropic efficiency.
- ccp.point.eff_pol(suc, disch)#
Polytropic efficiency.
- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- eff_polpint.Quantity
Polytropic efficiency (dimensionless).
- ccp.point.eff_pol_huntington(suc, disch)#
Polytropic efficiency calculated by the 3 point method described by [Huntington, 1985].
- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- eff_pol_huntingtonpint.Quantity
Polytropic efficiency as described by [Huntington, 1985] (dimensionless).
- ccp.point.eff_pol_mallen_saville(suc, disch)#
Polytropic efficiency as per [Mallen and Saville, 1977].
- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- eff_pol_mallen_savillepint.Quantity
Mallen-Saville polytropic efficiency (dimensionless).
- ccp.point.eff_pol_sandberg_colby(suc, disch)#
Sandberg-Colby polytropic efficiency.
- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- eff_pol_sandberg_colby: pint.Quantity
Sandberg-Colby polytropic efficiency (dimensionless).
- ccp.point.eff_pol_schultz(suc, disch)#
Polytropic efficiency as per [Schultz, 1962].
- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- eff_pol_schultzpint.Quantity
Schultz polytropic efficiency (dimensionless).
- ccp.point.f_sandberg_colby(suc, disch)#
Correction factor as proposed by [Sandberg and Colby, 2013].
\[\begin{equation} f_p = \frac{(h_d - h_s) - T_{avg} (s_d - s_s)} {(\frac{n}{n-1})(p_d v_d - p_s v_s)} \end{equation}\]- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- f_sandberg_colbypint.Quantity
Polytropic head correction factor as described by [Sandberg and Colby, 2013] (dimensionless).
- ccp.point.f_schultz(suc, disch)#
Correction factor as per [Schultz, 1962] eq 32:
\[\begin{equation} f = \frac{H_{ds} - H_s}{(\frac{n_s}{n_s - 1})(p_d v_{ds} - p_s v_s)} \end{equation}\]- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- f_schultzfloat
Schultz polytropic factor.
- ccp.point.flow_from_phi(D, phi, speed)#
Calculate flow from non dimensional phi.
- Parameters
- Dfloat, pint.Quantity
Impeller outer diameter (m).
- phipint.Quantity, float
Flow coefficient (m³/s).
- speedpint.Quantity, float
Speed (rad/s).
- Returns
- u_calcpint.Quantity, float
Impeller tip speed.
- ccp.point.head_from_psi(D, psi, speed)#
Calculate head from non dimensional psi.
- Parameters
- Dfloat, pint.Quantity
Impeller outer diameter (m).
- psipint.Quantity, float
Head coefficient.
- speedpint.Quantity, float
Speed (rad/s).
- Returns
- u_calcpint.Quantity, float
Impeller tip speed.
- ccp.point.head_isentropic(suc, disch)#
Isentropic head.
- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- head_isentropicpint.Quantity
Isentropic head.
- ccp.point.head_pol(suc, disch)#
Polytropic head.
The polytropic head is calculated as per [Schultz, 1962] eq. 27:
\[\begin{equation} H_p = (\frac{n}{n - 1}) (p_d v_d - p_s v_s) \end{equation}\]And \(n\) is calculated by
n_exp()
.- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- head_polpint.Quantity
Polytropic head (J/kg).
- ccp.point.head_pol_huntington(suc, disch)#
Polytropic head calculated by the 3 point method described by [Huntington, 1985].
The polytropic head in this case is calculated from the polytropic efficiency with:
\[\begin{equation} \frac{1}{e} = 1 + \frac{\frac{(s_d - s_s)}{R}} {a \ln(\frac{p_d}{p_s}) + b((\frac{p_d}{p_s}) - 1) + \frac{c}{2}(\ln{(\frac{p_d}{p_s})})^2} \end{equation}\]The constants \(a\), \(b\) and \(c\) are calculated with:
\[\begin{split}\begin{equation} a = z_s - b \\ b = \frac{(z_s + z_d - 2z_{int})}{((\frac{p_s}{p_s})^{0.5} - 1)^2} \\ c = \frac{(z_d - a - b(\frac{p_d}{p_s}))}{\ln{(\frac{p_d}{p_s})}} \end{equation}\end{split}\]The intermediate values are calculated interactively:
\[\begin{split}\begin{equation} p_{int} = \sqrt{p_s p_d} \\ T_{int}' = T_{int} \exp{(\frac{(s_{int}' - s_{int})}{c_p})} \end{equation}\end{split}\]And \(s_{int}\) is calculated by:
\[\begin{equation} s_{int}' = s_s + (s_d - s_s) \frac{\frac{a}{2}\ln{(\frac{p_d}{p_s})} + b((\frac{p_s}{p_s})^{0.5} - 1)) + \frac{c}{8}(\ln{(\frac{p_d}{p_s})})^2} {a\ln(\frac{p_d}{p_s}) + b((\frac{p_d}{p_s})-1) + \frac{c}{2}(\ln(\frac{p_d}{p_s}))^2} \end{equation}\]- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- head_pol_huntingtonpint.Quantity
Polytropic head as described by [Huntington, 1985] (J/kg).
- ccp.point.head_pol_mallen_saville(suc, disch)#
Polytropic head as per [Mallen and Saville, 1977] calculated with:
\[\begin{equation} H_p = (h_d - h_s) - (s_d - s_s) \frac{T_d - Ts}{\ln{(\frac{T_d}{T_s})}} \end{equation}\]- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- head_pol_mallen_savillepint.Quantity
Mallen-Saville polytropic polytropic head (J/kg).
- ccp.point.head_pol_sandberg_colby(suc, disch)#
Polytropic head corrected by the [Sandberg and Colby, 2013] factor.
\[\begin{equation} H_{p_{s-c}} = f_{s-c} H_p \end{equation}\]Where \(f_{s-c}\) is calculated by
f_sandberg_colby()
and \(H_p\) is calculated byhead_pol()
.- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- head_pol_sandberg_colbypint.Quantity
Reference head as described by [Sandberg and Colby, 2013] (J/kg).
- ccp.point.head_pol_schultz(suc, disch)#
Polytropic head corrected by the [Schultz, 1962] factor.
\[\begin{equation} H_{p_{schultz}} = f_{schultz} H_p \end{equation}\]Where \(f_{schultz}\) is calculated by
f_schultz()
and \(H_p\) is calculated byhead_pol()
.- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- head_pol_schultzpint.Quantity
Schultz polytropic head (J/kg).
- ccp.point.head_reference(suc, disch, num_steps=100)#
Reference head.
The reference head consists of the integration of \(v dp\) along the polytropic path as described by [Huntington, 1985] and [Sandberg and Colby, 2013]. To achieve this we break the polytropic path into a series of subpaths. The compression ratio \(R_{c_i}\) for each segment, as described by [Sandberg and Colby, 2013] is calculated with:
\[\begin{equation} R_{c_i} = \sqrt[n_{steps}]{\frac{p_d}{p_s}} \end{equation}\]The calculation consists of two loops. One converges the \(T_1\) temperature at each step by evaluating the difference between \(H = v_{avg} \Delta_p\) and \(H = e \Delta_h\). The other evaluates the efficiency by checking the difference between the last \(T_1\) to the discharge temperature \(T_d\).
- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- head_referencepint.Quantity
Reference head as described by [Huntington, 1985]. (J/kg).
- eff_referencefloat
Reference efficiency as described by [Huntington, 1985] (dimensionless).
- ccp.point.head_reference_2017(suc, disch, num_steps=100)#
Reference head.
The reference head consists of the integration along the polytropic path as described by [Huntington, 2017]. Contrary to the method presented by [Huntington, 1985], this method does not use a specific volume linearized over each step of the integration, instead, it is based on the assumption that the compressibility factor varies linearly with the pressure within each step.
In this case the inner loop of the method is calculated by:
\[\begin{split} \begin{equation} a = \frac{z_i (\frac{p_{i+1}}{p_i}) - z_{i+1}} {(\frac{p_{i+1}}{p_i} - 1)} \\ b = \frac{z_{i+1} - z_i} {(\frac{p_{i+1}}{p_i} - 1)} \\ (s_{i+1} - s_i) = R \frac{(1-e)}{e}(a \ln{(\frac{p_{i+1}}{p_i})} + b(\frac{p_{i+1}}{p_i} - 1)) \end{equation}\end{split}\]- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- head_referencepint.Quantity
Reference head as described by [Huntington, 2017]. (J/kg).
- eff_referencefloat
Reference efficiency as described by [Huntington, 2017] (dimensionless).
- ccp.point.mach(suc, speed, D)#
Calculate the Mach number.
- Parameters
- succcp.State
Suction state.
- speedpint.Quantity, float
Impeller speed (rad/s).
- Dfloat, pint.Quantity
Impeller outer diameter (m).
- Returns
- machpint.Quantity
Mach number (dimensionless).
- ccp.point.n_exp(suc, disch)#
Polytropic exponent.
The polytropic exponent \(n\) is calculated as per [Schultz, 1962] eq. 27:
\[\begin{equation} n = \frac{\log{\frac{p_d}{p_s}}}{\log{\frac{v_s}{v_d}}} \end{equation}\]- Parameters
- succcp.State
Suction state.
- dischccp.State
Discharge state.
- Returns
- n_expfloat
Polytropic exponent.
- ccp.point.phi(flow_v, speed, D)#
Flow coefficient.
- Parameters
- flow_vfloat, pint.Quantity
Impeller flow (m³/s).
- speedfloat, pint.Quantity
Impeller speed (rad/s).
- Dfloat, pint.Quantity
Impeller outer diameter (m).
- Returns
- phipint.Quantity
Flow coefficient (dimensionless).
- ccp.point.power_calc(flow_m, head, eff)#
Calculate power.
- Parameters
- flow_mpint.Quantity, float
Mass flow (kg/s).
- headpint.Quantity, float
Head (J/kg).
- effpint.Quantity, float
Efficiency (dimensionless).
- Returns
- powerpint.Quantity
Power (watt).
- ccp.point.reynolds(suc, speed, b, D)#
Calculate the Reynolds number.
- Parameters
- succcp.State
Suction state.
- speedpint.Quantity, float
Impeller speed (rad/s).
- bfloat, pint.Quantity
Impeller width at the outer blade diameter (m).
- Dfloat, pint.Quantity
Impeller outer diameter (m).
- Returns
- reynoldspint.Quantity
Reynolds number (dimensionless).
- ccp.point.speed_from_psi(D, head, psi)#
Calculate speed from non dimensional psi.
- Parameters
- Dfloat, pint.Quantity
Impeller outer diameter (m).
- headpint.Quantity, float
Polytropic head.
- psipint.Quantity, float
Head coefficient.
- Returns
- u_calcpint.Quantity, float
Impeller tip speed.
- ccp.point.u_calc(D, speed)#
Calculate the impeller tip speed.
- Parameters
- Dfloat, pint.Quantity
Impeller outer diameter (m).
- speedpint.Quantity, float
Impeller speed (rad/s).
- Returns
- u_calcpint.Quantity
Impeller tip speed (m/s).
- Hun85
R. A. Huntington. Evaluation of Polytropic Calculation Methods for Turbomachinery Performance. Journal of Engineering for Gas Turbines and Power, 107(4):872–876, 10 1985. doi:10.1115/1.3239827.
- Hun17
Richard Huntington. Another new look at polytropic calculations methods for turbomachinery performance. pages, 09 2017. doi:10.13140/RG.2.2.10331.87841.
- MS77
M Mallen and G Saville. Polytropic processes in the performance prediction of centrifugal compressors. Institution of mechanical engineers, London, United Kingdom, pages 89–96, 1977.
- SC13
Mark E Sandberg and Gary M Colby. Limitations of asme ptc 10 in accurately evaluation centrifugal compressor thermodynamic performance. In Proceedings of the 42nd Turbomachinery Symposium. Texas A&M University. Turbomachinery Laboratories, 2013. doi:10.21423/R1505Q.
- Sch62
John M. Schultz. The Polytropic Analysis of Centrifugal Compressors. Journal of Engineering for Power, 84(1):69–82, 01 1962. doi:10.1115/1.3673381.