Process for designing a virtual sensor, corresponding virtual sensor, system, and computer-program products

10859022 ยท 2020-12-08

Assignee

Inventors

Cpc classification

International classification

Abstract

Described herein is a process for designing a virtual sensor that is able to estimate a variable of interest v as a function of a set of available variables u.sub.i. The process comprises the steps of: acquiring (1002) a design data-set D.sub.d comprising a number N of measured values v(ti) of the variable of interest v and corresponding measured values i(ti) of the available variables u.sub.i; determining a limit on the disturbances of the available variables u.sub.i and a limit on the errors of the method of measurement of the variable of interest v; selecting (1004) a Lipschitz function * with a respective Lipschitz constant , which is able to estimate the variable of interest v(t) as a function of a number n of past values of each available variable u.sub.i, by executing the following steps one or more times for different numbers n: a) determining a value for the Lipschitz constant y; b) defining (1006) a maximum limit (r(t)) and a minimum limit (r(t)) for the estimate of the variable of interest v as a function of the design data-set D.sub.d, and moreover the number n, the value for the Lipschitz constant y, the limit on the disturbances of the available variables u.sub.i, and the limit on the errors of the method of measurement of the variable of interest v, and choosing a Lipschitz function * comprised between the maximum limit (r(t)) and the minimum limit (r(t)); c) determining (1008) an estimation error *(*) for the Lipschitz function * and selecting the Lipschitz function *, associated to which is a respective Lipschitz constant y* and a respective number n*, that presents the minimum estimation error *(*(y*, n*)); and implementing (1012) the selected Lipschitz function * in an electronic circuit.

Claims

1. A computer implemented method of producing a first virtual sensor configured to estimate a variable of interest v as a function of a set of available variables u.sub.i provided by a plurality of sensors, wherein said variable of interest v is indicative of an emission of an internal combustion engine, the method comprising the steps of: acquiring by means of experimental measurements on a testing internal combustion engine and/or by means of simulations of an accurate model of said internal combustion engine a design dataset D.sub.d comprising a number N of measured values {tilde over (v)}(t.sub.i) of said variable of interest v and corresponding measured values .sub.i(t.sub.i) of said available variables u.sub.i; determining a function adapted to estimate the variable of interest v(t) as a function of a respective number n of past values of each available variable u.sub.i; and implementing said function in an electronic circuit, whereby said electronic circuit is configured to estimate said variable of interest v(t) as a function of said set of available variables u.sub.i; wherein the method comprises the steps of: receiving a boundary of the disturbances of said available variables u.sub.i determined as a function of the information on the perturbations of the measurements resulting from process spread involved in production of said internal combustion engine and the different operating conditions of said internal combustion engine, and receiving a boundary of the measurement errors of the variable of interest v determined as a function of the data of accuracy of the instrument used for measuring the variable of interest v during the experimental tests; selecting a Lipschitz function * with a respective Lipschitz constant () adapted to estimate the variable of interest v(t) as a function of a respective number n of past values of each available variable u.sub.i by executing the following steps one or more times for different numbers n: a) determining a value for said Lipschitz constant with the following equation: y * ( n ) = min : f _ ( r ( t i ) ) > v ~ ( t i ) - - , i = n , n + 1 , .Math. , N - 1 ; b) defining an upper boundary (r(t)) and a lower boundary (r(t)) for the estimation of said variable of interest v as a function of said design dataset D.sub.d, the numbers n, said value for said Lipschitz constant , said boundary of the disturbances of said available variables u.sub.i and said boundary of the measurement errors of the variable of interest v, wherein said upper boundary (r(t)) and said lower boundary (r(t)) for the estimation of said variable of interest v are defined through the following equations: f _ ( r ( t ) ) = min i = n , .Math. , N ( v ~ ( t i ) + + + .Math. r ( t ) - r ~ ( t i ) .Math. ) f _ ( r ( t ) ) = min i = n , .Math. , N ( v ~ ( t i ) - - - .Math. r ( t ) - r ~ ( t i ) .Math. ) c) selecting a Lipschitz function .sup. comprised between said upper boundary (t)) and said lower boundary (r(t)), wherein said selecting a Lipschitz function .sup. comprised between said upper boundary (r(t)) and said lower boundary (r(t)) comprises estimating the value v(t) of the variable of interest v with the average value between the upper boundary (r(t)) and the lower boundary (r(t)); d) determining an estimation error * (.sup.) for said Lipschitz function .sup. and selecting the Lipschitz function *, having associated a respective Lipschitz constant * and respective numbers n*, which has the lowest estimation error * (*(*,n*)); implementing said selected Lipschitz function * in said electronic circuit.

2. Method according to claim 1, comprising: modifying said design dataset D.sub.d in order to add values of said variable of interest v and corresponding values of said available variables u.sub.i which do not correspond to measured values but which are within the boundary around measured values .sub.i(t.sub.i) of one or more of said available variables u.sub.i and/or the boundary around measured values {tilde over (v)}(t.sub.i) of said variable of interest v.

3. Method according to claim 1, comprising: approximating said selected Lipschitz function * with a function .sub.a being composed of base functions; and implementing said approximated Lipschitz function .sub.a in said electronic circuit.

