Patent Description:
<FIG> is a block diagram that illustrates a controller of a vehicle according to an embodiment of the invention. In some embodiments, the vehicle <NUM> uses diesel fuel. In some embodiments, the vehicle <NUM> is a Class <NUM> truck. In some embodiments, the vehicle <NUM> may be any type of vehicle for which a minimum temperature must be maintained at all times in order to ensure operability. As shown, the vehicle <NUM> includes an engine <NUM>, an oil temperature sensor <NUM>, an air temperature sensor <NUM>, one or more electronic cab components <NUM>, an engine control module (ECM) <NUM>, an ignition bus <NUM>, and a temperature monitoring controller <NUM>. A typical vehicle <NUM> will contain many more components known to one of ordinary skill in the art, but which are not illustrated or described herein for the sake of clarity.

The engine <NUM> is an internal combustion engine. In some embodiments, the engine <NUM> is configured to be powered by a diesel fuel blend. In some embodiments, the ECM <NUM> is configured to control various aspects of the engine <NUM> while operating, including but not limited to ignition timing, idle speed, and air/fuel ratio. To support these actions, the ECM <NUM> receives data from a plurality of sensors, including the oil temperature sensor <NUM> and the air temperature sensor <NUM>. The oil temperature sensor <NUM> is configured to measure a temperature of oil in the engine <NUM>, an oil reservoir, or elsewhere in the vehicle <NUM>. The oil temperature sensor <NUM> is configured to generate oil temperature values and provide them to the ECM <NUM>. The air temperature sensor <NUM> is configured to measure an ambient temperature outside of the vehicle <NUM>. Like the oil temperature sensor <NUM>, the air temperature sensor <NUM> is configured to generate air temperature values and provide them to the ECM <NUM>. In some embodiments, the electronic cab components <NUM> are one or more devices within a cab of the vehicle <NUM>. The electronic cab components <NUM> may include, but are not limited to, lights, warning indicator displays, audible alarms/alerts, and blower fans.

In some embodiments, the ignition bus <NUM> controls whether various other components of the vehicle <NUM> receive electrical power. For example, in some embodiments, when the ignition bus <NUM> is in a powered off state, the electronic cab components <NUM> and ECM <NUM> do not receive electrical power (or, at least, do not receive enough electrical power to provide functionality). Meanwhile, when the ignition bus <NUM> is in a powered on state, the engine <NUM>, electronic cab components <NUM>, and ECM <NUM> receive power. If a starter is engaged while the ignition bus <NUM> is in the powered on state, the engine <NUM> may start, and the ignition bus <NUM> must be in the powered on state for the engine <NUM> to run. However, the ignition bus <NUM> may be in the powered on state without the engine <NUM> starting. In some embodiments, one or more of the electronic cab components <NUM> may be activated upon receiving power from the ignition bus <NUM>, and may not be configurable to remain deactivated if power is received.

In diesel vehicles such as Class <NUM> trucks, a technical problem exists in that the fuel experiences "gelling" at low temperatures. One technique for avoiding gelling is to run the engine <NUM> in order to maintain fuel temperature above a low temperature threshold. However, running the engine <NUM> constantly wastes fuel and pollutes the environment, particularly when the vehicle <NUM> will be stationary for long periods of time (such as when an operator of the vehicle <NUM> is resting overnight in a truck sleeper). In such situations, the engine <NUM> instead may be shut down and automatically restarted periodically in order to maintain the fuel temperature above the low temperature threshold.

It would be advantageous to only restart the engine <NUM> when needed to maintain temperature, because fuel could be conserved and pollution could be reduced. However, several technical problems exist in doing so within existing vehicle <NUM> configurations. For example, in some embodiments, the ECM <NUM> is only active to receive sensor values if it is receiving power from the ignition bus <NUM>. This leads to a problem, in that the ignition bus <NUM> must be powered on in order to receive sensor values to check if the engine <NUM> should be automatically started. As stated above, if the ignition bus <NUM> is in the powered on state, at least some of the electronic cab components <NUM> will also be powered on. If the operator is trying to sleep in the truck sleeper, powering on the electronic cab components <NUM> will disturb the operator. This can lead to the operator receiving less rest (and the corresponding detriment to safety), or to the operator disabling the auto start feature and simply not turning off the engine <NUM> while resting (and the corresponding waste of fuel and increased pollution).

