Control device, control method, and control program

The control device addresses the challenge of real-time engine control by converting engine models with ReLU structures into linear inequality functions, achieving high-performance and high-speed engine control through reduced calculation load and optimized variable determination.

JP7759029B2Active Publication Date: 2025-10-23TRANSTRON INC +1
View PDF 11 Cites 0 Cited by

Patent Information

Application Number
JP2021177302
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-10-29
Publication Date
2025-10-23
Estimated Expiration
2041-10-29

AI Technical Summary

Technical Problem

Conventional engine control methods using multi-layer neural networks require significant calculation time, making real-time control difficult due to the complexity and nonlinearity of engine dynamics.

Method used

A control device that converts an engine model with a ReLU structure using linear inequality functions and binary variables to reduce calculation load, allowing for high-performance and high-speed engine control by predicting dynamic characteristics and determining manipulated variables.

Benefits of technology

Enables high-accuracy, real-time engine control by reducing calculation time and optimizing manipulated variables, improving engine performance and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007759029000002
    Figure 0007759029000002
  • Figure 0007759029000003
    Figure 0007759029000003
  • Figure 0007759029000004
    Figure 0007759029000004
Patent Text Reader

Abstract

To implement high-performance and high-speed engine control.SOLUTION: A control device 101 calculates an estimated value of a future controlled amount using a converted engine model Mc which is generated by converting an engine model M, from an operation condition of an engine E and a candidate value for an operation amount for controlling the controlled amount. The engine model M is a model that has an activation function of a multilayer neuron structure and ReLU structure and that predicts dynamics of the engine E. The converted engine model Mc is a model for which a weighing coefficient of each neuron, biases and upper / lower limit values of input / output variables have been set on the basis of the engine model M, and for which the activation function of each neuron has been converted using a linear inequality function including a binary variable. The control device 101 determines a value of an amount of operation on the basis of an error between a target value of the controlled amount identified from the operation condition and the estimation value of the controlled amount, and of an amount of change in the operation amount, and outputs the determined value of the amount of operation.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a control device, a control method, and a control program. [Background technology]

[0002] Conventionally, efforts have been made to achieve high-performance control in automobile engine control by reproducing engine models using deep learning in AI (Artificial Intelligence).Automobile engine control is achieved by optimally controlling multiple variables using, for example, a multi-layer neural network (NN) model (a multi-input, multi-output model of the engine).

[0003] In the prior art, for example, for modeling an industrial process, one combines two interconnected MLD (Mixed Logical Dynamical) subsystems to form one combined MLD system. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Special Publication No. 2008-502034 Summary of the Invention [Problem to be solved by the invention]

[0005] However, in the prior art, optimal control of multiple variables using a multi-layer neural network model requires a lot of calculation time, making it difficult to control the engine in real time.

[0006] In one aspect, an object of the present invention is to achieve high-performance and high-speed engine control. [Means for solving the problem]

[0007] In one embodiment, a control device is provided that acquires operating conditions of an engine to be controlled and actual values ​​of controlled variables, and based on an engine model having a multi-layer neuron structure and an activation function with a ReLU structure, and predicting dynamic characteristics of the engine using the operating conditions and manipulated variables of the engine as inputs, sets weight coefficients, biases, and upper and lower limits of input / output variables of each neuron, and converts the activation functions of each neuron using a linear inequality function including binary variables, uses the converted engine model to calculate an estimate of the future controlled variable from the acquired operating conditions and candidate values ​​of the manipulated variable for controlling the controlled variable, and determines a value of the manipulated variable for controlling the controlled variable based on the error between a target value of the controlled variable identified from the operating conditions and the calculated estimate of the controlled variable, and outputs the determined value of the manipulated variable. [Effects of the Invention]

[0008] Advantageous Effects of Invention According to one aspect of the present invention, an effect is achieved in that high-performance and high-speed engine control can be achieved. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is an explanatory diagram illustrating an example of a control method according to the first embodiment. [Figure 2A] FIG. 2A is an explanatory diagram showing an example of an engine model. [Figure 2B] FIG. 2B is an explanatory diagram showing an example of conversion of an engine model. [Figure 3] FIG. 3 is a block diagram showing an example of the hardware configuration of the control device 101. As shown in FIG. [Figure 4] FIG. 4 is a block diagram illustrating an example of a functional configuration of the control device 101 according to the first embodiment. [Figure 5] FIG. 5 is an explanatory diagram showing the change in the controlled amount over time. [Figure 6] FIG. 6 is a flowchart of an example of a control processing procedure of the control device 101 according to the first embodiment. [Figure 7]FIG. 7 is a block diagram illustrating an example of a functional configuration of the control device 101 according to the second embodiment. [Figure 8] FIG. 8 is a flowchart of an example of a control process procedure of the control device 101 according to the second embodiment. [Figure 9] FIG. 9 is a flowchart illustrating an example of a specific processing procedure of the model update processing. [Figure 10] FIG. 10 is a block diagram illustrating an example of a functional configuration of a control device 101 according to the third embodiment. [Figure 11] FIG. 11 is an explanatory diagram showing an example of the contents stored in the error learning table 1100. As shown in FIG. [Figure 12] FIG. 12 is a flowchart of an example of a control process procedure of the control device 101 according to the third embodiment. [Figure 13] FIG. 13 is a flowchart showing an example of a specific processing procedure of the error learning processing. [Figure 14] FIG. 14 is a block diagram illustrating an example of a functional configuration of a control device 101 according to the fourth embodiment. [Figure 15] FIG. 15 is a flowchart of an example of a control process procedure of the control device 101 according to the fourth embodiment. [Figure 16] FIG. 16 is a flowchart illustrating an example of a specific processing procedure of the second model update processing. DETAILED DESCRIPTION OF THE INVENTION

