k k+1 k+2

Figure 7.10. The elements of DMC: The "reference trajectory" is the setpoint line [438].

From BA Ogunnaike and WH Ray. Process Dynamics, Modeling, and Control. New York: Oxford University Press, Inc., 1994. Used by permission.

output predictions are conditional on the absence of further control action. The case k = 0 corresponds to initial condition on the predicted process output. Sequences for k > 0 are obtained recursively using the predictions at the prior instant, (k — 1). The vector notation used here is different from the one used earlier in this chapter (including this section). Earlier, y (t) or y(k) denoted the values of different process outputs at the same time instant, for the single-input, single-output system under consideration. Here, y°(k) denotes the predicted values of single output y at p sampling times including the current time k. An arbitrary sequence of m (m < p) control actions, Au(k), Au(fc + 1),..., Au(k + m — 1), will cause the process outputs to change from the initial conditions y°(k) to a new state (Figure 7.10)

y (k + 1) = [y(k + l)y(k + 2)... y(k + p)f . (7.147)

Let the effect of unmeasured disturbances on the predicted output y(k + i) be represented as w(k + i), i — 1,2,... ,p. Then it follows from Eq. 7.142

that y(k + i)= y°{k + i - 1) + £ ß{j)Au(k + ¿ - j) + w{k + i), ¿ = 1,2,..., j=1

m y(k + i) = y°(k -I- i — 1) + ^^ + i — m)Au(k + m - j) + w{k + i),

Eq. 7.148 may be rewritten succinctly as y(fc + 1) = y°(k) + w(k + 1) + XAu(fc)

with

X is referred to as the Dynamic Matrix. The MPC methodology for the unconstrained problem is considered first.

The control problem expressed in Eq. 7.149 reduces to judiciously choosing and implementing the control sequence Au(fc) so that the predicted process output is driven to and remains at the desired trajectory y*(k + 1) = [y*(k + 1) y*(k + 2)... y*(k + p)}J

i.e., let y(k + 1) = y*(k + 1). The difference between the desired output trajectory, y*(k + 1) and the current output prediction in the absence of further control action corrected for the effect of unmeasured disturbances on the process output, viz., y°(k) + w(k + 1), is the predicted error vector e(k + 1), which is the input to feedback controllers. Eq. 7.149 therefore is restated as e(k + 1) = XAu(fc). (7.152)

The left hand side of Eq. 7.152 represents the predicted deviation of process output from the desired set-point trajectory in the absence of further control action and the right hand side the predicted change in the process output resulting from the control action, Au(fc).

The horizon over which control moves are computed is always smaller than the horizon chosen for output prediction (i.e., m < p). As a result, Eq. 7.152 represents an overdetermined system of equations. No exact solution exists for Eq. 7.152 as a result. A satisfactory "solution" to Eq. 7.152 then may be obtained by minimizing an appropriate metric that represents the difference between the left hand and right hand sides of Eq. 7.152. One such metric is described by the right hand side of Eq. 7.153.

min J = [e(fc + 1) - XAu(fc)]T[e(fc + 1) - XAu(fc)]

The second term on the right hand side of Eq. 7.153 reflects a penalty against excessive control action. The necessary condition for minimization of J with respect to Au(/c) is that the derivative vector dJ/dAu(k) be trivial. The application of this condition to Eq. 7.153 leads to the following feedback control law [438].

(XTX+JCI)Au(fc) = XTe(fc + l) =4- Au(fc) = {XTX+KI)-1XTe{k +1).

The projected error vector requires the vector of future values of effects of unmeasured disturbances on the process output, values that are not available at the present time k. In the absence of any better information, w(k + 1) is estimated as w{k + i)=ym{k)-y(k), ¿ = 1,2,...,p. (7.155)

