Skip to content

Process library

Process-industry loops (flow, level, temperature) with ISA tags, sensor presets, faults, degradations and maintenance tasks.

Load it with library: process, or pin its major version with library: process@1 (the current version is 1). Every template is a subsystem made only of core operators; the library adds names, ISA tags, units, defaults, sensor presets, faults, degradations and maintenance tasks.

Tags

A loop unit is named after its controller, for example TIC-101. It creates the transmitter reading TT-101 (the measured value), the valve position TV-101, and the controller's TIC-101.sp, TIC-101.mode, TIC-101.man_out and TIC-101.out. The true regulated variable is TIC-101.cv. Analyzers and lab results get AT- tags with the unit's number, and a template's ports are <unit>.<port>. Parameters of the operators inside a unit are paths such as TIC-101.plant.K.

Templates

flow_loop

Flow control loop: a fast first-order-plus-dead-time flow response to the valve, upstream pressure as the disturbance, and a noisy flowmeter.

Parameters

Parameter Default Unit Description
sp 50.0 m3/h initial setpoint
mode AUTO 1 initial controller mode One of MAN, AUTO, CAS.
Kc 0.8 %/(m3/h) controller gain (tuning: manual)
Ti 5.0 s integral time (tuning: manual)
tuning manual 1 manual (use Kc and Ti) or simc (compute them from the plant model) One of manual, simc.
detune 1.0 1 simc: multiplies the closed-loop time constant (above 1 is slower and more robust)
Td 0.0 s derivative time
fs 0.0 % valve static friction band (stiction)
fd 0.0 % valve dynamic friction band
scan 0.0 s controller scan period, a multiple of dt (0 = every step)
sensor magnetic_flowmeter 1 sensor preset One of thermocouple, magnetic_flowmeter, radar_level, online_analyzer, lab.
span [0.0, 100.0] m3/h measurement span [low, high]
cv 1 name of the true regulated signal (default .cv)
K 1.0 (m3/h)/% flow per % of valve opening
tau 5.0 s flow time constant
theta 1.0 s flow dead time
Kp 5.0 (m3/h)/bar flow change per bar of upstream pressure deviation

Ports (bind with exogenous: {target: <unit>.<port>, source: ...} or from: <signal>)

Port Default Unit Description
pressure 0.0 bar upstream pressure deviation
rsp optional m3/h remote setpoint, followed in CAS mode

level_loop

Level control loop: the level integrates inflow minus outflow; the controller opens the outlet valve when the level rises (direct acting).

Parameters

Parameter Default Unit Description
sp 50.0 % initial setpoint
mode AUTO 1 initial controller mode One of MAN, AUTO, CAS.
Kc 1.4 %/(%) controller gain (tuning: manual)
Ti 1200.0 s integral time (tuning: manual)
tuning manual 1 manual (use Kc and Ti) or simc (compute them from the plant model) One of manual, simc.
detune 1.0 1 simc: multiplies the closed-loop time constant (above 1 is slower and more robust)
Td 0.0 s derivative time
fs 0.0 % valve static friction band (stiction)
fd 0.0 % valve dynamic friction band
scan 0.0 s controller scan period, a multiple of dt (0 = every step)
sensor radar_level 1 sensor preset One of thermocouple, magnetic_flowmeter, radar_level, online_analyzer, lab.
span [0.0, 100.0] % measurement span [low, high]
cv 1 name of the true regulated signal (default .cv)
Kv 0.5 (m3/h)/% outflow per % of outlet valve opening
tau_v 2.0 s outflow time constant
area 2.0 m2 tank cross-section
height 3.0 m tank height (100 % level)

Ports (bind with exogenous: {target: <unit>.<port>, source: ...} or from: <signal>)

Port Default Unit Description
inflow 20.0 m3/h inflow to the tank
rsp optional % remote setpoint, followed in CAS mode

temperature_loop

Temperature control loop: a slow first-order-plus-dead-time response to the heating valve, the feed temperature as the disturbance, and a lagged thermocouple.

Parameters

