! This component has been assigned Type Number 207. If that number conflicts with ! another user Type number, you will need to change it and recompile the appropriate ! dll. SUBROUTINE TYPE207(TIME,XIN,OUT,T,DTDT,PAR,INFO,ICNTRL,*) MSR00010 !DEC$ATTRIBUTES DLLEXPORT :: TYPE207 C MSR00020 C MSR00030 C TYPE INCLUDING PIPES, A THERMOSTATIC VALVE AND A RADIATOR MSR00040 C MSR00050 C MSR00060 C MSR00070 C HYDRONICS : PIPE MSR00080 C - STATIONARY CASE MSR00100 C MSR00110 C MSR00130 C THERMOSTATIC VALVE MSR00140 C MSR00150 C MSR00160 C THERMOSTATIC VALVE MODULE TAKING INTO ACCOUNT MSR00170 C THE THERMAL CAPACITANCE OF THE VALVE AND THE MSR00180 C HYSTERESIS MSR00190 C MS JANUARY 1985 MSR00200 C MSR00210 C MSR00220 C DYNAMIC MODULE OF RADIATOR USING : MSR00230 C P =COEFF(DTLOG)**N MSR00240 C MS JANUARY 1985 MSR00250 C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C SAMPLE INPUT AND OUTPUT VALUES C C PARAMETERS SAMPLE VALUES C PAR(1) Length of first pipe 0.27 C PAR(2) Length of second pipe 0.37 C PAR(3) Pipe diameter 0.0123 C PAR(4) hv : >=0 then vertical else horizontal pipes -1.0 C PAR(5) epsilon 0.9 C PAR(6) cp 4187.0 C PAR(7) Valve set point temperature 23.0 C PAR(8) Water in valve C PAR(9) Nominal temperature difference between the valve 3.0 C and the ambient temperature C PAR(10) Maximum temperature difference 3.0 C (same as nominal in this exercise) C PAR(11) Valve hysteresis 0.5 C PAR(12) Thermal resistance between the valve and the 15.0 C ambient temperature C PAR(13) Idem between the valve and the water 400.0 C PAR(14) Thermal capacitance of the valve 78.75 C PAR(15) Valve authority 1.0 C PAR(16) Radiator mode 1.0 C PAR(17) Nominal power of the radiator if mode = 1 1280.0 C else radiator coefficient C PAR(18) Radiator exponent (usually 1.3) 1.3 C PAR(19) Radiator thermal capacitance 67870.0 C PAR(20) Mass flow rate calculation tolerance 0.001 C C DERIVATIVES C 1 Radiator temperature 40.0 C INPUTS C XIN(1) Water supply temperature 68.0 C XIN(2) Ambient temperature 20.0 C XIN(3) On/Off Switch 0.0 C C OUTPUTS C OUT(1) Water exhaust temperature 20.0 C OUT(2) Water mass flow rate 0.0 C OUT(3) Power emitted by the radiator 310.6 C OUT(4) Power injected in the radiator 0.0 C OUT(5) Total emission (including pipes) 319.0 C OUT(6) Pipes emission 8.371 C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C DOUBLE PRECISION XIN,OUT MSR00260 DIMENSION XIN(3),PAR(20),OUT(19),INFO(15),DTDT(1),T(1) MSR00270 COMMON/SIM/TSTART,TSTOP,DELT MSR00280 C FIRST CALL : CONTROL OF THE NUMBER OF INPUTS AND PARAMETERSMSR00290 ! Set the version information for TRNSYS IF (INFO(7).EQ.-2) THEN INFO(12) = 15 RETURN 1 ENDIF IF(INFO(8).EQ.1) THEN MSR00300 NPAR = INFO(4) MSR00310 CALL TYPECK(1,INFO,3,NPAR,1) MSR00320 INFO(6)=12 MSR00330 OUT(13)=T(1) MSR00340 OUT(2)=PAR(8) MSR00350 ENDIF MSR00380 IF(INFO(7).EQ.0) AAMFR=OUT(2) MSR00390 C************************************** MSR00400 C* PARAMETERS * MSR00410 C************************************** MSR00420 C - LENGTH OF PIPE 1 MSR00430 XL1=PAR(1) MSR00440 C - LENGTH OF PIPE 2 MSR00450 XL2=PAR(2) MSR00460 C - PIPE DIAMETER MSR00470 DIAM =PAR(3) C - VERTICAL OR HORIZONTAL PIPE ? HV =PAR(4) C -EMISSION COEFFICIENT EPSI=PAR(5) C - SPECIFIC HEAT OF FLUID MSR00490 CW=PAR(6) MSR00500 C - SET TEMPERATURE MSR00510 TSET = PAR(7) MSR00520 C - NOMINAL MASSFLOW RATE MSR00530 XMFRN = PAR(8) MSR00540 C - NOMINAL TEMPERATURE DIFFERENCE BETWEEN THE VALVE MSR00550 C AND THE AND THE SET TEMPERATURE MSR00560 DTEMPN = PAR(9) MSR00570 C - MAXIMUM TEMPERATURE DIFFERENCE MSR00580 DTMAX = PAR(10) MSR00590 C - HYSTERESIS MSR00600 HYST = PAR(11) MSR00610 C - THERMAL RESISTANCE BETWEEN THE AMBIENT TEMPERATURE MSR00620 C AND THE VALVE MSR00630 RESAMB = PAR(12) MSR00640 C - THERMAL RESISTANCE BETWEEN THE WATER TEMPERATURE MSR00650 C AND THE VALVE MSR00660 RESWTR = PAR(13) MSR00670 C - THERMAL CAPACITANCE OF THE VALVE MSR00680 CVLV = PAR(14) MSR00690 C - VALVE AUTHORITY MSR00700 AVLV = PAR(15) MSR00710 C - MODE MSR00720 XMODE=PAR(16) MSR00730 C - NOMINAL POWER OF THE RADIATOR (DT = 60) OR COEFFICIEN MSR00740 PAR2 =PAR(17) MSR00750 C - EXPONENT MSR00760 XN =PAR(18) MSR00770 C - RADIATOR THERMAL CAPACITANCE MSR00780 CAPA=PAR(19) MSR00790 C - TOLERANCE FOR THE CALCULATION OF THE MASS FLOW RATE MSR00800 NPAR = INFO(4) MSR00810 IF(NPAR.EQ.20) THEN MSR00820 EPS = PAR(20) MSR00830 ELSE MSR00840 EPS = 0.001 MSR00850 ENDIF MSR00860 C************************************** MSR00870 C* INPUTS * MSR00880 C************************************** MSR00890 C - SUPPLY TEMPERATURE MSR00900 TSU=XIN(1) MSR00910 C - INSIDE TEMPERATURE : TI MSR00940 TI = XIN(2) MSR00950 TAMB = XIN(2) MSR00960 C - VALVE CONTROL (0 OR 1) MSR00970 GAMMA =XIN(3) MSR00980 C FIRST CALL OF THE TIMESTEP : MSR00990 C VALUES OF DTEMP AND TVLV AT THE LAST TIMESTEP MSR01000 IF (INFO(7).EQ.0) THEN MSR01010 OUT(14)=OUT(8) MSR01020 OUT(15)=OUT(7) MSR01030 ENDIF MSR01040 IJK=0 MSR01050 33 AXMFR = OUT(2) MSR01060 IJK=IJK+1 MSR01070 C************************************** MSR01080 C* THE PIPE ELEMENT * MSR01090 C************************************** MSR01100 XMFRW=OUT(2) MSR01110 C MSR01120 C MASSFLOW RATE >= 0 MSR01130 IF(XMFRW.LT.0.) CALL TYPECK(3,INFO,4,4,0) MSR01140 C CALCULATION OF THE OUTPUTS C CALL SUBROUTINE PIPE CALL PIPE(TSU,XMFRW,TAMB,XL1,DIAM,HV,EPSI,CW,TEX,QP1) C C************************************** MSR01220 C* THE VALVE * MSR01230 C************************************** MSR01240 C MSR01250 C IF THE EXHAUST TEMPERATURE IS LOWER THAN THE ROOM TEMPERATURE MSR01260 C MSR01270 IF(TEX.LE.TI) TEX = TI MSR01280 C MSR01290 C - WATER TEMPERATURE MSR01300 TWTR = TEX MSR01310 C MSR01320 IF (INFO(7).EQ.-1) THEN MSR01330 TVLV = (RESAMB*TWTR+RESWTR*TAMB)/(RESAMB+RESWTR) MSR01340 ATVLV = TVLV MSR01350 ADTEMP = TSET - TVLV MSR01360 OUT(14) = ATVLV MSR01370 OUT(15) = ADTEMP MSR01380 ENDIF MSR01390 C OUTPUTS MSR01400 C - MASSFLOW RATE OF WATER MSR01410 C - TEMPERATURE DIFFERENCE BETWEEN THE VALVE AND THE MSR01420 C SET POINT MSR01430 C - TEMPERATURE OF THE VALVE MSR01440 C MSR01450 ATVLV = OUT(14) MSR01460 ADTEMP = OUT(15) MSR01470 C 1. CALCULATION OF THE TEMPERATURE OF THE VALVE MSR01480 C RESWTR TVLV RESAMB MSR01490 C O---VVV---O---VVV---O MSR01500 C | | | MSR01510 C TWTR ___ CVLV ___ ___TAMB MSR01520 C - ___ - MSR01530 C | | | MSR01540 C / / / MSR01550 C A. IF ONE OF THE CAPACITANCE OR RESISTANCES IS NIL MSR01560 IF(CVLV.EQ.0) THEN MSR01570 TVLV = (RESAMB*TWTR+RESWTR*TAMB)/(RESAMB+RESWTR) MSR01580 ELSE IF(RESWTR.EQ.0) THEN MSR01590 A =1/CVLV/RESAMB MSR01600 B = TAMB/CVLV/RESAMB MSR01610 D = ATVLV - B/A MSR01620 TVLV = D*EXP(-A*DELT)+B/A MSR01630 ELSE IF(RESAMB.EQ.0) THEN MSR01640 A =1/CVLV/RESWTR MSR01650 B = TWTR/CVLV/RESWTR MSR01660 D = ATVLV - B/A MSR01670 TVLV = D*EXP(-A*DELT)+B/A MSR01680 C B. CAPACITANCE AND RESISTANCES ARE NOT NIL MSR01690 ELSE MSR01700 A = (RESWTR+RESAMB)/CVLV/RESAMB/RESWTR MSR01710 B = (RESAMB*TWTR+RESWTR*TAMB)/CVLV/RESAMB/RESWTR MSR01720 D = ATVLV - B/A MSR01730 TVLV = D*EXP(-A*DELT)+B/A MSR01740 ENDIF MSR01750 C 2. CALCULATION OF THE DIFFERENCE BETWEEN THE VALVE AND THE SET MSR01760 C POINT, TAKING INTO ACCOUNT THE HYSTERESIS MSR01770 IF (HYST.EQ.0) THEN MSR01780 DTEMP = TSET - TVLV MSR01790 GOTO 10 MSR01800 ENDIF MSR01810 DTEMP1 = TSET - TVLV MSR01820 DTEMP2 = DTEMP1 - HYST MSR01830 IF(TVLV.GT.ATVLV) THEN MSR01840 IF(DTEMP1.GE.ADTEMP) THEN MSR01850 DTEMP = ADTEMP MSR01860 ELSE MSR01870 DTEMP = DTEMP1 MSR01880 ENDIF MSR01890 ELSE IF(TVLV.LT.ATVLV) THEN MSR01900 IF(DTEMP2.LE.ADTEMP) THEN MSR01910 DTEMP = ADTEMP MSR01920 ELSE MSR01930 DTEMP = DTEMP2 MSR01940 ENDIF MSR01950 ELSE MSR01960 DTEMP = ADTEMP MSR01970 ENDIF MSR01980 10 IF(DTEMP.GT.DTMAX) DTEMP = DTMAX MSR01990 IF(DTEMP.LT.0) DTEMP = 0 MSR02000 C 3. CALCULATION OF THE MASSFLOW RATE MSR02010 XMFRW = XMFRN*DTEMP/DTEMPN*(AVLV+(DTEMP/DTEMPN)**2*(1-AVLV)) MSR02020 +**(-0.5) MSR02030 IF(IJK.LE.2)THEN MSR02040 OUT(15+IJK)=AXMFR MSR02050 OUT(17+IJK)=XMFRW MSR02060 ELSE MSR02070 OUT(16)=OUT(17) MSR02080 OUT(18)=OUT(19) MSR02090 OUT(17)=AXMFR MSR02100 OUT(19)=XMFRW-AXMFR MSR02110 ENDIF MSR02120 IF(IJK.GE.2) THEN MSR02130 IF ((OUT(19).NE.OUT(18)).AND.(OUT(17).NE.OUT(16))) THEN MSR02140 XMFRW=OUT(17)-OUT(19)/((OUT(19)-OUT(18))/(OUT(17)-OUT(16))) MSR02150 ENDIF MSR02160 ENDIF MSR02170 IF (XMFRW.NE.0) THEN MSR02180 DMFR=(XMFRW-AXMFR)/XMFRW MSR02190 ELSE MSR02200 IF (AXMFR.EQ.0) THEN MSR02210 DMFR=0 MSR02220 ELSE MSR02230 DMFR=AXMFR MSR02240 ENDIF MSR02250 ENDIF MSR02260 DMFR=ABS(DMFR) MSR02270 OUT(2)=XMFRW MSR02280 IF (DMFR.GE.EPS ) GOTO 33 MSR02290 C************************************** MSR02300 C* THE RADIATOR * MSR02310 C************************************** MSR02320 C SUPPLY WATER TEMPERATURE MSR02330 TENTW =TEX MSR02340 C MSR02350 C MSR02360 IF (XMFRW.LT.0.) CALL TYPECK(3,INFO,4,5,1) MSR02370 C OUTPUTS: - LEAVING TEMPERATURE OF WATER :TLEAW MSR02380 C - MASS FLOW RATE OF WATER : XMFRW MSR02390 C - POWER EMITTED : PRADE MSR02400 C - POWER INJECTED: PRADI MSR02410 C - ENERGY CHANGE : DE MSR02420 C - VALVE : GAMMA MSR02430 C - EFFECTIVNESS : EFT MSR02440 C - NUMBER OF TRANSFER UNIT : XNTU MSR02450 C MSR02460 C 1. THE VALVE IS CLOSED (GAMMA=0) MSR02470 IF (GAMMA.LT.1E-1) XMFRW = 0 MSR02480 C MSR02490 C 2. THE VALVE IS OPEN (GAMMA=1) MSR02500 C MSR02510 C MODE MSR02520 C MSR02530 IF (ABS(XMODE-1).LT.1E-1) THEN MSR02540 COEFF=PAR2/((20/ALOG(1.4))**XN) MSR02550 ELSE MSR02560 COEFF=PAR2 MSR02570 ENDIF MSR02580 C MSR02590 C MSR02600 C DERIVATIVE : PRADI - PRADE = ENERGY STORED MSR02610 C MSR02620 IF (XMFRW.LT.1E-5) THEN MSR02630 DTDT(1) = XMFRW*CW*(TENTW-T(1))/CAPA -COEFF*ABS(T(1)-TAMB) MSR02640 +**(XN-1)*(T(1)-TAMB)/CAPA MSR02650 ELSE IF (TENTW.EQ.TAMB) THEN MSR02660 DTDT(1) = XMFRW*CW*(TENTW-T(1))/CAPA - MSR02670 +COEFF*(ABS(T(1)-TAMB))**(XN-1)*(T(1)-TAMB)/CAPA MSR02680 ELSE MSR02690 IF((ABS(T(1)-TAMB).LT.1E-5).OR.(ABS(TENTW-T(1)).LT.1E-5))THEN MSR02700 DTDT(1) = XMFRW*CW*(TENTW-T(1))/CAPA - MSR02710 +COEFF*(ABS(TENTW+T(1)-2*TAMB))**(XN-1)*(TENTW+T(1)-2*TAMB) MSR02720 +/CAPA MSR02730 ELSE MSR02740 DTDT(1) = XMFRW*CW*(TENTW-T(1))/CAPA - MSR02750 +COEFF*(ABS((TENTW-T(1))/ALOG(ABS((TENTW-TAMB)/(T(1)-TAMB))))) MSR02760 +**(XN-1)*((TENTW-T(1))/ALOG(ABS((TENTW-TAMB)/(T(1)-TAMB))))/CAPA MSR02770 ENDIF MSR02780 ENDIF C MSR02800 C RESULTS MSR02810 C MSR02820 TLEAW = T(1) MSR02830 6 PRADI =XMFRW*CW*(TENTW-TLEAW) MSR02840 IF (XMFRW.LT.1) THEN MSR02850 DELTAT = (TLEAW-TAMB) MSR02860 ELSE IF (TENTW.EQ.TAMB) THEN MSR02870 DELTAT = (TLEAW-TAMB) MSR02880 ELSE MSR02890 IF((ABS(TLEAW-TAMB).LT.1E-3).OR.(ABS(TENTW-TLEAW).LT.1E-3))THEN MSR02900 DELTAT=(TENTW+TLEAW-2*TAMB) MSR02910 ELSE MSR02920 DELTAT=((TENTW-TLEAW)/ALOG(ABS((TENTW-TAMB)/(TLEAW-TAMB)))) MSR02930 ENDIF MSR02940 ENDIF MSR02950 PRADE = COEFF*ABS(DELTAT)**(XN-1)*DELTAT MSR02960 IF((XMFRW.EQ.0.).OR.(TENTW.EQ.TAMB))THEN MSR02970 EFT=0. MSR02980 XNTU=0. MSR02990 ELSE MSR03000 EFT =(TENTW-TLEAW)/(TENTW-TAMB) MSR03010 XNTU= COEFF*ABS(DELTAT)**(XN-1)/(XMFRW*CW) MSR03020 ENDIF MSR03030 DE = CAPA*(T(1)-OUT(13)) C C PIPE 2 C CALL PIPE(TLEAW,XMFRW,TAMB,XL2,DIAM,HV,EPSI,CW,TEX2,QP2) C C************************************** MSR03050 C* OUTPUTS * MSR03060 C************************************** MSR03070 C - LEAVING WATER TEMPERATURE MSR03080 OUT(1) = TEX2 MSR03090 C - MASS FLOW RATE OF WATER MSR03100 OUT(2) = XMFRW MSR03110 C - POWER EMITTED BY THE RADIATOR MSR03120 OUT(3) = PRADE MSR03130 C - POWER INJECTED IN THE RADIATOR MSR03140 OUT(4) = PRADI MSR03150 C MSR03160 C - TOTAL EMISSION MSR03170 C MSR03180 OUT(5)=PRADE+QP1+QP2 MSR03190 C PIPE EMISSION TO THE ROOM MSR03200 OUT(6)=QP1+QP2 MSR03210 C - THERMOSTATIC VALVE MSR03220 OUT(7) = DTEMP MSR03230 OUT(8) = TVLV MSR03240 C - DIFFERENCE OF ENERGY MSR03250 OUT(9) = DE MSR03260 C - STATE OF THE VALVE MSR03270 OUT(10) = GAMMA MSR03280 C - EFFECTIVENES MSR03290 OUT(11) = EFT MSR03300 C - NUMBER OF TRANSFER UNITS MSR03310 OUT(12) = XNTU MSR03320 RETURN 1 MSR03330 END MSR03340 C C SUBROUTINE PIPE C C CALCULATE THE HEAT TRANSFER COFFEFICIENT (SIMPLIFIED C FORMULA), THE HEAT TRANSFER FRO THE FLUID AND THE EXHAUST C TEMPERATURE OF THE FLUID. C C SEE DOCUMENT AN10-880603-02 OF THE ANNEX10 DATA BANK. C SUBROUTINE PIPE(TSU,XMW,TAMB,XL,D,HV,EPS,CPW,TEX,Q) C C C "PARAMETERS": XL : LENGTH OF THE PIPE C D : DIAMETER OF THE PIPE C HV : HV >= 0 THEN VERTICAL PIPE ELSE HORIZONTAL C EPS: EMISION COEFFICIENT FOR OUTER SURFACE C CPW: MASSIC HEAT OF FLUID C C "INPUTS" : TSU : SUPPLY FLUID TEMPERATURE C XMW : FLUID MASSFLOW RATE C TAMB: TEMPERATURE OF SURROUNDING WALLS AND AIR C C "OUTPUTS" : TEX : EXHAUST TEMPERATURE OF THE FLUID C Q : HEAT TRANSFER C C OTHER VARIABLES C C ARE THE VALUES ACCEPTABLE ? C C IS THE MASSFLOW RATE POSITVE ? COMMON/LUNITS/LUR,LUK,LUW,IFORM IF(XMW.LT.0.0) THEN WRITE(LUW,*) 'NEGATIVE MASSFLOW RATE IN SUBROUTINE PIPE' CALL MYSTOP(1001) RETURN ENDIF C ARE THE DIMENSIONS POSITIVE ? IF((D.LT.0.0).OR.(XL.LT.0.0)) THEN WRITE(LUW,*) 'NEGATIVE DIMENSION FOR PIPE IN SUBROUTINE PIPE' CALL MYSTOP(1001) RETURN ENDIF C ARE THE TEMPERATURES HIGHER THAN 0 ? IF((TAMB.LT.0.0).OR.(TSU.LT.0.0)) THEN WRITE(LUW,*) 'TEMPERATURE LOWER THAN 0' C STOP ENDIF C VERY LOW MASSFLOW RATE IF(XMW.LT.1.E-5) THEN TEX=TAMB GO TO 111 ENDIF C C AREA CALCULATION C A=3.1416*D*XL C C HEAT TRANSFER COEFFICIENT DUE TO RADIATION C HR=5.7E-8*EPS*((TSU+273)**2+(TAMB+273)**2)*(TSU+273+TAMB+273) C C HEAT TRANSFER COEFFICIENT DUE TO CONVECTION C DELTAT=TSU-TAMB IF(DELTAT.LT.0.0) DELTAT=-DELTAT IF(HV.GE.0.0) THEN C VERTICAL PIPE HC=1.3*DELTAT**(1./3.) ELSE C HORIZONTAL PIPE HC=1.3*(DELTAT/D)**0.25 ENDIF C C TOTAL HEAT TRANSFER COEFFICIENT C U=HR+HC C C NO AREA OR HEAT TRANSFER COEFFICIENT = 0 C IF((U.EQ.0.0).OR.(A.EQ.0.0)) THEN TEX=TSU GO TO 111 ENDIF C C EXHAUST TEMPERATURE C PROV1=(U*A/XMW/CPW) IF(PROV1.GT.20) THEN TEX=TAMB ELSE PROV=EXP(PROV1) TEX=(TSU-TAMB*(1-PROV))/PROV ENDIF C C HEAT TRANSFER C 111 Q=XMW*CPW*(TSU-TEX) C RETURN END