Vehicle control regulator

By determining the adjusted control input through a computer system, based on the time step optimization target and system dynamics model, the problem of preventing or delaying contact between the main vehicle and the target vehicle in the advanced driver assistance system is solved, and a more reliable contact avoidance effect is achieved.

CN120792804APending Publication Date: 2025-10-17FORD GLOBAL TECH LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510425816.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-04-10
Filing Date
2025-04-07
Publication Date
2025-10-17

AI Technical Summary

Technical Problem

Existing advanced driver assistance systems have difficulty in effectively preventing or delaying contact between a host vehicle and a target vehicle, especially when the target kinematic state changes extremely, and existing control algorithms cannot effectively meet the constraints.

Method used

The adjusted control input is determined by computer, and based on the nominal control input, the main kinematic state and the target kinematic state, the number of time steps in which the constraints are satisfied is maximized, the number of time steps is used as the optimization target to provide more time to avoid contact, and the possible kinematic states are predicted by the system dynamics model, and the adjusted control input is recursively determined to satisfy the constraints.

Benefits of technology

Improved reliability and effectiveness of contact avoidance in contact scenarios between the host vehicle and the target vehicle, providing a more robust control approach suitable for a variety of advanced driver assistance system algorithms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120792804A_ABST
    Figure CN120792804A_ABST
Patent Text Reader

Abstract

The invention provides a vehicle control regulator. A computer includes a processor and a memory, and the memory stores instructions executable by the processor to determine an adjusted control input for a component of a host vehicle, the adjusted control input maximizes the number of time steps in which constraints on a primary kinematic state of the primary vehicle and a target kinematic state of at least one target vehicle can be satisfied; and actuating the component in accordance with the adjusted control input. The determination of the adjusted control input is based on a nominal control input, the primary kinematic state, and the target kinematic state.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to advanced driver assistance systems in vehicles. BACKGROUND

[0002] An advanced driver assistance system (ADAS) is an electronic technology that assists a driver in performing driving functions and parking functions. Examples of ADAS include forward collision detection, lane departure detection, blind spot detection, brake actuation, adaptive cruise control, and lane keep assist systems. SUMMARY

[0003] The technology described herein can prevent or delay contact between a host vehicle and a target vehicle in certain scenarios in a robust manner by actuating components of the host vehicle (e.g., autonomous operation or ADAS functions). The technology herein can be added to existing algorithms for controlling the host vehicle, such as a reference governor (RG), a control barrier function (CBF), a model predictive control (MPC), an action governor (AG), or a responsibility sensitive safety model (RSS). Any of these algorithms on a computer of the host vehicle can output a nominal control input for a component, e.g., a brake force for a brake system, a steering angle for a steering system, etc. The computer of the host vehicle can then determine an adjusted control input for the component based on the nominal control input, a host kinematic state of the host vehicle, and a target kinematic state of the target vehicle. A “kinematic state” is a description of a position and / or motion of an entity. The computer then actuates the component according to the adjusted control input.

[0004] The computer determines an adjusted control input for a component of a host vehicle that maximizes an amount of time steps in which a constraint on a host kinematic state of the host vehicle and a target kinematic state of at least one target vehicle can be satisfied. For example, in the context of adaptive cruise control, the constraint can be that a longitudinal distance from the host vehicle to the target vehicle is greater than a preset minimum distance. The constraint is "satisfiable" at a future time step meaning that a control input would be available to the host vehicle that would satisfy the constraint at time steps up to that future time step, e.g., maintain the minimum distance. In most instances, the nominal control input would make the constraint satisfiable for an indefinite number of time steps, so the adjusted control input would equal the nominal control input. Sometimes, for an indefinite number of time steps, e.g., due to extreme changes in the target kinematic state, the constraint would not be satisfiable. In such instances, the computer determines an adjusted control input that maximizes a finite number of time steps in which the constraint can be satisfied, rather than optimizing some current kinematic quantity as other control algorithms do. Using the number of time steps as an optimization target can provide the host vehicle more opportunities to prevent contact with the target vehicle in certain scenarios by providing more time for the scenario to change. Further, using the number of time steps can help provide appropriate control in a more provable manner, which is not provided by adding a slack variable to the constraint as in CBF or MPC.

[0005] A computer includes a processor and a memory, and the memory stores instructions executable by the processor to determine an adjusted control input for a component of a host vehicle that maximizes an amount of time steps in which a constraint on a host kinematic state of the host vehicle and a target kinematic state of at least one target vehicle can be satisfied, and actuate the component according to the adjusted control input. The determination of the adjusted control input is based on a nominal control input, the host kinematic state, and the target kinematic state.

[0006] In one example, the instructions can further include instructions to output the amount of time steps in which the constraint is satisfied.

[0007] In one example, the instructions can further include instructions to recursively determine, for each time step, a set of possible host kinematic states at that time step in which the constraint is satisfied at that time step, the set of possible host kinematic states at the time step being a set of possible host kinematic states at an immediately preceding time step. In another example, the instructions can further include instructions to perform the recursive determination on the set of possible host kinematic states until a time step at which the set of possible host kinematic states is empty.

[0008] In yet another example, the instructions can further include instructions to determine the set of possible primary kinematic states at each time step such that there exists a possible control input that results in the set of possible primary kinematic states at the time step being a subset of the set of possible primary kinematic states at the immediately preceding time step.

[0009] In yet another example, the instructions can further include instructions to determine the possible primary kinematic states at each time step using a system dynamics model that takes as inputs the adjusted control input, a primary kinematic state, and a target kinematic state at the immediately preceding time step.

