Vehicle diagnostic operation

A system includes a processor and a memory. The memory stores instructions executable by the processor to, based on a vehicle destination, identify a diagnostic condition and a specified operating pattern of a vehicle component that includes at least one of vehicle propulsion, braking, and steering. The memory stores instructions executable by the processor to operate the vehicle based on the vehicle component and the operating pattern.

BACKGROUND

A vehicle component such as an actuator, sensor, controller, etc., may fail to operate, which may impair a vehicle operation. Vehicle computers may perform diagnostic operation to detect a fault or failure of a vehicle component. However, it is a problem that vehicle diagnostic tests can be affected by environmental and/or vehicle conditions.

DETAILED DESCRIPTION

Introduction

Disclosed herein is a system that includes a processor and a memory. The memory stores instructions executable by the processor to, based on a vehicle destination, identify a diagnostic condition and a specified operating pattern of a vehicle component that includes at least one of vehicle propulsion, braking, and steering, and to operate the vehicle based on the vehicle component and the operating pattern.

The operating pattern may include a maximum acceleration and a minimum acceleration.

The instructions may further include instructions to operate the vehicle at an acceleration greater than the minimum acceleration and less than the maximum acceleration.

The operating pattern may include a maximum yaw rate and a minimum yaw rate.

The operating pattern may include a maximum speed and a minimum speed associated with a road type.

The instructions may further include instructions to determine a vehicle route based on the destination and the vehicle diagnostic condition.

The instructions may further include instructions to select the vehicle diagnostic condition from a plurality of possible vehicle diagnostic conditions based on an assigned priority of each of the possible diagnostic conditions.

The instructions may further include instructions to identify the vehicle diagnostic condition from a plurality of possible vehicle diagnostic conditions based on at least one of terrain data, vehicle occupancy data, and traffic data, in addition to the vehicle destination.

The vehicle diagnostic condition may include one or more of a substantially constant vehicle engine speed for a predetermined time, a deceleration caused by a fuel shut off, exceeding a predetermined vehicle speed, and applying a predetermined brake pressure.

The instructions may include further instructions to perform a diagnostic operation upon meeting the diagnostic condition, wherein the diagnostic operation includes verifying whether a fault condition was met.

The instructions may include further instructions to adjust the specified operating pattern upon determining that the vehicle is operating without a vehicle occupant.

Further disclosed herein is a method including, based on a vehicle destination, identifying a diagnostic condition and a specified operating pattern of a vehicle component that includes at least one of vehicle propulsion, braking, and steering, and operating the vehicle based on the vehicle component and the operating pattern.

The operating pattern may include a maximum acceleration and a minimum acceleration.

The method may further include operating the vehicle at an acceleration greater than the minimum acceleration and less than the maximum acceleration.

The method may further include determining a vehicle route based on the destination and the vehicle diagnostic condition.

The method may further include selecting the vehicle diagnostic condition from a plurality of possible vehicle diagnostic conditions based on an assigned priority of each of the possible diagnostic conditions.

The method may further include identifying the vehicle diagnostic condition from a plurality of possible vehicle diagnostic conditions based on at least one of terrain data, vehicle occupancy data, and traffic data, in addition to the vehicle destination, wherein the vehicle diagnostic condition includes one or more of a substantially constant vehicle engine speed for a predetermined time, a deceleration caused by a fuel shut off, exceeding a predetermined vehicle speed, and applying a predetermined brake pressure.

Further disclosed herein is a system including a vehicle component that is one of vehicle propulsion, braking, and steering, means for identifying, based on a vehicle destination, a diagnostic condition and a specified operating pattern of the vehicle component, and means for operating the vehicle based on the identified diagnostic condition and the identified operating pattern.

The identified diagnostic condition may be based on at least one of terrain data, vehicle occupancy data, and traffic data, in addition to the vehicle destination.

