Sie sind auf Seite 1von 54

CG39BOILER-1 CONTENTS

TABLE OF CONTENTS

SECTION AND TITLE PAGE

1.0 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1


1.1 DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
1.2 RELATED LITERATURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4

2.0 PLANT_MASTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1

3.0 S_LOOP_IMP_FF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1

4.0 S_LOOP_SS_FF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1

5.0 BOILER_MASTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1

6.0 OXYGEN_TRIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1

7.0 AIR_FLOW_O2_TRIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1

8.0 FUEL_FLOW_LOOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1

9.0 DRUM_LEVEL_LOOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1

10.0 FEEDWATER_FLOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1

11.0 FURN_PRESS_LOOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1

12.0 BOILER_EFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1

13.0 HX_EFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1

14.0 INTERP_XYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1

Moore Products Co. assumes no liability for errors or omissions in this document or for the application and use of information included in this
document. The information herein is subject to change without notice.

The Moore logo is a registered trademark of Moore Products Co.


APACS, the APACS logo, and 4-mation are trademarks of Moore Products Co.
All other trademarks are the property of the respective owners.

1995 Moore Products Co. All rights reserved.

July 1995 i
CONTENTS CG39BOILER-1

ii July 1995
CG39BOILER-1 INTRODUCTION

1.0 INTRODUCTION

This document describes the Industrial Boiler Application Library (Version 3.00) that consists of a set of
Derived Function Blocks (DFBs) that are pre-configured at the factory to perform industrial boiler control
functions and efficiency calculations.

Each block is described in a separate section of this guide. A graphical presentation of all the control blocks
of the Application Library is shown in Figure 1-1. A graphical presentation of the efficiency blocks appears
in Figure 1-2. This guide is organized into the following sections:

Section 1, Introduction

Section 2, PLANT_MASTER

Section 3, S_LOOP_IMP_FF

Section 4, S_LOOP_SS_FF

Section 5, BOILER_MASTER

Section 6, OXYGEN_TRIM

Section 7, AIR_FLOW_O2_TRIM

Section 8, FUEL_FLOW_LOOP

Section 9, DRUM_LEVEL_LOOP

Section 10, FEEDWATER_FLOW

Section 11, FURN_PRESS_LOOP

Section 12, BOILER_EFF

Section 13, HX_EFF

Section 14, INTERP_XYZ

1.1 DESCRIPTION

The Industrial Boiler Application Library (Version 3.00) consists of a set of Derived Function Blocks (DFBs)
that are pre-configured at the factory to perform industrial boiler control functions and efficiency calculations.
These control functions include those related to plant master, boiler master, oxygen trim, air flow, fuel flow,
drum level, feedwater flow, and furnace pressure. Boiler and heat exchanger efficiency calculations are
included, complete with steam and water enthalpy data from the 1967 ASME Steam Tables. Specific volume

July 1995 1-1


INTRODUCTION CG39BOILER-1

data for steam and water is also included for use in orifice flow correction equations or pressure
compensation of boiler level.

The library is in the form of a stand-alone off-line ACM configuration named INDUSTRL that is part of a
system named APPL_LIB\BOILER. The configuration is intended to be opened identically to opening any
other off-line database. The configuration can be used as a starting point for a user-developed configuration,
or the blocks can be selectively copied from the library configuration and pasted into the user-developed
configuration. The library can be used directly from the floppy, or it can be used from a hard disk after first
copying the entire library floppy contents onto the hard disk (keeping all subdirectories intact).

The blocks are provided as Derived Function Blocks (DFBs), but they can be easily converted into reusable
User-Defined Function Blocks (UDFBs).

The control blocks are adaptations of the Basic Application Library Blocks, which are included with the
4-mation software (see CG39-12, APACS 4-mation Reference, Volume III, for general information on basic
control loops).

1.2 RELATED LITERATURE

The following Moore Products Co. literature is available for reference:

Using the 4-mation Configuration Software (CG39-6)