[0010] In one example, the adjusted control input can be a second adjusted control input, and the instructions can further include instructions to determine whether there exists a first adjusted control input that results in the constraints being satisfiable for an indefinite number of time steps, and determine the second adjusted control input in response to there not existing the first adjusted control input. In another example, the instructions can further include instructions to actuate the component according to the first adjusted control input in response to there existing the first adjusted control input, and actuate the component according to the second adjusted control input in response to there not existing the first adjusted control input.

[0011] In yet another example, the instructions can further include instructions to determine the first adjusted control input that maximally reduces an objective function of the primary vehicle.

[0012] In yet another example, the instructions can further include instructions to set the first adjusted control input to the nominal control input in response to the nominal control input being satisfiable for an indefinite number of time steps.

[0013] In yet another example, the instructions can further include instructions to determine whether there exists the first adjusted control input that results in the primary kinematic state being in a set of primary kinematic states that satisfy the constraints, and the set of primary kinematic states can be a control invariant set.

[0014] In one example, the instructions can further include instructions to determine the adjusted control input that maximally increases a number of time steps in which the constraints on the primary kinematic state and the target kinematic state are satisfiable across a range of target kinematic states. In another example, the range can be a predetermined range.

[0015] In yet another example, the instructions can further include instructions to determine possible primary kinematic states at each time step using a system dynamics model that takes as inputs the control input at the immediately preceding time step, the primary kinematic state at the immediately preceding time step, and the range of target kinematic states.

[0016] In one example, the adjusted control input can be a command for at least one of a propulsion system, a braking system, or a steering system of the host vehicle.

[0017] In one example, the instructions can further include instructions to determine the nominal control input based on the primary kinematic state and the target kinematic state.

[0018] In one example, the instructions can further include instructions to receive the nominal control input from an operator of the host vehicle.

[0019] In one example, the primary kinematic state can include a speed of the host vehicle.

[0020] In one example, the target kinematic state can include at least one speed of the at least one target vehicle.

[0021] A method includes determining an adjusted control input for a component of a host vehicle that maximizes a number of time steps in which constraints on a primary kinematic state of the host vehicle and a target kinematic state of at least one target vehicle can be satisfied, and actuating the component according to the adjusted control input. The determination of the adjusted control input is based on a nominal control input, the primary kinematic state, and the target kinematic state. BRIEF DESCRIPTION OF DRAWINGS

[0022] Figure 1 is a block diagram of an example host vehicle.

[0023] Figure 2 is a schematic top view of an example interaction between a host vehicle and a target vehicle.

[0024] Figure 3 is a block diagram of an example feedback loop for controlling a vehicle.

[0025] Figure 4 is a graph of an example set of states of a host vehicle satisfying constraints over different numbers of time steps.

[0026] Figure 5 is a flowchart of an example process for controlling a host vehicle. DETAILED DESCRIPTION

[0027] With reference to the drawings, in which like numerals indicate like parts throughout the several views, a computer 105 includes a processor and a memory, and the memory stores instructions executable by the processor to determine an adjusted control input for a component of a host vehicle 100 that maximizes a number of time steps in which constraints on a host kinematic state of the host vehicle 100 and a target kinematic state of at least one target vehicle 200 can be satisfied, and to actuate the component, e.g., control or operate the host vehicle 100, in accordance with the adjusted control input. The determination of the adjusted control input is based on a nominal control input, the host kinematic state, and the target kinematic state.

[0028] With reference to the drawings, in which like numerals indicate like parts throughout the several views, a computer 105 includes a processor and a memory, and the memory stores instructions executable by the processor to determine an adjusted control input for a component of a host vehicle 100 that maximizes a number of time steps in which constraints on a host kinematic state of the host vehicle 100 and a target kinematic state of at least one target vehicle 200 can be satisfied, and to actuate the component, e.g., control or operate the host vehicle 100, in accordance with the adjusted control input. The determination of the adjusted control input is based on a nominal control input, the host kinematic state, and the target kinematic state. Figure 1 The host vehicle 100 can be any passenger or commercial car, such as a sedan, truck, sport utility vehicle, crossover, van, minivan, taxi, bus, etc. The host vehicle 100 includes a computer 105, a communication network 110, sensors 115, a propulsion system 120, a braking system 125, a steering system 130, and a user interface 135.

[0029] The computer 105 is a microprocessor-based computing device, such as a general purpose computing device (including a processor and a memory, an electronic controller, etc.), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a combination of the foregoing, etc. Typically, hardware description languages such as VHDL (VHSIC (very high speed integrated circuit) hardware description language) are used in electronic design automation to describe digital and mixed-signal systems such as FPGAs and ASICs. For example, an ASIC is manufactured based on VHDL programming provided prior to manufacture, while logic components within a FPGA can be configured based on, for example, VHDL programming stored in a memory electrically connected to the FPGA circuit. Thus, the computer 105 can include a processor, a memory, etc. The memory of the computer 105 can include media for storing instructions executable by the processor as well as for electronically storing data and / or databases, and / or the computer 105 can include structures such as the foregoing structures providing programming. The computer 105 can be multiple computers coupled together. Alternatively, the computer 105 can include a computer remote from the host vehicle 100, with the computer 105 on the host vehicle 100 in communication with the computer.