It is not advisable to implement the entire control sequence, Au(k), Au(k + 1),..., Au(k + m-l), as calculated from Eq. 7.154, in quick succession for the following reasons. It must be recognized that it is impossible to anticipate or predict precisely over the next m sampling intervals, the process-model mismatch and unmodeled disturbances which will cause the actual state of the process to differ from the model predictions used to compute this sequence of control actions. Additionally, there may be changes in the process set point at any time over the next m time intervals as better information becomes available on the status of the process. The pre-computed control sequence is inherently incapable of reflecting the changes which would occur after the computation. For these reasons, as mentioned earlier, the MPC strategy therefore is to implement only the first control action, Au(k), and repeatedly execute the following steps.

1. Update y*(k + 1) with any new desired set-point information.

2. Update y°(/c) by adding the effect of implementation of Au(k) and assuming no further control move will be implemented.

4. Update the projected error vector e(k + 1)[= y*(k + 1) - y°(k) -w(fc + l)].

5. Shift the origin of the prediction horizon from k to (k + 1). Obtain y*(k + 2), y°(k + l) and w(fc + 2) from y*(k + l), y°(k), and w(fc + l), respectively, by removing the first element in each of these updated vectors, advancing the other elements in order, and filling the last element by linear extrapolation.

6. Compute the new control action sequence using the updated and shifted vectors, implement Au(k + 1) and repeat steps 1-6.

Application of DMC scheme to multiple-input, multiple-output (MIMO) processes is discussed next.

For multiple-input, multiple-output processes, step response models analogous to the one in Eq. 7.142 must be considered. For example, for a process with two inputs and three outputs, the impact of step changes in inputs u\ and U2 on output yz may be expressed by the step-response model k k 1ft(A) = 3i(t)A«i(fc - i) + 5>32(i)Au2(fc - i), (7.156) ¿=0 t=0

with /?31 and being the parameters indicative of the sensitivity of y3 to changes in m and respectively. The procedure for application of the four elements of MPC for MIMO processes is the same as that for SISO processes, except that the matrices and vectors involved are much larger. For example, the relations between the predicted error vector and the control action in Eq. 7.152 are also applicable for MIMO processes with e(fc + l) = Mfc + l) ei(fc + l) =yî(A + l) e2(A + l) =y*2(k + l)

... e2(fc + l)]T, Au(fc) -y?(*)-wi(fe + i), ~ y2(k) — w2(fc +1),

The dynamic matrices X7a in Eq. 7.157 (for example, 7,5 = 1, 2) relate the dependence of the output y1 on the input u,5. For given m and p, these matrices are identical in structure to the dynamic matrix X for an SISO process (Eq. 7.150b), with the elements of X7s being obtained by replacing P by pl5 in Eq. 7.150b.

In multivariable processes, it must be realized that a change of certain magnitude (say a unit change) in one output may be more or less important than the change of the same magnitude in another output. One example is an output that is mole fraction of a specie, a second output that is temperature, and a third that is a flow rate. Since the three outputs will have different nominal values, a unit change in mole fraction spans the entire scale (mole fraction ranges between zero and unity), while a unit change in temperature may be a change of few percent and the same may be the case with flow rate. Appropriate scaling factors must therefore be incorporated when working with the error vector e(k + 1) and the control action vector Au(i) so that equally important changes in different outputs or inputs are treated equally. This is accomplished by pre-multiplying the projected error vector e(k + 1) by a scaling matrix W and the control sequence vector Au(fc) by a scaling matrix V and employing the resulting scaled vectors in the definition of objective function J (an appropriate norm) to be minimized. The objective in Eq. 7.153 then may be modified as follows to reflect this.

min J = [e(fc + 1) - XAu(fc)]Tr[e(A; + 1) - XAu(fc)] + [Au(fc)]TAAu(fc)

The analytical, closed form solution for the classical least-squares problem in Eq. 7.158 is obtained by equating dJ/dAu(&) to zero. The control policy then is provided by

Was this article helpful?

## Post a comment