The system may further include means for operating the vehicle at an acceleration greater than a minimum acceleration and less than a maximum acceleration, wherein the operating pattern includes a maximum acceleration and a minimum acceleration.

Further disclosed is a computing device programmed to execute the any of the above method steps. Yet further disclosed is a vehicle comprising the computing device.

Yet further disclosed is a computer program product, comprising a computer readable medium storing instructions executable by a computer processor, to execute any of the above method steps.

System Elements

FIG. 1is a block diagram of a vehicle100. The vehicle100may be powered in a variety of known ways, e.g., with an electric motor and/or internal combustion engine. The vehicle100may include a computer110, actuator(s)120, sensor(s)130, and a human machine interface (HMI140), each of which are discussed in more detail below.

The computer110includes a processor and a memory such as are known. The memory includes one or more forms of computer-readable media, and stores instructions executable by the computer110for performing various operations, including as disclosed herein.

The computer110may include programming to operate one or more of vehicle brakes, propulsion (e.g., control of acceleration in the vehicle by controlling one or more of an internal combustion engine, electric motor, hybrid engine, etc.), steering, climate control, interior and/or exterior lights, etc., as well as to determine whether and when the computer110, as opposed to a human operator, is to control such operations.

The computer110may operate a vehicle100in an autonomous, a semi-autonomous mode, or a non-autonomous (or manual) mode. For purposes of this disclosure, an autonomous mode is defined as one in which each of vehicle100propulsion, braking, and steering are controlled by the computer110; in a semi-autonomous mode the computer110controls one or two of vehicles100propulsion, braking; in a non-autonomous mode a human operator controls each of vehicle100propulsion, braking, and steering.

The computer110is generally arranged for communications on a vehicle communication network, e.g., including a communication bus such as a controller area network (CAN) or the like. The computer110may include or be communicatively coupled to, e.g., via a vehicle communications bus as described further below, more than one processor, e.g., controllers or the like included in the vehicle for monitoring and/or controlling various subsystems such as a powertrain, brake, steering, etc.

Via the vehicle network, the computer110may transmit messages to various devices in the vehicle100and/or receive messages from the various devices, e.g., controllers, actuators, sensors, etc., including sensors130. Alternatively or additionally, in cases where the computer110actually comprises multiple devices, the vehicle communication network may be used for communications between devices represented as the computer110in this disclosure. Further, as mentioned below, various controllers and/or sensors130may provide data to the computer110via the vehicle communication network.

In addition, the computer110may be configured for communicating through a wireless communication interface with a remote computer via a wireless communication network. The communication network may be one or more of wireless communication mechanisms, including any desired combination of wireless (e.g., cellular, wireless, satellite, microwave and radio frequency) communication mechanisms and any desired network topology (or topologies when multiple communication mechanisms are utilized). Exemplary V-to-V communication networks include cellular, Bluetooth, IEEE 802.11, dedicated short range communications (DSRC), and/or wide area networks (WAN), including the Internet, providing data communication services.

Sensors130may include a variety of devices known to provide data via the vehicle communications bus. For example, the sensors130may include one or more cameras, radars, and/or Light Detection and Ranging (LIDAR) sensors disposed in the vehicle100providing data encompassing at least some of the vehicle interior and/or exterior.

The actuators120typically include circuits, chips, or other electronic components that can actuate various vehicle subsystems in accordance with appropriate control signals as is known. For instance, the actuators120may include one or more relays, servomotors, etc. The actuators120, therefore, may be used to control braking, acceleration, and steering of the vehicle100. The control signals used to control the actuators120may be generated by the computer110, a control unit located in the vehicle100, e.g., the brake controller, etc. The vehicle100may include various components or sub-systems, each include one or more sensors130, actuators120, controller, etc. For example, the vehicle100may include a brake component including brake sensors130, brake actuators120, and/or other electronic, mechanical, etc. elements that stop the vehicle100based on commands received from a controller such as the computer110. As another example, the vehicle100may include a powertrain component or sub-system that may include one or more actuators120, sensors130, etc., in addition to an engine, electric motor, and/or a transmission.