4. Method according to claim 1, comprising: designing at least a second virtual sensor adapted to estimate a second variable of interest v as a function of a second set of available variables, wherein the second variable of interest corresponds to one of the available variables u.sub.i in said set of available variables u.sub.i of said first virtual sensor, wherein the second virtual sensor is designed using a second design dataset comprising measured values of said second variable of interest and corresponding measured values for said second set of available variables; and implementing said first virtual sensor and said second virtual sensor within the same electronic circuit.

5. Method according to claim 1, wherein said set of available variables u.sub.i comprises one or more of the following variables: fuel demand; engine r.p.m.; engine torque; temperature in the intake manifold; pressure in the intake manifold; pressure in the common rail; flow of exhaust gases in the exhaust manifold; temperature of the coolant; concentration of oxygen in the combustion chamber; absolute humidity; temperature in the combustion chamber; and pressure in the combustion chamber.

6. An electronic circuit configured to implement the virtual sensor obtained with the method according to claim 1.

7. A system comprising: an actuator, such as a combustion motor; a control unit configured to drive said actuator as a function of at least one control signal, and at least one electronic circuit configured to implement a virtual sensor (40) obtained with the method according to claim 1.

8. A computer-program product that can be loaded into the memory of at least one processor and comprises portions of software code for implementing the steps of the method according to claim 1.

9. A computer-program product that can be loaded into the memory of at least one processor and comprises portions of software code for implementing a virtual sensor obtained with the method according to claim 1.

10. Method according to claim 1, wherein said variable of interest v is indicative of an emission of NO.sub.x of said internal combustion engine.

11. Method according to claim 1, where the estimation error * (.sup.) is calculated according to the following equation: .Math. * ( f ( * , n ) ) = sup r R b ( f _ ( r ) - f _ ( r ) ) / 2 + * ( n ) .

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) Embodiments of the present description will now be described in detail with reference to the attached drawings, which are provided purely by way of non-limiting example and in which:

(2) FIG. 1 has already been described previously;

(3) FIG. 2 shows an embodiment of a control system;

(4) FIG. 3 shows an embodiment of a virtual sensor that can be used in the system of FIG. 2;

(5) FIG. 4 illustrates a flowchart of a process for designing a virtual sensor;

(6) FIGS. 5, 6, and 7 show details of the design process of FIG. 4;

(7) FIG. 8 illustrates an embodiment of a virtual sensor;

(8) FIG. 9 shows an embodiment that enables reduction of the estimation error of the virtual sensor;

(9) FIG. 10 shows an embodiment that enables reduction of the complexity of the virtual sensor; and

(10) FIGS. 11, 12, and 13 show various embodiments of virtual sensors that are particularly useful for estimating a type of emission of an internal-combustion engine.

DETAILED DESCRIPTION OF EMBODIMENTS

(11) In the ensuing description, various specific details are illustrated aimed at enabling an in-depth understanding of the embodiments. The embodiments may be provided without one or more of the specific details, or with other methods, components, materials, etc. In other cases, known structures, materials, or operations are not illustrated or described in detail so that various aspects of the embodiments will not be obscured.

(12) Reference to an embodiment or one embodiment in the framework of the present description is intended to indicate that a particular configuration, structure, or characteristic described in relation to the embodiment is comprised in at least one embodiment. Hence, phrases such as in an embodiment or in one embodiment that may be present in various points of the ensuing description do not necessarily refer to one and the same embodiment. Moreover, particular conformations, structures or characteristics may be combined in any adequate manner in one or more embodiments.

(13) The references used herein are merely provided for convenience and hence do not define the sphere of protection or the scope of the embodiments.

(14) As mentioned previously, the present description relates to solutions for designing a virtual sensor, such as a virtual sensor that is able to estimate one or more types of emission of an internal-combustion engine, for example NO.sub.x emission of a diesel engine.

(15) FIG. 2 shows an embodiment of a generic control system.

(16) In the embodiment considered, the system comprises an actuator 10 and a control unit 20 configured to drive the actuator 10 on the basis of one or more control signals. For instance, in the embodiment considered, the control unit 20 can drive the actuator 10 on the basis of one or more of the following control signals: one or more reference signals S1; one or more signals of a feed-back type S2, i.e., signals obtained via one or more sensors 30 configured for monitoring the behaviour of the actuator 10; and one or more signals of a feed-forward type S3, i.e., signals obtained from one or more further sensors 32 that supply information useful for a predictive control.

(17) In general, there may also be provided one or more further sensors 34 configured for monitoring the behaviour of the actuator 10, which, however, are not used for control of the actuator 10.

(18) For instance, in various embodiments, the actuator 10 is an internal-combustion engine. In this case, the control unit 20 is typically implemented within the engine control unit, and the reference parameter S1 could be the required value of engine r.p.m.

(19) In various embodiments, at least one of the sensors 30, 32, and/or 34 is a virtual sensor 40; i.e., at least one of the signals S2, S3, and/or S4 corresponds to an estimate {tilde over (v)} of a variable of interest v.

(20) In general, the virtual sensor 40 can be implemented within the control unit 20, for example in the form of a software module, or on a separate electronic board.