While a predetermined interval could be used to check temperature (e.g., place the ignition bus <NUM> in the powered on state every <NUM> minutes to check the temperature), this is undesirable for multiple reasons. For example, if the predetermined interval is set too short, the ignition bus <NUM> will be powered on unnecessarily. As another example, if the predetermined interval is set too long, the fuel temperature may fall below the gelling temperature before the auto-start can be engaged. What is desirable is a controller that can monitor the temperature in such a way that increases the interval time between the powering on of the ignition bus <NUM> when possible, but that also can ensure that the temperature will be checked before it crosses the low temperature threshold. What is also desirable is a controller that can provide such functionality without having to retrofit a vehicle <NUM> to include additional sensors that can be used without powering on the ignition bus <NUM>.

To provide these (and other) advantages, the vehicle <NUM> includes a temperature monitoring controller <NUM>. In some embodiments, the temperature monitoring controller <NUM> is a processor, control module, or other suitable hardware that is configured to receive sensor values from the ECM <NUM> and to decide when the engine <NUM> should be automatically started. In some embodiments, the temperature monitoring controller <NUM> is powered separately from the ignition bus <NUM>, and so can operate even when the ignition bus <NUM> is in the powered off state. In some embodiments, the temperature monitoring controller <NUM> may be incorporated into a portion of the ECM <NUM> that receives power even while the ignition bus <NUM> is in the powered off state. In some embodiments, when the temperature monitoring controller <NUM> determines that the engine <NUM> should be automatically started in order to maintain temperature, the temperature monitoring controller <NUM> can cause the engine <NUM> to be started using any suitable technique, including but not limited to engaging a starter and transmitting an instruction or other signal to the ECM <NUM>. Further details of how the temperature monitoring controller <NUM> decides when to automatically start the engine <NUM> and when to place the ignition bus <NUM> in the powered on state are provided below.

<FIG> are a flowchart that illustrates an embodiment of a method of managing temperature in a vehicle according to the invention. From a start block, the method <NUM> proceeds to block <NUM>, where an engine <NUM> of a vehicle <NUM> is placed in a stopped state. Placing the engine <NUM> in the stopped state may include placing the ignition bus <NUM> in the powered off state. Next, at block <NUM>, a temperature monitoring controller <NUM> of the vehicle <NUM> causes the ignition bus <NUM> to be placed in a powered on state (assuming it was previously in the powered off state). With the ignition bus <NUM> in the powered on state, the temperature monitoring controller <NUM> can request sensor values from the ECM <NUM>.

At block <NUM>, the temperature monitoring controller <NUM> obtains an initial oil temperature value from an oil temperature sensor <NUM> and an air temperature value from an air temperature sensor <NUM>. As noted above, the values may be obtained from the ECM <NUM>, as opposed to directly from the sensors. The temperature monitoring controller <NUM> may be able to receive the values directly from the sensors, but ignition bus power is still needed to activate the sensors. It should also be noted that in the illustrated and described embodiments, the temperature monitoring controller <NUM> is using oil temperature as a proxy for fuel temperature, at least because the oil temperature sensor <NUM> is widely installed and available. The values used to determine the fuel temperature are a proxy value or a direct measurement of the fuel temperature itself.

A test is then performed to determine whether the air temperature value is greater than a low temperature threshold. As known to one of ordinary skill in the art, the oil temperature will generally be warmer than the ambient temperature when the engine <NUM> is running, and will decay to the ambient temperature when the engine <NUM> is not running. If the air temperature is greater than the low temperature threshold, then it is unlikely that oil temperature will drop below the low temperature threshold (though it is advisable to continue to check, in case the ambient temperature falls). The low temperature threshold is temperature value below which engine may have reliability problems, including but not limited to fuel gelling.

In some embodiments, the low temperature threshold may be configured by the vehicle operator. Since the illustrated method <NUM> is intended to make sure that the fuel does not fall below its gelling temperature, the vehicle operator may set the low temperature threshold based on a gelling temperature of a particular fuel blend being used. In some embodiments, the vehicle <NUM> may provide an interface that allows the vehicle operator to directly enter the low temperature threshold. In some embodiments, the vehicle <NUM> may be programmed with low temperature thresholds for various fuel blends, and the vehicle operator may select a fuel blend in order to configure the low temperature threshold. In some embodiments, the vehicle operator may base the low temperature threshold on the gelling temperature of the fuel blend plus an offset, for safety. In the flowchart, the low temperature threshold is illustrated as TEMPCRANK.