The HMI140may be configured to receive user input, e.g., during operation of the vehicle100. As one example, an HMI140may include touchscreens, buttons, knobs, keypads, microphone, and so on for receiving information from a user. Moreover, an HMI140may include various interfaces such as a touchscreen display, a smart phone, etc., for receiving information from a user and/or output information to the user.

A vehicle100component, e.g., an actuator120, a sensor130, an electronic controller included in a component, etc., may have a fault. A fault is a condition in which a component fails to operate or operates outside of one or more predefined parameters (e.g., a predefined parameter could be a physical quantity such as temperature, torque, revolutions per minute, pressure, etc.). The vehicle100computer110may be programmed to determine whether a vehicle100component, e.g., a propulsion, braking, steering, etc., is in a fault condition based on data received from, e.g., various vehicle100sensors130, actuators120, controllers, etc. For example, a fault can be determined by a diagnostic operation, i.e., the computer110may be programmed to monitor a vehicle100component and determine whether a fault condition has occurred, e.g., whether a physical quantity is outside a predefined range.

The computer110may be programmed to perform a diagnostic operation upon receiving and analyzing data to determine whether a diagnostic condition is met. A “diagnostic condition,” in the context of present disclosure, means a condition to be met before a diagnostic operation can be performed. Upon determining that the diagnostic condition is met, then computer110may be programmed to verify whether a fault condition is met. For example, a minimum output torque may be expected from an engine after the engine reaches a threshold temperature. Thus, in this example, the diagnostic condition may be “engine temperature exceeds the predefined temperature threshold,” and the fault condition may be “the engine torque output is less than the expected torque threshold.” The computer110may be programmed to perform the diagnostic operation, i.e., to determine whether the fault condition is met only upon determining that the diagnostic condition was met. The diagnostic operation may further include updating a diagnostic status upon determining that a fault condition is met and/or a previously met fault condition is resolved, i.e., the fault condition does not exist anymore, e.g., a deficient vehicle100part was replaced.

