This disclosure relates generally to vehicles and, more particularly, to reduce end of stop jerks.
Many vehicles include a brake-by-wire system and/or electrically boosted hydraulic brakes. Unlike mechanically boosted hydraulic brakes, the electrically boosted brakes increase applied brake pressure via electric actuators. Some electric brake systems (EBS) are configured such that, when the driver activates the brakes (e.g., via a brake pedal, etc.), an electrical command is sent to the actuators of the brakes, thereby causing additional braking force to be applied to the wheels.
An example vehicle described herein includes a user interface, a brake system, and a controller to execute instructions to detect a command to engage the brake system at a command brake pressure, estimate a time until the vehicle comes to a stop, and in response to determining that the time satisfies a time threshold, engage the brake system at a delivered brake pressure less than the command brake pressure.
An example method described herein includes detecting a command to engage a brake of a vehicle at a command brake pressure, estimating a time until the vehicle comes to a stop, and in response to determining that the time satisfies a time threshold, engaging the brake at a delivered brake pressure less than the command brake pressure.
An example non-transitory computer readable medium comprising instructions, which when executed cause a processor to at least detect a command to engage a brake of a vehicle at a command brake pressure, estimate a time until the vehicle comes to a stop, and in response to determining that the time satisfies a time threshold, engage the brake at a delivered brake pressure less than the command brake pressure.
In general, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts. The figures are not to scale.
As used in this patent, stating that any part (e.g., a layer, film, area, region, or plate) is in any way on (e.g., positioned on, located on, disposed on, or formed on, etc.) another part, indicates that the referenced part is either in contact with the other part, or that the referenced part is above the other part with one or more intermediate part(s) located therebetween.
As used herein, connection references (e.g., attached, coupled, connected, and joined) may include intermediate members between the elements referenced by the connection reference and/or relative movement between those elements unless otherwise indicated. As such, connection references do not necessarily infer that two elements are directly connected and/or in fixed relation to each other. As used herein, stating that any part is in “contact” with another part is defined to mean that there is no intermediate part between the two parts.
Unless specifically stated otherwise, descriptors such as “first,” “second,” “third,” etc., are used herein without imputing or otherwise indicating any meaning of priority, physical order, arrangement in a list, and/or ordering in any way, but are merely used as labels and/or arbitrary names to distinguish elements for ease of understanding the disclosed examples. In some examples, the descriptor “first” may be used to refer to an element in the detailed description, while the same element may be referred to in a claim with a different descriptor such as “second” or “third.” In such instances, it should be understood that such descriptors are used merely for identifying those elements distinctly that might, for example, otherwise share a same name.
As used herein, “approximately” and “about” modify their subjects/values to recognize the potential presence of variations that occur in real world applications. For example, “approximately” and “about” may modify dimensions that may not be exact due to manufacturing tolerances and/or other real world imperfections as will be understood by persons of ordinary skill in the art. For example, “approximately” and “about” may indicate such dimensions may be within a tolerance range of +/−10% unless otherwise specified in the below description.
As used herein, the phrase “in communication,” including variations thereof, encompasses direct communication and/or indirect communication through one or more intermediary components, and does not require direct physical (e.g., wired) communication and/or constant communication, but rather additionally includes selective communication at periodic intervals, scheduled intervals, aperiodic intervals, and/or one-time events.
As used herein, “processor circuitry” is defined to include (i) one or more special purpose electrical circuits structured to perform specific operation(s) and including one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors), and/or (ii) one or more general purpose semiconductor-based electrical circuits programmable with instructions to perform specific operations and including one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors). Examples of processor circuitry include programmable microprocessors, Field Programmable Gate Arrays (FPGAs) that may instantiate instructions, Central Processor Units (CPUs), Graphics Processor Units (GPUs), Digital Signal Processors (DSPs), XPUs, or microcontrollers and integrated circuits such as Application Specific Integrated Circuits (ASICs). For example, an XPU may be implemented by a heterogeneous computing system including multiple types of processor circuitry (e.g., one or more FPGAs, one or more CPUs, one or more GPUs, one or more DSPs, etc., and/or a combination thereof) and application programming interface(s) (API(s)) that may assign computing task(s) to whichever one(s) of the multiple types of processor circuitry is/are best suited to execute the computing task(s).
As used herein, the orientation of features is described with reference to a lateral axis, a vertical axis, and a longitudinal axis of the vehicle associated with the features. As used herein, the longitudinal axis of the vehicle is parallel to a centerline of the vehicle. The terms “rear” and “front” are used to refer to directions along the longitudinal axis closer to the rear of the vehicle and the front of the vehicle, respectively. As used herein, the vertical axis of the vehicle is perpendicular to the ground on which the vehicle rests. The terms “below” and “above” are used to refer to directions along the vertical axis closer to the ground and away from the ground, respectively. As used herein, the lateral axis of the vehicle is perpendicular to the longitudinal and vertical axes and is generally parallel to the axles of the vehicle. As used herein, the terms “longitudinal,” and “axial” are used interchangeably to refer to directions parallel to the longitudinal axis. As used herein, the terms “lateral” and “horizontal” are used to refer to directions parallel to the lateral axis. As used herein, the term “vertical” is used interchangeably to refer to directions parallel to the vertical axis.
When a driver applies the brakes to bring a vehicle to a stop, the driver can experience inconsistent brake feedback and an unpleasant rock-back motion. As used herein, the sensation and vehicle motion experienced as the vehicle comes to a stop is referred to as “end of stop (EOS) jerk.” EOS jerk can be caused by suspension wind-up and the sudden grip of the brakes associated with the transition from dynamic friction to static friction. The magnitude of the EOS jerk can depend on different types of brake linings, suspension stiffness, brake pedal sensitivity, and driver skill. Many drivers have difficulty controlling EOS jerk, which can cause unpleasant driving experiences for them and other passengers in the vehicle.
Some vehicles include electric brake boosters (EBB) to assist users of the vehicles in applying the necessary brake force to sufficiently slow the vehicle. Like vacuum brake boosters, EBBs include gear unit(s) that convert torque from an electric motor into hydraulic pressure for the brake. EBBs can detect the actuation of the brake pedal via an integrated differential travel sensor and generate a power request for the electric motor. Additionally, brake-by-wire systems enable the displacement of the brake pedal to be used to directly control the deceleration rate of a vehicle. As used herein, the “command brake pressure” is the amount of brake pressure requested by an operator (e.g., a driver, an autonomous driving system, etc.) of the vehicle (e.g., via brake pedal, etc.) and “the delivered brake pressure” is the amount of brake pressure actually applied by the brake.
Example methods and apparatus disclosed herein reduce EOS jerk using EBB and/or brake-by-wire systems by automatically reducing the applied brake pressure immediately prior to a vehicle coming to a stop. Examples disclosed herein include estimating when a vehicle is going to stop based on the velocity of the vehicle and deceleration rate of the vehicle and automatically adjusting the applied brake pressure via an EBB or brake motor to reduce EOS jerk without affecting stopping distance. Examples disclosed herein including applying a gain value gradient to the command brake pressure that is proportional to the estimated amount of time until the vehicle stops. Examples disclosed herein include gradually returning the applied gain value to the commanded brake torque after the vehicle comes to a complete stop.
In some examples disclosed herein, the direction and magnitude of the grade on which the vehicle is disposed is calculated simultaneously to modulate the delivered brake pressure reduction related to reducing EOS jerk. In some examples disclosed herein, if the magnitude of the grade satisfies a first threshold, a gain value a grade based modification (e.g., a second gain) is applied to the command brake pressure to reduce the difference between the delivered brake pressure and the command brake pressure. In some examples disclosed herein, if the magnitude of the grade satisfies a second threshold greater than the first threshold, no gain is applied to the commanded brake pressure.
Prior methods of reducing EOS jerk, like those in disclosed in Murakami, U.S. Pat. No. 4,852,950, reduce EOS jerk based on the instantaneous speed of the vehicle. Such prior methods resulted in inconsistent braking behavior depending on how hard the vehicle was braking. Due to inaccuracy and poor resolution of vehicle speed sensors at low speeds, prior methods were unable to reduce brake torque immediately prior to the vehicle coming to a stop. Further, prior methods had noticeable effects on the feedback feel of the vehicle for the driver and increased stopping distance during low-speed stops. Examples disclosed herein avoid these deficiencies by reducing EOS jerk based on an estimated time until the vehicle is stopped, thereby enabling a reduction of brake pressure only immediately prior to the vehicle stopping.
The vehicle 100 is a motorized wheel-driven vehicle. In the illustrated example of
The brake system 102 includes mechanical and electrical components that retard the rotation of the wheels 106A, 106B, 106C, 106D. The brake system 102 can receive user input (e.g., via the user interface 108, etc.) and cause activation of one or more brake(s) of the brake system 102. While the brake system 102 is described herein as a friction disc brake system, the examples described herein can also be applied to any other suitable type of brake system (e.g., a drum brake system, a dual disc-drum brake system, a clasp brake system, band brake systems, electromagnetic brakes, etc.). In some examples, the brake system 102 can include regenerative braking components. The example brake system 102 can be a hydraulic brake system, an electro-magnetic system, and/or a hybrid system. In some examples, the brake system 102 can be a brake-by-wire system. In other examples, if the brake system 102 is not a brake-by-wire system, the brake pressure applied by the brake system 102 can be regulated by the brake controller 104 via one or more fluid valves. An example implementation of the brake system 102 is described in greater detail below in
The wheels 106A, 106B, 106C, 106D include a wheel rim and a corresponding tire. While in the illustrated example of
The user interface 108 enables a user of the vehicle 100 to receive and input information to the brake system 102 and other systems of the vehicle 100. For example, the user interface 108 can include a display of the vehicle 100. In some examples, the user interface 108 can include an interface to operate the brake system 102 during operation of the vehicle 100 (e.g., a brake pedal, a hand lever, etc.). In some examples, the user interface 108 can receive instructions, warnings, and/or alerts from the brake controller 104 regarding the status of the brake system 102. Additionally or alternatively, the user interface 108 can include one or more dash indicator(s), one or more button(s) on the dashboard or steering wheel, one or more speakers, one or more microphones, etc. In some examples, the user interface 108 can be fully or partially implemented by a mobile device of the user (e.g., a mobile phone, a smartwatch, a tablet, etc.).
In the illustrated example of
During the operation of the vehicle 100, the brake system 102 is controlled via the brake controller 104. For example, in response to a user input (e.g., the depression of a brake pedal, etc.) and/or an automated input (e.g., the vehicle 100 detecting an imminent obstacle in front of the vehicle 100, etc.), the brake controller 104 can cause the brake system 102 to retard the rotation of some or all of the wheels 106A, 106B, 106C, 106D, thereby slowing the vehicle 100. For example, the brake system 102 can receive a command brake pressure via a physical connection (e.g., hydraulic action, pneumatic action, one or more mechanical connections, etc.) with the user interface 108. Additionally or alternatively, if the brake system 102 is a brake-by-wire system, the brake system 102 can determine a command brake pressure based on an input from the user interface 108 (e.g., the brake system can correlate a magnitude of depression of a brake pedal with a corresponding command brake pressure, etc.). The brake controller 104 is described in greater detail below in
The vehicle sensors 110 measure the properties of the vehicle 100. For example, the vehicle sensors 110 can include accelerometers and speedometers. In some such examples, one or more accelerometers can be configured in a manner that permits the determination of a direct and magnitude of the grade of a driving surface on which the vehicle is disposed. In such examples, the vehicle sensors 110 can be a component of another vehicle system.
The brake controller 104 controls the brakes 202A, 202B, 202C, 202D of the vehicle 100. For example, the brake controller 104 can cause the calipers 204A, 204B, 204C, 204D to engage the corresponding ones of the rotors 206A, 206B, 206C, 206D during the operation of the vehicle 100 (e.g., to bring the vehicle 100 from a velocity to a stop, to hold the vehicle, etc.). In some examples, the brake controller 104 communicates with the calipers 204A, 204B, 204C, 204D via a controller area network (CAN) bus of the vehicle 100. Additionally or alternatively, the brake controller 104 can communicate with the calipers 204A, 204B, 204C, 204D via an independent communication system (e.g., an electrical communication system, a hydraulic communication system, etc.). The brake controller 104 can be implemented by an electronic control unit of the vehicle 100 (e.g., a dedicated brake control module (BCM), one or more vehicle control module(s) (VCM), one or more domain controller(s), etc.). In other examples, some or all of the components of the brake controller 104 can be implemented by one or more other system(s) of the vehicle 100 (e.g., the anti-lock brake system (ABS), the electronic stability system (ESC), a powertrain controller, a transmission controller, etc.).
The calipers 204A, 204B, 204C, 204D are mechanical components that receive inputs from the brake controller 104. In some examples, if the brake system 102 is a brake-by-wire system, after receiving an input (e.g., a braking signal, etc.) from the brake controller 104, the brake motors 207A, 207B, 207C, 207D can cause the calipers 204A, 204B, 204C, 204D to apply a clamping pressure (e.g., via one or more pistons, etc.) to a respective one of the rotors 206A, 206B, 206C, 206D. Additionally or alternatively, if the brake system is a conventional hydraulic system and the brake motors 207A, 207B, 207C, 207D are absent, the force applied by a user of the vehicle 100 (e.g., via a brake pedal, etc.) is converted into hydraulic pressure used to press the calipers 204A, 204B, 204C, 204D into the rotors 206A, 206B, 206C, 206D. Regardless of the braking mechanism, the application of the calipers 204A, 204B, 204C, 204D, slows the rotation of the corresponding one of the wheels 106A, 106B, 106C, 106D. In some examples, the calipers 204A, 204B, 204C, 204D can include brake pads, which are designed to abrade on contact with the rotors 206A, 206B, 206C, 206D, thereby preventing damage, deformation, and/or warping to the rotors 206A, 206B, 206C, 206D and the calipers 204A, 204B, 204C, 204D.
The rotors 206A, 206B, 206C, 206D are discs that are connected to the wheels 106A, 106B, 106C, 106D, respectively. The rotors 206A, 206B, 206C, 206D are rigidly connected to and rotate with the wheels 106A, 106B, 106C, 106D. During operation of the brakes 202A, 202B, 202C, 202D, the calipers 204A, 204B, 204C, 204D apply a frictional force to the rotors 206A, 206B, 206C, 206D, thereby slowing the rotation of the corresponding one of the wheels 106A, 106B, 106C, 106D.
The wheel sensors 208A, 208B, 208C, 208D are associated with the respective ones of the wheels 106A, 106B, 106C, 106D to measure characteristics associated with the wheels 106A, 106B, 106C, 106D, and the brakes 202A, 202B, 202C, 202D. For example, the wheel sensors 208A, 208B, 208C, 208D can include sensors that measure the force and/or pressure applied by the calipers 204A, 204B, 204C, 204D. In some examples, the wheel sensors 208A, 208B, 208C, 208D include one or more thermometers that measure the individual rotational speeds of each of the wheels 106A, 106B, 106C, 106D. Additionally or alternatively, the wheel sensors 208A, 208B, 208C, 208D can include any other suitable sensors.
The boosters 210A, 210B, 210C, 210D are devices that increase the torque applied by the calipers 204A, 204B, 204C, 204D onto the rotors 206A, 206B, 206C, 206D. The boosters 210A, 210B, 210C, 210D enable the brake controller 104 to deliver delivered brake pressures different than command brake pressure received from the user interface 108. For example, the boosters 210A, 210B, 210C, 210D can increase the delivered brake pressure relative to the command brake pressure if the vehicle 100 needs to stop quickly. The brake controller 104 can detect an actuation of the brake pedal (e.g., via an integrated differential travel sensor of the vehicle sensors 110, etc.), which in turn generates a command signal to the boosters 210A, 210B, 210C, 210D to modify the applied brake torque. In the illustrated example of
After receiving the command brake pressure, the brake controller 104 can brake the wheels 106A, 106B, 106C, 106D by engaging the calipers 204A, 204B, 204C, 204D to corresponding ones of the rotors 206A, 206B, 206C, 206D at a delivered brake pressure. In some examples, during normal operation of the vehicle 100, the delivered brake pressure is equal to the commanded brake pressure. In some examples, when the vehicle 100 is braking to a stop, the brake controller 104 can estimate when the vehicle 100 is coming to a stop and apply a delivered brake pressure that is less than the commanded brake pressure immediately prior (e.g., within 1 second, etc.) to mitigate EOS jerk. In some such examples, the brake controller 104 can continue to apply a delivered brake pressure lower than the commanded brake pressure for a threshold time period and then apply a delivered brake pressure equal to the commanded brake pressure. An example implementation of the brake controller 104 is described below in conjunction with
The sensor interface circuitry 302 accesses sensor data from the sensors 208A, 208B, 208C, 208D, 110 of the example vehicle 100 and/or brake system 102. In some examples, the sensor interface circuitry 304 can transform the received sensor data from a machine-readable format (e.g., a voltage, a current, etc.) to a human-readable format (e.g., a string, a floating-point number, an integer, etc.).
The stop determiner circuitry 304 determines if the vehicle 100 is undergoing a stop. For example, the stop determiner circuitry 304 can determine if the vehicle 100 is undergoing a stop based on a detection of the engagement of the brake system 102. In some examples, the stop determiner circuitry 304 can differentiate between vehicle slowing (e.g., to maintain distance in traffic, during yielding, etc.) and vehicle stopping (e.g., to avoid obstacles, to stop at a traffic control feature, etc.) based on a level of engagement of the brake system 102. For example, the stop determiner circuitry 304 can compare the command brake pressure to a threshold command brake pressure. In other examples, the stop determiner circuitry 304 can determine if the vehicle 100 is coming to stop by any other suitable means (e.g., via vehicle cameras, a user input, etc.).
The grade determiner circuitry 306 determines the direction and magnitude of the grade of the driving surface on which the vehicle 100 is disposed. For example, the grade determiner circuitry 306 determines the magnitude of the grade the vehicle is on via sensor data from the vehicle sensors 110 (e.g., an accelerometer, an optical sensor, etc.). Additionally or alternatively, the grade determiner circuitry 306 can determine the direction and magnitude of grade based on a user input from the user interface 108. In some examples, the grade determiner circuitry 306 can compare the determined grade to one or more threshold grades to determine if the delivered brake pressure needs to be modified based on the determined grade. In some examples, the threshold grades can be set by a user of the vehicle 100 and/or a manufacturer of the vehicle 100. In other examples, grade determiner circuitry 306 can determine the threshold grade(s) based on a load of the vehicle 100, the environmental conditions (e.g., the weather conditions, the external temperature, etc.), the make/model of the vehicle 100, and/or any other suitable metric. The function of the grade determiner circuitry 306 is described below in additional detail in conjunction with
The gain determiner circuitry 308 determines the amount of gain to apply to the commanded brake pressure to generate the brake torque to be applied as the vehicle 100 is coming to a stop. In some examples, the gain determiner circuitry 308 can determine the gain to apply to the command brake pressure based on a manufacturer setting and/or a user setting. In some such examples, the manufacturer setting and/or user setting can be based on a make and/or a model of the vehicle 100. Additionally or alternatively, the gain determiner circuitry 308 can determine the gain to apply to the command brake pressure based on sensor data received from the wheel sensors 208A, 208B, 208C, 208D and/or the vehicle sensors 110 (e.g., a load on the vehicle, a brake fade of the brakes 202A, 202B, 202C, 202D, an environmental condition, etc.). In some examples, the gain determiner circuitry 308 can determine a modification to the determined gain based on the direction and/or magnitude of grade determined by the grade determiner circuitry 306. In some examples, if the magnitude of the grade is between a first threshold (e.g., a 3% grade, etc.) and a second threshold (e.g., a 10% grade, etc.), the gain determiner circuitry 308 can determine a second gain to apply to the command brake pressure. In some such examples, the delivered brake pressure can monotonically increase (e.g., linearly, via curve, etc.) from a minimum delivered brake pressure, when the magnitude of the grade is equal to the first threshold, to the command brake pressure, when the grade is equal to the second threshold. In other examples, the delivered brake pressure can scale to a pressure less or equal to command brake pressure (e.g., 99% of the command brake pressure, 95% of the command brake pressure. 75% of the command brake pressure, etc.). In some examples, if the magnitude of the grade satisfies the second threshold, the gain determiner circuitry 308 does not apply a gain or applies a gain of 1 to the command brake pressure such that the command brake pressure is equal to the delivered brake pressure.
The stop time estimator circuitry 310 estimates the amount of time until the vehicle 100 comes to a stop. As used herein, the phrase “comes to a stop” refers to the time when the wheels 106A, 106B, 106C, 106D stop rotating (e.g., the friction experienced by the wheels changes from dynamic resistance/rolling resistance to static friction, etc.). After the vehicle 100 comes to a stop, the sprung mass of the vehicle 100 (e.g., including the cabin 112 of
In some examples, the wheel sensors 208A, 208B, 208C, 208D can have relatively low resolutions at low rotational speeds. For example, if the wheel speeds sensors 208A, 208B, 208C, 208D are mechanical rotary sensors, optical rotary sensors, and/or magnetic rotary sensors, the wheel speed sensors 208A, 208B, 208C, 208D function by measuring the rate at which notable features (e.g., gear teeth, optical elements, etc.) coupled to corresponding the wheels 106A, 106B, 106C, 106D rotate past and interact with, the sensing elements of the wheel speed sensors 208A, 208B, 208C, 208D. In some such examples, at very low speeds like those immediately prior to the vehicle 100 coming to a stop, the notable features do not interact with the wheel speed sensors 208A, 208B, 208C, 208D in a manner that permits the determination of the speed of the vehicle 100. That is, in some examples, at very low speeds, the wheel speed sensors 208A, 208B, 208C, 208D can output a velocity of zero even when the wheels 106A, 106B, 106C, 106D are still slowly rotating. In some such examples, the stop time estimator circuitry 310 can account for the lack of resolution of the wheel speed sensors 208A, 208B, 208C, 208D at low speeds (e.g., by applying a multiplicative factor, by adding a fixed amount, applying a filter, etc.).
The brake system interface circuitry 312 interfaces with the brake system 102. For example, the brake system interface circuitry 312 can interface with the brake motors 207A, 207B, 207C, 207D and/or the boosters 210A, 210B, 210C, 210D to deliver the delivered brake pressure to the wheels 106A, 106B, 106C, 106D. In some examples, the brake system interface circuitry 312 can transition between different applied brake pressures gradually (e.g., linearly, as a ramp function, as a series of step functions, etc.). In other examples, the brake system interface circuitry 312 can interface with the brake system 102 by any other suitable means.
While an example manner of implementing the brake controller 104 of
The x-axis 402 measures the independent variable time, which begins at 0 seconds, and ends at 3 seconds. While measured in seconds in the illustrated example of
The second y-axis 406 measures the values associated with the third line 412 (Newton-meters (Nm)) and the seventh line 420 (Nm). In the illustrated example of
In the illustrated example of
In the illustrated example of
In the illustrated example of
In the illustrated example of
In the illustrated examples of
In the illustrated example of
In the illustrated example of
In the examples discussed herein, the first grade threshold and the second grade threshold are the same regardless of whether the vehicle 100 is ascending a grade or descending a grade. In other examples, the first threshold and the second threshold can vary based on the direction of travel of the vehicle 100. For example, the first threshold can be 3% when the vehicle 100 is traveling up a grade and 2.5% when the vehicle 100 is traveling down a grade. Additionally or alternatively, the second threshold can be 10% when the vehicle 100 is traveling up a grade and 12% when the vehicle 100 is traveling down a grade.
A flowchart representative of example machine readable instructions, which may be executed to configure processor circuitry to implement the brake controller 104 of
The machine readable instructions described herein may be stored in one or more of a compressed format, an encrypted format, a fragmented format, a compiled format, an executable format, a packaged format, etc. Machine readable instructions as described herein may be stored as data or a data structure (e.g., as portions of instructions, code, representations of code, etc.) that may be utilized to create, manufacture, and/or produce machine executable instructions. For example, the machine readable instructions may be fragmented and stored on one or more storage devices and/or computing devices (e.g., servers) located at the same or different locations of a network or collection of networks (e.g., in the cloud, in edge devices, etc.). The machine readable instructions may require one or more of installation, modification, adaptation, updating, combining, supplementing, configuring, decryption, decompression, unpacking, distribution, reassignment, compilation, etc., in order to make them directly readable, interpretable, and/or executable by a computing device and/or other machine. For example, the machine readable instructions may be stored in multiple parts, which are individually compressed, encrypted, and/or stored on separate computing devices, wherein the parts when decrypted, decompressed, and/or combined form a set of machine executable instructions that implement one or more operations that may together form a program such as that described herein.
In another example, the machine readable instructions may be stored in a state in which they may be read by processor circuitry, but require addition of a library (e.g., a dynamic link library (DLL)), a software development kit (SDK), an application programming interface (API), etc., in order to execute the machine readable instructions on a particular computing device or other device. In another example, the machine readable instructions may need to be configured (e.g., settings stored, data input, network addresses recorded, etc.) before the machine readable instructions and/or the corresponding program(s) can be executed in whole or in part. Thus, machine readable media, as used herein, may include machine readable instructions and/or program(s) regardless of the particular format or state of the machine readable instructions and/or program(s) when stored or otherwise at rest or in transit.
The machine readable instructions described herein can be represented by any past, present, or future instruction language, scripting language, programming language, etc. For example, the machine readable instructions may be represented using any of the following languages: C, C++, Java, C #, Perl, Python, JavaScript, HyperText Markup Language (HTML), Structured Query Language (SQL), Swift, etc.
As mentioned above, the example operations of
“Including” and “comprising” (and all forms and tenses thereof) are used herein to be open ended terms. Thus, whenever a claim employs any form of “include” or “comprise” (e.g., comprises, includes, comprising, including, having, etc.) as a preamble or within a claim recitation of any kind, it is to be understood that additional elements, terms, etc., may be present without falling outside the scope of the corresponding claim or recitation. As used herein, when the phrase “at least” is used as the transition term in, for example, a preamble of a claim, it is open-ended in the same manner as the term “comprising” and “including” are open ended. The term “and/or” when used, for example, in a form such as A, B, and/or C refers to any combination or subset of A, B, C such as (1) A alone, (2) B alone, (3) C alone, (4) A with B, (5) A with C, (6) B with C, or (7) A with B and with C. As used herein in the context of describing structures, components, items, objects and/or things, the phrase “at least one of A and B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein in the context of describing structures, components, items, objects and/or things, the phrase “at least one of A or B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. As used herein in the context of describing the performance or execution of processes, instructions, actions, activities and/or steps, the phrase “at least one of A and B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein in the context of describing the performance or execution of processes, instructions, actions, activities and/or steps, the phrase “at least one of A or B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.
As used herein, singular references (e.g., “a”, “an”, “first”, “second”, etc.) do not exclude a plurality. The term “a” or “an” object, as used herein, refers to one or more of that object. The terms “a” (or “an”), “one or more”, and “at least one” are used interchangeably herein. Furthermore, although individually listed, a plurality of means, elements or method actions may be implemented by, e.g., the same entity or object. Additionally, although individual features may be included in different examples or claims, these may possibly be combined, and the inclusion in different examples or claims does not imply that a combination of features is not feasible and/or advantageous.
At block 604, the stop determiner circuitry 304 determines if the vehicle 100 is undergoing a stop. For example, the stop determiner circuitry 304 can determine if the vehicle 100 is undergoing a stop based on a detection of the engagement of the brake system 102. In some examples, the stop determiner circuitry 304 can differentiate between vehicle slowing (e.g., to maintain distance in traffic, during yielding, etc.) and vehicle stopping (e.g., to avoid obstacles, to stop at a traffic control feature, etc.) based on a level of engagement of the brake system 102. For example, the stop determiner circuitry 304 can compare the command brake pressure to a threshold command brake pressure. In other examples, the stop determiner circuitry 304 can determine if the vehicle 100 is coming to stop by any other suitable means (e.g., via vehicle cameras, a user input, etc.).
At block 606, the grade determiner circuitry 306 determines the grade of the driving surface on which the vehicle 100 is disposed. For example, the grade determiner circuitry 306 determines the magnitude and/or the direction of the grade the vehicle is on via sensor data from the vehicle sensors 110 (e.g., an accelerometer, an optical sensor, etc.). Additionally or alternatively, the grade determiner circuitry 306 can determine the magnitude and/or the direction of the grade based on a user input from the user interface 108.
At block 608, the grade determiner circuitry 306 determines if the magnitude of the grade satisfies a first threshold. For example, the grade determiner circuitry 306 can compare the magnitude of the determined grade to a threshold grade (e.g., 0%, grade, 2% grade, 3% grade, etc.). In some examples, the first threshold corresponds to a grade (e.g., the grade 502 of
At block 609, the grade determiner circuitry 306 determines if the grade satisfies a second threshold. For example, the grade determiner circuitry 306 can compare the determined grade to a second threshold grade (e.g., 8%, grade, 10% grade, 12% grade, etc.). In some examples, the second threshold corresponds to a grade (e.g., the grade 506 of FIG. 5B, the grade 514 of
At block 610, the gain determiner circuitry 308 determines grade based modification to delivered brake pressure. For example, if the grade is between a first threshold (e.g., a 3% grade, etc.) and a second threshold (e.g., a 10% grade, etc.), the gain determiner circuitry 308 can determine a second gain to apply to the command brake pressure. In some such examples, the delivered brake pressure can monotically increase (e.g., linearly, via a curve, etc.) from a minimum delivered brake pressure, when the magnitude of the grade is equal to the first threshold, to the command brake pressure, when the magnitude of the grade is equal to the second threshold. In other examples, the delivered brake pressure can scale to a value less than equal to command brake pressure (e.g., 99% of the command brake pressure, 95% of the command brake pressure. 75% of the command brake pressure, etc.). In other examples, the gain determiner circuitry 308 can determine any other suitable modification to the gain based on the determined grade.
At block 612, the stop time estimator circuitry 310 estimates time until vehicle 100 comes to a stop. For example, the stop time estimator circuitry 310 can estimate the time until the vehicle comes to a stop based on the current velocity of the vehicle 100 (e.g., determined via the wheel sensors 208A, 208B, 208C, 208D, etc.), a deceleration rate of the vehicle 100, and properties of the wheel sensors 208A, 208B, 208C, 208D. In some examples, the stop time estimator circuitry 310 can use kinematic principles to determine the time until the vehicle 100 comes to a stop (e.g., the ratio of current velocity to the acceleration, etc.). In some examples, the stop time estimator circuitry 310 can estimate the time until stop based on historic driver data (e.g., via a look-up table, via machine-learning algorithm, etc.). In some examples, the stop time estimator circuitry 310 can estimate the time until stop based on a resolution of the sensors 110, 208A, 208B, 208C, 208D.
At block 614, stop time estimator circuitry 310 determines if the time until stop satisfies a threshold. For example, the stop time estimator circuitry 310 can compare the estimated stop time to a predetermined stop threshold (e.g., 250 ms, etc.). In some examples, the stop time estimator circuitry 310 can determine the stop threshold based on any other suitable metric (e.g., a user setting, an environmental condition, a vehicle loading, etc.) to determine the stop threshold. If the stop time estimator circuitry 310 determines the estimated time until stop does not satisfy the threshold, the operations 600 return to block 612. If the stop time estimator circuitry 310 determines the estimated time until stop satisfies the threshold, the operations 600 advance to block 616.
At block 616, the gain determiner circuitry 308 determines the amount of gain to apply to the commanded brake pressure to generate the brake torque to be applied as the vehicle 100 is coming to a stop. In some examples, the gain determiner circuitry 308 can determine the gain to apply to the command brake pressure based on a manufacturer setting and/or a user setting. In some such examples, the manufacturer setting and/or user setting based on a make or a model of the vehicle 100. Additionally or alternatively, the gain determiner circuitry 308 can determine the gain to apply to the command brake pressure based on sensor data received from the wheel sensors 208A, 208B, 208C, 208D and/or the vehicle sensors 110 (e.g., a load on the vehicle, a brake fade of the brakes 202A, 202B, 202C, 202D, an environmental condition, etc.).
At block 618, the brake system interface circuitry 312 delivers brake pressure to the brakes based on the command brake pressure and the determined gain. For example, the brake system interface circuitry 312 can interface with the brake motors 207A, 207B, 207C, 207D and/or the boosters 210A, 210B, 210C, 210D to deliver the delivered brake pressure to the wheels 106A, 106B, 106C, 106D. In some examples, the brake system interface circuitry 312 can transition between different applied brake pressures gradually (e.g., linearly, as a ramp function, as a series of step functions, etc.). In other examples, the brake system interface circuitry 312 can apply the delivered gain by any other suitable means.
At block 619, the stop determiner circuitry 304 determines if the vehicle 100 has come to a stop. For example, the stop determiner circuitry 304 can determine if the vehicle 100 has come to stop based on a reading from one or more of the vehicle sensors 110 and/or the wheel sensors 208A, 208B, 208C, 208D. If the stop determiner circuitry 304 has determined the vehicle 100 has come to a stop, the operations 600 advance to block 620. If the stop determiner circuitry 304 has determined the vehicle 100 has not come to a stop, the operations 600 return to block 618. At block 620, the brake system interface circuitry 312 delivers minimum brake pressure to the brakes. For example, the brake system interface circuitry 312 can interface with the brake motors 207A, 207B, 207C, 207D and/or the boosters 210A, 210B, 210C, 210D to deliver the minimum brake pressure to the wheels 106A, 106B, 106C, 106D.
At block 622, the stop determiner circuitry 304 determines if the vehicle 100 has been at rest for a threshold period of time. For example, the stop determiner circuitry 304 can compare the time the vehicle 100 has been at a stop to a stop time threshold (e.g., 500 ms, 1 s, etc.). In some examples, the stop determiner circuitry 304 can determine the stop time threshold can be based on a manufacturer setting, a user setting, environmental conditions (e.g., the grade, weather, temperature, the material of the driving surface, wind speed, wind direction, etc.). In some examples, the stop determiner circuitry 304 determines the stop time threshold to ensure the sprung mass of the vehicle 100 has stopped moving relative to the wheels 106A, 106B, 106C, 106D. If the stop determiner circuitry 304, the stop determiner circuitry 304 determines the vehicle 100 has been at rest for a threshold period of time, the operations 600 advance to block 624. If the stop determiner circuitry 304, the stop determiner circuitry 304 determines the vehicle 100 has not been at rest for a threshold period of time, the operations 600 return to block 620.
At block 624, the brake system interface circuitry 312 delivers commanded brake pressure to the brakes. For example, the brake system interface circuitry 312 can deliver the command brake pressure to the brakes. For example, the brake system interface circuitry 312 can interface with the brake motors 207A, 207B, 207C, 207D and/or the boosters 210A, 210B, 210C, 210D to deliver the delivered brake pressure to the wheels 106A, 106B, 106C, 106D. In some examples, the brake system interface circuitry 312 can transition between different applied brake pressures gradually (e.g., linearly, as a ramp function, as a series of step functions, etc.). In other examples, the brake system interface circuitry 312 can apply the command pressure.
The processor platform 700 of the illustrated example includes processor circuitry 712. The processor circuitry 712 of the illustrated example is hardware. For example, the processor circuitry 712 can be implemented by one or more integrated circuits, logic circuits, FPGAs, microprocessors, CPUs, GPUs, DSPs, and/or microcontrollers from any desired family or manufacturer. The processor circuitry 712 may be implemented by one or more semiconductor based (e.g., silicon based) devices. In this example, the processor circuitry 712 implements the sensor interface circuitry 302, the stop determiner circuitry 304, the grade determiner circuitry 306, the gain determiner circuitry 308, the stop time estimator circuitry 310, and the brake system interface circuitry 312.
The processor circuitry 712 of the illustrated example includes a local memory 713 (e.g., a cache, registers, etc.). The processor circuitry 712 of the illustrated example is in communication with a main memory including a volatile memory 714 and a non-volatile memory 716 by a bus 718. The volatile memory 714 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS® Dynamic Random Access Memory (RDRAM®), and/or any other type of RAM device. The non-volatile memory 716 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 714, 716 of the illustrated example is controlled by a memory controller 717.
The processor platform 700 of the illustrated example also includes interface circuitry 720. The interface circuitry 720 may be implemented by hardware in accordance with any type of interface standard, such as an Ethernet interface, a universal serial bus (USB) interface, a Bluetooth® interface, a near field communication (NFC) interface, a Peripheral Component Interconnect (PCI) interface, and/or a Peripheral Component Interconnect Express (PCIe) interface.
In the illustrated example, one or more input devices 722 are connected to the interface circuitry 720. The input device(s) 722 permit(s) a user to enter data and/or commands into the processor circuitry 712. The input device(s) 722 can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, an isopoint device, and/or a voice recognition system.
One or more output devices 724 are also connected to the interface circuitry 720 of the illustrated example. The output device(s) 724 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display (LCD), a cathode ray tube (CRT) display, an in-place switching (IPS) display, a touchscreen, etc.), a tactile output device, a printer, and/or speaker. The interface circuitry 720 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip, and/or graphics processor circuitry such as a GPU.
The interface circuitry 720 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem, a residential gateway, a wireless access point, and/or a network interface to facilitate exchange of data with external machines (e.g., computing devices of any kind) by a network 726. The communication can be by, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a line-of-site wireless system, a cellular telephone system, an optical connection, etc.
The processor platform 700 of the illustrated example also includes one or more mass storage devices 728 to store software and/or data. Examples of such mass storage devices 728 include magnetic storage devices, optical storage devices, floppy disk drives, HDDs, CDs, Blu-ray disk drives, redundant array of independent disks (RAID) systems, solid state storage devices such as flash memory devices and/or SSDs, and DVD drives.
The machine readable instructions 732, which may be implemented by the machine readable instructions of
The cores 802 may communicate by a first example bus 804. In some examples, the first bus 804 may be implemented by a communication bus to effectuate communication associated with one(s) of the cores 802. For example, the first bus 804 may be implemented by at least one of an Inter-Integrated Circuit (I2C) bus, a Serial Peripheral Interface (SPI) bus, a PCI bus, or a PCIe bus. Additionally or alternatively, the first bus 804 may be implemented by any other type of computing or electrical bus. The cores 802 may obtain data, instructions, and/or signals from one or more external devices by example interface circuitry 806. The cores 802 may output data, instructions, and/or signals to the one or more external devices by the interface circuitry 806. Although the cores 802 of this example include example local memory 820 (e.g., Level 1 (L1) cache that may be split into an L1 data cache and an L1 instruction cache), the microprocessor 800 also includes example shared memory 810 that may be shared by the cores (e.g., Level 2 (L2 cache)) for high-speed access to data and/or instructions. Data and/or instructions may be transferred (e.g., shared) by writing to and/or reading from the shared memory 810. The local memory 820 of each of the cores 802 and the shared memory 810 may be part of a hierarchy of storage devices including multiple levels of cache memory and the main memory (e.g., the main memory 714, 716 of
Each core 802 may be referred to as a CPU, DSP, GPU, etc., or any other type of hardware circuitry. Each core 802 includes control unit circuitry 814, arithmetic and logic (AL) circuitry (sometimes referred to as an ALU) 816, a plurality of registers 818, the local memory 820, and a second example bus 822. Other structures may be present. For example, each core 802 may include vector unit circuitry, single instruction multiple data (SIMD) unit circuitry, load/store unit (LSU) circuitry, branch/jump unit circuitry, floating-point unit (FPU) circuitry, etc. The control unit circuitry 814 includes semiconductor-based circuits structured to control (e.g., coordinate) data movement within the corresponding core 802. The AL circuitry 816 includes semiconductor-based circuits structured to perform one or more mathematic and/or logic operations on the data within the corresponding core 802. The AL circuitry 816 of some examples performs integer based operations. In other examples, the AL circuitry 816 also performs floating point operations. In yet other examples, the AL circuitry 816 may include first AL circuitry that performs integer based operations and second AL circuitry that performs floating point operations. In some examples, the AL circuitry 816 may be referred to as an Arithmetic Logic Unit (ALU). The registers 818 are semiconductor-based structures to store data and/or instructions such as results of one or more of the operations performed by the AL circuitry 816 of the corresponding core 802. For example, the registers 818 may include vector register(s), SIMD register(s), general purpose register(s), flag register(s), segment register(s), machine specific register(s), instruction pointer register(s), control register(s), debug register(s), memory management register(s), machine check register(s), etc. The registers 818 may be arranged in a bank as shown in
Each core 802 and/or, more generally, the microprocessor 800 may include additional and/or alternate structures to those shown and described above. For example, one or more clock circuits, one or more power supplies, one or more power gates, one or more cache home agents (CHAs), one or more converged/common mesh stops (CMSs), one or more shifters (e.g., barrel shifter(s)) and/or other circuitry may be present. The microprocessor 800 is a semiconductor device fabricated to include many transistors interconnected to implement the structures described above in one or more integrated circuits (ICs) contained in one or more packages. The processor circuitry may include and/or cooperate with one or more accelerators. In some examples, accelerators are implemented by logic circuitry to perform certain tasks more quickly and/or efficiently than can be done by a general purpose processor. Examples of accelerators include ASICs and FPGAs such as those discussed herein. A GPU or other programmable device can also be an accelerator. Accelerators may be on-board the processor circuitry, in the same chip package as the processor circuitry and/or in one or more separate packages from the processor circuitry.
More specifically, in contrast to the microprocessor 800 of
In the example of
The configurable interconnections 910 of the illustrated example are conductive pathways, traces, vias, or the like that may include electrically controllable switches (e.g., transistors) whose state can be changed by programming (e.g., using an HDL instruction language) to activate or deactivate one or more connections between one or more of the logic gate circuitry 908 to program desired logic circuits.
The storage circuitry 912 of the illustrated example is structured to store result(s) of the one or more of the operations performed by corresponding logic gates.
The storage circuitry 912 may be implemented by registers or the like. In the illustrated example, the storage circuitry 912 is distributed amongst the logic gate circuitry 908 to facilitate access and increase execution speed.
The example FPGA circuitry 900 of
Although
In some examples, the processor circuitry 912 of
Example methods, apparatus, systems, and articles of manufacture to reduce end of stop jerk are disclosed herein. Further examples and combinations thereof include the following:
Example 1 includes a vehicle including a user interface, a brake system, and a controller to execute instructions to detect a command to engage the brake system at a command brake pressure, estimate a time until the vehicle comes to a stop, and in response to determining that the time satisfies a time threshold, engage the brake system at a delivered brake pressure less than the command brake pressure.
Example 2 includes the vehicle of example 1, wherein the time threshold is between 100 milliseconds and 1500 milliseconds.
Example 3 includes the vehicle of example 1, wherein the controller executes the instructions to determine the delivered brake pressure by applying a first gain to the command brake pressure, the first gain applied via a ramp function.
Example 4 includes the vehicle of example 1, wherein the controller further executes the instructions to, in response to determining a wheel of the vehicle is at rest for a period, engage the brake system at the command brake pressure.
Example 5 includes the vehicle of example 1, wherein the delivered brake pressure is a first delivered brake pressure, and the controller further executes the instructions to determine a grade on which the vehicle is disposed, and in response to determining the grade of the vehicle satisfies a first grade threshold, modify the first delivered brake pressure to a second delivered brake pressure, a difference between the first delivered brake pressure and the second delivered brake pressure based on the grade.
Example 6 includes the vehicle of example 5, wherein the second delivered brake pressure is equal to the first delivered brake pressure when the grade is equal to the first grade threshold, and the second delivered brake pressure is less than or equal to the command brake pressure when the grade satisfies a second grade threshold, the second grade threshold greater than the first grade threshold.
Example 7 includes the vehicle of example 1, further including a velocity sensor and wherein the estimation of the time is based on a velocity provided by the velocity sensor, a deceleration rate of the vehicle, a resolution of the velocity sensor, and a braking dynamic of the vehicle.
Example 8 includes a method including detecting a command to engage a brake of a vehicle at a command brake pressure, estimating a time until the vehicle comes to a stop, and in response to determining that the time satisfies a time threshold, engaging the brake at a delivered brake pressure less than the command brake pressure.
Example 9 includes the method of example 8, further including determining the delivered brake pressure by applying a first gain to the command brake pressure, the first gain applied via a ramp function.
Example 10 includes the method of example 8, further including, in response to a wheel of the vehicle being at rest for a period, engaging the brake at the command brake pressure.
Example 11 includes the method of example 8, wherein the delivered brake pressure is a first delivered brake pressure, and further including determining a grade on which the vehicle is disposed, and in response to determining the grade of the vehicle satisfies a first grade threshold, modifying the first delivered brake pressure to a second delivered brake pressure, a difference between the first delivered brake pressure and the second delivered brake pressure based on the grade.
Example 12 includes the method of example 11, wherein the second delivered brake pressure is equal to the first delivered brake pressure when the grade is equal to the first grade threshold, and the second delivered brake pressure is less than or equal to the command brake pressure when the grade satisfies a second grade threshold, the second grade threshold greater than the first grade threshold.
Example 13 includes the method of example 8, wherein the estimation of the time is based on a velocity provided by a velocity sensor, a deceleration rate of the vehicle, a resolution of the velocity sensor, and a braking dynamic of the vehicle.
Example 14 includes a non-transitory computer readable medium comprising instructions, which when executed cause a processor to at least detect a command to engage a brake of a vehicle at a command brake pressure, estimate a time until the vehicle comes to a stop, and in response to determining that the time satisfies a time threshold, engage the brake at a delivered brake pressure less than the command brake pressure.
Example 15 includes the non-transitory computer readable medium of example 14, wherein the instructions when executed cause the processor to determine the delivered brake pressure by applying a first gain to the command brake pressure, the first gain applied via a ramp function.
Example 16 includes the non-transitory computer readable medium of example 14, wherein the time threshold is between 100 milliseconds and 1500 milliseconds.
Example 17 includes the non-transitory computer readable medium of example 14, wherein the instructions when executed cause the processor to in response to a wheel of the vehicle being at rest for a period, engage the brake at the command brake pressure.
Example 18 includes the non-transitory computer readable medium of example 14, wherein the delivered brake pressure is a first delivered brake pressure and the instructions when executed cause the processor to determine a grade on which the vehicle is disposed, and in response to determining the grade of the vehicle satisfies a first grade threshold, modify the first delivered brake pressure to a second delivered brake pressure, a difference between the first delivered brake pressure and the second delivered brake pressure based on the grade.
Example 19 includes the non-transitory computer readable medium of example 18, wherein the second delivered brake pressure is equal to the first delivered brake pressure when the grade is equal to the first grade threshold, and the second delivered brake pressure is less than or equal to the command brake pressure when the grade satisfies a second grade threshold, the second grade threshold greater than the first grade threshold.
Example 20 includes the non-transitory computer readable medium of example 14, wherein the estimation of the time is based on a velocity provided by a velocity sensor, a deceleration rate of the vehicle, a resolution of the velocity sensor, and a braking dynamic of the vehicle.
The following claims are hereby incorporated into this Detailed Description by this reference. Although certain example systems, methods, apparatus, and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all systems, methods, apparatus, and articles of manufacture fairly falling within the scope of the claims of this patent.