4-mation Reference, Volume I: Configuration Language Elements (CG39-10)
4-mation Reference, Volume II: I/O Configuration, LIM Configuration, Error Codes (CG39-11)
4-mation Reference, Volume III: Basic Application Library (CG39-12)
Feedforward Control Using the Model 352 Single Loop Controller (AD352-117)

The following vendor literature should be available as needed:

Microsoft MS-DOS Operating System Reference


Microsoft Windows 3.1 (or later) Operating System Reference

1-2 July 1995


CG39BOILER-1 PLANT_MASTER

2.0 PLANT_MASTER

The derived block PLANT_MASTER performs the function of the Plant Master Controller. It uses the steam
header pressure to determine the boiler demand signal for the Boiler Masters. In this example, the Plant
Master is the SINGLE_LOOP Basic block (see CG39-12, APACS 4-mation Reference, Volume III, for
information on the Basic Application Library Blocks). See Table 2-1 for Soft List information and Figure
2-1 for a graphic of the block contents.

The Plant Master Controller can also be configured as a feedforward-feedback controller using a steam
demand signal such as steam flow as the feedforward variable. The PLANT_MAS_IMP_FF block (of type
S_LOOP_IMP_FF) is a single loop controller with impulse feedforward; Section 3 has a description of the
S_LOOP_IMP_FF block type. The PLANT_MAS_SS_FF block (of type S_LOOP_SS_FF) is a single loop
controller with steady state feedforward; Section 4 has a description of the S_LOOP_SS_FF block type.

The input to the PLANT_MASTER (SINGLE_LOOP) block is:


PV = process variable (steam header pressure)

The outputs are:


SP = setpoint
OUT = output (boiler demand)
ALARM = alarm status

Each instance of the PLANT_MASTER (SINGLE_LOOP) block occupies approximately 3.5K of memory.

July 1995 2-1


PLANT_MASTER CG39BOILER-1

2-2 July 1995


CG39BOILER-1 PLANT_MASTER

July 1995 2-3


PLANT_MASTER CG39BOILER-1

2-4 July 1995


CG39BOILER-1 PLANT_MASTER

July 1995 2-5


PLANT_MASTER CG39BOILER-1

2-6 July 1995


CG39BOILER-1 S_LOOP_IMP_FF

3.0 S_LOOP_IMP_FF

The derived block S_LOOP_IMP_FF is a single loop controller with impulse feedforward. It has potential
use in a variety of industrial boiler applications, such as the Plant Master Controller and the Furnace Pressure
Controller. The circuit is a basic single loop with the impulse feedforward signal added on to the PID
controller output. See Table 3-1 for Soft List information and Figure 3-1 for a graphic of the block contents.

In the impulse feedforward method, the feedforward variable generates a transient bias to the controller
output. The valve loading signal is the sum of the PID controller output and the feedforward impulse. The
feedforward impulse is centered around 0 and becomes 0 at steady state, so the full output range is available
to the PID controller.

For a detailed discussion of the different feedforward methods, see "Feedforward Control Using the Model
352 Single-Loop Controller" (AD352-117). However, note the following differences between the
S_LOOP_IMP_FF block and the impulse feedforward circuit in AD352-117. First, the FF_IMPULSE block
and the FF_ADD block replace the lag (FB40) and deviation amplifier (FB22) blocks. Secondly, the TD Soft
List value of the FF_IMPULSE block replaces the lag time constant (TL). Finally, the GAIN Soft List value
of the FF_IMPULSE block replaces the gain (G1) of the deviation amplifier (FB22). Note also that the DG
Soft List value of the FF_IMPULSE block must be set to 1.0.

The inputs to the S_LOOP_IMP_FF block are:


PV = process variable
FF_PV = feedforward process variable

The outputs are:


SP = setpoint
OUT = output
ALARM = alarm status

Each instance of the S_LOOP_IMP_FF block occupies approximately 3.9K of memory.

July 1995 3-1


S_LOOP_IMP_FF CG39BOILER-1

3-2 July 1995


CG39BOILER-1 S_LOOP_IMP_FF

