====== Heating curve ====== {{:en:mervis-ide:35-help:t1.png}} ===== Block name ===== T1_EQUITHERMAL_CURVE ===== ST call ===== PROGRAM T1_TEST VAR REAL1,REAL2,REAL3,REAL4,REAL5,REAL6,REAL7,REAL8,REAL9,REAL10,REAL11,REAL12,REAL13,REAL14,REAL15,REAL16,REAL17,REAL18,REAL19: REAL; BOOL1:BOOL; FB: LIB.HVAC.V1_0.T1_EQUITHERMALCURVE; END_VAR FB(IN:= REAL1, BR:= BOOL1, FDY:= REAL2, FX1:= REAL3, FX2:= REAL4, FX3:= REAL4, FX4:= REAL5, FY1:= REAL6, FY2:= REAL7, FY3:= REAL8, FY4:= REAL9, TDY:= REAL10, TX1:= REAL11, TX2:= REAL12, TX3:= REAL13, TX4:= REAL14, TY1:= REAL15, TY2:= REAL16, TY3:= REAL17, TY4:= REAL18, OUT=> REAL19); END_PROGRAM ===== Library ===== LIB\HVAC ===== Version ===== V1.0 ===== Description ===== A heating curve calculates heating water setpoint based on the outside temperature: the lower the outside temperature, the higher the heating water setpoint. The block contains two 4-point curves: day curve, and night curve.\\ ===== Inputs ===== |Input|Type|Description |Default value| |BR |BOOL|Llinear interpolation switch, see below |False | |IN |REAL|Input: outside temperature (°C) |0 | |FDY |REAL|Night depression temperature correction (K)|0 | |FX1 |REAL|X - coordinate of 1st point - night (°C) |-15 | |FX2 |REAL|X - coordinate of 2nd point - night (°C) |-5 | |FX3 |REAL|X - coordinate of 3rd point - night (°C) |0 | |FX4 |REAL|X - coordinate of 4th point - night (°C) |15 | |FY1 |REAL|Y - coordinate of 1st point - night (°C) |80 | |FY2 |REAL|Y - coordinate of 2nd point - night (°C) |60 | |FY3 |REAL|Y - coordinate of 3rd point - night (°C) |40 | |FY4 |REAL|Y - coordinate of 4th point - night (°C) |30 | |TDY |REAL|Day depression temperature correction (K) |0 | |TX1 |REAL|X - coordinate of 1st point - day (°C) |-15 | |TX2 |REAL|X - coordinate of 2nd point - day (°C) |-5 | |TX3 |REAL|X - coordinate of 3rd point - day (°C) |0 | |TX4 |REAL|X - coordinate of 4th point - day (°C) |15 | |TY1 |REAL|Y - coordinate of 1st point - day (°C) |80 | |TY2 |REAL|Y - coordinate of 2nd point - day (°C) |60 | |TY3 |REAL|Y - coordinate of 3rd point - day (°C) |40 | |TY4 |REAL|Y - coordinate of 4th point - day (°C) |30 | ===== Outputs ===== |Output|Type|Description | |OUT |REAL|Heating water setpoint (°C)| ===== Function ===== The input temperature is calculated by linear interpolation in the range given by neighbouring outside parameter values. The block contains two heating curves: for day and for night, which are switched by the //BR// variable. If BR is //TRUE//, the TX - TY curve is active, if BR is //FALSE//, the FX - FY curve is active. The input //BR// is usually connected to a time scheduler, if a separate night curve is used. The //*dy// variables move the whole curve along the y axis, i.e. the values are added to the resulting heating water setpoint. They can be connected to the room controller output to correct the setpoint according to the reference room temperature, which would compensate the thermal gains caused by e.g. internal influences or solar irradiation of the facade.\\ If the outside temperature falls below *X1, the heating water setpoint is limited by *Y1. Similarly, if the outside temperature rises above *X4, the setpoint does not fall below *Y4. {{:en:mervis-ide:35-help:t1_1.png}} ===== Application example ===== The block is used in heating circuits with outside temperature compensation. It can be used also to calculate the maximum temperature of boilers or heat exchangers, or as a general "linearisation" function with a 4-point curve. At the image below, find a simple weather-compensated controller (block B35) which acquires its setpoint from the heating curve output  (block T1). //tout// is the outside temperature. The T17 time schedule changes between day and night heating curves.  In some situations, it is advisable to filter the outside temperature, or prevent malfunction of the curve in case of broken outside temperature sensor.\\ {{:en:mervis-ide:35-help:t17_example.png}}