(21) Consequently, as illustrated in FIG. 3, the virtual sensor 40 receives, at each sampling instant t.sub.i=i.Math.t, a set of measured values MQ={(.sub.i, .sub.2, . . . , .sub.m} and estimates a corresponding value {tilde over (v)}(t) for the variable of interest v(t) as a function of the measured values MQ. For instance, in the architecture illustrated in FIG. 2, the control module 20 can send these measured values to the virtual sensor 40. For example, as mentioned previously, the virtual sensor 40 could be a software module within the control unit 20 that preferably has direct access to the variables acquired and/or calculated within the control unit 20. Instead, in the case where the virtual sensor 40 is implemented on a separate electronic board, the control module 20 can exchange the values with the virtual sensor 40 through any wired or wireless communication system, such as a CAN (Controller Area Network) bus of a vehicle. In general, the virtual sensor 40 could receive one or more of the measured values also directly from the various sensors 30, 32 and/or 34.

(22) For instance, in various embodiments, the variable of interest v(t) that is to be measured is a type of emission produced by the engine 10, for example NO.sub.x. By way of example, appearing in the following table are variables that can be used in various embodiments for estimation of NO.sub.x:

(23) TABLE-US-00001 Name of variable Description .sub.1 Fuel demand .sub.2 Engine r.p.m. .sub.3 Engine torque .sub.4 Percentage opening of the EGR valve .sub.5 Percentage closing of the VGT turbine .sub.6 Temperature in the intake manifold .sub.7 Pressure in the intake manifold .sub.8 Pressure in the common rail .sub.9 Flow of exhaust gases in the exhaust manifold .sub.10 Temperature of the coolant .sub.11 Concentration of oxygen in the combustion chamber .sub.12 Absolute humidity

(24) Consequently, in general the virtual sensor 40, on the basis of the variables MQ, supplies in real time an estimate {tilde over (v)} of the variable of interest v, for example of engine emission, such as emission of uncombusted hydrocarbons (HC), nitrogen oxides (NO.sub.x), carbon monoxide (CO), or particulate matter (PM).

(25) FIG. 4 shows an embodiment of a process for designing the virtual sensor 40, which can be implemented, for example, within a software for the design of virtual sensors, i.e., a computer-program product that can be executed, for example, on a computer or a computing system with distributed architecture (the so-called cloud-computing system), which implements the process for automatic design of the virtual sensor 40.

(26) After an initial step 1000, a step 1002 is carried out of acquisition of data D.sub.d for acquiring both the measured values MQ={(.sub.1, .sub.2, . . . , .sub.m} and the corresponding measured values {tilde over (v)} of the variable of interest v:
D.sub.d={.sub.1(t.sub.i),.sub.2(t.sub.i), . . . ,.sub.m(t.sub.i),{tilde over (v)}(t.sub.i),i=1, . . . ,N}(5)

(27) The acquisitions of the above reference data D.sub.d may be made by means of experimental measurements on a testing actuator 10, either in the laboratory or during actual operation, or else by means of simulations of an accurate model of the actuator 10, or else in part experimentally and in part by simulation. For instance, in various embodiments, the reference data D.sub.d are acquired using operating conditions that are typically considered for evaluating the performance of the actuator 10, for example of the engine and its emission levels. For instance, these conditions may comprise both dynamic tests (homologation cycles such as NEDC, WLTP, FTP, Artemis) and actual on-the-road tests, as well as stationary tests conducted on different possible engine operating points.

(28) The set of reference data D.sub.d is then used in a step 1004 for designing the virtual sensor 40. As will be described hereinafter, in various embodiments, the step 1004 comprises a step 1006 for computing a function .sup. that is able to provide a robust estimate, i.e., with a guaranteed error limit even in the presence of variability of the variables u.sub.i due to the spread in the engine-production processes, an optimisation step 1008 for computing a function * that yields a robustly optimal estimate, which minimises the guaranteed error, and an optional approximation step 1010 for approximating the function * with a function .sub.a with reduced computational complexity.

(29) In various embodiments, the functions .sup., *, or .sub.a may be used, in a step 1012, for implementing the virtual sensor 40. For instance, in various embodiments, step 1012 can automatically generate a source code that can be transferred onto the platform on which it will have to operate, such as a source code (for example, a C code) that can be compiled for the control unit 20 (for example, the engine control unit) or another microprocessor, or a VHDL/VERILOG code for programming of an FPGA or for implementation of an ASIC.

(30) In general, as already mentioned in the section Description of the prior art, an estimator of the variable of interest v based upon the variables MQ may be represented as in Eq. (1). In various embodiments, unlike the technique used in the prior art, the functions .sup., *, or .sub.a are not sought within an assigned parametric family, but rather within a non-parametric family custom character() of continuous Lipschitz functions. For instance, in various embodiments, the following family of functions is used:
custom character()={custom character:|({circumflex over (r)}(t))((t))|{circumflex over (r)}(t)(t).sub.,{circumflex over (r)}(t),(t)R.sub.b}(6)
where custom character is the set of the continuous functions that operate in the space R.sup.mn.

(31) The set R.sub.b is the rectangular parallelepiped in the space R.sup.mn of minimum volume that contains the set R.sub.d made up of all the regressors formed using the data of the data-set D.sub.d and can be calculated as:

(32) R b = { r R m n ; min i = 1 , .Math. , N u ~ j + k ( t i ) r j + k max i = 1 , .Math. , N u ~ j + k ( t i ) ; k = 1 , .Math. , n ; j = 1 , .Math. , m } ( 7 )

(33) Consequently, the set R.sub.b defines the space between the minimum and maximum measured values of the variables .sub.i, hence being automatically limited to the range of the values actually measured.

(34) FIG. 5 shows, in this context, two arbitrary points {circumflex over (r)}(t), (t) in the set R.sub.b. Basically, Eq. (6) envisages that the distance between the two values ({circumflex over (r)}(t)) and ((t)) must be less than the distance between the two points {circumflex over (r)}(t), (t), determined as shown in Eq. (6), for example with the infinity norm or alternatively another norm, for example the Euclidean norm, multiplied by the Lipschitz constant .

(35) The rationale for the previous choices stems from the following considerations. The actuator 10, for example the engine, which represents an emission-generation system, may, in general, be described by a system of nonlinear state equations of appropriate order n, of which the variables u.sub.i are in part the inputs and in part the measured outputs. If the variable of interest v (for example, the emission) is a continuous Lipschitz function of the state variables and can be estimated from a knowledge of the variables u.sub.i, then, from the general theory of observability of nonlinear systems, there exists a function .sub.0 such that, for an appropriate value of ,
v(t)=.sub.0(r(t)),.sub.0custom character()(8)

(36) The function .sub.0 is in general not known, and in various embodiments an estimate thereof is directly derived from the experimental data. It may be noted that the family of functions custom character() where estimation functions .sup. and * are sought is constituted by functions that, operating on measurements u.sub.i corrupted by disturbances that are not known but are limited by a value |u.sub.i.sub.i|, yield estimation errors that (as will be illustrated hereinafter) are limited by the amount .

(37) In various embodiments, this property is used in step 1004 for computing the functions .sup. and * that enable so-called robust and robustly optimal estimators to be obtained, capable of supplying a low or even minimum estimation error that can be obtained in the various operating conditions in which the estimator will have to operate and in the presence of disturbances on the measurements u.sub.i that, on account of production spread, are not known but are smaller in modulus than .

(38) Moreover, the performance of any {circumflex over ()}custom character() chosen cannot be evaluated simply by verifying that {circumflex over ()} yields on the data-set D.sub.d errors |{tilde over (v)}(t.sub.i){tilde over (v)}(t.sub.i)|, with i=1, . . . , N, that are small. In fact, it is possible to find estimation functions that yield small or even zero errors on the data-set D.sub.d, but that can present very poor performance when they operate on data-sets D.sub.v other than D.sub.d, which are referred to as validation sets:
D.sub.v={.sub.1(t.sub.i),.sub.2(t.sub.i), . . . ,.sub.m(t.sub.i),{tilde over (v)}(t.sub.i),i=N+1, . . . ,M}(9)

(39) In general, the data contained in the data-set D.sub.d do not yield information on the behaviour of the function {circumflex over ()} outside of the data-set R.sub.b defined in Eq. (7). In fact, two estimation functions {circumflex over ()}.sub.a, {circumflex over ()}.sub.b custom character() such that {circumflex over ()}.sub.a(r)={circumflex over ()}.sub.b(r), rR.sub.b may have very different values for r.Math.R.sub.b. Consequently, in various embodiments, the validation sets are chosen in such a way that R.sub.vR.sub.b, where R.sub.v is the set of the regressors formed using the data of the data-set D.sub.v. In what follows, custom character.sub.v is hence defined as the set of all the possible sets D.sub.v such that R.sub.vR.sub.b.

(40) In various embodiments, for assigning functions {circumflex over ()}custom character(), variability of the measurements, and accuracy of the measurement of v during the experimental tests, an error ({circumflex over ()}) is calculated such that, for any {tilde over (r)}(t)R.sub.b formed by the data of any D.sub.vcustom character.sub.v, the following applies:
|v(t){circumflex over (v)}(t)|=|v(t){circumflex over ()}({tilde over (r)}(t))|({circumflex over ()})(10)

(41) In fact, from Eq. (8), we have:
|v(t){circumflex over (v)}(t)|=|.sub.0(r(t)){circumflex over ()}({tilde over (r)}(t))||.sub.0(r(t)).sub.0({tilde over (r)}(t))|+|.sub.0({tilde over (r)}(t)){circumflex over ()}({tilde over (r)}(t))|(11)

(42) Moreover, the limit |u.sub.i.sub.i| implies that:
r(t){tilde over (r)}(t).sub.(12)

(43) Consequently, from Eqs. (8) and (12), it follows that
|.sub.0(r(t)).sub.0({tilde over (r)}(t))|r(t){tilde over (r)}(t).sub.(13)

(44) Hence from Eqs. (11) and (13) we have
|v(t){circumflex over (v)}(t)|+|.sub.0({tilde over (r)}(t)){circumflex over ()}({tilde over (r)}(t))|(14)

(45) Consequently, in various embodiments, design of the virtual sensor 40 is based upon the fact that the function .sub.0 is not known, but it is known that .sub.0custom character() and is such that
|{tilde over (v)}(t).sub.0({tilde over (r)}(t))||{tilde over (v)}(t).sub.0(r(t))|+|.sub.0(r(t)).sub.0({tilde over (r)}(t))|+{tilde over (r)}(t)R.sub.b(15)

(46) For instance, FIG. 6 shows an arbitrary measured regressor {tilde over (r)}(t), which for simplicity comprises just one variable u.sub.1, and the respective measured value {tilde over (v)}(t). In general, the measured value {tilde over (v)} has an uncertainty due to the measurement that is limited by , and likewise the measured value for the variable u.sub.1 has a respective limit on the disturbances. Consequently, the overall uncertainty, assuming that the function .sub.0 is a Lipschitz function with constant , is limited by the sum of (uncertainty of measurement of {tilde over (v)}) and (possible variation of the function .sub.0 in the limit on the disturbances of u.sub.1). This uncertainty hence defines the set of values of the function .sub.0 for a given measured regressor {tilde over (r)}(t) and respective measured value {tilde over (v)} of the variable of interest v. As already explained, the function .sub.0 is not known. However, the design step 1006 can exploit the fact that, if the Lipschitz constant is such that the set of functions FFS is not an empty set, from Eq. (15) we have the information that
.sub.0FFS(16)
where FFS={custom character(): |{tilde over (v)}(t.sub.i)({tilde over (r)}(t.sub.i))|+, i=n, . . . , N}.

(47) Consequently, the minimum limit that may be obtained from Eq. (14) for assigned function {circumflex over ()}custom character() is

(48) .Math. v ( t ) - v ^ ( t ) .Math. + sup f FFS .Math. f 0 ( r ~ ( t ) ) - f ^ ( r ~ ( t ) ) .Math. = .Math. * ( f ^ ) , r ~ ( t ) R b ( 17 )
where the function sup yields the supremum.

(49) From Eq. (17) it hence follows that for any function {circumflex over ()}custom character(), the estimate {circumflex over (v)}(t)={circumflex over ()}({tilde over (r)}(t)) presents, for any validation set D.sub.vcustom character.sub.v, errors limited by *({circumflex over ()}) in a robust way, i.e., for all the operating conditions considered in any set D.sub.vcustom character.sub.v, including those due to production spread that lead to disturbances on the measurements u.sub.i falling within the range . As will be described hereinafter, the error *({circumflex over ()}) is hence smaller if also in the data-set D.sub.d data are present that reflect the variability of the range . Consequently, in various embodiments, the data-set D.sub.d is modified by entering therein data of some tests in which the range of the disturbances has been explored.

(50) In various embodiments, in step 1006 a function .sup.() is hence determined such as to minimise for the assigned value of the limit of the estimation error:
*(.sup.())*({circumflex over ()}),{circumflex over ()}custom character()

(51) The function .sup.() is determined as described in what follows, on the basis of the set-membership theory, as described, for example, in the paper by Milanese, M., Novara, C., Set membership identification of nonlinear systems, Automatica, 40, pp. 957-975, 2004.

(52) In particular, in various embodiments, a maximum value (r(t)) is determined for the variable v as a function of the regressor currently measured {tilde over (r)}(t):
(r(t))=min.sub.i=n, . . . ,N({tilde over (v)}(t.sub.i)+++r(t){tilde over (r)}(t.sub.i).sub.)(18)

(53) Likewise, a minimum value (r(t)) is obtained for the variable v as a function of the regressor currently measured {tilde over (r)}(t):
(r(t))=max.sub.i=n, . . . ,N({tilde over (v)}(t.sub.i)r(t){tilde over (r)}(t.sub.i).sub.)(19)

(54) FIG. 7 shows in this context an example in which just a single available variable .sub.1 is considered and n=1, i.e., {tilde over (r)}(t.sub.i)=[.sub.1(t.sub.it)]. In this figure, two data are shown, which correspond, respectively, to the measured values {tilde over (r)}(t.sub.1), {tilde over (r)}(t.sub.2) and to the measured values {tilde over (v)}(t.sub.1), {tilde over (v)}(t.sub.2) of the variable of interest v, and the functions and are calculated according to Eqs. (18) and (19).

(55) In various embodiments, the virtual sensor 40, in particular the processing unit 400, is configured for estimating the value v*(t) as the mean value between the maximum value (r(t)) and the minimum value (r(t)), i.e., by computing the value v*(t) with the following function .sup.{tilde over (r)}(t)R.sub.b (see also FIG. 7):
v*(t)=.sup.(r(t))=[(r(t))+(r(t))]/2(20)

(56) Consequently, the maximum error * of the function .sup. is limited to
*(.sup.)=[(r(t))+(r(t))]/2+,r(t)R.sub.b(21)

(57) The function .sup. is a function of the Lipschitz constant and of the memory n of the estimator, the dependence of which will be expressed only if necessary and which must be chosen in such a way that the set FFS is not empty. For instance, a condition that is necessary and sufficient for this set not to be empty is the following:
(r(t.sub.i))>{tilde over (v)}(t.sub.i),i=n,n+1, . . . ,N1(22)

(58) In various embodiments, in step 1006 the virtual sensor 40 is designed with a given n, and the minimum Lipschitz constant *(n) that satisfies Eq. (22) is calculated as follows:
*(n)=min.sub.:(r(t.sub.i.sub.))>{tilde over (v)}(t.sub.i.sub.),i=n,n+1, . . . ,N1(23)

(59) Hence, each pair of values n, *(n) is such that FFS is not empty.

(60) In various embodiments, the previous step 1006 is then repeated for other values of n in such a way as to choose a value n* such that:
n*=arg min.sub.n*(.sup.(*(n)))(24)
where the error * can be calculated in step 1008 in accordance with Eq. (21), as follows:
*(.sup.(*,n))=sup.sub.rR.sub.b((r)(r))/2+*(n)(25)

(61) In various embodiments, there are hence chosen n=n* and =* that enable calculation of the function *=.sup.(*, n*), which yields a robustly optimal estimator, i.e., one such that *(*) is the minimum estimation error that can be guaranteed for any validation data-set D.sub.vcustom character.sub.v.

(62) Calculation of Eq. (23) is quite easy, whereas calculation of Eq. (25) is more complex, and it is substantially possible to use the method described in the paper by Milanese, M., Novara, C., Computation of local radius of information in SM-IBC identification of non-linear systems, J. Complexity 23, pp. 937-951, 2007.

(63) FIG. 8 shows in this context an embodiment of a virtual sensor 40. In the embodiment considered, the virtual sensor 40 comprises a processing unit 400, such as a microprocessor programmed with a computer program or a digital circuit, and one or more memories 402. As explained previously, the virtual sensor 40 may be implemented, for example, within the control unit 20 or on a separate electronic circuit.

(64) In various embodiments, in step 1012 the following data are stored in the memory 402: the measured data in the design data-set D.sub.d; the Lipschitz constant ; data that identify the term +, for example directly the limit on the errors of the method of measurement of the variable v and the limit on the disturbances of the data of the variables u.sub.i.

(65) Moreover, in various embodiments, the virtual sensor 40 is configured for receiving the current regressor (t) and computing the maximum value (r(t)) and the minimum value (r(t)) for the current regressor {tilde over (r)}(t), as illustrated in Eqs. (18) and (19).

(66) Consequently, in various embodiments, the estimator * depends upon the experimental data included in the design data-set D.sub.d, upon , , , and upon the memory n of the estimator. In general, the memory n of the estimator may even be a vector; i.e., each available variable .sub.i could have a respective memory n.sub.i. In this case, the step 1006 could hence be repeated for various combinations of values n.sub.i, once again choosing in step 1008 the combination that presents the minimum error, as shown in Eq. (25).

(67) In various embodiments, the limit on the errors of the method of measurement of the variable v can be chosen from the data of accuracy of the instrument for measuring v used during the experimental tests, and the limit can be derived from the information on the perturbations of the measurements .sub.i resulting from process spread involved in (mass) production of the actuator 10, for example of the engine, and from the different operating conditions of the actuator 10. In general, the limit may even be a vector; i.e., each available variable .sub.i could have a respective limit .sub.i. However, one or more available variables .sub.i can be normalized in such a way as to use the same limit .

(68) As explained previously, in various embodiments, the design data-set D.sub.d is modified in such a way as to reflect the limit on the errors of the method of measurement of the variable v and/or the limit on the disturbances of the data of the variables u.sub.i.

(69) For instance, as illustrated in FIG. 9, in various embodiments, one or more data P.sub.V, i.e., combinations {.sub.1(t.sub.i), .sub.2(t.sub.i), . . . , .sub.m(t.sub.i), {tilde over (v)}(t.sub.i)}, are added to the data-set D.sub.d that normally contains only measured data P.sub.M. In particular, these added points P.sub.V are chosen so as to reflect the limit on the errors of the method of measurement of the variable v and/or the limit on the disturbances of the data of the variables u.sub.i. For instance, in various embodiments one or more data P.sub.V are added within the area delimited by the limits and with respect to a measured point P.sub.M, thus emulating the tolerances of measurement and/or production, etc. For instance, in FIG. 9 two data P.sub.V1 and P.sub.V2 are added.

(70) For example, in various embodiments, four additional data are added for each measured datum P.sub.Mi={tilde over (r)}(t.sub.i), {tilde over (v)}(t.sub.i)] in the data-set D.sub.d; namely,
P.sub.Vi1=[{tilde over (r)}(t.sub.i)+,{tilde over (v)}(t.sub.i)+]
P.sub.Vi2=[{tilde over (r)}(t.sub.i)+,{tilde over (v)}(t.sub.i)]
P.sub.Vi3=[{tilde over (r)}(t.sub.i),{tilde over (v)}(t.sub.i)+]
P.sub.Vi4=[{tilde over (r)}(t.sub.i),{tilde over (v)}(t.sub.i)]

(71) The above additional data P.sub.V are subsequently considered as measured data P.sub.M, i.e., the subsequent design step 1004 treats indistinctly the measured data P.sub.M and the additional data P.sub.V in the data-set D.sub.d.

(72) In this way, the estimator takes into account the fact that there may be data with equal errors , thus improving the characteristics of robustness of the estimator.

(73) The virtual sensor 40 that directly implements the set-membership solution *(*, n*) described previously is a robustly optimal solution, which, however, could require computing times and occupation of memory that are not compatible with the performance of the hardware platform on which it has to operate in real time.

(74) In various embodiments, the optional step 1010 thus provides a procedure that enables an approximation .sub.a of * to be obtained, evaluating balancing between degradation of the accuracy of the estimate and reduction of the computing times and of occupation of memory.

(75) For instance, in various embodiments, an approximating function .sub.a is sought such that

(76) .Math. f * ( r ~ ( t i ) ) - f a ( r ~ ( t i ) ) .Math. .Math. f * ( r ~ ( t i ) ) .Math. , i = n + 1 , .Math. , N ( 26 )
where {tilde over (r)}(t.sub.i) are the values of the regressors obtained from the measured data in the data-sets D.sub.d, and is an assigned level of precision.

(77) In various embodiments, the approximating function .sub.a is chosen of the form:
.sub.a(r)=.sub.i=1.sup.M.sup.sa.sub.i.sub.i(r)(27)
where .sub.i(r) are assigned continuous Lipschitz functions of r, in a high number to enable approximation of vast classes of functions, such as polynomials, sinusoidal functions, exponentials, etc.

(78) In particular, Eqs. (26) and (27) differ from those of the prior art, since the approximated function .sub.a(r) is not calculated as a function of the measured values {tilde over (v)}(t.sub.i), but the corresponding estimate *({tilde over (r)}(t.sub.i)) is used, which hence takes into consideration also the limit on the errors of the method of measurement of the variable v and the limit on the disturbances of the data of the variables u.sub.i.

(79) FIG. 10 shows an embodiment that enables further improvement of the result of the approximation. In particular, in the embodiment considered, the function .sub.a(r) is estimated not only using in Eq. (26) the measured regressors {tilde over (r)}(t.sub.i), i=n+1, . . . , N, but also adding further regressors {tilde over (r)}.sub.v(t.sub.i), which hence increase the number of points used for estimation of the function .sub.a (r).

(80) In various embodiments, in order to prevent phenomena of overfitting, approximated functions .sub.a are sought with the minimum number of a.sub.i0 that will in any case guarantee the assigned level of precision to be achieved. This problem is in general an NP-hard problem, so that typically its solution cannot be obtained in computing times that are acceptable for the problems considered in this description. However, it is possible to use approximate solutions proposed in the literature that are such as to lead to a number of elements a.sub.i0, which, even though it is not equal to the minimum number that guarantees the assigned level of precision to be achieved, is in general much smaller than M.sub.S; see, for example, the paper by Novara C., Fagiano L., Milanese M., Sparse Set Membership Identification of Nonlinear Functions, 50th IEEE Conference on Decision and Control, Orlando, 2011, and the references appearing therein.

(81) For instance, in various embodiments, a two-step convex optimisation is used.

(82) We define:

(83) a = [ a 1 , a 2 , .Math. , a M s ] = [ 1 ( r ~ ( t n + 1 ) .Math. [ M s ( r ~ ( t n + 1 ) ] .Math. .Math. [ 1 ( r ~ ( t N ) ] .Math. [ M s ( r ~ ( t N ) ] ] V = [ v ~ ( t n + 1 ) .Math. v ~ ( t N ) ] z ( a ) = { i 1 , .Math. , i j : 0 < .Math. a i 1 1 .Math. .Math. .Math. a ij 1 .Math. } z.sub.(a): subset of z(a)={1, 2, . . . , k} card(r(a)): number of elements of r(a) supp(a)={i{1, 2, . . . , M.sub.S}: a.sub.i=0}

(84) In various embodiments, the following optimisation problem is first solved for the initial vector a.sup.1:

(85) a 1 = arg min a R M s .Math. a .Math. 1
setting the following constraint:

(86) max i = n + 1 , .Math. , N .Math. f * ( r ~ ( t i ) ) - f a ( r ~ ( t i ) ) .Math. .Math. f * ( r ~ ( t i ) ) .Math.

(87) In the first step, the vector a.sup.1 is thus obtained by solving a convex-optimisation problem, which in general yields a large number of coefficients a.sub.i.sup.1=0, even though it is not guaranteed that this number is the maximum one possible.

(88) In various embodiments, the optimal vector a* is then calculated with the following optimisation algorithm:

(89) TABLE-US-00002 for k = 1: card(r(a.sup.1)) c.sup.k = arg min.sub.aR.sub.M max.sub.i=n+1,...,N|f*({tilde over (r)}(t.sub.i)) f.sub.a({tilde over (r)}(t.sub.i))| with constraint a.sub.i = 0, i supp(a.sup.1) r.sub.(a.sup.1), = {1,2, ... , k) f.sup.k({tilde over (r)}) = .sub.k=1.sup.M.sup.s c.sub.k.sub.k ({tilde over (r)}) if max i = n + 1 , .Math. , N .Math. f * ( r ~ ( t i ) ) - f k ( r ~ ( t i ) ) .Math. .Math. f * ( r ~ ( t i ) ) .Math. a* = c.sup.k break end end

(90) Consequently, in the second step only a part of the elements of a.sup.1 are progressively included in the vector a* as long as Eq. (26) applies. In this way, it is possible to obtain a vector a* the nonzero elements of which are typically in a number m*, which is considerably smaller than that of the initial solution a.sup.1. Consequently, the function .sub.a*(r)=.sub.i=1.sup.m a.sub.i*.sub.i(r) yields estimates that differ in the level chosen from the estimate provided by the optimally robust estimator *, with computing times and occupation of memory that may be significantly lower.

(91) FIG. 11 shows in this context a first embodiment of a virtual sensor 40a that is able to estimate the NO.sub.x emission of an engine. For instance, during design of the virtual sensor 40a the inputs listed previously have been used, namely, the variables .sub.1, . . . .sub.12. For instance, the respective design data-set D.sub.d may be obtained with NEDC, WLTP, FTP and Artemis dynamic homologation tests with engine hot and engine cold, with stationary tests, and with real-drive tests, acquired with a respective sampling period, for example, t=1 s.

(92) In various embodiments, the input variables have been modified in such a way as to simulate not only the different operating conditions but also the process spread involved in mass-production of the engine. For instance, in various embodiments, the inputs concerned by the aforesaid perturbations used as inputs of the virtual sensor 40 are .sub.3 (engine torque with a perturbation of 5%), .sub.6 (temperature in the intake manifold with a perturbation of 3 C.), and .sub.7 (pressure in the intake manifold with a perturbation of 40 mbar).

(93) In the embodiment considered, the number of experimental data that constitute the design data-set D.sub.d is N=10.sup.5.

(94) Using the design process described previously for implementation on a 32-bit board with a clock frequency of 120 MHz, the estimator * obtained with the set-membership procedure requires an occupation of memory of 5 MB and a computing time necessary for estimation of v*, at each sampling period t=1 s, of 780 ms.

(95) Instead, to obtain an estimation function .sub.a that approximates * by evaluating balancing between precision , computing times, and occupation of memory, in step 1010 an approximating function has been chosen as in Eq. (27) with a number of polynomial base functions M.sub.S=N. In fact, the smaller the value of , the more closely .sub.a approximates *, but also the occupation of memory and the computing time increase, since the number m* of bases used increases. Choosing, for example, =0.05 a function .sub.a with m*=10.sup.3 has been obtained, which, on the board considered, requires an occupation of memory of 15 KB, and a computing time of 6 ms.

(96) FIG. 13 shows a second embodiment of a virtual sensor 40b that is able to estimate the emission of an engine (for example, NO.sub.x), where, in addition to the variables .sub.1, . . . .sub.12, two further available variables .sub.13 and .sub.14 are also considered, which correspond to the pressure p and to the temperature T in the combustion chamber. The design data-set D.sub.d used for designing the virtual sensor 40 hence comprises measurements also for these variables .sub.13=p and .sub.14=T. However, physical sensors for detecting the temperature and pressure in the combustion chamber are costly, and their precision deteriorates rapidly on account of the conditions in which they operate.

(97) FIG. 14 shows a third embodiment of a virtual sensor 40c that is able to estimate the emission of an engine (for example, NO.sub.x).

(98) In particular, to overcome technological problems of physical sensors for detecting the temperature and pressure in the combustion chamber, the physical sensor for detecting the temperature in the combustion chamber and/or the physical sensor for detecting the pressure in the combustion chamber have/has been replaced with virtual sensors 40d and 40e. Consequently, in various embodiments, the virtual sensor 40c may in actual fact comprise three virtual sensors: a first virtual sensor 40d designed to estimate temperature {circumflex over (T)} in the combustion chamber; a second virtual sensor 40e designed to estimate the pressure {circumflex over (p)} in the combustion chamber; and a third virtual sensor 40b designed to estimate the engine emission (for example, NO.sub.x), which receives all the variables .sub.1, . . . .sub.14, i.e., also the available variables .sub.13 and .sub.14, which correspond, however, to the estimates {circumflex over (T)} and {circumflex over (p)} of the temperature and of the pressure in the combustion chamber.

(99) In various embodiments, the virtual sensors 40a, 40b, 40d, and/or 40 can be designed following the process described previously, i.e., on the basis of the set-membership procedure and possibly its consequent approximation.

(100) It may be noted that the estimators 40d and 40e use as inputs variables that are in any case available in real time. In fact, in general, also the sensors 40d and 40e can be designed as a function of the available variables .sub.1, . . . .sub.12. For instance, in various embodiments, the virtual sensor 40d that is able to estimate the temperature {circumflex over (T)} in the combustion chamber is designed only as a function of the variables .sub.2 (engine r.p.m.), .sub.3 (engine torque), and .sub.4 (percentage opening of the EGR valve). Instead, in various embodiments, the virtual sensor 40e that is able to estimate the pressure {circumflex over (p)} in the combustion chamber is designed only as a function of the variables .sub.1 (fuel demand), .sub.2 (engine r.p.m.), and .sub.7 (pressure in the intake manifold).

(101) Hence, in the embodiment considered, the entire virtual sensor 40c (FIG. 14) uses as inputs u.sub.i those of the virtual sensor 40a (FIG. 12), but as compared to the latter enables higher levels of precision to be achieved comparable with those of the virtual sensor 40b (FIG. 13). This is justified by the fact that, for the step of design of the virtual sensors 40b and 40d/40e, measurements of pressure/temperature in the combustion chamber (as available variable and as variable of interest, respectively) are used, which are not, instead, used in the design of the single-stage virtual sensor 40a. Consequently, in this solution the information content of the design data-set is greater than the information content of the data-set used for the single-stage design, thus enabling improvement of the estimation performance.

(102) Various embodiments of the present disclosure hence regard a virtual sensor 40 (for example, the virtual sensor 40c) configured for estimating a variable of interest v and comprising: a first virtual sensor (for example, the virtual sensor 40b) configured for estimating the variable of interest v, where the first virtual sensor is designed according to the process described herein using a design data-set comprising measured values {tilde over (v)}(t) of the variable of interest and corresponding measured values .sub.i of a given set of available variables u.sub.i, at least one second virtual sensor (for example, the virtual sensors 40d and/or 40e) configured for estimating a second variable of interest, where the second variable of interest corresponds to one of the available variables u.sub.i used by the first virtual sensor, and where the second virtual sensor is designed according to the process described herein using a second design data-set comprising measured values of the second variable of interest and corresponding measured values .sub.i of a given second set of available variables u.sub.i.

(103) In particular, in various embodiments, the first and second virtual sensors use at least in part the same available variables u.sub.i.

(104) Moreover, it would also be possible to design the second virtual sensor first and use, for design of the first virtual sensor, values already estimated with the second virtual sensor.

(105) Of course, without prejudice to the principle of the invention, the details of construction and the embodiments may vary widely with respect to what has been described and illustrated herein purely by way of example, without thereby departing from the scope of the present invention, as defined by the ensuing claims.