[0030] The computer 105 can transmit and receive data over a communication network 110. The communication network 110 can be, for example, a controller area network (CAN) bus, an Ethernet network, a WiFi network, a local interconnect network (LIN), an on-board diagnostics connector (OBD-II), and / or any other wired or wireless communication network. The computer 105 can be communicatively coupled to the sensors 115, the propulsion system 120, the braking system 125, the steering system 130, the user interface 135, and other components via the communication network 110.

[0031] The sensors 115 can provide data regarding the operation of the host vehicle 100, such as wheel rotational speed, wheel orientation, and engine and transmission data (e.g., temperature, fuel consumption, etc.). The sensors 115 can detect the position and / or orientation of the host vehicle 100. For example, the sensors 115 can include a global positioning system (GPS) sensor; an accelerometer, such as a piezoelectric system or a microelectromechanical system (MEMS); a gyroscope, such as a rate gyroscope, a ring laser gyroscope, or a fiber-optic gyroscope; an inertial measurement unit (IMU); and a magnetometer. The sensors 115 can detect the external world, such as objects and / or characteristics of the environment surrounding the host vehicle 100, such as target vehicles 200, road lane markings, traffic signal lights, and / or signs, etc. For example, the sensors 115 can include radar sensors, ultrasonic sensors, scanning laser rangefinders, light detection and ranging (lidar) devices, and image processing sensors, such as cameras.

[0032] The propulsion system 120 of the host vehicle 100 generates and converts energy into motion of the host vehicle 100. The propulsion system 120 can be a conventional vehicle propulsion subsystem, such as a conventional powertrain system that includes an internal combustion engine coupled to a transmission that delivers rotational motion to the wheels; an electric powertrain system that includes a battery, an electric motor, and a transmission that delivers rotational motion to the wheels; a hybrid powertrain system that includes elements of a conventional powertrain system and an electric powertrain system; or any other type of propulsion device. The propulsion system 120 can include an electronic control unit (ECU) or the like that communicates with and receives input from the computer 105 and / or a human operator. The human operator can control the propulsion system 120 via, for example, an accelerator pedal and / or a shift lever.

[0033] The braking system 125 is generally a conventional vehicle braking subsystem and resists motion of the host vehicle 100, thereby causing the host vehicle 100 to slow and / or stop. The braking system 125 can include friction brakes such as disc brakes, drum brakes, band brakes, etc.; regenerative brakes; any other suitable type of brake; or combinations thereof. The braking system 125 can include an electronic control unit (ECU) or the like that communicates with and receives input from the computer 105 and / or a human operator. The human operator can control the braking system 125 via, for example, a brake pedal.

[0034] The steering system 130 is generally a conventional vehicle steering subsystem and controls turning of the wheels. The steering system 130 can be a rack-and-pinion system with electric power assist steering, a steer-by-wire system (both of which are known), or any other suitable system. The steering system 130 can include an electronic control unit (ECU) or the like that communicates with and receives input from the computer 105 and / or a human operator. The human operator can control the steering system 130 via, for example, a steering wheel.

[0035] The user interface 135 presents information to and receives information from an operator of the host vehicle 100. The user interface 135 can be located on, for example, an instrument panel in a passenger compartment of the host vehicle 100, or anywhere else that is easily viewable by the operator. The user interface 135 can include dials, digital readouts, screens, speakers, etc. for providing information to the operator, e.g., such as known human-machine interface (HMI) elements. The user interface 135 can include buttons, knobs, keypads, microphones, etc. for receiving information from the operator.

[0036] Reference Figure 2 As the host vehicle 100 travels through an environment, the host vehicle 100 can interact with a target vehicle 200, i.e., a vehicle other than the host vehicle 100. The term "host vehicle" refers to a vehicle that includes the computer 105 and that the computer 105 can control. The term "target vehicle" refers to a vehicle other than the host vehicle 100 that the computer 105 cannot control. In Figure 2 In the example, the host vehicle 100 travels behind the target vehicle 200 in a lane of a roadway.

[0037] The computer 105 can be programmed to determine a host kinematic state and a target kinematic state. For purposes of the present disclosure, a "kinematic state" is defined as a mathematical description of a position and / or motion of an entity. The kinematic state can include some combination of position, heading, velocity, acceleration, yaw rate, etc. Velocity can include a velocity vector and / or a scalar velocity. The "host kinematic state" is the kinematic state of the host vehicle 100. The computer 105 can determine the host kinematic state based on data from the sensors 115 (e.g., from a GPS sensor, a wheel speed sensor, an IMU, etc.). The "target kinematic state" is the kinematic state of one or more of the target vehicles 200 in the environment of the host vehicle 100. The computer 105 can determine the target kinematic state based on data from the sensors 115 (e.g., the changing position and velocity of the target vehicles 200 over time from radar, ultrasonic sensors, and / or lidar).

[0038] The following techniques involve nominal control inputs and adjusted control inputs. For purposes of the present disclosure, a "control input" is defined as one or more values that control the operation of a component of a vehicle. Thus, the control input serves as a command for the component (e.g., at least one of the propulsion system 120, the braking system 125, or the steering system 130 of the host vehicle 100). For example, the components of the host vehicle 100 can include the propulsion system 120 and the braking system 125, and the control input can include an input acceleration of the host vehicle 100. Actuating the propulsion system 120 can include setting the throttle to the input acceleration when the input acceleration is positive. Actuating the braking system 125 can include engaging the braking system 125 with a braking force that causes a negative acceleration equal to the input acceleration when the input acceleration is negative.