July 1995 3-3


S_LOOP_IMP_FF CG39BOILER-1

3-4 July 1995


CG39BOILER-1 S_LOOP_IMP_FF

July 1995 3-5


S_LOOP_IMP_FF CG39BOILER-1

3-6 July 1995


CG39BOILER-1 S_LOOP_SS_FF

4.0 S_LOOP_SS_FF

The derived block S_LOOP_SS_FF is a single loop controller with steady state feedforward. It has potential
use in a variety of industrial boiler applications, such as the Plant Master Controller and the Furnace Pressure
Controller. The circuit is a basic single loop with the steady state feedforward signal added on to the PID
controller output. See Table 4-1 for Soft List information and Figure 4-1 for a graphic of the block contents.

In the steady state feedforward method, the feedforward variable provides a steady-state bias to the PID
controller output. The valve loading signal is the sum of the PID controller output and the feedforward
variable. For a detailed discussion of the different feedforward methods, see AD352-117, Feedforward
Control Using the Model 352 Single-Loop Controller.

The FF_LEADLAG block performs a lead and/or a lag function on the [FF_PV] feedforward process signal.
In manual mode, the FF_LEADLAG block tracks [FF_PV]. The FF_SP block determines the feedforward
setpoint; it tracks the [FF_PV] signal in manual, and it holds the last [FF_PV] value after the switch from
manual to auto mode. The FF_CALC block (configured as a proportional-only controller with manual reset
tracking) tracks the controller output in manual mode, and, in auto mode, it holds the last [OUT] value as the
manual reset and adds to it the difference between the lead/lag signal and the feedforward setpoint.

Since the feedforward variable should comprise the bulk of the valve loading signal, the PID controller needs
only to make some positive or negative adjustments to the feedforward variable. So the PID controller can
center its output at 50 (the middle of the typical 0-100 output range) the FF_ADD block subtracts 50 from
the PID controller output. The -50 and the feedforward component must be removed from the
AUTO_MANUAL block output to determine the PID controller feedback (FDBK input); this is
accomplished by the FDBK_SUB and FDBK_ADD blocks.

The inputs to the S_LOOP_SS_FF block are:


PV = process variable
FF_PV = feedforward process variable

The outputs are:


SP = setpoint
OUT = output
ALARM = alarm status

Each instance of the S_LOOP_SS_FF block occupies approximately 5.5K of memory.

July 1995 4-1


S_LOOP_SS_FF CG39BOILER-1

4-2 July 1995


CG39BOILER-1 BOILER_MASTER

5.0 BOILER_MASTER

The derived block BOILER_MASTER performs the function of a Boiler Master Controller. It biases the
boiler demand signal from the Plant Master Controller to determine the firing rate demand signal for that
boiler. The firing rate demand is used in determining the fuel and air flow setpoints. See Table 5-1 for Soft
List information and Figure 5-1 for a graphic of the block contents.

The bias applied to the boiler demand signal is comprised of two parts: the absolute value of the bias (from
the SETPOINT block) and the sign of the bias (from the POSITIVE_BIAS block). If the bias is to be
positive, the VALUE Soft List value of the POSITIVE_BIAS block is set TRUE. For a negative bias, the
value is set FALSE.

In auto mode, the bias is added to the boiler demand signal (the [PV] input) to determine the firing rate
demand (the [OUT] output). The operator sets the bias value by selecting the action of the bias (positive or
negative) in the POSITIVE_BIAS block, and setting the bias absolute value in the SETPOINT block. If the
action of the bias is changed, the BIAS_R_TRIG, BIAS_F_TRIG, BIAS_OR, and BIAS_AND blocks work
to momentarily switch the SETPOINT block into external mode, which sets the bias absolute value to 0. The
NEG_SUB, BIAS_SEL and BIAS_ADD blocks perform the biasing calculation.

