N/A
For purposes of this disclosure and the claims, an “electronic control unit” or “ECU” is an embedded computing device that controls a vehicle's electrical system. A vehicle may typically have multiple ECUs such as an engine control module (ECM), a powertrain control module (PCM), a transmission control module (TCM), etc.
Various standards have been developed for communicating with an ECU. For example, the controller area network (CAN) standard defines a serial communications bus and corresponding protocol for connecting and communicating with an ECU. As another example, the OBD-2 standard defines the hardware interface (or connector/port) for connecting external computing devices to a vehicle's CAN bus and various messaging formats for communicating with an ECU over the CAN bus. A key purpose of the OBD-2 standard is to define diagnostic functionality that all vehicles must support. For example, the SAE J1979 standard defines a number of parameter IDs (or PIDs) that are used to request diagnostic data from an ECU.
The present invention extends to systems, methods and computer program products for analyzing a vehicle's performance. A performance system can enable an untrained end user to analyze the performance of a vehicle based on performance data that the vehicle's ECU generates. The performance system can include a performance tool that is configured to request performance data from one or more ECUs of a vehicle. The performance system can also include a performance engine that interfaces with the performance tool to create a log of the performance data. The performance engine can be configured to process the performance data log to generate a number of performance values which correspond to performance parameters. The performance engine can then use the performance values to generate performance representations which can then be presented to the end user.
In some embodiments, the present invention may be implemented as a performance system that includes a performance tool and a performance engine. The performance tool can be configured to connect to an ECU of a vehicle and to read performance data from the ECU over a period of time. Each reading of the performance data may include values for a plurality of performance parameters. The performance engine may interface with the performance tool to receive and store the performance data in a performance data log. The performance engine may be configured to perform a method for enabling an end user to analyze performance of the vehicle using the performance data log in which the performance engine: processes the performance data log to generate a set of performance values for a first performance parameter of the plurality of performance parameters; generates a performance representation from the set of performance values for the first performance parameter; and presents the performance representation to the end user.
In some embodiments, the present invention may be implemented by a performance engine as a method for enabling an end user to analyze performance of a vehicle using a performance data log. The performance engine may obtain a performance data log containing performance data read from an ECU of the vehicle over a period of time. Each reading of the performance data may include values for a plurality of performance parameters. The performance engine may process the performance data log to generate a set of performance values for a first performance parameter that correspond to different values for an engine speed performance parameter. The performance engine may generate a performance representation from the set of performance values for the first performance parameter. The performance engine may then present the performance representation to the end user.
In some embodiments, the present invention may be implemented as computer storage media storing computer executable instructions which when executed implement a method for enabling an end user to analyze performance of a vehicle using a performance data log. A performance data log may be obtained. The performance data log may contain performance data read from an ECU of the vehicle over a period of time and each reading of the performance data may include values for a plurality of performance parameters. The performance data log can then be processed to generate a first set of performance values for a first performance parameter that correspond to different values for an engine speed performance parameter and to generate a second set of performance values for a second performance parameter that correspond to the different values for the engine speed performance parameter. A first performance representation can then be generated from the first set of performance values for the first performance parameter. A second performance representation can also be generated from the second set of performance values for the second performance parameter. The first and second performance representations can then be presented to the end user.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter.
Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
In the specification and the claims, the term “performance” should be construed as encompassing diagnostics. For example, a performance system can be used to analyze a vehicle's performance which may include performing diagnostics. The term “performance parameter” should be construed as encompassing any parameter, including diagnostic parameters, that can be obtained from a vehicle's ECU. The term “engine speed,” which is a gas vehicle term, should be construed as encompassing the equivalent performance parameter for electric vehicles (e.g., time steps).
In accordance with embodiments of the present invention, computing environment 100 may also include a performance system 130 that includes a performance tool 131, a performance engine 132 and possibly a performance server 133. Performance tool 131 can be configured to connect to port 112 and to communicate with ECU 111 over bus 113. As one example only, performance tool 131 could be in the form of a dongle that plugs into a vehicle's OBD-2 port. In some embodiments, performance engine 132 may be configured to execute on an end user computing device 120 such as desktop, laptop, tablet or smart phone (e.g., as a desktop application, a mobile application, a web application, etc.). Performance engine 132 can be connected to performance tool 131 via a connection 134 which may represent a wired connection (e.g., a USB cable) or a wireless connection (e.g., a Wi-Fi or Bluetooth connection). In some embodiments, performance engine 132 could be implemented on performance tool 131 as opposed to on end user computing device 120 (e.g., when performance tool 131 includes user interface elements). In some embodiments, performance engine 132 may also be connected to performance server 133 via a connection 135 which may typically represent an internet connection.
Turning to
Turning to
In step 4b, performance engine 132 can interface with performance tool 131 to receive the performance data generated during the capture session and store it in a performance data log. Although
Regardless of where performance data log may be maintained, the end result of the capture session is the creation of a performance data log containing performance data that ECU 111 generated as the user interacted with vehicle 110. Notably, steps 2b and 3 may occur simultaneously and repeatedly during the capture session. For example, as performance engine 132 receives and evaluates the performance data during the capture session, performance engine 132 may instruct the end user to press more or less on the accelerator (e.g., to ensure that performance data is generated when vehicle 110 is operating at particular engine speeds or ranges) or to otherwise interact with vehicle 110 to ensure that performance data is captured when vehicle 110 is operating with one or more particular characteristics.
As represented by the ellipses, each reading of performance data may include values for other performance parameters such as an ignition correction cylinder performance parameter for each cylinder vehicle 110 has, one or more oxygen sensor performance parameters, one or more fuel injector performance parameters, one or more short term fuel trim (STFT) performance parameters, one or more spark advance performance parameters, one or more accelerator pedal position performance parameters, one or more throttle position performance parameters, one or more bypass valve performance parameters, one or more air mass performance parameters, one or more HPFP capacity performance parameters, one or more low pressure fuel pump (LPFP) performance parameters, etc.
In some embodiments, performance engine 132 may create a modified performance data log 300a from performance data log 300. For example, performance engine 132 may remove/exclude any reading of performance data where the value of one or more performance parameters does not meet specified criteria (e.g., by falling below a threshold or falling outside a best-fit tolerance). As an example, in creating performance data log 300a, performance engine 132 may exclude any row in performance data log 300 having a value for the engine speed performance parameter that falls below a threshold such as 2000 RPM and/or a value of the accelerator pedal performance parameter that falls below a threshold such as 70%. Any other performance parameter could be used to perform this filtering of performance data log 300. In some embodiments, such as is represented in
In some embodiments, performance engine 132 may augment performance data log 300 with data obtained from a source other than ECU 111. For example, performance engine 132 could obtain location (e.g., GPS) data, weather data or other context data and associate such data with the performance data in performance data log 300. In the case of location data, performance engine 132 can associate each reading of performance data with a location so that the vehicle's performance can be analyzed relative to its physical location (e.g., while driving up or downhill, around curves, on paved or dirt roads, etc.).
In some embodiments, performance engine 132 can adjust performance values for one performance parameter based on another performance parameter. For example, using a barometric pressure performance parameter, performance engine 132 can adjust performance values for maximum boost pressure or acceleration so that the performance values represent expected maximums or ranges at other barometric pressures. Performance engine 132 can make such adjustments to assist a user in understanding how one performance parameter impacts another performance parameter.
Performance engine 132 can output performance representations 410 for display on end user computing device 120. For example, performance engine 132 may provide an option for the end user to select any of performance representations 410 that he or she desires to review after completing a capture session. Alternatively or additionally, performance engine 132 may send performance representations 410 and/or performance values 400 to performance server 133. For example, performance engine 132 may provide an option for the end user to upload performance representations 410 and/or performance values 400 to performance server 133 as part of a request for a specialist to analyze the performance of vehicle 110.
Performance representations 410 allow the end user to quickly identify whether vehicle 110 is performing properly with little or no training or experience. For example, by simply viewing boost pressure performance representation 413, the end user could determine that vehicle 110's minimum, maximum and average boost pressures are below that target boost pressure across the range of engine speeds. Similarly, by simply viewing boost pressure performance representation 413, the end user could determine that vehicle 110's minimum, maximum and average boost pressures are below that low threshold boost pressure at some engine speeds. In this way, performance engine 132 can assist an end user—who otherwise may not be competent to do so—to analyze and address the performance of vehicle 110.
In some embodiments, performance engine 132 may evaluate performance values 400 to determine if any of them represent a performance issue. If so, performance engine 132 may present to the end user an explanation of the performance issue and possibly one or more recommendations for addressing the performance issue. In some embodiments, performance engine 132 may present such performance issues in conjunction with presenting the corresponding performance representations 410. In this way, performance engine 132 can assist the end user in addressing any performance issues vehicle 110 may have.
Although each example provided above are based on correlating performance parameters/values with engine speed, a performance parameter other than engine speed can be used in some embodiments. For example, one or more performance parameters/values (e.g., intake air temperature) can be correlated with vehicle speed rather than engine speed in some embodiments.
Embodiments of the present invention may comprise or utilize special purpose or general-purpose computers including computer hardware, such as, for example, one or more processors and system memory. Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system.
Computer-readable media are categorized into two disjoint categories: computer storage media and transmission media. Computer storage media (devices) include RAM, ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM), Flash memory, phase-change memory (“PCM”), other types of memory, other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other similar storage medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Transmission media include signals and carrier waves. Because computer storage media and transmission media are disjoint categories, computer storage media does not include signals or carrier waves.
Computer-executable instructions comprise, for example, instructions and data which, when executed by a processor, cause a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language or P-Code, or even source code.
Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, smart watches, pagers, routers, switches, and the like.
The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices. An example of a distributed system environment is a cloud of networked servers or server resources. Accordingly, the present invention can be hosted in a cloud environment.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description.
Number | Name | Date | Kind |
---|---|---|---|
20160031449 | Carnell | Feb 2016 | A1 |
20190226409 | Hoffman | Jul 2019 | A1 |
Number | Date | Country | |
---|---|---|---|
20220375280 A1 | Nov 2022 | US |