[0039] The control input can be subject to prescribed bounds. In other words, the control input for actuating the component comes from a predetermined set of control inputs. The set of control inputs can be selected based on the capabilities of the component of the host vehicle 100 (e.g., the braking system 125 and / or the steering system 130) that is controlled by the control input. The set can be represented by the following expression:

[0040]

[0041] where u t is the control input at time t, U is the predetermined set of control inputs, is a set of vectors of length m filled with real numbers, and h is a function that defines whether the independent variable u is within the capabilities of the component of the vehicle. The length m can be the number of different values in the control input, e.g., 1 for acceleration only, 2 for acceleration and steering angle, etc. For example, for the acceleration of the host vehicle 100, the set of control inputs can be a range from a minimum acceleration to a maximum acceleration, e.g., wherea 主 is the minimum acceleration achievable by the braking system 125 of the host vehicle 100 (i.e., the maximum deceleration due to braking), and is the maximum acceleration achievable by the propulsion system 120 of the host vehicle 100.

[0042] Figure 3 is a block diagram of a feedback loop 300 for controlling the host vehicle 100. The memory of the computer 105 stores executable instructions for executing the blocks of the feedback loop 300, and / or can be programmed in a structure such as described above. The feedback loop 300 can be iterated once per time step. As an overall overview, a control block 305 receives the host kinematic states measured by the sensors 115 and the target kinematic states. The control block 305 outputs nominal control inputs. A regulator block 310 receives the nominal control inputs as well as the host kinematic states and the target kinematic states. The regulator block 310 outputs adjusted control inputs. A system block 315 actuates the host vehicle 100 according to the adjusted control inputs, thereby producing actual host kinematic states and target kinematic states for the next time step. A sensor block 320 determines the host kinematic states and the target kinematic states based on the measurements of the environment by the sensors 115.

[0043] In the control block 305, the computer 105 can be programmed to determine the nominal control inputs The control block 305 receives the host kinematic states and the target kinematic states from the sensor block 320. The computer 105 can use an algorithm for controlling the host vehicle 100, such as a known reference governor (RG), control barrier function (CBF), model predictive control (MPC), action governor (AG), or responsibility sensitive safety model (RSS), to determine the nominal control inputs Alternatively or additionally, the computer 105 can receive the nominal control inputs from an operator of the host vehicle, for example, via an acceleration pedal for the propulsion system 120, a brake pedal for the braking system 125, and / or a steering wheel for the steering system 130 For example, when one of the ADAS features or algorithms for controlling the host vehicle is actively controlling the host vehicle 100, the computer 105 can use the ADAS feature or algorithm to determine the nominal control inputs Otherwise the nominal control inputs can be received from the operator

[0044] In the regulator block 310, the computer 105 is programmed to determine the adjusted control inputs u of the components based on the nominal control inputs the host kinematic states and the target kinematic states, as will be described below with respect to Figure 4The regulator block 310 receives the nominal control input from the control block 305. and the main and target kinematic states x from the sensor block 320 .

[0045] In system block 315, computer 105 actuates vehicle components based on the adjusted control input u. The "outputs" of system block 315 are the actual primary and target kinematic states resulting from the actuation of the subject vehicle 100 and the disturbance input w. The disturbance input w represents unmeasured factors that may affect the primary and target kinematic states x, such as the motion of the target vehicle 200.

[0046] In the sensor block 320, the computer 105 may receive data from the sensors 115 that measures the effects of the external environment (the world) on the system block 315. The computer 105 may determine the master kinematic state and the target kinematic state x based on the data from the sensors 115 for use by the control block 305 and the regulator block 310 in the next time step.

[0047] The computer 105 may be configured to determine a possible primary kinematic state at each time step using a system dynamics model that takes as input the control input, the primary kinematic state, and the target kinematic state at the immediately preceding time step. The system dynamics model may be based on (e.g., according to) the primary kinematic state and the target kinematic state x at the immediately preceding time step t. t , control input u t and the disturbance input w t To determine the main kinematic state and target kinematic state x at time step t+1 t+1 , as shown in the following expression:

[0048] x t+1 =f(x t ,u t ,w t )

[0049] As is known, the system dynamics model may be a physics-based kinematic model. A particular system dynamics model may be selected based on, for example, the ADAS feature being controlled.

[0050] For example, in the context of adaptive cruise control, the system dynamics model can be a discrete-time dynamics model in one spatial dimension of the change in the relative distance between the host vehicle 100 and the target vehicle 200 and one spatial dimension of the change in the relative speed between the host vehicle 100 and the target vehicle 200, as shown in the following expression:

[0051]

[0052] Δv(t + 1) = Δv(t) + T s a 主 (t) - T s a 目标 (t)

[0053] where Δs is the longitudinal distance between the host vehicle 100 and the target vehicle 200, Δv is the speed difference between the host vehicle 100 and the target vehicle 200, T s is the duration of a time step, a 主 is the acceleration of the host vehicle 100, and a 主 is the acceleration of the target vehicle 200. In this example, the control input u is the host acceleration a 目标 , and the disturbance input w is the target acceleration a t .

