SUBROUTINE TYPE87 (TIME,XIN,OUT,T,DTDT,PAR,INFO,ICNTRL,*) C************************************************************************ C* Copyright ASHRAE A Toolkit for Primary HVAC System Energy C* Calculation C*********************************************************************** C* SUBROUTINE: TYPE87 (PCHILPL) C* C* LANGUAGE: FORTRAN 77 C* C* PURPOSE: Deals with the part-load operation of a C* reciprocating chiller.The purpose is to C* determine how the chiller should be used C* in order to reach a given set point C* temperature at the evaporator exhaust. C* The pressure drop at the exhaust of the C* compressor cylinders is taken into account. C*********************************************************************** C* INPUT VARIABLES C* Ifluid Selection of the refrigerant (-) C* If Ifluid C* =1: Refrigerant 12 C* =2: Refrigerant 134a C* =3: Refrigerant 114 C* =4: Refrigerant 22 C* =5: Refrigerant 502 C* =6: Refrigerant 717 (Ammonia) C* xin(1) (-) C* Mfrwev Water mass flow rate in the evaporator (kg/s) C* xin(2) (kg/hr) C* Mfrwcd Water mass flow rate in the condenser (kg/s) C* xin(3) (kg/hr) C* Twsuev Evaporator supply water temperature (K) C* xin(4) (øC) C* Twsucd Condenser supply water temperature (K) C* xin(5) (øC) C* Tset Set point temperature at the evaporator exhaust (K) C* xin(6) (øC) C* PevG Guess of the cooling capacity (W) C* xin(7) (kJ/hr) C* PcdG Guess of the heat rejected in the condenser (W) C* xin(8) (kJ/hr) C* NcMax Maximum number of loaded cylinders (-) C* xin(9) (-) C* NcMin Minimum number of loaded cylinders (-) C* xin(10) (-) C* dNc Decrement for part-load operation (-) C* (NcMax=NcMin+I*dNc where I is an integer) C* xin(11) (-) C* NcFL Number of cylinders used in full load regime (-) C* xin(12) (-) C* C* OUTPUT VARIABLES C* Pos The value of Pos indicates the chiller operating (-) C* mode in order to reach the set point temperature C* Pos=1: Maximum C* =2: Cycling mode C* =3: ON/OFF C* =4: OFF C* out(1) (-) C* Teta The time period during which the chiller is (-) C* working with the upper number of loaded cylinders C* out(2) (-) C* NcUp Upper number of loaded cylinders (-) C* out(3) (-) C* NcLow Lower number of loaded cylinders (-) C* out(4) (-) C* TwexevMin Evaporator exhaust water temperature when the (K) C* chiller is working continuously with the upper C* number of loaded cylinders C* out(5) (øC) C* TwexcdMax Condenser exhaust water temperature when the (K) C* chiller is working continuously with the upper C* number of loaded cylinders C* out(6) (øC) C* TwexevMean Mean evaporator exhaust water temperature (K) C* out(7) (øC) C* TwexcdMean Mean condenser exhaust water temperature (K) C* out(8) (øC) C* PevMean Mean value of the cooling capacity (W) C* out(9) (kJ/hr) C* Wmean Mean value of the power consumed by the (W) C* compressor C* out(10) (kJ/hr) C* PcdMean Mean value of the heat rejected in the condenser (W) C* out(11) (kJ/hr) C* COPmean Mean value of the coefficient of performance (-) C* out(12) (-) C* C* PARAMETERS C* AUev Evaporator heat transfer coefficient (W/K) C* par(1) (kJ/hr/øC) C* AUcd Condenser heat transfer coefficient (W/K) C* par(2) (kJ/hr/øC) C* Losses Constant part of the electromechanical losses (W) C* par(3) (kJ/hr) C* Alpha Loss factor allowing to define another (-) C* electromechanical loss which is assumed to be C* proportional to the internal power C* par(4) (-) C* Aex Equivalent nozzle throat area of a cylinder (m**2) C* par(5) (m**2) C* Cf Clearance factor of the compressor (-) C* par(6) (-) C* VsFL Geometric displacement of the compressor (m**3/s) C* in full load regime C* par(7) (m**3/hr) C* Wpumping Internal power of the compressor when all the (W) C* cylinders are unloaded C* par(8) (kJ/hr) C*********************************************************************** C MAJOR RESTRICTIONS: The surrounding heat exchanges are C neglected. C The compression is assumed to be isentropic. C Perfect gas properties are used. C The chiller is assumed to work with only C one compressor. C C DEVELOPER: Jean Lebrun C Jean-Pascal Bourdouxhe C Marc Grodent C University of LiŠge, Belgium C C DATE: March 1, 1995 C C SUBROUTINE CALLED: TYPE88 (PSIMPL) C LINKCK C*********************************************************************** C INTERNAL VARIABLES: C Nc Number of loaded cylinders considered (-) C Twexevp,Twexcdp,Pevp,Pcdp,Wp are storage variables C*********************************************************************** INTEGER*4 INFO,INFO88 DOUBLE PRECISION XIN,OUT,XIN88,OUT88 REAL Mfrwev,Mfrwcd,NcMax,NcMin,NcUp,NcLow,Nc,MfrRef, & Ifluid,NcFL,Losses DIMENSION PAR(8),XIN(12),OUT(12),INFO(15), & PAR88(8),XIN88(10),OUT88(7),INFO88(15) COMMON /LUNITS/ LUR,LUW,IFORM,LUK COMMON /SIM/ TIME0,TFINAL,DELT,IWARN COMMON /STORE/ NSTORE,IAV,S(5000) COMMON /CONFIG/ TRNEDT,PERCOM,HEADER,PRTLAB,LNKCHK,PRUNIT,IOCHEK, & PRWARN INFO(6)=12 INFO88(6)=7 C*** INPUTS 12 (converted in SI units) C************* Ifluid=SNGL(xin(1)) Mfrwev=SNGL(xin(2)/3600.) Mfrwcd=SNGL(xin(3)/3600.) Twsuev=SNGL(xin(4)+273.15) Twsucd=SNGL(xin(5)+273.15) Tset=SNGL(xin(6)+273.15) PevG=SNGL(xin(7)/3.6) PcdG=SNGL(xin(8)/3.6) NcMax=SNGL(xin(9)) NcMin=SNGL(xin(10)) dNc=SNGL(xin(11)) NcFL=SNGL(xin(12)) C*** PARAMETERS 8 (converted in SI units) C**************** AUev=par(1)/3.6 AUcd=par(2)/3.6 Losses=par(3)/3.6 Alpha=par(4) Aex=par(5) Cf=par(6) VsFL=par(7)/3600. Wpumping=par(8)/3.6 C1*** Compare the given set point temperature with the evaporator C1*** supply water temperature IF (Tset.GE.Twsuev) THEN C1*** Regime OFF all the time Pos=4 Teta=0 NcUp=0 NcLow=0 TwexevMin=Twsuev TwexcdMax=Twsucd TwexevMean=Twsuev TwexcdMean=Twsucd PevMean=0 Wmean=0 PcdMean=0 COPmean=0 ELSE C1*** Compare the set point temperature with the evaporator exhaust C1*** water temperature when the chiller is working with the C1*** maximum number of cylinders par88(1)=AUev*3.6 par88(2)=AUcd*3.6 par88(3)=Losses*3.6 par88(4)=Alpha par88(5)=Aex par88(6)=Cf par88(7)=VsFL*3600 par88(8)=Wpumping*3.6 xin88(1)=DBLE(Ifluid) xin88(2)=DBLE(Mfrwev*3600.) xin88(3)=DBLE(Mfrwcd*3600.) xin88(4)=1.0 xin88(5)=DBLE(Twsuev-273.15) xin88(6)=DBLE(Twsucd-273.15) xin88(7)=DBLE(PevG*3.6) xin88(8)=DBLE(PcdG*3.6) xin88(9)=DBLE(NcMax) xin88(10)=DBLE(NcFL) CALL TYPE88 (TIME,XIN88,OUT88,T,DTDT,PAR88,INFO88,ICNTRL,*2) CALL LINKCK('TYPE87','TYPE88 ',1,99) 2 CONTINUE MfrRef=SNGL(out88(1)/3600) Pev=SNGL(out88(2)/3.6) W=SNGL(out88(3)/3.6) Pcd=SNGL(out88(4)/3.6) COP=SNGL(out88(5)) Twexev=SNGL(out88(6)+273.15) Twexcd=SNGL(out88(7)+273.15) IF (Twexev.GE.Tset) THEN C1*** Regime ON all the time with the maximum number of cylinders Pos=1 Teta=1 NcUp=NcMax NcLow=NcMax TwexevMin=Twexev TwexcdMax=Twexcd TwexevMean=Twexev TwexcdMean=Twexcd PevMean=Pev Wmean=W PcdMean=Pcd COPmean=COP ELSE C1*** Part-load regime Nc=NcMax 10 Twexevp=Twexev Twexcdp=Twexcd Pevp=Pev Wp=W Pcdp=Pcd Nc=Nc-dNc par88(1)=AUev*3.6 par88(2)=AUcd*3.6 par88(3)=Losses*3.6 par88(4)=Alpha par88(5)=Aex par88(6)=Cf par88(7)=VsFL*3600 par88(8)=Wpumping*3.6 xin88(1)=DBLE(Ifluid) xin88(2)=DBLE(Mfrwev*3600.) xin88(3)=DBLE(Mfrwcd*3600.) xin88(4)=1.0 xin88(5)=DBLE(Twsuev-273.15) xin88(6)=DBLE(Twsucd-273.15) xin88(7)=DBLE(PevG*3.6) xin88(8)=DBLE(PcdG*3.6) xin88(9)=DBLE(Nc) xin88(10)=DBLE(NcFL) CALL TYPE88 (TIME,XIN88,OUT88,T,DTDT,PAR88,INFO88,ICNTRL,*12) CALL LINKCK('TYPE87','TYPE88 ',1,99) 12 CONTINUE MfrRef=SNGL(out88(1)/3600) Pev=SNGL(out88(2)/3.6) W=SNGL(out88(3)/3.6) Pcd=SNGL(out88(4)/3.6) COP=SNGL(out88(5)) Twexev=SNGL(out88(6)+273.15) Twexcd=SNGL(out88(7)+273.15) IF (Twexev.GE.Tset) THEN C1*** Cycles between Nc and (Nc+dNc) Pos=2 Teta=(Tset-Twexev)/(Twexevp-Twexev) NcUp=Nc+dNc NcLow=Nc TwexevMin=Twexevp TwexcdMax=Twexcdp TwexevMean=Tset TwexcdMean=Twexcd+Teta*(Twexcdp-Twexcd) PevMean=Pev+Teta*(Pevp-Pev) Wmean=W+Teta*(Wp-W) PcdMean=Pcd+Teta*(Pcdp-Pcd) COPmean=PevMean/Wmean ELSE IF (Nc.EQ.NcMin) THEN C1*** Regime ON-OFF Pos=3 Teta=(Tset-Twsuev)/(Twexev-Twsuev) NcUp=NcMin NcLow=0 TwexevMin=Twexev TwexcdMax=Twexcd TwexevMean=Tset TwexcdMean=Twsucd+Teta*(Twexcd-Twsucd) PevMean=Teta*Pev Wmean=Teta*W PcdMean=Teta*Pcd COPmean=COP ELSE C2*** Reduced the number of loaded cylinders GOTO 10 ENDIF ENDIF ENDIF ENDIF C*** OUTPUTS 12 (converted in TRNSYS units) C************** out(1)=DBLE(Pos) out(2)=DBLE(Teta) out(3)=DBLE(NcUp) out(4)=DBLE(NcLow) out(5)=DBLE(TwexevMin-273.15) out(6)=DBLE(TwexcdMax-273.15) out(7)=DBLE(TwexevMean-273.15) out(8)=DBLE(TwexcdMean-273.15) out(9)=DBLE(PevMean*3.6) out(10)=DBLE(Wmean*3.6) out(11)=DBLE(PcdMean*3.6) out(12)=DBLE(COPmean) RETURN 1 END