The present disclosure relates to the control of an internal combustion engine. More specifically this disclosure relates to a system and method for controlling the actuators of an internal combustion engine.
Internal combustion engines often include one or more systems for managing the emissions output from the exhaust of the internal combustion engine. For example, internal combustion engines often include an after-treatment system for treating the exhaust gas produced by the internal combustion engine.
Typical after-treatment systems may include many sensors and (control) actuators. Further sensors and actuators may be provided in the internal combustion engine for monitoring exhaust gas, performance, and/or efficiency of the internal combustion engine. As such, internal combustion engines may include many independent controllable variables and calibration values. Thus, the design of an engine control system for an internal combustion engine is a multi-dimensional control problem.
Engine control systems need to provide setpoints to the actuators of the internal combustion engine in response to real time changes in the operating conditions of the internal combustion engine. The desire for high efficiency internal combustion engines which meet emissions regulations places a further restraint on the design of a control system. A further restraint on the design of the control system is that the amount of computing power available to the engine control system may be limited.
Conventionally, control of the internal combustion engine and after-treatment system is managed by an on-board processor (an engine control module). Due to the complexity of the internal combustion engine and after-treatment system, the engine control implemented typically utilises an open loop control system based on a series of “control maps” comprising pre-calibrated, time-invariant engine setpoints for the internal combustion engine and after-treatment system. Typically, the engine setpoints controlled include fuel mass, start of injection (SOI), exhaust gas recirculation (EGR) and inlet manifold absolute pressure (IMAP).
Some simple control maps comprise a plurality of look up tables, in which a number of time-invariant engine setpoints are stored associated with different engine operation conditions. An engine control module can simply read out engine setpoints from the control map associated with a desired engine operation. Some engine control maps can also provide estimates of one variable as a function of a limited number of other variables. Engine setpoint maps can only be based on a limited number of input variables due to the exponential increase in memory and map complexity as additional variables are included. In some cases, system memory can be compromised, but at the expense of interpolation error.
One method for reducing effects on performance of open-loop control scheme is to provide different control maps for different operating regimes. For example, different control maps may be provided for idle operation and full throttle operation, or start-up. Providing many different control maps per internal combustion engine makes calibration of each internal combustion engine expensive and time consuming. Furthermore, these pre-calibrated maps are each time-invariant lookup tables. Accordingly, these time-invariant control maps cannot take account of part-to-part variations in engine parts, or unmeasured influences like humidity for example. Time-invariant control maps also cannot accommodate variations in engine part performance over time.
An alternative approach is to implement real-time, on-board, model-based control of the engine to replace the pre-calibrated control maps. As such, an engine model directly controls one or more of the setpoints of the internal combustion engine. Model-based engine controls may include dynamic engine models to predict engine performance, emissions and operating states. Predicted engine performance can be fed back into the model to further optimise the engine setpoints. As such, model-based control methods effectively incorporate a form of negative feedback into the engine control system in order to improve performance and emissions.
Model-based control is difficult to implement as the engine setpoints must be calculated in real-time. Accordingly, model-based engine controllers including predictive elements ideally complete their predictions in real time as well. Thus, many model-based control schemes require significant computational resources to optimise model output within a suitable timescale for controlling an internal combustion engine.
According to a first aspect of the disclosure, an internal combustion engine controller is provided. The internal combustion engine controller comprises a memory and a processor. The memory is configured to store a plurality of control maps, each control map defining a hypersurface of actuator setpoints for controlling an actuator of the internal combustion engine based on a plurality of input variables to the internal combustion engine controller. The processor comprises an engine setpoint module and a map updating module. The engine setpoint module is configured to output an actuator setpoint to each actuator based on a location on the hypersurface of the respective control map defined by the plurality of input variables. The map updating module is configured to optimise one or more of the hypersurfaces of the control maps at the location defined by the plurality of input variables. The map updating module comprises an optimiser module. The optimiser module is configured to search for an optimised group of actuator setpoints by:
wherein the map updating module updates the one or more hypersurfaces at the location defined by the plurality of input variables based on the optimised group of actuator setpoints.
Accordingly, the internal combustion engine controller comprises two processing modules: an engine setpoint module and a map updating module. The engine setpoint module is configured to control a plurality of actuators of an internal combustion engine. For example, the engine setpoint module may control one or more of SOI, EGR, fuel mass, and inlet manifold absolute pressure requested (IMAPR) for an internal combustion engine. The engine setpoint module controls these actuators based on a performance input to the internal combustion engine, for example a user demand for torque, engine speed etc, or specified sensor data from the internal combustion engine (e.g. current IMAP). The control of each actuator is determined based on a control map for each actuator. Each control map defines a hypersurface for controlling an actuator of the internal combustion engine based on a plurality of input variables to internal combustion engine controller. As such, the engine setpoint module is effectively an open loop control module which utilises the actuator setpoints stored in the control maps to control the actuators.
The map updating module effectively operates independently from the open loop control of the engine setpoint module. The map updating module is configured to optimise the control of the internal combustion engine by updating the hypersurfaces of the control maps at a location defined by the input variables. As there are a plurality of actuators to be controlled, optimising the hypersurfaces is a multidimensional optimisation problem. The internal combustion engine controller according to the first aspect provides a map updating module which aims to solve the multidimensional optimisation problem in real time in computationally efficient manner. As such, the map updating module is designed with the computational resources available to an on-board engine control module of an internal combustion engine in mind.
In order to optimise the hypersurfaces, a performance model of the internal combustion engine is used to evaluate the performance of the internal combustion engine for candidate group of actuator setpoints and determine a cost. The cost determined may reflect one or more performance characteristics of the internal combustion engine as defined by the performance model. The performance model may take into account other input parameters available to the internal combustion engine controller, for example the input variables to the control maps, other sensor data and/or aftertreatment information. Consequently, the performance model of the internal combustion engine may be highly non-linear. Due to the multidimensional nature of the actuator setpoint search space, the performance model output may define a number of local minima, in addition to a global minimum. The optimiser module of the first aspect is configured to search for a group of optimised actuator setpoints which corresponds to the global minimum. By starting the search procedure from a stratified sample of the actuator setpoint search space, the optimiser module aims to reduce or eliminate the likelihood of the search arriving at a local minimum.
Accordingly, the optimiser module is arranged to calculate optimised setpoints on-board the internal combustion engine controller. As such, the optimiser module calculates optimised actuator setpoints during operation of the internal combustion engine. The search methodology of the optimiser module is adapted accordingly to output optimised setpoints in real-time using the (limited) available processing power the internal combustion engine controller. That is to say, the search methodology of the optimiser module is adapted to real-time operation, rather than a search methodology which can be performed off-line without restrictions on available computing power.
By providing a plurality of updatable control maps, a control map based controller may be provided which can be optimised to a range of different operating points using a limited number of control maps. Thus, the number of control maps that need to be calibrated for an internal combustion engine may be reduced, as the updatable maps of this disclosure may provide control covering a range of different operating points for which separate control maps may have been calibrated in the past. Accordingly, the complexity of initial calibration and set-up of an internal combustion engine may be reduced.
Furthermore, time invariant control maps known in the art are typically calibrated with relatively large safety margins in order to accommodate any changes in the internal combustion engine over time. By contrast, the map updating module according to the first aspect may update the actuator setpoints of the control maps in response to the changes in the real-time performance of the internal combustion engine. Thus, the control maps of the first aspect may be configured to cause the internal combustion engine to operate under more optimal performance conditions.
The initial actuator setpoint search space of the control maps may be a multidimensional search space defined by the possible range of actuator setpoints for each of the control maps. For example, an internal combustion engine controller may comprise three control maps for controlling actuators X, Y and Z of an internal combustion engine. Accordingly, the initial actuator setpoint search space is defined by the range of setpoint values for each of X, Y and Z for the control maps i.e. a three dimensional search space for the three actuators.
According to the first aspect, the map updating module updates the one or more hypersurfaces at the location defined by the plurality of input variables based on the optimised group of actuator setpoints. It will be appreciated that the step of updating the hypersurfaces may be based on the optimised group of actuator setpoints. As such, in some examples, the current location on one or more of the hypersurfaces may be more preferable than the location defined by the optimised group of actuator setpoints. So, in some examples, the step of updating may comprise the map updating module electing not to change the one or more of hypersurfaces of the control maps.
In some embodiments, the initial actuator setpoint search space may be defined by one or more of an upper actuator constraint and a lower actuator constraint. The upper actuator constraint and lower actuator constraint may be selected to ensure that the actuator of the internal combustion engine is operated within certain physical limits.
In some embodiments, one candidate group of actuator setpoints may correspond to the location on each hypersurface defined by the plurality of input variables. Thus, the internal combustion engine controller of the first aspect may always evaluate the current operating point of internal combustion engine (i.e. the current actuator setpoints) in the stratified sample of the initial actuator setpoint search space. Accordingly, the in the event that the current operating point of the internal combustion engine already corresponds to the global cost minimum, the optimiser module may return the current actuator setpoints (as determined by the location on each hypersurface defined by the plurality of input variables) as the optimised group of actuator setpoints.
In some embodiments, the search line in the actuator setpoint search space may be calculated based on the two candidate groups of actuator setpoints with the lowest cost. Accordingly, the optimiser module may determine a search line (i.e. a searching direction, or searching vector within the initial actuator setpoint search space) in a computationally efficient manner.
The map updating module may be further configured to determine a cost difference between the cost associated with the optimised group of actuator setpoints and the cost associated with the candidate group of actuator setpoints corresponding to the location on each hypersurfaces of the control maps defined by the plurality of input variables. If the cost difference is less than an update threshold, the hypersurfaces of the control maps are not updated. Accordingly, the internal combustion engine controller may elect to not update the control maps when only a trivial increase in performance may be obtained. For example, under steady state operation, it may not be desirable to be making frequent minor updates to actuator setpoints (thereby inducing wear in the actuators) for a relatively minor performance benefit.
In some embodiments, the optimiser module may be further configured to search for an optimised group of actuator setpoints by:
Accordingly, the map updating module the first aspect may iterate the optimised group of actuator setpoints calculated. By iterating the calculation, the optimiser module may identify a group of actuator setpoints corresponding more closely to the global cost minimum. In the event that the previously calculated optimised group of actuator setpoints falls within a local cost minima, the iterative searching strategy allows for the optimiser module to search around the optimised group of actuator setpoints (via the stratified sample) such that the global minimum may still be found.
The constrained actuator setpoint search space is an actuator setpoint search space similar to the initial actuator setpoint search space. Effectively, the constrained actuator setpoint search space is a subset of the initial actuator setpoint search space. That is to say, the range for each actuator setpoint to be searched may be constrained relative to the initial setpoint search space. The constrained actuator setpoint search space may be constrained based on the optimised group of actuator setpoints previously calculated (e.g. the first optimised group of actuator setpoints). The constrained actuator setpoint search space may be constrained by updating the upper actuator constraint and lower actuator constraint for each actuator used to define the actuator setpoint search space for the performing the stratified sample (e.g. the initial actuator setpoint search space, or a previous constrained actuator setpoint search space). In some embodiments, the available search range for each actuator may be reduced by at least: 30%, 40%, 50%, 60%, or 70%. In some embodiments, the upper actuator constraint and lower actuator constraint for each actuator may be selected such that the previously calculated optimised group of actuator setpoints is located towards the centre (i.e. as centrally as possible) of the constrained actuator setpoint search space.
By calculating a group of actuator setpoints associated with a second cost minima, the optimiser module allows for the possibility that the first cost minima is not the global minima for the performance model. Thus, the internal combustion engine controller according to the first aspect allows the optimised actuator setpoints calculated to be iterated.
In some embodiments the optimiser module is configured to repeat the steps of (iv), (v), (vi), and (vii) a plurality of times. As such, the optimiser module may iterate the calculation of the optimised group of setpoints a plurality of times. Repeating these steps may increase the certainty that the optimised group of actuator setpoints is located in a global cost minimum.
In some embodiments, the repeating of steps (iv), (v), (vi), and (vii) by the optimiser module may carry on until: the cost reduction achieved when updating the optimised group of actuator setpoints falls below a convergence limit, and/or a time taken to perform the search exceeds a time limit. Thus, the optimiser module may take into account the demand for computational resources and the likelihood/relative benefit of obtaining a further improvement to the optimised group of actuator setpoints calculated should a further iteration be performed.
In some embodiments, the stratified sample of the actuator setpoint search space is a Latin Hypercube sample of the initial actuator setpoint search space or the constrained actuator setpoint search space. By using a Latin Hypercube sample, the candidate groups of actuator setpoints selected may be evenly distributed across the search space. By distributing the candidate groups of actuator setpoints across the search space, the optimiser module aims to select at least one candidate group of actuator setpoints within the global cost minimum, in order to provide a robust algorithm for searching for an optimised group of actuator setpoints.
According to a second aspect of the disclosure a method of controlling an internal combustion engine may be provided. The method comprises providing a plurality of control maps, each control map defining a hypersurface of actuator setpoints for controlling an actuator of the internal combustion engine based on a plurality of input variables to the internal combustion engine controller, outputting an actuator setpoint to each actuator based on a location on the hypersurface of the respective control map defined by the plurality of input variables, and optimising one or more of the hypersurfaces of the control maps at the location defined by the plurality of input variables. Optimising one or more of the hypersurfaces of the control maps comprises: searching for an optimised group of actuator setpoints, and updating the one or more hypersurfaces at the location defined by the plurality of input variables based on the optimised group of actuator setpoints. Searching for an optimised group of actuator setpoints includes:
Accordingly, the method of the second aspect may be implemented by an internal combustion engine controller according to the first aspect. Thus, it will be appreciated that the advantages described in relation to the first aspect may be applied to the method of the second aspect. Further, the optional features described in relation to the first aspect may equally apply to the second aspect of the disclosure.
The invention will now be described in relation to the following non-limiting figures. Further advantages of the disclosure are apparent by reference to the detailed description when considered in conjunction with the figures in which:
A general system diagram of an internal combustion engine 1 and an internal combustion engine controller 10 according to an embodiment of this disclosure is shown in
The internal combustion engine controller 10 may comprise a processor and a memory. As such, the internal combustion engine controller 10 may be implemented on any suitable computing device known in the art. The internal combustion engine module may be provided on a dedicated engine control unit (e.g. an engine control module) comprising one or more processors and integrated memory. The internal combustion engine controller 10 may be connected to a variety of inputs and outputs in order implement the control scheme of this disclosure. As such, the internal combustion engine controller 10 may be configured to receive various input variables signals, sensor data and any other signals that may be used in the control scheme. For example, the internal combustion engine controller 10 may be configured to receive engine sensor data such as Engine Speed, Barometric pressure, Ambient temperature, IMAP, Inlet Manifold Air Temperature (IMAT), EGR mass rate (or sensors used to derive an EGR mass estimate), Fuel rail pressure, and/or Air system valve positions, Fuel mass estimate, and/or aftertreatment sensor data such as Engine out NOx, Tailpipe NOx, Diesel particulate filter dP/RF soot sensor, Diesel oxidation catalyst inlet temperature, and/or SCR inlet temperature.
As indicated in
Requested (IMAPR). Of course, in other embodiments, the engine actuators to be controlled may be varied.
As shown in
The input variables to the engine setpoint module 20 may be a combination of different variables derived from the current operation of the internal combustion engine 1. Some of the input variables may be based on performance demands of the internal combustion engine. Some of the input variables may be based on the current operating state of the internal combustion engine 1, for example as measured by various sensors. As the input variables are used to determine an actuator setpoint based on a control map, it will be appreciated that the total number of input variables per control map may be restricted by the computational resources available to the internal combustion engine controller 10.
In the embodiment of
Each of the plurality of control maps 30 defines a relationship between one or more of the input variables and an actuator setpoint. In the embodiment of
Each of the control maps 30 of
In other embodiments, alternative means may be used to describe the hypersurface for each control map 30. For example, the hypersurface may be defined as a function of the input variables. Suitable multidimensional functions for defining a hypersurface may be a universal approximator function. Suitable universal approximator functions may include: artificial neural networks (e.g. radial basis functions, multilayer perceptrons), multivariate polynomials, fuzzy logic, irregular interpolation, kringing).
The plurality of control maps 30 may be stored in the memory of the internal combustion engine controller 10 such that the various processing modules of the internal combustion engine controller 10 can access the control maps 30.
As shown in
The map updating module 40 is configured to update the hypersurface of a control map 30 based on the optimised hypersurface. Accordingly, the hypersurface for one or more control maps 30 may be updated during operation of the internal combustion engine 1. By providing a set of updatable control maps 30, a set of control maps 30 may be provided which can be optimised to a range of different operating points. Thus, the number of control maps that need to be calibrated for an internal combustion engine 1 may be reduced, as the set of updatable control maps 30 of this disclosure may provide control covering a range of different operating points for which separate sets of control maps (i.e. multiple sets of control maps) may have been calibrated in the past.
As indicated in
The first sub-module 51 performs a stratified sample of an initial actuator setpoint search space of the control maps. The initial actuator setpoint search space may be a multidimensional search space, wherein the number of dimensions corresponds to the number of control maps (i.e. the number of actuators of the internal combustion engine to be controlled by the internal combustion engine controller). Each actuator of the internal combustion engine may have a predetermined range of actuator setpoints. The predetermined range of actuator setpoints for a control map may be defined by one or more of an upper actuator constraint and a lower actuator constraint. The upper actuator constraint and lower actuator constraint may be selected to ensure that the actuator of the internal combustion engine is always operated within certain physical limits. For example, for the EGR actuator, an upper EGR actuator constraint may be 360 kg/hr and a lower EGR actuator constraint may be 0 kg/hr. Accordingly, an initial actuator setpoint search space may be defined by an upper actuator constraint and lower actuator constraint for each control map of the internal combustion engine controller. As explained above, the initial actuator setpoint search space may be predetermined to reflect the physical limits of the actuators of the internal combustion engine. The upper actuator constraint and lower actuator constraint for each control map defining the initial actuator setpoint search space may be stored in the memory of the internal combustion engine controller.
In some embodiments, the initial actuator setpoints search space may be varied according to a desired operating point for the internal combustion engine. For example, the search space for the EGR actuator may be varied according to a desired operating load and/or desired engine speed of the internal combustion engine. For example, the upper actuator constraint may be varied according to a desired operating point. In one embodiment, the upper EGR actuator constraint may be varied according to a desired load and/or engine speed of the internal combustion engine. For example, an upper EGR actuator constraint of 360 kg/hr may be provided at high speed high load. At low speed and low load, it may be desirable to reduce EGR, and so the upper EGR actuator constraint may be lowered, or even set to 0 kg/hr to “clamp” the optimiser with respect to this variable.
The initial actuator setpoint search space effectively defines every possible operating point that may be evaluated by internal combustion engine controller. The optimiser module 50 is configured to select candidate groups of actuator setpoints from within the initial actuator setpoint search space for evaluation by the optimiser module 50. Each candidate group of actuator setpoints effectively represents a potential operating point for the internal combustion engine 1. As part of the first step, the optimiser module 50 is configured to perform a stratified sample of the initial actuator setpoint search space in order to obtain a first set of candidate groups of actuator setpoints. By sampling the initial actuator setpoint search space using a stratified sample, the optimiser module ensures that the candidate groups of actuator setpoints selected are distributed across the actuator setpoint search space. As such, it will be appreciated that a stratified sample may provide a more even distribution of candidate groups of actuator setpoints across the initial actuator setpoint search space than a purely random sample of the initial actuator setpoint search space.
Various methods of performing a stratified sample of a multidimensional search space are known to the skilled person. In one embodiment of the disclosure, the optimiser module 50 performs a Latin hypercube sample of the initial actuator setpoint search space. Thus, for an initial actuator setpoint search space of N variables, the range of each actuator (as defined by the upper and lower actuator constraints) is divided into M equally probable intervals. M sample points are then placed wherein each sample point is the only one in each axis-aligned hyperplane. For example, at least 5 sample points are taken, or at least 7, or at least 9. In other embodiments, an orthogonal sampling method may be used to determine a stratified sample, or any other suitable stratified sampling method which provides a distribution of candidate groups of actuator setpoints across the initial actuator setpoint search space.
The first sub-module 51 evaluates each candidate group of actuator setpoints (of the first set) according to a performance model of the internal combustion engine. The first sub-module 51 uses the performance model to calculate a cost associated with each candidate group of actuator setpoints of the first set.
A series of points a, b, c, d, e, f, and g are indicated in
The performance model used to evaluate each candidate group of actuator setpoints may be any suitable performance model for evaluating the performance of an internal combustion engine. The performance model may depend on the input variables and processing power available to the optimiser module 50. The performance model of the internal combustion engine may be real-time performance model of the internal combustion engine 1. By real-time performance model, it is understood that the evaluation is based on a model of the performance internal combustion engine which is calculated in real time, rather than, for example, an off-line calculation of historic engine data. The real-time performance model may use sensor data from the internal combustion engine 1 and the plurality of input variables (i.e. real-time input variables to the internal combustion engine). As such, the real-time performance model may use additional sensor data from the internal combustion engine 1, in addition to the input variables to the control maps in order to optimise the control maps. Effectively, the internal combustion engine controller 10 of this disclosure may incorporate additional variables (direct and/or indirect sensor data variables) into the control of the internal combustion engine in manner which does not significantly increase the computational complexity of the map based control.
The performance model of the internal combustion engine 1 may comprise an engine model arranged to calculate one or more engine performance variables, and a cost model arranged to calculate a cost based on the one or more engine performance variables. The engine model may utilise one or more physical models of the internal combustion engine to calculate engine performance variables, and/or one or more empirical models arranged to calculate further engine performance variables. As such, the performance model of the internal combustion engine 1 may be a “grey box” type performance model.
The inputs to the performance model may be the plurality of input variables of the control maps, as well as sensor inputs from the internal combustion engine, and the candidate group of actuator setpoints. As such, the performance model is provided with a plurality of variables associated with the real-time operation of the internal combustion engine.
Accordingly, the engine performance variables calculated by the performance model may be representative of the real-time performance of the internal combustion engine 1.
One example of a suitable performance model is now described with reference to
The performance model may include one or more models configured to calculate a plurality of engine performance variables associated with each candidate group of actuator setpoints. It will be appreciated that as the inputs to the performance model include the actuator setpoints for the internal combustion engine and the sensor data, the engine performance variables calculated will be representative of a real-time performance of the internal combustion engine 1 under those actuator setpoints. The engine performance variables calculated may include: engine torque, mass airflow, brake mean effective pressure (BMEP), net indicated mean effective pressure (IMEP), pumping mean effective pressure (PMEP), friction mean effective pressure (FMEP), exhaust manifold temperature, peak cylinder pressure, NOx quantity (e.g. Net Indicated Specific NOx, Brake Indicated Specific NOx) Soot quantity (e.g. Net Indicated Specific Soot, Brake Indicated Specific Soot), NOx/Soot ratio, minimum fresh charge, EGR potential. The physical relationships between the above engine performance variables and the inputs provided to the performance model are well known to the skilled person. As discussed above, the performance model may utilise physics-based models, empirical models or a combination of empirical and physics based models (i.e. semi physical/grey box models) to calculate one or more of the above engine performance variables.
For example, the performance model may include a mean value engine model. Mean value engine models are well known to the skilled person for modelling engine performance parameters such as BMEP, engine torque, mass airflow etc. Further explanation of a mean value engine model suitable for use in the present disclosure may be found “Event-Based Mean-Value Modeling of DI Diesel Engines for Controller Design” by Urs Christen et al, SAE Technical Paper Series. Thus, the performance model may be used to calculate engine performance variables based on the inputs.
In addition to the use of a mean value model, the performance model may include one or more neural network based models for calculating one or more engine performance variables. For example, a Net Indicated Specific NOx (NISNOx) engine performance variable may be calculated from the sensor data using a suitably trained neural network. Further explanation of suitable techniques for calculating engine performance variable such as NISNOx using a neural network may be found in “Development of PEMS Models for Predicting NOx Emissions from Large Bore Natural Gas Engines” by Michele Steyskal et al, SAE Technical paper series.
In addition to the above models, physics-based models of one or more internal combustion engine components may be provided. For example, a compressor model, a turbine model, or an exhaust gas recirculation cooler model may be provided in order to help calculate suitable engine performance variables.
The performance model outputs the engine performance variables to a cost model. The cost model is configured to evaluate the one or more engine performance variables and output a cost associated with each candidate group of actuator setpoints based on the engine performance variable(s).
The cost model may comprise a plurality of functions configured to assign a cost to various performance targets in order to evaluate the performance of the internal combustion engine 1 according to the candidate group of actuator setpoints. For example, the plurality of functions may comprise one or more performance objective functions, one or more emissions functions, and one or more engine constraint functions. Each of the plurality of functions may be configured to output a cost based on a function of one or more of the engine performance variables and one or more cost parameters. The cost parameters determine the magnitude of the cost associated with each engine performance parameter. In the embodiment of
A performance objective function may be a function configured to optimise the internal combustion engine 1 to meet certain performance objectives. For example, performance objective may be to minimise Brake Specific Fuel Consumption (BSFC) or Net Indicate Specific Fuel Consumption (NISFC). A further performance objective may be to minimise torque error (i.e. the difference between the actual output torque and the torque requested). Such forms of performance objective function may be represented by a function having a weighted square law relationship (i.e. of the form: Cost=Weight*(engine performance variable){circumflex over ( )}2). As such, for a performance objective function, a weight of the performance objective function is a cost parameter. A graphical representation of a suitable performance objective function is shown in
CostNISFC=WeightNISFC* NISFC{circumflex over ( )}2
An emission function may be a function configured to optimise the internal combustion engine in order to meet certain objectives in relation to the emissions produced by the internal combustion engine. For example one or more emissions function may be provided based on engine performance variables relating to emissions produced by the internal combustion engine. As such, one or more emissions functions may be based on NOx quantity (NISNOx, Soot (NISCF), NOx Soot ratio, minimum fresh charge, and/or EGR potential. The emissions functions may define a relationship between a cost and the engine performance variables using any suitable function. For example, in the embodiment of
In this disclosure, Net indicated specific NOx (NISNOx) is intended to refer to the NOx quantity output by the internal combustion engine, prior to any treatment in an aftertreatment system. Of course, the skilled person will appreciate that the NOx quantity may also be estimated downstream of the aftertreatment system (e.g. tailpipe NOx).
For example, an emissions function may include a target upper limit (T). The target upper limit may define a value for an engine performance variable above which the cost incurred becomes significant, whereas for values below the target upper limit, no cost, or minimal cost is incurred. For example, for some internal combustion engines, a target upper limit for NISNOx may be 4 g/kWh. Thus, for an emissions function a target upper limit, and/or a weight may be a cost parameter. In other embodiments, a target limit may be provided as a target lower limit.
Accordingly, an emissions function (CostNOx)based on the engine performance variable NISNOx may be:
When: NISNOx<T, CostNOx, =0
NISNOx≥T, CostNOx=WeightNOx*(NISNOx−T){circumflex over ( )}2
An engine constraint function may be a function configured to reflect constraints associated with the performance of the internal combustion engine. As such, the one or more engine constraint functions may be provided to discourage or prevent the internal combustion engine controller from operating the internal combustion engine 1 under certain operating conditions. For example, one or more engine constraint functions may be based on engine performance variables which have fixed limits which cannot be exceeded due to physical requirements of the internal combustion engine. As such, one or more engine constraint functions may be based on peak cylinder pressure (PCP), exhaust manifold temperature, compressor outlet temperature. Further engine performance variables which may have desirable fixed limits such as max torque error may also have a corresponding engine constraint function. Each engine constraint function may define a relationship between a cost and one or more of the engine performance variables using any suitable function. For example, in the embodiment of
For example, an engine constraint function for the engine performance variable PCP may be provided based on a limit L. The cost calculated by the engine constraint function may rise asymptotically as the limit L is approached. Thus, a limit L may also be a cost parameter. Accordingly, an engine constraint function (CostPCP) based on the engine performance variable PCP may be:
CostPCP=1/ (L−PCP)
As described above, various cost parameters have been described with respect to performance objective functions, emissions functions, and engine constraint functions. The cost parameters may be stored by the cost model, for example as a cost parameter vector. In some embodiments, the cost parameters may be time varying. That is to say, in some embodiments the cost model may update one or more of the cost parameters in order to effect a change in the relative costs associated with different engine performance variables. For example, the cost model may update one or more cost parameters in order to initiate regeneration of the aftertreatment system as described below.
For example, the cost model may utilise data from the aftertreatment system in order to determine that a regeneration of the aftertreatment system is to be performed (e.g. an indication from the aftertreatment system that regeneration of a Diesel Particulate Filter is required). The cost model may update some of the costs functions of the model in order to effect a regeneration of the aftertreatment system. For example, a cost function (e.g. a performance objective function) may be provided to control an exhaust minimum temperature. To regenerate the aftertreatment system, the exhaust temperature minimum penalty may be increased (e.g. to 400° C.) to encourage the optimiser to calculate an optimised hypersurface which increases exhaust temperature. The internal combustion engine may not be able to reach such an exhaust temperature, but will be encouraged to find a solution that minimises the deviation from this value. When aftertreatment thermal management is not required, the exhaust temperature minimum penalty may be set to a negligible value (e.g. −180° C.). Thus when not required, the cost function will not consider this term.
Thus, the cost model may calculate a total cost associated with each candidate group of actuator setpoints based on the costs calculated by each of the cost functions calculated above. The total cost associated with each candidate group of actuator setpoints may be provided to the optimiser module 50 for further processing.
Accordingly, a performance model for calculating a cost associated with each candidate group of actuator setpoints may be provided. It will be appreciated that various modifications or variations to the above performance model may be contemplated by the skilled person. In particular, the performance model may be adapted based on the specific internal combustion engine 1 the internal combustion engine controller 10 is intended to control.
In the second step, the second sub-module 52 of the optimiser module 50 determines a search line in the initial actuator setpoint search space which spans a first cost minima based on the costs associated with the first set of candidate groups of actuator setpoints.
In one embodiment, the search line is determined based on the two candidate groups of actuator setpoints with the lowest costs. For example, as indicated in the search space of
Once the search vector is determined, the sub-module 52 determines a line along the search vector which straddles a cost minimum. Various methods for determining if a minima of a function (i.e. the performance model) lies between two points on a line are known to the skilled person. One example for determining a search line is discussed in more detail below. Once a search line is determined along which a minima is known to lie, the sub-module 52 outputs information defining the search line to the third sub-module 53. It will be appreciated that the search line can be defined in various ways, e.g. as co-ordinates (i.e. two candidate groups of actuator setpoints), or as an equation.
One method for checking if a minima lies along a search line is to evaluate the cost function at a third point (x1) along the search line (i.e. between the two candidate groups of actuator setpoints defining the start and end of the search line). If the third point evaluated has a cost which is lower than either of the two end points of the search line, this indicates that a minima lies on the search line between the two end points. In the event that it is determined that a minima is not present along the search line, the end points of the search line may be extended along the search vector in the initial actuator setpoint search space and re-evaluated. This process may be iterated until a search line straddling a minima (e.g. as shown in
In the third step, the third sub-module 53 of the optimiser module 50 performs a line search along the search line to calculate an optimised group of actuator setpoints associated with the first cost minima. As such, the line search aims to identify the point along the search line in the initial actuator setpoint search space corresponding to the cost minima. Various line searching methods are known to the skilled person for searching for minima of a function along a line.
With reference to the search line of
In the embodiment of
The golden-section line search may iterate the search until the minima along the search line is identified. The golden-section line search may be terminated once a termination criterion is reached. The termination criteria may be based on one more of: a maximum number of iterations, and a reduction in the cost between two iterations falling below a certain threshold (i.e. the search has converged on an optimised group of actuator setpoints).
Once the optimiser module has identified an optimised group of actuator setpoints, the map updating module 40 updates the one or more hypersurfaces of the control maps 30 based on the optimised group of actuator setpoints. The hypersurfaces are updated at the location on each control hypersurface defined by the plurality of input variables, as these are the input variables used to evaluate the cost associated with the candidate groups of actuator setpoints. The hypersurface for each control map may be updated to reflect the actuator setpoints in the optimised group of actuator setpoints at the location on each control hypersurface defined by the plurality of input variables. As such, the map updating module 40 may update the real-time operating point of the internal combustion engine 1 defined by the control maps.
The map updating module 40 may include a further check to determine whether or not to update the control maps based on the optimised group of actuator setpoints. The map updating module 40 may determine a cost difference between the cost associated with the optimised group of actuator setpoints and the cost associated with the candidate group of actuator setpoints corresponding to the location on each hypersurfaces of the control maps defined by the plurality of input variables. If the cost difference is less than an update threshold, the hypersurfaces of the control maps may not be updated. It will be appreciated that for some optimised groups of actuator setpoints, the improvement in performance relative to the current actuator setpoints defined by the locations on the hypersurfaces of the control maps may be relatively small. For some internal combustion engines 1, it may not be desirable to make frequent changes to the actuator setpoints for relatively modest improvements in performance. Thus, where the cost reduction associated with a change in the actuator settings to the optimised setpoints is less than a predetermined threshold, the map updating module may elect not to update the control maps 30. For example, the predetermined threshold may be percentage of the previous cost. That is to say, where the change is less than: 10%, 5%, 3% or 1% difference, the map updating module 40 may not update the control maps 30.
According to a further embodiment of the disclosure, the optimiser module may be configured to iterate the process for calculating the optimised group of actuator setpoints.
As shown in
As will be appreciated by the skilled person, the output of the engine setpoint module 20 may be based on control maps 30 which have previously been updated by the map updating module 40. Thus, the candidate group of actuator setpoints based on the control signal output of the engine setpoint module 20 may reflect a previously calculated optimised hypersurface. As such, the internal combustion engine controller 10 may effectively incorporate a form of memory in which previously calculated optimised hypersurfaces may influence the candidate groups of actuator setpoints evaluated by the optimiser module 50.
Similar to the embodiment of
Once the first optimised actuator setpoints have are calculated, the optimiser module may elect to iterate the solution found by repeating the search process described above. In order to try to improve the optimised actuator setpoints, the optimiser module repeats the search process using an updated search space. As such, rather than performing a stratified sample of the initial actuator setpoint search space, the optimiser module performs a stratified sample of a constrained actuator setpoint search space (i.e. a subset of the initial actuator setpoint search space).
The constrained actuator setpoint search space may be constrained based on the optimised group of actuator setpoints previously calculated (e.g. the first optimised group of actuator setpoints). The search space may be constrained by updating the upper actuator constraint and lower actuator constraint for each actuator used to define the search space for the performing the stratified sample (e.g. the initial actuator setpoint search space). The available search range for each actuator may be reduced by at least: 30%, 40%, 50%, 60%, or 70%. The upper actuator constraint and lower actuator constraint for each actuator may be selected such that the previously calculated optimised group of actuator setpoints is located in the centre of the constrained actuator setpoint search space. Of course, in some examples, it may not be possible to locate the previously calculated optimised group of actuator setpoints in the centre of the constrained actuator setpoint search space, for example, where the previously calculated optimised group of actuator setpoints is close to one or more upper or lower constraints of the initial actuator setpoint search space. In such a case, the constrained actuator setpoint range may be defined from the relevant upper or lower actuator constraint, such that the previously calculated optimised group of actuator setpoints is located as centrally as possible within the constrained actuator setpoint search space.
Once the constrained actuator setpoint search space is determined, the optimiser module 50 is configured to perform a stratified sample of the constrained actuator setpoint search space in order to select a second set of candidate groups of actuator setpoints. The stratified sample of the constrained actuator setpoint search space may be performed in substantially the same manner as the stratified sample of the initial actuator setpoint search space. In some embodiments, one of the candidate groups of actuator setpoints may be the optimised group of actuator setpoints that was previously calculated. Thus, the optimiser module 50 ensures that the previous solution is evaluated in the subsequent iteration, and also reduces the number of candidate groups of actuator setpoints within the second set that need to be evaluated.
The optimiser module 50 evaluates the second set of candidate groups of actuator setpoints according to the performance model of the internal combustion engine and calculates a cost associated with each of the second set of candidate groups of actuator setpoints. The evaluation of each of the second set of candidate groups of actuator setpoints may be performed in substantially the same manner as discussed above for the first set of candidate groups of actuator setpoints.
The optimiser module 50 (e.g. second sub-module 52) then determines a further search line in the constrained actuator setpoint search space which spans a second cost minima based on the costs associated with the second set of candidate groups of actuator setpoints.
The optimiser module 50 (e.g. third sub-module 53) then performs a line search along the further search line to calculate a group of actuator setpoints associated with the second cost minima. The optimiser module may perform a line search substantially as described above.
Once the group of actuator setpoints associated with the second cost minima is calculated, the optimiser module evaluates whether a cost reduction has been achieved relative to the first cost minima (i.e. the previously calculated optimised group of actuator setpoints).The optimiser module 50 updates the optimised group of actuator setpoints based on the group of actuator setpoints associated with the second cost minima if a cost reduction is achieved. If no cost reduction is achieved, the optimised group of actuator setpoints is not updated.
Accordingly, the optimiser module may iterate the calculation of the optimised group of actuator setpoints. It will be appreciated from the embodiment of
As shown in the embodiment of
Once the termination module 54 of the optimiser module 50 terminates the iteration of the optimised actuator setpoints, the optimised actuator setpoints may be evaluated by the map updating module 40 in order to decide whether to update the control maps.
This disclosure describes the operation an internal combustion engine controller. The internal combustion engine controller described herein comprises one or more processors and have access to one or more memory modules. The processing operations performed by the internal combustion engine controller are described in terms of various modules configured to perform various processing tasks. In some embodiments, the various modules may be performed by distinct computer processors; whilst in other embodiments, some, or all of the processing modules may be performed by a single processor. As such, it will be understood that the processing module described herein may be representative of various functions within a computer program executed by one or more processors.
INDUSTRIAL APPLICABILITY
The internal combustion engine controller 10 of this disclosure may be configured to control an internal combustion engine in variety of configurations.
One application may be for controlling the actuator setpoints of an internal combustion engine as illustrated in
Number | Date | Country | Kind |
---|---|---|---|
1905877.5 | Apr 2019 | GB | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2020/025187 | 4/24/2020 | WO | 00 |