[0054] With reference to Figure 4 , the determination of the adjusted control input uses constraints on the host kinematic state and the target kinematic state. The constraints can be represented as an initial set 400 X0of possible host kinematic states and target kinematic states x t at a particular time step t. Figure 4 represents two dimensions of the host kinematic state and the target kinematic state x, but the host kinematic state and the target kinematic state x can have more dimensions. The constraints can be chosen to ensure a cushion between the host vehicle 100 and the target vehicle 200 at the current time step t in a manner that is suitable for components of the host vehicle 100 being controlled (e.g., for the type of ADAS feature being implemented). For example, in the context of adaptive cruise control, the constraints can be that the longitudinal distance between the host vehicle 100 and the target vehicle 200 is greater than a predetermined distance, the distance has no upper bound and the relative speed has no upper bound, e.g., the initial set 400 X0in the following expression:

[0055]

[0056] where M is an arbitrarily large number chosen to make the maximum value of Δs and the minimum and maximum values of Δv practically unbounded. For other ADAS features, the headings, yaw rates, etc. of the host vehicle 100 and the target vehicle 200 can be included in the definition of the constraints.

[0057] The computer 105 is programmed to determine an adjusted control input for the component based on the nominal control input, the primary kinematic state, and the target kinematic state such that the adjusted control input maximizes the number of time steps at which the constraints on the primary kinematic state and the target kinematic state are satisfied. The adjusted control input can maximize the number of time steps at which the constraints on the primary kinematic state and the target kinematic state are satisfied across a range of target kinematic states. In other words, if the host vehicle 100 is actuated according to the adjusted control input, then at each time step prior to the maximum number, there is a control input that causes a combination of the primary kinematic state and any target kinematic state within the range to satisfy the constraints. At a given time step t less than the maximum number, the computer 105 executes the system dynamics model to determine the optimal control input for the adjusted control input u. t , current main kinematic state and target kinematic state x t and the prediction x of any disturbance input w to the target kinematic state within the range W t+1 is the main kinematic state and the target kinematic state x t+1 , and x t+1 is a member of the initial set 400X0, as shown in the following expression:

[0058]

[0059] In other words, the main kinematic state and the target kinematic state x t+1 is the adjusted control input u t As well as the current main kinematic state and target kinematic state x t , members of the prediction set of the system dynamics model for the perturbation range W of the target kinematic state, which are subsets of the initial set 400×0, as shown in the following simplified expression:

[0060]

[0061] The range W may be a predetermined range and may be stored in the memory of the computer 105. The range W may be selected to cover most behaviors of the target vehicle 200.

[0062] As an overview of determining adjusted control inputs, computer 105 may attempt to determine a first adjusted control input that minimizes the objective function of host vehicle 100 and results in constraints that are satisfied for an indefinite number of time steps. The constraints that are satisfied for an indefinite number of time steps may be represented by indefinite time step set 405X. ∈representing that the indefinite set of time steps consists of possible principal kinematic states and target kinematic states x for which the constraints are satisfied at the current time step and allow the constraints to be satisfied for an indefinite number of time steps. As Figure 4 shown, the indefinite set of time steps 405 X ft is a subset of the initial set 400 X0. If the computer 105 identifies such a first adjusted control input, the first adjusted control input is used as the adjusted control input. In response to the computer 105 being unable to determine a first adjusted control input (e.g., the indefinite set of time steps 405 X ft is empty, the determination of a first adjusted control input described below is infeasible, etc.), the computer 105 determines a second adjusted control input that maximizes the indefinite number of time steps in which the constraints can be satisfied. To do so, the computer 105 recursively determines, for each time step, a set of possible principal kinematic states at that time step that satisfy the constraints at that time step. Each set of possible principal kinematic states at a time step is a subset of the set of possible principal kinematic states at the immediately preceding time step. In Figure 4 the example shown, the first set 410 X1 consists of members that can satisfy the constraints in at least one time step, the second set 415 X2 consists of members that can satisfy the constraints in at least two time steps, and the third set 420 X3 consists of members that can satisfy the constraints in at least three time steps, and so on. Each set is a subset of the set of the immediately preceding time step, e.g., as Figure 4 shown. The recursion continues until a time step k*+1 at which the set of possible principal kinematic states is empty, and the second adjusted control input is the result that produces the last non-empty set for time step k*. The second adjusted control input is used as the adjusted control input.

[0063] To begin determining the adjusted control input, the computer 105 can determine whether there exists a first adjusted control input that results in the constraints being satisfiable for an indefinite number of time steps, i.e., there exists a value of u t that satisfies the following expression:

[0064]

[0065] For example, the computer 105 can execute the control block 305 and determine whether the nominal control input satisfies the internal constraints of the algorithm used to control the host vehicle 100. For example, as known, the computer 105 can determine whether the target vehicle 200 is outside a virtual boundary defined by a control barrier function (CBF). In that case, the computer 105 sets the first adjusted control input to the nominal control input. The computer 105 can determine whether there exists a first adjusted control input that results in the host kinematic state being in a set of host kinematic states that satisfy the constraints. The set can be defined by the internal constraints of the algorithm used in the control block 305. The set can be a set of control invariants, e.g., a set of robust control invariants. As known in the field of control theory, a set is a set of robust control invariants if there exists a feedback that maps the state of the system to an allowed control input such that every trajectory from an initial state in the set that follows the feedback remains in the set at all times. In this case, the set is the set of unbounded time steps 405 ft and the state of the system is the host kinematic state and the target kinematic state x. Certain algorithms used to control the host vehicle 100 are proven to have a set of robust control invariants when satisfying their internal constraints, e.g., control barrier function (CBF), robust model predictive control (RMPC), reference governor (RG), etc.