The diagnostic operation may further include recording the diagnostic status, e.g., in a computer110memory. Each diagnostic operation may be identified by a diagnostic trouble code (DTC) which is typically a unique numeric code specifying a particular fault condition that the computer110may receive via a vehicle100network such as a Controller Area Network (CAN communications bus. It is to be understood that DTCs are discussed herein by way of example and not limitation; other fault identifiers or descriptors could be used in the context of the present disclosure. In one example, a DTC may be associated with a diagnostic condition, a diagnostic fault condition, status, etc. A vehicle100computer110may be programmed to perform various diagnostic operations associated with various vehicle100components. A status of a DTC typically includes an “active” and an “inactive” state. “Active” means the DTC is recorded, whereas “inactive” means the DTC is not recorded (e.g., no deficiency was determined or a recorded deficiency was erased from the computer110memory). The computer110may be programmed to update and store a diagnostic status associated with each of the diagnostic operations in a computer110memory and/or transmit the diagnostic status via the vehicle100communication network to another computer, e.g., a diagnostic tester.

Each DTC typically identifies a fault condition of a specific vehicle100component, e.g., associated with vehicle100propulsion, steering, braking, etc. Further, each DTC may be associated with a diagnostic condition (or conditions), i.e., a condition, such as a measured physical value (e.g., a temperature) meeting or exceeding a threshold, to be met before a diagnostic operation can be performed. For example, in order to perform a specific diagnostic operation for a vehicle100steering, the computer110may be programmed to determine whether a diagnostic condition of “driving on a straight line for at least 10 seconds” is met. Thus, a specific component (i.e., the steering) of the vehicle100is associated with meeting the diagnostic condition (i.e., driving on a straight line) of this diagnostic operation (detecting a fault condition of the steering component such as a proper alignment thereof.

FIG. 2illustrates example graphs of a diagnostic condition, a fault condition, and recording a DTC, thereby presenting a simple example of these data in a diagnostic operation. For example, a fault condition may exist for a period beginning at a time t1but not result in recording a DTC (i.e., setting the status of the DTC to “active”), because a prerequisite diagnostic condition was not met at time t1to activate a diagnostic operation to detect the fault condition. At a time t2, the diagnostic condition is met, and therefore a diagnostic operation can be performed to detect a fault condition that begins at a time t3resulting in recording a DTC.

In one example, the computer110may be programmed to record the DTC upon determining that a time d, e.g., 5 seconds, has elapsed since both the fault condition and the diagnostic condition were met. The time delay d may advantageously prevent recording the DTC if a transitory effect such as a noise in a signal has caused an unwanted temporary activation of the fault condition.

As discussed above, the computer110may be programmed to perform various diagnostic operations (e.g., resulting in setting a status of one or more DTCs), each associated with, i.e., diagnosing a fault or no-fault status of, one or more of vehicle100components and/or operations. A diagnostic condition may be specified based on a specific vehicle100component. For example, to diagnose a specific deficiency in a vehicle100steering component, the diagnostic condition may be “vehicle100moves for at least a predetermined time (e.g., 10 seconds) on a straight line.” As another example, to diagnose a vehicle100brake component, the diagnostic condition may be “a minimum amount of brake pressure is applied on vehicle100brake pads.” Thus, a given diagnostic condition may or may not be met during operation of the vehicle100. For example, when the vehicle100navigates on a curved road, the example steering diagnostic condition described above may not be met.

The computer110can be programmed to determine that a diagnostic condition and a specified operating pattern (as defined below) are met for a vehicle100component based on a vehicle100destination. As stated above, the vehicle100component may include a vehicle100propulsion, braking, and/or steering. The computer110can then operate the vehicle100, e.g., in an autonomous or semi-autonomous mode, based on the identified vehicle100component and an operating pattern.

In the present disclosure, an “operating pattern” is a set of a plurality of data that specifies vehicle100physical parameters including speed, acceleration, yaw rate, elevation, slope of a vehicle body, vibration, etc., and/or instructions sent by the vehicle100computer110to vehicle100components including planning a route to achieve specific speed, acceleration, etc. The computer110may be programmed to navigate the vehicle100to traverse the planned route by actuating the vehicle100actuators120.

Table 1 shows an example list of diagnostic operations for the example vehicle100system. Each diagnostic operation may include an identifier (e.g., a DTC code), priority, diagnostic condition, fault condition, and diagnostic status. Each diagnostic operation may be associated with one or more operating pattern(s), as discussed below. Thus, each row of Table 1 shows a diagnostic condition to be met before a diagnostic operation can be performed to determine the diagnostic status of the diagnostic operation shown in the respective row. For example, the diagnostic condition of DTC1(for convenience, each diagnostic operation shown in Table 1 is referred to in the text with a subscript indicating its identifier DTC code from Table 1) indicates the vehicle100steering component, whereas the diagnostic condition for DTC6indicates that a diagnostic operation can be performed for each of the vehicle100steering, propulsion, and braking components.

A diagnostic operation priority provides a rating or ranking of importance to perform a diagnostic operation. In one example, the priority may be a predetermined level such as “low”, “medium”, and “high.” Additionally or alternatively, the computer110may be programmed to determine the priority based on, e.g., a distance travelled since last performing of the diagnostic operation. For example, the computer110may be programmed to increase a priority of a DTC when the distance travelled since last performing of the respective DTC exceeds a distance threshold, e.g., 50 kilometers (km).

Table 1 shows various example diagnostic conditions: i) driving on a straight line (DTC1), which may be determined based on a vehicle100yaw rate kept less than a predetermined threshold; ii) a vehicle100speed exceeding a predetermined vehicle speed threshold (DTC2); iii) applying at least a predetermined brake pressure (DTC3); iv) a vehicle100deceleration caused by a fuel injection shut off which is sometimes also referred to as an engine brake (DTC4); v) a substantially constant vehicle100speed for a predetermined time (DTC5); and vi) activate at least a predetermined amount of electric loads in the vehicle100(DTC6).

