Main Content

Linearize Pulp Paper Process Model

This example shows how to linearize a process model at a steady-state operating point.

Thermo-mechanical pulping (TMP) is a process for producing mechanical pulp for newsprint. In this example, you use a typical process arrangement for a two-stage TMP operation:

  • In the first stage, the primary refiner produces a course pulp from a feed of wood chips and water.

  • In the second stage, the secondary refiner further develops the pulp bonding properties so that it is suitable for paper making.

Each refiner consists of two disks with overlaid grooved surfaces. When in operation, either the two disks rotate in opposite directions or one disk rotates while the other disk remains stationary.

The disk surfaces physically impact on a three-phase flow of wood fibers, steam, and water that passes from the center of the refiner disks to their periphery. The physical impact of the disk surfaces on the wood fibers:

  1. Breaks rigid chemical and physical bonds between the fibers

  2. Microscopically roughens the surface of individual fibers enabling them to mesh together on the paper sheet.

The primary objective of controlling the TMP plant is to apply sufficient energy to derive pulp with good physical properties without incurring excess energy costs or fiber damage due to the imposition of overly high stresses as fibers pass through the refiners. For practical purposes, this objective amounts to controlling the ratio of the total electrical energy applied by the two refiners to the dry mass flow rate of wood fibers, that is, controlling the estimated specific energy applied to the pulp.

A secondary control objective is to control the pulp consistency, that is the ratio of dry mass flow rate (fibers) to overall mass flow rate (water & fibers), to a value which optimizes a trade-off between energy consumption and pulp quality.

The TMP process has the following inputs.

  • Feed rate of chips (Feed rpm)

  • Dilution water flow to each of the refiners (Primary and secondary dilution setpoints)

  • Setpoints to two regulatory controllers which control the gap between the rotating disks in each set of refiners.

The TMP process has the following outputs.

  • Primary and secondary refiner consistencies

  • Primary and secondary refiner motor loads

  • Vibration monitor measurements for the two refiners

Open the scdtmp model, which implements the thermo-mechanical pulping process.

mdl = 'scdtmp';
open_system(mdl)

In this example, your goal is to find a linear model of this system at a steady-state operating condition for the following input setpoint conditions.

  • Feed Rate = 30

  • Primary Gap = 0.8

  • Primary Dilution = 170

  • Secondary Gap = 0.5

  • Secondary Dilution = 120

Find Operating Points

To find the operating point, first create an operating point specification object using the operspec function.

opspec = operspec(mdl)
opspec = 


 Operating point specification for the Model scdtmp.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
      <strong>x</strong>       <strong>Known</strong>    <strong>SteadyState</strong>    <strong>Min</strong>     <strong>Max</strong>    <strong>dxMin</strong>    <strong>dxMax</strong>
    <strong>______</strong>    <strong>_____</strong>    <strong>___________</strong>    <strong>____</strong>    <strong>___</strong>    <strong>_____</strong>    <strong>_____</strong>

(1.) scdtmp/TMP Refining Line/Fiber fill dynamics/Internal
    3.5556    false       true        -Inf    Inf    -Inf      Inf 
(2.) scdtmp/TMP Refining Line/Fiber water fill dynamics/Internal
    6.8283    false       true        -Inf    Inf    -Inf      Inf 
(3.) scdtmp/TMP Refining Line/Primary dilution/Internal
       170    false       true        -Inf    Inf    -Inf      Inf 
(4.) scdtmp/TMP Refining Line/Primary plate gap/Internal
       0.8    false       true        -Inf    Inf    -Inf      Inf 
(5.) scdtmp/TMP Refining Line/Primary refiner motor/LTI System/Internal
       8.5    false       true        -Inf    Inf    -Inf      Inf 
(6.) scdtmp/TMP Refining Line/Primary screw feeder/Internal
        30    false       true        -Inf    Inf    -Inf      Inf 
(7.) scdtmp/TMP Refining Line/Sec refiner motor/LTI System/Internal
       6.7    false       true        -Inf    Inf    -Inf      Inf 
(8.) scdtmp/TMP Refining Line/Secondary dilution/Internal
       0.5    false       true        -Inf    Inf    -Inf      Inf 
(9.) scdtmp/TMP Refining Line/Secondary plate gap/Internal
       0.5    false       true        -Inf    Inf    -Inf      Inf 

Inputs: 
----------
    <strong>u</strong>    <strong>Known</strong>    <strong>Min</strong>     <strong>Max</strong>
    <strong>_</strong>    <strong>_____</strong>    <strong>____</strong>    <strong>___</strong>

(1.) scdtmp/Feed rpm
    0    false    -Inf    Inf
(2.) scdtmp/Pri gap set point
    0    false    -Inf    Inf
(3.) scdtmp/Pri dil flow set point
    0    false    -Inf    Inf
(4.) scdtmp/Sec. gap set point
    0    false    -Inf    Inf
(5.) scdtmp/Sec. dilution set point
    0    false    -Inf    Inf