If the test determined that the air temperature value is greater than the low temperature threshold, then the result of the determination at decision block <NUM> is YES, and the method <NUM> proceeds to block <NUM>. The illustrated embodiment describes this test as "greater than," though in some embodiments, the test may instead determine whether the air temperature value is greater than or equal to the low temperature threshold.

At block <NUM>, the temperature monitoring controller <NUM> sets an interval time to a maximum initial interval value. One example maximum initial interval value is any value between <NUM> minutes and <NUM> minutes, such as <NUM> minutes. Because the oil temperature value is unlikely to ever reach the low temperature threshold if the air temperature value is above the low temperature threshold, the maximum initial interval value can be set to a high value to reduce intrusiveness. In some embodiments, the maximum initial interval value may be set to a given value (instead of to an infinite value or no value) so that it remains unlikely that the temperature will fall without the temperature monitoring controller <NUM> reacting at all. In some embodiments, the maximum initial interval value may be configured by the vehicle operator. The method <NUM> then proceeds to a continuation terminal ("terminal B").

Otherwise, if the test determined that the air temperature value is not greater than the low temperature threshold, then the result of the determination at decision block <NUM> is NO, and the method <NUM> proceeds to perform a test to determine whether the oil temperature value is less than or equal to the low temperature threshold. If the test determined that the oil temperature is less than or equal to the low temperature threshold, then the result of the determination at decision block <NUM> is YES, and the method <NUM> proceeds to a continuation terminal ("terminal C"). In some embodiments, the low temperature threshold would be set by the vehicle operator to be higher than the gelling temperature of the fuel blend, since reaching the gelling temperature would be too late. Since the method <NUM> would be at block <NUM> soon after the engine <NUM> was turned off (and the engine <NUM> was successfully running before then), the oil temperature value would likely be between the gelling temperature of the fuel blend and the low temperature threshold due to the offset provided by the vehicle operator if the method <NUM> has reached a point where result of the determination at decision block <NUM> is YES. Again, as above, though the illustrated embodiment describes this determination as "less than or equal to," in some embodiments, this determination may be "less than.

Otherwise, if the oil temperature value is not less than or equal to the low temperature threshold, then the result of the determination at decision block <NUM> is NO, and the method <NUM> proceeds to another continuation terminal ("terminal A"). From terminal A (<FIG>), the method <NUM> proceeds to block <NUM>, where the temperature monitoring controller <NUM> sets an interval time to a minimum initial interval value. One example minimum initial interval value is any value between one minute and twenty minutes, such as ten minutes. The minimum initial interval value may be selected to be short enough to reduce the risk of a significant temperature drop, but while remaining large enough to provide a meaningful difference between the oil temperature value at the start of the interval and at the end of the interval such that a rate of change may be determined. In some embodiments, the minimum initial interval value may be configured by the vehicle operator.

The method <NUM> then proceeds to terminal B, and then to block <NUM>, where the temperature monitoring controller <NUM> causes the ignition bus <NUM> to be placed in a powered off state. As described above, while the ignition bus <NUM> is in the powered off state, the electronic cab components <NUM>, the ECM <NUM>, and the sensors <NUM>, <NUM> will not be active.

Next, the temperature monitoring controller <NUM> waits for the interval time. One of ordinary skill in the art will recognize that blocks <NUM>-<NUM> of the method <NUM> constitute a loop. The first time through the loop, the interval time will be either the maximum initial interval time assigned in block <NUM>, or the minimum initial interval time assigned in block <NUM>. For example, if the interval time was set to a minimum initial interval value of ten minutes, then the temperature monitoring controller <NUM> waits for ten minutes before the method <NUM> proceeds. On subsequent times through the loop (if any), the interval time will be the time determined in block <NUM> as described below.

At block <NUM>, after waiting for the interval time, the temperature monitoring controller <NUM> causes the ignition bus <NUM> to be placed in a powered on state. In the powered on state, power is supplied to the ECM <NUM>, and therefore values may be obtained from the sensors <NUM>, <NUM>. As a side-effect, power is also supplied to the electronic cab components <NUM>, which may cause them to flash lights, sound alerts, activate blowers, and so on. In some embodiments, power may be withheld from one or more of the electronic cab components <NUM> when the ignition bus <NUM> is placed in the powered on state, if possible.