In manual mode, the operator sets the firing rate demand manually in the AUTO_MANUAL block. When in
manual mode, the bias action and the bias absolute value track the difference between [OUT] and [PV], the
TRK_BIAS_SUB and TRK_BIAS_ABS blocks determine the absolute bias value, and the TRK_BIAS_GE
and TRK_BIAS_SET_VAL blocks determine the bias action.

The input to the BOILER_MASTER block is:


PV = boiler demand

The outputs are:


OUT = output (firing rate demand)
BIAS = bias value

Each instance of the BOILER_MASTER block occupies approximately 5K of memory.

July 1995 5-1


BOILER_MASTER CG39BOILER-1

5-2 July 1995


CG39BOILER-1 BOILER_MASTER

July 1995 5-3


BOILER_MASTER CG39BOILER-1

5-4 July 1995


CG39BOILER-1 OXYGEN_TRIM

6.0 OXYGEN_TRIM

The derived block OXYGEN_TRIM performs the function of the Oxygen Trim Controller. It uses the stack
oxygen analysis and the boiler load to determine an efficient trim value for the Air Flow Controller. The
boiler load signal is characterized to determine the stack oxygen concentration setpoint. In the Air Flow
Controller, the trim value is a multiplication factor applied to the cross-limited air flow setpoint. The range
of the oxygen trim output is 0.8-1.2. See Table 6-1 for Soft List information and Figure 6-1 for a graphic of
the block contents.

The OXYGEN_TRIM block is similar to the EXT_SET and PRIMARY Basic blocks. The
BOILER_LOAD_CHAR block characterizes the boiler load signal to determine the external setpoint. The
CTRLR_OUT_LIMIT block provides controller output limiting upstream of the AUTO_MANUAL block so
that the full output range is available to the user when in manual mode. The [CASC_S] input is the
indication from the Air Flow Controller that it is in cascade mode; if this signal is false, the Oxygen Trim
Controller is placed in standby sync mode (the output is 1.0).

The inputs to the OXYGEN_TRIM block are:


PV = process variable (stack oxygen analysis)
B_LOAD = boiler load (e.g. steam flow)
CASC_S = cascade status from Air Flow Controller

The outputs are:


SP = setpoint
OUT = output (oxygen trim)
ALARM = alarm status

Each instance of the OXYGEN_TRIM block occupies approximately 5K of memory.

July 1995 6-1


OXYGEN_TRIM CG39BOILER-1

6-2 July 1995


CG39BOILER-1 AIR_FLOW_O2_TRIM

7.0 AIR_FLOW_O2_TRIM

The derived block AIR_FLOW_O2_TR performs the function of the Air Flow Controller with Oxygen Trim.
It uses the characterized air flow rate, the firing rate demand, the fuel flow rate, the oxygen trim signal, the
low fire status, and the purge status to determine the forced draft air damper position. External to the block,
the air flow rate is characterized using the optimum combustion data. In this cross-limited circuit, the greater
of the firing rate demand and the fuel flow rate is multiplied by the oxygen trim signal to determine the air
flow setpoint. If low fire is selected, the output is set to a configurable low fire value. If purge is selected, the
output is set to 100%. See Table 7-1 for Soft List information and Figure 7-1 for a graphic of the block
contents.

The AIR_FLOW_O2_TR block is similar to the SECONDARY and SINGLE_LOOP_SS Basic blocks. The
AIR_HI_SEL block selects the greater of the firing rate demand and the fuel flow rate. The AIR_MUL block
applies the oxygen trim to determine the external setpoint (the block is always in external mode). The
REL_AIR_DIV block calculates the relative air flow value for the Fuel Flow Controller. The PURGE_NOT,
LOW_FIRE_NOT, and AUTO_AND blocks determine the cascade status [CASC_S] for the Oxygen Trim
Controller. If low fire or purge is selected, the STANDBY_OR block sets the SS standby sync status to
TRUE. The AUTO_MANUAL block would then track the low fire value or 100.0, as determined by the
LOW_FIRE and PURGE_SEL blocks.

The inputs to the AIR_FLOW_O2_TR block are:


PV = process variable (characterized air flow rate)
FR_DEM = firing rate demand
FUEL = fuel flow rate
O2TRIM = oxygen trim signal
LOFIRE = low fire status
PURGE = purge status

The outputs are:


SP = setpoint
OUT = output (forced draft damper position)
ALARM = alarm status
RELAIR = relative air signal
CASC_S = cascade status

Each instance of the AIR_FLOW_O2_TR block occupies approximately 5.5K of memory.

July 1995 7-1


AIR_FLOW_O2_TRIM CG39BOILER-1

7-2 July 1995


CG39BOILER-1 FUEL_FLOW_LOOP

8.0 FUEL_FLOW_LOOP

The derived block FUEL_FLOW_LOOP performs the function of the Fuel Flow Controller. It uses the fuel
flow rate, the firing rate demand, the relative air flow rate, and the low fire status to determine the fuel valve
position. In this cross-limited circuit, the lesser of the firing rate demand and the relative air flow rate is the
setpoint. If low fire is selected, the output is set to a configurable low fire value. See Table 8-1 for Soft List
information and Figure 8-1 for a graphic of the block contents.

The FUEL_FLOW_LOOP block is similar to the SINGLE_LOOP_SS Basic block. The FUEL_LO_SEL
block selects the lesser of the firing rate demand and the relative air flow rate as the external setpoint (the
block is always in external mode). If low fire is selected, the SS standby sync status is set to TRUE, and the
AUTO_MANUAL block would then track the low fire value, as determined by the LOW_FIRE block.

The inputs to the FUEL_FLOW_LOOP block are:


PV = process variable (fuel flow rate)
FR_DEM = firing rate demand
RELAIR = relative air flow rate
LOFIRE = low fire status

The outputs are:


SP = setpoint
OUT = output (fuel valve position)
ALARM = alarm status

Each instance of the FUEL_FLOW_LOOP block occupies approximately 4.5K of memory.

July 1995 8-1


FUEL_FLOW_LOOP CG39BOILER-1

8-2 July 1995


CG39BOILER-1 DRUM_LEVEL_LOOP

9.0 DRUM_LEVEL_LOOP

The derived block DRUM_LEVEL_LOOP performs the function of the Drum Level Controller in a Three-
Element Drum Level Circuit. It uses the drum level to determine the setpoint to the Feedwater Flow
Controller. In this cascade control circuit, the Drum Level Loop is the primary loop and the Feedwater Flow
Loop is the secondary loop. See Table 9-1 for Soft List information and Figure 9-1 for a graphic of the block
contents.

The DRUM_LEVEL_LOOP block is very similar to the PRIMARY Basic block. The only difference in
functionality is that no AUTO variable is included; the loop is always in auto mode. The default
range/engineering units is -10 to 10 "H2O.

The inputs to the DRUM_LEVEL_LOOP block are:


PV = process variable (drum level)
FDBK = controller feedback (from the Feedwater Flow Controller)
CASC_S = cascade status (from the Feedwater Flow Controller)

The outputs are:


SP = setpoint
OUT = output (Feedwater Flow Controller setpoint)
ALARM = alarm status

Each instance of the DRUM_LEVEL_LOOP block occupies approximately 4K of memory.

July 1995 9-1


DRUM_LEVEL_LOOP CG39BOILER-1

9-2 July 1995


CG39BOILER-1 DRUM_LEVEL_LOOP

July 1995 9-3


DRUM_LEVEL_LOOP CG39BOILER-1

9-4 July 1995


CG39BOILER-1 DRUM_LEVEL_LOOP

July 1995 9-5


DRUM_LEVEL_LOOP CG39BOILER-1

9-6 July 1995


CG39BOILER-1 FEEDWATER_FLOW

10.0 FEEDWATER_FLOW

The derived block FEEDWATER_FLOW performs the function of the Feedwater Flow Controller in a
Three-Element Drum Level Circuit. It uses the feedwater flow rate, the steam flow rate, and the Drum Level
Controller output to determine the feedwater valve position. In this cascade control circuit, the Drum Level
Loop is the primary loop, and the Feedwater Flow Loop is the secondary loop. See Table 10-1 for Soft List
information and Figure 10-1 for a graphic of the block contents.

