Calibration of Engine Control Unit
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- SECONDMIND LTD
- Filing Date
- 2023-05-22
- Publication Date
- 2026-05-29
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to calibration of an engine control unit (ECU). The present disclosure relates in particular, but not exclusively, to calibration of an ECU for an internal combustion engine.
Background Art
[0002] An engine control unit (ECU) is a ubiquitous component in modern vehicle engines. The ECU controls the value of one or more adjustable parameters associated with the operation of the engine in response to the value of one or more context variables derivable from driver input and / or environmental input.
[0003] The ECU typically stores data that indicates a mapping from the value of one or more context variables to the value of one or more decision variables, for example in the form of a look-up table, where the decision variables represent engine parameters adjustable by the ECU. The mapping is determined during a calibration process prior to deployment of the ECU and may be updated during the useful life of the engine, for example to modify the performance of the engine or to compensate for other modifications to the vehicle and / or engine. For a given set of values of the context variables, it is desirable for the mapping to produce values that are as close as possible to optimal for certain performance characteristics (such as torque), while other performance characteristics (such as cylinder pressure) ensure the safe and long-term operation of the engine. Since the physical phenomena involved are complex and accurate numerical models are not available, ECU calibration is typically performed using empirical data collected in a test bed environment.
[0004] ECU calibration is a very time-consuming and resource-intensive process due to the large parameter space to be explored and the high resource cost of collecting data from the test bed. The number of data points that can be collected in an executable form is relatively small, leading to a high level of uncertainty about the effect of individual parameters on performance characteristics, especially in the early stages of the experiment. Therefore, there is a need for an efficient and principle-based method to guide test bed experiments. Summary of the Invention
[0005] According to a first aspect of the present invention, there is provided a system for calibrating an engine control unit (ECU) for an engine. The system includes a test bed and a data processing system. The test bed includes a plurality of sensors for measuring values of a plurality of performance characteristics of the engine, and a plurality of controllers for adjusting values of a plurality of variables associated with the operation of the engine. The plurality of variables includes one or more context variables having values derivable from operating system inputs and / or environmental inputs when the engine is in use; and one or more decision variables representing parameters of the engine adjustable by the ECU in accordance with the values of the one or more context variables. The data processing system includes means for performing an operation for a plurality of iterations, based on an objective function, of determining a set of locations in an input space, each location in the input space representing a value of each of the plurality of variables. The objective function is arranged to evaluate the output of one or more Gaussian process models for a candidate set of locations in the input space. Each of the one or more Gaussian process models has a respective set of trainable parameters and is arranged to predict a probability distribution for one or more of the plurality of engine performance characteristics for a given location in the input space. A penalty is imposed on the objective function in accordance with the likelihood predicted by one or more of the Gaussian process models that one or more predetermined engine constraints are violated for a given location in the candidate set of locations. The operation further includes obtaining, for a plurality of iterations, using the plurality of sensors and the plurality of controllers, measured values of each of the plurality of engine performance characteristics covering at least a subset of the determined set of locations in the input space; and updating values for respective sets of trainable parameters for each of the one or more Gaussian process models using the obtained measured values of the plurality of engine performance characteristics. The operation further includes generating ECU calibration data for mapping values of the one or more context variables to values of the one or more decision variables using the probability distributions for the plurality of engine performance characteristics predicted by the output of the one or more Gaussian process models.
[0006] Based on the outputs of one or more Gaussian process models, determine locations in the input space at each iteration, and then update the one or more Gaussian process models based on the measurements collected at the determined locations, thereby enabling the system to investigate the parameter space in an efficient and principled manner by leveraging the measurements, which reduces the total number of test bed experiments required to calibrate the ECU. This is highly desirable considering that test bed experiments are time-consuming and resource-intensive. The penalized objective function ensures that regions of the input space where the likelihood of satisfying the engine constraints is higher are preferred, thus enabling more data to be collected at each iteration, and the collected data points are more likely to provide information about relevant regions of the input space where the engine can operate safely.
[0007] The determined set of locations in the input space may include one or more locations. In some examples, the determined set of locations in the input space includes a plurality of locations in the input space having a predetermined configuration relative to each other. For example, by imposing a predetermined relative configuration on the locations based on which variables are most easily adjustable by the test bed controller, the search space dimensionality is effectively the same as when exploring a single location in the input space, which is beneficial for reducing the computational cost and duration of each iteration of the calibration process.
[0008] A pre-determined configuration may include a sweep that traverses a pre-determined range of a first variable among a plurality of variables. The first variable may be, for example, a first context variable having a value that is adjustable by a throttle position when the engine is in use. For a given experimental setup, a context variable that is derivable from (or otherwise adjustable by) the throttle position may be varied rapidly during testing, making it possible to collect hundreds or even thousands of data points in a single iteration. In an example where the first context variable represents volumetric efficiency or injected fuel mass, one or more context variables may include a second context variable that represents engine speed. For a given iteration, the pre-determined relative configuration may prohibit variation of each of the second context variable and / or one or more decision variables. It has been found that sweeping through values of volumetric efficiency or injected fuel mass while fixing the engine speed is a very efficient way to cover the input space.
[0009] For a given iteration, the pre-determined relative configuration may impose a common value of a given variable among the plurality of variables, and the common value of the given variable may be updated between iterations according to a low-discrepancy sequence. In this way, the corresponding dimension of the input space is uniformly covered, which is desirable for an efficient optimization process.
[0010] In an example where the performance characteristics of an engine include torque and the first context variable has a value adjustable by throttle position, the operation may further include a step of trend-removing the measured value of torque in relation to the first context variable. One of the Gaussian process models may be arranged to predict a probability distribution for the trend-removed value of torque. In this way, the dominant variations in torque in relation to context variables such as engine speed, throttle position, or injected fuel mass may be effectively subtracted from the data, thus improving the sensitivity of the Gaussian process model to the fine-scale variations around this trend. Additionally, or alternatively, other engine performance characteristics may be trend-removed as necessary in relation to the first context variable and / or one or more other variables.
[0011] For a given iteration among a plurality of iterations, the step of determining a set of locations within the input space may include the step of determining, for each of one or more decision variables, a respective value based on the objective function, and the respective values are common across the set of locations within the input space. Although it may be necessary / desirable to cover the entire dimension of the context variables within the input space, certain values of the decision variables may occur for a large number of values of the context variables or may not occur at all. For such reasons, it may be preferable to determine promising values of the decision variables based on the output of the Gaussian process model for systematically covering the dimension of the decision variables.
[0012] The obtained measured values of the plurality of engine performance characteristics may include a binary flag indicating whether a given engine constraint is violated for each location of the at least subset. One or more of the Gaussian process models may include a classification model for predicting whether a given engine constraint is violated for a given location within the input space, and a penalty may be imposed on the objective function according to the output of the classification model.
[0013] For a given iteration of a plurality of iterations, the operation may further include, in response to a binary flag indicating that a given engine constraint is violated for a first location of a determined set of locations, generating synthetic data indicating that the given engine constraint is violated for one or more further locations in the input space that cover a portion of the sweep extending beyond the first location. The step of updating the values for the trainable parameter sets may include updating the values for each trainable parameter set of the classification model using the generated synthetic data. The synthetic data can account for the imbalance between the number of positive and negative examples of the binary flag that may otherwise negatively impact the training of the model, while also preventing the output of the classification model from returning to its mean value function within the region where the engine constraint is violated, which would otherwise result in an incorrect (and potentially damaging / hazardous) prediction that the engine constraint is satisfied within such a region.
[0014] The first Gaussian process model of one or more Gaussian process models may include a non-uniform variance likelihood, enabling the model to capture the observation noise levels that vary in different regions of the input space. In this case, the operation may further include obtaining measurements of a plurality of engine performance characteristics for samples of locations in the input space using a plurality of sensors and a plurality of controllers; determining the values for the trainable parameter sets of a second Gaussian process model, thereby fitting the second Gaussian process model to the obtained measurements for the location samples, wherein the second Gaussian process model corresponds to the first Gaussian process model with a uniform variance likelihood instead of a non-uniform variance likelihood; and initializing the values for each trainable parameter set of the first Gaussian process model based on the determined values for the trainable parameter sets of the second Gaussian process model. In this way, a relatively simple second Gaussian process model can be initialized using fewer data points and used to seed a more complex first Gaussian process model.
[0015] For a given iteration of the plurality of iterations, the step of obtaining the measurement of each of the engine performance characteristics that cover at least one subset of the determined set of locations in the input space may include obtaining the measurements of each of the plurality of engine performance characteristics for a plurality of further locations in the input space according to the determined set of locations in the input space. The number of measurements may be many times greater than, for example, the number of determined input locations, providing a fine-grained coverage of the input space without incurring an increase in the computational cost and time associated with each iteration.
[0016] One or more Gaussian process models may include one or more sparse variational Gaussian process models, and each set of trainable parameters of each of the one or more sparse variational Gaussian process models may include variational parameters for each of the one or more sparse variational Gaussian process models. The use of sparse variational Gaussian process models can reduce processing and memory requirements and make it possible to keep the Gaussian process model tractable even when a very large number of data points are collected. Sparse variational Gaussian processes also facilitate the use of non-conjugate likelihoods such as those used for non-uniform dispersion likelihood and classification.
[0017] The engine may be an internal combustion engine and may include a plurality of cylinders. One or more decision variables may then include, for a given engine cylinder of the plurality of engine cylinders, variable intake valve timing, variable exhaust valve timing, and / or exhaust gas recirculation rate.
[0018] According to a second aspect, a method for calibrating an engine ECU is provided. The method includes, for a plurality of iterations: determining a set of locations in an input space based on an objective function, where each location in the input space represents a value of each of a plurality of variables. The plurality of variables includes one or more context variables having values derivable from operating system inputs and / or environmental inputs when the engine is in use, and one or more decision variables representing engine parameters adjustable by the ECU depending on the values of the one or more context variables. The objective function is arranged to evaluate the outputs of one or more Gaussian process models for a set of candidate locations in the input space. Each of the one or more Gaussian process models has a respective set of trainable parameters and is arranged to predict a probability distribution for one or more of a plurality of engine performance characteristics for a given location in the input space. A penalty is imposed on the objective function depending on the likelihood predicted by one or more Gaussian process models that one or more predetermined engine constraints are violated for a given location in the set of candidate locations. The method further includes, for a plurality of iterations: obtaining measurement values for each of a plurality of engine performance characteristics covering at least a subset of the selected set of locations in the input space; and updating values for the respective sets of trainable parameters for each of the one or more Gaussian process models using the obtained measurement values of the plurality of engine performance characteristics. The method further includes generating ECU calibration data for mapping values of one or more context variables to values of one or more decision variables using the probability distributions for the plurality of engine performance characteristics predicted by one or more Gaussian process models.
[0019] According to a third aspect, a computer program product (e.g., one or more non-transitory storage media) is provided that includes instructions that, when executed by a computer, cause the computer to perform the above-described method.
[0020] According to a fourth aspect, a data processing system is provided that includes means for performing the above-described method.
[0021] Further features and advantages of the present invention will become apparent from the following description of the preferred embodiments of the present invention, which are shown by way of example only and made with reference to the accompanying drawings.
Brief Description of the Drawings
[0022]
Figure 1
Figure 2
Figure 3A
Figure 3B
Figure 4
Figure 5
Figure 6
Figure 7
Modes for Carrying Out the Invention
[0023] Details of the system and method according to the embodiments will become apparent from the following description with reference to the figures. In this specification, for the purpose of explanation, many specific details of several embodiments are set forth. References in this specification to "one embodiment" or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment, but not necessarily in other embodiments. Further, it must be noted that some embodiments are described schematically with some features omitted and / or necessarily simplified in order to facilitate the description and understanding of the concepts inherent in the embodiments.
[0024] Embodiments of the present disclosure relate to the calibration of an ECU. Specifically, the embodiments described herein address the issue related to the fact that the ECU calibration resulting from a large parameter space covered by a range of operating conditions considered for an engine, specifically an internal combustion engine, is time-consuming and resource-intensive.
[0025] Figure 1 schematically shows a vehicle 100. The vehicle 100 may be a mass-produced vehicle, a racing car, a truck, a lorry, a motorcycle, a motorboat, a helicopter or any other type of vehicle with an engine. The vehicle 100 includes an engine 102, which is an internal combustion engine in this embodiment, but in other embodiments, the vehicle may include an electric motor instead of or in addition to the internal combustion engine, as in the case of a hybrid vehicle. The vehicle 100 also includes an operating system 104 for controlling some components of the vehicle 100, such as the steering system gearbox and brakes, together with some parameters of the engine 102. The operating system 104 may be a manual operating system configured to receive human input, or an autonomous driving system configured to receive input from an autonomous driving agent. Alternatively, the operating system 104 may be configured to receive a combination of manual input and computer-generated input, for example, in the case of an advanced driver assistance system (ADAS). The operating system 104 may control the parameters of the engine 102 by controlling mechanical actuators and / or electronic circuits.
[0026] The vehicle 100 further includes an ECU 106 for controlling parameters of the engine that are not directly controllable by the operating system 104. Different ECUs may control different parameters of the engine. For example, the ECU 106 may control valve timing according to the injected fuel mass and the engine speed. Alternatively, the ECU 106 may control the injected fuel mass according to the air flow rate and the throttle position, in which case the ECU 106 may be called an electronic engine management system (EEMS). The ECU 106 may be a centralized computing unit, or a distributed system of modules that control respective parameter sets. For example, the ECU of an electric vehicle or a hybrid vehicle may include a module for controlling the charging / discharging of a rechargeable battery and a module for controlling the output distribution between the motor / engine.
[0027] While being controlled by the operation system 104 and / or the ECU 106, the operation of the engine may further be affected by external factors regarding the environment 108 in which the engine 102 operates. In the present disclosure, variables that affect the operation of the engine and cannot be directly controlled by the ECU 106 may sometimes be referred to as context variables. Variables that can be directly controlled by the ECU 106 are called decision variables. The function of the ECU 106 is to determine the values of one or more decision variables based on the values of one or more context variables.
[0028] The context variables may have values derivable from the operation system 104, the environment 108, or a combination of both. Related environmental factors may include, for example, the air temperature, air pressure, and air humidity outside the engine 102. Examples of context variables may include parameters directly derivable from the throttle position that affect the mass of fuel injected into the engine cylinder during a given engine cycle. The injected fuel mass may be a context variable if the control of the fuel line is independent of the ECU 106. Alternatively, the injected fuel mass may be a decision variable controllable by the ECU 106 in response to context variables such as the mass air flow rate, oxygen level, and throttle position. Further examples of context variables may include the engine speed (i.e., rotational speed), volumetric air flow rate, oxygen level, volumetric efficiency, and / or environmental variables, such as the temperature of one or more components of the engine 102 or the air taken in by the engine 102. The vehicle 100 may include a certain number of sensors 110 for measuring the values of various context variables.
[0029] The decision variables may include one or more valve timing parameters for controlling the timing of opening the intake valve and / or exhaust valve of an engine cylinder during an engine cycle. The optimal valve timing may depend on various context variables, including the engine speed, for example, because at relatively high engine speeds, the valve may be opened relatively early in the engine cycle to increase the air flow rate into the cylinder. For an engine with electronic valve control instead of a conventional camshaft, the adjustable parameters may include one or more valve opening parameters for determining the timing and degree of opening and closing the intake valve and / or exhaust valve within one engine cycle. The decision variables may further include parameters for controlling the rate or proportion at which exhaust gas is recirculated back into the cylinder, and / or idle speed parameters for controlling the idle speed of the engine. The idle speed affects the timing functions for fuel injection, spark events, and valve timing, and may be controlled by a programmable throttle stop or an idle air bypass control stepper motor. In the case of a hybrid engine, the adjustable parameters may include output distribution parameters for controlling the output distribution between the internal combustion engine and the electric motor. The list of possible context variables and decision variables is not exhaustive, and the exact combination of context variables and decision variables depends on the design of the engine and the ECU.
[0030] According to the present disclosure, the ECU 106 is calibrated to optimize some engine performance characteristics, such as torque or output, while ensuring that other engine performance characteristics, such as mean effective pressure, maximum gas pressure, and knock level for each cylinder, satisfy constraints to ensure continuous and safe operation of the engine 102. More precisely, the purpose of calibration is to determine the mapping from context variables to decision variables that results in values that are as close as possible to optimal for some performance characteristics while ensuring that other performance characteristics satisfy predetermined inequalities. Combinations of context variables and decision variables that satisfy the predetermined inequalities are called feasible points.
[0031] FIG. 2 shows an example of a system for calibrating or tuning the ECU 106. The system includes a test bed 200, which is a controlled environment for conducting experiments on the engine 202. The engine 202 in this embodiment is of the same model as the engine 102 of FIG. 1. The test bed 200 includes test bed sensors 204 and a test bed controller 206. The test bed sensors 204 are arranged to measure the performance characteristics of the engine 202 and possibly environmental factors that may affect the performance of the engine 202 within the test bed 200. The test bed controller 206 is a device having the ability to control the parameters of the engine 202 that are considered controllable by the operating system or the ECU when the engine 202 is in its original position within the vehicle 102. The test bed controller 206 can further perform at least partial control over environmental factors. It may be possible to precisely control some environmental factors (e.g., by adjusting the experimental conditions until the test bed sensors 204 indicate selected values of the corresponding context variables), while other environmental factors may only be partially controllable. The test bed controller 206 may include mechanical actuators, electronic circuits, computer software / hardware components, etc., having the ability to cooperate to at least approximately determine values for context variables and decision variables that define the input data and output data for the ECU 106, respectively.
[0032] The test bed sensor 204 and the test bed controller 206 may be a single computer device such as a desktop computer, a laptop computer, or a server, or may be coupled directly or indirectly to a data processing system 208 that may be distributed across a number of computing nodes based in different locations, for example. The data processing system 208 includes one or more processors and one or more non-transitory storage media that hold machine-readable instructions or programs that, when executed by the one or more processors, cause the data processing system 208 to conduct experiments on the test bed 200 and collect data that reveals how the performance characteristics measured by the test bed sensor 204 are affected by the values of context variables and decision variables as set by the test bed controller 206. When a sufficient amount of such data has been collected, the data processing system 208 can generate ECU calibration data for calibrating the ECU 106. The ECU calibration data represents a mapping of the values of context variables to the values of decision variables, for example, in the form of a look-up table or other type of data structure. The ECU 106 may be configured to use the look-up table directly to map context variables to decision variables (e.g., by selecting the closest entry in the look-up table for a given value of a context variable), or may be configured to interpolate between the values of context variables and / or decision variables to determine a mapping for any acceptable set of values of context variables.
[0033] To induce an experiment on the test bed 200, the data processing system 208 includes a number of functional components, any of which may be implemented in hardware, software, or a combination thereof. Specifically, the data processing system 208 is configured to train one or more Gaussian process (GP) models to predict the dependence of the performance characteristics of the engine 202 on the context variables and decision variables based on the measurements of the engine performance characteristics obtained from the test bed sensors 204. The values of the context variables, decision variables, and / or engine performance characteristics may be preprocessed, combined, or otherwise adjusted before being processed by the model training component. For example, as will be described in more detail below, it may be desirable to normalize at least some of the variables and / or remove trends from some of the engine performance characteristics, such as torque, in relation to a dominant context variable, such as throttle position.
[0034] Each of the one or more GP models may have a number of trainable parameters, and the purpose of training the GP model is to determine the values of the trainable parameters for which the GP model best predicts the values of the performance characteristics for a given set of values of the context variables and decision variables (as defined, for example, using maximum likelihood estimation or maximum inductive estimation). The GP model provides a powerful and flexible means of inferring statistical information from empirical data and is particularly well-suited to situations where the data is sparse and / or the acquisition cost is high, which is typical in the case of test bed experiments on engines.
[0035] Each of the one or more GP models may have one or more outputs corresponding to one or more performance characteristics of the engine. In some embodiments, the one or more GP models each include an ensemble of a number of GP models that are responsible for predicting the values of one or more respective performance characteristics. For example, there may be 10, 20, 50, or 100 independent GP models, each of which may be a single-output GP model for predicting the value of a single performance characteristic. In other embodiments, a single multi-output GP model is responsible for predicting the values of all performance characteristics. In still further embodiments, the ensemble of GP models includes single-output GP models for predicting the values of some performance characteristics and multi-output GP models for predicting the values of other performance characteristics. For example, some performance characteristics may correspond to common attributes except for different cylinders of engine 202 and may thus be expected to exhibit a high degree of correlation. At this time, a multi-output GP model may be used to predict the values of these performance characteristics for the purpose of effectively capturing the correlation. The nature of the various outputs of the one or more GP models may depend on the nature of the performance characteristics that the outputs are configured to predict. For example, some performance characteristics may take a binary engine constraint form, in which case the corresponding output may be a binary classification output. Other performance characteristics may take continuous values, in which case the corresponding output is a regression output.
[0036] For each GP model, the measured value of one or more of the engine performance characteristics for a given input x (having dimensions corresponding to the context variables and decision variables) is collected within an output y (which may be a scalar quantity or a vector quantity). The output y is assumed to be related to the component GP f(x), where f ~ GP(μ, K θ) It is so. The prior distribution of GP is influenced by the kernel \(K_{\theta}(x, x')\) parameterized by the hyperparameter set \(\theta\) and the mean function \(\mu(x)\) which may be equal to zero at every point in some cases. The relationship between the measured output \(y\) and \(GP_{f}(x)\) is given by the observation model or likelihood. As will be explained in more detail below, several GP models may be used for binary classification, in which case an example of an appropriate likelihood is the Bernoulli likelihood provided by Equation (1):
Number
Number
Number
[0037] To model continuous variables, other GP models may be used, in which case an example of an appropriate observation model or likelihood is that the output \(y\) is, for the (unknown) noise variable \(\epsilon\) 2 for \(y|x\sim N(f(x),\epsilon\) 2) is a noise model that assumes that the observations of the GP are corrupted by Gaussian noise such that [the following holds]. An example of a different observation model is to use the Student's t-distribution instead of Gaussian noise, which may be highly suitable for handling outliers. However, the inventors have observed that at least some of the performance characteristics measured during ECU calibration do not receive constant noise across the input space, which means that the standard likelihood model described above may not be suitable for modeling such performance characteristics. To account for this observed fact, an alternative model may be used where the function g(x) of the auxiliary GP, for example the standard deviation of the noise at a given input location x as an exponential function of the auxiliary GP, is modeled, thereby ensuring that the standard deviation is not negative. The resulting non-uniform variance likelihood model is given by equation (2): [Number] Here again, the Gaussian noise distribution may be replaced with a different distribution such as the Student's t-distribution. Figure 3A shows data points representing measured values of the performance characteristic y of a single-model engine at different values of the input variable x. The solid curve shows the mean function of the prediction model for the performance characteristic y based on the chained GPs f(x), g(x), and the dashed curves show one standard deviation above and below the mean, respectively. It is observed that the standard deviation is larger at more extreme values of the input variable, which corresponds to a higher noise level in these regions of the input space. A similar behavior is observed in an actual engine, but the regions of higher noise may occur in the unforecastable regions of the input space. The solid curve in Figure 3B shows the mean functions f(x), g(x) of the GP as indicated, and the dashed curves show the standard deviations above and below the mean.
[0038] At least some of the GP models may be implemented using sparse variational GP, such that the GP model has a variational distribution determined by a set of trainable parameters where the induced outputs are the trainable parameters of the GP model, and is thus fully determined by the set of induced outputs at the set of induced input locations (alternatively, based on a set of inter-domain induced features). The GP model may use a common set of induced input locations, but this is not essential. The induced input locations may be selected to correspond to regions in the input space where the collected data is expected to provide the most information, depending, for example, on where the data points were collected, or alternatively, the induced input locations may be treated as trainable parameters of the GP model. The number of induced input locations (e.g., hundreds or thousands) may be much less than the number of data points (e.g., ten thousand or one hundred thousand or one million), thereby consistently reducing the processing requirements and memory footprint and enabling the GP model to remain tractable even when a very large number of data points are collected. Sparse variational GP also facilitates the use of the Bernoulli likelihood of Equation (1) and the uniform variance likelihood of Equation (2), which are not compatible with conventional GP regression implementations.
[0039] In the sparse variational GP implementation, the posterior GP p(f|Y) conditioned on the data is approximated by a tractable variational GP q(f) corresponding to an under-evaluated posterior GP conditioned on the induced outputs. The values of the hyperparameters, variational parameters, and trainable parameters of the GP, including optionally the induced input locations, are iteratively updated to determine the maximum a posteriori estimates that can be shown to minimize the Kullback-Leibler divergence between the variational GP and the true posterior GP.
[0040] Returning to FIG. 2, the data processing system 208 includes an input selection component 212 arranged to determine a location within an input space having dimensions corresponding to respective different context variables and decision variables. The input selection component 212 has the task of selecting an input location that balances exploration (for learning about the effects of parameters / variables throughout the parameter / variable space) and exploitation (focusing on combinations of parameter / variable values that are likely to produce favorable performance while also complying with constraints). The number of data points that can be collected in executable form is relatively small, and in particular, the level of uncertainty about the effects of individual parameters on performance characteristics is high, especially in the early stages of the experiment. According to the present disclosure, the input selection component 212 is arranged to determine the input location using Bayesian optimization based on an objective function that evaluates the output of the GP model in a set of candidate locations within the input space.
[0041] The objective function may take the form of an acquisition function such as, for example, an upper confidence bound, a maximum improvement probability, an expected improvement, or an extended expected improvement. The purpose of the objective function is to evaluate the output of the GP model in a way that addresses the so-called exploration / exploitation dilemma and enables an ECU mapping that is close to optimal to be efficiently determined. As will be described in more detail below, the objective function imposes a penalty on at least a subset of a given set of locations within the input space depending on the likelihood predicted by the GP model that one or more engine constraints are violated.
[0042] The input selection component 212 may be configured to determine a set of locations having a predetermined configuration in relation to each other within the input space. For example, only a set of candidate locations where the locations have a defined relationship with each other (although the absolute locations vary between candidate sets) may be considered. By imposing a predetermined relative configuration on the locations, the dimensionality of the search space is effectively the same as when searching for a single location within the input space, which is beneficial for reducing the computational cost and duration of each iteration of Bayesian optimization.
[0043] By selecting a favorable relative configuration of the input locations, the efficiency of the overall calibration process may be further improved. Specifically, some context variables and / or decision variables may be freely and quickly adjustable by the test bed controller 206 while measurements are being made on the engine 202, while others may not be as easily adjustable. For example, some variables that are adjustable by operating system inputs such as throttle position when the engine 202 is in use may be easily adjustable by the test bed controller 206. Thus, the input selection component 212 may be arranged to determine an input location set that traverses a predetermined range of one or more of these variables while keeping the values of other variables fixed, for example. Variables that are varied within a given input location set may be referred to as local variables. Variables that are fixed within a given input location set may be referred to as global variables. When determining which variables to treat as local variables, the values of some parameters can be varied relatively quickly during testing without sacrificing the usefulness of the measurements, while other parameters may have to be varied more slowly because rapid variations in such parameters may place the engine in a transient regime where it cannot obtain useful measurement values.
[0044] By fixing the values of some global variables while sweeping through one or more local variables, measurement values can be obtained for a given set of input locations in a relatively short period of time. For the distributed server-based implementation of the data processing system 208, in an efficient implementation of the GP model as discussed in more detail below, it may take several minutes, e.g., 5 minutes, 10 minutes, 20 minutes, or 30 minutes, to determine each set of input locations. To achieve an efficient calibration of the ECU 106, it is desirable to shorten the total computation time of the data processing system 208 and, similarly, the total time taken to perform the tests. By sweeping through one or more local variables, the time taken per measurement can be shortened, and more data can be collected per iteration of the Bayesian optimization, potentially reducing the number of required iterations and thus shortening the total time taken to calibrate the ECU 106.
[0045] The data processing system 208 includes a calibration component 214 arranged to generate ECU calibration data based on values of engine performance characteristics predicted by a trained GP model. For a given combination of context variables, the calibration component 214 may be arranged to numerically solve an optimization problem to determine the values of the decision variables that the GP model predicts will maximize a given performance characteristic (such as torque), while also having a high probability of satisfying a given set of engine constraints. The mapping obtained as a result from the context variables to the decision variables may then be stored, for example, in the format of a look-up table, and the ECU 106 can read and / or interpolate this look-up table to determine a set of decision variables for any allowable set of context variables.
[0046] FIG. 4 shows an example of an engine operating variable set 402 and a performance characteristic set 404 associated with an engine, which are to be calibrated using the system of FIG. 2. The engine operating variables 402 include, in this embodiment, two context variables 406 and three decision variables 408. In this embodiment, the context variables 406 are the engine speed 410 and the injected fuel mass 412. In other embodiments, the injected fuel mass 412 may be replaced by volumetric efficiency. When the engine is in its original position in the vehicle, the injected fuel mass 412 (or volumetric efficiency) is adjustable based on the throttle position. In one embodiment, the test bed controller 206 may perform independent control over the engine speed 410 and the injected fuel mass 412. In this case, it may be efficient to treat the injected fuel mass 412 as a local variable and the engine speed 410 as a global variable, and thus test an input space location set that sweeps over the value of the injected fuel mass 412 while keeping the engine speed 410 constant. It may be possible to sweep over hundreds or thousands of different values of the injected fuel mass 412 within just a few minutes at a fixed value of the engine speed 410, resulting in hundreds or thousands of data points for use in calibrating the ECU.
[0047] The decision variables 404 in this embodiment include the intake valve timing 414, the exhaust valve timing 416, and the exhaust gas recirculation rate 418. The variables may be expressed, for example, as phase angles in relation to a fixed point within the engine cycle. The engine may include a number of cylinders (e.g., four cylinders), and although these variables may be defined for each cylinder of the engine, it may be sufficient to determine only the value of the decision variables 404 for the first cylinder of the engine, and the values for the remaining cylinders are fixed in relation to the value of the first cylinder. The decision variables may be treated as global variables, and thus the values of the decision variables will be kept constant for a given input location set (although this is not essential).
[0048] In the embodiments discussed above, for a set of locations within the input space, while a sweep across one local context variable is involved while keeping other variables constant, in other embodiments, the set of locations may include orthogonal sweeps across two or more local variables (thus covering a rectangle or hyper-rectangle within the local variable space), or may include a single sweep in which two or more local variables are varied according to a pre-determined relationship (e.g., a linear relationship or any other suitable relationship). It is recognized that the appropriate configuration for a set of locations within the input space may depend on the type of engine and the capabilities of the test bed.
[0049] For embodiments in which the values of one or more context variables and / or decision variables are treated as global variables, the values of at least some of these global variables may be determined as the output of a Bayesian optimization procedure, while other global variables may be determined according to the output of a random number, pseudo-random number, or quasi-random number generator, or according to another pre-determined sequence. The random numbers may be generated by a hardware random number generator. Alternatively, a pseudo-random number generator or a deterministic random bit generator (DRBG) may be used to generate a sequence of numbers that is completely determined by an initial seed value that approximates a sequence of true random numbers. A quasi-random number generator is similar to a pseudo-random number generator, but generates a low-discrepancy sequence of numbers in which the proportion of terms within a sub-interval is approximately proportional to the length of the sub-interval, in other words this sequence approximates a sequence that is equidistributed or uniformly distributed. For the present disclosure, a quasi-random number generator can be used to generate values of variables that uniformly cover a given dimension of the input space in an uncorrelated form, which is desirable for an efficient optimization procedure. An example of a low-discrepancy sequence on which a quasi-random number generator can be based is a Halton sequence.
[0050] Figure 5 shows an example of three sets of locations in the input space corresponding to two-dimensional context variables A and B and a single decision variable C. In this example, context variable A is treated as a local variable, while context variables B and decision variable C are treated as global variables. The value of context variable B is determined by iterating over a Halton sequence (scaled to match the range of context variable B), and the first three iterations define planes 502, 504, and 506, respectively. For each of the planes 502, 504, 506, the set of candidate locations is constrained to have a fixed value of the global decision variable C while sweeping across the entire range of the local context variable A. Bayesian optimization is used to determine the value of the global decision variable C based on the output of a Gaussian process model evaluated over the entire range of the local context variable A. The first three sets of locations 512, 514, 516 are shown. In this example, the Bayesian optimization procedure is used only to determine the value of a single decision variable, but in reality, Bayesian optimization can be used to determine the values of multiple context variables and / or decision variables, thereby posing a problem of multi-dimensional optimization.
[0051] Returning to FIG. 4, the set of performance characteristics 404 includes the torque 418 generated by the engine, along with one or more cylinder characteristics 420 evaluated for each cylinder of the engine (e.g., each of the four cylinders in the case of a four-cylinder engine). The cylinder characteristics 420 may include, for example, mean effective pressure, maximum gas pressure, and knock level. The cylinder characteristics 420 are primarily related to determining whether several engine constraints are satisfied.
[0052] Performance characteristics can similarly include one or more binary constraints 422, which can either be satisfied or not (i.e., violated). The binary constraints 422 may indicate whether safety criteria, noise criteria, emissions criteria, etc. are satisfied. The binary constraints 422 may include difficult constraints, in which case, if the binary constraint is violated at a given input location, it may be necessary to immediately stop the sweep across the values of the engine operating parameters. Examples of difficult constraints include indications that the engine may be damaged or destroyed if its operation continues under current conditions. The binary constraints 422 may additionally or alternatively include mild constraints where, although the engine operation can continue if the constraint is violated, this is considered unacceptable or undesirable for the engine when deployed in the operating environment.
[0053] To enable determination of ECU mappings that result in binary constraints being satisfied, one or more Gaussian process models may include one or more binary classification outputs for the purpose of predicting whether a binary constraint is violated. At this time, a penalty may be imposed on the objective function used to select a set of locations in the input space, according to the binary classification output, to encourage selection of a set of locations where the probability of a binary constraint being violated is low.
[0054] FIG. 6 shows an example of a two-dimensional input space 600 having a first dimension corresponding to a context variable and a second dimension corresponding to a decision variable. The contour set 602 represents respective values for the torque of the engine, and the dashed line 604 separates the region of the input space 600 where all engine constraints are satisfied (left side of line 604) from the region where one or more engine constraints are violated (right side of line 604). In other words, the dashed line 604 demarcates the feasible region of the input space 600. In this example, the ECU calibration process has the task of determining a mapping from the values of the context variable to the values of the decision variable that maximizes the torque within the feasible region of the input space. The thick solid curve 606 shows the best possible value of the decision variable for each value of the context variable. It is observed that the curve 606 discontinuously jumps up to different peak regions (indicated by the vertical dashed segments of the curve 606) after following the contour towards the peak region of the torque.
[0055] In this embodiment, the context variables are local variables, while the decision variables are global variables, and the task during each iteration of Bayesian optimization is to determine the values of the decision variables for which sweeps should be performed across the context variables. FIG. 6 shows ten points representing a set of locations 608 within the input space 600. The locations 608 have common values of the global decision variables and equally spaced values of the local context variables that cover the allowable value ranges for the context variables. Seven of the locations 608 (shown filled) are within the feasible region of the input space 600, while three locations 608 (shown empty) are outside the feasible region of the input space 600. In this embodiment, the values of the decision variables corresponding to the set of locations 608 are determined in a given iteration of Bayesian optimization based on an objective function that evaluates the output of the GP model. For example, the objective function can determine the value of the decision variable by assessing the expected improvement (in relation to a pre-determined loss function) resulting from that choice of the value of the decision variable compared to the current best estimate of the value of the decision variable. Subsequently, a test bed experiment may be conducted to measure the engine performance characteristics at a set of locations covering at least a subset of the locations 608. The objective function in this embodiment evaluates the output of the GP model at ten locations within the input space, but a test bed experiment may be conducted for a much larger number of points, such as hundreds, thousands, or tens of thousands of points, that cover the same context variable range as the set of locations 608. In this way, a large number of data points can be collected, providing a fine-grained coverage of the regions of the input space 600 without the attendant increase in computational cost and time for each iteration of Bayesian optimization. Further, it may not be possible or convenient to obtain measurements at locations that exactly correspond to the determined input locations, for example, due to measurement noise and / or the fact that for some variables, control to a sufficiently high level of accuracy may not be possible.Nevertheless, the location of the measurement value may substantially lie on a path through the input space as defined by location 608, approximating location 608, such that the measurement value can be said to cover at least a subset of location 608.
[0056] In an embodiment where test bed experiments are performed only for a subset of the location set 608, it includes excluding location 608 where it is known that some engine constraints (e.g., difficult engine constraints) are violated. For example, while performing a sweep across local context variables, the test bed can determine that the binary engine constraints are violated. To ensure that the engine being tested is not damaged or destroyed, the sweep across the context variables can be terminated immediately. For example, after discovering that the binary constraint is violated on the right side of the dashed line 604, the test bed may refrain from making measurements on the remaining portion of the sweep extending to the right of the dashed line 604. As a result, as described above, especially when the number of data points collected for each iteration is large, there may be an imbalance in the data for training the classification model because far more data points satisfying the binary constraint are observed than data points where the binary constraint is violated. This can be a problem because when training a binary classification model, it is typically advantageous for the positive and negative training examples to be equal in number. To correct this problem, it is possible to generate synthetic data that flags that the engine constraints are violated for one or more additional locations in the input space, even if tests are not performed at these locations. In the embodiment of FIG. 6, synthetic data may be generated at locations to the right of line 604 at intervals corresponding to the intervals at which other data is collected. These "pseudo-data" may be used to correct the imbalance in the data when training the binary classification model. More generally, for example, for the purpose of covering locations that are not being performed due to the indication that the binary constraint is violated although measurements should be made, pseudo-data may be generated at locations determined according to a predetermined relative configuration of the location set in the input space. Along with balancing the data imbalance, the pseudo-data has advantageously been found to prevent the classification model from returning to those average functions in the unrealizable regions of the input space.
[0057] FIG. 7 shows an example of a computer-implemented method 700 for calibrating an ECU according to the present disclosure. The method 700 includes, at 702, initializing one or more GP models. The step of initializing one or more GP models includes, for example, determining initial values for trainable parameters of the one or more GP models, including hyperparameters and variational parameters. The initial values may be determined randomly or by any other suitable method, for example, independently of any empirical data or using historical data. The initialization at 702 further includes collecting an initial data set from a test bed independently of any Bayesian optimization steps and performing an initial training stage of using this data set to train one or more GP models for the purpose of seeding the Bayesian optimization process. The initial data set may include measurements of engine performance characteristics at a relatively small number of input location sets (e.g., 10, 50, or 100 input location sets).
[0058] In one embodiment, the initial training phase includes two training steps. The first training step includes sampling a large number of sets (e.g., hundreds or thousands) of hyperparameter values for one or more GP models, determining the log-likelihood of a relatively small number (e.g., dozens or hundreds) of data points for each sampled set of hyperparameter values, selecting the hyperparameter set having the highest log-likelihood, and optimizing the parameters of the resulting component GP model using maximum a posteriori estimation (e.g., using gradient-based optimization with a single natural gradient step for variational parameters). In embodiments where one or more of the GP models have a non-uniform variance likelihood, during the initial training step, the non-uniform variance likelihood may be replaced with a uniform variance likelihood (i.e., fixed noise) so as to more efficiently initialize the variational parameters and hyperparameters of these GP models using a relatively small number of data points. The parameter values of the auxiliary GP may be set to default values or values corresponding to the corresponding uniform variance GP. For example, the mean function of the auxiliary GP may be set to the trained likelihood variance of the corresponding uniform variance GP. After this first training step, a second training step may be performed in which the corresponding full GP model (including it if a non-uniform variance GP is used) is trained using one of stochastic gradient descent or a variant form thereof such as Adam. The second training step may be performed for a fixed number of iterations or until a convergence criterion is met.
[0059] Method 700 continues, at 704, with the step of determining a set of locations in the input space. The set of locations is determined according to an objective function that evaluates the outputs of one or more GP models. In some embodiments, the determined locations share common values of global context variables and one or more global decision variables and cover sweeps over the values of local context variables. The common values of the global context variables may be determined from one iteration to the next by iterating through a Halton sequence or another low-discrepancy sequence. The common values of the decision variables may be determined by solving a constrained optimization problem, as described below.
[0060] The goal of the ECU calibration process is to estimate or approximate profile-optimal conditions that are an optimal mapping of any allowable values of one or more context variables to values that maximize torque while ensuring that the optimal values of one or more decision variables, i.e., a predetermined set of engine constraints, are satisfied. More precisely, the goal of the ECU calibration process is to determine ECU calibration data that approximates the profile-optimal conditions as closely as possible, with coverage of the context variables large enough that, for any allowable value of a context variable, an approximately optimal value of the decision variable can be determined, e.g., by directly reading or interpolating ECU calibration data.
[0061] By partitioning the input location x = (z, u) into one or more decision variables z and one or more context variables u, the profile-optimal conditions can be defined by the following equation (3):
Number
Number
Number
Number
Number
Number
[0062] The multidimensional constrained optimization problem posed by equation (3) may be transformed into an unconstrained optimization problem by imposing a penalty on the loss function h(z,u), depending on the likelihood that a given input location is achievable as predicted by the GP model. The predicted likelihood that a given input location is achievable may mean the predicted probability that a given input location is achievable, or alternatively, another predicted measure of proximity to the certainty that the location is achievable. The probability that a single input location is achievable is
Number
Number
[0063] The objective function used to determine the input location set in this embodiment is an acquisition function that evaluates the output of the GP model in a set of candidate locations in the input space. The objective function may be defined for a set of Q candidate locations in the input space, for example, as the sum over the contributions from Q locations. A specific example of a suitable objective function is obtained by the following equation (5):
Equation
Equation
[0064] The objective function of equation (5) is penalized according to the predicted probability that each engine constraint is satisfied (or equivalently, according to the predicted probability that each engine constraint is violated) at a given location within the input location set. More generally, the objective function may be penalized according to the predicted likelihood that one or more engine constraints are violated for a given input location. The predicted likelihood that an engine constraint is violated may mean the predicted probability that the engine constraint is violated, or may mean another measure of proximity to the certainty that the engine constraint is violated.
[0065] In practice, for each context value u within the set q the baseline η(u q ) seen in equation (5) is estimated using gradient-based optimization of the loss function loss u (z) as described above. Next, the objective function J{x q} is optimized in relation to the values of the decision variables to determine a set of locations within the input space. The objective function J{x q} may be optimized, for example, by evaluating J{x q} at a number of points sampled from the decision space (evenly distributed across the decision space), and using the step of selecting the best point as a starting point for gradient-based optimization (e.g., L-BFGS-B).
[0066] In the above embodiments, the input location set has a predetermined configuration within the input space, but in other embodiments, the location set may be determined without such a constraint, for example, in which case all of the context variables and decision variables can be freely and quickly adjusted during testing. Further, in some embodiments, the input set determined in a given iteration of Bayesian optimization may include only a single input case.
[0067] The method 700 continues, at 706, with the step of obtaining a measurement of each engine performance characteristic that covers at least a subset of the locations determined at 704. To obtain the measurements, the engine is operated on a test bed with the values of the context variables and the decision variables set to values according to the determined set of locations in the input space. For each location, the value of the engine performance characteristic (and any context variable that is not precisely controllable on the test bed) is empirically measured using test bed sensors. For each measurement, a data point is generated that has an input portion representing the values of the context variables and the decision variables and an output portion representing the measured value of the engine performance characteristic. The step of obtaining measurements for a given set of input locations may be performed automatically or with a certain level of human input. Further, as described above, measurements may be taken at a much higher density of input locations than determined at 704 to ensure a fine-grained coverage of the relevant region of the input space, and at locations that approximately correspond to those determined at 704. If it is found that one or more engine constraints are violated at a given input location, the step of taking measurements may stop at that input location, in which case synthetic data may be generated to indicate that the engine constraints are violated at those remaining input locations for any remaining input locations.
[0068] Before proceeding to the next step, the measurements obtained at 706 may be pre-processed, combined, normalized, or otherwise modified along with the corresponding values of the context variables and the decision variables. Specifically, the measured values of one or more performance characteristics may be detrended in relation to one or more context variables and / or decision variables. For example, the torque of an engine may be strongly influenced by the values of one or more variables that correspond to and / or are derivable from the throttle position. Thus, any GP model having the task of directly predicting torque will be forced to reproduce this trend, and thus the ability of the GP model to predict the fine variations before and after the trend may be reduced. Thus, in order to improve the sensitivity of such GP models to these fine variations, the measured values of torque may be detrended in relation to these one or more context variables. The detrending may be performed in relation to a linear or higher-order polynomial function or any other suitable function. For example, it has been found that the torque of an engine exhibits a strong linear relationship with the throttle position, and thus the measured values of torque may be detrended in relation to a linear function of the throttle position. To perform the detrending, least squares estimation may be used to determine the best fit function that approximates the relationship between the measured values of the engine performance characteristics and the input variables. The best fit function may then be subtracted from the measured values, resulting in detrended measured values, which may optionally be re-scaled to have a selected variance (e.g., unit variance).
[0069] Method 700 begins, at 708, with the step of updating one or more GP models using the measurements obtained at 706. Specifically, the values of the trainable parameters for each of the one or more GP models, including the hyperparameters and variational parameters of the GP model and any auxiliary GP, may be updated using gradient-based optimization in relation to a maximum a posteriori or maximum likelihood objective function. The GP model update step may include the step of retraining the GP model from scratch using all of the data collected up to and including the current iteration (e.g., using the initialization method described above). Alternatively, the values of some of the parameters of the GP model, such as the kernel hyperparameters and the mean function, may be maintained or copied from the previous iteration (or from the initialization step 702), thereby reducing the number of gradient steps required in each iteration. The values of the variational parameters may likewise be determined in each iteration depending on the values of the variational parameters from the previous iteration, although (as discussed below) it may not be possible to directly copy these values due to the induced input locations changing between iterations.
[0070] During the update step, the set of induction input locations can be expanded to include additional induction input locations according to the set of locations determined at 704. However, this approach will result in an increase in the number of induction input locations with the number of iterations, which has the potentially undesirable effect of slowing down the ECU calibration process because more data is collected. Alternatively, the set of induction input locations can be recalculated for each iteration to keep the number of induction input locations constant or approximately constant between iterations. The induction input locations may be established, for example, by indexing the data according to the order in which the data points are collected and selecting equally spaced indices (optionally with an offset that varies between iterations). It is recognized that other ways of selecting the induction input locations are also possible, for example, ensuring that the induction input locations cover regions corresponding to each of the iterations of Bayesian optimization. For example, the induction input locations may be determined by clustering the input locations of the data points (using, for example, k-means of OBSCAN). In other embodiments, the induction input locations are treated as trainable parameters of the GP model.
[0071] Steps 704 to 708 are repeatedly continued until a predetermined stop condition is satisfied. In each iteration, new measurement values are collected and the GP model is updated. The stop condition may include, for example, that one or more convergence criteria are satisfied, that one or more engine performance criteria are satisfied, or that a predetermined number of iterations have been performed. In a given iteration, to the extent possible, a set of estimated optimal values of the decision variables and the accompanying values of the profile optimal conditions for a given set of context variables can be determined using gradient-based optimization, and the estimated profile optimal conditions are available. The stop condition may depend on the evaluation of the GP model at the estimated profile optimal conditions. For example, the stop condition may depend on a measurement criterion that compares the deviation between the determined values of the decision variables (or the corresponding values of the profile optimal conditions) in a given iteration with the values determined in a previous iteration. The stop condition may depend on the fact that this deviation is lower than a given threshold, indicating that the profile optimal conditions have converged. Examples of suitable measurement criteria include root mean square error or mean absolute error. Alternatively, or additionally, the stop condition may depend on the mean variance of one, some, or all of the GP models at the estimated profile conditions that are below a given threshold. In this way, the uncertainty estimate incorporated in the GP model can be used to self-assess the quality of the estimated values of the profile optimal conditions in each iteration.
[0072] When the stop condition is met, method 700 concludes, at 710, with the step of generating ECU calibration data for mapping the values of one or more context variables to the values of one or more decision variables. The ECU calibration data may be in the form of a look-up table or an equivalent data structure. The step of generating the ECU calibration data may involve performing gradient-based optimization using a trained GP model to estimate the optimal values of the decision variables for combinations of context variables that cover the entire admissible domain of the context variables at a sufficiently high resolution, and storing the resulting mapping. The optimal values of the decision variables may be determined using the probability distribution generated by the GP model, based on, for example, the expected value and / or quantiles derived from the output, and the minimum of a penalized loss function or other suitable function of any output. The approach may be refined to ensure continuous variation of the decision variables in relation to the context variables, where possible, for the purpose of avoiding unnecessary jumps between values in the case of GP outputs exhibiting multimodal behavior.
[0073] The test bed experiments may be conducted using a control system separate from the data processing system performing method 700, controlled, for example, at different locations and by different commercial organizations in different cases. For example, the experiments may be conducted by a vehicle manufacturer, and the data processing system guiding the experiments may be operated by a third party. In this case, the data processing system guiding the experiments may process data points from a remote system and generate recommended values of variable values to be sent to the remote system for further experiments. The organization operating the data processing system does not necessarily need to be provided with all the details of the experimental setup, and even all the physical details of the parameters, variables, and performance characteristics, provided that relevant constraints on the performance characteristics are provided, thus allowing the organization conducting the experiments to avoid sharing confidential information.
[0074] At least some aspects of the embodiments described herein with reference to FIGS. 1-7 include a computer process or method that is performed in one or more processing systems and / or processors. However, in some embodiments, the present disclosure also extends to a computer program, particularly a computer program on or in an apparatus adapted to put the present disclosure into practice. The program may be in the form of non-transitory source code, object code, intermediate source and object code, such as, for example, in a partially compiled form, or any other non-transitory form suitable for use in implementing the processes according to the present disclosure. The apparatus may be any entity or device having the ability to carry the program. For example, the apparatus may include a storage medium, such as a semiconductor drive (SSD) or other semiconductor-based RAM; ROM, such as a CDROM or semiconductor ROM; a magnetic storage medium, such as a hard disk; or any optical memory device in general.
[0075] The above-described embodiments should be understood as exemplary embodiments of the present invention. Further embodiments of the present invention are also contemplated. For example, using the methods described herein, it is possible to calibrate a control unit for an electric motor or a hybrid system, or indeed for any task for which it is required to determine a mapping from context variables to decision variables. Further, the systems and methods described herein may be used to calibrate an ECU based on data generated wholly or in part using a numerical simulator for an engine or a part of an engine. In such a case, the step of obtaining measured values of engine performance characteristics may be replaced by the step of obtaining data from a numerical simulator representing simulated values of engine performance characteristics.
[0076] Any feature described in connection with any one embodiment may be used alone or in combination with any other feature described, and similarly may be used in combination with one or more features of any other embodiment or any combination of any other embodiments. It should be understood that equivalents and modifications not described above may similarly be utilized without departing from the scope of the invention as defined in the appended claims.
Claims
1. In a system for calibrating an engine control unit (ECU): Multiple sensors for measuring the values of multiple performance characteristics of the engine; and Multiple controllers for adjusting the values of multiple variables associated with the operation of the engine, wherein the multiple variables are: One or more context variables having values that can be derived from the operating system input and / or environmental input when the engine is in use; and Includes one or more decision variables representing the engine parameters that can be adjusted by the ECU in accordance with the values of one or more context variables; Multiple controllers; Includes a testbed; Regarding multiple iterations: The objective is to determine a set of locations in an input space based on an objective function, where each location in the input space represents a value of one of the multiple variables. Here, the objective function is configured to evaluate the output of one or more Gaussian process models for a set of candidate locations in the input space, each of the one or more Gaussian process models having its own set of trainable parameters and configured to predict the respective probability distributions for one or more of the multiple engine performance characteristics for a given location in the input space. Here, the objective function is penalized according to the likelihood predicted by one or more Gaussian process models that one or more predetermined engine constraints are violated for a given location in the set of candidate locations. To make a decision; Using the plurality of sensors and the plurality of controllers, obtain measured values for each of the plurality of engine performance characteristics covering at least a subset of the determined set of locations in the input space; and Using the obtained measured values of the multiple engine performance characteristics, update the values for each of the trainable parameter sets of each of the one or more Gaussian process models; Includes, and further To generate ECU calibration data for mapping the values of one or more context variables to the values of one or more decision variables, using the probability distributions of the multiple engine performance characteristics predicted by the output of the one or more Gaussian process models; A data processing system including means for performing operations including; A system that includes this.
2. The system according to claim 1, wherein the determined set of locations in the input space includes a plurality of locations in the input space having predetermined configurations with respect to each other.
3. The system according to claim 2, wherein for a given iteration among the plurality of iterations, the predetermined configuration includes a sweep across a predetermined range of the first variable among the plurality of variables.
4. The system according to claim 3, wherein the first variable is a first context variable and has a value that can be adjusted by the throttle position.
5. The first context variable represents volumetric efficiency or injected fuel mass; The aforementioned plurality of variables include a second context variable representing engine rotational speed, The system according to claim 4.
6. The system according to claim 5, wherein, for a given iteration among the plurality of iterations, the predetermined configuration prohibits variation of the second context variable.
7. For a given iteration among the plurality of iterations, the predetermined relative configuration imposes a common value on the given variables among the plurality of variables; The common value of the given variables is updated between iterations according to a low-discrepancy sequence. The system according to any one of claims 2 to 6.
8. The operation further includes detensioning one measurement of the engine performance characteristic in relation to one or more of the plurality of variables; One of the Gaussian process models is configured to predict the probability distribution of the trend-deselected value of one of the engine performance characteristics; The system according to claim 1.
9. The operation further includes detensioning one measurement of the engine performance characteristic in relation to one or more of the plurality of variables; One of the Gaussian process models is configured to predict the probability distribution of the trend-deselected value of one of the engine performance characteristics; The system according to claim 4, wherein one of the plurality of engine performance characteristics is torque generated by the engine, and one of the plurality of variables is a first context variable.
10. For a given iteration among the plurality of iterations, determining the set of locations in the input space includes determining the respective values for each of the one or more decision variables based on the objective function, wherein the respective values are common across the set of locations in the input space. The system according to claim 1.
11. The obtained measurements of the plurality of engine performance characteristics include a binary flag indicating whether or not a given engine constraint is violated for each of the locations in the input space, or for at least a subset of those locations; The one or more Gaussian process models include a classification model for predicting whether a given engine constraint is violated at a given location in the input space; and The objective function is penalized according to the output of the classification model; The system according to claim 1.
12. The obtained measurements of the plurality of engine performance characteristics include a binary flag indicating whether a given engine constraint is violated for each of the locations in the input space, or for at least a subset of locations; The one or more Gaussian process models include a classification model for predicting whether a given engine constraint is violated at a given location in the input space; and The objective function is penalized according to the output of the classification model; For a given iteration of the plurality of iterations, the operation further includes generating composite data indicating that the given engine constraint is violated for one or more further locations in the input space in response to a binary flag indicating that the given engine constraint is violated for a first location in the determined set of locations, wherein the one or more further locations cover a portion of the sweep that extends beyond the first location. Updating the values for the trainable parameter set includes updating the values for each of the trainable parameter sets of the classification model using the generated synthetic data. The system according to claim 3.
13. The system according to claim 1, wherein the first Gaussian process model of the one or more Gaussian process models includes heterogeneous variance likelihood.
14. The aforementioned operation is: Using the plurality of sensors and the plurality of controllers, obtain measured values of the plurality of engine performance characteristics for a sample of location within the input space; Determining the values of the trainable parameter set for a second Gaussian process model, thereby fitting the second Gaussian process model to the obtained measurements for the location sample, and determining that the second Gaussian process model corresponds to the first Gaussian process model with homogeneous variance likelihood instead of heterogeneous variance likelihood; and Initializing the values for each of the trainable parameter sets of the first Gaussian process model based on the determined values of the trainable parameter sets of the second Gaussian process model; The system according to claim 13, further comprising:
15. The system according to claim 1, wherein, for a given iteration of the plurality of iterations, obtaining the measurement of each of the plurality of engine performance characteristics covering at least a subset of the determined set of locations in the input space includes obtaining the measurement of each of the plurality of engine performance characteristics for a plurality of further locations in the input space, depending on the determined set of locations in the input space.
16. The system according to claim 1, wherein the one or more Gaussian process models include one or more sparse variational Gaussian process models, and each of the one or more sparse variational Gaussian process models has a trainable parameter set that includes variational parameters for each of the one or more sparse variational Gaussian process models.
17. The system according to claim 1, wherein the engine is an internal combustion engine.
18. The aforementioned engine includes multiple cylinders; The one or more of the aforementioned decision variables include, for a given engine cylinder among the plurality of engine cylinders, variable intake valve timing, variable exhaust valve timing, and / or exhaust gas recirculation rate. The system according to claim 17.
19. In a method for calibrating an engine's ECU: Regarding multiple iterations: The objective is to determine a set of locations in an input space based on an objective function, where each location in the input space represents a value of one of several variables. Here, the aforementioned multiple variables are: One or more context variables having values that can be derived from the operating system input and / or environmental input when the engine is in use; and One or more decision variables representing the engine parameters that can be adjusted by the ECU in accordance with the values of one or more of the aforementioned context variables; It includes; Here, the objective function is configured to evaluate the output of one or more Gaussian process models for a set of candidate locations, each of which has its own set of trainable parameters and is configured to predict the respective probability distributions for one or more of the multiple engine performance characteristics for a given location in the input space. Here, the objective function is penalized according to the likelihood predicted by one or more Gaussian process models that one or more predetermined engine constraints are violated for a given location in the set of candidate locations. To make a decision; Obtaining measurements of each of the plurality of engine performance characteristics covering at least a subset of the selected set of locations in the input space; and Using the obtained measured values of the multiple engine performance characteristics, update the values for each of the trainable parameter sets of each of the one or more Gaussian process models; Includes, and further Using the probability distributions for the multiple engine performance characteristics predicted by the one or more Gaussian process models, generate ECU calibration data for mapping the values of the one or more context variables to the values of the one or more decision variables; A data processing system including means for performing operations including; A method that includes this.
20. A computer program product comprising an instruction causing a computer to perform the method described in claim 19 at the time the program is executed by the computer.
21. A data processing system comprising means for carrying out the method described in claim 19.