TRNSYS / TRNAUS Component Reference
Contents — click to jump to section
- TYPE 11 - Flow Controller (Mode 4/5: Tempering Valve)
- TYPE 14 - Time-Dependent Forcing Function
- TYPE 24 - Quantity Integrator
- TYPE 25 - Printer
- TYPE 28 - Simulation Summary (Print Out)
- TYPE 31 - Pipe or Duct
- TYPE 44 - Convergence Promoter
- TYPE 55 - Periodic Integrator
- TYPE 65 - Online Plotter
- TYPE 138 - Stratified Tank
- TYPE 238 - Stratified Tank with Variable Thermostat Inputs
- TYPE 104 - Mode 4: Microchannel Extrusion Condenser
- TYPE 104 - Mode 5: Wrap-Around Coil Condenser
- TYPE 104 - Mode 6: Submerged Coil Condenser
- TYPE 160 - Tank + No HX (hxMode = 0)
- TYPE 160 - Tank + HP-side HX (hxMode = 1)
- TYPE 160 - Tank + Load-side HX (hxMode = 1)
- TYPE 182 - Compressor On/Off Controller with Min/Max Runtimes
TYPE 11 - Flow Controller (Mode 4/5: Tempering Valve)
Source: TRNSYS15 index.html Note: Standard TRNSYS15 component. This reference covers Mode 4/5 only — the temperature-controlled flow diverter used as a tempering valve in HP water heater decks.
1. Introduction
TYPE 11 Mode 4/5 is a temperature-controlled flow diverter that blends a hot fluid stream with a cold bypass stream to achieve a target mixed outlet temperature (Tset). In HP water heater rating decks it is used as the tempering valve: it mixes hot tank water with cold mains water to deliver a controlled temperature to the load, and its outlet flow rate [unit,2] is used as the load draw-off flow rate for the tank and energy balance.
Mode 4 recalculates the mixing fraction g on every iteration. Mode 5 freezes g after NSTK iterations at the same timestep, preventing oscillation. Use Mode 4 unless convergence problems occur.
2. Parameters
| No. | Symbol | Description |
|---|---|---|
| 1 | Mode | Specify 4 or 5. |
| 2 | NSTK | Number of iterations at the same timestep before g is frozen (Mode 5 only). Typical value: 8. Not used by Mode 4. |
3. Inputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Ti | °C | Cold bypass inlet temperature. Typically cold mains water (Tcold). |
| 2 | mi | kg/hr | Cold bypass inlet flowrate. Typically the scheduled load draw-off flow (ldflw). |
| 3 | Th | °C | Hot source temperature. Typically the tank hot water outlet temperature (Tout = [60,5] or [104,21]). |
| 4 | Tset | °C | Desired mixed outlet temperature. Typically the auxiliary element set point (Tset1). |
4. Outputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | T1 | °C | Mixed outlet temperature at outlet 1. |
| 2 | m1 | kg/hr | Mass flowrate at outlet 1. This is the delivered load flow rate — used as the draw-off flow rate connected to the tank input. |
| 3 | T2 | °C | Temperature at outlet 2. |
| 4 | m2 | kg/hr | Mass flowrate at outlet 2. |
| 5 | g | - | Control fraction (0-1). Fraction of flow diverted to outlet 2. |
5. Notes
- Output [unit,2] (m1) is the delivered load flow rate. This is the value connected to tank input 1 (m1in) and used in the energy balance and load calculations.
- When the tank temperature Th equals or exceeds Tset, g approaches 0 and all flow passes through at the tank temperature.
- When Th is below Tset the tempering valve cannot boost — the delivery temperature equals the tank temperature.
- The second pair of outputs (T2, m2) represents the unmixed hot bypass; these are typically not used in HP decks.
6. Example .dck Code
UNIT 25 TYPE 11 Tempering valve
* Mode 4 (temp-controlled diverter), NSTK=8
PARAMETERS 2
4 8
* Inputs: Ti(cold_mains) mi(load_flow) Th(tank_hot_out) Tset(delivery_setpoint)
INPUTS 4
Tcold ldflw Tout 0,0
20 0 Tset1 TLOAD
* Key outputs:
* [25,1] = T1: mixed delivery temperature (°C)
* [25,2] = m1: delivered load flow rate (kg/hr) -- connect to tank input 1 and Type 55
EQN 3
volx = [25,2] ! load flow from tempering valve (kg/hr)
Load_Temp = Tout*GT([25,2],0) + Tset1*EQL([25,2],0) ! delivery temp (avoids zero when no flow)
load_less45 = energy * LT(Tout,45) * GT([25,2],0) / 1000
Source: TRNSYS15 index.html. Last updated: 2026-04-30
TYPE 14 - Time-Dependent Forcing Function
Source: TRNSYS15 index.html (Standard TRNSYS15 component)
Generates a time-varying signal defined by piecewise linear interpolation between user-specified (time, value) pairs. The function repeats every 24 hours throughout the simulation year. Commonly used in heat pump decks to define daily operating schedules (e.g., heat pump on-peak/off-peak hours, continuous operation, or demand-responsive control).
Parameters
Define the piecewise linear function as pairs of (time, value):
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | t0 | hr | Time at first point (typically 0) |
| 2 | V0 | - | Value at t0 |
| 3 | t1 | hr | Time at second point |
| 4 | V1 | - | Value at t1 |
| … | … | … | … |
| 2N+1 | tN | hr | Time at last point (should be 24 to complete 24-hour cycle) |
| 2N+2 | VN | - | Value at last point |
Total number of parameters = 2 * (number of breakpoints)
Between any two breakpoints, the function interpolates linearly. The function repeats exactly on a 24-hour cycle.
Output
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | V | - | Time-averaged value of the function over the current timestep |
Important: The output is the average value over the timestep, not the instantaneous value. For a step function (0 or 1), the output is the fraction of the timestep during which the signal equals 1. For example, if a step rises from 0 to 1 at hour 9 and the timestep is 8:00-10:00 (2 hours), the output is 0.5.
Notes on Schedule Definition
- Define time in hours (0 to 24).
- The function repeats daily at the same times every day of the simulation year.
- Use breakpoints at the transition times to create on/off schedules.
- For step functions, place two identical time values at the transition point (or define the step at the hour before and hour of transition).
DCK Examples
Example 1: Continuous Operation (24-hour Heat Pump On)
UNIT 26 TYPE 14 Schedule: HP on 24h
PARAMETERS 4
0 1 24 1
* [26,1] = 1 at all times
Example 2: Daily Operating Window (9 am to 5 pm Only)
UNIT 26 TYPE 14 Schedule: HP on 9am-5pm
PARAMETERS 6
0 0
9 1
17 0
24 0
* [26,1] = 0 from 00:00-09:00
* = 1 from 09:00-17:00
* = 0 from 17:00-24:00
Example 3: Off-Peak Electricity Tariff (10 pm to 7 am)
UNIT 26 TYPE 14 Schedule: Off-peak 10pm-7am
PARAMETERS 6
0 1
7 0
22 1
24 1
* [26,1] = 1 from 00:00-07:00 (midnight to 7am)
* = 0 from 07:00-22:00 (7am to 10pm)
* = 1 from 22:00-24:00 (10pm to midnight)
Example 4: Multi-Segment Daily Schedule
UNIT 26 TYPE 14 Schedule: On-peak avoidance
PARAMETERS 10
0 1 ! Off-peak 00:00-07:00
7 0 ! Peak 07:00-17:00
17 1 ! Off-peak 17:00-21:00
21 0 ! Shoulder/peak 21:00-22:00
22 1 ! Off-peak 22:00-24:00
24 1
* [26,1] varies throughout the day based on tariff windows
Integration into Control Logic
Typical use in heat pump control equations:
EQUATIONS 3
! HP operates if ambient is suitable AND within scheduled window
hp_onoff = GT(Tamb, Taux) * min([26,1], 1)
! Auxiliary heater activates when HP is off or insufficient heating
aux_onoff = NOT(hp_onoff) + MAX(0, Tdemand - Tsupply_hp)
! Damped HP modulation (example: ramp up slowly)
hp_capacity = [26,1] * min((Tset - Troom) / 5, 1)
Common Mistakes
-
Forgetting the final value at hour 24: Always include a value at t=24 to complete the 24-hour cycle. This value will wrap to t=0 of the next day.
-
Using instantaneous instead of average: Remember that [26,1] returns the time-average over the timestep. For hourly timesteps and a sharp step at 9:00, if the timestep includes that transition, the output will be between 0 and 1 (not exactly 0 or 1).
-
Incorrectly spacing breakpoints: Ensure breakpoints are in increasing order (0 < t1 < t2 < … < 24) and use appropriate time resolution for the desired schedule sharpness.
-
Mixing with other control types: Type 14 schedule outputs can be multiplied by other control signals (temperature-based, load-based) to create hybrid control strategies.
TYPE 24 - Quantity Integrator
Source: TRNSYS15 index.html Note: Standard TRNSYS15 component.
1. Introduction
TYPE 24 integrates one or more input quantities with respect to time over the simulation period (or a specified reset interval). It accumulates the running total of each input, optionally resetting to zero at regular intervals. Used in HP decks to compute annual (or periodic) totals of energy consumed, energy delivered, and load sub-quantities for performance reporting.
2. Parameters
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 (optional) | DtR | hr | Reset interval. The integrated outputs Yi are reset to zero after each DtR interval. If DtR < 0, units of |DtR| months are assumed. If omitted, outputs accumulate for the entire simulation. |
Common Usage
DtR = 8760to integrate over a full year without intermediate reset.DtR = -1to integrate month by month (monthly totals).- Omitting the parameter gives a continuous running total.
3. Inputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | X1 | any | First quantity to integrate |
| i | Xi | any | ith quantity to integrate |
Any number of inputs can be connected. Each input produces one output.
4. Outputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Y1 | any.hr | Integral of X1 over time (or over the DtR interval) |
| i | Yi | any.hr | Integral of Xi |
Unit note: The integral of a rate in kJ/hr gives kJ. The integral of a power in kW gives kWh when DtR is in hours. Division by 1000 converts kJ totals to MJ; divide by 3600 to convert kJ to kWh.
5. Example .dck Code
* Annual energy integrator (full year, no reset)
UNIT 52 TYPE 24
PARAMETERS 1
8760 ! integrate over 8760 hrs (1 year), no reset
INPUTS 7
gas_tot Elec_tot load_less_45 solar_e pur_e elec_s elec_ctot
0 0 0 0 0 0 0
* Outputs accessed as:
* [52,1] = annual gas energy (kJ)
* [52,2] = annual total electricity (kJ)
* [52,3] = energy delivered below 45°C (kJ)
* [52,4] = solar / HP thermal energy to system (kJ)
* [52,5] = total purchased energy (kJ)
* [52,6] = HP + boost electricity (kJ)
* [52,7] = standby + pump electricity (kJ)
EQN 2
STC = (ref_elec - [52,2]/1000) / 3600 * 10 ! Small-scale technology certificate rating
Savings = (1 - [52,2]/1000 / ref_elec) * 100 ! Annual energy savings (%)
Source: TRNSYS15 index.html. Last updated: 2026-04-30
TYPE 25 - Printer
Source: TRNSYS15 index.html Note: Standard TRNSYS15 component.
1. Introduction
TYPE 25 prints time-series values of connected inputs to a file or the standard output at a specified time interval. Used in HP decks for the formatted summary table at the end of a simulation (annual results row) and for intermediate periodic output files.
2. Parameters
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Dtp | hr | Time interval at which printing occurs. Use -1 to print only at the end of the simulation. |
| 2 | ton | hr | Simulation time at which printing starts. |
| 3 | toff | hr | Simulation time at which printing stops. |
| 4 | Lunit | - | Logical unit number for output. If <= 0, uses standard output. If > 0, writes to the file assigned to that logical unit via ASSIGN. |
| 5 (optional) | UNITS | - | 1 = print user-supplied units for each input. 2 = print TRNSYS-supplied units. Omit if not needed. |
FORMAT Statement (optional)
A FORMAT statement may follow the PARAMETERS block to specify a Fortran-style print format for the output line. If omitted, default formatting is used.
3. Inputs
| No. | Symbol | Description |
|---|---|---|
| 1 | X1 | First value to print |
| i | Xi | ith value to print |
Any number of inputs. Order determines column order in output.
4. Output
TYPE 25 produces no TRNSYS simulation outputs. It writes directly to the assigned file or standard output.
5. Example .dck Code
Annual Summary Table (printed once at end of simulation)
UNIT 53 TYPE 25 Annual summary printer
PARAMETERS 4
-1 stop stop 2 ! print once at end, write to unit 2 (.OUT file)
FORMAT
(f5.0,10x,f3.0,10x,f6.0,14x,f4.1,7x,f9.1,10x,f4.0,11x,f6.1)
INPUTS 6
zone Load_size STC Savings San_fail SAN_ftime
Zone Load_size STC Savings% San_fail SAN_ftime
Periodic Output (hourly to separate file)
UNIT 57 TYPE 25 Periodic energy printer
PARAMETERS 4
-1 stop stop 2 ! print once at simulation end
FORMAT
(f5.0,10x,f3.0,12x,f10.0,6x,f10.0,6x,f10.4,4x,f10.4,4x,f10.0,7x,f10.0)
INPUTS 7
52,3 52,4 52,5 Bs_elec Be_elec Starts Comp_hrs
Load<45C Air_E Pur_E Bs_elec Be_elec Starts Comp_hrs
Notes
- When two rows of labels follow INPUTS, the first row is the variable names and the second row is the label printed in the output header.
- The FORMAT statement uses standard Fortran format codes: f = fixed point, e = scientific, i = integer, x = spaces.
- Logical unit 2 is assigned to the .OUT file via
ASSIGN ***.OUT 2at the top of the deck. - Logical unit 6 is assigned to the .LST file via
ASSIGN ***.lst 6.
Source: TRNSYS15 index.html. Last updated: 2026-04-30
TYPE 28 - Simulation Summary (Print Out)
Source: TRNSYS15 index.html Note: Standard TRNSYS15 component.
1. Introduction
TYPE 28 produces periodic simulation summaries: time-integrated totals, averages, minima, maxima, and other statistics for connected input variables. It is more powerful than TYPE 25 for tracking statistics (min/max/mean over reporting periods). In HP decks, two instances are commonly used: one for ambient temperature diagnostics and one for the main energy balance check.
2. Parameters
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Dtp | hr | Summary reporting interval. Positive = hours. Negative = |Dtp| months. Use -1 to report monthly, use the simulation stop time to report once at the end. |
| 2 | ton | hr | Time at which summaries begin. Use start constant. |
| 3 | toff | hr | Time at which summaries end. Use stop constant. |
| 4 | Lunit | - | Logical unit number. <= 0 = standard output. > 0 = specific file unit. Use 2 for .OUT file. |
| 5 | Output Mode | - | 1 = boxed output format. 2 = table summary format. |
| 6+ | P1, P2, … | - | Operation codes controlling what is printed for each column (see below). |
Operation Codes (Parameters 6 onward)
Each operation code Pi controls one column of the summary output:
| Code | Meaning |
|---|---|
| Positive integer N | Print a header/label line. N controls spacing. |
| -N (negative integer) | Print the value of the corresponding input, in a field of width N characters. |
| -1 | Print the simulation time. |
| 24 | Print time in hours as a 24-hour clock value. |
| 2 | Print with 2 decimal places. |
| -4 | Print in a 4-character field. |
| -11 | Print in an 11-character field. |
| -12 | Print in a 12-character field. |
In practice, the operation codes in the decks define a formatted table where each pair specifies a column and its format. The exact behaviour depends on TRNSYS15 documentation; the most common patterns used in EnergyAE decks are shown in the examples below.
3. Inputs
| No. | Symbol | Description |
|---|---|---|
| 1 | X1 | First value to track and print |
| i | Xi | ith value to track and print |
A CHECK line may follow to specify an energy balance tolerance:
CHECK 0.05 5,8,-2,-6,-7,-9
This verifies that the listed outputs sum to within 0.05 kJ (or specified tolerance) for energy balance checking.
4. Output
TYPE 28 produces no TRNSYS simulation outputs. It writes summary statistics directly to the assigned file.
5. Example .dck Code
Ambient Temperature Logger
UNIT 47 TYPE 28 Ambient temperature summary
PARAMETERS 10
-1 start stop 2 2 -11 -1 24 2 -4
INPUTS 1
Ta
LABELS 1
Ta
Energy Balance Checker
UNIT 46 TYPE 28 Energy balance verification
PARAMETERS 26
-1 start stop 2 2 1 -12 -4 -13 -4 -14 -4
-15 -12 2 -4 -16 -4 -17 -4 -18 -4 -19 -4 -11 -4
INPUTS 9
de volx energy Elec_tot txm Qu tloss ploss aux_boost
CHECK 0.05 5,8,-2,-6,-7,-9
LABELS 9
dE Vol Energy Elec_tot Tout Qout Tloss Ploss Boost
Parameter Breakdown for Energy Balance Example
- Parameters 1-5: Dtp=-1 (monthly), ton=start, toff=stop, Lunit=2, Mode=2 (table)
- Parameters 6+: Operation codes define column widths and spacing for 9 input variables
- CHECK line: verifies energy balance to 0.05 kJ tolerance across columns 5, 8, -2, -6, -7, -9
Source: TRNSYS15 index.html. Last updated: 2026-04-30
TYPE 31 - Pipe or Duct
Source: TRNSYS15 index.html (Standard TRNSYS15 component)
Models a fluid-filled pipe or duct with plug-flow transport and transient thermal losses to the surrounding environment. In heat pump water heater decks, Type 31 instances represent the insulated connecting pipework between the heat pump unit and the thermal storage tank, capturing both transport delay and insulation losses. Typically two or three instances are used: supply pipe (HP to tank), return pipe (tank to HP return), and optionally a zero-loss dummy pipe to capture outlet state before losses.
Parameters
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | d | m | Inside diameter of pipe |
| 2 | L | m | Length of pipe |
| 3 | U | kJ/hr.m².°C | Overall loss coefficient based on inside surface area. Set U=0 for a lossless dummy pipe. |
| 4 | rho | kg/m³ | Fluid density (water: 1000 kg/m³) |
| 5 | Cp | kJ/kg.°C | Fluid specific heat (water: 4.18 kJ/kg.°C) |
| 6 | TI | °C | Initial temperature of fluid in pipe (used only at start of simulation) |
Loss Coefficient Calculation
The overall loss coefficient U is computed from pipe geometry and insulation properties:
U_pipe = 1 / (1/h_in + d_i/2/k_ins * ln(d_o/d_i) + d_i/d_o/h_out)
Where:
- h_in: inner convective coefficient (typically set to large value, negligible resistance)
- d_i: inside diameter (m)
- d_o: outside insulated diameter = d_i + 2*t_ins (m)
- t_ins: insulation thickness (m)
- k_ins: insulation thermal conductivity (kJ/hr.m.K)
- h_out: outer convective coefficient in air (typically 1e6 for external loss or smaller for exposed pipes)
Then:
U = U_pipe / (pi * d_i) [kJ/hr.m².°C]
In practice, U is pre-calculated from pipe and insulation specifications and entered as a single constant parameter. A spreadsheet or calculation tool should compute U from the geometry and material properties.
Inputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Ti | °C | Fluid inlet temperature |
| 2 | m | kg/hr | Fluid mass flowrate |
| 3 | Tenv | °C | Environment temperature for loss calculation (typically ambient air temperature) |
Outputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | To | °C | Fluid outlet temperature |
| 2 | m | kg/hr | Fluid mass flowrate (pass-through, unchanged) |
| 3 | Qloss | kJ/hr | Heat loss rate from fluid to environment (always positive for To < Tenv) |
| 4 | Qin | kJ/hr | Enthalpy rate at inlet |
| 5 | dE | kJ | Change in internal energy of fluid stored in pipe during timestep |
| 6 | Tav | °C | Average temperature of fluid in the pipe |
Note: For energy balance, the sensible energy delivered through the pipe is:
Q_net = m * Cp * (To - Tin_previous) - Qloss
Key Behaviors
-
Plug-flow transport: Assumes well-mixed fluid moving through the pipe. The outlet temperature responds gradually to inlet temperature changes based on the fluid residence time.
-
Transient losses: Heat loss depends on both the temperature difference (To - Tenv) and the thermal mass of fluid in the pipe. At low flowrate, more time in pipe means more cooling.
-
Residence time: tau = (pid²/4L*rho) / m, approximately. For a 0.022 m diameter, 3 m long pipe at 200 kg/hr: tau ~0.02 hours (about 1 minute).
-
Zero-loss dummy pipe: Use U=0 to capture the outlet temperature before pipe losses affect it (useful for accurate energy balance calculations).
DCK Example: Typical Heat Pump Pipe Installation
CONSTANTS 8
LP1 = 3.0 ! Pipe length (m): HP to tank
LP2 = 3.0 ! Pipe length (m): tank back to HP
dpipei = 0.022 ! Inside diameter (m)
thk_ins = 0.013 ! Insulation thickness (m)
kinsulation = 0.035 * 3.6 ! Conductivity in kJ/hr.m.K
dpipeo = dpipei + 2*thk_ins ! Outer diameter
UP1 = 1/(1/1e6 + dpipei/2/kinsulation*ln(dpipeo/dpipei) + dpipei/dpipeo/1e6)
UP2 = UP1
UNIT 11 TYPE 31 Supply pipe: tank outlet to HP inlet
PARAMETERS 6
dpipei LP1 UP1 1000 4.18 25
INPUTS 3
Tout_tank pflow1 Tamb
25 0 25
UNIT 21 TYPE 31 Return pipe: HP outlet to tank inlet
PARAMETERS 6
dpipei LP2 UP2 1000 4.18 25
INPUTS 3
Tret_hp pflow1 Tamb
25 0 25
UNIT 22 TYPE 31 Dummy supply pipe: zero-loss reference
PARAMETERS 6
dpipei LP1 0 1000 4.18 25
INPUTS 3
Tout_tank pflow1 Tamb
25 0 25
! Use outputs in energy balance and control logic:
EQUATIONS 2
ploss_total = [11,3] + [21,3] ! total pipe losses (kJ/hr)
Tin_hp = [11,1] ! inlet to HP (after losses)
! For accurate tank energy balance, use:
dE_pipes = [11,5] + [21,5] ! change in pipe fluid energy
dE_total = [60,16] + dE_pipes ! total change (tank + pipes)
Convergence Considerations
When Type 31 is connected directly in a loop with a heat pump model, it may create algebraic loops that prevent convergence. If convergence issues arise, use a Type 44 Convergence Promoter on the outlet temperature before feeding it back into the return pipe:
UNIT 44 TYPE 44
PARAMETERS 1
10
INPUTS 1
11,1 ! Outlet of supply pipe
20
UNIT 21 TYPE 31 Return pipe
PARAMETERS 6
dpipei LP2 UP2 1000 4.18 25
INPUTS 3
[44,1] pflow1 Tamb ! Use promoted outlet instead of direct [11,1]
25 0 25
Tips for Accurate Modeling
-
Insulation properties: Verify k_insulation in consistent units (kJ/hr.m.K). Common foam: 0.025 W/m.K = 0.025 * 3.6 = 0.09 kJ/hr.m.K.
-
Loss coefficient verification: For typical 22 mm copper with 13 mm foam insulation in still air, U is typically 0.5 to 2 kJ/hr.m².°C. A zero loss pipe (U=0) is useful as a reference state.
-
Residual energy in pipes: The dE output [Type31,5] can be small (< 1 kJ) if the pipe is thin-walled and not heavily insulated. Include it in energy balance for accuracy.
-
Initial temperature: The TI parameter is used only on the first call. After that, the pipe state is fully dynamic. Ensure initial guess is reasonable to avoid oscillations.
TYPE 44 - Convergence Promoter
Source: TRNSYS15 index.html (Standard TRNSYS15 component)
Aids convergence in iterative simulation loops by averaging successive estimates of a variable over multiple calls within a single timestep. When a direct algebraic connection between components causes oscillation or divergence on repeated iterations, the convergence promoter damps the oscillation by returning a weighted average of the current and previous estimates. Use only as a fallback when direct connections fail; prefer direct connections where convergence permits.
Parameter
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Nc | - | Number of times this component is called at the same timestep before convergence is promoted (before averaging kicks in). Typical value: 10. Lower values dampen oscillation faster; higher values allow more oscillation before damping. |
Input
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | f(x) | varies | The variable for which convergence is to be promoted. Connect this input to the output causing oscillation. |
Output
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | x | varies | Damped estimate of the input variable. Connect this output back to the component requiring the stabilized value. |
How It Works
On the first Nc iterations at a given timestep, the promoter passes the input directly to the output: x = f(x).
After Nc iterations, the promoter begins averaging the current and previous estimates:
x_new = (x_prev + f(x)) / 2
This weighted average reduces oscillation amplitude with each iteration, allowing the loop to converge. The feedback path becomes: f(x) -> [44,1] -> input -> f(x) -> [44,1] -> etc., with the promoter smoothing the signal each cycle.
When to Use
-
Algebraic loop between tank and heat pump: The tank outlet temperature [60,6] feeds back to the heat pump inlet, which then affects the tank inlet temperature. This creates a feedback loop that can oscillate.
-
Control loop oscillation: A control variable depends on the state it controls, causing the controller to overshoot and undershoot repeatedly.
-
Flow/temperature iteration: Convergence on both flow and temperature simultaneously can lock multiple components into cyclic behavior.
When NOT to Use
- Direct connections work without oscillation: Keep the direct connection.
- The model is physically unstable (not a numerical issue): Convergence promotion cannot fix instability; adjust model parameters instead.
- Multiple cascaded promoters: Avoid stacking Type 44 instances; use a single promoter at the critical point in the feedback loop.
DCK Example: Breaking the Tank-Heat Pump Loop
In a typical separate tank system, the heat pump outlet temperature is fed back to the tank, which then supplies the heat pump inlet. This creates a feedback loop. If oscillation occurs, introduce a convergence promoter on the tank outlet temperature going to the heat pump inlet pipe:
* Without promoter (may oscillate):
* UNIT 11 TYPE 31 HP inlet pipe
* INPUTS 3
* [60,6] pflow1 Tamb ! Direct connection to tank outlet [60,6]
* 25 0 25
* With promoter (damped):
UNIT 44 TYPE 44 Convergence promoter: tank outlet to HP inlet
PARAMETERS 1
10 ! Promote after 10 iterations at same timestep
INPUTS 1
60,6 ! Tank outlet temperature (from Type 160)
20 ! Initial guess for convergence
UNIT 11 TYPE 31 HP inlet pipe
PARAMETERS 6
dpipei LP1 UP1 1000 4.18 25
INPUTS 3
[44,1] pflow1 Tamb ! Use promoted output instead of direct [60,6]
25 0 25
EQUATIONS 1
Tin_hp = [44,1] ! If using equation, reference the promoter output
Interpretation of Nc Parameter
- Nc = 5: Aggressive damping; oscillation is suppressed quickly but may undershoot convergence.
- Nc = 10: Moderate damping; typical for most tank-HP loops (recommended starting value).
- Nc = 20: Gentle damping; allows more oscillation but risk of slow convergence or cycling within tolerance.
Debugging Convergence Issues
-
Check the convergence report: In the .txt output, look for “TOO MANY ITERATIONS” or iteration count near the solver limit. This suggests the loop is oscillating without converging.
-
Increase Nc slightly: If convergence is still slow, try Nc=15 or Nc=20.
-
Check loop structure: Verify that the feedback path is correctly wired. The input to Type 44 should be the oscillating variable, and the output should be the variable fed back into the loop.
-
Verify initial guess: The second input parameter to Type 44 (initial value) should be in the ballpark of expected steady-state value to avoid unnecessary transient oscillation.
Alternative Solution: Re-arrangement
In some cases, rearranging the model to avoid the algebraic loop entirely is better than using a promoter. For example:
- Calculate tank outlet first using last-timestep HP inlet.
- Use that tank outlet for the current HP inlet.
- This converts the algebraic loop into a time-lagged loop, which converges naturally.
However, this sacrifices some accuracy (one-timestep lag). Use the promoter if the time lag is unacceptable.
Typical Parameter Values for Heat Pump Decks
| Scenario | Nc | Notes |
|---|---|---|
| Tank with HP (standard) | 10 | Good balance for most cases |
| Tank with HP and distribution loop | 12-15 | More complex loop needs gentler damping |
| Control oscillation (e.g., on-off switching) | 5-8 | Faster response desired |
| Very stiff model (rapid transients) | 15-20 | Allow more iteration before damping |
Common Issues
-
Convergence still fails after adding promoter: Check if the feedback loop structure is correct. The promoter only works if the input is the oscillating variable and the output feeds back correctly into the loop.
-
Energy balance affected by promoter: The promoter introduces a time-lag in the feedback, which can slightly shift when energy is transferred between components. For steady-state or long-timescale analysis, this is usually negligible. For sub-hourly transient analysis, verify that energy is conserved in the overall loop.
-
Promoter output lags behind input: This is intentional (it is averaging), but can create a phase lag in control response. If transient response is important, reduce Nc slightly to minimize lag.
TYPE 55 - Periodic Integrator
Source: TRNSYS15 index.html Note: Standard TRNSYS15 component.
1. Introduction
TYPE 55 evaluates statistics (integral, count, mean, standard deviation, min, max and their times of occurrence) for up to 10 input variables over user-defined periodic time windows. Unlike TYPE 24 (which only integrates), TYPE 55 also tracks minimum, maximum, and mean values within each period. In HP decks, a single instance is typically used to track the load delivery temperature statistics (min, max, mean, and their times) over the simulation year for the mandatory performance report.
2. Parameters
Parameters are specified in groups of 7, one group per input variable. Up to 10 inputs (70 parameters maximum).
| No. (for input i) | Symbol | Description |
|---|---|---|
| 1+7*(i-1) | mode | Integration mode. 1 = integrate with respect to time. 0 = sum (accumulate without time weighting). |
| 2+7*(i-1) | Toni | Relative starting hour of the summary period within each repeat cycle (hours from midnight). |
| 3+7*(i-1) | Lengthi | Duration of the summary period (hr). If negative, period runs from Toni to end of month. |
| 4+7*(i-1) | Repeati | Hours between successive periods. If negative, units are months. |
| 5+7*(i-1) | Reseti | Time interval over which Xi values are investigated. Outputs reset to 0 after each Repeati interval. If negative, units are months. |
| 6+7*(i-1) | Starti | Absolute simulation start time for this periodic summary (hr). |
| 7+7*(i-1) | Stopi | Absolute simulation stop time for this periodic summary (hr). |
Note: Toni is always relative to midnight, not the simulation start time. If the simulation starts at hour 1 and Toni = 8, the summary begins at 08:00 on day 1.
3. Inputs
| No. | Symbol | Description |
|---|---|---|
| 1 | X1 | First quantity to evaluate |
| i | Xi | ith quantity (up to 10) |
4. Outputs
Ten outputs are produced per input variable. For input i, outputs are at positions 1+10*(i-1) through 10+10*(i-1):
| Offset | Symbol | Units | Description |
|---|---|---|---|
| 1+10*(i-1) | Yi | any.hr | Integral of Xi with respect to time, or sum of Xi |
| 2+10*(i-1) | Ni | - | Count of Xi values over the period |
| 3+10*(i-1) | Meani | any | Mean value of Xi in period |
| 4+10*(i-1) | SSDi | any | Sample standard deviation of Xi |
| 5+10*(i-1) | Vari | any | Variance of Xi |
| 6+10*(i-1) | SSQi | any | Sum of squares of Xi |
| 7+10*(i-1) | Mini | any | Minimum value of Xi in period |
| 8+10*(i-1) | Timemin | hr | Simulation time at which minimum occurred |
| 9+10*(i-1) | Maxi | any | Maximum value of Xi in period |
| 10+10*(i-1) | Timemax | hr | Simulation time at which maximum occurred |
Quick Reference for 1 Input (most common use)
| Output No. | Description |
|---|---|
| [unit,1] | Integral (Yi) |
| [unit,2] | Count (Ni) |
| [unit,3] | Mean |
| [unit,4] | Sample std dev |
| [unit,5] | Variance |
| [unit,6] | Sum of squares |
| [unit,7] | Minimum value |
| [unit,8] | Time of minimum (hr) |
| [unit,9] | Maximum value |
| [unit,10] | Time of maximum (hr) |
5. Example .dck Code
Load Delivery Temperature Statistics (annual, single input)
* Track load delivery temperature statistics over the full simulation year
UNIT 51 TYPE 55 Load delivery temperature periodic integrator
PARAMETERS 7
1 ! mode: integrate with respect to time
1 ! Toni: start at hour 1 (midnight of day 1)
8760 ! Lengthi: 8760 hr period (full year)
0 ! Repeati: no repeat (0 = no periodic reset, run once)
8760 ! Reseti: reset interval = full year
0 ! Starti: start at simulation time 0
8760 ! Stopi: stop at simulation time 8760
INPUTS 1
Load_Temp ! Delivery temperature weighted by flow (°C)
0
* Outputs used in annual summary:
* [51,7] = MinDelTemp (minimum delivery temperature over year, °C)
* [51,8] = TimeMin (time of minimum delivery temperature, hr)
* [51,9] = MaxDelTemp (maximum delivery temperature over year, °C)
* [51,10] = TimeMax (time of maximum delivery temperature, hr)
Used in the results printer:
UNIT 53 TYPE 25
PARAMETERS 4
-1 stop stop 2
INPUTS 10
zone Load_size STC Savings San_fail SAN_ftime 51,7 51,8 51,9 51,10
Zone Load_size STC Savings% San_fail SAN_ftime MinDelTemp TimeMin MaxDelTemp TimeMax
Source: TRNSYS15 index.html. Last updated: 2026-04-30
TYPE 65 - Online Plotter
Source: TRNSYS15 index.html Note: Standard TRNSYS15 component.
1. Introduction
TYPE 65 displays time-series plots of connected input variables in an online graphics window during simulation. It supports up to two separate Y-axis plots (upper and lower) with independent Y-axis scaling. In HP decks, multiple instances are used to monitor temperatures, COP, power, and control signals during simulation development and debugging. Set parameter 9 to -1 to suppress the display window when running in batch mode.
2. Parameters
| No. | Symbol | Description |
|---|---|---|
| 1 | Ntop | Number of variables to display in the upper plot. |
| 2 | Nbot | Number of variables to display in the lower plot. |
| 3 | Ymin,1 | Minimum Y-axis value for upper plot. |
| 4 | Ymax,1 | Maximum Y-axis value for upper plot. |
| 5 | Ymin,2 | Minimum Y-axis value for lower plot. |
| 6 | Ymax,2 | Maximum Y-axis value for lower plot. |
| 7 | Npic | Number of plot frames per simulation. 1 = single plot covering full simulation time. i = divide simulation into i time segments, each plotted separately. |
| 8 | (Nbot repeat) | Number of variables in lower plot (repeated from parameter 2 for internal use). |
| 9 | on/off | >= 0 = display online graphics window during simulation. <= -1 = suppress online display (use for batch/unattended runs). |
| 10 | LU | >= 10 = logical unit number for automatic output file. <= -1 = do not generate output file. Use -1 unless file logging is needed. |
3. Inputs
Inputs are listed in two groups, separated in the INPUTS block:
- First Ntop inputs: variables plotted on the upper graph.
- Next Nbot inputs: variables plotted on the lower graph.
Total inputs = Ntop + Nbot.
4. Labels
A LABELS block following INPUTS provides two rows:
- Row 1: variable names shown in the plot legend.
- Row 2: (optional) alternative display names.
If only one row is provided, it is used for both the legend and display.
5. Output
TYPE 65 produces no TRNSYS simulation outputs. It generates real-time graphical display and/or a data file.
6. Example .dck Code
Separate HP Deck: Temperature and Performance Plot
UNIT 65 TYPE 65 HP system plotter
PARAMETERS 10
6 ! Ntop: 6 variables on upper plot
6 ! Nbot: 6 variables on lower plot
0 ! Ymin upper: 0°C
100 ! Ymax upper: 100°C
0 ! Ymin lower: 0
10 ! Ymax lower: 10
73 ! Npic: 73 daily frames (365 days / 5)
5 ! Nbot repeat
[plotter] ! on/off: 1=display, -1=suppress (use constant from include file)
-1 ! LU: no output file
INPUTS 12
Tout 11,1 Tret T45 T90 AuxT1
14,1 less45 cop2 PkW aux_onoff San_fail
LABELS 12
Tout Thpin Thpout T45 T90 AuxT1
Load LoadFail COP PowerkW Booster San_fail
Integral HP Deck: Multi-panel System Plot
UNIT 65 TYPE 65 Integral HP performance plotter
PARAMETERS 10
9 6 0 100 0 6 73 7 [plotter] -1
INPUTS 15
Off_time On_time Tout Tcoil 104,12 T45 T90 MDT45 Tamb San_fail
copx ekw tkw Comp_on Boost_on
LABELS 15
Off_time On_time Tout Tcoil HP_temp T45 T90 MDT45 Tamb San_fail
cop EleckW TherkW Comp_on Boost_on
* Second plotter instance for control signals
UNIT 66 TYPE 65
PARAMETERS 10
4 4 0 100 0 6 73 7 1 -1
INPUTS 8
Tset Tcontrol T45 T90 San_fail Comp_on hp_onoff Boost_on
Tset Tcontrol T45 T90 San_fail Comp_on hp_onoff Boost_on
Notes
- The
[plotter]variable is typically defined in the include file (1 = show, -1 = hide). Setting to -1 allows batch rating runs without spawning graphics windows. - Npic = 73 gives daily plots for a 365-day simulation at 5 days per frame, which is a common choice for annual rating runs.
- Each TYPE 65 instance is independent. Multiple instances are used to separate temperature plots from power/COP plots.
Source: TRNSYS15 index.html. Last updated: 2026-04-30
TYPE 138 - Stratified Tank
Source: TRNAUS15 Manual 24.6 (Appendix 2) Note: TRNAUS extension. Not part of standard TRNSYS15. Type 138 is the older stratified tank type used before Type 104 for integral heat pump applications. The manual notes that Type 104 should be used for heat pump applications with integral condensers, but Type 138 remains present in current legacy decks.
1. Introduction
TYPE 138 models a stratified water storage tank with a heat-source loop, load draw-off, tank heat loss, dump valve control, and up to two auxiliary electric elements. It supports several heat exchanger modes for collector or heat-source coupling.
Common HPWH legacy use is a tank plus external heat input or older integral-condenser representation. For new integral heat pump water heater decks, prefer Type 104. When maintaining existing decks, keep the Type 138 parameter order exactly as written because the heat exchanger mode changes the trailing parameters.
EnergyAE legacy Type 138 decks commonly name the active/top auxiliary element variables Tset2, Tdb2, and Aux2. This differs from Type 104, where the comparable first-element names are usually Tset1, Tdb1, and Aux1.
2. HX Modes
| Mode | Description |
|---|---|
| 1 | Complete mixing of heated fluid at return level. |
| 2 | Fully stratified inlet. |
| 3 | Heat pipe fitted to bottom of tank. |
| 4 | Collector loop heat exchanger as a coil wrapped around the tank. |
| 5 | Collector loop heat exchanger as an internal coil-in-tank heat exchanger. |
| 6 | Collector loop horizontal tank-in-tank heat exchanger. |
| 7 | Load mixing in bottom of tank at Hcold level, collector return fully stratified. |
| 8 | Collector loop heat exchanger in tank with measured UA coefficients. |
3. Parameters
Parameters 1-21: Tank, Load, and Top Auxiliary Element
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | HX Mode | - | Selects tank and heat exchanger formulation. See HX Modes table. |
| 2 | Vt | m3 | Tank volume. For Mode 6, includes potable water plus heat exchanger volume. |
| 3 | Ht | m | Tank height for a vertical tank, tank diameter for a horizontal tank, or inner tank diameter for Mode 6 heat exchanger. |
| 4 | Hr | m | Collector return height, heat pipe condenser top height, heat exchanger inlet height, or mantle section definition depending on HX Mode. |
| 5 | - | - | Not used. |
| 6 | - | - | Not used. |
| 7 | twkw | kJ/hr.K | Tank wall thickness times wall conductivity. Used for conduction degradation of stratification. |
| 8 | Tank configuration | - | 1 = vertical cylinder. 2 = horizontal cylinder. |
| 9 | UA | kJ/hr.K | Overall tank heat loss conductance. |
| 10 | ri | - | Insulation thickness ratio. For vertical tanks, top-to-side ratio. For horizontal tanks, top-to-bottom ratio. |
| 11 | Ti | deg C | Initial temperature of the preheat section of the tank. |
| 12 | Hc | m | Height of cold inlet above tank bottom. Often calculated from rated and physical volume. |
| 13 | Qhe | kJ/hr | Top auxiliary element heating rate. |
| 14 | Ha | m | Height of top auxiliary element above tank bottom. |
| 15 | Htstat | m | Height of top thermostat above tank bottom. |
| 16 | Tset | deg C | Top thermostat set temperature. Also initial temperature for tank section above the element. |
| 17 | Tdb | K | Top auxiliary heater deadband. |
| 18 | UAf | kJ/hr.K | Gas flue heat loss conductance when auxiliary is off. Use 0 for electric auxiliary. |
| 19 | Vmax | fraction | Maximum tank element size during conduction analysis. Typical value: 0.05. |
| 20 | Tmax | deg C | Dump valve operating temperature. |
| 21 | Tmin | deg C | Dump valve closing temperature. |
Parameters 22-26: Optional Second Electric Element
| No. | Symbol | Units | Description |
|---|---|---|---|
| 22 | Qhe2 | kJ/hr | Bottom auxiliary element heating rate. |
| 23 | Ha2 | m | Height of bottom auxiliary element above tank bottom. |
| 24 | Htstat2 | m | Height of bottom thermostat above tank bottom. |
| 25 | Tset2 | deg C | Bottom thermostat set temperature. Also initial temperature for tank section above the element. |
| 26 | Tdb2 | K | Bottom auxiliary heater deadband. |
Mode-Specific Trailing Parameters
| HX Mode | Parameter position | Symbol | Units | Description |
|---|---|---|---|---|
| 3 | last-2 | Dcond | m | Heat pipe condenser diameter in contact with water. |
| 3 | last-1 | Lcond | m | Heat pipe condenser length. |
| 3 | last | Rbond | K.hr/kJ.m | Heat pipe condenser wall thermal resistance per metre. |
| 4 | last-4 | Dcoil | m | Diameter of wrap-around coil tubing. |
| 4 | last-3 | Lcoil | m | Length of wrap-around coil. |
| 4 | last-2 | Rbond | K.hr/kJ.m | Coil-to-tank bond thermal resistance per metre. |
| 4 | last-1 | twkw | kJ/hr.K | Tank wall thickness times wall conductivity. |
| 4 | last | tpkp | kJ/hr.K | Heat exchanger tube wall thickness times wall conductivity. |
| 5 | last-2 | Dcoil | m | Diameter of internal coil tubing. |
| 5 | last-1 | Lcoil | m | Length of internal coil. |
| 5 | last | Rbond | K.hr/kJ.m | Coil wall conduction resistance per metre. |
| 6 | last-2 | DHX | m | Diameter of inside surface of mantle wall. |
| 6 | last-1 | LHX | m | Length of mantle heat exchanger. |
| 6 | last | Rbond | K.hr/kJ.m | Tank wall conduction resistance per metre. |
| 7 | last-2 to last | - | - | Not used, but must be specified. |
| 8 | last-2 | UA0 | kJ/hr.K | Constant UA coefficient. |
| 8 | last-1 | UA1 | kJ/hr.K2 | UA temperature coefficient. |
| 8 | last | - | - | Not used, but must be specified. |
4. Inputs (7 Total)
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Th | deg C | Temperature of fluid from heat source. |
| 2 | mh | kg/hr | Heat-source fluid mass flow rate. |
| 3 | Tl | deg C | Replacement fluid temperature from load. Typically cold mains or return water. |
| 4 | ml | kg/hr | Load mass flow rate. |
| 5 | Tenv | deg C | Ambient/environment temperature for tank heat loss. |
| 6 | aux1 enable | - | Enable signal for first auxiliary heater. The first element is inactive if the second element is active. |
| 7 | aux2 enable | - | Enable signal for second auxiliary heater. |
5. Outputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Tret | deg C | Temperature returned to heat source. For Modes 1, 2, and 7 this is tank bottom temperature. For Modes 3-6 this is heat exchanger outlet temperature. |
| 2 | mh | kg/hr | Fluid mass flow rate to heat source. |
| 3 | Td | deg C | Temperature delivered to load. |
| 4 | ml | kg/hr | Mass flow rate to load. |
| 5 | Qenv | kJ/hr | Tank heat loss rate. |
| 6 | Qsup | kJ/hr | Energy supply rate to load. |
| 7 | E | kJ | Change in tank internal energy since simulation start. |
| 8 | Qaux | kJ/hr | Total auxiliary input rate from both elements. |
| 9 | Qin | kJ/hr | Energy input rate to tank by heat-source fluid stream. For Modes 3-6, only heat input is counted. |
| 10 | T | deg C | Average storage temperature. |
| 11 | Ht | Pa | Thermosyphon pressure in tank. Used internally. |
| 12 | V_lt45 | m3/hr | Load volume delivered below 45 deg C. |
| 13 | V_lt57 | m3/hr | Load volume delivered below 57 deg C. |
| 14 | E_lt45 | kJ/hr | Load energy delivered below 45 deg C. |
| 15 | E_lt57 | kJ/hr | Load energy delivered below 57 deg C. |
| 16 | Tret_collector | deg C | Collector loop input temperature. Same as output 1. |
| 17 | Edump | kJ/hr | Energy dumped due to tank overheating. |
| 18 | Qaux2 | kJ/hr | Auxiliary input rate from element 2. |
| 19 | Tbot | deg C | Bottom tank temperature. |
| 20 | Tw | deg C | Tank water temperature adjacent to the heat exchanger, averaged over heat exchanger depth. |
| 21 | T_th | deg C | Tank water temperature at the active thermostat height. |
| 22 | T45 | deg C | Tank temperature at 45% from the top by volume. |
| 23 | T90 | deg C | Tank temperature at 90% from the top by volume. |
| 24 | San_vol | m3 | Volume of tank water heated to at least 55 deg C. |
| 25 | San_time | hr | Time that a positive San_vol has existed in the tank. |
Key Output Quick Reference
| Output | Description |
|---|---|
| [138,1] | Tret: heat-source return temperature |
| [138,3] | Td: delivered load temperature |
| [138,5] | Qenv: tank heat loss |
| [138,6] | Qsup: energy supplied to load |
| [138,8] | Qaux: total auxiliary input |
| [138,19] | Tbot: bottom tank temperature |
| [138,21] | T_th: active thermostat temperature |
| [138,22] | T45 |
| [138,23] | T90 |
| [138,24] | San_vol |
| [138,25] | San_time |
6. Example .dck Code
* Legacy stratified tank using Type 138, Mode 4 wrap-around HX
UNIT 138 TYPE 138
PARAMETERS 31
4 VOL height Hret 0 0 twkw 1 UA ri
Tinit Hcold Aux2 Haux1 Hth1 Tset2 Tdb2 0 0.05 95 90
0 0 0 0 0
Dcoil Lcoil Rbond twkw tpkp
INPUTS 7
Thpout mhp Tcold 25,2 Tamb aux_onoff 0,0
60 0 20 0 20 1 0
EQN 5
Tout = [138,3]
Tbot = [138,19]
Tth = [138,21]
T45 = [138,22]
T90 = [138,23]
Source: TRNAUS15 Manual 24.6 Appendix 2, pages 58-60. Last updated: 2026-06-11
TYPE 238 - Stratified Tank with Variable Thermostat Inputs
Source: TRNAUS15 Manual 24.6 (Appendix 15) Note: TRNAUS extension. Not part of standard TRNSYS15.
1. Introduction
TYPE 238 is Type 138 with the first thermostat set temperature and first thermostat deadband available as inputs. Use it when the top auxiliary thermostat settings need to vary during the simulation.
The tank formulation, HX modes, second element parameters, mode-specific trailing parameters, and outputs are otherwise the same as Type 138.
2. Parameter Difference from Type 138
| No. | Symbol | Units | Type 238 behaviour |
|---|---|---|---|
| 16 | Tset | deg C | If this parameter is negative, the top thermostat set temperature is read from input 8. If positive, the parameter value is used. |
| 17 | Tdb | K | If this parameter is negative, the top thermostat deadband is read from input 9. If positive, the parameter value is used. |
All other parameters follow Type 138, including HX Mode selection and the mode-specific trailing parameter set.
3. Inputs (9 Total)
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Th | deg C | Temperature of fluid from heat source. |
| 2 | mh | kg/hr | Heat-source fluid mass flow rate. |
| 3 | Tl | deg C | Replacement fluid temperature from load. |
| 4 | ml | kg/hr | Load mass flow rate. |
| 5 | Tenv | deg C | Ambient/environment temperature for tank heat loss. |
| 6 | aux1 enable | - | Enable signal for first auxiliary heater. The first element is inactive if the second element is active. |
| 7 | aux2 enable | - | Enable signal for second auxiliary heater. |
| 8 | Tset_input | deg C | Top thermostat set temperature, used only when parameter 16 is negative. |
| 9 | Tdb_input | K | Top thermostat deadband, used only when parameter 17 is negative. |
4. Outputs
TYPE 238 outputs match Type 138.
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Tret | deg C | Temperature returned to heat source. |
| 2 | mh | kg/hr | Fluid mass flow rate to heat source. |
| 3 | Td | deg C | Temperature delivered to load. |
| 4 | ml | kg/hr | Mass flow rate to load. |
| 5 | Qenv | kJ/hr | Tank heat loss rate. |
| 6 | Qsup | kJ/hr | Energy supply rate to load. |
| 7 | E | kJ | Change in tank internal energy since simulation start. |
| 8 | Qaux | kJ/hr | Total auxiliary input rate from both elements. |
| 9 | Qin | kJ/hr | Energy input rate to tank by heat-source fluid stream. |
| 10 | T | deg C | Average storage temperature. |
| 11 | Ht | Pa | Thermosyphon pressure in tank. Used internally. |
| 12 | V_lt45 | m3/hr | Load volume delivered below 45 deg C. |
| 13 | V_lt57 | m3/hr | Load volume delivered below 57 deg C. |
| 14 | E_lt45 | kJ/hr | Load energy delivered below 45 deg C. |
| 15 | E_lt57 | kJ/hr | Load energy delivered below 57 deg C. |
| 16 | Tret_collector | deg C | Collector loop input temperature. Same as output 1. |
| 17 | Edump | kJ/hr | Energy dumped due to tank overheating. |
| 18 | Qaux2 | kJ/hr | Auxiliary input rate from element 2. |
| 19 | Tbot | deg C | Bottom tank temperature. |
| 20 | Tw | deg C | Tank water temperature adjacent to the heat exchanger. |
| 21 | T_th | deg C | Tank water temperature at the active thermostat height. |
| 22 | T45 | deg C | Tank temperature at 45% from the top by volume. |
| 23 | T90 | deg C | Tank temperature at 90% from the top by volume. |
| 24 | San_vol | m3 | Volume of tank water heated to at least 55 deg C. |
| 25 | San_time | hr | Time that a positive San_vol has existed in the tank. |
5. Example .dck Code
* Type 238 reads top thermostat settings from inputs 8 and 9
UNIT 238 TYPE 238
PARAMETERS 31
4 VOL height Hret 0 0 twkw 1 UA ri
Tinit Hcold Aux2 Haux1 Hth1 -1 -1 0 0.05 95 90
0 0 0 0 0
Dcoil Lcoil Rbond twkw tpkp
INPUTS 9
Thpout mhp Tcold 25,2 Tamb aux_onoff 0,0 Tset2 Tdb2
60 0 20 0 20 1 0 60 10
EQN 4
Tout = [238,3]
Tth = [238,21]
T45 = [238,22]
T90 = [238,23]
Source: TRNAUS15 Manual 24.6 Appendix 15, pages 83-85. Last updated: 2026-06-11
TYPE 104 - Mode 4: Microchannel Extrusion Condenser
Source: TRNAUS15 Manual 24.6 (Appendix 14) Note: TRNAUS extension. Not part of standard TRNSYS15. For separate (external) HP systems use Type 160 instead.
1. Introduction
TYPE 104 models an integral all-in-one air-source heat pump water heater where the refrigerant condenser is bonded to the outside of the storage tank. This document covers Mode 4: Microchannel Extrusion Condenser, where flat aluminium multi-port extrusion strips are bonded to the outer tank wall. The heat transfer path from refrigerant to water passes through: refrigerant channels → extrusion wall → bond layer → tank wall → glass lining (if present) → tank water.
The component:
- Uses AS/NZS 5125 COP and Power coefficients to calculate total HP thermal output (QHX). QHX is passed as an input.
- Computes the condensing temperature from tank-side water temperature and condenser geometry.
- Models a stratified tank with up to 20 isothermal nodes.
- Performs AS 3498 Legionella sanitation compliance checks.
- Supports up to two auxiliary electric heating elements.
Mode 4 is selected by setting Parameter 1 = 4.
2. Tank Formulation
The tank is divided into N isothermal nodes (set by the DERIVATIVES count, typically 20). Each node exchanges energy with adjacent nodes via fluid conduction and forced mixing. The HP thermal output QHX is distributed to tank nodes over the condenser depth (between VolHXtop and VolHXbot).
Standing loss to UA:
UA [kJ/hr.K] = Tnk_loss [kWh/d] * 3.6e6 / 24 / 3600 / 55 * 3.6
HP performance calculations (external to Type 104):
Tcoil = [104,9] ! avg water temp at condenser from previous timestep
dt1 = Tcoil - Tamb
dt2 = Twet - Tdp
power = (p0 + p1*Tcoil + p2*Tcoil^2 + p3*Tamb) * 1000 * 3.6 * Comp_on ! kJ/hr
cop = (1 - FP) * (a0 + a1*dt1 + a2*dt1^2 + a3*dt2)
QHX = power * cop ! passed as input 4
3. Parameters (29 Total for Mode 4)
Parameters 1-18: Common Tank and Sensor Definition
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Mode | - | Specify 4 for microchannel extrusion condenser. |
| 2 | VOL | m³ | Internal (fluid) tank volume. |
| 3 | dia | m | Tank inner diameter. |
| 4 | Cp | kJ/kg.K | Fluid specific heat. Water = 4.18. |
| 5 | rho | kg/m³ | Fluid density. Water = 1000. |
| 6 | UA | kJ/hr.K | Overall tank heat loss rate (standing loss conductance). |
| 7 | AuxMode | - | Auxiliary heater mode. 1 = master/slave. 2 = both simultaneously. |
| 8 | VolAux1 | m³ | Volume of water above the first (upper) auxiliary element. |
| 9 | volhth1 | m³ | Volume of water above the first thermostat. |
| 10 | Volaux2 | m³ | Volume of water above the second (lower) auxiliary element. |
| 11 | Voltht2 | m³ | Volume of water above the second thermostat. |
| 12 | Tboil | °C | Fluid boiling point. Use 100°C. |
| 13 | Max_temp | °C | Maximum tank temperature from AS/NZS 5125 tests (stop temperature per section 4.2). |
| 14 | VolHXtop | m³ | Volume of water above the top of the condenser. |
| 15 | VolHXbot | m³ | Volume of water above the bottom of the condenser. |
| 16 | Vol_sensor | m³ | Volume above HP control sensor (first auxiliary temperature sensor). |
| 17 | Vol_san | m³ | Volume above second auxiliary temperature sensor (sanitation monitoring). |
| 18 | 0 | m³ | Volume above third auxiliary temperature sensor. Set to 0 if unused. |
Parameters 19-29: Mode 4 Microchannel Extrusion Geometry
| No. | Symbol | Units | Description |
|---|---|---|---|
| 19 | Wextr | m | Width of each condenser extrusion strip in contact with the tank wall. |
| 20 | Lextr | m | Length of each extrusion strip along the tank wall. |
| 21 | Nextr | - | Number of extrusion strips bonded to the tank. |
| 22 | textr | m | Thickness of the condenser extrusion wall (wall separating refrigerant from bond). |
| 23 | kextr | kJ/hr.m.K | Thermal conductivity of the extrusion material (typically aluminium). |
| 24 | tbond | m | Thickness of the bond (adhesive/epoxy) between extrusion and tank wall. |
| 25 | kbond | kJ/hr.m.K | Thermal conductivity of the bond material. |
| 26 | Twall | m | Thickness of the tank steel wall. |
| 27 | Kwall | kJ/hr.m.K | Thermal conductivity of the tank wall material. |
| 28 | tglass | m | Thickness of glass/porcelain lining on the tank inner surface. Set to 0 if not present. |
| 29 | kglass | kJ/hr.m.K | Thermal conductivity of the glass lining. |
4. Inputs (11 Total)
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Tcold | °C | Cold mains water temperature entering at the bottom of the tank. |
| 2 | ldflw | kg/hr | Load flow rate. Typically output [25,2] from a Type 11 tempering valve. |
| 3 | Tamb | °C | Ambient air temperature surrounding the tank. |
| 4 | QHX | kJ/hr | Total thermal energy from the heat pump to the tank. Computed externally as Power * cop. |
| 5 | Tset1 | °C | Set temperature for first (upper) auxiliary element thermostat. |
| 6 | Tdb1 | K | Temperature deadband for first thermostat. |
| 7 | Aux_1pw | kJ/hr | Heating rate of first auxiliary element. Pass 0 when not active. |
| 8 | Tset2 | °C | Set temperature for second (lower) auxiliary element thermostat. |
| 9 | Tdb2 | K | Temperature deadband for second thermostat. |
| 10 | Aux_2pw | kJ/hr | Heating rate of second auxiliary element. Pass 0 when not active. |
| 11 | WSAN | - | Weekly sanitation signal (binary). 1 = active sanitation cycle. |
5. Outputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | m_load | kg/hr | Mass flow rate delivered to load. |
| 2 | Q_env | kJ/hr | Rate of heat loss to environment. |
| 3 | Q_load | kJ/hr | Rate of energy removed by load flow. |
| 4 | DE | kJ | Cumulative internal energy change from simulation start. |
| 5 | Q_aux | kJ/hr | Combined auxiliary heater energy rate (both elements). |
| 6 | Q_aux1 | kJ/hr | Energy rate from first (upper) auxiliary heater. |
| 7 | Q_aux2 | kJ/hr | Energy rate from second (lower) auxiliary heater. |
| 8 | Tavg | °C | Average tank temperature. |
| 9 | Tcoil | °C | Average water temperature over the condenser depth. Used in next-timestep HP performance calculation. |
| 10 | Tcond | °C | Calculated refrigerant condensing temperature. |
| 11 | QHX_out | kJ/hr | Rate of energy injected to tank water from the condenser. |
| 12 | Taux1 | °C | Temperature at HP control sensor (Vol_sensor location). |
| 13 | Taux2 | °C | Temperature at second sensor (Vol_san location). |
| 14 | Taux3 | °C | Temperature at third sensor. |
| 15 | San_fail | - | Net sanitation pass/fail. 1 = fail, 0 = pass. |
| 16 | San_ftime | hr | Simulation time when San_fail first became 1. |
| 17 | Daily_fail | - | Daily sanitation fail flag. |
| 18 | Weekly_fail | - | Weekly sanitation fail flag. |
| 19 | T45 | °C | Water temperature at 45% from top of tank (by volume). |
| 20 | T90 | °C | Water temperature at 90% from top of tank (by volume). |
| 21 | T_top | °C | Top node temperature (node 1). |
| 21+i | T_node_i | °C | Temperature of node i (i = 2 to N-1). |
| 20+N | T_bottom | °C | Bottom node temperature (node N). |
For 20 nodes: T_top = [104,21], T_bottom = [104,40], intermediate nodes at [104,22] through [104,39].
Key Output Quick Reference
| Output | Description |
|---|---|
| [104,9] | Tcoil: avg water temp at condenser [°C] — use in HP power/COP equations |
| [104,11] | QHX_out: condenser energy to water [kJ/hr] |
| [104,12] | Taux1: HP control sensor temp [°C] |
| [104,15] | San_fail |
| [104,16] | San_ftime [hr] |
| [104,19] | T45 [°C] |
| [104,20] | T90 [°C] |
| [104,21] | T_top: top node [°C] |
6. Derivatives (Initial Conditions)
One derivative per tank node, node 1 = top, node N = bottom. Typically initialised to Tset_hp.
DERIVATIVES 20
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
7. Example .dck Code
* HP performance (Mode 4 - Tcoil from previous timestep)
EQN 8
Tcoil = [104,9]
dt1 = Tcoil - Tamb
dt2 = Twet - [33,8]
power = (p0+p1*Tcoil+p2*Tcoil^2+p3*Tamb)*1000*3.6*Comp_on
cop1 = a0 + a1*dt1 + a2*dt1^2 + a3*dt2
FP = GT(Tamb,1)*LT(Tamb,Tifr)*FP1*((Tifr-Tamb)/(Tifr-1)) + (1-GT(Tamb,1))*FP1
cop = (1 - FP)*cop1
QHX = power * cop
* Tank — Mode 4 Microchannel, 29 parameters
UNIT 104 TYPE 104
PARAMETERS 29
4 VOL dia 4.18 1000 UA 2 VolAux1 volhth1 Volaux2
Voltht2 100 Max_temp VolHXtop VolHXbot Vol_sensor Vol_san 0
Wextr Lextr Nextr textr kextr tbond kbond Twall Kwall tglass kglass
INPUTS 11
Tcold 25,2 Tamb QHX Tset1 Tdb1 Aux_1pw Tset2 Tdb2 Aux_2pw WSAN
20 0 25 0 60 10 0 60 10 0 0
DERIVATIVES 20
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
EQN 6
Tout = [104,21]
T45 = [104,19]
T90 = [104,20]
QHX2 = [104,11]
San_fail = [104,15]
San_ftime = [104,16]
Source: TRNAUS15 Manual 24.6 Appendix 14. Last updated: 2026-04-30
TYPE 104 - Mode 5: Wrap-Around Coil Condenser
Source: TRNAUS15 Manual 24.6 (Appendix 14) Note: TRNAUS extension. Not part of standard TRNSYS15. For separate (external) HP systems use Type 160 instead.
1. Introduction
TYPE 104 models an integral all-in-one air-source heat pump water heater where the refrigerant condenser is wound around the outside of the storage tank. This document covers Mode 5: Wrap-Around Coil Condenser, where refrigerant tubing is bonded to the outer tank wall surface. The heat transfer path from refrigerant to water passes through: refrigerant tube wall → bond layer → tank wall → glass lining (if present) → tank water.
The component:
- Uses AS/NZS 5125 COP and Power coefficients to calculate total HP thermal output (QHX), passed as an input.
- Computes condensing temperature from tank-side water temperature and condenser geometry.
- Models a stratified tank with up to 20 isothermal nodes.
- Performs AS 3498 Legionella sanitation compliance checks.
- Supports up to two auxiliary electric heating elements.
Mode 5 is selected by setting Parameter 1 = 5.
Supports both round tube (circular cross-section, Pipe_gap = 0) and D-shaped tube (flat face bonded to wall).
2. Tank Formulation
The tank is divided into N isothermal nodes (set by the DERIVATIVES count, typically 20). The HP thermal output QHX is distributed to tank nodes over the condenser depth (between VolHXtop and VolHXbot).
HP performance calculations (external to Type 104):
Tcoil = [104,9] ! avg water temp at condenser
dt1 = Tcoil - Tamb
dt2 = Twet - Tdp
power = (p0 + p1*Tcoil + p2*Tcoil^2 + p3*Tamb) * 1000 * 3.6 * Comp_on
cop = (1 - FP) * (a0 + a1*dt1 + a2*dt1^2 + a3*dt2)
QHX = power * cop
3. Parameters (29 Total for Mode 5)
Parameters 1-18: Common Tank and Sensor Definition
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Mode | - | Specify 5 for wrap-around coil condenser. |
| 2 | VOL | m³ | Internal (fluid) tank volume. |
| 3 | dia | m | Tank inner diameter. |
| 4 | Cp | kJ/kg.K | Fluid specific heat. Water = 4.18. |
| 5 | rho | kg/m³ | Fluid density. Water = 1000. |
| 6 | UA | kJ/hr.K | Overall tank heat loss conductance. |
| 7 | AuxMode | - | Auxiliary heater mode. 1 = master/slave. 2 = both simultaneously. |
| 8 | VolAux1 | m³ | Volume above first (upper) auxiliary element. |
| 9 | volhth1 | m³ | Volume above first thermostat. |
| 10 | Volaux2 | m³ | Volume above second (lower) auxiliary element. |
| 11 | Voltht2 | m³ | Volume above second thermostat. |
| 12 | Tboil | °C | Fluid boiling point. Use 100°C. |
| 13 | Max_temp | °C | Maximum tank temperature from AS/NZS 5125 tests. |
| 14 | VolHXtop | m³ | Volume above top of condenser coil. |
| 15 | VolHXbot | m³ | Volume above bottom of condenser coil. |
| 16 | Vol_sensor | m³ | Volume above HP control sensor (first auxiliary temperature sensor). |
| 17 | Vol_san | m³ | Volume above second auxiliary temperature sensor. |
| 18 | 0 | m³ | Volume above third auxiliary temperature sensor. Set to 0 if unused. |
Parameters 19-29: Mode 5 Wrap-Around Coil Geometry
| No. | Symbol | Units | Description |
|---|---|---|---|
| 19 | ltube | m | Total length of condenser tube in contact with the tank wall. |
| 20 | dia_tube | m | External diameter of the condenser tubing. |
| 21 | ttube | m | Wall thickness of the condenser tube. |
| 22 | ktube | kJ/hr.m.K | Thermal conductivity of the condenser tube wall material. |
| 23 | wbond | m | Width of contact between condenser tube bond and tank wall. For a round tube: contact width (chord length). For a D-shaped tube: width of the flat face in contact with the wall. |
| 24 | Pipe_gap | m | Separation between condenser tube and tank wall. Round tube: set to 0 (tube touches wall). D-tube: bond thickness between flat face and tank wall. |
| 25 | kbond | kJ/hr.m.K | Thermal conductivity of the bond/adhesive between tube and tank wall. |
| 26 | Twall | m | Thickness of the tank wall. |
| 27 | Kwall | kJ/hr.m.K | Thermal conductivity of the tank wall. |
| 28 | tglass | m | Thickness of glass/porcelain lining on inner tank surface. Set to 0 if absent. |
| 29 | kglass | kJ/hr.m.K | Thermal conductivity of the glass lining. |
4. Inputs (11 Total)
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Tcold | °C | Cold mains water temperature entering at the bottom of the tank. |
| 2 | ldflw | kg/hr | Load flow rate. Typically [25,2] from a Type 11 tempering valve. |
| 3 | Tamb | °C | Ambient air temperature surrounding the tank. |
| 4 | QHX | kJ/hr | Total thermal energy from heat pump to tank. Computed as Power * cop. |
| 5 | Tset1 | °C | Set temperature for first (upper) auxiliary element thermostat. |
| 6 | Tdb1 | K | Deadband for first thermostat. |
| 7 | Aux_1pw | kJ/hr | Heating rate of first auxiliary element. Pass 0 when not active. |
| 8 | Tset2 | °C | Set temperature for second (lower) auxiliary element thermostat. |
| 9 | Tdb2 | K | Deadband for second thermostat. |
| 10 | Aux_2pw | kJ/hr | Heating rate of second auxiliary element. Pass 0 when not active. |
| 11 | WSAN | - | Weekly sanitation signal (binary). 1 = active sanitation cycle. |
5. Outputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | m_load | kg/hr | Mass flow rate to load. |
| 2 | Q_env | kJ/hr | Heat loss to environment. |
| 3 | Q_load | kJ/hr | Energy removed by load flow. |
| 4 | DE | kJ | Cumulative internal energy change from simulation start. |
| 5 | Q_aux | kJ/hr | Combined auxiliary heater energy (both elements). |
| 6 | Q_aux1 | kJ/hr | Energy from first (upper) auxiliary heater. |
| 7 | Q_aux2 | kJ/hr | Energy from second (lower) auxiliary heater. |
| 8 | Tavg | °C | Average tank temperature. |
| 9 | Tcoil | °C | Average water temperature over the condenser depth. Use in HP performance equations next timestep. |
| 10 | Tcond | °C | Calculated refrigerant condensing temperature. |
| 11 | QHX_out | kJ/hr | Rate of energy delivered to tank water from condenser. |
| 12 | Taux1 | °C | Temperature at HP control sensor (Vol_sensor location). |
| 13 | Taux2 | °C | Temperature at second sensor (Vol_san location). |
| 14 | Taux3 | °C | Temperature at third sensor. |
| 15 | San_fail | - | Net sanitation pass/fail. 1 = fail, 0 = pass. |
| 16 | San_ftime | hr | Time when San_fail first became 1. |
| 17 | Daily_fail | - | Daily sanitation fail flag. |
| 18 | Weekly_fail | - | Weekly sanitation fail flag. |
| 19 | T45 | °C | Water temperature at 45% from top (by volume). |
| 20 | T90 | °C | Water temperature at 90% from top (by volume). |
| 21 | T_top | °C | Top node temperature (node 1). |
| 21+i | T_node_i | °C | Temperature of node i (i = 2 to N-1). |
| 20+N | T_bottom | °C | Bottom node temperature (node N). |
For 20 nodes: T_top = [104,21], T_bottom = [104,40], nodes 2-19 at [104,22]-[104,39].
Key Output Quick Reference
| Output | Description |
|---|---|
| [104,9] | Tcoil: avg water temp at condenser [°C] |
| [104,11] | QHX_out: condenser energy to water [kJ/hr] |
| [104,12] | Taux1: HP control sensor temp [°C] |
| [104,15] | San_fail |
| [104,16] | San_ftime [hr] |
| [104,19] | T45 [°C] |
| [104,20] | T90 [°C] |
| [104,21] | T_top: top node [°C] |
6. Derivatives (Initial Conditions)
One derivative per node, node 1 = top, node N = bottom.
DERIVATIVES 20
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
7. Example .dck Code
* HP performance (Mode 5 - Tcoil from tank output)
EQN 8
Tcoil = [104,9]
dt1 = Tcoil - Tamb
dt2 = Twet - [33,8]
power = (p0+p1*Tcoil+p2*Tcoil^2+p3*Tamb)*1000*3.6*Comp_on
cop1 = a0 + a1*dt1 + a2*dt1^2 + a3*dt2
FP = GT(Tamb,1)*LT(Tamb,Tifr)*FP1*((Tifr-Tamb)/(Tifr-1)) + (1-GT(Tamb,1))*FP1
cop = (1 - FP)*cop1
QHX = power * cop
* Tank — Mode 5 Wrap-Around Coil, 29 parameters
UNIT 104 TYPE 104
PARAMETERS 29
5 VOL dia 4.18 1000 UA 2 VolAux1 volhth1 Volaux2
Voltht2 100 Max_temp VolHXtop VolHXbot Vol_sensor Vol_san 0
ltube dia_tube ttube ktube wbond Pipe_gap kbond Twall Kwall tglass kglass
INPUTS 11
Tcold 25,2 Tamb QHX Tset1 Tdb1 Aux_1pw Tset2 Tdb2 Aux_2pw WSAN
20 0 25 0 60 10 0 60 10 0 0
DERIVATIVES 20
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
EQN 6
Tout = [104,21]
T45 = [104,19]
T90 = [104,20]
QHX2 = [104,11]
San_fail = [104,15]
San_ftime = [104,16]
Source: TRNAUS15 Manual 24.6 Appendix 14. Last updated: 2026-04-30
TYPE 104 - Mode 6: Submerged Coil Condenser
Source: TRNAUS15 Manual 24.6 (Appendix 14) Note: TRNAUS extension. Not part of standard TRNSYS15. For separate (external) HP systems use Type 160 instead.
1. Introduction
TYPE 104 models an integral all-in-one air-source heat pump water heater where the refrigerant condenser coil is submerged directly inside the storage tank. This document covers Mode 6: Submerged Coil Condenser, where refrigerant flows through a twin-wall coil immersed in the tank water. Heat transfers from refrigerant through the inner and outer tube walls (and optional glass coating) directly into the surrounding water.
The component:
- Uses AS/NZS 5125 COP and Power coefficients to calculate total HP thermal output (QHX), passed as an input.
- Computes condensing temperature from surrounding water temperature and condenser geometry.
- Models a stratified tank with up to 20 isothermal nodes.
- Performs AS 3498 Legionella sanitation compliance checks.
- Supports up to two auxiliary electric heating elements.
Mode 6 is selected by setting Parameter 1 = 6.
Mode 6 uses a twin-wall tube construction (inner layer + outer layer + optional glass coating) to provide the required separation between refrigerant and potable water.
2. Tank Formulation
The tank is divided into N isothermal nodes (set by the DERIVATIVES count, typically 20). The HP thermal output QHX is distributed to tank nodes over the condenser depth (between VolHXtop and VolHXbot).
HP performance calculations (external to Type 104):
Tcoil = [104,9] ! avg water temp surrounding the coil
dt1 = Tcoil - Tamb
dt2 = Twet - Tdp
power = (p0 + p1*Tcoil + p2*Tcoil^2 + p3*Tamb) * 1000 * 3.6 * Comp_on
cop = (1 - FP) * (a0 + a1*dt1 + a2*dt1^2 + a3*dt2)
QHX = power * cop
3. Parameters (28 Total for Mode 6)
Parameters 1-18: Common Tank and Sensor Definition
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Mode | - | Specify 6 for submerged coil condenser. |
| 2 | VOL | m³ | Internal (fluid) tank volume. |
| 3 | dia | m | Tank inner diameter. |
| 4 | Cp | kJ/kg.K | Fluid specific heat. Water = 4.18. |
| 5 | rho | kg/m³ | Fluid density. Water = 1000. |
| 6 | UA | kJ/hr.K | Overall tank heat loss conductance. |
| 7 | AuxMode | - | Auxiliary heater mode. 1 = master/slave. 2 = both simultaneously. |
| 8 | VolAux1 | m³ | Volume above first (upper) auxiliary element. |
| 9 | volhth1 | m³ | Volume above first thermostat. |
| 10 | Volaux2 | m³ | Volume above second (lower) auxiliary element. |
| 11 | Voltht2 | m³ | Volume above second thermostat. |
| 12 | Tboil | °C | Fluid boiling point. Use 100°C. |
| 13 | Max_temp | °C | Maximum tank temperature from AS/NZS 5125 tests. |
| 14 | VolHXtop | m³ | Volume above top of submerged condenser coil. |
| 15 | VolHXbot | m³ | Volume above bottom of submerged condenser coil. |
| 16 | Vol_sensor | m³ | Volume above HP control sensor (first auxiliary temperature sensor). |
| 17 | Vol_san | m³ | Volume above second auxiliary temperature sensor. |
| 18 | 0 | m³ | Volume above third auxiliary temperature sensor. Set to 0 if unused. |
Parameters 19-28: Mode 6 Submerged Coil Geometry
Mode 6 uses 10 condenser geometry parameters (one fewer than Modes 4 and 5, giving 28 total parameters).
| No. | Symbol | Units | Description |
|---|---|---|---|
| 19 | ltube | m | Length of condenser tube submerged in tank water. |
| 20 | dia_tube | m | External diameter of the condenser tubing. |
| 21 | ttubeinner | m | Thickness of the inner layer of twin-wall condenser tubing. |
| 22 | ktubeinner | kJ/hr.m.K | Thermal conductivity of the inner tube layer. |
| 23 | ttubeouter | m | Thickness of the outer layer of twin-wall condenser tubing. |
| 24 | ktubeouter | kJ/hr.m.K | Thermal conductivity of the outer tube layer. |
| 25 | tglass | m | Thickness of glass/ceramic coating on outside of condenser tube. Set to 0 if not present. |
| 26 | kglass | kJ/hr.m.K | Thermal conductivity of the glass coating. |
| 27 | Twall | m | Thickness of the tank wall. |
| 28 | Kwall | kJ/hr.m.K | Thermal conductivity of the tank wall. |
4. Inputs (11 Total)
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Tcold | °C | Cold mains water temperature entering at the bottom of the tank. |
| 2 | ldflw | kg/hr | Load flow rate. Typically [25,2] from a Type 11 tempering valve. |
| 3 | Tamb | °C | Ambient air temperature surrounding the tank. |
| 4 | QHX | kJ/hr | Total thermal energy from heat pump to tank. Computed as Power * cop. |
| 5 | Tset1 | °C | Set temperature for first (upper) auxiliary element thermostat. |
| 6 | Tdb1 | K | Deadband for first thermostat. |
| 7 | Aux_1pw | kJ/hr | Heating rate of first auxiliary element. Pass 0 when not active. |
| 8 | Tset2 | °C | Set temperature for second (lower) auxiliary element thermostat. |
| 9 | Tdb2 | K | Deadband for second thermostat. |
| 10 | Aux_2pw | kJ/hr | Heating rate of second auxiliary element. Pass 0 when not active. |
| 11 | WSAN | - | Weekly sanitation signal (binary). 1 = active sanitation cycle. |
5. Outputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | m_load | kg/hr | Mass flow rate to load. |
| 2 | Q_env | kJ/hr | Heat loss to environment. |
| 3 | Q_load | kJ/hr | Energy removed by load flow. |
| 4 | DE | kJ | Cumulative internal energy change from simulation start. |
| 5 | Q_aux | kJ/hr | Combined auxiliary heater energy (both elements). |
| 6 | Q_aux1 | kJ/hr | Energy from first (upper) auxiliary heater. |
| 7 | Q_aux2 | kJ/hr | Energy from second (lower) auxiliary heater. |
| 8 | Tavg | °C | Average tank temperature. |
| 9 | Tcoil | °C | Average water temperature surrounding the submerged coil. Use in HP performance equations. |
| 10 | Tcond | °C | Calculated refrigerant condensing temperature. |
| 11 | QHX_out | kJ/hr | Rate of energy delivered from condenser coil to tank water. |
| 12 | Taux1 | °C | Temperature at HP control sensor (Vol_sensor location). |
| 13 | Taux2 | °C | Temperature at second sensor (Vol_san location). |
| 14 | Taux3 | °C | Temperature at third sensor. |
| 15 | San_fail | - | Net sanitation pass/fail. 1 = fail, 0 = pass. |
| 16 | San_ftime | hr | Time when San_fail first became 1. |
| 17 | Daily_fail | - | Daily sanitation fail flag. |
| 18 | Weekly_fail | - | Weekly sanitation fail flag. |
| 19 | T45 | °C | Water temperature at 45% from top (by volume). |
| 20 | T90 | °C | Water temperature at 90% from top (by volume). |
| 21 | T_top | °C | Top node temperature (node 1). |
| 21+i | T_node_i | °C | Temperature of node i (i = 2 to N-1). |
| 20+N | T_bottom | °C | Bottom node temperature (node N). |
For 20 nodes: T_top = [104,21], T_bottom = [104,40], nodes 2-19 at [104,22]-[104,39].
Key Output Quick Reference
| Output | Description |
|---|---|
| [104,9] | Tcoil: avg water temp surrounding submerged coil [°C] |
| [104,11] | QHX_out: condenser energy to water [kJ/hr] |
| [104,12] | Taux1: HP control sensor temp [°C] |
| [104,15] | San_fail |
| [104,16] | San_ftime [hr] |
| [104,19] | T45 [°C] |
| [104,20] | T90 [°C] |
| [104,21] | T_top: top node [°C] |
6. Derivatives (Initial Conditions)
DERIVATIVES 20
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
7. Example .dck Code
* HP performance (Mode 6 - Tcoil from tank output)
EQN 8
Tcoil = [104,9]
dt1 = Tcoil - Tamb
dt2 = Twet - [33,8]
power = (p0+p1*Tcoil+p2*Tcoil^2+p3*Tamb)*1000*3.6*Comp_on
cop1 = a0 + a1*dt1 + a2*dt1^2 + a3*dt2
FP = GT(Tamb,1)*LT(Tamb,Tifr)*FP1*((Tifr-Tamb)/(Tifr-1)) + (1-GT(Tamb,1))*FP1
cop = (1 - FP)*cop1
QHX = power * cop
* Tank — Mode 6 Submerged Coil, 28 parameters
UNIT 104 TYPE 104
PARAMETERS 28
6 VOL dia 4.18 1000 UA 2 VolAux1 volhth1 Volaux2
Voltht2 100 Max_temp VolHXtop VolHXbot Vol_sensor Vol_san 0
ltube dia_tube ttubeinner ktubeinner ttubeouter ktubeouter tglass kglass Twall Kwall
INPUTS 11
Tcold 25,2 Tamb QHX Tset1 Tdb1 Aux_1pw Tset2 Tdb2 Aux_2pw WSAN
20 0 25 0 60 10 0 60 10 0 0
DERIVATIVES 20
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp Tset_hp
EQN 6
Tout = [104,21]
T45 = [104,19]
T90 = [104,20]
QHX2 = [104,11]
San_fail = [104,15]
San_ftime = [104,16]
Source: TRNAUS15 Manual 24.6 Appendix 14. Last updated: 2026-04-30
TYPE 160 - No Internal HX Coil (hxMode = 0)
Source: TRNAUS15 Manual 24.6 (Appendix 12), TRNSYS15 Type 60 documentation Note: TRNAUS extension. Not part of standard TRNSYS15. For integral HP tanks use Type 104.
1. Introduction
This is the standard configuration for a separate (external) air-source heat pump connected to a hot water storage tank. There is no internal immersed heat exchanger coil. The heat pump loop connects directly to the tank via flow ports: cold water is drawn from the tank base, heated by the external HP, and returned to the tank.
36 parameters. 9 inputs. Sanitation mode always active (Htank < 0).
Port assignments:
- Flow 1: Load circuit. Cold mains enters at the bottom (H1in = Hcold), hot water exits at the top (H1out = Hload).
- Flow 2: HP circuit. Supply to HP exits mid-tank (H2out = Hsupl), HP return enters upper tank (H2in = Hret).
TYPE 160 adds over TYPE 60: fixed auxiliary temperature sensors, AS 3498 Legionella sanitation checking, and optional collector loop HX type selection.
2. Tank Formulation
Multi-node stratified tank. N nodes set by DERIVATIVES count (typically 20, top = node 1). Each node exchanges energy with adjacent nodes via axial conduction and forced mixing. Inverse stratification (lower node hotter than upper) is corrected each sub-timestep.
Height convention: All port and sensor heights are measured from the bottom of the tank in metres:
H_port = (voltot - vol_above_port_L) / voltot * height_m
Standing loss to Utank:
UA = Tnk_loss [kWh/d] * 3.6e6 / 24 / 3600 / 55 * 3.6 ! kJ/hr.K
Utank = UA / A_tank ! kJ/hr.m2.K
De-stratification conductivity:
de_strat = pi * dia * (Twall * Kwall) / (pi * dia^2 / 4)
3. Parameters (36 Total)
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Mode60 | - | Inlet positioning. 1 = auto temperature-seeking (use when HP flow/output < 1 (L/min)/kWt AND Hret < 2/3 tank height). 2 = fixed position (high-flow or high return port). Mode 2 may need node count reduced to 10. |
| 2 | VOL | m³ | Internal tank volume. |
| 3 | neg_h | m | Tank height — always negative (e.g., neg_h = -height). Activates sanitation mode. |
| 4 | per | m | Tank perimeter. Use -1 for automatic cylindrical vertical tank. |
| 5 | Hcold | m | Height of cold water inlet (flow 1 in) above tank bottom. Typically near zero (bottom). |
| 6 | Hload | m | Height of hot water outlet to load (flow 1 out) above tank bottom. Typically at top. |
| 7 | Hret | m | Height of HP return into tank (flow 2 in) above tank bottom. |
| 8 | Hsupl | m | Height of supply outlet to HP (flow 2 out) above tank bottom. |
| 9 | Cp | kJ/kg.°C | Fluid specific heat. Water = 4.18. |
| 10 | rho | kg/m³ | Fluid density. Water = 1000. |
| 11 | Utank | kJ/hr.m².°C | Tank heat loss coefficient per unit area. |
| 12 | k | kJ/hr.m.°C | Tank fluid thermal conductivity. Water = 2.16 kJ/hr.m.°C. |
| 13 | Dk | kJ/hr.m.°C | De-stratification conductivity (wall conduction). |
| 14 | Tboil | °C | Fluid boiling point. Use 95°C for low-pressure tanks. |
| 15 | AuxMode | - | Auxiliary heater mode. 1 = master/slave. 2 = both simultaneously. |
| 16 | Haux1 | m | Height of auxiliary element 1 (boost) above tank bottom. |
| 17 | Hstat1 | m | Height of thermostat for auxiliary element 1 above tank bottom. |
| 18 | Tset1 | °C | Set point for auxiliary element 1. Positive = use as parameter. |
| 19 | DTdb1 | °C | Deadband for auxiliary element 1 thermostat. |
| 20 | Qaux1 | kJ/hr | Maximum heating rate of auxiliary element 1. |
| 21 | Haux2 | m | Height of auxiliary element 2 above tank bottom. Set to 0 if absent. |
| 22 | Hstat2 | m | Height of thermostat for auxiliary element 2. Set to 0 if absent. |
| 23 | Tset2 | °C | Set point for auxiliary element 2. |
| 24 | DTdb2 | °C | Deadband for auxiliary element 2. |
| 25 | Qaux2 | kJ/hr | Maximum heating rate of auxiliary element 2. |
| 26 | UAflue | kJ/hr.°C | Flue heat loss conductance. Set to 0 (no flue). |
| 27 | Tflue | °C | Flue temperature. Set to 0 (no flue). |
| 28 | CritFraction | - | Sub-timestep divisions. Recommended: 5. |
| 29 | GasAuxMode | - | 0 = both heaters electric. 1 = heater 2 is gas. |
| 30 | hxMode | - | Set to 0 — no internal HX coil. |
| 31 | HMode | - | 0 = equal node heights (standard). |
| 32 | UMode | - | 0 = uniform Utank (standard). |
| 33 | hx | - | Collector loop HX type. 0 = not used (standard for HP decks). |
| 34 | HAUXT1 | m | Height of HP control sensor above tank bottom. |
| 35 | HAUXT2 | m | Height of 2nd auxiliary sensor. Set to 0 if unused. |
| 36 | HAUXT3 | m | Height of 3rd auxiliary sensor. Set to 0 if unused. |
4. Inputs (9 Total)
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | m1in | kg/hr | Flow 1 inlet mass flow (load draw-off side). Use [25,2] from tempering valve. |
| 2 | m1out | kg/hr | Flow 1 outlet. Set to -2 (unknown, computed by model). |
| 3 | m2in | kg/hr | Flow 2 inlet: HP return flow rate into tank. |
| 4 | m2out | kg/hr | Flow 2 outlet: supply flow rate to HP. Pass same value as m2in. |
| 5 | T1in | °C | Temperature of flow 1 inlet (cold mains, Tcold). |
| 6 | T2in | °C | Temperature of flow 2 inlet (HP outlet temperature after pipe losses). |
| 7 | Tenv | °C | Environment temperature for tank heat loss (Tamb). |
| 8 | ghtr1 | - | Enable signal for auxiliary heater 1 (aux_onoff). |
| 9 | ghtr2 | - | Enable signal for auxiliary heater 2. Set to 0 if no second heater. |
5. Outputs
Outputs 1-21: Standard
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | m1in | kg/hr | Flow 1 inlet rate. |
| 2 | m1out | kg/hr | Flow 1 outlet rate (load draw-off). |
| 3 | m2in | kg/hr | Flow 2 inlet rate (HP return). |
| 4 | m2out | kg/hr | Flow 2 outlet rate (supply to HP). |
| 5 | T1out | °C | Flow 1 outlet temperature (hot water delivery). |
| 6 | T2out | °C | Flow 2 outlet temperature (supply to HP). |
| 7 | Qenv | kJ/hr | Heat loss to environment. |
| 8 | Q1in | kJ/hr | Energy entering via flow 1. |
| 9 | Q1out | kJ/hr | Energy leaving via flow 1. |
| 10 | Q2in | kJ/hr | Energy entering via flow 2 (HP return). |
| 11 | Q2out | kJ/hr | Energy leaving via flow 2 (supply to HP). |
| 12 | Qaux | kJ/hr | Combined auxiliary heater energy. |
| 13 | Qaux1 | kJ/hr | First heater energy. |
| 14 | Qaux2 | kJ/hr | Second heater energy. |
| 15 | Qflue | kJ/hr | Flue heat loss (zero when UAflue = 0). |
| 16 | DE | kJ | Cumulative internal energy change. |
| 17 | Tavg | °C | Average tank temperature. |
| 18-21 | DP | kPa | Pressure heads (typically unused). |
Outputs 22-33: Sanitation and Sensors
| No. | Symbol | Units | Description |
|---|---|---|---|
| 22 | San_fail | - | Net sanitation pass/fail. 1 = fail, 0 = pass. |
| 23 | San_ftime | hr | Time San_fail first became 1. |
| 24 | Daily_fail | - | Daily sanitation fail. |
| 25 | Weekly_fail | - | Weekly sanitation fail. |
| 26 | Sanvol_fail | - | Volume/time sanitation fail. |
| 27 | Taux1 | °C | Temperature at HAUXT1 (HP control sensor). |
| 28 | Taux2 | °C | Temperature at HAUXT2. |
| 29 | Taux3 | °C | Temperature at HAUXT3. |
| 30 | T45 | °C | Temperature at 45% from top (by volume). |
| 31 | T90 | °C | Temperature at 90% from top (by volume). |
| 32 | San_vol | m³ | Volume of water at or above 55°C. |
| 33 | San_time | hr | Cumulative time San_vol > 0. |
Outputs 34+: Node Temperatures
| No. | Symbol | Description |
|---|---|---|
| 34 | T_top | Top node (node 1) [°C] |
| 35 | T_bottom | Bottom node (node N) [°C] |
| 36 | T_node2 | Node 2 [°C] |
| … | … | … |
| 34+i | T_nodei | Intermediate node i (i = 2 to N-1) [°C] |
For 20 nodes: top = [unit,34], bottom = [unit,35], nodes 2-19 at [unit,36]-[unit,53].
6. Derivatives
DERIVATIVES 20
60 60 55 55 50 50 45 45 40 40
35 35 30 30 25 25 20 20 20 20
7. Example .dck Code
* --- CONSTANTS (tank geometry) ---
Constants 38
pi = 3.14159
voltot = 315 ; VOL = voltot/1000 ; dia = 0.45
height = VOL*4/(pi*dia^2) ; neg_h = -height
areatank = pi*dia^2/4*2 + pi*dia*height
Vol_sensor = 50
HAUXT1 = (voltot-Vol_sensor)/voltot*height ; HAUXT2 = 0 ; HAUXT3 = 0
Taux = 5 ; volhth1 = 80 ; HTH1 = (voltot-volhth1)/voltot*height
volaux1 = 50 ; HAUX1 = (voltot-volaux1)/voltot*height
Tset1 = 60 ; Tdb1 = 5 ; Aux1 = 1.8*1000*3.6
volload = 0 ; volcold = 315 ; volret = 80 ; volsupl = 250
Hload = (voltot-volload)/voltot*height ; Hcold = (voltot-volcold)/voltot*height
Hret = (voltot-volret)/voltot*height ; Hsupl = (voltot-volsupl)/voltot*height
Mode60 = 1 ; crit = 5
Tnk_loss = 1.45 ; UA = Tnk_loss*3.6e6/24/3600/55*3.6 ; Utank = UA/areatank
Twall = 0.002 ; Kwall = 50*3.6 ; de_strat = pi*dia*Twall*Kwall/(pi*dia^2/4)
Tcontrol = [60,27]
* --- UNIT ---
UNIT 60 TYPE 160 Separate HP tank - no HX coil
* Params 1-10: Mode VOL neg_h per Hcold Hload Hret Hsupl Cp rho
* Params 11-20: Utank k Dk Tboil Aux Haux1 Hth1 Tset1 Tdb1 Qaux1
* Params 21-30: 0 0 0 0 0 0 0 crit 0 hxMode(0)
* Params 31-36: HMode UMode hx HAUXT1 HAUXT2 HAUXT3
PARAMETERS 36
Mode60 VOL neg_h -1 Hcold Hload Hret Hsupl 4.18 1000
Utank kfluid de_strat 95 1 HAUX1 HTH1 Tset1 Tdb1 Aux1
0 0 0 0 0 0 0 crit 0 0
0 0 0 HAUXT1 HAUXT2 HAUXT3
* Inputs: m1in m1out m2in m2out T1in T2in Tenv ghtr1 ghtr2
INPUTS 9
25,2 0,0 pflow1 pflow1 Tcold 21,1 Tamb aux_onoff 0,0
20 -2 0 0 20 20 20 1 0
DERIVATIVES 20
60 60 55 55 50 50 45 45 40 40
35 35 30 30 25 25 20 20 20 20
EQN 10
Tout = [60,5] ; T2out = [60,6] ; Qenv = [60,7]
DE = [60,16] ; Qaux = [60,12]
San_fail = [60,22] ; San_ftime = [60,23]
D_fail = [60,24] ; W_fail = [60,25]
AuxT1 = [60,27] ; T45 = [60,30] ; T90 = [60,31]
T_top = [60,34] ; T_bot = [60,35]
Source: TRNAUS15 Manual 24.6 Appendix 12. Last updated: 2026-04-30
TYPE 160 - HP Loop via Internal HX Coil (hxMode = 1)
Source: TRNAUS15 Manual 24.6 (Appendix 12), TRNSYS15 Type 60 documentation Note: TRNAUS extension. Not part of standard TRNSYS15.
1. Introduction
This configuration is used when the heat pump loop transfers heat to the tank through an internal immersed coil rather than direct flow ports. The HP working fluid (water, glycol, or refrigerant) circulates through a submerged heat exchanger coil. The load circuit connects via direct flow port 1. Flow port 2 is not used (set to -1).
48 parameters. 13 inputs. Sanitation mode always active (Htank < 0).
Port assignments:
- Flow 1: Load circuit. Cold mains in at bottom (H1in = Hcold), hot water out at top (H1out = Hload).
- Flow 2: Not used. Set H2in = H2out = -1, m2in = m2out = -1.
- HX coil (params 33-44): HP fluid loop. HP return enters at Hhx,in, supply exits at Hhx,out.
The HX model computes heat transfer between the HP loop fluid and tank water nodes using Nusselt number correlations (inputs C and n).
2. Tank Formulation
Same multi-node stratified formulation as the No HX variant. The HX coil adds energy to the tank nodes that overlap the coil depth. The HX model solves for coil outlet temperature and node temperatures simultaneously each sub-timestep.
Height convention: All heights measured from tank bottom:
H_port = (voltot - vol_above_port_L) / voltot * height_m
Standing loss:
UA = Tnk_loss [kWh/d] * 3.6e6 / 24 / 3600 / 55 * 3.6
Utank = UA / A_tank
3. Parameters (48 Total)
Parameters 1-32: Type 60 Base
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Mode60 | - | Inlet positioning. 1 = auto temperature-seeking. 2 = fixed. |
| 2 | VOL | m³ | Internal tank volume. |
| 3 | neg_h | m | Tank height — always negative. Activates sanitation mode. |
| 4 | per | m | Tank perimeter. Use -1 for cylindrical vertical. |
| 5 | H1in | m | Cold water inlet height (flow 1 in). Near bottom. |
| 6 | H1out | m | Hot water outlet to load (flow 1 out). Near top. |
| 7 | H2in | m | Set to -1 — flow port 2 not used. |
| 8 | H2out | m | Set to -1 — flow port 2 not used. |
| 9 | Cp | kJ/kg.°C | Tank fluid specific heat. Water = 4.18. |
| 10 | rho | kg/m³ | Tank fluid density. Water = 1000. |
| 11 | Utank | kJ/hr.m².°C | Tank heat loss coefficient per unit area. |
| 12 | k | kJ/hr.m.°C | Tank fluid thermal conductivity. Water = 2.16. |
| 13 | Dk | kJ/hr.m.°C | De-stratification conductivity. |
| 14 | Tboil | °C | Fluid boiling point. Use 95°C. |
| 15 | AuxMode | - | 1 = master/slave. 2 = both simultaneously. |
| 16 | Haux1 | m | Height of auxiliary element 1 above tank bottom. |
| 17 | Hstat1 | m | Height of thermostat 1 above tank bottom. |
| 18 | Tset1 | °C | Set point for auxiliary element 1. |
| 19 | DTdb1 | °C | Deadband for auxiliary element 1. |
| 20 | Qaux1 | kJ/hr | Max heating rate of auxiliary element 1. |
| 21 | Haux2 | m | Height of auxiliary element 2. Set to 0 if absent. |
| 22 | Hstat2 | m | Height of thermostat 2. Set to 0 if absent. |
| 23 | Tset2 | °C | Set point for auxiliary element 2. |
| 24 | DTdb2 | °C | Deadband for auxiliary element 2. |
| 25 | Qaux2 | kJ/hr | Max heating rate of auxiliary element 2. |
| 26 | UAflue | kJ/hr.°C | Flue conductance. Set to 0. |
| 27 | Tflue | °C | Flue temperature. Set to 0. |
| 28 | CritFraction | - | Sub-timestep divisions. Recommended: 5. |
| 29 | GasAuxMode | - | 0 = both electric. |
| 30 | hxMode | - | Set to 1 — one internal HX coil. |
| 31 | HMode | - | 0 = equal node heights. |
| 32 | UMode | - | 0 = uniform Utank. |
Parameters 33-44: HP Loop HX Coil Definition
| No. | Symbol | Units | Description |
|---|---|---|---|
| 33 | HX fluid | - | Fluid in HP loop coil. 1 = water. 2 = propylene glycol/water. 3 = ethylene glycol/water. |
| 34 | gly | - | Glycol fraction (0-1 for propylene; 0.55-0.85 for ethylene). Ignored if fluid = 1. |
| 35 | di | m | Coil tube inside diameter. |
| 36 | do | m | Coil tube outside diameter. |
| 37 | df | m | Fin diameter. Set df = do for smooth tube. |
| 38 | Ao | m² | Total outside surface area of coil (= pi * do * L). |
| 39 | fpm | fins/m | Fins per metre. Set to 0 for smooth tube. |
| 40 | L | m | Coil length. |
| 41 | kwall | kJ/hr.m.°C | Coil tube wall thermal conductivity (including any contact resistance). |
| 42 | kmatl | kJ/hr.m.°C | Coil tube material bulk conductivity. |
| 43 | Hhx,in | m | Height of coil inlet (HP return) above tank bottom. |
| 44 | Hhx,out | m | Height of coil outlet (HP supply) above tank bottom. |
Parameters 45-48: TYPE 160 Sanitation Sensors
| No. | Symbol | Units | Description |
|---|---|---|---|
| 45 | hx | - | Collector loop HX type. Set to 0 (not a solar collector loop). |
| 46 | HAUXT1 | m | Height of HP control sensor above tank bottom. |
| 47 | HAUXT2 | m | Height of 2nd auxiliary sensor. Set to 0 if unused. |
| 48 | HAUXT3 | m | Height of 3rd auxiliary sensor. Set to 0 if unused. |
4. Inputs (13 Total)
Inputs 1-9: Standard Flow and Heater
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | m1in | kg/hr | Flow 1 inlet (load side). Use [25,2] from tempering valve. |
| 2 | m1out | kg/hr | Flow 1 outlet. Set to -2 (computed by model). |
| 3 | m2in | kg/hr | Flow 2 inlet. Set to -1 (port not used). |
| 4 | m2out | kg/hr | Flow 2 outlet. Set to -1 (port not used). |
| 5 | T1in | °C | Cold mains temperature (Tcold). |
| 6 | T2in | °C | Dummy temperature for unused flow 2. Set to any value (e.g., 20). |
| 7 | Tenv | °C | Ambient temperature (Tamb). |
| 8 | ghtr1 | - | Auxiliary element 1 enable signal. |
| 9 | ghtr2 | - | Auxiliary element 2 enable signal. |
Inputs 10-13: HX Coil (HP Loop)
| No. | Symbol | Units | Description |
|---|---|---|---|
| 10 | mhx,in | kg/hr | HP loop fluid mass flow rate through the coil. |
| 11 | Thx,in | °C | HP loop fluid temperature entering the coil (HP outlet after pipe losses). |
| 12 | C | - | Nusselt number constant for HP loop convective correlation. Typical value for water: 0.86. |
| 13 | n | - | Nusselt number exponent. Typical value: 0.4. |
5. Outputs
Outputs 1-21: Standard
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | m1in | kg/hr | Flow 1 inlet. |
| 2 | m1out | kg/hr | Flow 1 outlet (load draw-off). |
| 3-4 | m2 | kg/hr | Flow 2 (zero, not used). |
| 5 | T1out | °C | Hot water delivery temperature. |
| 6 | T2out | °C | Flow 2 temperature (not meaningful when port = -1). |
| 7 | Qenv | kJ/hr | Tank heat loss. |
| 12 | Qaux | kJ/hr | Combined auxiliary heater energy. |
| 16 | DE | kJ | Cumulative energy change. |
Outputs 22-33: Sanitation and Sensors
| No. | Symbol | Description |
|---|---|---|
| 22 | San_fail | Net sanitation fail flag |
| 23 | San_ftime | Time of first fail [hr] |
| 24 | Daily_fail | Daily fail flag |
| 25 | Weekly_fail | Weekly fail flag |
| 26 | Sanvol_fail | Volume/time fail flag |
| 27 | Taux1 | Temp at HAUXT1 (HP control sensor) [°C] |
| 28 | Taux2 | Temp at HAUXT2 [°C] |
| 29 | Taux3 | Temp at HAUXT3 [°C] |
| 30 | T45 | Temp at 45% from top [°C] |
| 31 | T90 | Temp at 90% from top [°C] |
| 32 | San_vol | Volume at or above 55°C [m³] |
| 33 | San_time | Cumulative time San_vol > 0 [hr] |
Outputs 34-38: HX Coil Performance
| No. | Symbol | Units | Description |
|---|---|---|---|
| 34 | Qhx | kJ/hr | Rate of energy transferred from HP coil to tank water. |
| 35 | Tout_hx | °C | HP loop fluid outlet temperature from coil. |
| 36 | Tout_node | °C | Tank node temperature at HX outlet. |
| 37 | lmtd | °C | Log-mean temperature difference across coil. |
| 38 | UAhx | kJ/hr.°C | Effective UA of the coil this timestep. |
Outputs 39+: Node Temperatures
| No. | Symbol | Description |
|---|---|---|
| 39 | T_top | Top node [°C] |
| 40 | T_bottom | Bottom node [°C] |
| 41 | T_node2 | Node 2 [°C] |
| … | … | … |
| 39+i | T_nodei | Node i (i = 2 to N-1) [°C] |
For 20 nodes: top = [unit,39], bottom = [unit,40], nodes 2-19 at [unit,41]-[unit,58].
6. Derivatives
DERIVATIVES 20
60 60 55 55 50 50 45 45 40 40
35 35 30 30 25 25 20 20 20 20
7. Example .dck Code
* HX coil geometry (HP loop)
Dhxi = 0.010 ; Dhxo = 0.012 ; ltube = 8.0
Areahx = 3.14159*Dhxo*ltube
Ktube = 386*3.6 ! copper kJ/hr.m.K
Hhx_in = (voltot-volret)/voltot*height ! coil top (HP return level)
Hhx_out = (voltot-volsupl)/voltot*height ! coil bottom (HP supply level)
UNIT 60 TYPE 160 Separate HP tank - HP via HX coil
* Params 1-32: as No-HX config but H2in=H2out=-1 and hxMode=1
PARAMETERS 48
Mode60 VOL neg_h -1 Hcold Hload -1 -1 4.18 1000
Utank kfluid de_strat 95 1 HAUX1 HTH1 Tset1 Tdb1 Aux1
0 0 0 0 0 0 0 crit 0 1
0 0
1 0 Dhxi Dhxo Dhxo Areahx 0 ltube Ktube Ktube Hhx_in Hhx_out
0 HAUXT1 HAUXT2 HAUXT3
* Inputs 1-9: load side + heaters; inputs 10-13: HX coil (HP loop)
INPUTS 13
25,2 0,0 -1 -1 Tcold 20 Tamb aux_onoff 0,0
20 -2 0 0 20 20 20 1 0
pflow1 21,1 0.86 0.4
0 20 0 0
DERIVATIVES 20
60 60 55 55 50 50 45 45 40 40
35 35 30 30 25 25 20 20 20 20
EQN 10
Tout = [60,5] ; Qenv = [60,7] ; DE = [60,16] ; Qaux = [60,12]
San_fail = [60,22] ; San_ftime = [60,23]
D_fail = [60,24] ; W_fail = [60,25]
AuxT1 = [60,27] ; T45 = [60,30] ; T90 = [60,31]
Qhx = [60,34] ; Tout_hx = [60,35]
T_top = [60,39] ; T_bot = [60,40]
Source: TRNAUS15 Manual 24.6 Appendix 12. Last updated: 2026-04-30
TYPE 160 - Indirect Load via Internal HX Coil (hxMode = 1)
Source: TRNAUS15 Manual 24.6 (Appendix 12), TRNSYS15 Type 60 documentation, Separate_HP_Map_Fixed_LoadCoil_Parallel template Note: TRNAUS extension. Not part of standard TRNSYS15.
1. Introduction
This configuration is used when domestic hot water is delivered indirectly through an immersed coil inside the storage tank. Cold mains water enters the coil at the bottom of the tank, is heated by the surrounding tank water through the coil wall, and exits as hot domestic water at the top. The domestic water never directly enters the tank. The heat pump heats the tank water directly via flow port 2.
48 parameters. 13 inputs. Sanitation mode always active (Htank < 0).
Port assignments:
- Flow 1: Non-existent. Set H1in = H1out = -1. Inputs m1in = m1out = -1.
- Flow 2: HP direct circuit. HP return enters at H2in = Hret, supply to HP exits at H2out = Hsupl.
- HX coil (params 33-44): Load circuit. Cold mains water enters coil at Hhx,in = Hcold (bottom of tank). Hot domestic water exits coil at Hhx,out = Hload (top of tank).
The hot water supply temperature for the load is the HX coil outlet temperature, output [unit,35], which feeds the tempering valve.
2. Tank Formulation
The HP heats the tank water via direct flow (port 2). The load draws heat indirectly: cold domestic water flows through the coil and is heated by the surrounding tank water. The HX model solves for coil outlet temperature each sub-timestep based on coil geometry and the Nusselt number correlation.
Height convention:
H_port = (voltot - vol_above_port_L) / voltot * height_m
Standing loss:
UA = Tnk_loss [kWh/d] * 3.6e6 / 24 / 3600 / 55 * 3.6
Utank = UA / A_tank
3. Parameters (48 Total)
Parameters 1-32: Type 60 Base
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Mode60 | - | Inlet positioning. 1 = auto temperature-seeking. 2 = fixed. |
| 2 | VOL | m³ | Internal tank volume. |
| 3 | neg_h | m | Tank height — always negative. Activates sanitation mode. |
| 4 | per | m | Tank perimeter. Use -1 for cylindrical vertical. |
| 5 | H1in | m | Set to -1 — flow port 1 non-existent. |
| 6 | H1out | m | Set to -1 — flow port 1 non-existent. |
| 7 | H2in | m | HP return inlet height (Hret). |
| 8 | H2out | m | Supply outlet to HP height (Hsupl). |
| 9 | Cp | kJ/kg.°C | Tank fluid specific heat. Water = 4.18. |
| 10 | rho | kg/m³ | Tank fluid density. Water = 1000. |
| 11 | Utank | kJ/hr.m².°C | Tank heat loss coefficient per unit area. |
| 12 | k | kJ/hr.m.°C | Tank fluid thermal conductivity. Water = 2.16. |
| 13 | Dk | kJ/hr.m.°C | De-stratification conductivity. |
| 14 | Tboil | °C | Fluid boiling point. Use 95°C. |
| 15 | AuxMode | - | 1 = master/slave. 2 = both simultaneously. |
| 16 | Haux1 | m | Height of auxiliary element 1 above tank bottom. |
| 17 | Hstat1 | m | Height of thermostat 1 above tank bottom. |
| 18 | Tset1 | °C | Set point for auxiliary element 1. |
| 19 | DTdb1 | °C | Deadband for auxiliary element 1. |
| 20 | Qaux1 | kJ/hr | Max heating rate of auxiliary element 1. |
| 21 | Haux2 | m | Height of auxiliary element 2. Set to 0 if absent. |
| 22 | Hstat2 | m | Height of thermostat 2. Set to 0 if absent. |
| 23 | Tset2 | °C | Set point for auxiliary element 2. |
| 24 | DTdb2 | °C | Deadband for auxiliary element 2. |
| 25 | Qaux2 | kJ/hr | Max heating rate of auxiliary element 2. |
| 26 | UAflue | kJ/hr.°C | Flue conductance. Set to 0. |
| 27 | Tflue | °C | Flue temperature. Set to 0. |
| 28 | CritFraction | - | Sub-timestep divisions. Recommended: 5. |
| 29 | GasAuxMode | - | 0 = both electric. |
| 30 | hxMode | - | Set to 1 — one internal HX coil. |
| 31 | HMode | - | 0 = equal node heights. |
| 32 | UMode | - | 0 = uniform Utank. |
Parameters 33-44: Load Side HX Coil Definition
| No. | Symbol | Units | Description |
|---|---|---|---|
| 33 | HX fluid | - | 1 = water (domestic cold mains water flowing through coil). |
| 34 | gly | - | 0 (not used for water). |
| 35 | diHX | m | Coil tube inside diameter. |
| 36 | doHX | m | Coil tube outside diameter. |
| 37 | doHX | m | Fin diameter — set equal to doHX for smooth tube (no fins). |
| 38 | AHX | m² | Total outside surface area of coil (= pi * doHX * LHX). |
| 39 | 0 | fins/m | Fins per metre. Set to 0 for smooth tube. |
| 40 | LHX | m | Coil length. |
| 41 | KHX | kJ/hr.m.°C | Coil wall thermal conductivity (includes contact resistance). |
| 42 | KHX | kJ/hr.m.°C | Coil material bulk conductivity (repeat same value). |
| 43 | Hcold | m | Height of coil inlet above tank bottom. Cold mains water enters here — typically at the bottom of the tank. |
| 44 | Hload | m | Height of coil outlet above tank bottom. Hot domestic water exits here — typically at the top of the tank. |
Parameters 45-48: TYPE 160 Sanitation Sensors
| No. | Symbol | Units | Description |
|---|---|---|---|
| 45 | hx | - | Set to 0 (standard immersed coil, not a collector loop HX). |
| 46 | HAUXT1 | m | Height of HP control sensor above tank bottom. |
| 47 | HAUXT2 | m | Height of second auxiliary sensor. Typically set to Hload (top of tank) to monitor hot water supply temperature. |
| 48 | HAUXT3 | m | Set to 0 if unused. |
4. Inputs (13 Total)
Inputs 1-9: Standard Flow and Heater
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | m1in | kg/hr | Set to -1 — flow port 1 non-existent. |
| 2 | m1out | kg/hr | Set to -1 — flow port 1 non-existent. |
| 3 | m2in | kg/hr | HP return flow rate into tank (HPFlow). |
| 4 | m2out | kg/hr | Supply flow to HP. Set to -2 (computed by model). |
| 5 | T1in | °C | Temperature for non-existent port 1. Set to 0 (unused). |
| 6 | T2in | °C | HP outlet temperature entering tank (from HP outlet pipe). |
| 7 | Tenv | °C | Ambient temperature (Tamb). |
| 8 | ghtr1 | - | Auxiliary element 1 enable signal. |
| 9 | ghtr2 | - | Auxiliary element 2 enable. Set to 0 if no second heater. |
Inputs 10-13: HX Coil (Load Circuit)
| No. | Symbol | Units | Description |
|---|---|---|---|
| 10 | mhx,in | kg/hr | Load flow rate through coil (cold mains water draw-off, LoadFlow). |
| 11 | Thx,in | °C | Cold mains water temperature entering coil (Tcold). |
| 12 | C | - | Nusselt number constant. Pass as constant via initial value: 0.5. Connect input to 0,0. |
| 13 | n | - | Nusselt number exponent. Pass as constant via initial value: 0.25. Connect input to 0,0. |
5. Outputs
Outputs 1-21: Standard
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1-2 | m1in, m1out | kg/hr | Flow 1 rates — zero (non-existent). |
| 3 | m2in | kg/hr | HP return flow rate. |
| 4 | m2out | kg/hr | Supply flow rate to HP. |
| 5 | T1out | °C | Not meaningful (flow 1 non-existent). |
| 6 | T2out | °C | Supply temperature to HP. |
| 7 | Qenv | kJ/hr | Tank heat loss to environment. |
| 12 | Qaux | kJ/hr | Combined auxiliary heater energy. |
| 16 | DE | kJ | Cumulative internal energy change. |
Outputs 22-33: Sanitation and Sensors
| No. | Symbol | Description |
|---|---|---|
| 22 | San_fail | Net sanitation fail flag. 1 = fail, 0 = pass. |
| 23 | San_ftime | Time of first fail [hr] |
| 24 | Daily_fail | Daily sanitation fail |
| 25 | Weekly_fail | Weekly sanitation fail |
| 26 | Sanvol_fail | Volume/time sanitation fail |
| 27 | Taux1 | Temp at HAUXT1 — HP control sensor [°C] |
| 28 | Taux2 | Temp at HAUXT2 — typically top of tank (load coil outlet) [°C] |
| 29 | Taux3 | Temp at HAUXT3 [°C] |
| 30 | T45 | Temp at 45% from top [°C] |
| 31 | T90 | Temp at 90% from top [°C] |
| 32 | San_vol | Volume at or above 55°C [m³] |
| 33 | San_time | Cumulative time San_vol > 0 [hr] |
Outputs 34-38: HX Coil (Load Circuit)
| No. | Symbol | Units | Description |
|---|---|---|---|
| 34 | Qhx | kJ/hr | Rate of heat transferred from tank water to load via coil. |
| 35 | Tout_hx | °C | Hot water supply temperature — domestic water exiting the top of the coil. Connect to tempering valve input Th. |
| 36 | Tout_node | °C | Tank node temperature at coil outlet. |
| 37 | lmtd | °C | Log-mean temperature difference across coil. |
| 38 | UAhx | kJ/hr.°C | Effective UA of the coil this timestep. |
Outputs 39+: Node Temperatures
| No. | Description |
|---|---|
| 39 | T_top: top node [°C] |
| 40 | T_bottom: bottom node [°C] |
| 39+i | T_nodei: intermediate node i (i = 2 to N-1) [°C] |
For 20 nodes: top = [unit,39], bottom = [unit,40], nodes 2-19 at [unit,41]-[unit,58].
6. Derivatives
DERIVATIVES 20
60 60 55 55 50 50 45 45 40 40
35 35 30 30 25 25 20 20 20 20
7. Example .dck Code
* Coil geometry
diHX = [diHX] ! coil tube inside diameter (m)
doHX = [doHX] ! coil tube outside diameter (m)
AHX = [AHX] ! total outside surface area (m2)
LHX = [LHX] ! coil length (m)
KHX = [KHX] * 3.6 ! coil thermal conductivity (kJ/hr.m.K)
* HX coil inlet at cold water height (bottom), outlet at load height (top)
Hcold = (Voltot-Volcold)/Voltot*height
Hload = (Voltot-Volload)/Voltot*height
* Sensors: HAUXT2 at top of tank to monitor hot supply temperature
HAUXT1 = (Voltot-Vol_HP)/Voltot*height
HAUXT2 = (Voltot-Volload)/Voltot*height
HAUXT3 = 0
* Tank - flow1=none, flow2=HP direct, HX=load
UNIT 61 TYPE 160
* Params 1-10: Mode VOL neg_h per H1in H1out Hret Hsupl Cp rho
* Params 11-20: Utank k Dk 95 2 Haux1 Hth1 Tset1 Tdb1 Qaux1
* Params 21-30: 0 0 0 0 0 0 0 crit 0 hxMode(1)
* Params 31-32: HMode UMode
* Params 33-44: 1 0 diHX doHX doHX AHX 0 LHX KHX KHX Hcold Hload
* Params 45-48: 0 HAUXT1 HAUXT2 HAUXT3
PARAMETERS 48
Mode60 VOL neg_h -1 -1 -1 Hret Hsupl 4.18 1000
Utank kfluid DKWALL 95 2 Haux1 Hth1 Tset1 Tdb1 aux1
0 0 0 0 0 0 0 crit 0 1
0 0
1 0 diHX doHX doHX AHX 0 LHX KHX KHX Hcold Hload
0 HAUXT1 HAUXT2 HAUXT3
* m1in=-1 m1out=-1 m2in=HPFlow m2out=-2 T1=0 T2=HP_outlet Tenv ghtr1 ghtr2
* mhx=LoadFlow Thx=Tcold C=0.5(const) n=0.25(const)
INPUTS 13
0,0 0,0 HPFlow 0,0 0,0 34,1 Tamb aux_onoff 0,0
-1 -1 0 -2 0 0 20 1 0
LoadFlow Tcold 0,0 0,0
0 20 0.5 0.25
DERIVATIVES 20
60 60 55 55 50 50 45 45 40 40
35 35 30 30 25 25 20 20 20 20
* Hot water supply = HX coil outlet temperature
EQN 1
Tout1 = [61,35] ! hot domestic water temperature from coil outlet [deg C]
* Tempering valve mixes Tout1 with cold mains to deliver at set point
UNIT 25 TYPE 11
PARAMETERS 2
4 7
INPUTS 4
Tcold ldflw Tout1 0,0
20 0 60 TLOAD
* Key outputs:
* [61,22] = San_fail
* [61,27] = Taux1: HP control sensor [deg C]
* [61,28] = Taux2: top of tank [deg C]
* [61,34] = Qhx: heat from tank to load via coil [kJ/hr]
* [61,35] = Tout_hx: hot water supply temperature [deg C]
* [61,39] = T_top: top node temperature [deg C]
Source: TRNAUS15 Manual 24.6 Appendix 12, Separate_HP_Map_Fixed_LoadCoil_Parallel template. Last updated: 2026-04-30
TYPE 182 - Compressor On/Off Controller with Min/Max Runtimes
Source: TRNAUS15 Manual 24.6 (Appendix 19) Note: TRNAUS extension. Not part of standard TRNSYS15.
1. Introduction
TYPE 182 is a differential on/off controller with minimum and maximum on/off time enforcement, designed to control heat pump compressor operation. It combines:
- Differential temperature control: turns on when the sensor temperature falls below a setpoint deadband, turns off when it recovers.
- Minimum on time: prevents the compressor from short-cycling (too brief a run).
- Maximum on time: prevents the compressor running longer than a specified limit.
- Minimum off time: ensures a minimum rest period between cycles.
- Maximum off time: forces the compressor on after an extended idle period.
- Runtime accounting: tracks cumulative starts, on-time, and off-time for reporting.
In EnergyAE HP decks, Type 182 is always used to control the heat pump compressor. The min/max times are typically set to 0 and stop (no restriction) for standard rating runs, and can be set to real values for compliance or durability modelling.
2. Parameters
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Min_ton | hr | Minimum compressor on time per cycle. Set to 0 for no minimum. |
| 2 | Max_ton | hr | Maximum compressor on time per cycle. Set to stop (simulation end) for no maximum. |
| 3 | Min_toff | hr | Minimum compressor off time between cycles. Set to 0 for no minimum. |
| 4 | Max_toff | hr | Maximum compressor off time. Set to stop for no maximum. |
3. Inputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | TH | °C | Upper (setpoint) temperature. Typically the thermostat set temperature (Tset_hp). |
| 2 | TL | °C | Lower (sensor) temperature. The actual tank temperature at the control sensor location (Tcontrol = [60,27] or [104,12]). |
| 3 | DTH | °C | Upper deadband. Compressor turns OFF when TL >= TH. Compressor turns ON when TL <= TH - DTH. Typical value: 12°C. |
| 4 | DTL | °C | Lower deadband. Typically set to 0. |
| 5 | gamma_i | - | Input control signal (binary). External on/off permission. 0 = compressor locked off (e.g., outside timer window or Tamb < Taux). 1 = compressor permitted to run. |
Control logic: The compressor output signal is 1 (on) when:
- The sensor temperature TL is at or below the switch-on threshold (TH - DTH), AND
- The input control signal gamma_i = 1, AND
- Minimum off time has elapsed, AND
- Maximum on time has not been exceeded.
The output signal is 0 (off) when:
- The sensor temperature TL meets or exceeds TH, OR
- gamma_i = 0, OR
- Minimum on time has not yet been met (the compressor stays on until Min_ton is satisfied), OR
- Maximum on time has been reached.
4. Outputs
| No. | Symbol | Units | Description |
|---|---|---|---|
| 1 | Signal_out | - | Compressor output signal. 1 = running, 0 = off. |
| 2 | On_time | hr | Duration of the current on-event (reset to 0 each time compressor turns off). |
| 3 | Off_time | hr | Duration of the current off-event (reset to 0 each time compressor turns on). |
| 4 | Min_on | - | 1 = minimum on time constraint is currently active (compressor held on). |
| 5 | Max_on | - | 1 = maximum on time constraint is currently active (compressor forced off). |
| 6 | Min_off | - | 1 = minimum off time constraint is currently active (compressor held off). |
| 7 | Max_off | - | 1 = maximum off time constraint is currently active. |
| 8 | Starts | - | Cumulative count of compressor start events (0-to-1 transitions) over the simulation. |
| 9 | Total_hrs | hr | Total cumulative compressor on-time over the simulation. |
| 10 | gamma_o | - | Output of the differential on/off control logic only (before min/max time enforcement). |
5. Example .dck Code
Standard Rating Deck (no min/max restrictions)
EQN 4
Min_ton = 0 ! no minimum on time for rating runs
Max_ton = stop ! no maximum on time
Min_toff = 0 ! no minimum off time
Max_toff = stop ! no maximum off time
EQN 2
* hp_onoff: 1 when ambient > Taux AND within timer window
hp_onoff = GT(Tamb, Taux) * min([26,1], 1)
aux_onoff = NOT(hp_onoff)
* Tcontrol: tank temperature at HP sensor location
Tcontrol = [60,27] ! from Type 160 output 27 (separate HP)
* OR
* Tcontrol = [104,12] ! from Type 104 output 12 (integral HP)
UNIT 92 TYPE 182 Compressor on/off controller
PARAMETERS 4
Min_ton Max_ton Min_toff Max_toff
INPUTS 5
Tset_hp Tcontrol Tdb_hp 0,0 hp_onoff
60 60 12 0 1
EQN 9
Comp_on = [92,1] ! compressor running (binary)
On_time = [92,2] ! current cycle on-time (hr)
Off_time = [92,3] ! current off-time (hr)
Min_on = [92,4] ! min on constraint active
Max_on = [92,5] ! max on constraint active
Min_off = [92,6] ! min off constraint active
Max_off = [92,7] ! max off constraint active
starts = [92,8] ! total compressor starts
Comp_hrs = [92,9] ! total compressor hours
With Practical Min/Max Times
EQN 4
Min_ton = 10/60 ! 10 min minimum run time
Max_ton = 6 ! 6 hr maximum run time
Min_toff = 15/60 ! 15 min minimum rest between cycles
Max_toff = 8760 ! no maximum off time limit
�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������