The FEEDWATER_FLOW block is similar to the SECONDARY Basic block. The DL_STM_ADD block
calculates the external setpoint; the addition of -50.0 acts to center the Drum Level Controller's output
[DL_OUT] around 50.0. The loop is always in external/cascade mode, so no EXT variable is included. The
FW_STM_SUB and FW_STM_ADD blocks calculate the correct feedback value for the Drum Level
Controller.

The inputs to the FEEDWATER_FLOW block are:


PV = process variable (feedwater flow rate)
STMFLO = steam flow rate
DL_OUT = Drum Level Controller output

The outputs are:


SP = setpoint
OUT = output (feedwater valve position)
ALARM = alarm status
DLFDBK = feedback signal for the Drum Level Controller
CASC_S = cascade status (for the Drum Level Controller)

Each instance of the FEEDWATER_FLOW block occupies approximately 4K of memory.

July 1995 10-1


FEEDWATER_FLOW CG39BOILER-1

10-2 July 1995


CG39BOILER-1 FEEDWATER_FLOW

July 1995 10-3


FEEDWATER_FLOW CG39BOILER-1

10-4 July 1995


CG39BOILER-1 FEEDWATER_FLOW

July 1995 10-5


FEEDWATER_FLOW CG39BOILER-1

10-6 July 1995


CG39BOOILER-1 FURN_PRESS_LOOP

11.0 FURN_PRESS_LOOP

The derived block named FURN_PRESS_LOOP is a single loop controller with impulse feedforward. It is
identical in functionality to the S_LOOP_IMP_FF block. The furnace pressure and the forced-draft air
damper position are used to determine the induced-draft air damper position; see section 3 for more details.
Note that this loop typically requires a direct-acting controller, so the default DIR_ACT parameter of the
CONTROLLER block has been changed to TRUE for the FURN_PRESS_LOOP block.

July 1995 11-1


FURN_PRESS_LOOP CG39BOILER-1

11-2 July 1995


CG39BOILER-1 BOILER_EFF

12.0 BOILER_EFF

The derived block BOILER_EFF performs the boiler efficiency calculation using the input-output method.
The steam flow rate, steam enthalpy, feedwater flow rate, feedwater enthalpy, blowdown enthalpy, fuel flow
rate, and fuel higher heating value are used to determine the boiler percent efficiency. See Figure 12-1 for a
graphic of the block contents.

The inputs to the BOILER_EFF block are:


Ws = steam flow rate
Hs = steam enthalpy
Ww = feedwater flow rate
Hw = feedwater enthalpy
Hbd = blowdown enthalpy
Wf = fuel flow rate
Hf = fuel higher heating value

The output is:


PctEFF = boiler percent efficiency

The efficiency calculation is comprised of the following equations:


Heat added to feedwater = [Ws]*([Hs] - [Hw]) + ([Ww] - [Ws])*([Hbd] - [Hw])
Heat input = [Wf]*[Hf]
[PctEFF] = (Heat added to feedwater / Heat input) * 100.0

Each instance of the BOILER_EFF block occupies approximately 2.8K of memory.

July 1995 12-1


BOILER_EFF CG39BOILER-1

12-2 July 1995


CG39BOILER-1 BOILER_EFF

July 1995 12-3


BOILER_EFF CG39BOILER-1

12-4 July 1995


CG39BOILER-1 HX_EFF

13.0 HX_EFF

The derived block HX_EFF performs a heat exchanger efficiency calculation. The efficiency, or heating
effectiveness, is calculated to be the ratio of the actual temperature rise of the cold fluid to the maximum
possible temperature rise obtainable if the warm-end approach were zero (based on countercurrent flow). The
inlet and outlet temperatures of the cold fluid and inlet temperature of the hot fluid are used to determine the
heating effectiveness. See Figure 13-1 for a graphic of the block contents.