Outputs: 
----------
    <strong>y</strong>    <strong>Known</strong>    <strong>Min</strong>     <strong>Max</strong>
    <strong>_</strong>    <strong>_____</strong>    <strong>____</strong>    <strong>___</strong>

(1.) scdtmp/Out1
    0    false    -Inf    Inf
    0    false    -Inf    Inf
    0    false    -Inf    Inf
    0    false    -Inf    Inf
    0    false    -Inf    Inf
    0    false    -Inf    Inf

Specify the feed rate input value and indicate that this value is known.

opspec.Inputs(1).u = 30;
opspec.Inputs(1).Known = 1;

Similarly, specify the known primary gap setpoint.

opspec.Inputs(2).u = 0.8;
opspec.Inputs(2).Known = 1;

Specify the known primary dilution setpoint.

opspec.Inputs(3).u = 170;
opspec.Inputs(3).Known = 1;

Specify the known secondary gap setpoint.

opspec.Inputs(4).u = 0.5;
opspec.Inputs(4).Known = 1;

Specify the known secondary dilution setpoint.

opspec.Inputs(5).u = 120;
opspec.Inputs(5).Known = 1;

Trim the model for the given operating point specifications using the findop function.

op = findop(mdl,opspec);
 Operating point search report:
---------------------------------

opreport = 


 Operating point search report for the Model scdtmp.
 (Time-Varying Components Evaluated at time t=0)

Operating point specifications were successfully met.
States: 
----------
    <strong>Min</strong>       <strong>x</strong>       <strong>Max</strong>    <strong>dxMin</strong>        <strong>dx</strong>        <strong>dxMax</strong>
    <strong>____</strong>    <strong>______</strong>    <strong>___</strong>    <strong>_____</strong>    <strong>__________</strong>    <strong>_____</strong>

(1.) scdtmp/TMP Refining Line/Fiber fill dynamics/Internal
    -Inf    3.5556    Inf      0               0      0  
(2.) scdtmp/TMP Refining Line/Fiber water fill dynamics/Internal
    -Inf    6.8283    Inf      0               0      0  
(3.) scdtmp/TMP Refining Line/Primary dilution/Internal
    -Inf       170    Inf      0               0      0  
(4.) scdtmp/TMP Refining Line/Primary plate gap/Internal
    -Inf       0.8    Inf      0               0      0  
(5.) scdtmp/TMP Refining Line/Primary refiner motor/LTI System/Internal
    -Inf    8.4952    Inf      0               0      0  
(6.) scdtmp/TMP Refining Line/Primary screw feeder/Internal
    -Inf        30    Inf      0               0      0  
(7.) scdtmp/TMP Refining Line/Sec refiner motor/LTI System/Internal
    -Inf    6.6385    Inf      0      1.7355e-12      0  
(8.) scdtmp/TMP Refining Line/Secondary dilution/Internal
    -Inf       120    Inf      0               0      0  
(9.) scdtmp/TMP Refining Line/Secondary plate gap/Internal
    -Inf       0.5    Inf      0               0      0  

Inputs: 
----------
    <strong>Min</strong>     <strong>u</strong>     <strong>Max</strong>
    <strong>___</strong>    <strong>___</strong>    <strong>___</strong>

(1.) scdtmp/Feed rpm
     30     30     30
(2.) scdtmp/Pri gap set point
    0.8    0.8    0.8
(3.) scdtmp/Pri dil flow set point
    170    170    170
(4.) scdtmp/Sec. gap set point
    0.5    0.5    0.5
(5.) scdtmp/Sec. dilution set point
    120    120    120

Outputs: 
----------
    <strong>Min</strong>        <strong>y</strong>        <strong>Max</strong>
    <strong>____</strong>    <strong>________</strong>    <strong>___</strong>

(1.) scdtmp/Out1
    -Inf    0.026027    Inf
    -Inf     0.39991    Inf
    -Inf     0.56757    Inf
    -Inf      8.4952    Inf
    -Inf     0.34914    Inf
    -Inf      6.6385    Inf

Linearize Model

To linearize the model, first define the linearization input and output points.

For this example, use the following input points.

  • Feed rate

  • Primary gap

  • Primary dilution

  • Secondary gap

  • Secondary dilution

io(1) = linio('scdtmp/Feed rpm',1,'input');
io(2) = linio('scdtmp/Pri gap set point',1,'input');
io(3) = linio('scdtmp/Pri dil flow set point',1,'input');
io(4) = linio('scdtmp/Sec. gap set point',1,'input');
io(5) = linio('scdtmp/Sec. dilution set point',1,'input');

The output of the Mux block contains the six model outputs in the following order.

  • Primary vibration

  • Primary consistency

  • Secondary vibration

  • Primary motor load

  • Secondary consistency

  • Secondary motor load

io(6) = linio('scdtmp/Mux',1,'output');

Linearize the model at the computed steady-state operating point.

sys = linearize(mdl,op,io);

You can view the response for the resulting linear system from any input to any output. For example, plot the Bode response between the primary gap setpoint and the primary consistency.

bode(sys(2,2))

See Also

| | |

Related Topics