GunnsFluidHxDynHtc - nasa/gunns GitHub Wiki

GunnsFluidHxDynHtc

default_img

Background

This link extends GunnsFluidHeatExchanger with variable heat exchanger segement Heat Transfer Coefficient (HTC) dependent on:

  • Degredation factor (set via mMalfSegDegradeFlag[segNum] and mMalfSegDegradeValue[segNum])
  • 0-th order coefficient (W/K)
  • 1-st order coeffiecient (W*s/K/kg)
  • Mass flow rate exponent (--)
  • Mass flow rate (kg/s)
In the equation:
HTC = 0 < degredation * (Coeff0 + Coeff1*mass_flow_rate^Exponent) < Limit

where the upper limit is a configurable parameter. Note that the equation above is used to calculate each segements HTC. Similar to the GunnsFluidHeatExchanger, the configuration parameters (discussed below) are for the overal heat exchanger performance. Therefore, the configuration parameters are divded by the number of segments when calculating each segements dynamic HTC.

The mass flow rate of the link is affected by the conductance, which is a configurable parameter the base Heat Exchanger class. Also, the degredation factor is set via the malfunction of the link and therefore is not a function of the life of the heat exchanger (time dependent). The link does not modify the mixture of the fluid passing through it. Also note that this HX does not model condensation or the assocated extra heat of phase change. This is particularly important for air heat exchangers - this link will not model condensation of water vapor through a cold HX. For heat exchangers where condensation needs to be modeled, use the GunnsFluidCondensingHxSeparator instead.

How To Use in GunnsDraw

The GunnsFluidHxDynHtc can be hooked up to nodes in exactly the same ways that regular fluid conductors can and at its interface is functionally equivalent to the GunnsFluidHeatExchanger. It is not required that both fluid aspects interfacing with the thermal aspect between them utilize the dynamic HTC HX link. However, it is recommended to make use of the fideltiy increase by using this link over its base class.

Addtional Class definitions:

The GunnsFluidHxDynHtc also defines a new class called GunnsFluidHxDynHtcSegment which has the below members:

  • mCoeff0 (W/K): 0-th order coefficient.
  • mCoeff1 (W*s/K/kg): 1-st order coefficient.
  • mExponent (--): Mass flow rate exponent.
  • mLimit (W/K): HTC upper limit.
It also contains a default constructor that sets all memebers to 0.0 and an update fuction that return that segments dynamic HTC value dependent on mass flow rate and a degredation value. An instance of this class is instantiated for every segment of the HX during initialization. More importantly, it is the class definition used for the mSegsHtc vector that can override segment configuration data (discussed below).

Port Connection Rules (These are limitations on the port connection to nodes that the link enforces in run-time):

  • Ports 0 and 1 cannot connect to the same non-Ground node.

Other Rules (These are extra rules you should always try to follow):

Configuration Data Parameters:

  • maxConductivity: Same as GunnsFluidConductor.
  • expansionScaleFactor: Same as GunnsFluidConductor. Note that this isentropic expansion happens before the convection heat transfer is calculated, and the inlet temperature to the heat convection is already chilled by this effect.
  • numSegs: (default = 0, must be > 0): This is the number of segments used in this heat exchanger link. See GunnsFluidHeatExchanger for more details.
  • htcCoeff0 (default = 0 (W/K)): Similar to the heatTransferCoefficient in the GunnsFluidHeatExchanger, this is the O-th order term in the HTC equation for the overall HX link. Each individual segements calculated HTC uses this term divided by numSegs to determine that segments individual contribution to overall heat transfer.
  • htcCoeff1 (default = 0 (W*s/K/kg)): The 1-st order term in the HTC equation, also divded by numSegs for each segment.
  • htcExponent (default=0, must be >= 0.05 and <= 20.0): The exponent term for the mass flow rate in the dynamic HTC equation. As opposed to the other configuration terms, this is not divided by numSegs as it shapes the HTC function and therefore is the same for all segments.
  • htcLimit (default = 0, must be > FLT_EPSILON for all segments, therfore must be > FLT_EPSILON*numSegs): The upper limit of the overall HTC for the heat exchanger. Every segements HTC is compared to htcLimit / numSegs to ensure that the computed HTC is not unbounded. Therefore, the value that this limit is set to should account for it being divided evenly among each segement.

The GunnsFluidHxDynHtc configData also contains a vector called mSegsHtc made up of GunnsFluidHxDynHtcSegement objects (see above). This vector can be used to set the HTC equation parameters on a by-segment basis. This allows the user to configure the segments uniquely as opposed to the default behavior of each parameter from the configuration above being divided by numSegs and applied to each segment equally. Use of this configuration method will override the above configuration parameters so it is up to the user to ensure overally HX performance when using this method.

Use of this vector requires that the vector be a size of numSegs and that all segements are configured. Otherwise, a segmentation fault will occur or a segment will remain unconfigured. An example would be an HX with 4 segments but a mSegHtc vector with only 3 objects defined would result in an out-of-bounds access exception on the vector.

Another example is a vector of size 4 but only 3 defined segment configuration datasets. The 4th segment would then be initialized with the default configuration data (all 0.0) and therefore initialization errors.

Input Data Parameters:

  • malfBlockageFlag: Same as GunnsFluidConductor.
  • malfBlockageValue: Same as GunnsFluidConductor.
  • initialSegmentTemperature (default = 0.0 (K), must be >= FLT_EPSILON): This is the initial wall temperature of all segments in the HX link. There is no capability to differ the initial temperature for each segment. However, note that the segment wall temperatures are almost always driven by their thermal aspects, and those thermal aspect temperatures can be initialized to different values. The initialSegmentTemperature term's main purpose is to provide some wall temperature when thermal aspects are not used.

Note that while the GunnsFluidHxDynHtc link inherits the GunnsFluidHeatExchanger link Input Data, the heatTransferCoefficient term is not listed here. That is because this class leverages an equation to recalculate the HTC at each step and therefore setting a static, overall HTC using input data would be unnecessary and redundant.

Common Problems

  • Wall Temperature-Heat Flux Instability: Fluid-to-Fluid heat exchangers typically have a very thin plate of metal between the fluid layers to maximize the heat transfer and reduce the thermal lag in response to changing inlet conditions. We represent that metal layer as the thermal aspect for the segment (as in Examples 3-5 above). This metal, being thin, would realistically have a very small thermal capacity, which is an important configuration data of the thermal capacitor. However, if this thermal capacity is too small compared to the heat fluxes we place on it, the system can go unstable and the temperature of the thermal aspect can oscillate wildly. Some tips to avoid this:
    • Making the capacitance of the thermal aspect large enough. The gunns/aspects/fluid/tuning/Gunns_HX_Tuning_Helper.xlsx Spreadsheet estimates a safe value for the 4-segment counter-flow HX setup.
    • Make sure to update the HX dummy thermal network at the same rate as your fluid networks, and the simbus read/writes too.

References

  • N/A
⚠️ **GitHub.com Fallback** ⚠️