The inputs to the HX_EFF block are:


Tc_OUT = outlet temperature of the cold fluid
Tc_IN = inlet temperature of the cold fluid
Th_IN = inlet temperature of the hot fluid

The output is:


PctEFF = heat exchanger percent efficiency (percent heating effectiveness)

The efficiency calculation is as follows:


[PctEFF] = 100.0 * ([Tc_OUT] - [Tc_IN])/([Th_IN] - [Tc_IN])

Each instance of the HX_EFF block occupies approximately 1.4K of memory.

July 1995 13-1


HX_EFF CG39BOILER-1

13-2 July 1995


CG39BOILER-1 HX_EFF

July 1995 13-3


HX_EFF CG39BOILER-1

13-4 July 1995


CG39BOILER-1 INTERP_XYZ

14.0 INTERP_XYZ

The user-defined function block INTERP_XYZ performs a two-dimensional interpolation of X-Y-Z tabular
data, where Z is a function of both X and Y. The efficiency calculations can use this block to find steam and
water enthalpy as a function of pressure and temperature. The block can also be used in orifice corrections or
boiler level compensation to find steam and water-specific volume as a function of pressure and temperature.
See Figure 14-1 for a graphic of the block contents.

The X and Y values (pressure and temperature) are inputs, and the calculated/interpolated Z value (enthalpy
or specific volume) is an output. X represents the row label values of a table, and Y represents the column
label values. The X and Y label values must be entered in ascending order in separate one-dimensional
arrays: [Xlabel][I] and [Ylabel][J]. I is used as the row index (with a range of 1 to [Nrows]), and J is used as
the column index (with a range of 1 to [Ncols]). The Z data is entered in the input table array [Ztable][I,J],
and every element of the table/array must have a value.

For example, [Xlabel][1] is the X (pressure) value for the first row of the Z (enthalpy or specific volume)
table, [Ylabel][2] is the Y (temperature) value for the second column of the Z table, and [Ztable][1,2] is the Z
value in the first row of the second column of the table.

The interpolation technique uses the four Z table values that surround the desired Z value, and weights each
according to its proximity to the X and Y input values. This is accomplished in four steps:

1. Find the lines that connect the Z values at the two Y table values
2. Find the Z values along those lines which correspond to the X input value
3. Find the line between those Z values
4. Find the Z value along that line which corresponds to the Y input value

An identical answer results if this approach is applied in the opposite order with respect to X and Y.

Any Z values in the table that should never be used (such as enthalpy values for steam that are unavailable
because they would correspond to water instead of steam at those conditions) should be entered in the table
array as -1.0. The block has an error status output that indicates an error when the X or Y inputs are out of
the range of the table (the nearest Z table value will be the Z output) or when a Z table value of -1.0 is being
used in the calculation (the Z output will not update).

The |Steam_h|, |Water_h|, |Steam_v|, and |Water_v| arrays are provided, along with the |Steam_P_labels|,
|Steam_T_labels|, |Water_P_labels|, and |Water_T_labels| arrays. The source of this data is the 1967 ASME
Steam Tables. The enthalpy and specific volume arrays include data that has been extrapolated slightly
beyond the saturation curve so that the array would be useful for interpolation up to the saturation curve.

The inputs to the INTERP_XYZ block are:


X = actual X (pressure) value for which the Z value is desired
Y = actual Y (temperature) value for which the Z value is desired
Nrows = number of rows
Ncols = number of columns

July 1995 14-1


INTERP_XYZ CG39BOILER-1

Xlabel = row label values as an array [1..Nrows]


Ylabel = column label values as an array [1..Ncols]
Ztable = Z (enthalpy or specific volume) vs. X-Y table values as an array [1..Nrows,1..Ncols]

The outputs are:


Z = Z value (enthalpy or specific volume) corresponding to the inputted X and Y values
ERROR = error status

Each instance of the INTERP_XYZ block occupies approximately 6.3K of memory.

14-2 July 1995

Das könnte Ihnen auch gefallen