Parameter Default Unit Description
sp 80.0 degC initial setpoint
mode AUTO 1 initial controller mode One of MAN, AUTO, CAS.
Kc 4.0 %/(degC) controller gain (tuning: manual)
Ti 600.0 s integral time (tuning: manual)
tuning manual 1 manual (use Kc and Ti) or simc (compute them from the plant model) One of manual, simc.
detune 1.0 1 simc: multiplies the closed-loop time constant (above 1 is slower and more robust)
Td 0.0 s derivative time
fs 0.0 % valve static friction band (stiction)
fd 0.0 % valve dynamic friction band
scan 0.0 s controller scan period, a multiple of dt (0 = every step)
sensor thermocouple 1 sensor preset One of thermocouple, magnetic_flowmeter, radar_level, online_analyzer, lab.
span [0.0, 200.0] degC measurement span [low, high]
cv 1 name of the true regulated signal (default .cv)
K 0.8 degC/% temperature rise per % of heating valve opening
tau 600.0 s process time constant
theta 60.0 s process dead time
Kd 0.5 1 effect of the feed temperature
tau_d 900.0 s feed temperature time constant
base 10.0 degC temperature with the valve closed and a 0 degC feed

Ports (bind with exogenous: {target: <unit>.<port>, source: ...} or from: <signal>)

Port Default Unit Description
feed_temp 25.0 degC feed temperature
rsp optional degC remote setpoint, followed in CAS mode

mixer

Two feeds mixed in proportion to their flows, then plug flow through the outlet pipe (transit time = volume / total flow), with an online analyzer.

Parameters

Parameter Default Unit Description
volume 2.0 m3 volume of the outlet pipe (plug flow)
max_transit 21600.0 s longest transit time to support (at low flows)
analyzer True 1 measure the outlet property with an online analyzer
span [0.0, 10.0] 1 analyzer span [low, high]

Ports (bind with exogenous: {target: <unit>.<port>, source: ...} or from: <signal>)

Port Default Unit Description
flow_a 10.0 m3/h flow of feed A
prop_a 1.0 1 property of feed A (for example a concentration)
flow_b 10.0 m3/h flow of feed B
prop_b 3.0 1 property of feed B

heat_exchanger

A heating valve controls the process outlet temperature; the temperature rise per % of valve falls as the process flow rises.

Parameters

Parameter Default Unit Description
sp 70.0 degC initial setpoint
mode AUTO 1 initial controller mode One of MAN, AUTO, CAS.
Kc 4.0 %/(degC) controller gain (tuning: manual)
Ti 300.0 s integral time (tuning: manual)
tuning manual 1 manual (use Kc and Ti) or simc (compute them from the plant model) One of manual, simc.
detune 1.0 1 simc: multiplies the closed-loop time constant (above 1 is slower and more robust)
Td 0.0 s derivative time
fs 0.0 % valve static friction band (stiction)
fd 0.0 % valve dynamic friction band
scan 0.0 s controller scan period, a multiple of dt (0 = every step)
sensor thermocouple 1 sensor preset One of thermocouple, magnetic_flowmeter, radar_level, online_analyzer, lab.
span [0.0, 200.0] degC measurement span [low, high]
cv 1 name of the true regulated signal (default .cv)
K 0.6 degC/% temperature rise per % of heating valve at the nominal flow
tau 300.0 s exchanger time constant
theta 30.0 s exchanger dead time
F_nom 20.0 m3/h nominal process flow
tau_in 300.0 s time constant of the inlet temperature's effect

Ports (bind with exogenous: {target: <unit>.<port>, source: ...} or from: <signal>)

Port Default Unit Description
flow 20.0 m3/h process flow through the exchanger
inlet_temp 25.0 degC process inlet temperature
rsp optional degC remote setpoint, followed in CAS mode

reactor

A reactor temperature loop plus the product property: an Arrhenius- and feed-ratio-dependent law, plug flow and back-mixing through the reactor, and a lab analysis, by default every 4 h and reported 1 h later.

Parameters