Next, at block <NUM>, the temperature monitoring controller <NUM> obtains a current oil temperature value from the oil temperature sensor <NUM>. As described above, the value may be obtained via the ECM <NUM>, or directly from the oil temperature sensor <NUM>. At block <NUM>, the temperature monitoring controller <NUM> determines a subsequent interval time based on the previous interval time, the previous oil temperature value, and the current oil temperature value. For the time through the loop of blocks <NUM>-<NUM>, the previous interval time will be the initial interval time, and the previous oil temperature value will be the initial oil temperature value. For subsequent times through the loop of blocks <NUM>-<NUM>, if any, the current oil temperature value and the subsequent interval time will be used.

In some embodiments, the rate of change of the oil temperature is used to predict the future time at which the oil temperature will reach the low temperature threshold. Oil temperature experiences exponential decay when exposed to a lower ambient temperature, and so the rate of change observed between any two discrete oil temperature readings will be a conservative estimate of the time, thus increasing the likelihood that the engine <NUM> will be automatically started before reaching the low temperature threshold while allowing for increased interval times when appropriate.

In some embodiments, the subsequent interval time may be determined using a formula similar to the following: <MAT> where:.

In some embodiments, other formulas may be used that predict the time at which the current oil temperature will reach the low temperature threshold. For example, instead of using a conservative linear model for the prediction, an exponential decay model may be used in order to more accurately predict the point when the low temperature threshold may be reached.

Once the subsequent interval time is determined, a test is performed to determine whether the subsequent interval time is lower than a threshold interval time. In some embodiments, the threshold interval time may be selected based on an interval time that would be too short to provide relief to the vehicle operator. In other words, the threshold interval time would be set to a point at which, if the electronic cab components <NUM> were activated that frequently, it would be likely to disturb the vehicle operator. In some embodiments, the threshold interval time may be configured by the vehicle operator. In some embodiments, the threshold interval time may be any suitable value, such as between one minute and twenty minutes. One such value is ten minutes. In some embodiments, the threshold interval time may be set equal to the minimum initial interval value. In some embodiments, the threshold interval time should be set lower than or equal to the minimum initial interval value.

In some embodiments, the temperature monitoring controller <NUM> could check the oil temperature value to determine if it is at or below the low temperature threshold (or within an offset of the low temperature threshold), instead of using the subsequent interval time as a proxy for the low temperature threshold. However, using the interval time threshold provides a benefit, in that it avoids rapid cycling of the ignition bus when approaching the low temperature threshold.

If the test has determined that the subsequent interval time is greater than or equal to the threshold interval time, then the result of the determination at decision block <NUM> is NO, and the method <NUM> returns to block <NUM>. In the next pass through the loop of blocks <NUM>-<NUM>, the subsequent interval time determined in block <NUM> is used as the new interval time. In some embodiments, the subsequent interval time may be limited by a ceiling such as the maximum initial interval value.

Otherwise, if the test has determined that the subsequent interval time is lower than a threshold interval time, then the result of the determination at decision block <NUM> is YES, and the method <NUM> proceeds to terminal C, and then to block <NUM>, where the temperature monitoring controller <NUM> causes the engine <NUM> to be automatically started. The engine <NUM> will then run to bring the vehicle <NUM> up to an acceptable temperature. In some embodiments, the engine <NUM> may run for a predetermined amount of time. In some embodiments, the engine <NUM> may run until the oil temperature reaches a high temperature threshold. In some embodiments, the engine <NUM> may run for any other suitable amount of time.

The method <NUM> then proceeds to an end block and terminates.

In some embodiments, the method <NUM> may be executed multiple times while vehicle <NUM> is otherwise off. For example, a vehicle <NUM> may auto-start multiple times while parked over the course of a night if the ambient temperature is particularly cold, and may be auto-stopped at any suitable time. Each time the engine <NUM> stops, the method <NUM> may be re-executed.

In some embodiments, the vehicle <NUM> may be configured to enable or disable functionality of the method <NUM>. For example, if the air temperature is higher than a given threshold, or it is a given season and/or location (e.g., if the vehicle is in Texas in July, and/or the ambient temperature is <NUM> degrees F = <NUM>,<NUM>) the vehicle <NUM> may not perform the method <NUM> at all, but may instead leave the engine off with no fear of reaching the low temperature threshold. In some embodiments, the vehicle <NUM> may determine this automatically using GPS and the average seasonal temperature of the location. In some embodiments, the functionality may be enabled or disabled by the vehicle operator.