[0066] If there exists at least one first adjusted control input, the computer 105 can determine a first adjusted control input that minimizes a target function that describes the host vehicle 100. The target function can take as inputs the control input u and components of the host kinematic state. For example, the computer 105 can optimize the first adjusted control input to provide a minimum value of the target function, resulting in the host kinematic state being in the set of unbounded time steps 405 for all target kinematic states in the range, as shown in the following expression:

[0067]

[0068] where u t,ft is the first adjusted control input at time step t, “argmin” returns the argument of the function that minimizes the value of the function, Jt is the target function at time step t, and “s.t.” stands for “such that.” The first adjusted control input u t,ft is limited to a predetermined set of control inputs U available to the components. The first adjusted control input that minimizes the target function of the host vehicle 100 can be determined as part of the algorithm used to control the host vehicle 100 from the control block 305.

[0069] The computer 105 can be programmed to determine a second adjusted control input in response to the absence of the first adjusted control input. The second adjusted control input maximizes the finite number of time steps in which the constraints on the primary kinematic state and the target kinematic state can be satisfied; for example, the second adjusted control input results in a kth set X of possible primary kinematic states and target kinematic states for which the primary kinematic state satisfies the constraints for a maximum number k of time steps for all target kinematic states in the range W. k The computer 105 may determine a second adjusted control input so that the system dynamics model has a second adjusted control input u for the current main kinematic state and the target kinematic state and for all target kinematic states in the range W. t,k Prediction x t is the kth set X of possible principal and target kinematic states that satisfy the constraints for a maximum number k of time steps k A subset of , as shown in the following expression:

[0070]

[0071] in is the kth set X k A non-strict subset of It is constructed as follows. The second adjusted control input u t,k is restricted to a predetermined set U of control inputs available to the component.

[0072] The computer 105 is programmed to recursively determine, for each time step k, the set of possible principal kinematic states x at that time step k that satisfy the constraint The set of possible principal kinematic states at time step k is a subset of the set of possible principal kinematic states at the immediately preceding time step k–1 The computer 105 thus determines the set of possible principal kinematic states at each time step k Such that there exists a set of possible principal kinematic states at time step k that result from a possible control input u is a subset of the set of possible principal kinematic states at the immediately preceding time step k–1 For example, the collection It can be equal to the intersection of the initial set 400X0 and the set of values ​​of the primary kinematic state and the target kinematic state x for which there is a control input u such that the prediction of the system dynamics model of x and u for a predetermined range W of changes in the target kinematic state is the set A subset of , for example, as given by the following expression:

[0073]

[0074] Pair Collection The determination of is recursive because it depends on the set The computer 105 can calculate the set of possible main kinematic states. Perform recursive determination until the set of possible primary kinematic states The second adjusted control input u t,k* Taken from the resulting non-empty set The control input u is used as the adjusted control input u t The computer 105 outputs the number k* of time steps that satisfy the constraint, i.e., the final non-empty set The index of .

[0075] The computer 105 is programmed to adjust the control input u according to the t Consistent with the above description, the computer 105 may respond to the presence of the first adjusted control input u t,∞ According to the first adjusted control input u t,∞ to actuate the component, and in response to the absence of the first adjusted control input u t,∞ According to the second adjusted control input u t,k* For example, the computer 105 can actuate the components according to the adjusted control input u t The input acceleration of t is used to actuate the propulsion system 120 and the braking system 125 as described above. Alternatively or in addition, the computer 105 can actuate the user interface 135 to output a message, for example, recommending the adjusted control input u t and / or state a finite number of time steps k* in which the constraint can be satisfied.

[0076] Figure 5 is a flow chart illustrating an example process 500 for controlling a host vehicle 100. The memory of the computer 105 stores executable instructions for performing the steps of process 500 and / or may be programmed, such as the structures described above. Process 500 may be repeatedly executed while the host vehicle 100 is turned on, for example, once per time step. As a general overview of process 500, the computer 105 receives a primary kinematic state and a target kinematic state, determines a nominal control input, determines a first adjusted control input, determines a second adjusted control input in response to an inability to determine the first adjusted control input, and actuates a component based on either the first adjusted control input or the second adjusted control input.

[0077] The process 500 begins in block 505, where the computer 105 receives the master kinematic state and the target kinematic state x at the current time step t.t , as mentioned above.

[0078] Next, in block 510, the computer 105 determines the nominal control input As mentioned above.

[0079] Next, in block 515, the computer 105 determines the first adjusted control input u t,∞ , as mentioned above.

[0080] Next, in decision block 520, the computer 105 determines whether the computer 105 was able to determine the first adjusted control input u in block 515. t, In response to being unable to determine the first adjusted control input u t,∞ , process 500 proceeds to block 525. In response to determining the first adjusted control input u t,∞ , the computer 105 uses as the adjusted control input u t The first adjusted control input u exists t,∞ , and process 500 proceeds to block 530 .

[0081] In block 525, the computer 105 determines the second adjusted control input u t,k* , the second adjusted control input is used as the adjusted control input u t , as described above. After block 525, process 500 proceeds to block 530.

[0082] In block 530, the computer 105 calculates the value of the adjusted control input u t to actuate components, such as to control or operate the host vehicle 100, as described above. After block 530, the process 500 ends.