Table 1 further shows various example operating patterns, each associated with a DTC diagnostic condition. In other words, when the vehicle100is operated based on a vehicle100operating pattern, then a respective diagnostic condition may be met. Thus, the computer110may be programmed to actuate vehicle100actuators120based on the operating pattern, and, upon determining that the diagnostic condition is met, to perform the diagnostic operation associated with the diagnostic condition.

For example, the operating pattern may include: i) a maximum acceleration and/or a minimum acceleration, ii) a maximum yaw rate and/or a minimum yaw rate; iii) a maximum speed and/or a minimum speed associated with a road type (i.e., the operating pattern includes road data associated with the vehicle100route). For example, with reference to DTC7, the computer110may be programmed to operate the vehicle100at an acceleration greater than a minimum acceleration, e.g., 0.3 meter/second (m/s2), and less than the maximum acceleration, e.g., 1 m/s2.

The computer110may be programmed to determine a vehicle100route based on a vehicle100destination and a vehicle100diagnostic condition. The vehicle100destination may be determined based on input received via, e.g., the HMI140, remote computer, etc. For example, based on the DTC1diagnostic condition, the computer110may be programmed to determine a route that includes at least a straight road section, e.g., based on map data received from a remote computer, e.g., via a wireless communication network. The map data may include a road curvature diameter for a segment of a road, and the computer110may be programmed to determine whether the road segment is straight based on the received road curvature radius, e.g., when the radius exceeds a predetermined threshold such as 10 kilometers. The computer110may be programmed to determine whether a route to the destination can be identified which has at least one straight road section of at least a predetermined distance (as specified in a diagnostic condition) based on the map data. The computer110may be programmed to determine possible routes from a vehicle100current location to the destination using conventional route planning techniques and then select a route that includes a straight road segment that satisfies a diagnostic condition, if such route is found.

The computer110may be programed to select a diagnostic condition from a set of possible diagnostic conditions, e.g., as shown in Table 1, based on an assigned priority of each of the possible diagnostic conditions. Thus, the computer110may be programmed to select one or more of the diagnostic conditions based on the respective priorities. For example, the computer110typically is programmed to select diagnostic conditions with a “high” priority, and then for lower priorities. Thus, even if all diagnostic conditions cannot be met while a route is being traversed, those with higher priorities will be met first.

The computer110may be programmed to identify a currently-met diagnostic condition from multiple possible vehicle diagnostic conditions based on at least one of terrain data, vehicle100occupancy data, and traffic data, in addition to a vehicle100destination. In one example, the computer110may be programmed to select one or more diagnostic condition(s) that are, or are predicted to be, met (i.e., a prerequisite operating pattern exists or is predicted to exist) based on the destination, map data, and/or the current location of the vehicle100. In an example that can be discussed with respect to Table 1, upon determining that the vehicle100current location and the destination are in a congested urban area with no freeway on a route to the destination, e.g., based on the received map data, then the computer110may be programmed to select the diagnostic conditions of DTC3, DTC4, and/or DTC6rather than other diagnostic conditions which need higher speed, constant speed, etc., that are less likely to be met in a congested urban area.

Terrain data may include lateral and/or longitudinal slope of road, curvature diameter of road, etc. Thus, the computer110may be programmed to select a diagnostic condition, e.g., DTC1, upon determining a route that has a road section with the curvature diameter exceeding a predetermined threshold. In one example, a road section with the curvature diameter greater than 5000 meters may be referred to as a straight road section.