<FIG> is a chart that illustrates a temperature curve over time to illustrate the calculations performed according to an embodiment of the invention. In the chart <NUM>, the X-axis represents time (in minutes), and the Y-axis represents temperature (in degrees Fahrenheit. They correspond to °Celsius as follows: <MAT> <MAT> <MAT> <MAT> <MAT> <MAT> <MAT>.

The curved line <NUM> is an example of oil temperature over time. At time=<NUM>, the oil temperature starts at <NUM>°F (<NUM>,<NUM>) and exhibits exponential decay over time. The horizontal line at -<NUM>°F (<NUM>,<NUM>) illustrates an example of air temperature <NUM>. The horizontal line at +<NUM>°F (-<NUM>,<NUM>) illustrates an example low temperature threshold <NUM>. The values are illustrative only and are used to illustrate the result of the computations. Real world values may vary, as oil temperature may be different, rate of decay may be different, low temperature threshold may be lower or higher, and ambient temperatures may vary (and may not be constant).

In the chart <NUM>, time=<NUM> indicates the state at block <NUM> of the method <NUM>, and at block <NUM>, a minimum initial interval value of <NUM> minutes was set. The dashed line <NUM> at time=<NUM> indicates the state at block <NUM>, where a current oil temperature is measured as approximately <NUM>°F (<NUM>,<NUM>) The previous oil temperature was <NUM>°F (<NUM>,<NUM>), and the previous interval time was <NUM> minutes. Accordingly, the computation at block <NUM> resulted in a subsequent interval time of <NUM> minutes.

The dashed line <NUM> at time=<NUM> (<NUM> minutes after time=<NUM>) indicates the state at block <NUM> again, where a current oil temperature is measured as approximately <NUM>°F (<NUM>,<NUM>). The previous oil temperature was <NUM>°F (<NUM>,<NUM>), and the previous interval time was <NUM> minutes. Accordingly, the computation at block <NUM> resulted in a subsequent interval time of <NUM> minutes.

The dashed line <NUM> at time=<NUM> (<NUM> minutes after time=<NUM>) indicates the state at block <NUM> again, where a current oil temperature is measured as approximately <NUM>°F (<NUM>,<NUM>). The previous oil temperature was <NUM>°F (<NUM>,<NUM>) and the previous interval time was <NUM> minutes. Accordingly, the computation at block <NUM> resulted in a subsequent interval time of <NUM> minutes.

The dashed line <NUM> at time=<NUM> (<NUM> minutes after time=<NUM>) indicates the state at block <NUM> again, where a current oil temperature is measured as approximately <NUM>°F (-<NUM>,<NUM>). The previous oil temperature was <NUM>°F (<NUM>,<NUM>), and the previous interval time was <NUM> minutes. Accordingly, the computation at block <NUM> resulted in a subsequent interval time of <NUM> minutes.

The dashed line <NUM> at time <NUM> (<NUM> minutes after time=<NUM>) indicates the state at block <NUM> again, where a current oil temperature is measured as approximately <NUM>°F (-<NUM>). The previous oil temperature was <NUM>°F (-<NUM>,<NUM>), and the previous interval time was <NUM> minutes. Accordingly, the computation at block <NUM> resulted in a subsequent interval time of <NUM> minutes.

The dashed line <NUM> at time <NUM> (<NUM> minutes after time=<NUM>) indicates a point where the oil temperature <NUM> reached the low temperature threshold. If the threshold interval time had been set to <NUM> minutes, the engine <NUM> would have been automatically started at time=<NUM>, when the subsequent interval time was computed to be less than the threshold interval time. One will notice that the first computed interval time was <NUM> minutes, and the last computed interval time greater than the threshold was <NUM> minutes, for an average interval time of <NUM> minutes.

Claim 1:
A method (<NUM>) of automatically managing temperature in an engine (<NUM>) of a vehicle (<NUM>), the method comprising:
obtaining, by a temperature monitoring controller (<NUM>), a current fuel temperature value from measuring a proxy value for the fuel temperature or directly measuring the fuel temperature;
determining, by the temperature monitoring controller, an interval time representing a time period after which a fuel temperature is predicted to drop below a low temperature threshold, wherein the determination is based on at least a previous interval time, a previous fuel temperature value, and the current fuel temperature value;
in response to determining that the interval time is greater than a threshold interval time, waiting, by the temperature monitoring controller, for the interval time before obtaining a subsequent fuel temperature value from measuring a proxy value for the fuel temperature or directly measuring the fuel temperature; and
in response to determining that the interval time is not greater than the threshold interval time, causing, by the temperature monitoring controller, an engine of the vehicle to be started.