[0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of a control device, a control method, and a control program according to the present invention will be described in detail with reference to the accompanying drawings.

[0011] (Embodiment 1) Fig. 1 is an explanatory diagram showing an example of a control method according to the first embodiment. In Fig. 1, a control device 101 is a computer that controls an engine E. The engine E is, for example, a gasoline engine or a diesel engine of an automobile. Controlling the engine E means controlling, for example, an intake manifold pressure (MAP), an intake air flow rate (MAF), an intake manifold oxygen concentration, and the like.

[0012] Here, automobile engines are sometimes controlled using engine models based on multilayer neural networks (NNs). However, to accurately reproduce the complex phenomena of automobile engines, the number of variables to be considered increases, and the size of the engine model becomes larger. For this reason, conventional techniques require a long calculation time when optimally controlling multiple variables using an engine model.

[0013] Furthermore, existing engine models are dynamic systems that are nonlinear and include characteristics such as first-order lag, second-order lag, and dead time, making it difficult to derive a mathematical model of the inverse function using symbolic manipulation. This makes it impossible to solve the problem analytically, resulting in a high computational load. Therefore, with conventional technology, it is difficult to implement an engine model in an engine control unit and perform on-board real-time control.

[0014] Therefore, in the first embodiment, a control method is described in which an engine model Mc, which is obtained by converting an engine model M having an activation function of a ReLU structure using a linear inequality function including a binary variable, estimates a controlled variable from an operating condition and a manipulated variable, and searches for a manipulated variable that is a target value of the controlled variable, thereby realizing high-performance and high-speed engine control. An example of processing by the control device 101 is described below.

[0015] The control device 101 obtains a converted engine model Mc obtained by converting the engine model M. The engine model M is a model that predicts the dynamic characteristics of the engine E to be controlled. The engine model M has a multi-layer neuron structure and an activation function with a ReLU (Rectified Linear Unit) structure.

[0016] The ReLU structure is a function in which the output value is 0 when the input value to the function is 0 or less, and the output value changes linearly when the input value is greater than 0. The engine model M receives the operating conditions and manipulated variables of the engine E as inputs, and outputs the values ​​(predicted values) of future controlled variables. The operating conditions of the engine E are, for example, the engine speed and the fuel injection amount.

[0017] The controlled variables of the engine E are, for example, the intake manifold pressure (MAP), the intake air flow rate (MAF), the intake manifold oxygen concentration, etc. The manipulated variables of the engine E are, for example, the manipulated variables of the actuators for controlling the controlled variables, such as the turbo opening, the throttle opening, the EGR (Exhaust Gas Recirculation) opening, etc.

[0018] The engine model M can reproduce the dynamic characteristics of the engine E with high accuracy. However, if the engine model M is used as is for engine control, there is a risk that the calculation time for optimal control will increase. For this reason, the control device 101 obtains a converted engine model Mc obtained by converting the engine model M in order to achieve high-performance and high-speed engine control.

[0019] The converted engine model Mc is a model in which the weight coefficients, biases, and upper and lower limits of input and output variables of each neuron (node) are set based on the engine model M, and the activation function of each neuron is converted using a linear inequality function including binary variables. The weight coefficients and biases represent the relationship between the input and output of each neuron (node). The weight coefficient indicates the weight for the input. The bias is used to bias the input value within a certain range.

[0020] The input / output variables are, for example, variables input to the model itself, variables output from the model itself, variables output from each neuron in the model, etc. The upper and lower limits of the input / output variables are set based on the maximum and minimum values ​​of each input / output variable, which are obtained by applying, for example, a Chirp signal or an APRBS (Amplitude Pseudo Random Binary Signal) signal, which is an exhaustive test pattern, to the engine model M.

[0021] An example of engine model conversion will now be described with reference to Figures 2A and 2B. The engine model is, for example, created in advance.

[0022] 2A is an explanatory diagram showing an example of an engine model. In FIG. 2A, engine model 200 is an example of engine model M, and has a multi-layer neuron structure and an activation function with a ReLU structure. Engine model 200 receives inputs of a plurality of operating conditions and manipulated variables of engine E, and outputs future controlled variables.

[0023] Here, the operating conditions are the engine speed (current value, past value) and the fuel injection amount (current value, past value). The manipulated variables are the turbo opening (current value, past value), the throttle opening (current value, past value), and the EGR opening (current value, past value). The past value is, for example, the value one step before. The controlled variable is, for example, the intake manifold pressure (MAP) (predicted value one step later).

[0024] In the engine model 200, for example, nodes 201 and 202 are examples of neurons including a ReLU function. The ReLU function is an activation function of a ReLU structure. 11 (1) indicates the weight applied to the input from u1 to node 201. (1) indicates the bias of node 201.

[0025] Fig. 2B is an explanatory diagram showing an example of engine model conversion. In Fig. 2B, engine model 210 is a simplified version of engine model 200 shown in Fig. 2A. Note that Fig. 2B shows only a portion of engine model 210.

[0026] In the engine model 210, for example, the ReLU function 211 indicates the activation function of the node 201 (see FIG. 2A). w1 indicates the weight applied to the input from u to the node 201. b1 indicates the bias of the node 201. The ReLU function 212 indicates the activation function of the node 202 (see FIG. 2A). w2 indicates the weight applied to the input from the node 201 to the node 202. b2 indicates the bias of the node 202. Note that I indicates a linear function.

[0027] The control device 101 transforms each ReLU function using, for example, propositional logic. The ReLU function is expressed, for example, using the following formula (1).

[0028]

number

[0029] In order to express the condition for case distinction, the control device 101 introduces a binary variable δ into the ReLU function as shown in the following equations (2) and (3). The binary variable δ is a variable that can take only two values, 0 and 1 (a 0-1 variable).

[0030] [f(x)≦0] ⇔ [δ=1] ···(2) [f(x)>0] ⇔ [δ=0] (3)

[0031] The above propositional logic is equivalent to the inequalities of the following equations (4) and (5) being satisfied. Here, M is the maximum value of f(x), m is the minimum value of f(x), and ε is the computer precision. The control device 101 sets the maximum value of the variable output from each neuron of the pre-conversion engine model 210 as M (the upper limit value of the variable output from each neuron). The control device 101 also sets the minimum value of the variable output from each neuron of the pre-conversion engine model 210 as m (the lower limit value of the variable output from each neuron).

[0032] f(x)≦M(1−δ) (4) f(x)≧ε+(m−ε)δ (5)

[0033] By using the binary variable δ, y can be expressed as in the following equation (6).

[0034] y=(1-δ)f(x) (6)

[0035] Inequalities equivalent to the above formula (6) are, for example, the following formulas (7) to (10).

[0036] y≦M(1−δ) (7) y≧m(1−δ) (8) y≦f(x)−mδ (9) y≧f(x)−Mδ (10)

[0037] The control device 101 transforms the engine model 210, for example, by applying the above transformation to all ReLU functions.

[0038] Engine model 220 is an example of a converted engine model Mc, and is a converted engine model obtained by converting engine model 210. Engine model 220 receives a plurality of operating conditions and manipulated variables of engine E as input, and outputs future controlled variables. FIG. 2B shows an excerpt of engine model 220.

[0039] The control device 101 sets the weighting coefficient and bias (e.g., w1, b1) of each neuron (e.g., node 201) of the engine model 210 before conversion as the weighting coefficient and bias of each neuron of the engine model 220 after conversion. Furthermore, the control device 101 sets the upper and lower limit values ​​of a variable (e.g., u) to be input to the engine model 210 before conversion as the upper and lower limit values ​​of a variable to be input to the engine model 220 after conversion. Furthermore, the control device 101 sets the upper and lower limit values ​​of a variable (e.g., y) to be output from the engine model 210 before conversion as the upper and lower limit values ​​of a variable to be output from the engine model 220 after conversion.

[0040] This allows the control device 101 to acquire the converted engine model 220 obtained by converting the engine model 210. The engine model 220 makes it possible to use an algorithm that can quickly solve the problem (mixed integer programming problem), thereby reducing the calculation load. Furthermore, since the problem space can be limited, the solution space becomes smaller, thereby shortening the time required for search.

[0041] However, the conversion of the engine model 210 may be performed in a computer other than the control device 101. In this case, the control device 101 acquires the converted engine model 220, for example, by a user's operation input or by receiving it from the other computer.

[0042] The control device 101 acquires the operating conditions of the engine E and the actual values ​​of the controlled variables. The operating conditions of the engine E are, for example, the engine speed and the fuel injection amount. The controlled variables are, for example, the intake manifold pressure (MAP). The actual values ​​of the controlled variables are acquired, for example, from a sensor provided in the engine E that measures the controlled variables.

[0043] The control device 101 specifies the target value of the controlled variable based on the operating conditions of the engine E. Specifically, for example, the control device 101 refers to a two-dimensional map (not shown) to specify the target value of the controlled variable according to the operating conditions of the engine E. The two-dimensional map is information indicating the target value of the controlled variable in association with the engine operating conditions (for example, a combination of engine speed and fuel injection amount). The target value of the controlled variable is, for example, a value of the controlled variable appropriate for reducing exhaust gas and fuel efficiency.

[0044] The control device 101 calculates an estimated value of the future controlled variable using the converted engine model Mc from the operating conditions of the engine E and candidate values ​​of the manipulated variables for controlling the controlled variables. The estimated value of the future controlled variable represents, for example, the controlled variable of the next step (such as one second later) when controlling the engine E. The candidate values ​​of the manipulated variables are, for example, random values.

[0045] The control device 101 determines the value of the manipulated variable for controlling the controlled variable based on the error between the specified target value of the controlled variable and the calculated estimated value of the controlled variable. Specifically, for example, the control device 101 calculates the estimated value of the future controlled variable using the converted engine model Mc while changing the candidate value of the manipulated variable using the optimization solver sv.

[0046] The optimization solver sv is software that solves problems using, for example, a dual-simplex algorithm. Then, the control device 101 may determine, for example, a candidate value that minimizes the error between the target value of the controlled variable and the estimated value of the controlled variable as the value of the manipulated variable for controlling the controlled variable in the next step.

[0047] Furthermore, if the manipulated variable is changed suddenly to bring the controlled variable to a target value, there is a possibility that, for example, the actuator may break down. Therefore, the control device 101 may determine the value of the manipulated variable for controlling the controlled variable based on the error between the target value of the controlled variable and the estimated value of the controlled variable, and the amount of change in the manipulated variable.

[0048] Here, the change in the manipulated variable is represented by, for example, the difference between the current value of the manipulated variable (current value) and the candidate value of the manipulated variable. More specifically, for example, the control device 101 uses an evaluation function ef to calculate a control evaluation value from the error between the target value of the controlled variable and the estimated value of the controlled variable and the change in the manipulated variable.

[0049] The evaluation function ef is a cost function in which, for example, a term that considers the error between the target value of the controlled variable and the estimated value of the controlled variable and a term that considers the change in the manipulated variable are weighted. The weighting is performed, for example, by normalizing the error between the target value of the controlled variable and the estimated value of the controlled variable to compare it with the change in the manipulated variable, and weighting each term according to its priority.

[0050] The control evaluation value corresponds to, for example, the cost of controlling the controlled variable, and a lower value indicates a higher evaluation. The control device 101 then determines the candidate value of the manipulated variable that minimizes the control evaluation value (cost) as the value of the manipulated variable for controlling the controlled variable in the next step. This makes it possible to determine the value of the manipulated variable that brings the controlled variable as close as possible to the target value without causing a sudden change in the manipulated variable. However, the evaluation function ef may be, for example, a cost function that includes only a term that considers the error between the target value of the controlled variable and the estimated value of the controlled variable.

[0051] The control device 101 outputs the value of the determined manipulated variable. Specifically, for example, the control device 101 outputs the value of the determined manipulated variable to the engine E as the manipulated variable when controlling the controlled variable in the next step.

[0052] In this way, the control device 101 can achieve high-performance, high-speed engine control using a model (converted engine model Mc) that can predict the dynamic characteristics of the engine E with high accuracy. For example, by formulating an engine model of a multilayer neural network using a linear inequality function, it is possible to analytically solve an optimization problem. In addition, examples of activation functions that can be transformed into linear inequality functions include ReLU, Hadlims, Satlins, and tribas. Of these activation functions, by using an activation function with a ReLU structure for the engine model, it is possible to achieve high-accuracy prediction of the dynamic characteristics (controlled variables) of the engine E.

[0053] (Example of hardware configuration of control device 101) Fig. 3 is a block diagram showing an example of the hardware configuration of the control device 101. In Fig. 3, the control device 101 has a CPU (Central Processing Unit) 301, a memory 302, a disk drive 303, a disk 304, a communication I / F (Interface) 305, a portable recording medium I / F 306, and a portable recording medium 307. Furthermore, each component is connected to each other by a bus 300.

[0054] Here, the CPU 301 is responsible for overall control of the control device 101. The CPU 301 may have multiple cores. The memory 302 includes, for example, a read-only memory (ROM), a random access memory (RAM), and a flash ROM. Specifically, for example, the flash ROM stores an OS program, the ROM stores application programs, and the RAM is used as a work area for the CPU 301. The programs stored in the memory 302 are loaded into the CPU 301, causing the CPU 301 to execute the coded processes.

[0055] The disk drive 303 controls reading / writing of data from / to the disk 304 under the control of the CPU 301. The disk 304 stores data written under the control of the disk drive 303. Examples of the disk 304 include a magnetic disk and an optical disk.

[0056] The communication I / F 305 is connected to a network 310 via a communication line, and is connected to an external computer (for example, a real engine system ES shown in FIG. 4, which will be described later) via the network 310. The communication I / F 305 serves as an interface between the network 310 and the inside of the device, and controls input and output of data from and to the external computer. For example, a modem or a LAN adapter can be used as the communication I / F 305.

[0057] Portable recording medium I / F 306 controls reading / writing of data from / to portable recording medium 307 under the control of CPU 301. Portable recording medium 307 stores data written under the control of portable recording medium I / F 306. Examples of portable recording medium 307 include a CD (Compact Disc)-ROM, a DVD (Digital Versatile Disk), and a USB (Universal Serial Bus) memory.

[0058] In addition to the above-described components, the control device 101 may also include, for example, an input device, a display, etc. Furthermore, the control device 101 may not include, for example, the disk drive 303, the disk 304, the portable recording medium I / F 306, and the portable recording medium 307 among the above-described components.

[0059] (Example of functional configuration of control device 101) 4 is a block diagram showing an example of a functional configuration of the control device 101 according to the first embodiment. In FIG. 4, the control device 101 includes a condition detection unit 401, a target value calculation unit 402, an estimation unit 403, an optimization unit 404, and an evaluation value calculation unit 405. The condition detection unit 401 to the evaluation value calculation unit 405 are functions that constitute a control unit, and specifically, the functions are realized by causing the CPU 301 to execute a program stored in a storage device such as the memory 302, the disk 304, or the portable recording medium 307 shown in FIG. 3, or by the communication I / F 305. The processing results of each functional unit are stored in a storage device such as the memory 302 or the disk 304.

[0060] The condition detection unit 401 acquires the operating conditions of the engine E to be controlled and the actual values ​​of the controlled variables. Here, the operating conditions of the engine E are, for example, the engine speed and the fuel injection amount. The controlled variables are, for example, at least one of the intake manifold pressure (MAP), the intake air flow rate (MAF), and the intake manifold oxygen concentration.

[0061] Specifically, for example, the condition detection unit 401 acquires the operating conditions (current values) of the engine E and the actual values ​​(current values) of the controlled variables from the real engine system ES. The real engine system ES is a system for controlling the engine E, and includes, for example, a controller, a sensor, an actuator, etc. The sensor measures, for example, the actual value of the controlled variable.

[0062] The target value calculation unit 402 specifies the control target value of the controlled variable of the engine E based on the acquired operating conditions of the engine E. Specifically, for example, the target value calculation unit 402 refers to a two-dimensional map (not shown) to specify the control target value of the controlled variable according to the operating conditions of the engine E. The two-dimensional map indicates the control target value of the controlled variable in association with, for example, a combination of the engine speed and the fuel injection amount. The control target value of the controlled variable is, for example, a value of the controlled variable appropriate for reducing exhaust gas and fuel efficiency.

[0063] The estimation unit 403 calculates an estimate of a future controlled variable using the converted engine model Mc from the acquired operating conditions of the engine E and the searched values ​​of the controlled variables. Here, the controlled variable is, for example, a controlled variable of an actuator for controlling the controlled variable. The controlled variable is, for example, at least one of a turbo opening, a throttle opening, and an EGR opening.

[0064] The search value of the manipulated variable is a candidate value of the manipulated variable for controlling the controlled variable. The search value of the manipulated variable is searched for, for example, by the optimization unit 404 according to a predetermined search rule, and is provided from the optimization unit 404 to the estimation unit 403. The estimated value of the future controlled variable represents, for example, the controlled variable of the next step when controlling the engine E.

[0065] The converted engine model Mc is obtained by converting the engine model M (see, for example, FIGS. 2A and 2B). The engine model M has a multi-layer neuron structure and an activation function with a ReLU structure, and is a model that predicts the dynamic characteristics of the engine E using the operating conditions and operation amounts of the engine E as inputs.

[0066] The engine model M is a model that receives, for example, a plurality of operating conditions and manipulated variables of the engine E as input and outputs estimated values ​​of future controlled variables. The plurality of operating conditions and manipulated variables are, for example, operating conditions and manipulated variables at each step from the past (for example, four steps ago) to the present time.

[0067] The converted engine model Mc is a model in which the weight coefficients, biases, and upper and lower limits of input and output variables of each neuron are set based on the engine model M, and the activation function of each neuron is converted using a linear inequality function including a binary variable. The engine model M is, for example, created in advance and stored in a storage device such as the memory 302 or the disk 304.

[0068] Specifically, for example, the estimation unit 403 sets the weighting coefficients and biases of each neuron of the pre-conversion engine model M as the weighting coefficients and biases of each neuron of the converted engine model Mc based on the engine model M. Furthermore, the estimation unit 403 sets the upper and lower limit values ​​of the variables to be input to the engine model M as the upper and lower limit values ​​of the variables to be input to the converted engine model Mc.

[0069] Furthermore, the estimation unit 403 sets upper and lower limit values ​​of variables output from the engine model M as upper and lower limit values ​​of variables output from the converted engine model Mc. Furthermore, the estimation unit 403 sets upper and lower limit values ​​of variables output from each neuron of the engine model M as upper and lower limit values ​​of variables output from each neuron (activation function) of the converted engine model Mc.

[0070] The upper and lower limits of the input and output variables are set based on the maximum and minimum values ​​of each input and output variable obtained by, for example, providing a Chirp signal or an APRBS signal as input to the engine model M. A Chirp signal is a sinusoidal signal whose frequency components change continuously with time. An APRBS signal is a signal that randomly combines the amplitudes of square waves. Chirp signals and APRBS signals enable comprehensive test patterns to be realized, making it possible to accurately set the upper and lower limits of the input and output variables. Furthermore, by appropriately limiting the range of each input and output variable, a high-speed, high-performance model (engine model Mc) can be generated.

[0071] However, the conversion of the engine model M may be performed in the control device 101, or may be performed in another computer different from the control device 101. When the conversion is performed by another computer, the control device 101 acquires the converted engine model Mc, for example, by a user's operation input or by receiving it from the other computer.

[0072] Specifically, for example, the estimation unit 403 calculates an estimate of a future controlled variable by inputting the operating conditions of the engine E and search values ​​of the manipulated variables into the converted engine model Mc. More specifically, for example, the estimation unit 403 calculates an estimate of a controlled variable one step later by inputting the operating conditions (past values) and the manipulated variables (past values) from k steps ago (k is a natural number of 2 or more) to one step ago, and the operating conditions (present values) and search values ​​of the manipulated variables into the converted engine model Mc. The operating conditions (past values) and the manipulated variables (past values) of each past step are stored in a storage device such as the memory 302 or the disk 304.

[0073] In this case, the estimation unit 403 may calculate an estimate of the controlled amount for a period from the current time to the future (for example, 4 seconds). For example, one step is set to "1 second" and the period from the current time to the future is set to "4 seconds." In this case, the estimation unit 403 calculates an estimate of the controlled amount for each step up to 4 steps from now.

[0074] Here, when calculating the estimated value of the controlled variable at each step, the operating conditions at each step are fixed to, for example, the operating conditions (current values). Furthermore, a combination pattern of searched values ​​of the manipulated variables at each step is searched for by the optimization unit 404 according to a predetermined search rule, and is provided from the optimization unit 404 to the estimation unit 403.

[0075] The optimization unit 404 determines the value of the manipulated variable for controlling the controlled variable based on the error between the control target value of the controlled variable and the calculated estimated value of the controlled variable. Specifically, for example, the optimization unit 404 may determine the search value that minimizes the error between the control target value of the controlled variable and the estimated value of the controlled variable as the value of the manipulated variable for controlling the controlled variable in the next step.

[0076] The optimization unit 404 may also determine the value of the manipulated variable for controlling the controlled variable based on the error between the control target value of the controlled variable and the estimated value of the controlled variable, and the amount of change in the manipulated variable. Here, the amount of change in the manipulated variable is represented, for example, by the difference between the current value (current value) of the manipulated variable and the search value of the manipulated variable.

[0077] Specifically, for example, the evaluation value calculation unit 405 calculates a control evaluation value for each search value of the manipulated variable based on the error between the control target value of the controlled variable and the estimated value of the controlled variable, and the amount of change in the manipulated variable. The control evaluation value is an index value that represents the cost of controlling the controlled variable. For example, a lower control evaluation value indicates a higher evaluation.

[0078] More specifically, for example, the evaluation value calculation unit 405 calculates a control evaluation value for each search value of the manipulated variable using an evaluation function ef. The evaluation function ef is a cost function in which, for example, a term that considers the error between the control target value of the controlled variable and the estimated value of the controlled variable and a term that considers the amount of change in the manipulated variable are weighted (see, for example, FIG. 1).

[0079] Then, the optimization unit 404 determines the value of the manipulated variable for controlling the controlled variable from the search values ​​of the manipulated variables, for example, based on the calculated control evaluation value. More specifically, for example, the optimization unit 404 determines the search value that minimizes the control evaluation value from among the search values ​​of the manipulated variables as the value of the manipulated variable for controlling the controlled variable.

[0080] The search for the manipulated variable by the optimization unit 404 may be performed, for example, until the minimum amount of change in the control evaluation value is almost eliminated, or may be performed a specified number of times.

[0081] In addition, there are cases where an estimated value of the controlled variable for a period extending from the current time to the future is calculated. For example, one step is set to "1 second" and the period extending from the current time to the future is set to "4 seconds." In this case, the optimization unit 404 calculates a control evaluation value for each combination pattern of the search values ​​of the manipulated variables at each step up to four steps later using the evaluation function ef.

[0082] Then, the optimization unit 404 calculates the total (or average) of the control evaluation values ​​calculated for each step for each combination pattern. Next, the optimization unit 404 identifies, from among the combination patterns, the combination pattern that minimizes the total (or average) of the calculated control evaluation values. Then, the optimization unit 404 may determine the search value of the manipulated variable for the first step (next step) in the identified combination pattern as the value of the manipulated variable for controlling the controlled variable.

[0083] This makes it possible to improve the accuracy in determining the manipulated variable to bring the controlled variable as close as possible to the control target value while suppressing abrupt changes in the manipulated variable.

[0084] Furthermore, the optimization unit 404 outputs the determined values ​​of the manipulated variables. Specifically, for example, the optimization unit 404 outputs the determined values ​​of the manipulated variables to the real engine system ES as the manipulated variables for controlling the controlled variables in the next step. The real engine system ES controls the engine E based on the values ​​of the manipulated variables output from the control device 101 (optimization unit 404).

[0085] Specifically, for example, in the actual engine system ES, the actuator adjusts the manipulated variable (e.g., turbo opening) for the next step to the value of the output manipulated variable under the control of the controller, thereby controlling the controlled variable (e.g., intake manifold pressure) of the engine E.

[0086] Furthermore, the activation function of the ReLU structure included in the engine model M may be, for example, a Leaky ReLU structure. The Leaky ReLU structure is a function in which the output value changes linearly both when the input value to the function is equal to or less than 0 and when it is greater than 0, and the slope differs across 0. By using the activation function of the Leaky ReLU structure included in the engine model M as an activation function of the Leaky ReLU structure, the accuracy of predicting the dynamic characteristics of the engine E can be improved.

[0087] The control device 101 may be realized, for example, by an autonomous driving control unit of an automobile (control target). The autonomous driving control unit is, for example, an ECU (Engine Control Unit). The control device 101 may also be realized by another computer capable of communicating with the autonomous driving control unit of the automobile (control target). The other computer may be, for example, a server, a smartphone, or a PC (Personal Computer). The control device 101 may also be realized, for example, by an application-specific IC such as a standard cell or a structured ASIC (Application Specific Integrated Circuit) or a PLD (Programmable Logic Device) such as an FPGA.

[0088] (Example of estimating the controlled variable taking into account modeling errors and drift due to sensor degradation) Here, there is a risk that the prediction accuracy of the dynamic characteristics of the engine E will be reduced due to modeling errors in the converted engine model Mc and drift (deviations in measurement values) caused by sensor deterioration.

[0089] Fig. 5 is an explanatory diagram showing the change over time of the controlled variable. In Fig. 5, graph 501 shows the change over time of the actual value of the controlled variable. Graph 502 shows the change over time of the estimated value of the controlled variable. d(t) shows the error between graphs 501 and 502 at time t. d(t) represents the error caused by, for example, modeling error or the influence of sensor degradation.

[0090] Therefore, the estimation unit 403 may calculate an estimate of the future controlled quantity by taking into consideration the error between the actual value (current value) of the controlled quantity at the current time and the estimate of the controlled quantity for the current time. The estimate of the controlled quantity for the current time is an estimate of the controlled quantity for the current time that was estimated before the current time.

[0091] Specifically, for example, the estimation unit 403 may calculate an estimate of the future controlled amount using the following equation (11): p (t+j) indicates the estimated value of the controlled variable. y(t) indicates the actual value of the controlled variable at the current time. y M (t+j) indicates the estimated value of the controlled variable j steps ahead. M (t) indicates the estimated value of the controlled variable for the current time that was estimated before the current time.

[0092] y p (t+j)=y(t)+y M (t+j)-y M (t) (11)

[0093] This makes it possible to take into account the effects of modeling errors and sensor deterioration, and to prevent a decrease in the accuracy of prediction of the dynamic characteristics of the engine E.

[0094] (Control processing procedure of the control device 101) Next, the control processing procedure of the control device 101 will be described.

[0095] Fig. 6 is a flowchart showing an example of a control processing procedure of the control device 101 according to the first embodiment. In the flowchart of Fig. 6, first, the control device 101 acquires the operating conditions of the engine E to be controlled and the actual values ​​of the controlled variables (step S601). Then, the control device 101 specifies the control target values ​​of the controlled variables of the engine E based on the acquired operating conditions of the engine E (step S602).

[0096] Next, the control device 101 acquires search values ​​of manipulated variables for controlling the controlled variables (step S603). Then, the control device 101 calculates an estimated value of the future controlled variable using the converted engine model Mc from the acquired operating conditions of the engine E and the search values ​​of the manipulated variables (step S604).

[0097] Next, the control device 101 calculates a control evaluation value from the error between the control target value of the controlled variable and the estimated value of the controlled variable, and the amount of change in the manipulated variable, using the evaluation function ef (step S605). The amount of change in the manipulated variable is represented, for example, by the difference between the current value of the manipulated variable and the search value of the manipulated variable.

[0098] Then, the control device 101 determines whether the calculated control evaluation value is a control evaluation value. min It is determined whether the control evaluation value is smaller than the control evaluation value (step S606). min is "null" in the initial state. min If it is in the initial state, the control device 101 proceeds to step S607.

[0099] Here, the control evaluation value is min If the above is true (step S606: No), the control device 101 proceeds to step S609. min If it is smaller (step S606: Yes), the control device 101 stores the obtained search value of the manipulated variable as a provisional optimum value (step S607).

[0100] Then, the control device 101 sets the calculated control evaluation value as the control evaluation value min (Step S608). Next, the control device 101 determines whether or not to end the search for the manipulated variable (Step S609). The search for the manipulated variable is performed, for example, by using a control evaluation value min The process is repeated until the amount of change in the

[0101] If the search for the manipulated variable is not to be ended (step S609: No), the control device 101 returns to step S603. On the other hand, if the search for the manipulated variable is to be ended (step S609: Yes), the control device 101 outputs the stored tentative optimum value of the manipulated variable to the real engine system ES (step S610), and ends the series of processes according to this flowchart.

[0102] This makes it possible to control the controlled variables of the engine E (e.g., intake manifold pressure (MAP), intake air flow rate (MAF), intake manifold oxygen concentration, etc.) using a high-precision, high-speed engine model (converted engine model Mc).

[0103] As described above, the control device 101 according to the first embodiment can acquire the operating conditions of the engine E to be controlled and the actual values ​​of the controlled variables, and can calculate an estimate of a future controlled variable using a converted engine model Mc obtained by converting the engine model M from the operating conditions of the engine E and search values ​​of the manipulated variables. The engine model M has a multi-layer neuron structure and an activation function with a ReLU structure, and is a model that predicts the dynamic characteristics of the engine E using the operating conditions and the manipulated variables of the engine E as inputs. The converted engine model Mc is a model in which weighting coefficients, biases, and upper and lower limits of input / output variables of each neuron are set based on the engine model M, and the activation function of each neuron is converted using a linear inequality function including a binary variable. The control device 101 can then determine a value of the manipulated variable for controlling the controlled variable based on the error between the control target value of the controlled variable and the estimate of the controlled variable, and output the determined value of the manipulated variable.

[0104] As a result, the control device 101 can achieve high-performance and high-speed engine control using an engine model (converted engine model Mc) that can accurately predict the dynamic characteristics of the engine E. For example, by appropriately controlling the intake manifold pressure (MAP), intake air flow rate (MAF), intake manifold oxygen concentration, etc. of the automobile, it is possible to perform real-time control of the engine E that reduces exhaust gas and fuel consumption.

[0105] Furthermore, the control device 101 can determine the value of the manipulated variable for controlling the controlled variable based on the error between the control target value of the controlled variable and the estimated value of the controlled variable, and the difference between the current value of the manipulated variable and the search value of the manipulated variable. Specifically, for example, the control device 101 calculates a control evaluation value representing the cost of controlling the controlled variable using an evaluation function ef for each search value of the manipulated variable. Then, the control device 101 determines the value of the manipulated variable for controlling the controlled variable from the search values ​​of the manipulated variables based on the calculated control evaluation value.

[0106] This allows the control device 101 to determine the manipulated variable that brings the controlled variable as close as possible to the control target value while suppressing abrupt changes in the manipulated variable.

[0107] Furthermore, according to the control device 101, at least one of the intake manifold pressure (MAP), the intake air flow rate (MAF), and the intake manifold oxygen concentration can be set as the controlled variable.

[0108] This allows the control device 101 to control the engine E by adjusting the intake manifold pressure (MAP), the intake air flow rate (MAF), the intake manifold oxygen concentration, and the like.

[0109] Furthermore, the control device 101 can set the operating conditions of the engine E as the engine speed and the fuel injection amount.

[0110] This allows the control device 101 to determine the control target value of the controlled variable from the engine speed of the engine E and the fuel injection amount.

[0111] Furthermore, the control device 101 can use at least one of the turbo opening, the throttle opening, and the EGR opening as the manipulated variable.

[0112] As a result, the control device 101 can adjust the turbo opening, throttle opening, EGR opening, etc. to control the intake manifold pressure (MAP), intake air flow rate (MAF), intake manifold oxygen concentration, etc. The turbo opening, for example, is a manipulated variable for controlling the intake manifold pressure (MAP). The throttle opening, for example, is a manipulated variable for controlling the intake air flow rate (MAF). The EGR opening, for example, is a manipulated variable for controlling the intake manifold oxygen concentration.

[0113] Furthermore, according to the control device 101, the activation function included in the engine model M can be an activation function with a Leaky ReLU structure.

[0114] This allows the control device 101 to improve the accuracy of predicting the dynamic characteristics of the engine E.

[0115] (Embodiment 2) Next, a control device 101 according to a second embodiment will be described. In the second embodiment, a case will be described in which the converted engine model Mc is updated, taking into consideration that the prediction accuracy of the dynamic characteristics of the engine E may be reduced due to aging or environmental changes of the engine E. Note that parts similar to those described in the first embodiment are given the same reference numerals, and illustrations and descriptions thereof will be omitted.

[0116] (Example of functional configuration of control device 101) First, an example of the functional configuration of the control device 101 will be described.

[0117] 7 is a block diagram showing an example of a functional configuration of a control device 101 according to the second embodiment. In FIG. 7, the control device 101 includes a condition detection unit 401, a target value calculation unit 402, an estimation unit 403, an optimization unit 404, an evaluation value calculation unit 405, and an update unit 701. The condition detection unit 401 to the evaluation value calculation unit 405 and the update unit 701 are functions that constitute a control unit, and specifically, the functions are realized by causing the CPU 301 to execute a program stored in a storage device such as the memory 302, the disk 304, or the portable recording medium 307 shown in FIG. 3, or by the communication I / F 305. The processing results of each functional unit are stored in a storage device such as the memory 302 or the disk 304.

[0118] Hereinafter, functional units different from those of the control device 101 according to the first embodiment will be described.

[0119] The update unit 701 updates the converted engine model Mc based on teacher data indicating the actual values ​​of the controlled variables corresponding to the combinations of the operating conditions and the values ​​of the manipulated variables of the engine E. Here, the combinations of the operating conditions and the values ​​of the manipulated variables are, for example, the combinations of the operating conditions (current values) at time t and the output values ​​of the manipulated variables.

[0120] The output value of the manipulated variable is the value of the manipulated variable (e.g., the search value with the lowest cost) output from the control device 101 to the actual engine system ES at time t. The actual value of the controlled variable is, for example, the actual value of the controlled variable one step later, controlled according to the output value of the manipulated variable. However, for example, the actual value of the controlled variable at the current time (time t) may be used as the actual value of the controlled variable.

[0121] The teacher data is created, for example, every time the control device 101 controls the engine E (actual engine system ES) and is stored in a storage device such as the memory 302 or the disk 304.

[0122] Specifically, for example, the update unit 701 calculates the error between the actual value (current value) of the controlled variable acquired by the condition detection unit 401 and the estimated value of the controlled variable calculated by the estimation unit 403. The estimated value to be compared with the actual value (current value) of the controlled variable may be the estimated value of the controlled variable calculated last time (the estimated value when the cost is minimum). Alternatively, the actual value of the controlled variable to be compared with the estimated value of the controlled variable may be the actual value of the controlled variable one step later, which is controlled in accordance with the value of the manipulated variable output this time.

[0123] The update unit 701 then determines whether the calculated error is equal to or greater than a threshold value. The threshold value can be set arbitrarily. If the error is less than the threshold value, the update unit 701 does not update the converted engine model Mc. On the other hand, if the error is equal to or greater than the threshold value, the update unit 701 updates the converted engine model Mc based on the training data.

[0124] More specifically, for example, if the error is equal to or greater than a threshold, the update unit 701 performs machine learning based on training data to update the weight coefficients and biases of each neuron in the converted engine model Mc so as to reduce the error between the estimated value and the actual value of the controlled variable. The update unit 701 also acquires the maximum value of input / output for each neuron in each layer during learning, and if the maximum value exceeds the existing maximum value, updates the maximum value of input / output for that neuron. Similarly, the update unit 701 acquires the minimum value of input / output for each neuron in each layer during learning, and if the minimum value falls below the existing minimum value, updates the minimum value of input / output for that neuron.

[0125] When the converted engine model Mc is updated, the estimation unit 403 uses the updated converted engine model Mc to calculate an estimated value of the future controlled variable from the acquired operating conditions of the engine E and the search value of the manipulated variable.

[0126] (Control processing procedure of the control device 101) Next, the control processing procedure of the control device 101 will be described.

[0127] Fig. 8 is a flowchart showing an example of a control processing procedure of the control device 101 according to the second embodiment. In the flowchart of Fig. 8, first, the control device 101 acquires the operating conditions of the engine E to be controlled and the actual values ​​of the controlled variables (step S801). Then, the control device 101 specifies the control target values ​​of the controlled variables of the engine E based on the acquired operating conditions of the engine E (step S802).

[0128] Next, the control device 101 executes a model update process (step S803). The model update process is a process for updating the converted engine model Mc. A specific procedure of the model update process will be described later with reference to FIG.

[0129] Next, the control device 101 acquires search values ​​of manipulated variables for controlling the controlled variables (step S804). Then, the control device 101 calculates an estimated value of the future controlled variable using the converted engine model Mc from the acquired operating conditions of the engine E and the search values ​​of the manipulated variables (step S805).

[0130] Next, the control device 101 calculates a control evaluation value from the error between the control target value of the controlled variable and the estimated value of the controlled variable, and the amount of change in the manipulated variable, using the evaluation function ef (step S806). The amount of change in the manipulated variable is represented, for example, by the difference between the current value of the manipulated variable and the search value of the manipulated variable.

[0131] Then, the control device 101 determines whether the calculated control evaluation value is a control evaluation value. min It is determined whether the control evaluation value is smaller than the control evaluation value (step S807). min is "null" in the initial state. min If it is in the initial state, the control device 101 proceeds to step S808.

[0132] Here, the control evaluation value is min If the above is true (step S807: No), the control device 101 proceeds to step S810. minIf it is smaller (step S807: Yes), the control device 101 stores the obtained search value of the manipulated variable as a provisional optimum value (step S808).

[0133] Then, the control device 101 sets the calculated control evaluation value as the control evaluation value min (Step S809). Next, the control device 101 determines whether or not to end the search for the manipulated variable (Step S810). The search for the manipulated variable is performed, for example, by using a control evaluation value min The process is repeated until the amount of change in the

[0134] If the search for the manipulated variable is not to be ended (step S810: No), the control device 101 returns to step S804. On the other hand, if the search for the manipulated variable is to be ended (step S810: Yes), the control device 101 outputs the stored tentative optimum value of the manipulated variable to the real engine system ES (step S811), and ends the series of processes according to this flowchart.

[0135] This makes it possible to use a highly accurate and high-speed engine model (the converted engine model Mc) to control the controlled variables of the engine E. Furthermore, the converted engine model Mc can be updated sequentially.

[0136] Next, a specific processing procedure for the model update processing in step S803 will be described with reference to FIG.

[0137] 9 is a flowchart showing an example of a specific processing procedure of the model update processing. In the flowchart of FIG. 9, first, the control device 101 acquires an estimated value of the controlled variable calculated using the converted engine model Mc (step S901). This estimated value may be, for example, the estimated value of the controlled variable calculated during the previous control (the estimated value when the cost is minimum). Alternatively, the control device 101 may acquire, for example, a search value of the manipulated variable for controlling the controlled variable, and perform calculation using the converted engine model Mc from the acquired operating conditions of the engine E and the search value of the manipulated variable to acquire the estimated value of the controlled variable.

[0138] Next, the control device 101 calculates the error between the acquired estimated value of the controlled variable and the actual value (current value) of the controlled variable acquired in step S801 (step S902), and then determines whether the calculated error is equal to or greater than a threshold value (step S903).

[0139] If the error is less than the threshold (step S903: No), the control device 101 returns to the step that called the model update process. On the other hand, if the error is equal to or greater than the threshold (step S903: Yes), the control device 101 updates the converted engine model Mc based on the teacher data so as to reduce the error between the estimated value and the actual value of the controlled variable (step S904), and returns to the step that called the model update process.

[0140] This allows the converted engine model Mc to be updated successively in accordance with the error between the estimated value and the actual value (current value) of the controlled variable.

[0141] As described above, according to the control device 101 of the second embodiment, by successively updating the converted engine model Mc, it is possible to prevent a decrease in prediction accuracy due to aging or environmental changes of the engine E.

[0142] (Embodiment 3) Next, a control device 101 according to a third embodiment will be described. In the third embodiment, a case will be described in which the predicted value of the controlled variable is corrected in consideration of the possibility that the prediction accuracy of the dynamic characteristics of the engine E may decrease due to aging or environmental changes of the engine E. Note that parts similar to those described in the first and second embodiments will be assigned the same reference numerals and will not be illustrated or described again.

[0143] (Example of functional configuration of control device 101) First, an example of the functional configuration of the control device 101 will be described.

[0144] 10 is a block diagram showing an example of a functional configuration of a control device 101 according to the third embodiment. In FIG. 10, the control device 101 includes a condition detection unit 401, a target value calculation unit 402, an estimation unit 403, an optimization unit 404, an evaluation value calculation unit 405, and an error learning unit 1001. The condition detection unit 401 to the evaluation value calculation unit 405 and the error learning unit 1001 are functions that constitute a control unit, and specifically, the functions are realized by causing the CPU 301 to execute a program stored in a storage device such as the memory 302, the disk 304, or the portable recording medium 307 shown in FIG. 3, or by the communication I / F 305. The processing results of each functional unit are stored in a storage device such as the memory 302 or the disk 304.

[0145] Hereinafter, functional units different from those of the control device 101 according to the first and second embodiments will be described.

[0146] The estimation unit 403 corrects the calculated estimated value of the controlled variable by referring to correction information indicating the correction value of the controlled variable corresponding to the operating condition of the engine E. Specifically, for example, the estimation unit 403 corrects the estimated value of the controlled variable by referring to an error learning table 1100 as shown in FIG.

[0147] The error learning table 1100 may be prepared in advance, or may be prepared and updated sequentially while the control device 101 is controlling the engine E. The error learning table 1100 is realized by a storage device such as the memory 302 or the disk 304. Here, the contents stored in the error learning table 1100 will be described.

[0148] Fig. 11 is an explanatory diagram showing an example of the contents stored in the error learning table 1100. In Fig. 11, the error learning table 1100 has fields for operating conditions (engine speed, fuel injection amount) and correction values, and stores correction information (for example, correction information 1100-1) as a record by setting information in each field.

[0149] Here, the operating conditions (engine speed, fuel injection amount) are a combination of engine speed and fuel injection amount, which are operating conditions of engine E. The correction value is a value for correcting the estimated value of the controlled variable of engine E. Error learning table 1100 stores, for each combination of engine speed and fuel injection amount, a correction value corresponding to that combination.

[0150] For example, the acquired operating conditions (current values) of engine E are assumed to be "engine speed A1, fuel injection amount B1." In this case, estimation unit 403 refers to error learning table 1100 and identifies correction value C1 corresponding to the combination of engine speed A1 and fuel injection amount B1. Error learning unit 1001 then adds the identified correction value C1 to the calculated estimated value of the controlled variable, thereby correcting the estimated value of the controlled variable.

[0151] In this case, the optimization unit 404 determines the value of the manipulated variable for controlling the controlled variable using the error between the corrected estimated value of the controlled variable. Specifically, for example, the optimization unit 404 determines the value of the manipulated variable for controlling the controlled variable based on the error between the control target value of the controlled variable and the corrected estimated value of the controlled variable, and the amount of change in the manipulated variable.

[0152] Note that there may be cases where a correction value corresponding to the operating condition (current value) of engine E does not exist in error learning table 1100. In this case, estimation unit 403 may identify a correction value corresponding to the operating condition that is most similar to the operating condition (current value) of engine E. Alternatively, estimation unit 403 may use interpolation processing to find a correction value corresponding to the operating condition from the most similar operating condition. The operating condition that is most similar to the operating condition (current value) is, for example, an operating condition in which the sum of the error in engine speed and the error in fuel injection amount between the operating condition (current value) and the operating condition is the smallest. Furthermore, if there is no correction value corresponding to the operating condition (current value) of engine E, estimation unit 403 may not correct the estimated value of the controlled variable.

[0153] Error learning unit 1001 learns a correction value of the controlled variable corresponding to the operating conditions of engine E. Specifically, for example, error learning unit 1001 calculates the error between the actual value (current value) of the controlled variable acquired by condition detection unit 401 and the estimated value of the controlled variable calculated by estimation unit 403. Error learning unit 1001 may also calculate the error between the actual value (current value) of the controlled variable acquired by condition detection unit 401 and the estimated value of the controlled variable corrected by estimation unit 403.

[0154] The estimated value (or corrected estimated value) to be compared with the actual value (current value) of the controlled variable may be the previously calculated estimated value of the controlled variable (the estimated value when the cost is minimum). Alternatively, the actual value of the controlled variable to be compared with the estimated value of the controlled variable may be the actual value of the controlled variable one step later, which is controlled according to the value of the manipulated variable output this time.

[0155] Then, error learning unit 1001 determines whether the calculated error is equal to or greater than a threshold value. The threshold value can be set arbitrarily. If the error is equal to or greater than the threshold value, error learning unit 1001 updates error learning table 1100, for example, based on the calculated error so as to reduce the error between the estimated value and the actual value of the controlled variable. On the other hand, if the error is less than the threshold value, error learning unit 1001 does not update error learning table 1100.

[0156] To explain in more detail, for example, when the error is equal to or greater than a threshold value, error learning unit 1001 associates the error between the actual value (current value) of the controlled variable and the estimated value (or corrected estimated value) of the controlled variable with the operating condition (current value) of engine E and stores the error in error learning table 1100. At this time, when there is a past error corresponding to the same operating condition as the operating condition (current value) of engine E, error learning unit 1001 may, for example, associate the average value (which may be a maximum value, a minimum value, etc.) of the past errors with the operating condition (current value) of engine E and store the average value in error learning table 1100.

[0157] (Control processing procedure of the control device 101) Next, the control processing procedure of the control device 101 will be described.

[0158] 12 is a flowchart showing an example of a control processing procedure of the control device 101 according to the third embodiment. In the flowchart of FIG. 12, first, the control device 101 acquires the operating conditions of the engine E to be controlled and the actual values ​​of the controlled variables (step S1201). Then, the control device 101 specifies the control target values ​​of the controlled variables of the engine E based on the acquired operating conditions of the engine E (step S1202).

[0159] Next, the control device 101 executes an error learning process (step S1203). The error learning process is a process for updating the error learning table 1100. A specific procedure for the error learning process will be described later with reference to FIG.

[0160] Next, the control device 101 acquires search values ​​of manipulated variables for controlling the controlled variables (step S1204). Then, the control device 101 calculates an estimated value of the future controlled variable using the converted engine model Mc from the acquired operating conditions of the engine E and the search values ​​of the manipulated variables (step S1205).

[0161] Next, the control device 101 corrects the calculated estimated value of the controlled variable with reference to the error learning table 1100 (step S1206). Specifically, for example, the control device 101 refers to the error learning table 1100 to identify a correction value corresponding to the operating condition of the engine E acquired in step S1201. Then, the control device 101 corrects the estimated value of the controlled variable by adding the identified correction value to the calculated estimated value of the controlled variable.

[0162] Next, the control device 101 calculates a control evaluation value from the error between the control target value of the controlled variable and the corrected estimated value of the controlled variable, and the amount of change in the manipulated variable, using the evaluation function ef (step S1207). The amount of change in the manipulated variable is represented, for example, by the difference between the current value of the manipulated variable and the search value of the manipulated variable.

[0163] Then, the control device 101 determines whether the calculated control evaluation value is a control evaluation value. min It is determined whether the control evaluation value is smaller than the control evaluation value (step S1208). min is "null" in the initial state. min If it is in the initial state, the control device 101 proceeds to step S1209.

[0164] Here, the control evaluation value is min If the above is true (step S1208: No), the control device 101 proceeds to step S1211. min If it is smaller (step S1208: Yes), the control device 101 stores the obtained search value of the manipulated variable as a provisional optimum value (step S1209).

[0165] Then, the control device 101 sets the calculated control evaluation value as the control evaluation value min (Step S1210). Next, the control device 101 determines whether or not to end the search for the manipulated variable (Step S1211). The search for the manipulated variable is performed, for example, by using a control evaluation value min The process is repeated until the amount of change in the

[0166] If the search for the manipulated variable is not to be ended (step S1211: No), the control device 101 returns to step S1204. On the other hand, if the search for the manipulated variable is to be ended (step S1211: Yes), the control device 101 outputs the stored tentative optimum value of the manipulated variable to the real engine system ES (step S1212), and ends the series of processes according to this flowchart.

[0167] This makes it possible to control the controlled variable of the engine E using a highly accurate and high-speed engine model (the converted engine model Mc) and the error learning table 1100. In addition, the error learning table 1100 can be updated successively.

[0168] Next, a specific processing procedure of the error learning processing in step S1203 will be described with reference to FIG.

[0169] FIG. 13 is a flowchart showing an example of a specific processing procedure of the error learning process. In the flowchart of FIG. 13, first, the control device 101 acquires an estimate of the controlled variable calculated using the converted engine model Mc (step S1301). This estimate may be, for example, an estimate of the controlled variable calculated during the previous control (an estimate when the cost is minimum). Alternatively, the control device 101 may acquire a search value of the manipulated variable for controlling the controlled variable, and calculate the estimate of the controlled variable using the converted engine model Mc from the acquired operating conditions of the engine E and the search value of the manipulated variable. Alternatively, this estimate may be a corrected estimate of the controlled variable obtained by correcting the estimate of the controlled variable calculated using the converted engine model Mc using the error learning table 1100.

[0170] Next, the control device 101 calculates the error between the acquired estimated value of the controlled variable and the actual value (current value) of the controlled variable acquired in step S1201 (step S1302), and then determines whether the calculated error is equal to or greater than a threshold value (step S1303).

[0171] If the error is less than the threshold (step S1303: No), the control device 101 returns to the step that called the error learning process. On the other hand, if the error is equal to or greater than the threshold (step S1303: Yes), the control device 101 updates the error learning table 1100 so as to reduce the error between the estimated value and the actual value of the controlled variable (step S1304), and returns to the step that called the error learning process.

[0172] This allows the error learning table 1100 to be updated successively in accordance with the error between the estimated value and the actual value (current value) of the controlled variable.

[0173] As described above, the control device 101 according to the third embodiment can correct the estimated value of the controlled variable calculated using the converted engine model Mc, taking into account aging and environmental changes of the engine E. This can prevent a decrease in prediction accuracy due to aging and environmental changes of the engine E.

[0174] (Fourth embodiment) Next, a control device 101 according to a fourth embodiment will be described. In the fourth embodiment, a case will be described in which at least one of the thermal efficiency, the maximum rate of pressure rise in the cylinder, the torque, the combustion start position, the combustion center of gravity, and exhaust gas (Nox, soot, CO, HC, PM) is estimated as a controlled variable of the engine E. Note that the same parts as those described in the first to third embodiments are denoted by the same reference numerals, and illustrations and descriptions thereof will be omitted.

[0175] (Example of functional configuration of control device 101) First, an example of the functional configuration of the control device 101 will be described.

[0176] Fig. 14 is a block diagram showing an example of a functional configuration of a control device 101 according to a fourth embodiment. In Fig. 14, the control device 101 includes a condition detection unit 1401, a fuel index calculation unit 1402, a target value calculation unit 1403, an estimation unit 1404, an optimization unit 1405, an evaluation value calculation unit 1406, and an update unit 1407. The condition detection unit 1401 to the update unit 1407 are functions that constitute a control unit, and specifically, the functions are realized by causing the CPU 301 to execute a program stored in a storage device such as the memory 302, the disk 304, or the portable recording medium 307 shown in Fig. 3, or by the communication I / F 305. The processing results of each functional unit are stored in a storage device such as the memory 302 or the disk 304.

[0177] The condition detection unit 1401 acquires the operating conditions and state quantities of the engine E to be controlled. Here, the operating conditions of the engine E are, for example, the engine speed and the fuel injection amount. The state quantities are, for example, the excess air ratio, the fuel injection pressure, the intake manifold pressure, the intake manifold oxygen concentration, the engine in-cylinder pressure, and exhaust gases (Nox, soot, CO, HC, PM). Specifically, for example, the condition detection unit 1401 acquires the operating conditions (current values) and the state quantities (current values) of the engine E from the actual engine system ES.

[0178] The fuel index calculation unit 1402 calculates the thermal efficiency, the maximum pressure rise rate in the cylinder, the torque, the combustion start position, and the combustion center of gravity from the acquired engine cylinder pressure. The fuel index calculation unit 1402 then sets the calculation result together with the acquired exhaust gas (Nox, soot, CO, HC, PM) as a combustion index for the engine E. The combustion index for the engine E is used as the actual value of the controlled variable.

[0179] The target value calculation unit 1403 specifies the control target values ​​of the engine E based on the acquired operating conditions of the engine E. The control target values ​​include, for example, a target thermal efficiency, a target maximum pressure rise rate in a cylinder, a target torque, a target combustion start position, a target combustion center of gravity, and target exhaust gases (Nox, soot, CO, HC, PM).

[0180] Specifically, for example, the target value calculation unit 1403 refers to a two-dimensional map (not shown) to identify a control target value according to the operating conditions of the engine E. The two-dimensional map indicates the control target value in association with, for example, a combination of the engine speed and the fuel injection amount.

[0181] The estimation unit 1404 calculates estimated values ​​of future controlled variables using the converted engine model Mc' from the acquired operating conditions, state variables, and searched values ​​of manipulated variables of the engine E. Here, the controlled variables are at least one of thermal efficiency, maximum in-cylinder pressure rise rate, torque, combustion start position, combustion center of gravity, and exhaust gas (Nox, soot, CO, HC, PM).

[0182] The manipulated variables are, for example, manipulated variables for controlling the controlled variables, such as the fuel injection amounts and injection periods of multiple injections (pre-, pilot, main, and after). The search values ​​of the manipulated variables are candidate values ​​of the manipulated variables for controlling the controlled variables. The search values ​​of the manipulated variables are searched for, for example, by the optimization unit 1405 according to a predetermined search rule, and are provided from the optimization unit 1405 to the estimation unit 1404.

[0183] The converted engine model Mc' is obtained by converting the engine model M' (see, for example, FIGS. 2A and 2B). The engine model M' has a multi-layer neuron structure and an activation function with a ReLU structure, and is a model that predicts the dynamic characteristics of the engine E using the operating conditions, state variables, and operation variables of the engine E as inputs.

[0184] The engine model M' is a model that receives, for example, a plurality of operating conditions, state variables, and manipulated variables of the engine E as input, and outputs estimated values ​​of future controlled variables. The plurality of operating conditions, state variables, and manipulated variables are, for example, operating conditions, state variables, and manipulated variables at each step from the past (for example, four steps ago) to the present time.

[0185] To explain in more detail, for example, the engine model M' takes as input the engine speed, fuel injection amount, excess air ratio, fuel injection pressure, intake manifold pressure, intake manifold oxygen concentration, and the fuel injection amount and injection period for each of the multi-stage injections (pre-, pilot, main, and after), and outputs the thermal efficiency, maximum pressure rise rate in the cylinder, torque, combustion start position, combustion center of gravity, and exhaust gases (Nox, soot, CO, HC, and PM).

[0186] The converted engine model Mc' is a model in which the weight coefficients, biases, and upper and lower limits of input / output variables of each neuron are set based on the engine model M', and the activation function of each neuron is converted using a linear inequality function including a binary variable. The engine model M' is, for example, created in advance and stored in a storage device such as the memory 302 or the disk 304.

[0187] Specifically, for example, the estimation unit 1404 sets the weighting coefficients and biases of each neuron of the pre-conversion engine model M' as the weighting coefficients and biases of each neuron of the converted engine model Mc' based on the engine model M'. Also, the estimation unit 1404 sets the upper and lower limit values ​​of the variables to be input to the engine model M' as the upper and lower limit values ​​of the variables to be input to the converted engine model Mc'.

[0188] Furthermore, the estimation unit 1404 sets upper and lower limit values ​​of variables output from the engine model M' as upper and lower limit values ​​of variables output from the converted engine model Mc'. Furthermore, the estimation unit 1404 sets upper and lower limit values ​​of variables output from each neuron of the engine model M' as upper and lower limit values ​​of variables output from each neuron (activation function) of the converted engine model Mc'.

[0189] The upper and lower limits of the input / output variables are set based on the maximum and minimum values ​​of each input / output variable obtained by, for example, providing a Chirp signal or an APRBS signal as an input to the engine model M'. Note that the specific processing content for converting the engine model M' is similar to the conversion processing of the engine model M described using FIGS. 2A and 2B, and therefore will not be illustrated or described here. Furthermore, the conversion of the engine model M' may be performed in the control device 101, or may be performed in a computer different from the control device 101.

[0190] Specifically, for example, the estimation unit 1404 calculates an estimate of a future controlled variable by inputting search values ​​of the operating conditions, state variables, and manipulated variables of the engine E into the converted engine model Mc'. More specifically, for example, the estimation unit 1404 calculates an estimate of a controlled variable one step later by inputting the operating conditions (past values), state variables (past values), and manipulated variables (past values) from k steps ago to one step ago, and the operating conditions (present values), state variables (present values), and manipulated variables search values ​​into the converted engine model Mc'. The operating conditions (past values), state variables (past values), and manipulated variables (past values) of each past step are stored in a storage device such as the memory 302 or the disk 304.

[0191] In this case, the estimation unit 1404 may calculate an estimate of the controlled amount for a period from the current time to the future (for example, 4 seconds). For example, one step is set to "1 second" and the period from the current time to the future is set to "4 seconds." In this case, the estimation unit 1404 calculates an estimate of the controlled amount for each step up to 4 steps in the future.

[0192] Here, when calculating the estimated value of the controlled variable at each step, the operating condition and the state quantity at each step are fixed to, for example, the operating condition (current value) and the state quantity (current value). In addition, the combination pattern of the searched values ​​of the manipulated variables at each step is searched for by the optimization unit 1405 according to a predetermined search rule, and is provided from the optimization unit 1405 to the estimation unit 1404.

[0193] Furthermore, there is a risk that the prediction accuracy of the dynamic characteristics of the engine E will be reduced due to modeling errors in the converted engine model Mc' and drift (deviations in measurement values) caused by sensor deterioration. For this reason, the estimation unit 1404 may calculate an estimate of the future controlled variable in consideration of the error between the actual value (present value) of the controlled variable at the current time and the estimate of the controlled variable for the current time (see, for example, FIG. 5).

[0194] Specifically, for example, the estimation unit 1404 may calculate an estimated value of the future controlled variable using a formula such as the above formula (11). As the actual value of the controlled variable, for example, the fuel indicators of the engine E (thermal efficiency, maximum pressure rise rate in the cylinder, torque, combustion start position, combustion center of gravity, exhaust gas (Nox, soot, CO, HC, PM)) calculated by the fuel indicator calculation unit 1402 are used.

[0195] The optimization unit 1405 determines the value of the manipulated variable for controlling the controlled variable based on the error between the control target value of the controlled variable and the calculated estimated value of the controlled variable. Specifically, for example, the optimization unit 1405 may determine the search value that minimizes the error between the control target value of the controlled variable and the estimated value of the controlled variable as the value of the manipulated variable for controlling the controlled variable in the next step.

[0196] The optimization unit 1405 may also determine the value of the manipulated variable for controlling the controlled variable based on the error between the control target value of the controlled variable and the estimated value of the controlled variable, and the amount of change in the manipulated variable. Here, the amount of change in the manipulated variable is represented by, for example, the difference between the current value (current value) of the manipulated variable and the search value of the manipulated variable.

[0197] Specifically, for example, the evaluation value calculation unit 1406 calculates a control evaluation value for each search value of the manipulated variable based on the error between the control target value of the controlled variable and the estimated value of the controlled variable, and the amount of change in the manipulated variable. The control evaluation value is an index value that represents the cost of controlling the controlled variable. For example, a lower control evaluation value indicates a higher evaluation.

[0198] More specifically, for example, the evaluation value calculation unit 1406 calculates a control evaluation value for each search value of the manipulated variable using an evaluation function ef'. The evaluation function ef' is a cost function in which, for example, a term that takes into account the error between the control target value of the controlled variable and the estimated value of the controlled variable and a term that takes into account the amount of change in the manipulated variable are weighted.

[0199] Then, the optimization unit 1405 determines the value of the manipulated variable for controlling the controlled variable from the search values ​​of the manipulated variables, for example, based on the calculated control evaluation value. More specifically, for example, the optimization unit 1405 determines the search value that minimizes the control evaluation value from among the search values ​​of the manipulated variables as the value of the manipulated variable for controlling the controlled variable.

[0200] The search for the manipulated variable by the optimization unit 1405 may be performed, for example, until the minimum amount of change in the control evaluation value is almost eliminated, or may be performed a specified number of times.

[0201] In addition, there are cases where an estimated value of the controlled variable for a period extending from the current time to the future is calculated. For example, one step is set to "1 second" and the period extending from the current time to the future is set to "4 seconds." In this case, the optimization unit 1405 calculates a control evaluation value for each combination pattern of the search values ​​of the manipulated variables at each step up to four steps later using the evaluation function ef'.

[0202] Then, the optimization unit 1405 calculates the total (or average) of the control evaluation values ​​calculated for each step for each combination pattern. Next, the optimization unit 1405 identifies, from among the combination patterns, the combination pattern that minimizes the total (or average) of the calculated control evaluation values. Then, the optimization unit 1405 may determine the search value of the manipulated variable for the first step (next step) in the identified combination pattern as the value of the manipulated variable for controlling the controlled variable.

[0203] This makes it possible to improve the accuracy in determining the manipulated variable to bring the controlled variable as close as possible to the control target value while suppressing abrupt changes in the manipulated variable.

[0204] Furthermore, the optimization unit 1405 outputs the determined values ​​of the manipulated variables. Specifically, for example, the optimization unit 1405 outputs the determined values ​​of the manipulated variables to the real engine system ES as the manipulated variables for controlling the controlled variables in the next step. The real engine system ES controls the engine E based on the values ​​of the manipulated variables output from the control device 101 (optimization unit 1405).

[0205] Furthermore, the activation function of the ReLU structure included in the engine model M′ may be, for example, a Leaky ReLU structure. By using the activation function of the Leaky ReLU structure as the activation function included in the engine model M′, the accuracy of predicting the dynamic characteristics of the engine E can be improved.

[0206] The update unit 1407 updates the converted engine model Mc' based on teacher data indicating the actual values ​​of the controlled variables corresponding to the combinations of the operating conditions, state variables, and values ​​of the manipulated variables of the engine E. Here, the combinations of the operating conditions, state variables, and values ​​of the manipulated variables of the engine E are, for example, the combinations of the operating conditions (current values), state variables (current values), and output values ​​of the manipulated variables at time t.

[0207] The output value of the manipulated variable is the value of the manipulated variable (for example, a search value with the minimum cost) output from the control device 101 to the actual engine system ES at time t. The combustion index of the engine E calculated by the fuel index calculation unit 1402 is used as the actual value of the controlled variable. The actual value of the controlled variable is, for example, the actual value of the controlled variable one step later, which is controlled according to the output value of the manipulated variable. However, for example, the actual value of the controlled variable at the current time (time t) may be used as the actual value of the controlled variable.

[0208] The teacher data is created, for example, every time the control device 101 controls the engine E (actual engine system ES) and is stored in a storage device such as the memory 302 or the disk 304.

[0209] Specifically, for example, the update unit 1407 calculates the error between the actual value (current value) of the controlled variable acquired by the condition detection unit 1401 and the estimated value of the controlled variable calculated by the estimation unit 1404. The estimated value to be compared with the actual value (current value) of the controlled variable may be the estimated value of the controlled variable calculated last time (the estimated value when the cost is minimum). Alternatively, the actual value of the controlled variable to be compared with the estimated value of the controlled variable may be the actual value of the controlled variable one step later, which is controlled according to the value of the manipulated variable output this time.

[0210] The update unit 1407 then determines whether the calculated error is equal to or greater than a threshold value. The threshold value can be set arbitrarily. If the error is less than the threshold value, the update unit 1407 does not update the converted engine model Mc'. On the other hand, if the error is equal to or greater than the threshold value, the update unit 1407 updates the converted engine model Mc' based on the training data.

[0211] More specifically, for example, if the error is equal to or greater than a threshold, the update unit 1407 performs machine learning based on training data to update the weight coefficients and biases of each neuron in the converted engine model Mc' so as to reduce the error between the estimated value and the actual value of the controlled variable. The update unit 1407 also acquires the maximum value of input / output for each neuron in each layer during learning, and if the maximum value exceeds the existing maximum value, updates the maximum value of input / output for that neuron. Similarly, the update unit 1407 acquires the minimum value of input / output for each neuron in each layer during learning, and if the minimum value falls below the existing minimum value, updates the minimum value of input / output for that neuron.

[0212] When the converted engine model Mc' is updated, the estimation unit 1404 uses the updated converted engine model Mc' to calculate an estimated value of the future controlled variable from the acquired operating conditions, state variables, and search values ​​of the manipulated variables of the engine E.

[0213] The control device 101 does not necessarily have to include the update unit 1407 among the above-described functional units. In this case, the control device 101 may correct the predicted value of the controlled variable using an error learning table as described in the third embodiment. The error learning table stores the correction value of the controlled variable corresponding to the operating conditions of the engine E. The control device 101, for example, sequentially creates and updates the error learning table while controlling the engine E. However, the correction process using the error learning table and the update process of the error learning table are similar to the correction process using the error learning table 1100 and the update process of the error learning table 1100 described in the third embodiment, and therefore will not be illustrated or described here.

[0214] (Control processing procedure of the control device 101) Next, the control processing procedure of the control device 101 will be described.

[0215] Fig. 15 is a flowchart showing an example of a control processing procedure of the control device 101 according to the fourth embodiment. In the flowchart of Fig. 15, first, the control device 101 acquires the operating conditions and state quantities of the engine E to be controlled (step S1501). Next, the control device 101 calculates a fuel index of the engine from the acquired state quantities (engine in-cylinder pressure, exhaust gas) (step S1502). The combustion index of the engine E is used as an actual value of the controlled quantity.

[0216] Then, the control device 101 identifies the control target values ​​of the controlled variables of the engine E based on the acquired operating conditions of the engine E (step S1503). Next, the control device 101 executes a second model update process (step S1504). The second model update process is a process for updating the converted engine model Mc'. The specific processing procedure of the second model update process will be described later with reference to FIG. 16.

[0217] Next, the control device 101 acquires search values ​​of manipulated variables for controlling the controlled variables (step S1505). Then, the control device 101 calculates estimated values ​​of future controlled variables from the acquired operating conditions, state variables, and manipulated variable search values ​​of the engine E using the converted engine model Mc' (step S1506).

[0218] Next, the control device 101 calculates a control evaluation value from the error between the control target value of the controlled variable and the estimated value of the controlled variable, and the amount of change in the manipulated variable, using the evaluation function ef' (step S1507). The amount of change in the manipulated variable is represented, for example, by the difference between the current value of the manipulated variable and the search value of the manipulated variable.

[0219] Then, the control device 101 determines whether the calculated control evaluation value is a control evaluation value. min It is determined whether the control evaluation value is smaller than the control evaluation value (step S1508). min is "null" in the initial state. min If it is in the initial state, the control device 101 proceeds to step S1509.

[0220] Here, the control evaluation value is min If the above is true (step S1508: No), the control device 101 proceeds to step S1511. min If it is smaller (step S1508: Yes), the control device 101 stores the obtained search value of the manipulated variable as a provisional optimum value (step S1509).

[0221] Then, the control device 101 sets the calculated control evaluation value as the control evaluation value min (step S1510). Next, the control device 101 determines whether or not to end the search for the manipulated variable (step S1511). The search for the manipulated variable is performed, for example, by using a control evaluation value min The process is repeated until the amount of change in the

[0222] If the search for the manipulated variable is not to be ended (step S1511: No), the control device 101 returns to step S1505. On the other hand, if the search for the manipulated variable is to be ended (step S1511: Yes), the control device 101 outputs the stored tentative optimum value of the manipulated variable to the real engine system ES (step S1512), and ends the series of processes according to this flowchart.

[0223] This makes it possible to use a highly accurate and high-speed engine model (the converted engine model Mc') to control the controlled variables of the engine E. Furthermore, the converted engine model Mc' can be updated sequentially.

[0224] Next, a specific processing procedure of the second model update processing in step S1504 will be described with reference to FIG.

[0225] 16 is a flowchart showing an example of a specific processing procedure of the second model update processing. In the flowchart of FIG. 16, first, the control device 101 acquires an estimate of the controlled variable calculated using the converted engine model Mc' (step S1601). This estimate may be, for example, the estimate of the controlled variable calculated during the previous control (the estimate when the cost is minimum). Alternatively, the control device 101 may acquire a search value of the manipulated variable for controlling the controlled variable, and perform calculation using the converted engine model Mc' from the acquired operating conditions, state variables, and search values ​​of the manipulated variable to acquire the estimate of the controlled variable.

[0226] Next, the control device 101 calculates the error between the acquired estimated value of the controlled variable and the actual value of the controlled variable (engine fuel index) calculated in step S1502 (step S1602).Then, the control device 101 determines whether the calculated error is equal to or greater than a threshold value (step S1603).

[0227] If the error is less than the threshold (step S1603: No), the control device 101 returns to the step that called the second model update process. On the other hand, if the error is equal to or greater than the threshold (step S1603: Yes), the control device 101 updates the converted engine model Mc' based on the teacher data so as to reduce the error between the estimated value and the actual value of the controlled variable (step S1604), and returns to the step that called the second model update process.

[0228] This allows the converted engine model Mc' to be updated successively in accordance with the error between the estimated value and the actual value (current value) of the controlled variable.

[0229] As described above, the control device 101 according to the fourth embodiment can achieve high-performance, high-speed engine control using a model (converted engine model Mc') that can predict the dynamic characteristics of the engine E with high accuracy. For example, by appropriately controlling the thermal efficiency of the vehicle, the maximum rate of pressure rise in the cylinder, torque, combustion start position, combustion center of gravity, exhaust gas (Nox, soot, CO, HC, PM), and the like, it is possible to perform real-time control of the engine E while suppressing exhaust gas and fuel consumption. Furthermore, by successively updating the converted engine model Mc', it is possible to prevent a decrease in prediction accuracy due to aging of the engine E or environmental changes.

[0230] From these facts, the control device 101 according to the first to fourth embodiments can perform real-time control of the engine E while suppressing exhaust gas, fuel consumption, and the like.

[0231] The above-described embodiments can be combined to the extent that there is no contradiction. The control method described in the present embodiment can be realized by executing a prepared program on a computer such as a personal computer or a workstation. The control program is recorded on a computer-readable recording medium such as a hard disk, flexible disk, CD-ROM, DVD, or USB memory, and is executed by being read from the recording medium by the computer. The control program may also be distributed via a network such as the Internet.

[0232] The following additional notes are provided regarding the above-described embodiment.

[0233] (Supplementary Note 1) Acquire the operating conditions of the engine to be controlled and the actual values ​​of the controlled variables, an engine model having a multi-layer neuron structure and an activation function of a ReLU structure, the engine model predicting dynamic characteristics of the engine using the engine operating conditions and manipulated variables as inputs, the weight coefficients, biases, and upper and lower limits of input / output variables of each neuron being set, and the activation functions of each neuron being converted using a linear inequality function including a binary variable, and an estimated value of the future controlled variable is calculated from the acquired operating conditions and candidate values ​​of the manipulated variables for controlling the controlled variable; determining a value of a manipulated variable for controlling the controlled variable based on an error between a target value of the controlled variable identified from the operating conditions and the calculated estimated value of the controlled variable; outputting the determined value of the manipulated variable; A control device characterized by having a control unit.

[0234] (Supplementary Note 2) The control unit The control device according to claim 1, wherein the value of the manipulated variable is determined based on an error between a target value of the controlled variable and an estimated value of the controlled variable, and a difference between a current value of the manipulated variable and a candidate value of the manipulated variable.

[0235] (Supplementary Note 3) The control unit calculating a control evaluation value representing a cost for controlling the controlled variable for each of the candidate values ​​of the manipulated variable based on the error and the difference; determining a value of the manipulated variable for controlling the controlled variable from among the candidate values ​​of the manipulated variable based on the calculated control evaluation value; 3. The control device according to claim 2,

[0236] (Supplementary Note 4) The control device according to Supplementary Note 1, wherein the controlled variable is at least one of an intake manifold pressure, an intake air amount, and an intake manifold oxygen concentration.

[0237] (Supplementary Note 5) The control device according to Supplementary Note 4, wherein the operating conditions are engine speed and fuel injection amount.

[0238] (Supplementary Note 6) The control device according to Supplementary Note 5, wherein the manipulated variable is at least one of a turbo opening, a throttle opening, and an EGR opening.

[0239] (Appendix 7) The control device described in Appendix 1, characterized in that the upper and lower limit values ​​of the input / output variables are set based on the maximum and minimum values ​​of the input / output variables obtained by providing a Chirp signal or an APRBS signal as input to the engine model.

[0240] (Supplementary Note 8) The control device according to Supplementary Note 1, wherein the activation function has a Leaky ReLU structure.

[0241] (Appendix 9) The control device described in Appendix 1, characterized in that the converted engine model is updated based on teacher data indicating the actual value of the controlled variable corresponding to the combination of the operating condition and the value of the manipulated variable.

[0242] (Supplementary Note 10) The control unit by referring to correction information indicating a correction value of a controlled variable corresponding to the operating condition of the engine, a correction value corresponding to the acquired operating condition is identified; correcting the estimated value of the controlled amount by adding the specified correction value to the calculated estimated value of the controlled amount; determining a value of a manipulated variable for controlling the controlled variable based on an error between a target value of the controlled variable and the corrected estimated value of the controlled variable; 2. The control device according to claim 1,

[0243] (Appendix 11) Acquire the operating conditions of the engine to be controlled and the actual values ​​of the controlled variables; an engine model having a multi-layer neuron structure and an activation function of a ReLU structure, the engine model predicting dynamic characteristics of the engine using the engine operating conditions and manipulated variables as inputs, the weight coefficients, biases, and upper and lower limits of input / output variables of each neuron being set, and the activation functions of each neuron being converted using a linear inequality function including a binary variable, and an estimated value of the future controlled variable is calculated from the acquired operating conditions and candidate values ​​of the manipulated variables for controlling the controlled variable; determining a value of a manipulated variable for controlling the controlled variable based on an error between a target value of the controlled variable identified from the operating conditions and the calculated estimated value of the controlled variable; outputting the determined value of the manipulated variable; A control method characterized in that processing is executed by a computer.

[0244] (Appendix 12) Acquire the operating conditions of the engine to be controlled and the actual values ​​of the controlled variables; an engine model having a multi-layer neuron structure and an activation function of a ReLU structure, the engine model predicting dynamic characteristics of the engine using the engine operating conditions and manipulated variables as inputs, the weight coefficients, biases, and upper and lower limits of input / output variables of each neuron being set, and the activation functions of each neuron being converted using a linear inequality function including a binary variable, and an estimated value of the future controlled variable is calculated from the acquired operating conditions and candidate values ​​of the manipulated variables for controlling the controlled variable; determining a value of a manipulated variable for controlling the controlled variable based on an error between a target value of the controlled variable identified from the operating conditions and the calculated estimated value of the controlled variable; outputting the determined value of the manipulated variable; A control program that causes a computer to execute a process. [Explanation of symbols]

[0245] 101 Control device 200,210,M,M' engine models 220,Mc,Mc' converted engine model 300 Bus 301 CPU 302 memory 303 Disk Drive 304 Disk 305 Communication I / F 306 Portable Recording Media I / F 307 Portable Recording Media 310 Network 401,1401 Condition detection unit 402,1403 Target value calculation section 403,1404 Estimation part 404,1405 Optimization Department 405,1406 Evaluation value calculation unit 701,1407 Update Department 1001 Error learning unit 1100 Error Learning Table 1402 Fuel index calculation section

Claims

1. Acquire the operating conditions of the engine to be controlled and the actual values ​​of the controlled variables; an engine model having a multi-layer neuron structure and an activation function of a ReLU structure, the engine model predicting dynamic characteristics of the engine using the engine operating conditions and manipulated variables as inputs, wherein weight coefficients, biases, and upper and lower limits of input / output variables of each neuron are set, and the activation functions of each neuron are converted using a linear inequality function including a binary variable, and an estimated value of the future controlled variable is calculated from the acquired operating conditions and candidate values ​​of the manipulated variables for controlling the controlled variable; determining a value of a manipulated variable for controlling the controlled variable based on an error between a target value of the controlled variable identified from the operating conditions and the calculated estimated value of the controlled variable; outputting the determined value of the manipulated variable; A control device characterized by having a control unit.

2. The control unit 2. The control device according to claim 1, wherein the value of the manipulated variable is determined based on an error between a target value of the controlled variable and an estimated value of the controlled variable, and a difference between a current value of the manipulated variable and a candidate value of the manipulated variable.

3. 2. The control device according to claim 1, wherein the controlled variable is at least one of an intake manifold pressure, an intake air amount, and an intake manifold oxygen concentration.

4. 4. The control device according to claim 3, wherein the operating conditions are an engine speed and a fuel injection amount.

5. 5. The control device according to claim 4, wherein the manipulated variable is at least one of a turbo opening, a throttle opening, and an EGR opening.

6. 2. The control device according to claim 1, wherein the converted engine model is updated based on teacher data indicating actual values ​​of the controlled variables corresponding to combinations of the operating conditions and the values ​​of the manipulated variables.

7. Acquire the operating conditions of the engine to be controlled and the actual values ​​of the controlled variables; an engine model having a multi-layer neuron structure and an activation function of a ReLU structure, the engine model predicting dynamic characteristics of the engine using the engine operating conditions and manipulated variables as inputs, wherein weight coefficients, biases, and upper and lower limits of input / output variables of each neuron are set, and the activation functions of each neuron are converted using a linear inequality function including a binary variable, and an estimated value of the future controlled variable is calculated from the acquired operating conditions and candidate values ​​of the manipulated variables for controlling the controlled variable; determining a value of a manipulated variable for controlling the controlled variable based on an error between a target value of the controlled variable identified from the operating conditions and the calculated estimated value of the controlled variable; outputting the determined value of the manipulated variable; A control method characterized in that processing is executed by a computer.

8. Acquire the operating conditions of the engine to be controlled and the actual values ​​of the controlled variables; an engine model having a multi-layer neuron structure and an activation function of a ReLU structure, the engine model predicting dynamic characteristics of the engine using the engine operating conditions and manipulated variables as inputs, wherein weight coefficients, biases, and upper and lower limits of input / output variables of each neuron are set, and the activation functions of each neuron are converted using a linear inequality function including a binary variable, and an estimated value of the future controlled variable is calculated from the acquired operating conditions and candidate values ​​of the manipulated variables for controlling the controlled variable; determining a value of a manipulated variable for controlling the controlled variable based on an error between a target value of the controlled variable identified from the operating conditions and the calculated estimated value of the controlled variable; outputting the determined value of the manipulated variable; A control program that causes a computer to execute a process.

Citation Information

Patent Citations

  • Adaptive processor

    JP1996152902A

  • How to Generate Optimal Control Problems for Industrial Processes

    JP2008502034A

  • Plant controller

    JP2018063586A

  • Control system of internal combustion engine, electronic control unit, server and control method of internal combustion engine

    JP2020070774A

  • Optimization device and optimization method

    JP2020204928A