[0083] Generally, the computing systems and / or devices described may utilize any of a variety of computer operating systems, including but not limited to the following versions and / or types: Ford Application; AppLink / Smart Device Link middleware; Microsoft Operating system; Microsoft Operating systems; Unix operating systems (e.g., those distributed by Oracle Corporation of Redwood Shores, California) operating systems); the AIX UNIX operating system distributed by International Business Machines Corporation in Armonk, New York; the Linux operating system; the Mac OS and iOS operating systems distributed by Apple Inc. in Cupertino, California; the BlackBerry operating system distributed by BlackBerry Limited in Waterloo, Canada; and the Android operating system developed by Google and the Open Handset Alliance, or the CAR infotainment platform. Examples of computing devices include, but are not limited to, on-board computers, computer workstations, servers, desktops, notebooks, laptops, or handheld computers, or some other computing system and / or device.

[0084] Computing devices typically include computer-executable instructions, where the instructions can be executed by one or more computing devices, such as those listed above. Computer-executable instructions can be compiled or interpreted from computer programs created using a variety of programming languages and / or technologies, including, without limitation, and either alone or in combination, Java TM , C, C++, Matlab, Simulink, Stateflow, Visual Basic, Java Script, Python, Perl, HTML, etc. Some of these applications can be compiled and executed on a virtual machine, such as the Java virtual machine, Dalvik virtual machine, etc. Generally, a processor (e.g., a microprocessor) receives instructions, from a

[0085] A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that can be read by a computer (e.g., by a processor of a computer). Such a medium can take many forms, including but not limited to, non-volatile media and volatile media. Instructions can be transmitted by one or more transmission mediums including an internal system bus or external a wired, optical, and / or wireless communication link taking the form of AC voltage signals, optical, and / or electromagnetic waves, such as a carrier wave or other transport mechanism. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, a solid-state drive, a magnetic tape, a magnetic drum, a cassette tape, a punch card, a paper tape, an optical data storage medium, an ASKI card, a

[0086] The databases, data repositories or other data stores described herein can include various kinds of mechanisms for storing, accessing, and retrieving various data, including a hierarchical database, a set of tables, a collection of data records, an application database, a relational database management system (RDBMS), a non-relational database (NoSQL), a graph database (GDB), etc. Each such data store is generally included within a computing device employing a computer operating system such as one of those mentioned above, and is accessed via a network in any one or more of a variety of manners. A file system can be accessed from the computer operating system, and can include files stored in various formats. An RDBMS, as well as the aforementioned PL / SQL language, generally employs the structured query language (SQL) in addition to the language for creating, storing, editing, and executing stored procedures.

[0087] In some examples, system elements can be implemented as computer-readable instructions (e.g., software) on one or more computing devices (e.g., servers, personal computers, etc.) stored on computer-readable media (e.g., disks, memories, etc.) associated therewith. A computer program product can include such instructions for performing the functionality described herein, stored on a computer-readable medium.

[0088] In the drawings, like reference numerals indicate like elements. In addition, some or all of the elements can be changed. With respect to the media, processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as following a certain ordered sequence, such processes could be practiced with different orders of steps and / or overlapped with themselves and others involving it, and that the description as such does not entail a departure from the spirit and scope of the present disclosure. In addition, the description just as the claims should not be construed as indicating that there are many steps or participating entities necessarily involved in the process, method, etc. in question or that they must be carried out in a certain order, and / or successfully executed. With respect to the operations, systems, and methods described herein, it should be understood that, although the steps of such processes have been described as being performed consecutively, in some cases, these processes can be performed in parallel or with all or some of the steps being performed concurrently. Additionally, certain of the steps can be left out of the processes, or can be performed intermittently. In certain cases, portions of the processes can be performed by specialized computers or computer systems designed for use in connection with the processes. The description herein of any process, system, or method should be understood to also include any and all steps that can be employed, subtended, further omitted, added, and / or equivalently performed in accordance with the principles of the present disclosure.

[0089] The present disclosure has been described in an illustrative manner, and it is to be understood that the terminology which has been used is intended to be in the nature of words of description rather than of limitation. The use of the comparative adjectives "first", "second", and so on, as used throughout this document, are used as identifiers and are not intended to connote importance, order, or number. The use of "in response to", "upon determining", and the like, indicates causation as opposed to merely a temporal relationship. Numerous modifications and adaptations will be apparent to those skilled in the art in view of the foregoing description, and the present disclosure can be practiced in differing but equivalent manners as are appropriate to specific applications taught herein. As should be understood, the various processes, systems, and methods described herein are capable of being performed using a variety of different computing devices, and the description of any particular computing device is intended to be illustrative only.

[0090] According to the present invention, there is provided a computer having a processor and a memory storing instructions executable by the processor to determine an adjusted control input for a component of a host vehicle that maximizes a number of time steps in which constraints on a host kinematic state of the host vehicle and a target kinematic state of at least one target vehicle can be satisfied, the determination of the adjusted control input being based on a nominal control input, the host kinematic state and the target kinematic state; and actuate the component in accordance with the adjusted control input.

[0091] According to one embodiment, the instructions further include instructions to output the number of time steps in which the constraints are satisfied.

[0092] According to one embodiment, the instructions further include instructions to recursively determine, for each time step, a set of possible host kinematic states at that time step in which the constraints are satisfied at that time step, the set of possible host kinematic states at the time step being a set of possible host kinematic states at an immediately preceding time step.

[0093] According to one embodiment, the instructions further include instructions to perform the recursive determination on the set of possible host kinematic states until a time step in which the set of possible host kinematic states is empty.

[0094] According to one embodiment, the instructions further include instructions to determine the set of possible host kinematic states at each time step such that there exists a possible control input that results in the set of possible host kinematic states at the time step being a subset of the set of possible host kinematic states at the immediately preceding time step.

