This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2015-210834, filed on Oct. 27, 2015, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to an engine torque estimation device, an engine torque estimation system, and an engine torque estimation method.
It is known to design a state estimator employing a non-linear Kalman filter that estimates an indicated torque of an engine from an observed value of a crank angle obtained from a crank sensor, using a mathematical model.
Japanese Laid-open Patent Publication No. 2009-275618, Japanese Laid-open Patent Publication No. 2006-112373, Japanese Laid-open Patent Publication No. 2012-188930, and Yuzuru Itoh, Kouji Higashi, and Masami Iwase: “UKF-based Estimation of Indicated Torque for IC engines Utilizing Nonlinear Two-inertia Model,” Proc. of 51st IEEE Conference on Decision and Control, December (CDC), pp. 4077-4082, (2012) discuss related art.
According to an aspect of the invention, an engine torque estimation device includes: a memory; a processor coupled to the memory and the processor configured to, acquire a measured value of a crank angle that is a rotation angle of a crank shaft of an engine, derive, based on the measured value of the crank angle, a calculated value of a crank angle speed, and derive an estimated value of an engine torque, based on a non-linear Kalman filter using a first estimation error that is a difference between the calculated value of the crank angle speed and the estimated value of the crank angle speed.
According to another aspect of the invention, an engine torque estimation method for causing a processor to execute a process, the process includes: obtaining a measured value of a crank angle that is a rotation angle of a crank shaft of an engine; deriving a calculated value of a crank angle speed, based on the measured value of the crank angle; and deriving an estimated value of an engine torque, based on a non-linear Kalman filter using a difference between the calculated value of the crank angle speed and an estimated value of the crank angle speed.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
However, in the related art, an observed value of a crank angle is normally derived from a pulse waveform of a crank sensor, and therefore, it is difficult to achieve a measurement resolution of a pulse width or more, and the influence thereof is notable on an estimated value of an indicated torque. Therefore, in related art, the phase of an estimated value of an indicated torque is delayed relative to a measured value, and it is difficult to increase the accuracy of the estimated value of the indicated torque.
Therefore, according to one aspect of the invention, it is an object of the present disclosure to increase the accuracy of engine torque estimation.
Each embodiment will be described in detail below with reference to the accompanying drawings.
An engine torque estimation system 1 may be mounted on a vehicle including an engine (not illustrated). The vehicle may be a vehicle using only an engine as a driving source or may be a hybrid vehicle using both of an electric motor and an engine as driving sources. The type of the engine is arbitrary and the engine may be, for example, a gasoline engine and may be a diesel engine.
The engine torque estimation system 1 includes a crank sensor 4 and an engine torque estimation device 10.
The crank sensor 4 is attached to the engine. The crank sensor 4 outputs a crank angle signal in accordance with a crank angle that is the rotation angle of a crank shaft (not illustrated) of the engine. For example, the crank sensor 4 generates a crank angle signal in accordance with the rotation angle of a crank shaft (a signal rotor). The crank angle signal may be a signal that generates a pulse at each predetermined crank angle interval (for example, at every 10 CA). An appropriate method may be used as a detection method of the crank sensor 4, and the detection method may be of the electromagnetic induction type or the hall sensor type. Also, the circumference of the signal rotor includes a projection (tooth) at an interval corresponding to the predetermined crank angle interval, and also, may include a toothless portion for top dead center detection.
As will be described later, the engine torque estimation device 10 derives an estimated value of an indicated torque, based on the crank angle signal from the crank sensor 4. A method for deriving the estimated value of the indicated torque will be described later. The engine torque estimation device 10 may be mounted, for example, in an engine control device that controls the engine. As another alternative, the engine torque estimation device 10 may be coupled to the engine control device (see
In the example illustrated in
The control unit 101 is an arithmetic unit that executes a program stored in the main memory unit 102 or the auxiliary memory unit 103, receives data from a storage device, performs an operation and processing on the data, and then, outputs the data to the storage device or the like. The control unit 101 may be a processor or may include, for example, a processor such as a central processing unit (CPU), a timer counter, or the like.
The main memory unit 102 is a read only memory (ROM), a random access memory (RAM), or the like, and is a storage device that stores or temporarily holds an OS that is a basic software executed by the control unit 101, a program, such as an application software or the like, and data.
The auxiliary memory unit 103 is an electric-erasable programmable read-only memory (EEPROM) or the like, and is a storage device that stores data related to an application software or the like.
The hardware I/F unit 106 is an interface between a vehicle network (such as, for example, a controller area network (CAN), or the like) and the engine torque estimation device 10a or between a peripheral device (such as, for example, a crank sensor 4 or the like) of the engine and the engine torque estimation device 10. The hardware I/F unit 106 is coupled with the vehicle network or peripheral device via a wired and/or wireless circuit(s) or the like.
Note that, in the example illustrated in
The engine torque estimation device 10 includes a crank angle measured value acquisition unit 14 (an example of an acquisition unit), a crank angle speed calculation unit 15, a smoothing processing unit 16, a crank angle estimation error operation unit 17, a crank angle speed estimation error operation unit 18, and an estimation processing unit 20 (an example of an estimation unit). Each of the crank angle measured value acquisition unit 14, the crank angle speed calculation unit 15, the smoothing processing unit 16, the crank angle estimation error operation unit 17, the crank angle speed estimation error operation unit 18, and estimation processing unit 20 are realized by causing the control unit 101 to execute a program in the main memory unit 102.
Note that, in the following description, a letter with a mark “̂” (which will be hereinafter referred to as a “hat” if necessary) above the letter such as {circumflex over (θ)} indicates an estimated value. Also, a letter with a mark “—” on the upper right side of the letter such as θ— indicates a priori value. A letter with a mark “•” (which will be hereinafter referred to as a “dot” if necessary) above the letter such as {dot over (θ)} indicates a differential value.
In Step S1, the crank angle measured value acquisition unit 14 acquires the measured value of the crank angle, based on a crank angle signal sent from the crank sensor 4.
In Step S2, the crank angle speed calculation unit 15 calculates a crank angle speed, based on the measured value of the crank angle sent from the crank sensor 4. For example, the crank angle speed may be calculated by dividing a difference between a priori value and a current value of the measured value of the crank angle by the sampling cycle.
In Step S3, the smoothing processing unit 16 performs smoothing processing on data (time series) of a calculated value of the crank angle speed acquired from the crank angle speed calculation unit 15 before and after each sample point. In smoothing processing, a moving average method or the like may be used. For example, the smoothing processing unit 16 performs smoothing in accordance with the moving average method within a window width of 30 points before and after a sample point. By the above-described smoothing processing, the influence of noise or the like may be reduced and the accuracy of estimation of an indicated torque, which will be described later, may be increased. The smoothing processing unit 16 sends a calculated value of the crank angle speed after smoothing processing to the crank angle speed estimation error operation unit 18.
In Step S4, the estimation processing unit 20 performs a priori output estimated value calculation processing in which a priori output estimated value is calculated. The a priori output estimated value includes an estimated value of the crank angle, which is expressed by Expression 1 below, and an estimated value of the crank angle speed, which is expressed by Expression 2 below.
{circumflex over (θ)}—(k) (1)
{dot over ({circumflex over (θ)})}—(k) (2)
In the following, an example of a priori output estimated value calculation processing will be described later. The estimation processing unit 20 sends the calculated estimated value of the crank angle and the calculated estimated value of the crank angle speed to the crank angle estimation error operation unit 17 and the crank angle speed estimation error operation unit 18, respectively.
In Step S5, the crank angle estimation error operation unit 17 calculates an estimation error Δθ(k) of the crank angle, which is a difference between the measured value θ(k) of the crank angle received from the crank sensor 4 and the estimated value of the crank angle received from the estimation processing unit 20. Specifically, the crank angle estimation error operation unit 17 calculates as follows.
Δθ(k)=θ(k)−{circumflex over (θ)}—(k) (3)
When initial processing is performed, a predetermined initial value may be used as the estimated value of the crank angle. The crank angle estimation error operation unit 17 sends the calculated estimation error of the crank angle to the estimation processing unit 20. Note that the estimation error of the crank angle is an example of a second estimation error.
In Step S6, the crank angle speed estimation error operation unit 18 calculates the estimation error Δ{dot over (θ)}(k) of the crank angle speed, which is a difference between the calculated value{dot over (θ)}(k) of the crank angle speed received from the smoothing processing unit 16 and the estimated value of the crank angle speed received from the estimation processing unit 20. Specifically, the crank angle speed estimation error operation unit 18 calculates as follows.
Δ{dot over (θ)}(k)={dot over (θ)}(k)−{dot over ({circumflex over (θ)})}—(k) (4)
When initial processing is performed, a predetermined initial value may be used as the estimated value of the crank angle speed. The crank angle speed estimation error operation unit 18 sends the calculated estimation error of the crank angle speed to the estimation processing unit 20. Note that the estimation error of the crank angle speed is an example of a first estimation error.
In Step S7, the estimation processing unit 20 estimates an indicated torque, based on the non-linear Kalman filter using the estimation error Δθ(k) of the crank angle acquired in Step S5 and the estimation error Δ{dot over (θ)}(k) of the crank angle speed acquired in Step S6. A specific example of the above-described estimation processing will be described in detail below.
Note that, in the processing illustrated in
Next, a specific example of a priori output estimated value calculation processing (Step S4 in
First, an example of a mathematical model used in the estimation processing unit 20 will be described. The mathematical model is a model in which, as described below, an output variable y(k) is calculated using a non-linear function f and a non-linear function h when a state variable (a state estimated value) x(k) is given.
In Expression 5, θ(k) is the crank angle, {dot over (θ)}(k) is the crank angle speed, and τ(k) is the indicated torque. The reference character “k” is the update cycle (the number of updates). In Expression 6, v(k) is system noise and, in Expression 7, ω(k) is observed noise.
In Step S11, the estimation processing unit 20 calculates 2n+1 sigma points as sample points corresponding to an average value and a standard deviation, based on a state estimated value x hat (k−1) one-cycle before (k−1) and a post error covariance matrix P(k−1) one-cycle before (k−1). Specifically, the estimation processing unit 20 calculates as follows. A subscript i indicates an ith element.
σ0(k−1)={circumflex over (x)}(k−1) (9)
σi(k−1)={circumflex over (x)}(k−1)+√{square root over (n+κ)}(√{square root over (P(k−1))})i, (i=1, 2, . . . , n) (10)
σn+i(k−1)={circumflex over (x)}(k−1)−√{square root over (n+κ)}(√{square root over (P(k−1))})i, (i=1, 2, . . . , n) (11)
In this case, (√{square root over (P)}), in Expressions 10 and 11 indicates an ith column of the square root matrix of a post error covariance matrix P.
Note that the matrix P is a positive-definite symmetric matrix and the ith column of the square root matrix may be calculated by Cholesky decomposition or singular value decomposition. Note that, as the initial value {circumflex over (x)}(0) of the state estimated value, an arbitrary fixed value may be used, and the state estimated value at a previous engine off time may be used.
Also, as the initial value P(0), described as the expression 13, of the post error covariance matrix, an arbitrary fixed value may be used, and the post error covariance matrix at a previous engine off time may be used.
P(0)=P0 (13)
In Step S12, the estimation processing unit 20 calculates the weight for each sigma point. Specifically, the estimation processing unit 20 calculates as follows. Note that κ is a scale parameter.
In Step S13, based on the sigma points acquired in Step S11, the estimation processing unit 20 updates the sigma points using the non-linear function f of the mathematical model. Specifically, the estimation processing unit 20 updates as follows.
σi—(k)=f(σi(k−1)), (i=1, 2, . . . , 2n) (16)
In Step S14, based on the weight acquired in Step S12 and the sigma points updated in Step S13, the estimation processing unit 20 calculates the a priori state estimated value {circumflex over (x)}—(k).
Specifically, the estimation processing unit 20 calculates as follows.
{circumflex over (x)}(k)=Σi=02nwiσ—(k), (i=1, 2, . . . , 2n) (17)
In Step S15, based on the sigma points updated in Step S13 and the a priori state estimated value acquired in Step S14, the estimation processing unit 20 calculates the a priori error covariance matrix P—(k) in a current cycle.
Specifically, the estimation processing unit 20 calculates as follows.
P
—(k)=Σi=02nωi(σi—(k)−{circumflex over (x)}—(k))(σi—(k)−{circumflex over (x)}—(k))T+QbbT,
(i=1, 2, . . . , 2n) (18)
In Expression 18, Q is the variance of system noise and b is a coefficient matrix of the system noise.
In Step S16, based on the a priori state estimated value acquired in Step S14 and the a priori error covariance matrix acquired in Step S15, the estimation processing unit 20 recalculates 2n+1 sigma points. Specifically, the estimation processing unit 20 calculates as follows.
σ0—(k)={circumflex over (x)}—(k) (19)
σi—(k)={circumflex over (x)}—(k)+√{square root over (n+k)}(√{square root over (P—(k))})i, (i=1, 2, . . . , n) (20)
σn+i—(k)={circumflex over (x)}—(k)−√{square root over (n+κ)}(√{square root over (P—(k))})i, (i=1, 2, . . . , n) (21)
In Step S17, based on the sigma points acquired in Step S16 and the non-linear function h of the mathematical model, the estimation processing unit 20 calculates Ψi—(k) as a sigma point of an output.
Specifically, the estimation processing unit 20 calculates as follows.
Ψi—(k)=h(σi—(k)), (i=1, 2, . . . , 2n) (22)
In Step S18, based on the weight acquired in Step S12 and the sigma point of the output acquired in Step S17, the estimation processing unit 20 calculates the a priori output estimated value (k).
Specifically, the estimation processing unit 20 calculates as follows.
In Step S24, based on the weight acquired in Step S12, the sigma point of the output acquired in Step S17, and the a priori output estimated value acquired in Step S18, the estimation processing unit 20 calculates the a priori output error covariance matrix Pyy—(k).
Specifically, the estimation processing unit 20 calculates as follows.
P
yy
1(k)=Σi=02nωi(Ψi—(k)−ŷ—(k))2 (24)
In Step S25, the estimation processing unit 20 calculates a priori state output error covariance matrix Pxy—(k). In this case, in the calculation of Pxy—(k), the estimation processing unit 20 uses the weight obtained in Step S12, the a priori state estimated value obtained in Step S14, the sigma points obtained in Step S16, the sigma point of the output obtained in Step S17, and the a priori output estimated value obtained in Step S18. Specifically, the estimation processing unit 20 calculates as follows.
P
xy
—(k)=Σi=02nwi(σi—(k)−{circumflex over (x)}—(k))(Ψi—(k)−ŷ—(k)) (25)
In Step S26, based on the a priori output error covariance matrix obtained in Step S24, the a priori state and output error covariance matrix obtained in Step S25, and the variance R of observed noise, the estimation processing unit 20 calculates a Kalman gain g(k). Specifically, the estimation processing unit 20 calculates as follows.
In Step S27, the estimation processing unit 20 calculates the state estimated value in the current cycle, which is expressed by Expression 27.
In this case, the estimation processing unit 20 uses the a priori state estimated value obtained in Step S14, the Kalman gain acquired in Step S26, the estimation error Δθ(k) of the crank angle (see Step S5 in
Thus, the estimated value τ(k) of the indicated torque may be acquired.
In Step S28, the estimation processing unit 20 calculates the post error covariance matrix P(k) (see Step S11) for use in next update. In this case, the estimation processing unit 20 uses the a priori error covariance matrix acquired in Step S15, the a priori state and output error covariance matrix obtained in Step S25, and the Kalman gain obtained in Step S26. Specifically, the estimation processing unit 20 calculates as follows.
P(k)=P—(k)−g(k)(Pxy—)(k))T (29)
As has been described, the processing illustrated in
Next, advantages of this embodiment will be described with reference to
As for a comparative example, a method in which the indicated torque is estimated based on a non-linear Kalman filter using only the estimation error of the crank angle is used. That is, as for the comparative example, a method in which, assuming that the indicated torque and the crank angle are used to indicate state quantity, the indicated torque is estimated based on a non-linear Kalman filter using the measured value of the crank angle as an observable is used.
Incidentally, the measured value of the crank angle is extracted from the pulse waveform of the crank sensor 4, and therefore, it is difficult to achieve a measurement resolution of a pulse width or more, and the influence thereof affects the accuracy of the estimated value of the indicated torque. Therefore, according to the comparative example, as schematically indicated by an arrow X in
In contrast, according to this embodiment, as illustrated in
Incidentally, in engine torque base control, in general, required net torque is determined based on an operation of an accelerator performed by a driver, or the like, and the indicated torque that satisfies the net torque is estimated. In this case, in an actual vehicle, as an option, the current indicated torque may be measured using a cylinder pressure sensor, but it is difficult at present to install a cylinder pressure sensor therein because problems regarding cost, durability, and maintainability are caused by the installing the cylinder pressure sensor. Therefore, when it is possible to estimate the indicated torque at high accuracy using sensor data of the crank sensor 4 mounted on an actual vehicle without newly installing a sensor, this estimation method may be effectively used for increasing the performance of an engine control system.
In this point, according to this embodiment, as has been described above, the indicated torque may be estimated at high accuracy using sensor data of the crank sensor 4, and therefore, the engine torque estimation device 10 may be effectively used for increasing the performance of an engine control system.
An engine control system 2 is mounted on a vehicle. As described above, the vehicle may be a vehicle using only an engine as a driving source and may be also a hybrid vehicle. The engine control system 2 includes a sensor group 8, an engine control device 30, an engine 40, the crank sensor 4, and the engine torque estimation device 10.
The sensor group 8 includes, as various types of sensors other than the crank sensor 4, for example, an accelerator sensor, a vehicle speed sensor, a radar sensor, an image sensor, or the like.
The engine control device 30 electrically controls the engine 40. Note that electrical control of the engine 40 may be realized, for example, by electrically controlling the opening (that is, throttle opening) of a throttle valve disposed in an intake manifold of the engine 40, although not illustrated. As another option, electrical control of the engine 40 may be realized, for example, by electrically controlling the amount of a fuel injected into a combustion chamber of the engine 40 and ignition timing, or electrically controlling the phase of an intake camshaft that adjusts valve opening and closing timing.
The engine control device 30 may include the hardware configuration illustrated in
Based on information received from the vehicle speed sensor and the accelerator sensor, the driver request driving force calculation unit 31 calculates driver request driving force (which will be hereinafter referred to as “first request driving force”) in accordance with the vehicle speed and an accelerator opening.
Based on information received from the radar sensor or the like, the driver assistance driving force calculation unit 32 calculates request driving force (which will be hereinafter referred to as “second request driving force”) used for assisting driving of a vehicle by a driver. The second request driving force may be, for example, driving force used for driving the vehicle at a predetermined vehicle speed, driving force used for following a preceding vehicle, a driving force used for limiting the vehicle speed such that the vehicle speed does not exceed a vehicle speed limit, or the like.
The target driving force arbitration unit 33 selects one of the first request driving force and the second request driving force in accordance with a predetermined rule. For example, during execution of adaptive cruise control (ACC), the target driving force arbitration unit 33 selects the second request driving force while the first request driving force is 0 and selects the first request driving force when the first request driving force is larger than a predetermined value. The target driving force arbitration unit 33 converts the selected request driving force to a torque expression in N·m and sends the converted request driving force as a request driving torque to the feedback control unit 34.
The feedback control unit 34 may determine, for example, based on a difference between the request driving torque given by the target driving force arbitration unit 33 and the estimated value of the indicated torque given by the engine torque estimation device 10, a control target value for the engine 40 such that a request driving torque is realized. The control target value for the engine may be, for example, a target value of the throttle opening, a target value of the amount of injection of a fuel, or the like. Note that, equivalently, instead of the estimated value of the indicated torque, the estimated value of net torque, which is estimated based on the estimated value of the indicated torque, may be used. For example, the net torque may be calculated by deducting a friction torque of the engine from the estimated value of the indicated torque. Also, the friction torque of the engine may be calculated, for example, based on a rotation speed of an engine and an engine load. Also, the feedback control unit 34 may determine, as a control target value of the engine, a target value at an ignition time, based on the estimated value of the indicated torque given by the engine torque estimation device 10. The feedback control unit 34 controls the engine 40 such that the determined control target value is realized.
The engine control system 2 illustrated in
An engine torque estimation device 10A according to a second embodiment may include the same hardware configuration as that of the engine torque estimation device 10 according to the first embodiment, which has been described above, but has a different function.
The engine torque estimation device 10A is different from the engine torque estimation device 10 according to the first embodiment, which has been described above, in that the crank angle estimation error operation unit 17 is omitted and the estimation processing unit 20 is replaced with an estimation processing unit 20A. Other than that, the engine torque estimation device 10A may include the same configuration as that of the engine torque estimation device 10. In
The estimation processing unit 20A is different from the estimation processing unit 20 according to the first embodiment, which has been described above, in that the indicated torque is estimated based on a non-linear Kalman filter using the estimation error of the crank angle speed. That is, the estimation processing unit 20A estimates the indicated torque, based on a non-linear Kalman filter using the estimation error of the crank angle speed, not using the estimation error of the crank angle.
The processing of
In Step S4A, the estimation processing unit 20A performs a priori output estimated value calculation processing in which a priori output estimated value is calculated. In the second embodiment, the a priori output estimated value does not include the estimated value of the crank angle but only includes the estimated value of the crank angle speed.
In Step S7A, the estimation processing unit 20A estimates the indicated torque, based on the non-linear Kalman filter using the estimation error Δθ(k) of the crank angle speed acquired in Step S6. In a specific example of this estimation processing, a mathematical model according to this embodiment is different from the mathematical model according to the first embodiment, which has been described above, in that the crank angle θ(k) is not included in the output variable y(k). Also, the non-linear Kalman filter according to this embodiment is different from that according to the first embodiment in that the estimation error of the crank angle is not used. Other than that, substantially the same processing may be performed and the description thereof may be omitted.
According to the second embodiment, similar advantages to those of the first embodiment may be also achieved. In estimation results according to the second embodiment, under the same predetermined engine operating condition as that of the comparative example, which has been described above, RMSE is 200.8 and the average of phase shifts is 0.543 msec. Therefore, even in the case where only the estimation error of the crank angle speed is used, higher accuracy than that of the above-described comparative example (RMSE: 292.10, the average of phase shifts: 1.338 msec) may be achieved.
Although each of the first and second embodiments has been described in detailed above, the present disclosure is not limited to specific embodiments and various modifications and changes may be made to those embodiments without departing from the scope of the present disclosure as set forth in the claims. Also, all or some of components of the above-described embodiments may be combined.
For example, although, in each of the above-described embodiments, the parameter that represents an engine torque included in the state variable×(k) is the indicated torque, instead of the indicated torque, another parameter (for example, a net torque or a torque acquired by deducting an external load torque from the indicated torque) may be used.
Also, although, in each of the above-described embodiments, as an example, a vehicle including an engine is a target of estimation, the target may be arbitrary as long as the target includes an engine. For example, the target may be a railway vehicle including an engine, a ship including an engine, a construction machine including an engine, a motorcycle (a type of vehicles) including an engine, an aircraft including an engine, a helicopter including an engine, or the like.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2015-210834 | Oct 2015 | JP | national |