In its most general aspect, the present invention relates to a method for creating digital circuits of a feedback control system that implements an approximation technique for Model Predictive Control (MPC). In addition to that, circuit architectures of the aforesaid control system are also described.
MPC is an increasingly popular technique in industry for feedback control of a multivariable process subject to constraints on manipulated and controlled variables. A generic physical process like the one shown in
Indeed, MPC gives an effective solution to the problem of regulating the system to the origin while fulfilling constraints on input, output and state variables. Here, at each sampling time, starting at the current state, an open-loop optimal control problem is solved over a finite horizon. At the next time step, the computation is repeated starting from the new state and over a shifted horizon, leading to a moving horizon policy. The solution relies on a linear dynamic model, respects all input and output constraints, and optimizes a quadratic performance index. Over the last decades, a solid theoretical foundation for MPC has emerged so that in real life, large-scale Multi-Input and Multi-Output (MIMO) applications controllers with non-conservative stability guarantees can be designed routinely and easily. The main drawback of the MPC is the relatively high on-line computational effort, which limits its applicability to relatively slow and/or small problems.
Nevertheless, it is possible to move all the computations necessary for the implementation of MPC off-line, while preserving all its other characteristics. In fact, the optimal control law can be expressed as a PWA (vector) function of the state variables, obtained solving a multi-parametric quadratic programming (mpQP) problem. Consider a MPC algorithm based on the linear discrete-time prediction model given in Formula 1 of the open-loop process and on the solution of the finite-time optimal control problem
where N is the prediction horizon, Nu (<N) is the control horizon, U*=[u*0, . . . , u*N
where U*PWA=[u*0, . . . , u*N
The values of the gain F and the offset gi depend on the region, defined by the polyhedron {x: Hix≦ki} containing the state x. Therefore, the evaluation of the vector u*0(x) requires finding the region that contains the current state x, a problem known as “point location problem.” This problem can be solved by digital circuits employing organized data structures (e.g. binary search trees). The main drawback is that the number p of regions that define the state partition grows largely with the number of constraints in Formula 2 and the extension Nu of the control horizon. Moreover, the size of the memory inside the circuit increases with the number of coefficients required to define properly each region and the affine expressions.
Determining a proper control function u(x) that is feasible, stabilizing, and easy to implement at the same time is a key aspect for MPC implementation. To face this problem, Bemporad et al. in the paper titled “Ultra-Fast Stabilizing Model Predictive Control via Canonical Piecewise Affine Approximations” published on IEEE Transactions on Automatic Control, pp. 2883-2897, Dec. 2011 (doi: 10.1109/TAC.2011.2141410) describe an alternative control law based on a suboptimal solution to the MPC problem. Instead of using the PWA function u*0(x) obtained by solving the mpQP problem, they use piecewise-affine simplicial (PWAS) functions to approximate the optimal control law. To this end, they formulate an optimization problem (either quadratic or linear) imposing a set of conditions that guarantee the feasibility of the solution with respect to the MPC constraints. The suboptimal solution can be implemented on circuits that are faster in terms of throughput and have a simpler structure with respect to the circuits implementing the PWA optimal solution to the MPC problem.
PWAS functions are a particular class of PWA functions defined over a regularly shaped partition of the set of possible states x. This partition is composed by simplices (a simplex is a segment in a one-dimensional space, a triangle in a two-dimensional space, a tetrahedron in a tree-dimensional space, and so on). The set of states is partitioned into simplices as follows. Every dimensional component xj=[xj,MIN, xj,MAX], j=1, . . . , n (meaning that the set of states is hyperrectangular) of the state is divided into pj subintervals of uniform length. Consequently, the set of states is divided into hyper-rectangles, and contains Nv=πj=1n(pj+1) vertices vi. Each hyper-rectangle is further partitioned into n! simplices with non-overlapping interiors.
The regularity of the partition allows expressing the value of a continuous PWAS function as a linear combination of basis functions (see Formula 5).
Once the partition and the set of basis functions φi (x) have been fixed, the PWAS function u(x) is completely defined by the set of coefficients wi.
PWAS functions can be easily implemented on digital circuits. Indeed, it is possible to calculate the value of a PWAS function at a point x by interpolating the values of the PWAS function at the vertices of the simplex containing x.
The method proposed by Bemporad et al. aims at obtaining a PWAS function u(x) which minimizes the distance (in a properly defined metric space) from the optimal solution u*0(x) of the MPC problem, while fulfilling the MPC constraints. This function is defined by a set of coefficients wi. A cost function used to compute the coefficients wi of the PWAS function u(x) is shown in Formula 6.
This cost function utilizes the norm L2, in order to compute the distance between the optimal solution u*0(x) and the approximated one u(x). The latter is obtained through the minimization of the cost function, with respect to the coefficients wi and to the Nσ slack variables σi.
Some constraints derived from those appearing in the problem shown in Formula 3 are inserted in the minimization of the cost function shown in Formula 6, in order to fulfill the MPC constraints on input u, output y and state x.
{tilde over (G)}u(x)≦W+Dx+Z[u*1(x), . . . , u*N
where {tilde over (G)}, W, D, Z and S are matrices of appropriate dimensions and σ(x)=Σi−1n
This approximation method does not guarantee a priori the stability of the closed-loop system shown in
The block diagram in
The execution of the above-described method requires a relevant amount of resources, since it is necessary to compute both the optimal solution u*0(x) and the approximated solution u(x). This makes particularly difficult to find an approximated solution u(x) able to stabilize the model of the physical process, because it is necessary to change the parameters and the MPC constraints of two distinct programming problems.
Moreover, solving the mpQP problem may hit the memory and CPU requirements of a design platform, because of the combinatorial explosion of the number of regions.
The present invention aims to solve these and other problems by providing a method for creating digital circuits implementing a feedback control system based on an approximated solution of an MPC problem, without solving any mpQP problem at all. In addition to that, the present invention aims to solve these and other problems by providing circuit architectures for the implementation of the control system.
The main idea of the present invention is the generation of an approximated solution u(x) by solving only a single programming problem. Further advantageous features of the present invention are the subject of the attached claims. The features of the invention are specifically set forth in the claims annexed to this description; such characteristics will be clearer from the following description of a preferred and non-exclusive embodiment shown in annexed drawings, wherein:
a-c show three alternative input acquisition blocks for the generic circuit architectures displayed in
In
The MPC controller takes a set of signals as input, wherein the set of signals comprises a sampled system state xk and a reference signal constant rk. If rk=0, the feedback block regulates the state of the physical process to the origin and rk can be omitted from the formulation. Otherwise, in Formula 2 one must extend the prediction model (A,B) by augmenting the state vector to Xk=[xk,rk,uk−1] and treat Δuk=uk−uk−1 as the new input signal. In this way, the tracking performance to be minimized can be expressed by penalizing ek=xk−rk=[I −I 0]Xk, and by setting Q=[I −I 0]′Qy[I −I 0], where Qy is a weight matrix on ek, terminal weight P=0, and assigning to matrix R the role of weighting input increments. The role of the MPC controller 2 is to generate a control output comprising a control signal u(t), which is constant during each time interval [kts,(k+1)ts), and is applied to the physical process 3 as input. In order to control the physical process 3 by maintaining the error signal within an error interval, the MPC controller executes a control method for controlling the physical process 3 comprising the following steps:
In this way, the system 1 can show a stable behavior.
As shown in
where φ(x) is a properly chosen PWAS basis and w=[w0)′, . . . , (wN
In order to define uniquely an optimal control sequence U*(x)∈PWAS, U*(x)=φ(x)w*, and set a PWAS control law u(x)=(w*,0)′φ(x), the cost function is sampled at the vertices vi, i=1, . . . , Nv, of the simplicial partition and PWAS coefficients w* are calculated by solving the following QP problem
where inequality constraints impose the feasibility of the solution (with respect to the original constraints of the MPC problem on inputs and outputs) and the equality constraint forces the control action vanish at the origin. The stability of the closed-loop system is not imposed by any constraint, thus it must be checked a posteriori. By eliminating the term ½v′iYvi, that does not affect the solution w*, and by substituting Formula 8 into 9, one obtains
Finally, by setting
The above-stated problem can be advantageously solved without computing the optimal solution U*PWA(x) of the MPC problem. Therefore, it is possible to save off-line computational resources by using this advantageous problem formulation. In this way, reaching a solution for this problem may require less design time than before.
Concerning feasibility, notice that the original constraints in Formula 3 are imposed only at the vertices of the simplicial partition in Formula 11. This guarantees feasibility at all states x, as for each simplex S of the partition the condition GU(vi)≦W+Dvi imposed at all the vertices vi of S and the linearity of U(x) on S implies that GU(x)≦W+Dx, ∀x ∈S. To ensure closed-loop stability under the control law u(x)=(w*,0)′φ(x), an a posteriori stability check of the solution must be carried out, for example by constructing a PWA Lyapunov function as in the aforementioned method of Bemporad et al.. The construction of a Lyapunov function can be done by following well-known methods, which do not fall within the scope of this application.
If the stability check is positive, the solution u(x) is kept, otherwise a new solution is computed by varying the parameters and/or the MPC constraints.
When a stabilizing approximate PWAS control law u(x) is found, it is possible to create one or more digital circuits that implement it, i.e. that implement an approximate MPC. Summarizing, the method for creating digital circuits according to the invention comprises the following steps:
To synthesize the digital circuits of a feedback control system, generic circuit architectures are used. These architectures can be easily implemented on FPGA, DSP, or the like by simply using the basis function φ(x) and the parameters w*,0 as input data for the synthesis process.
In the following, we describe two prior art circuit architectures, proposed in the paper M. Storace, T. Poggi, “Digital architectures for the circuit implementation of PWL multi-variate functions: two FPGA implementations,” International Journal of Circuit Theory and Applications, vol. 39, pp. 1-15, 2011, doi: 10.1002/cta.610.
In
In order to compute the value of the PWAS function fPWL(z) in a very efficient way, this architecture circuit 21 exploits the regularity of the partitions. The domain of the PWAS function fPWL(z) must be resealed so that each dimension is partitioned into segments with unitary length, i.e. the coordinates of the vertices of the simplicial partition have integer values. In this way, the PWAS function fPWL(z) can be evaluated in three steps:
If one needs to compute a vector PWAS function, the circuit can be replicated as many times as the number of components of the function.
The generic serial circuit architecture 21 comprises a Serial Input-Parallel Output (SIPO) register 22, a sorter 23, a swap register 24, an address generator 25, a memory 26, a μ-generator generator 27, and a Multiply Accumulate Unit (MAC) 28.
Both the SIPO register 22 and the sorter 23 take the data z as input; the data z is coded with p bits representing the integer part of the coordinate and q bits representing the decimal part.
The SIPO register 22 converts the serial input to parallel output, and loads it in the swap register 24. The sorter 23 implements a rank-extractor algorithm as described by Pedroni, in the paper titled “Compact Hamming-comparator-based rank order filter for digital VLSI and FPGA implementations” published in Proceedings of the 2004 IEEE International Symposium on Circuits and Systems (ISCAS 2004) on pages 585-588, doi: 10.1109/ISCAS.2004.1329339. This algorithm is used in the sorter 23 to sort the n strings of q least significant bits of the input data i=1, . . . , n. In this way, sorter 23 produces sorted strings {circumflex over (δ)}i (i=1, . . . , n)({circumflex over (δ)}1>{circumflex over (δ)}2> . . . >{circumflex over (δ)}n) as outputs, which are provided in parallel fashion, through the swap register 24, to the μ-generator 27 and the address generator 25. The μ-generator 27 is a combinatorial network that, starting from the sorted strings {circumflex over (δ)}i, computes n+1 terms μj for the current input and provides them to the MAC 28. The μj coefficients, represented with q-bit precision, are calculated as shown in Formula 12.
μ1={circumflex over (δ)}1−{circumflex over (δ)}2 . . .
μn−1={circumflex over (δ)}n−1−{circumflex over (δ)}n
μn={circumflex over (δ)}n Formula 12
The address generator 25 is a combinatorial network that, starting from the integer and decimal parts of the point z and from the sorted strings {circumflex over (δ)}i, generates the address of one of the n+1 coefficients wj representing the values of the PWAS function fPWL(z) in the vertices of the simplex containing z. These addresses are provided to the memory 26 that contains all values of the PWAS function in the vertices of the simplicial partition.
The memory 26, properly addressed, provides the n+1 coefficients wj to the MAC 28. Each coefficient wj is coded with a number b of bits.
The MAC 28 computes the value of the PWAS function fPWL(z) by evaluating Formula 13.
After the computation of the value of the PWAS function fPWL(z), the q less significant bits of fPWL(z) are discarded, in order to scale the coefficients μj from the interval [0,2q−1] to [0,1].
The SIPO register 22 and the sorter 23 require s clock periods for loading their output in the swap register 24, and the address generator 25 requires t clock cycles for performing its combinatorial operation. Finally, the u-generator 27 requires r clock cycles for doing its computations. It is possible to notice that t and r depend only on the working frequency of the circuit. Therefore, the total number of clock cycles required to process a single input is p+q+s+max{t,r}+(n+3), that is linear with respect to the number of inputs and to the number of bits used to code the input.
Due to the presence of the swap register 24, the processing can be pipelined, thus allowing an input sampling period of s+max {p+q+max {t,r}, (n+3)} clock cycles.
A first variant of the above-described generic circuit architecture 21 is shown in
A generic parallel circuit architecture 21′, which is functionally equivalent to the generic serial circuit architecture 21, comprises an input register 29. This register is used to synchronize the input (the point z) with the other components. Indeed, the generic parallel circuit architecture 21′ also comprises a sorter 23′, an address generator 25′, a memory 26′, a μ-generator 27′, and multipliers-adder 28 ′ replacing the MAC 28. The multipliers-adder 28′ comprises n+1 multipliers 28′a and an adder 28′b.
Since the generic parallel circuit architecture 21′ is able to perform parallel data processing, the coefficients wj and μj have to be provided to the multipliers 28′a at the same time. For this reason, the address generator 25′ produces in parallel n+1 different addresses, the μ-generator generator 27′ n+1 different coefficients μj, and the memory 26′ provides n+1 different coefficients wj.
The present invention aims to improve and generalise these circuit architectures. In addition to that, the present invention aims to modify these circuit architectures to make them usable for control applications. Control systems, indeed, must execute the following steps:
To accomplish to this temporal sequence of steps a number of changes have been applied to the prior art circuit architectures. These changes are described below.
A serial circuit architecture 31, which is shown in
The serial circuit architecture 31 is more flexible than circuit 21, since it comprises an input register 32, which can be configured, as shown in
A further upgrade of the multiple-input single output (MISO) serial circuit architecture 31 consists in the possibility of computing multiple outputs, thus obtaining a MIMO circuit architecture. In this case different PWAS functions fPWL(z) are associated to the same simplicial partition, so the computation of all PWAS functions fPWL(z) can be fastened by solving just once the point location problem, since all PWAS functions fPWL(z) are partitioned in the same way. In practice the computation of PWAS vector functions is made possible by inserting several memory banks in the block memory 26,26′, one bank for each PWAS function fPWL(z), with the value of the different functions in the vertices of the simplicial partition. In the serial architecture 31 the various functions are computed in sequence, while in the parallel architecture 31′ (shown in
Since the parallel circuit architecture 31′ is able to perform parallel data processing, the coefficients wj and have to be provided to the multipliers 28′a at the same time. For this reason, the address generator 25′ produces in parallel n+1 different addresses, the μ-generator 27′ n+1 different coefficients μj, and the memory 26′ provides n+1 different coefficients wj.
A further improvement is concerned with non uniform simplicial partitions. In [T. Poggi, F. Comaschi, M. Storace, “Digital circuit realization of piecewise affine functions with non-uniform resolution: theory and FPGA implementation,” IEEE Transactions on Circuits and Systems-II: Transaction Briefs, vol. 57, n. 2, pp. 131-135, Feb. 2010, doi: 10.1109/TCSII.2010.2040316] only non-uniform partitions are handled, where the distance between near vertices is a power of two. This limits the range of applications in which the architecture can be used. The cited reference discloses a circuit block 41 shown in
The circuit block 41 comprises n comparators 42, an adder 43, a memory 44, a subtractor 45, a shift register 46, and an output register 47.
The circuit block 41 receives the i-th component xi of the state x as input, and the comparators 42 compare the i-th component xi of the state x with the i-th component of all vertices (xik
The i-th component of the vertex xiki is then subtracted with subtractor 45 from the i-th component xi of the state x. In order to perform the scaling, the output of the subtractor 45 is then shifted by the shifter 46 of a number of positions equal to the shifting value qik
Finally, the address value and the output of the shifter 46 are concatenated with block 47 to obtain the scaled state zi, which is produced by the circuit block 41 as output.
The scaling of the input state x is performed component-wise, indeed block 41 is replicated n times in the circuit.
In
Summarizing, the circuit block 41′ converts the state (xi) of the physical process (3) into the input data (zi) for the circuit architectures (31,31′) by implementing a mapping function, wherein the domain of the state (xi) is non-uniformly partitioned, and the domain of the PWAS function fPWL(z) is uniformly partitioned.
It is understood that variants of the method for creating digital circuits of a feedback control system that implements an approximation technique for an MPC controller and/or of the circuit architectures of the said control system still fall within the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
12425106.7 | Jun 2012 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IB2013/054179 | 5/21/2013 | WO | 00 |