Parameter Default Unit Description
sp 80.0 degC initial setpoint
mode AUTO 1 initial controller mode One of MAN, AUTO, CAS.
Kc 4.0 %/(degC) controller gain (tuning: manual)
Ti 600.0 s integral time (tuning: manual)
tuning manual 1 manual (use Kc and Ti) or simc (compute them from the plant model) One of manual, simc.
detune 1.0 1 simc: multiplies the closed-loop time constant (above 1 is slower and more robust)
Td 0.0 s derivative time
fs 0.0 % valve static friction band (stiction)
fd 0.0 % valve dynamic friction band
scan 0.0 s controller scan period, a multiple of dt (0 = every step)
sensor thermocouple 1 sensor preset One of thermocouple, magnetic_flowmeter, radar_level, online_analyzer, lab.
span [0.0, 200.0] degC measurement span [low, high]
cv 1 name of the true regulated signal (default .cv)
K 0.8 degC/% temperature rise per % of heating valve opening
tau 600.0 s process time constant
theta 60.0 s process dead time
Kd 0.5 1 effect of the feed temperature
tau_d 900.0 s feed temperature time constant
base 10.0 degC temperature with the valve closed and a 0 degC feed
q_ref 2.0 1 product property at the reference temperature, feed ratio 1 and full catalyst activity
t_ref 80.0 degC reference temperature
E_R 5000.0 K activation temperature E/R of the property's temperature dependence
b 1.0 1 exponent of the feed ratio
volume 5.0 m3 reactor volume, crossed in plug flow
tau_mix 600.0 s back-mixing time constant at the nominal flow
F_nom 10.0 m3/h nominal feed flow
max_residence 21600.0 s longest residence time to support (at low flows)
lab_span [0.0, 10.0] 1 span of the lab analysis [low, high]
lab_period 14400.0 s time between lab samples
lab_delay 3600.0 s time from taking a lab sample to reporting its result

Ports (bind with exogenous: {target: <unit>.<port>, source: ...} or from: <signal>)

Port Default Unit Description
feed_temp 25.0 degC feed temperature
rsp optional degC remote setpoint, followed in CAS mode
flow 10.0 m3/h feed flow
ratio 1.0 1 feed ratio, for example of a comonomer or a chain-transfer agent

cstr

A stirred reactor with two feeds and a reaction on a catalyst: the fraction of B left in the reactor, the reaction heat and the catalyst's poisoning by a feed impurity are latent states that shift the product property; a lab analysis, by default every 4 h and reported 1 h later.

Parameters

Parameter Default Unit Description
sp 80.0 degC initial setpoint
mode AUTO 1 initial controller mode One of MAN, AUTO, CAS.
Kc 4.0 %/(degC) controller gain (tuning: manual)
Ti 600.0 s integral time (tuning: manual)
tuning manual 1 manual (use Kc and Ti) or simc (compute them from the plant model) One of manual, simc.
detune 1.0 1 simc: multiplies the closed-loop time constant (above 1 is slower and more robust)
Td 0.0 s derivative time
fs 0.0 % valve static friction band (stiction)
fd 0.0 % valve dynamic friction band
scan 0.0 s controller scan period, a multiple of dt (0 = every step)
sensor thermocouple 1 sensor preset One of thermocouple, magnetic_flowmeter, radar_level, online_analyzer, lab.
span [0.0, 200.0] degC measurement span [low, high]
cv 1 name of the true regulated signal (default .cv)
K 0.8 degC/% temperature rise per % of heating valve opening
tau 600.0 s process time constant
theta 60.0 s process dead time
Kd 0.5 1 effect of the feed temperature
tau_d 900.0 s feed temperature time constant
base 10.0 degC temperature with the valve closed and a 0 degC feed
volume 5.0 m3 reactor volume (well mixed)
k_ref 4.0 1/h rate constant at t_ref with fresh catalyst and no impurity
E_k 8000.0 K activation temperature E/R of the reaction rate
poison 0.3 1/ppm activity lost to the impurity in the reactor: factor exp(−poison · impurity)
dT_rxn 50.0 degC temperature rise per unit fraction of feed converted (heat of reaction)
Kf 1.5 degC/(m3/h) cooling by the feed per m3/h above F_nom
F_nom 10.0 m3/h nominal total feed
q_ref 1.0 1 product property at t_ref and x_ref, with fresh catalyst and no impurity
x_ref 0.08 1 reference fraction of B in the reactor
b 0.8 1 exponent of the fraction of B in the reactor
E_q 3000.0 K activation temperature of the property's own temperature dependence
gamma 0.15 1/ppm direct effect of the impurity on the property: factor exp(gamma · impurity)
c 1.5 1 exponent of the catalyst activity (an ageing catalyst makes a different product)
t_ref 80.0 degC reference temperature
pipe_volume 0.5 m3 volume of the outlet line (plug flow)
max_residence 21600.0 s longest transit through the outlet line to support (at low flows)
lab_span [0.0, 2.0] 1 span of the lab analysis [low, high]
lab_period 14400.0 s time between lab samples
lab_delay 3600.0 s time from taking a lab sample to reporting its result