Operating patterns associated with some diagnostic conditions may be discomforting for a vehicle100occupant, e.g., exceeding an acceleration threshold such as 1.5 m/s2, actuating engine brakes, etc. The computer110may be programmed to adjust the specified operating pattern upon determining that the vehicle is operating without a vehicle occupant. For example, upon determining that the vehicle100is operated without an occupant, e.g., based on data received from an occupancy sensor130, interior camera sensor130, etc., the computer110may be programmed to adjust the operating pattern to fulfill a diagnostic condition that may be discomforting for a vehicle100occupant.

Process

FIGS. 3A-3Bare a flowchart of an exemplary process300for navigating a vehicle while performing a diagnostic operation. For example, the vehicle100computer110may be programmed to execute blocks of the process300.

With reference toFIG. 3A, the process300begins in a block310, in which the computer110receives data including a vehicle100current location, a destination, map data, diagnostic condition(s), and/or vehicle100occupancy data. The computer110may be programmed to receive the current location from a vehicle100GPS sensor, the destination from the HMI140and/or a remote computer, the occupancy data from a vehicle100occupancy sensor, the diagnostic conditions from a computer110memory, etc.

Next, in a decision block315, the computer110determines whether a diagnostic condition can be identified for performing a diagnostic operation on at least one vehicle100component such as propulsion, steering, and/or braking. The computer110may be programmed to select a diagnostic condition from multiple diagnostic conditions. If the computer110identifies a diagnostic condition for a diagnostic operation on a vehicle100component that can be met, then the process300proceeds to a block320; otherwise the process300proceeds to a block330.

In the block320, the computer110determines the operating pattern based on the identified diagnostic condition and the vehicle100component.

Next, in a block325, the computer110navigates the vehicle100based on the determined operating pattern. For example, the computer110may be programmed to navigate the vehicle100, in an autonomous mode, to the destination based on a route that is included in the operating pattern. In another example, e.g., the computer110may be programmed to navigate the vehicle100in a semi-autonomous mode, e.g., controlling a steering component of the vehicle100to fulfill the diagnostic condition of DTC1.

In the block330, the computer110navigates the vehicle100to destination based on the received destination and map data. For example, the computer110may be programmed to determine a route, using known navigation techniques, and to actuate vehicle100actuators120to traverse the route to the destination. Additionally or alternatively, a human user may control vehicle100operation including steering, propulsion, and/or braking.

Next, and now referring toFIG. 3B, in a decision block335, the computer110determines whether the vehicle100has any occupant based on data received from, e.g., an occupancy sensor130, an interior camera sensor130, etc. If the computer110determines that the vehicle100is unoccupied, then the process300proceeds to a block340; otherwise the process300proceeds to a decision block345.

In the block340, the computer110adjusts the vehicle100operating pattern. For example, the computer110may be programmed to adjust the operating pattern to meet a diagnostic condition that may be discomforting for a vehicle100occupant. In other words, a diagnostic condition that may have been unfulfillable, may be fulfillable upon adjusting the operating pattern, e.g., actuating engine brakes, strong braking actuation, etc.

In the decision block345, the computer110determines whether the diagnostic condition is met. If the computer110determines that the diagnostic condition is met, then the process300proceeds to a decision block350; otherwise the process300ends, or alternatively returns to the block310, although not shown inFIG. 3B.

In the decision block350, the computer110determines whether at least one fault condition is met. If the computer110determines that a fault condition is met, then the process300proceeds to a block355; otherwise the process300ends, or alternatively returns to the block310, although not shown inFIG. 3B.

In the block355, the computer110records the DTC for which the diagnostic condition and the fault condition are met. The computer110may be programmed to set the DTC status to an active state and store (or record) the DTC status in a computer110memory and/or transmit the DTC status to a remote computer. Following the block355, the process300ends, or alternatively returns to the block310, although not shown inFIG. 3B.

Unless indicated explicitly to the contrary, “based on” means “based at least in part on” and/or “based entirely on.”

With regard to the media, processes, systems, methods, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of systems and/or processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the disclosed subject matter.