[0095] According to one embodiment, the instructions further include instructions to determine the possible host kinematic states at each time step using a system dynamics model that takes as inputs the adjusted control input, host kinematic state and target kinematic state at the immediately preceding time step.

[0096] According to one embodiment, the adjusted control input is a second adjusted control input, and the instructions further include instructions to determine whether there exists a first adjusted control input that results in the constraints being satisfiable for an indefinite number of time steps; and responsive to there not existing the first adjusted control input, determine the second adjusted control input.

[0097] According to one embodiment, the instructions further include instructions to actuate the component according to the first adjusted control input in response to the first adjusted control input being present, and actuate the component according to the second adjusted control input in response to the first adjusted control input not being present.

[0098] According to one embodiment, the instructions further include instructions to determine the first adjusted control input that maximally reduces a target function of the host vehicle.

[0099] According to one embodiment, the instructions further include instructions to set the first adjusted control input to the nominal control input in response to the nominal control input satisfying the constraints for an indefinite number of time steps.

[0100] According to one embodiment, the instructions further include instructions to determine whether the first adjusted control input causes the host kinematic state to be in a set of host kinematic states that satisfy the constraints, and the set of host kinematic states is a control invariant set.

[0101] According to one embodiment, the instructions further include instructions to determine the adjusted control input that maximally increases a number of time steps in which the constraints on the host kinematic state and the target kinematic state can be satisfied across a range of target kinematic states.

[0102] According to one embodiment, the range is a predetermined range.

[0103] According to one embodiment, the instructions further include instructions to determine possible host kinematic states at each time step using a system dynamics model that takes as inputs a control input at an immediately preceding time step, a host kinematic state at the immediately preceding time step, and the range of target kinematic states.

[0104] According to one embodiment, the adjusted control input is a command for at least one of a propulsion system, a braking system, or a steering system of the host vehicle.

[0105] According to one embodiment, the instructions further include instructions to determine the nominal control input based on the host kinematic state and the target kinematic state.

[0106] According to one embodiment, the instructions further include instructions to receive the nominal control input from an operator of the host vehicle.

[0107] According to one embodiment, the host kinematic state comprises a speed of the host vehicle.

[0108] According to one embodiment, the target kinematic state comprises at least one speed of the at least one target vehicle.

[0109] According to the invention, a method comprises determining an adjusted control input for a component of a host vehicle, the adjusted control input maximally increasing a number of time steps in which constraints on a host kinematic state of the host vehicle and a target kinematic state of at least one target vehicle can be satisfied, the determination of the adjusted control input being based on a nominal control input, the host kinematic state and the target kinematic state; and actuating the component in accordance with the adjusted control input.

Claims

1. A method comprising: determining an adjusted control input for a component of a host vehicle, the adjusted control input maximizing a number of time steps in which constraints on a master kinematic state of the host vehicle and a target kinematic state of at least one target vehicle may be satisfied, the adjusted control input being determined based on a nominal control input, the master kinematic state, and the target kinematic state; as well as The component is actuated according to the adjusted control input. 2 . The method of claim 1 , further comprising outputting the number of time steps in which the constraint is satisfied.

3. The method of claim 1 , further comprising recursively determining, for each time step, a set of possible principal kinematic states at the time step in which the constraint is satisfied at the time step, the set of possible principal kinematic states at the time step being the set of possible principal kinematic states at the immediately preceding time step. 4 . The method of claim 3 , further comprising performing a recursive determination on the set of possible primary kinematic states until a time step at which the set of possible primary kinematic states is empty.

5. The method of claim 3 , further comprising determining the set of possible primary kinematic states at each time step such that there is a possible control input that results in the set of possible primary kinematic states at the time step being a subset of the set of possible primary kinematic states at the immediately previous time step.

6. The method of claim 3 , further comprising determining the possible primary kinematic states at each time step using a system dynamics model, the system dynamics model taking as input the adjusted control input, primary kinematic state, and target kinematic state at the immediately previous time step.

7. The method of claim 1 , wherein the adjusted control input is a second adjusted control input, the method further comprising: determining whether a first adjusted control input exists that results in the constraint being satisfied within a variable number of time steps; and in response to an absence of the first adjusted control input, determining the second adjusted control input.

8. The method of claim 7, further comprising: actuating the component according to the first adjusted control input in response to the presence of the first adjusted control input; and actuating the component according to the second adjusted control input in response to an absence of the first adjusted control input. 9 . The method of claim 7 , further comprising determining the first adjusted control input that minimizes an objective function of the host vehicle.

10. The method of claim 7, further comprising setting the first adjusted control input to the nominal control input in response to the nominal control input satisfying the constraint within an indeterminate number of time steps.

11. The method of claim 7, further comprising determining whether the first adjusted control input results in the primary kinematic state being in a set of primary kinematic states that satisfies the constraints, wherein the set of primary kinematic states is a set of control invariants.

12. The method of claim 1 , further comprising determining the adjusted control input, the adjusted control input maximizing a number of time steps in which the constraints on the master kinematic state and the target kinematic state can be satisfied across a range of target kinematic states. The method of claim 12 , wherein the range is a predetermined range.

14. The method of claim 12 , further comprising determining possible primary kinematic states at each time step using a system dynamics model, the system dynamics model taking as input the control input at the immediately previous time step, the primary kinematic state at the immediately previous time step, and the range of target kinematic states.

15. A computer comprising a processor and a memory, the memory storing instructions executable by the processor to perform the method of one of claims 1 to 14.