Ports (bind with exogenous: {target: <unit>.<port>, source: ...} or from: <signal>)

Port Default Unit Description
feed_temp 25.0 degC feed temperature
rsp optional degC remote setpoint, followed in CAS mode
flow_a 8.0 m3/h flow of feed A, the main feed
flow_b 2.0 m3/h flow of feed B, the reactant
impurity 1.0 ppm impurity carried by feed A; it poisons the catalyst

Sensor presets

Errors are percentages of the measurement span; a sample period of 0 means a reading at every step.

Preset Description Lag Noise (sd) Quantization Sample period Report delay
thermocouple Thermocouple in a thermowell. 20 s 0.05 % 0.01 % every step
magnetic_flowmeter Magnetic flowmeter. 1 s 0.5 % 0.05 % every step
radar_level Radar level transmitter. 2 s 0.2 % 0.1 % every step
online_analyzer Online analyzer: a sample every 10 min, reported 5 min later. 1 min 1 % 0.1 % 10 min 5 min
lab Laboratory analysis: a sample every 4 h, reported 1 h later. 0 s 2 % 0.5 % 4 h 1 h

Faults

Use a fault in interventions with fault: <name> and a unit as target.

Fault Description Applies to Magnitude Default profile
valve_stiction The valve develops stick-slip friction. all templates static friction band in % of travel (default 3); the dynamic band is half of it ramp over 12 h
valve_stuck The valve stops moving and holds its position. all templates not used step
sensor_bias The transmitter reading jumps by an offset. all templates offset in measurement units (default 2 % of span) step
sensor_drift The transmitter reading drifts away from the true value. all templates total drift in measurement units (default 2 % of span) ramp over 1 d
sensor_noise The transmitter becomes noisier. all templates factor on the noise standard deviation (default 5) step
fouling Heat-transfer fouling: the heating valve loses effect on the temperature. temperature_loop, heat_exchanger, reactor, cstr factor on the process gain (default 0.7) ramp over 2 d

Degradations

Use a degradation under degradation, with its parameters as keys.

fouling

Heat-transfer fouling that grows faster at higher temperatures and cuts the heating gain; cleaning resets it. Applies to: temperature_loop, heat_exchanger, reactor, cstr.

Parameter Default Unit Description
rate 0.01 1/day fraction of the heating gain lost per day at the reference temperature
t_ref 80.0 degC reference temperature
max 0.8 1 largest fraction that can be lost

sensor_drift

The transmitter drifts at a steady rate; calibration resets it. Applies to: all templates.

Parameter Default Unit Description
rate 0.1 %/day drift per day, in % of the measurement span

valve_wear

Packing wear widens the valve's stick-slip friction bands; replacing the valve resets it. Applies to: all templates.

Parameter Default Unit Description
rate 0.05 %/day growth of the static friction band per day, in % of travel
max 10.0 % largest growth

catalyst_decay

The catalyst loses activity, faster at higher temperatures, lowering the product property; replacing the catalyst resets it. Applies to: reactor, cstr.

Parameter Default Unit Description
rate 0.02 1/day fraction of the activity lost per day at the reference temperature
t_ref 80.0 degC reference temperature
max 0.9 1 largest fraction that can be lost

Maintenance tasks

Use a task in plan.maintenance with task: <name> and one unit or several as target.

Task Description Applies to Needs duration
clean Clean the heat-transfer surface: fouling returns to zero. temperature_loop, heat_exchanger, reactor, cstr
replace_catalyst Replace the catalyst: its activity returns to fresh. reactor, cstr
calibrate Calibrate the transmitter: its offset and drift return to zero. all templates
replace_sensor Replace the transmitter with a new one: calibrated, nominal noise, fresh state. all templates
replace_valve Replace the valve: friction bands and wear return to nominal. all templates
stop Stop the loop for a while: the valve closes in manual, then the loop returns to automatic. all templates yes
remove_sensor Remove the transmitter: its reading becomes NaN and the controller holds its output. all templates
install_sensor Install a new transmitter: readings resume. all templates