SOFT SENSOR DEVICE
20170337057 · 2017-11-23
Assignee
Inventors
Cpc classification
G01D1/16
PHYSICS
G06F9/3891
PHYSICS
G06F11/108
PHYSICS
International classification
G06F9/30
PHYSICS
G06F9/38
PHYSICS
Abstract
A second core calculates an intervening variable that is defined by an inner function, when a time derivative of a state variable is expressed by a function having the state variable, the inner function, and an observable input variable as independent variables. A first core calculates a function by using respective values of the state variable, the intervening variable, and the input variable, and obtains a value of the state variable by time-integration of a value of the function. In the calculation of the function, the value of the state variable calculated in previous time, a value of the intervening variable calculated by the second core in the previous time, and a value of the input variable inputted in this time are used.
Claims
1. A soft sensor device that acquires a state variable x by calculation using a plurality of processor cores, in which a value of the state variable x changes in relation to an input variable u that is observable, and a time derivative dx/dt of the state variable x is expressed by a function f(x, g(x), u) having the state variable x, an inner function g(x) having the state variable x as an independent variable, and the input variable u, as independent variables, the soft sensor device, comprising: a first arithmetic operation device that is an arithmetic operation device configured to perform an arithmetic operation by using one or a plurality of processor cores, and is programmed to calculate a function f(x, v, u) by using respective values of the state variable x, an intervening variable v that is defined by the inner function g(x), and the input variable u, and further obtain a value of the state variable x by time-integrating a value of the function f(x, v, u); and a second arithmetic operation device that is an arithmetic operation device configured to perform an arithmetic operation by using one or a plurality of processor cores that is or are different from the processor core or the processor cores used in the first arithmetic operation device, and is programmed to calculate the intervening variable v, wherein the first arithmetic operation device is programmed to calculate the function f(x, v, u) by using a value of the state variable x that is calculated in the first arithmetic operation device in processing of a previous time, a value of the intervening variable v that is calculated in the second arithmetic device in the processing of the previous time, and a value of the input variable u that is inputted in processing of this time.
2. The soft sensor device according to claim 1, wherein the second arithmetic operation device is programmed to calculate a product of a partial derivative ∂g(x)/∂x of the inner function g(x) with respect to the state variable x and the function f(x, v, u), by using the value of the state variable x that is calculated in the first arithmetic operation device in the processing of the previous time, the value of the intervening variable v that is calculated in the second arithmetic operation device in the processing of the previous time, and the value of the input variable u that is inputted in the processing of this time, and obtain a value of the intervening variable v by time-integrating a value of the product.
3. The soft sensor device according to claim 1, wherein the second arithmetic operation device is programmed to calculate a partial derivative ∂g(x)/∂x with respect to the state variable x of the inner function g(x) by using the value of the state variable x that is calculated in the first arithmetic operation device in the processing of the previous time, and obtain a value of the intervening variable v by time-integrating a value that is obtained by multiplying a value of the partial derivative ∂g(x)/∂x, and a value of the function f(x, v, u) that is calculated in the first arithmetic operation device in the processing of this time.
4. The soft sensor device according to claim 1, wherein when the inner function g(x) is a composite function that is expressed by expression A as follows, and has a sequential structure comprising n of functions g.sub.n, . . . , g.sub.2 and g.sub.1, and an intervening variable v.sub.i is defined by expressions B, C and D as follows with respect to the respective functions g.sub.n, . . . , g.sub.2 and g.sub.1, the first arithmetic operation device is programmed to perform an arithmetic operation of a component in a first row in a right side of expression E as follows, time-integrate an obtained value and thereby obtain a value of the state variable x, and the second arithmetic operation device is programmed to perform arithmetic operations of respective components from a second row through an n+1.sup.th row in the right side of the expression E by using different processor cores respectively, and obtain a value of an intervening variable v.sub.n that is used in calculation of a function f(x, v.sub.n, u) in the first arithmetic operation device, by time-integrating a value of a component in the n+1.sup.th row in the right side.
5. The soft sensor device according to claim 4, wherein a processor core that performs an arithmetic operation of a component in an i+1.sup.th row in the right side of the expression E is programmed to calculate a product of i of partial derivatives from a partial derivative ∂g.sub.1(x(t))/∂x through a partial derivative ∂g.sub.i(v.sub.i−1(t))/∂v.sub.i−1, and the function f(x, v.sub.n, u), by using the value of the state variable x that is calculated in the first arithmetic operation device in the processing of the previous time, respective values of i−1 of intervening variables from an intervening variable vi through an intervening variable v.sub.i−1 that are calculated in other processor cores in the processing of the previous time, the value of the intervening variable v.sub.n that is calculated in the second arithmetic operation device in the processing of the previous time, and the value of the input variable u that is inputted in the processing of this time, and obtain a value of an intervening variable v.sub.i by time-integrating a value of the product.
6. The soft sensor device according to claim 4, wherein a processor core that performs an arithmetic operation of a component in an i+1.sup.th row in the right side of the expression E is programmed to calculate a value of a partial derivative ∂g.sub.i(v.sub.i−1(t))/∂v.sub.i−1 by using a value of an intervening variable v.sub.i−1 that is calculated in another processor core that performs an arithmetic operation of a component in an i.sup.th row in the right side of the expression E in the processing of the previous time, and obtain a value of the intervening variable v.sub.i by time-integrating a value that is obtained by multiplying the value of the partial derivative ∂g.sub.i(v.sub.i−1(t))/∂v.sub.i−1, and a value of the component in the i.sup.th row in the right side of the expression E that is calculated in the other processor core in the processing of this time.
7. The soft sensor device according to claim 1, wherein the state variable x is an intake pipe pressure of an internal combustion engine, the input variable u is a throttle opening degree area, and the function f(x, g(x), u) is a function based on a throttle formula that defines a physical law established among a mass flow rate of air that passes through a throttle, the throttle opening degree area and the intake pipe pressure.
8. The soft sensor device according to claim 1, wherein the state variable x is a moved distance of a movable body, the input variable u is a propulsive force that is applied to the movable body, and the function f(x, g(x), u) is a function that expresses a relationship that is theoretically or empirically obtained between the moved distance and the propulsive force.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
DETAILED DESCRIPTION
1. Configuration Example of System Using Soft Sensor Device
[0043] A soft sensor device of the present application can be applied to a monitoring device that monitors a state variable x. Further, the soft sensor device of the present application can be also applied to a control system that performs an operation to a control object based on the state variable x of the control object. Here, several configuration examples in a case where the soft sensor device of the present application is applied to a control system will be described.
[0044] In each of configuration examples illustrated in
[0045] A control method of the controller 2 is not limited. However, in the controller 2, an operation signal for controlling the control object 4 is generated based on the state variable that is observed, an external input by an operator or an external sensor, for example, and the state variable x of the control object 4 that is estimated by the soft sensor device 10.
[0046] In a configuration example 1 illustrated in
[0047] In a configuration example 2 illustrated in
[0048] In a configuration example 3 illustrated in
[0049] Note that in each of the configuration examples described above, the function f(x, g(x), u) may be a function that models the control object 4 based on a physical law, or may be a function that is obtained based on an empirical rule.
[0050] Further, in each of the configuration examples described above, the soft sensor device 10 and the controller 2 are separate bodies, but the two may be integrally configured. For example, a single computer may be caused to function as the soft sensor device 10, and may be also caused to function as the controller 2.
2. Structure of Soft Sensor Device
[0051] The soft sensor device 10 is configured by using a multi-core processor or a many-core processor having a plurality of processor cores (hereinafter, simply referred to as cores).
[0052]
3. Embodiments of Soft Sensor Device
[0053] Hereinafter, embodiments of the soft sensor device will be described with reference to the drawings.
3-1. First Embodiment
[0054]
[0055] The first core 100 is programmed to function as an arithmetic operator 101 and an integrator 102. To the arithmetic operator 101, a value of the state variable x that is calculated by the first core 100 in processing of a previous time, a value of an intervening variable v that is calculated by the second core 110 in the processing of the previous time, and a value of the input variable u that is inputted in processing of this time are inputted. The arithmetic operator 101 is configured to calculate the function f(x, v, u) by using the respective values of the state variable x, the intervening variable v, and the input variable u. By calculating the function f(x, v, u), a time derivative dx/dt of the state variable x is obtained. By time-integrating a value of the time derivative dx/dt that is outputted from the arithmetic operator 101, a value (a value of the processing of this time) of the state variable x that is an estimation object is obtained.
[0056] The second core 110 is programmed to function as an arithmetic operator 111 and an integrator 112. To the arithmetic operator 111, the value of the state variable x that is calculated by the first core 100 in the processing of the previous time, the value of the intervening variable v that is calculated by the second core 110 in the processing of the previous time, and the value of the input variable u that is inputted in the processing of this time are inputted. The arithmetic operator 111 is configured to calculate a product of a partial derivative ∂g(x)/∂x of an inner function g(x) with respect to the state variable x, and the function f(x, v, u), that is, a function ∂g(x)/∂x*f(x, v, u), by using the respective values of the state variable x, the intervening variable v and the input variable u. By calculating the function ∂g(x)/∂x*f(x, v, u), the time derivative dv/dt of the intervening variable v is obtained. By time-integrating the value of the time derivative dv/dt that is outputted from the arithmetic operator 111 in the integrator 112, a value (a value in the processing of this time) of the intervening variable v is obtained. The value of the intervening variable v that is obtained in the processing of this time is used in calculation of the function f(x, v, u) by the first core 100 in processing of a next time.
[0057] Here, a comparative example to the soft sensor device of the first embodiment will be cited.
[0058] In the soft sensor device of the comparative example, a core 900 is programmed to function as a first arithmetic operator 901, a second arithmetic operator 902, and an integrator 903. To the first arithmetic operator 901, a value of the state variable x that is calculated by the core 900 in processing of a previous time is inputted. The first arithmetic operator 901 is configured to calculate the inner function g(x) by using the value of the state variable x. By calculating the inner function g(x), the intervening variable v is obtained.
[0059] To the second arithmetic operator 902, the value of the state variable x that is calculated by the core 900 in the processing of the previous time, a value of the intervening variable v that is calculated by the first arithmetic operator 901 in processing of this time, and a value of the input variable u that is inputted in the processing of this time are inputted. The second arithmetic operator 902 is configured to calculate the function f(x, v, u) by using the respective values of the state variable x, the intervening variable v and the input variable u. By calculating the function f(x, v, u), the time derivative dx/dt of the state variable x is obtained. By time-integrating the value of the time derivative dx/dt that is outputted from the second arithmetic operator 902 by the integrator 903, a value (a value in the processing of this time) of the state variable x that is an estimation object is obtained.
[0060]
[0061] Meanwhile, in the case of the soft sensor device of the first embodiment, the value of the intervening variable v that is calculated in the second core 110 in the processing of the previous time is used in calculation of the function f(x, v, u) that is performed in the first core 100. Therefore, in the soft sensor device of the first embodiment, the arithmetic operation time period that is required until the value of the state variable x is obtained is reduced to a total time period of the arithmetic operation time period of the function f(x, v, u) and the arithmetic operation time period of the time integration. As is understandable from comparison with the comparative example, according to the soft sensor device of the first embodiment, the state variable x which is desired to be estimated can be acquired with high responsiveness by the arithmetic operation at a high speed due to no sequential processing.
[0062] In the second core 110, a total time period of an arithmetic operation time period of the function ∂g(x)/∂x*f(x, v, u) and an arithmetic operation time period of the time integration is required until the value of the intervening variable v is obtained. Depending on the arithmetic operation amount of the function ∂g(x)/∂x*f(x, v, u), the arithmetic operation time period that is required in the second core 110 may become longer than the arithmetic operation time period that is required in the first core 100, as illustrated in
3-2. Second Embodiment
[0063]
[0064] The first core 200 is programmed to function as an arithmetic operator 201 and an integrator 202. To the arithmetic operator 201, a value of the state variable x that is calculated by the first core 200 in processing of a previous time, a value of the intervening variable v that is calculated by the second core 210 in the processing of the previous time, and a value of the input variable u that is inputted in processing of this time are inputted. The arithmetic operator 201 is configured to calculate the function f(x, v, u) by using the respective values of the state variable x, the intervening variable v and the input variable u. By calculating the function f(x, v, u), the time derivative dx/dt of the state variable x is obtained. By time-integrating the value of the time derivative dx/dt that is outputted from the arithmetic operator 201 by the integrator 202, a value (a value in the processing of this time) of the state variable x that is an estimation object is obtained.
[0065] The second core 210 is programmed to function as an arithmetic operator 211, a multiplier 212 and an integrator 213. To the arithmetic operator 211, the value of the state variable x that is calculated by the first core 200 in the processing of the previous time is inputted. The arithmetic operator 211 is configured to calculate the partial derivative ∂g(x)/∂x of the inner function g(x) with respect to the state variable x. To the multiplier 212, the value of the partial derivative ∂g(x)/∂x that is calculated by the arithmetic operator 211, and a value of the function f(x, v, u) that is calculated by the first core 200 in the processing of this time are inputted. The multiplier 212 is configured to multiply the value of the partial derivative ∂g(x)/∂x and the value of the function f(x, v, u) that are inputted. A value obtained by the calculation is equivalent to a value of the time derivative dv/dt of the intervening variable v. The value of the time derivative dv/dt that is outputted from the multiplier 212 is time-integrated by the integrator 213, whereby a value (a value in the processing of this time) of the intervening variable v is obtained. The value of the intervening variable v that is obtained in the processing of this time is used in calculation of the function f(x, v, u) by the first core 200 in processing of a next time.
[0066] Here, the comparative example illustrated in the first embodiment and the soft sensor device of the second embodiment will be compared with respect to the arithmetic operation time period.
[0067] Meanwhile, in the case of the soft sensor device of the second embodiment, the value of the intervening variable v that is calculated by the second core 210 in the processing of the previous processing is used. Therefore, in the soft sensor device of the second embodiment 2, an arithmetic operation time period that is required until the value of the state variable x is obtained is reduced to a total time period of the arithmetic operation time period of the function f(x, v, u) and the arithmetic operation time period of the time integration. That is, according to the soft sensor device of the second embodiment, the state variable x that is desired to be estimated can be acquired with high responsiveness by the arithmetic operation at a high speed due to no sequential processing, similarly to the soft sensor device of the first embodiment.
[0068] In the second core 210, a total time period of the arithmetic operation time period of the partial derivative ∂g(x)/∂x, a communication time period that is required to receive the value of the function f(x, v, u) from the first core 200 by inter-core communication, an arithmetic operation time period of multiplication, and the arithmetic operation time period of time integration is required until the value of the intervening variable v is obtained. When comparing with the arithmetic operation time period of the second core 110 in the first embodiment, the arithmetic operation time period of the second core 210 in the second embodiment is considered to be shorter, due to a difference between an arithmetic operation amount of the partial derivative ∂g(x)/∂x and an arithmetic operation amount of the function ∂g(x)/∂x*f(x, v, u). However, it is also conceivable that the arithmetic operation time period of the second core 210 becomes longer due to the communication time period that is required for inter-core communication. Therefore, for an object with the communication time period of the inter-core communication including a time period of access to the memory being short for the arithmetic operation amount, the logic of the second embodiment can be said as suitable as the logic of the soft sensor device. Conversely, for an object with the communication time period of the inter-core communication being long for the arithmetic operation amount, the logic of the first embodiment can be said as suitable.
3-3. Third Embodiment
[0069]
[0070] The first core 300 is programmed to function as an arithmetic operator 301 and an integrator 302. To the arithmetic operator 301, a value of the state variable x that is calculated by the first core 300 in processing of a previous time, a value of an intervening variable v.sub.n that is calculated by the n+1.sup.th core 310, in the processing of the previous time, and a value of the input variable u that is inputted in processing of this time are inputted. The arithmetic operator 301 is configured to calculate the function f(x, v.sub.n, u) by using the respective values of the state variable x, the intervening variable v.sub.n, and the input variable u. By calculating the function f(x, v.sub.n, u), a time derivative dx/dt of the state variable x is obtained. By performing time-integration of a value of the time derivative dx/dt that is outputted from the arithmetic operator 301 in the integrator 302, a value (a value in the processing of this time) of the state variable x that is an estimation object is obtained.
[0071] The second core 310.sub.1 is programmed to function as an arithmetic operator 311.sub.1 and an integrator 312.sub.1. To the arithmetic operator 311.sub.1, the value of the state variable x that is calculated by the first core 300 in the processing of the previous time, the value of the intervening variable v.sub.n that is calculated by the n+1.sup.th core 310.sub.n in the processing of the previous time, and the value of the input variable u that is inputted in the processing of this time are inputted. The arithmetic operator 311.sub.1 is configured to calculate a product of the partial derivative ∂g.sub.i(x)/∂x by the state variable x of an inner function g.sub.1(x), and the function f(x, v, u), that is, a function ∂g.sub.i(x)/∂x*f(x, v.sub.n, u), by using the respective values of the state variable x, the intervening variable v.sub.n and the input variable u. This does not include a sequential structure, and therefore, an arithmetic operation by the arithmetic operator 311.sub.1 is performed at a high speed.
[0072] By calculating the function ∂g.sub.i(x)/∂x*f(x, v, u), the time derivative dv.sub.1/dt of the intervening variable v.sub.1 is obtained. By time-integrating the value of the time derivative dv.sub.1/dt that is outputted from the arithmetic operator 311.sub.1 in the integrator 312.sub.1, a value (a value in the processing of this time) of the intervening variable v.sub.1 is obtained. The value of the intervening variable v.sub.1 that is obtained in the processing of this time is used in arithmetic operations in the respective cores from the third core 310.sub.2 through the n+1.sup.th core 310.sub.n in processing of a next time.
[0073] Next, the respective cores from the third core 310.sub.2 through the n+1.sup.th core 310.sub.n will be described. Here, when “i” is set as an arbitrary integer from 2 through n, the i+1.sup.th core 310.sub.i is programmed to function as an arithmetic operator 311.sub.i and an integrator 312.sub.i. To the arithmetic operator 311.sub.i, the value of the state variable x that is calculated by the first core 300 in the processing of the previous time, respective values of i−1 of intervening variables from the intervening variable v.sub.1 through the intervening variable v.sub.i−1 that are calculated by the cores from the second core 310.sub.1 through an i.sup.th core 310.sub.i−1 in the processing of the previous time, the value of the intervening variable v.sub.n that is calculated by the n+1.sup.th core 310.sub.n in the processing of the previous time, and a value of the input variable u that is inputted in the processing of this time are inputted.
[0074] An arithmetic operator 311.sub.i is configured to calculate a product of i of partial derivatives from a partial derivative ∂g.sub.1(x(t))/∂x through a partial derivative ∂g.sub.i(v.sub.i−1(t)/∂v.sub.i−1 and the function f(x, v.sub.n, u), that is, a function ∂g.sub.i(v.sub.i−1(t)/∂v.sub.i−1* . . . *∂g.sub.i(x(t))/∂x*f(x, v.sub.n, u), by using the respective values of the state variable x, the intervening variable v.sub.1 to v.sub.i−1 and the input variable u. This does not include a sequential structure, and therefore, an arithmetic operation by the arithmetic operator 311.sub.i is performed at a high speed.
[0075] By calculating a function ∂g.sub.i(v.sub.i−1(t))/∂v.sub.i−1* . . . *∂g.sub.1(t))/∂x*f(x, v.sub.n, u), a time derivative dv.sub.i/dt of an intervening variable v.sub.i is obtained. By time-integrating a value of the time derivative dv.sub.i/dt that is outputted from the arithmetic operator 311.sub.i in the integrator 312.sub.i, a value (a value in the processing of this time) of the intervening variable v.sub.i is obtained. The value of the intervening variable v.sub.i that is obtained in the processing of this time is used in arithmetic operations in respective cores from an i+2.sup.th core 310.sub.i+1 through the n+1.sup.th core 310.sub.n in the processing of the next time, when i is arbitrary integers from 2 through n−1. In a case of i being n, that is, in the case of the n+1.sup.th core 310.sub.n, the value of the intervening variable v.sub.n that is obtained in the processing of this time is used in arithmetic operations in all the cores including the first core 300 in the processing of the next time.
[0076] When estimation precision of the soft sensor is to be enhanced, the function f(x, g(x), u) that expresses the soft sensor is complicated, and the inner function g(x) includes a sequential structure with multiple stages. In this regard, if the arithmetic operation is performed in accordance with the above described logic, not only the sequential structure which the function f(x, g(x), u) has, but also the sequential structure which the inner function g(x) has is eliminated. Thereby, not only the arithmetic operation time period that is required to acquire the state variable x, but also the arithmetic operation time period that is required to acquire the intervening variable v.sub.n is reduced, and therefore, occurrence of timeout is avoided. That is, according to the third embodiment, it is possible to perform a high-speed arithmetic operation even for the function f(x, g(x), u) that has a complicated structure, so that the soft sensor device with excellent responsiveness and high precision can be obtained.
3-4. Fourth Embodiment
[0077]
[0078] The first core 400 is programmed to function as an arithmetic operator 401 and an integrator 402. To the arithmetic operator 401, a value of the state variable x that is calculated by the first core 400 in processing of a previous time, a value of an intervening variable v.sub.n that is calculated by the n+1.sup.th core 410.sub.n in the processing of the previous time, and a value of the input variable u that is inputted in processing of this time are inputted. The arithmetic operator 401 is configured to calculate the function f(x, v.sub.n, u) by using the respective values of the state variable x, the intervening variable v.sub.n, and the input variable u. By calculating the function f(x, v.sub.n, u), the time derivative dx/dt of the state variable x is obtained. By performing time-integration of a value of the time derivative dx/dt that is outputted from the arithmetic operator 401 by the integrator 402, a value (a value in the processing of this time) of the state variable x that is an estimation object is obtained.
[0079] The second core 410.sub.1 is programmed to function as an arithmetic operator 411.sub.1, a multiplier 412.sub.1 and an integrator 413.sub.1. To the arithmetic operator 411.sub.1, the value of the state variable x that is calculated by the first core 400 in the processing of the previous time is inputted. The arithmetic operator 411.sub.1 is configured to calculate the partial derivative ∂g.sub.i(x)/∂x of the inner function g.sub.i(x) with respect to the state variable x by using the value of the state variable x.
[0080] To the multiplier 412.sub.1, the value of the partial derivative ∂g.sub.i(x)/∂x that is calculated by the arithmetic operator 411.sub.1, and a value of the function f(x, v.sub.n, u) that is calculated by the first core 400 in the processing of this time are inputted. The multiplier 412.sub.1 is configured to multiply the value of the partial derivative ∂g.sub.i(x)/∂x and the value of the function f(x, v.sub.n, u) that are inputted. A value obtained by the calculation is equivalent to a value of the time derivative dv.sub.1/dt of the intervening variable v.sub.1. The value of the time derivative dv.sub.1/dt that is outputted from the multiplier 412.sub.1 is time-integrated by the integrator 413.sub.1, whereby a value (a value in the processing of this time) of the intervening variable v.sub.1 is obtained. The value of the intervening variable vi that is obtained in the processing of this time is used in an arithmetic operation in a third core 410.sub.2 in processing of the next time.
[0081] Next, the respective cores from the third core 410.sub.2 through the n+1.sup.th core 410.sub.n will be described. Here, when i is set as an arbitrary integer from 2 through n, the i+1.sup.th core 410.sub.i is programmed to function as an arithmetic operator 411.sub.i, a multiplier 412.sub.i and an integrator 413.sub.i. To the arithmetic operator 411.sub.i, a value of an intervening variable v.sub.i−1 that is calculated by the i.sup.th core 410.sub.i−1 in the previous processing is inputted. An arithmetic operator 411.sub.i is configured to calculate a partial derivative ∂g.sub.i(x)/∂v.sub.i−1 of the inner function g.sub.i(x) with respect to the intervening variable v.sub.i−1 by using a value of the intervening variable v.sub.i−1.
[0082] To the multiplier 412.sub.1, the value of the partial derivative ∂g.sub.i(x)/∂v.sub.i−1 that is calculated by the arithmetic operator 411.sub.i, and a value of a time derivative d.sub.vi−1/dt that is calculated by the i.sup.th core 410.sub.i−1 in the processing of this time are inputted. The multiplier 412.sub.i is configured to multiply the value of the partial derivative ∂g.sub.i(x)/∂v.sub.i−1 and the value of the time derivative dv.sub.i−1/dt that are inputted. A value obtained by the calculation is equivalent to a value of the time derivative dv.sub.i/dt of the intervening variable vi as shown in expression 10. The value of the time derivative dv.sub.i/dt that is outputted from the multiplier 412.sub.i is time-integrated by the integrator 413.sub.i, whereby a value (a value in the processing of this time) of the intervening variable v.sub.i is obtained. The value of the intervening variable v.sub.i that is obtained in the processing of this time is used in an arithmetic operation in an i+2.sup.th core 410.sub.i+1 in processing of a next time, when i is arbitrary integers from 2 through n−1. When i is n, that is, in the n+1.sup.th core 410.sub.n, the value of the intervening variable v.sub.n that is obtained in the processing of this time is used in an arithmetic operation in the first core 400 in the processing of the next time.
[0083] If the arithmetic operation is performed in accordance with the above described logic, not only the sequential structure which the function f(x, g(x), u) has, but also the sequential structure which the inner function g(x) has is eliminated. Therefore, according to the fourth embodiment, it is possible to perform a high-speed arithmetic operation of even the function f(x, g(x), u) that has a complicated structure, so that the soft sensor device with excellent responsiveness and high precision can be obtained, as in the third embodiment. When the fourth embodiment and the third embodiment are compared, for an object with the communication time period of the inter-core communication including a time period of access to the memory being short for the arithmetic operation amount, the logic of the fourth embodiment can be said as suitable as the logic of the soft sensor device. Conversely, for an object with the communication time period of the inter-core communication being long for the arithmetic operation amount, the logic of the third embodiment can be said as suitable.
4. Examples of Soft Sensor Device
[0084] Hereinafter, specific examples of the soft sensor device will be illustrated.
4-1. Example 1
[0085] In example 1, the soft sensor device is used in estimation of the intake pressure of an internal combustion engine.
[0086] Further, a time change dPm/dt of the intake pressure Pm can be expressed by expression 14 as follows when a volume of the intake manifold 33 is Vm, a temperature in the intake manifold 33 is Tm, and a mass flow rate of air that is taken into a cylinder is m.sub.cyl.
[0087] The mass flow rate m.sub.cyl of the air that is taken into the cylinder can be expressed by expression 15 as follows. Note that ηv represents a volume efficiency, Ne represents an engine speed, and Vd represents a cylinder volume.
[0088] Here, when Tm, Ta, Pa and Ne are constant in the relationships shown in expression 12 to expression 15, the intake pressure soft sensor that is expressed by expression 16 and expression 17 as follows is obtained. Note that the state variable x in the intake pressure soft sensor is the intake pressure Pm, and the input variable u is the throttle opening degree area A.sub.th.
[0089] Note that in expression 16, coefficients K.sub.1 and K.sub.2 are respectively defined by expression 18 and expression 19 as follows.
[0090] The partial derivative ∂g(x)/∂x of the inner function g(x) with respect to the state variable x shown in expression 17 is expressed by expression 20 as follows.
[0091] When the soft sensor device of the first embodiment is configured as the intake pressure soft sensor device, the function f(x, v, u) in expression 16 can be implemented in the arithmetic operator 101 of the first core 100 illustrated in
[0092] When the soft sensor device of the second embodiment is configured as the intake pressure soft sensor device, the function f(x, v, u) in expression 16 can be implemented in the arithmetic operator 201 of the first core 200 illustrated in
4-2. Example 2
[0093] In example 2, the soft sensor device is used in estimation of a position of a movable body. Here, it is assumed that relationships shown in expression 21 and expression 22 as follows are found between a propulsive force u that is applied to the movable body and a moved distance x in an x-axis direction of the movable body. The relationships may be theoretically obtained, or may be empirically obtained. Note that K.sub.1 and K.sub.2 in expression 21 are coefficients.
[0094] The soft sensor is designed based on the above described relationships, and is implemented in a multi-core processor or a many-core processor, whereby a position soft sensor device can be made, which estimates the moved distance x of the movable body that is the state variable, from the propulsive force u that is applied to the movable body, which is the input variable.
[0095] The partial derivative ∂g(x)/∂x by the state variable x of the inner function g(x) shown in expression 22 is expressed by expression 23 as follows.
[0096] When the soft sensor device of the first embodiment is configured as the position pressure soft sensor device, the function f(x, v, u) in expression 21 is implemented in the arithmetic operator 101 of the first core 100 illustrated in
[0097] When the soft sensor device in the second embodiment is configured as the position pressure soft sensor device, the function f(x, v, u) in expression 21 can be implemented in the arithmetic operator 201 of the first core 200 illustrated in
5. Others
[0098] The present application is not limited to the aforementioned embodiments, but can be carried out by being variously modified in the range without departing from the gist of the present application. For example, in the respective embodiments, arithmetic operations that are performed by the first arithmetic operation device may be distributed to a plurality of cores. When the first embodiment is cited as an example, the arithmetic operator 101 and the integrator 102 may be implemented in separate cores.