Optimal calculation unit
The optimal arithmetic unit addresses insufficient constraint management by calculating optimal values and adjusting weights to satisfy constraints, ensuring effective evaluation and management of variable behaviors while reducing computational load.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- MITSUBISHI ELECTRIC MOBILITY CORP
- Filing Date
- 2024-03-27
- Publication Date
- 2026-04-24
AI Technical Summary
Existing technologies require transforming constraint conditions for manipulated and controlled variables into rate of change constraints, which are not general-purpose and fail to adequately manage the behaviors of these variables, leading to insufficient constraint management.
An optimal arithmetic unit that calculates candidate optimal values for input and state variables by repeatedly performing calculations until constraints are satisfied, and adjusts weights related to unconstrained items to meet constraints, using slack variables to relax constraints and adjust weights to satisfy conditions.
Enables effective evaluation and management of constrained items by satisfying constraints, allowing for individual management of variable behaviors and reducing computational load through targeted weight adjustments.
Smart Images

Figure 0007851510000028 
Figure 0007851510000029 
Figure 0007851510000030
Abstract
Description
Technical Field
[0001] This disclosure relates to an optimal arithmetic unit.
Background Art
[0002] In the technique of Patent Document 1, constraint conditions for the manipulated variable u, the rate of change of the manipulated variable Δu, the controlled variable y, and the rate of change of the controlled variable Δy are transformed into constraint conditions that constrain the rate of change of the manipulated variable Δu using a model. When a solution that satisfies the constraint conditions cannot be obtained, the weight λ of the evaluation function regarding the rate of change of the manipulated variable Δu is changed, and the solution is calculated again.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the technique of Patent Document 1, it is necessary to transform the constraint conditions for the manipulated variable u, the rate of change of the manipulated variable Δu, the controlled variable y, and the rate of change of the controlled variable Δy into constraint conditions that constrain the rate of change of the manipulated variable Δu, and it is not general-purpose. Further, since the constraint conditions are aggregated into the rate of change of the manipulated variable Δu and the weight λ of the rate of change of the manipulated variable Δu is changed, the behaviors of the manipulated variable u, the rate of change of the manipulated variable Δu, the controlled variable y, and the rate of change of the controlled variable Δy cannot be sufficiently managed.
[0005] Therefore, an object of this disclosure is to provide an optimal arithmetic unit that can evaluate each constrained item constrained by each constraint condition and calculate an optimal value that satisfies the constraint conditions for an optimization problem with constraint conditions.
Means for Solving the Problems
[0006] The first optimal arithmetic unit according to this disclosure is The system includes an optimal value calculation unit that solves an optimization problem having one or more set constraints that constrain the constrained items, which are items of the input variables or the state variables, by upper or lower limits, by repeatedly performing an optimal value candidate calculation to calculate candidate optimal values for the input variables and the state variables until the set number of constraints are satisfied, and then calculates the optimal values for the input variables and the state variables at each time point in the forecast period based on the candidate optimal values. After each of the optimal value candidate calculations is completed, if any of the constraints are not met, the optimal value calculation unit changes the weights related to the constrained items that are constrained by the unmet constraints in a direction that satisfies the constraints.
[0007] The second optimal computing device relating to this disclosure is The system includes an optimal value calculation unit that calculates candidate optimal values for the input variables and state variables at each point in the prediction period based on the candidate optimal values. This unit uses a state equation that calculates state variables at each point in the prediction period using input variables at each point in the prediction period as input, an evaluation function that weights and evaluates the input variables and state variables, and relaxed constraints obtained by relaxing one or more set constraint conditions that constrain constrained items, which are items of the input variables or state variables, by upper or lower limits using a slack variable. The unit repeatedly performs an optimal value candidate calculation to calculate candidate optimal values for the input variables and state variables until the slack variable falls below a threshold, and then calculates the optimal values for the input variables and state variables at each point in the prediction period based on the candidate optimal values. The optimal value calculation unit, in the relaxed constraint conditions, adds or subtracts the slack variable to each of the constrained items of each constraint condition in order to relax each of the constraint conditions, and then constrains each of the constrained items to which the slack variable has been added or subtracted by the upper limit or the lower limit. The input variable evaluated by the evaluation function includes the slack variable, After each of the aforementioned optimal value candidate calculations is completed, if the slack variable exceeds the threshold, the weight for the slack variable is changed in a direction that decreases the slack variable. [Effects of the Invention]
[0008] According to the first optimal calculation device relating to this disclosure, after each optimal value candidate calculation is completed, the weights related to the constrained items that are constrained by the unsatisfied constraints are changed in the direction that the constraints are satisfied. This allows the candidate for the optimal value and the candidate for the optimal value of the state variable to be changed in the direction that the constraints are satisfied in the next optimal value candidate calculation. Therefore, it is possible to evaluate each constrained item constrained by each constraint and calculate the optimal value that satisfies the constraints. Furthermore, the behavior of each constrained item can be individually managed by each constraint.
[0009] According to the second optimal calculation device of this disclosure, after each optimal value candidate calculation is completed, the weights of the slack variables are changed in a direction that reduces the slack variables that relax the constraint condition of the set number. This allows the candidate optimal values for the input variables and the candidate optimal values for the state variables to be changed in a direction that reduces the slack variables in the next optimal value candidate calculation. Therefore, even when using slack variables, it is possible to evaluate each constrained item that is constrained by each constraint condition and calculate the optimal value that satisfies the constraint condition. Furthermore, the behavior of each constrained item can be individually managed by each constraint condition. [Brief explanation of the drawing]
[0010] [Figure 1] This is a schematic block diagram of a vehicle control device and vehicle system incorporating the optimal calculation device according to Embodiment 1. [Figure 2] This is a hardware configuration diagram of the vehicle control device according to Embodiment 1. [Figure 3] This is a hardware configuration diagram of another example of the vehicle control device according to Embodiment 1. [Figure 4] This is a diagram illustrating the change amount calculation map according to Embodiment 1. [Figure 5] This is a diagram illustrating the coordinate system of the vehicle according to Embodiment 1. [Figure 6] This is a flowchart illustrating the processing of the optimal calculation device according to Embodiment 1. [Figure 7] This is a diagram illustrating the slack variables according to Embodiment 2. [Figure 8] This is a flowchart illustrating the processing of the optimal calculation device according to Embodiment 2. [Modes for carrying out the invention]
[0011] 1. Embodiment 1 The optimal calculation device according to Embodiment 1 will be described with reference to the drawings. In this embodiment, the optimal calculation device is mounted on the vehicle and performs optimal calculations for controlling the vehicle. The optimal calculation device is incorporated into the vehicle control device 50. The vehicle system 1 and the vehicle control device 50 are mounted on the vehicle.
[0012] As shown in Figure 1, the vehicle system 1 includes a vehicle state detection device 31, a surrounding area monitoring device 32, a position detection device 33, a map information database 34, a wireless communication device 35, a vehicle control device 50, a drive control device 36, a power unit 8, an electric steering device 7, and an electric brake device 9, etc.
[0013] The vehicle state detection device 31 is a detection device that detects the driving state of the vehicle. The vehicle speed V, acceleration α, roll angular velocity, pitch angular velocity, and yaw angular velocity γ of the vehicle are detected as part of the vehicle's driving state. For example, the vehicle state detection device 31 may be equipped with three-axis angular velocity sensors for detecting the roll angular velocity, pitch angular velocity, and yaw angular velocity acting on the vehicle, an acceleration sensor, and a speed sensor for detecting the rotational speed of the wheels. The vehicle speed may also be detected by other methods, such as integrating the acceleration.
[0014] The peripheral monitoring device 32 is a device such as a camera or radar that monitors the periphery of the vehicle. For the radar, millimeter-wave radar, lidar, ultrasonic radar, etc. are used. The wireless communication device 35 performs wireless communication with a base station using a cellular wireless communication standard such as 4G or 5G.
[0015] The position detection device 33 is a device that detects the current position (latitude, longitude, altitude) of the host vehicle, and a GPS antenna or the like that receives signals output from artificial satellites such as GNSS (Global Navigation Satellite System) is used. Note that for the detection of the current position of the host vehicle, various methods such as a method using the running lane number of the host vehicle, a map matching method, a dead reckoning method, and a method using detection information around the host vehicle may be used.
[0016] The map information database 34 stores road information such as road shape (for example, road position, number of lanes, shape of each lane, road type, speed limit, etc.), signs, signals, etc. The map information database 34 is mainly composed of a storage device. Note that the map information database 34 may be provided in an off-vehicle server connected to a network, and the vehicle control device 50 may acquire necessary road information from the off-vehicle server via the wireless communication device 35.
[0017] As the drive control device 36, a power control device, a brake control device, an automatic steering control device, a light control device, etc. are provided. The power control device controls the output of the power unit 8 such as an internal combustion engine or a motor. The brake control device controls the braking operation of the electric brake device 9. The automatic steering control device controls the electric steering device 7. The light control device controls the direction indicator, hazard lamp, etc.
[0018] 1-1. Vehicle control device 50 The vehicle control device 50 includes functional units such as an information acquisition unit 51, a target setting unit 52, an optimal value calculation unit 53, and a control unit 54. Each function of the vehicle control device 50 is realized by the processing circuits provided within the vehicle control device 50. Specifically, as shown in Figure 2, the vehicle control device 50 includes a arithmetic processing unit 90 such as a CPU (Central Processing Unit), a storage device 91, and an input / output device 92 that inputs and outputs external signals to and from the arithmetic processing unit 90.
[0019] The arithmetic processing unit 90 may include an ASIC (Application Specific Integrated Circuit), an IC (Integrated Circuit), a DSP (Digital Signal Processor), an FPGA (Field Programmable Gate Array), a GPU (Graphics Processing Unit), an AI (Artificial Intelligence) chip, various logic circuits, and various signal processing circuits. Furthermore, multiple arithmetic processing units 90 of the same or different types may be provided, with each processing unit being assigned to a specific task. The storage device 91 may include various storage devices such as RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EEPROM (Electrically Erasable Programmable Read Only Memory), and hard disks.
[0020] The input / output device 92 is equipped with a communication device, an A / D converter, input / output ports, a drive circuit, etc. The input / output device 92 is connected to the vehicle status detection device 31, the surrounding monitoring device 32, the position detection device 33, the map information database 34, the wireless communication device 35, and the drive control device 36, etc., and communicates with these devices.
[0021] The functions of each functional unit 51 to 54 of the vehicle control device 50 are realized by the arithmetic processing unit 90 executing software (programs) stored in the storage device 91 and cooperating with other hardware of the vehicle control device 50, such as the storage device 91 and the input / output device 92. The setting data used by each functional unit 51 to 54 is stored in the storage device 91, such as an EEPROM, as part of the software (programs).
[0022] Alternatively, the vehicle control device 50 may be equipped with dedicated hardware 93 as a processing circuit, as shown in Figure 3, such as a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, a GPU, an AI chip, or a circuit combining these. The functions of the vehicle control device 50 will be described in detail below.
[0023] 1-1-1. Information acquisition section 51 The information acquisition unit 51 acquires various information regarding the state variable x and input variable u used by the optimal value calculation unit 53.
[0024] In this embodiment, the information acquisition unit 51 acquires information about the surrounding conditions of the vehicle. For example, the information acquisition unit 51 detects other vehicles and other objects present around the vehicle. Based on the detection information acquired from the surrounding monitoring device 32 and the vehicle's position information acquired from the position detection device 33, the information acquisition unit 51 detects the position, direction of movement, and speed of other vehicles. In addition to other vehicles, the information acquisition unit 51 also detects lane shapes such as road markings, obstacles, pedestrians, signs, and other objects.
[0025] Furthermore, the information acquisition unit 51 acquires the driving status of the vehicle. The information acquisition unit 51 acquires the vehicle speed V, acceleration α, roll angular velocity, pitch angular velocity, and yaw angular velocity γ of the vehicle as the driving status of the vehicle from the vehicle state detection device 31. The information acquisition unit 51 also acquires the position and direction of movement of the vehicle based on the position information of the vehicle acquired from the position detection device 33. The information acquisition unit 51 also acquires information on the driving position of the vehicle relative to the lane based on the shape of the lane acquired from the information acquisition unit 51. In addition, the information acquisition unit 51 acquires driving operation status such as steering angle δ, output of power source such as internal combustion engine, and brake operation status from the control unit 54.
[0026] 1-1-2. Goal Setting Section 52 The target setting unit 52 sets the target value of the state variable x used in the optimal value calculation unit 53 (in this example, the target value yref of the output variable).
[0027] In this embodiment, the target setting unit 52 sets the target driving state for the vehicle. The target setting unit 52 calculates the target driving state in accordance with the conditions of other vehicles, road shape, obstacles, and pedestrians in the vicinity of the vehicle detected by the information acquisition unit 51.
[0028] For example, when lateral control, which will be described later, is performed, the target lateral driving position is calculated as the target driving state. The target lateral driving position is set to the target lateral driving range for each longitudinal position Y. Examples of lateral control include lane keeping control, obstacle avoidance control, and lane change control.
[0029] For example, when longitudinal control, which will be described later, is performed, longitudinal speed, distance between vehicles, etc., are calculated as the target driving state. Examples of longitudinal control include cruise control, distance control, and preceding vehicle following control.
[0030] For example, when both longitudinal and lateral control are performed, a target trajectory is calculated as the target driving state. The target trajectory is a time-series driving plan that includes the vehicle's position, direction of travel, and speed at each point in the future. Various known methods can be used to calculate the target trajectory. Note that longitudinal and lateral control may simply be performed simultaneously.
[0031] 1-1-3. Control Unit 54 The control unit 54 controls the controlled object (in this example, the vehicle itself) based on the target value of the controlled variable set by the optimal value calculation unit 53, which will be described later.
[0032] In this embodiment, when both longitudinal and lateral control are performed, the target values of the controlled variables are set to the target values of the steering angle δ and the acceleration α at each time point. When lateral control is performed, the target value of the controlled variable is set to the target value of the steering angle δ at each time point. When longitudinal control is performed, the target value of the controlled variable is set to the target value of the acceleration α at each time point. Other parameters may be set as the target values of the controlled variables.
[0033] The control unit 54 calculates command values for the power control device and the brake control device based on the acceleration α at each point in time. The control unit 54 also calculates command values for the automatic steering control device based on the target value of the steering angle δ at each point in time.
[0034] The power control device controls the output of the power unit 8, such as the internal combustion engine or motor, according to the command value. The brake control device controls the braking operation of the electric brake device 9 according to the command value. The automatic steering control device controls the electric steering device 7 according to the command value.
[0035] 1-1-4. Optimal value calculation unit 53 The optimal value calculation unit 53 uses a state equation that calculates the state variable x(k) at each time point k of the prediction period using the input variable u(k) at each time point k as input. It uses an evaluation function that evaluates the input variable u and the state variable x with weights, and constraints g of one or more Dall that constrain the constrained items, which are items of the input variable u or the state variable x, by an upper or lower limit. The unit repeatedly performs optimal value candidate calculations to calculate candidate optimal values utmp(k) for the input variable and candidate optimal values xtmp(k) for the state variable at each time point k until the constraints g of Dall are satisfied. Based on the candidate optimal values utmp(k) for the input variable and candidate optimal values xtmp(k) for the state variable at each time point k, the unit calculates the optimal value u*(k) for the input variable and the optimal value x*(k) for the state variable at each time point k of the prediction period. The optimal value calculation unit 53 sets target values for the control variables at each time point k of the prediction period based on the optimal values u*(k) of the input variables and the optimal values x*(k) of the state variables at each time point k of the prediction period. The optimal value calculation unit 53 calculates the optimal values by executing the optimal value calculation process for each calculation cycle.
[0036] The optimal value calculation unit 53 sets the initial value u0(k) of the input variable u(k) at each time point k of the prediction period. The optimal value calculation unit 53 updates the candidate optimal value utmp(k) of the input variable at each time point k from the initial value u0(k) with each iteration of the optimal value candidate calculation, just as if solving an optimization problem.
[0037] <State equation for state variables> As shown in the following equation, the state equation for the state variable x is expressed as a function f in which the time derivative dx / dt(k) of the state variable at each time point k is input to the input variable u(k) and the state variable x(k). If there are multiple state variables x, x becomes a vector, and if there are multiple input variables u, u becomes a vector. Here, k represents each time point in the prediction period, where k=0 is the present, and k=N is the end of the prediction period, called the horizon.
number
[0038] As shown in the following equation, the state variable x(k+1) at the next time point is calculated by adding the value obtained by multiplying the time derivative of the state variable at the current time, dx(k) / dt, by the time interval ΔT between time points in the prediction period, to the state variable x(k) at the current time point. Note that various calculation methods such as the Runge-Kutta method may be used instead of the Euler method as shown in equation (2).
number
[0039] The state variable x(0) at k=0 is set to the detected current state variable. The input variable u(k) at each time point k(k=0, ..., N) during the prediction period becomes the initial value or the updated value of the previous optimal value candidate calculation. As time point k is increased by one from 0 to N, the state variable x(k+1) for the next time point k+1 is calculated sequentially using equations (1) and (2), based on the input variable u(k) and state variable x(k) at the current time point k.
[0040] <Optimization Problem> Consider a general optimization problem like the following:
number
[0041] Here, J is an evaluation function that evaluates the input variable u(k) and the state variable x(k). In this embodiment, the evaluation function J is a quadratic expression. g is a constraint that constrains the input variable u(k) and the state variable x(k), and there exists a constraint g of a set number Dall. That is, we calculate the input variable u that minimizes the evaluation function J while satisfying the constraint of a set number Dall. Alternatively, we can invert the sign of the evaluation function and treat this as a maximization problem to maximize the evaluation function.
[0042] For example, when an input variable u(k) is restricted by an upper limit value uH, and when an input variable u(k) is restricted by a lower limit value uL, the constraint condition g is as follows:
number
[0043] In this embodiment, the following quadratic equation is used as the evaluation function J. The evaluation function J increases as the difference between the output variable y and the target value yref of the output variable decreases, and increases as the input variable u decreases (in this example, the value decreases).
number
[0044] Here, k (k=0, 1, ..., N-1, N) is the time number representing each point in the forecast period, where k=0 is the present and k=N is the final forecast point. The time number k increases by one from 0 to N for every time interval ΔT. Therefore, k × ΔT is the elapsed time from the present for each time point k. C is the vector that extracts the output variable y from the state variable x. y(k) is the vector of the output variables of the state equation at each time point k. yref(k) is the vector of the target values of the output variables at each time point k, P is the weight of the deviation between the output variable y(N) and the target value yref(N) of the output variable at the final forecast point (k=N), and Q is the weight of the deviation between the output variable y(k) and the target value yref(k) of the output variable at each future time point (k=1, ..., N-1) excluding the final forecast point. The weights P and Q evaluate the deviation of the output variable from the target value at each time point. R is the weight for the input variable u(k) at each future time point (k=1, ..., N-1), excluding the final prediction time point. The weight R term ensures that the input variable u does not become too large. If there are multiple output variables y, weights P and Q become diagonal matrices, with a weight assigned to each term of the output variable y. Similarly, if there are multiple input variables u, weight R becomes a diagonal matrix, with a weight assigned to each term of the input variable u. By adjusting the size of each term of weights P, Q, and R, the weighting of the evaluation for each term of the output variable y and input variable u changes, and the optimal value u* of the input variable and the optimal value x* of the state variable are changed. Each weight is set to a positive value.
[0045] <Introducing slack variables into constraints> In this embodiment, the optimal value calculation unit 53 adds or subtracts (in this example, subtracts) a slack variable s to each constrained item in order to relax each constraint condition g of the number of settings Dall, as shown in the following equation, and then constrains each constrained item to which the slack variable s has been added or subtracted by an upper or lower limit. Then, in each optimal value candidate calculation, the optimal value calculation unit 53 sets the smallest slack variable s greater than or equal to 0 that satisfies the constraint condition g of the number of settings Dall. In addition, in this embodiment, the optimal value calculation unit 53 sets a slack variable s(k) for each time point k of the prediction period.
number
[0046] Here, in the constraint g of the number of settings Dall, the constraint that needs to be relaxed the most (for example, i=b), that is, the constraint g in which the minimum slack variable s required to satisfy constraint g is largest, is transformed into an equality constraint as shown in the following equation. In other words, by introducing the slack variable s, the inequality constraint is transformed into an equality constraint in the constraint that needs to be relaxed the most, thereby reducing the computational load of solving the optimization problem.
number
[0047] Constrained optimization problems using slack variables s can be solved using various known methods. Note that constrained optimization problems without slack variables s may also be solved.
[0048] <Changes in weights when constraints are not met> After each optimal value candidate calculation is completed, if any of the constraint conditions g are not satisfied, the optimal value calculation unit 53 changes the weights related to the constrained items constrained by the unsatisfied constraint condition g in a direction that satisfies the constraint condition g.
[0049] When a slack variable s is introduced, it is set such that all constraints g are satisfied. Therefore, the constraint g whose satisfaction is determined is the constraint g before the slack variable s shown in equations (3) and (4) is added or subtracted.
[0050] With this configuration, after each optimal value candidate calculation is completed, the weights associated with the constrained items that are constrained by the unsatisfied constraint condition g are changed in the direction that the constraint condition is satisfied. This indirectly changes the candidate optimal value utmp and the candidate optimal value xtmp for the state variable in the direction that constraint condition g is satisfied in the next optimal value candidate calculation. Therefore, it is possible to individually evaluate the constrained items constrained by each constraint condition and calculate the optimal value that satisfies the constraint condition. In addition, the behavior of the constrained items can be individually managed by each constraint condition.
[0051] After each optimal value candidate calculation is completed, if the constraint conditions that constrain the constrained item of the input variable u are not satisfied, the optimal value calculation unit 53 changes the weights related to the constrained item of the input variable u that are constrained by the unsatisfied constraint conditions in a direction that will satisfy the constraint conditions.
[0052] With this configuration, after each optimal value candidate calculation is completed, the weight of the input variable u is changed in a direction that satisfies the constraint condition of the input variable u. This allows the candidate optimal values utmp for the input variable and xtmp for the state variable to be changed in a direction that satisfies the constraint condition g in the next optimal value candidate calculation.
[0053] For example, if the constraint is not met because the absolute value of the constrained item of the input variable u is large, the number of weight R items multiplied by the constrained item of the input variable u that is not met in the evaluation function of equation (5) is increased. This will cause the absolute value of the constrained item of the input variable u to decrease in the next optimal value candidate calculation.
[0054] After each optimal value candidate calculation is completed, if the constraint conditions that constrain the constrained item of the state variable x are not satisfied, the optimal value calculation unit 53 changes the weights related to the constrained item of the state variable x that are constrained by the unsatisfied constraint conditions in a direction that will satisfy the constraint conditions.
[0055] With this configuration, after each optimal value candidate calculation is completed, the weights for the state variable x are changed in a direction that satisfies the constraints of the state variable x. This allows the candidate optimal values for the input variable utmp and the state variable xtmp to be changed in a direction that satisfies the state variable x in the next optimal value candidate calculation.
[0056] Basically, the smaller the absolute value of the deviation between the item of the output variable y to which the constraint of the state variable x is set, and the item of the corresponding output variable's target value yref, the easier it is to satisfy the constraint. Therefore, if the constraint of the state variable x is not satisfied, the weights Q and P in the evaluation function of equation (5), which are multiplied by the target value deviation of the item of the output variable y to which the constraint of the state variable x is set, are increased. As a result, in the next optimal value candidate calculation, the item of the output variable y to which the constraint of the state variable x is set acts to move closer to the item of the corresponding output variable's target value yref, and the constraint of the state variable x acts to satisfy the constraint.
[0057] After each optimal value candidate calculation is completed, if the constraint conditions are not met, the optimal value calculation unit 53 changes the weights related to the unmet constraint items only in the same specific positive or negative direction that satisfies the constraint conditions. The optimal value calculation unit 53 also resets each weight to its initial value at the start of each calculation cycle.
[0058] For example, if the weights are changed in the opposite direction to the constraint that is not satisfied, and changes are made in both the specific direction and the opposite direction, the number of calculations for the optimal value candidate until the constraint is satisfied increases, and the computational load increases. With the above configuration, the weights related to the unsatisfied constrained items are changed only in the same specific positive or negative direction where the constraint is satisfied, so the increase in the number of calculations for the optimal value candidate until the constraint is satisfied can be suppressed.
[0059] <Changes in weight according to excess amount> After each optimal value candidate calculation is completed, if the constraint conditions are not met, the optimal value calculation unit 53 changes the weights related to the constrained items that are constrained by the unmet constraint conditions based on the amount of the constrained items exceeding the upper or lower limit.
[0060] This configuration allows for appropriate weight changes in response to the excess amount. For example, as the absolute value of the excess increases, the increase in weight is increased. This allows for a larger decrease in the absolute value of the excess in the next optimal value candidate calculation, reducing the number of iterations of the optimal value candidate calculation until the constraints are met, and thus reducing the computational load.
[0061] For example, the optimal value calculation unit 53 uses a pre-set change calculation formula, with the excess amount as the input variable and the change in weight as the output variable, to calculate the change in weight corresponding to the current excess amount. Based on this change in weight, it changes the weights used in the next optimal value candidate calculation. The change calculation formula is set for each constraint condition.
[0062] For example, the optimal value calculation unit 53, for a certain constraint condition g, uses the following change calculation formula to calculate the change amount ΔR of the weight multiplied by the input variable u based on the excess amount Δu of the input variable u from the upper limit uH or the lower limit uL, and changes the weight R used in the next optimal value candidate calculation based on the change amount ΔR. Here, A is a positive coefficient.
number
[0063] Alternatively, the optimal value calculation unit 53 refers to a change calculation map in which the relationship between the excess amount and the change in weight is predetermined, calculates the change in weight corresponding to the current excess amount, and changes the weight used in the next optimal value candidate calculation based on the change in weight. The change calculation formula is set for each constraint condition.
[0064] For example, the optimal value calculation unit 53, for a certain constraint condition g, refers to the change amount calculation map shown in Figure 4 and calculates the change amount ΔR of the weight multiplied by the input variable u based on the excess amount Δu of the input variable u from the upper limit uH or lower limit uL. Based on the change amount ΔR of the weight, it changes the weight R used in the next optimal value candidate calculation.
[0065] <Setting the weights for each time point k> As shown in the following equation, the optimal value calculation unit 53 may set a weight for each time point k of the prediction period in the evaluation function.
number
[0066] Furthermore, after the completion of each optimal value candidate calculation, if the constraint condition g is not satisfied at a certain time k in the prediction period, the optimal value calculation unit 53 may change the weight of the time k in which the constraint condition is not satisfied, which is related to the constrained item constrained by the unsatisfied constraint condition g, in the direction in which the constraint condition g is satisfied (in this example, the positive direction).
[0067] This configuration allows us to precisely change the candidate optimal value for time k where the constraint is not met by altering the weight of that time k, thereby suppressing unnecessary influence on the calculation of candidate optimal values for other time k where the constraint is met. The method for changing the weight of each time k is omitted here, as it simply requires the use of the aforementioned methods for each time k.
[0068] <When applied to vehicle control> In this embodiment, the optimal value calculation unit 53 uses an input variable u related to vehicle control and a state variable x representing the vehicle's behavior to set a target value for the controlled variable at each point k in the prediction period, based on the optimal value u*(k) of the input variable and the optimal value x*(k) of the state variable at each point k in the prediction period. The optimal value calculation unit 53 also sets constraints on the input variable u, state variable x, state equation, target value of the controlled variable, and number of settings based on the control content of the vehicle control. The optimal value calculation unit 53 also sets the output variable y of the state equation and the target value yref of the output variable based on the control content of the vehicle control. The state equation used is that of the vehicle model.
[0069] In this embodiment, the vehicle control is configured to selectively execute either or both of the following: longitudinal control, which controls the vehicle's behavior in the longitudinal direction, and lateral control, which controls the vehicle's behavior in the lateral direction. For example, when longitudinal and lateral control are performed, the state equation of the vehicle model in equation (10) is used; when lateral control is performed, the state equation of the vehicle model in equation (13) is used; and when longitudinal control is performed, the state equation of the vehicle model in equation (16) is used. In equations (10) and (13), a two-wheeled vehicle model is used. The state equation of the vehicle model is expressed as a differential equation for each state variable representing the vehicle's behavior. Various known state equations may be used as the state equation of the vehicle model.
[0070] Even when lateral control is performed, the control content of the lateral control may be changed. For example, the control content of lateral control may include lane keeping control, obstacle avoidance control, lane change control, etc. Based on the control content of the lateral control, a set number of constraint conditions are set. Based on the control content of the lateral control, the input variable u, state variable x, state equation, target value of the controlled quantity, output variable y of the state equation, and target value yref of the output variable may also be set.
[0071] Even when longitudinal control is performed, the control content of the longitudinal control may be changed. For example, the control content of the longitudinal control may include cruise control, distance control, and preceding vehicle follow control. Based on the control content of the longitudinal control, a set number of constraint conditions are set. Based on the control content of the longitudinal control, the input variable u, state variable x, state equation, target value of the controlled quantity, output variable y of the state equation, and target value yref of the output variable may also be set.
[0072] Even when longitudinal and lateral control is performed, the control content of longitudinal and lateral control may be changed. For example, the control content of longitudinal and lateral control may include control to follow a target travel trajectory, obstacle avoidance control, or simultaneous execution of the longitudinal and lateral control described above. Based on the control content of longitudinal and lateral control, a set number of constraint conditions are set. Based on the control content of longitudinal and lateral control, the input variable u, state variable x, state equation, target value of the controlled quantity, output variable y of the state equation, and target value yref of the output variable may also be set.
[0073] <Vehicle model for longitudinal and lateral control> The following equations show the state equations for a vehicle model when longitudinal and lateral control is performed. The state equations may be modified depending on the control content of longitudinal and lateral control.
number
[0074] Here, the dot sign above each variable on the left side indicates that it is the time derivative of each state variable. As state variables x, Y represents the longitudinal position of the vehicle, X represents the lateral position of the vehicle, θ is the longitudinal tilt of the vehicle, β is the sideslip angle of the vehicle's center of gravity, γ is the yaw angular velocity of the vehicle, δ is the steering angle of the vehicle's wheels, V is the vehicle's velocity, and α is the vehicle's acceleration.
[0075] The input variable u is such that j is the vehicle's jerk and ω is the vehicle's steering angular velocity.
[0076] I is the yaw moment of inertia of the vehicle, M is the mass of the vehicle, Lf is the distance between the vehicle's center of gravity and the front axle, Lr is the distance between the vehicle's center of gravity and the rear axle. Yf is the cornering force of the front wheels, Yr is the cornering force of the rear wheels, Cf is the cornering stiffness of the front tires, and Cr is the cornering stiffness of the rear tires.
[0077] The equation of state is expressed in the vehicle's coordinate system X, Y, relative to the vehicle's current position. As shown in Figure 5, X is the lateral direction of the vehicle, and Y is the longitudinal direction of the vehicle. Alternatively, a coordinate system based on the target trajectory or lane may be used instead of the vehicle's coordinate system.
[0078] <Evaluation functions for longitudinal and lateral control> When performing longitudinal and lateral control, the following quadratic equation is used as the evaluation function J to evaluate the desirability of the vehicle behavior. The evaluation function J is evaluated more highly as the difference between the target driving state (target driving trajectory) and the predicted driving state decreases (in this example, the value decreases). Note that the evaluation function J may be changed depending on the control content of longitudinal and lateral control.
number
[0079] The output variable y is set to the vehicle's longitudinal position Y, lateral position X, longitudinal tilt θ, and vehicle speed V from the state variable x. The target value yref of the output variable is a target value set by the target setting unit 52, and is set, for example, based on a target driving trajectory (a time-series driving plan including the vehicle's position, direction of travel, and speed at each point in the future).
[0080] The target values of the controlled variables at each time point k are set to the steering angle δ*(k) and acceleration α*(k) included in the optimal value x*(k) of the state variable at each time point k after the optimization problem has been solved.
[0081] <Constraints on the number of settings for longitudinal and lateral control> The following equation shows the constraints on the number of settings when performing longitudinal and lateral control. In this example, the number of settings Dall is set to 6. The first constraint g1 limits the acceleration α to a positive upper limit αH, and the second constraint g2 limits the acceleration α to a negative lower limit αL. This is to improve ride comfort. The third constraint g3 limits the steering angular velocity ω to a positive upper limit ωH, and the fourth constraint g4 limits the steering angular velocity ω to a negative lower limit ωL. This is to improve ride comfort. Furthermore, the fifth constraint g5 limits the lateral position X to a positive upper limit XH, and the sixth constraint g6 limits the lateral position X to a negative lower limit XL. This is to prevent deviation from the planned driving range. If the target trajectory is curved, the upper limit XH and lower limit XL at each point in time may be changed according to the target trajectory at each point in time. The constraints may also be changed according to the control content of the longitudinal and lateral control. For example, any number of constraints on lateral position X and longitudinal position Y may be set to avoid entering a no-entry zone or contact with an obstacle. In addition, the constraint on acceleration α may be removed, and the constraint on steering angular velocity ω may be removed. In addition, a constraint on velocity V may be added, a constraint on jerk j may be added, and a constraint on steering angle δ may be added.
number
[0082] <Vehicle model for lateral control> The following equation shows the state equation for a vehicle model when lateral control is performed. In equation (13), the rows 7 and 8 of the state equation in equation (10), which contain the time derivatives of the vehicle's velocity V and acceleration α, have been removed. The vehicle's velocity V(k) at each time point k should be set to the vehicle's velocity V(0) at the current time point k=0. The steering angular velocity ω(k) of the vehicle at each time point k is set as the input variable u(k) for each time point k. Note that the state equations and other related equations may be modified depending on the control content of the lateral control.
number
[0083] <Evaluation function for lateral control> When performing lateral control, the following quadratic equation is used as the evaluation function J to evaluate the desirability of the vehicle behavior. The evaluation function J is evaluated more highly as the difference between the target driving state (target lateral position) and the predicted driving state decreases (in this example, the value decreases). Note that the evaluation function J may be changed depending on the control content of the lateral control.
number
[0084] The output variable y is set to the lateral position X of the vehicle, which is part of the state variable x. The target value yref of the output variable is the target value Xref of the lateral position of the vehicle, which is set by the target setting unit 52. The target value of the control variable at each time point k is set to the steering angle δ*(k) included in the optimal value x*(k) of the state variable at each time point k after the optimization problem has been solved.
[0085] <Constraints on the number of settings for lateral control> The following equation shows the constraints on the number of settings when performing longitudinal and lateral control. In this example, the number of settings Dall=4. The first constraint g1 limits the steering angular velocity ω to a positive upper limit ωH, and the second constraint g2 limits the steering angular velocity ω to a negative lower limit ωL. This is to improve ride comfort. The third constraint g3 limits the lateral position X to a positive upper limit XH, and the fourth constraint g4 limits the lateral position X to a negative lower limit XL. Note that the constraints may be changed depending on the control content of the lateral control. For example, when performing lane keeping control, the upper limit XH and lower limit XL for the lateral direction at each time point may be set according to the shape of the lane. Alternatively, any number of constraints on the lateral position X and longitudinal position Y may be set to avoid entering a no-entry zone or contact with an obstacle. The constraint on the steering angular velocity ω may also be removed. Additionally, constraints on the steering angle δ may be added.
number
[0086] <Vehicle model for longitudinal control> The following equation shows the state equation for a vehicle model when longitudinal control is performed. In equation (16), all lines except those related to longitudinal behavior have been removed from equation (10). The vehicle's velocity V(k) at each time point k should be set to the vehicle's velocity V(0) at the current time point k=0. The input variable u(k) at each time point k is set to the vehicle's jerk j(k) at each time point k. Note that the state equations, etc., may be changed depending on the control content of the longitudinal control.
number
[0087] <Evaluation function for longitudinal control> When performing longitudinal control, the following quadratic equation is used as the evaluation function J to evaluate the desirability of the vehicle behavior. The evaluation function J is evaluated more highly as the difference between the target driving state (target position in the longitudinal direction) and the predicted driving state decreases (in this example, the value decreases). Note that the evaluation function J may be changed depending on the control content of the longitudinal control.
number
[0088] The output variable y is set to the longitudinal position Y and the vehicle's velocity V from the state variable x. The target value yref of the output variable is the target value Yref for the longitudinal position and the target value Vref for the vehicle's velocity, set by the target setting unit 52. The target value of the controlled variable at each time point k is set to the acceleration α*(k) included in the optimal value x*(k) of the state variable at each time point k after the optimization problem has been solved.
[0089] <Constraints on the number of settings for forward / reverse direction control> The following equation shows the constraints on the number of settings when performing longitudinal control. In this example, the number of settings Dall=4. The first constraint g1 limits the acceleration α to a positive upper limit αH, and the second constraint g2 limits the acceleration α to a negative lower limit αL. This is to improve ride comfort. The third constraint g3 limits the longitudinal position Y to a positive upper limit YH, and the fourth constraint g4 limits the longitudinal position Y to a negative lower limit YL. For example, this is used to maintain the distance between vehicles in front and behind. The upper and lower limits YH and YL in the longitudinal direction may change at each point in time. The constraints may also change depending on the control content of the longitudinal control. For example, one or both of the constraints that limit the upper limit YH and the lower limit YL in the longitudinal direction may be deleted. The constraint on acceleration α may also be deleted. Additionally, constraints on velocity V and jerk j may be added.
number
[0090] <Flowchart> Referring to the flowchart in Figure 6, the general processing of the vehicle control device 50 (optimal calculation unit) will be explained. The processing in Figure 6 is executed at each calculation cycle.
[0091] In step S01, as described above, the information acquisition unit 51 acquires various information regarding the state variable x and input variable u used by the optimal value calculation unit 53. In this embodiment, various information related to vehicle control is acquired.
[0092] In step S02, as described above, the target setting unit 52 sets the target value of the state variable x used by the optimal value calculation unit 53 (in this example, the target value yref of the output variable). In this embodiment, the target value of the state variable x (the target value yref of the output variable) is set according to the content of the vehicle control.
[0093] In step S03, as described above, the optimal value calculation unit 53 uses a state equation that calculates the state variable x(k) at each time point k of the prediction period using the input variable u(k) at each time point k of the prediction period as input, and performs an optimal value candidate calculation to solve an optimization problem that has an evaluation function that evaluates the input variable u and the state variable x with weights, and constraint conditions g of 1 or more Dall that constrain the constrained items, which are items of the input variable u or the state variable x, by an upper or lower limit. The calculation calculates candidate optimal values utmp(k) for the input variable and xtmp(k) for the state variable at each time point k.
[0094] In step S04, the optimal value calculation unit 53 determines whether the constraints g of the set number Dall are satisfied in the optimal value candidate calculation performed in step S03. If any of the constraints g are not satisfied, the unit proceeds to step S05. If all of the constraints g are satisfied, the unit proceeds to step S06.
[0095] In step S05, as described above, the optimal value calculation unit 53 changes the weights related to the constrained items that are constrained by the unsatisfied constraint condition g in a direction that satisfies the constraint condition g. Then, the optimal value calculation unit 53 returns to step S03 and performs the optimal value candidate calculation again using the evaluation function with the changed weights.
[0096] On the other hand, in step S06, as described above, the optimal value calculation unit 53 sets target values for the control variables at each time point k of the prediction period based on the optimal values u*(k) of the input variables and the optimal values x*(k) of the state variables.
[0097] Subsequently, in step S07, as described above, the control unit 54 controls the controlled object (in this example, the vehicle itself) based on the target value of the controlled amount at each time point k of the prediction period, which is set by the optimal value calculation unit 53 described later.
[0098] 2. Embodiment 2 The optimal calculation device and vehicle control device 50 according to Embodiment 2 will be described with reference to the drawings. The same components as in Embodiment 1 will not be described. The basic configuration of the optimal calculation device and vehicle control device 50 according to this embodiment is the same as in Embodiment 1, but some of the processing of the optimal value calculation unit 53 differs from that of Embodiment 1.
[0099] The optimal value calculation unit 53 uses a state equation that calculates the state variable x(k) at each time point k of the prediction period using the input variable u(k) at each time point k of the prediction period as input. It uses an evaluation function that evaluates the input variable u and the state variable x with weights, and a constraint condition g of one or more settings Dall that constrains the constrained items, which are items of the input variable u or the state variable x, by an upper or lower limit. The unit repeatedly performs an optimal value candidate calculation to calculate candidate optimal values utmp(k) for the input variable and candidate optimal values xtmp(k) for the state variable at each time point k of the prediction period, until the slack variable s becomes less than or equal to the threshold Ths. The optimal value calculation unit 53 sets target values for the control variable at each time point k of the prediction period based on the optimal values u*(k) of the input variable and the optimal value x*(k) of the state variable at each time point k of the prediction period. The optimal value calculation unit 53 calculates the optimal value by executing the optimal value calculation process at each calculation cycle.
[0100] The optimal value calculation unit 53 sets the initial value u0(k) of the input variable u(k) at each time point k of the prediction period. The optimal value calculation unit 53 updates the candidate optimal value utmp(k) of the input variable at each time point k from the initial value u0(k) with each iteration of the optimal value candidate calculation, just as if solving an optimization problem.
[0101] As explained in Embodiment 1, the optimal value calculation unit 53 adds or subtracts (subtracts in this example) a slack variable s to each constrained item in order to relax each constraint condition g of the number of settings Dall, as shown in the following equation, and then constrains each constrained item to which the slack variable s has been added or subtracted by an upper or lower limit. Then, in each optimal value candidate calculation, the optimal value calculation unit 53 sets the smallest slack variable s greater than or equal to 0 that satisfies the constraint condition g of the number of settings Dall. In addition, in this embodiment, the optimal value calculation unit 53 sets a slack variable s(k) for each time point k of the prediction period.
number
[0102] Here, in the constraint g of the number of settings Dall, the constraint that needs to be relaxed the most (for example, i=b), that is, the constraint g in which the minimum slack variable s required to satisfy constraint g is largest, is transformed into an equality constraint as shown in the following equation. In other words, by introducing the slack variable s, the inequality constraint is transformed into an equality constraint in the constraint that needs to be relaxed the most, thereby reducing the computational load of solving the optimization problem.
number
[0103] For example, when an input variable u(k) is bounded by an upper limit uH, and when an input variable u(k) is bounded by a lower limit uL, the relaxation constraint condition using the slack variable s(k) is given by the following equation.
number
[0104] Optimization problems with relaxed constraints using a slack variable s can be solved using various known methods.
[0105] <Setting the threshold Ths> Figure 7 shows an illustrative diagram of the threshold Ths setting. Figure 7 shows the constraint condition requiring the most relaxation, as explained using equation (20), and illustrates the case where the constrained item is limited by the upper limit. When the slack variable s = 0, the constrained item is less than or equal to the upper limit. When the slack variable s > 0, the constrained item exceeds the upper limit. When the slack variable s = threshold Ths, the constrained item exceeds the upper limit by the threshold Ths, but this is within the acceptable range. When the slack variable s > threshold Ths, the amount by which the constrained item exceeds the upper limit is greater than the threshold Ths, and is unacceptable. The threshold Ths is set in advance, taking into account the tolerance for the upper or lower limit. If the tolerance for the upper or lower limit is 0, the threshold Ths should be set to 0. Even if the slack variable s exceeds the threshold Ths, the optimal value candidate calculation is performed, and the candidate optimal value utmp for the input variable and the candidate optimal value xtmp for the state variable are calculated.
[0106] <Evaluation function including slack variable s> In this embodiment, the input variable u evaluated by the evaluation function J includes a slack variable s, as shown in the following equation. The evaluation function J is a quadratic expression. The evaluation function J increases as the difference between the output variable y and the target value yref of the output variable decreases, and increases as the input variable u decreases (in this example, the value decreases). Furthermore, the weight R multiplied by the input variable u, which includes the slack variable s, is a diagonal matrix, with a weight set for each item of the input variable u, and a dedicated weight Rs for the slack variable s is provided. Each weight is set to a positive value.
number
[0107] <Changes in weights when the slack variable s exceeds the threshold Ths> After each optimal value candidate calculation is completed, if the slack variable s exceeds the threshold Ths, the optimal value calculation unit 53 changes the weight Rs for the slack variable s in a direction that decreases the slack variable s.
[0108] With this configuration, after each optimal value candidate calculation is completed, the weight Rs for the slack variable s decreases in the direction of reducing the slack variable s that relaxes the constraint condition g of the number of settings Dall. This allows the candidate optimal values utmp for the input variable and xtmp for the state variable to be changed in the direction of reducing the slack variable s in the next optimal value candidate calculation. Even when using the slack variable s, the constrained items that are constrained by each constraint condition can be individually evaluated and the optimal value that satisfies the constraint condition can be calculated. Therefore, the behavior of each constrained item can be individually managed by each constraint condition.
[0109] When the slack variable s decreases, the constrained items of the input variable u or state variable x change in the direction of falling below the upper limit or rising above the lower limit. Therefore, if the slack variable s is not less than or equal to the threshold Ths, the weight Rs multiplied by the slack variable s in the evaluation function of equation (22) is increased. As a result, in the next optimal value candidate calculation, the slack variable s acts in the direction of decreasing, and the constrained items of the input variable u or state variable x act in the direction of falling below the upper limit or rising above the lower limit.
[0110] After each optimal value candidate calculation is completed, if the slack variable s exceeds the threshold Ths, the optimal value calculation unit 53 changes the weight Rs for the slack variable s only in the same specific positive or negative direction (in this example, the positive direction) that decreases the slack variable s.
[0111] For example, if the weight is changed in the opposite direction to the increase of the slack variable s, and changes are made in both the specific direction and the opposite direction, the number of calculations for the optimal value candidate calculation until the slack variable s falls below the threshold Ths increases, and the computational load increases. With the above configuration, the weight for the slack variable s is changed only in the same specific direction, either positive or negative, where the slack variable s decreases, so the increase in the number of calculations for the optimal value candidate calculation until the slack variable s falls below the threshold Ths can be suppressed.
[0112] <Changes in weight according to excess amount> After each optimal value candidate calculation is completed, if the slack variable s exceeds the threshold Ths, the optimal value calculation unit 53 changes the weight Rs for the slack variable s based on the excess amount Δs of the slack variable s from the threshold Ths.
[0113] This configuration allows for appropriate adjustment of the weight Rs in response to the excess amount Δs. For example, as the absolute value of the excess amount Δs increases, the increase in the weight Rs, ΔRs, is increased. This allows for a larger decrease in the absolute value of the excess amount Δs in the next optimal value candidate calculation, reducing the number of iterations of the optimal value candidate calculation until the slack variable s falls below the threshold Ths, thereby reducing the computational load.
[0114] For example, the optimal value calculation unit 53 uses a pre-set change calculation formula, with the excess amount Δs as the input variable and the change amount ΔRs of the weights as the output variable, to calculate the change amount ΔRs of the weights corresponding to the current excess amount Δs, and changes the weight Rs used in the next optimal value candidate calculation based on the change amount ΔRs of the weights.
[0115] For example, the optimal value calculation unit 53 uses the following change calculation formula to calculate the change amount ΔRs of the weight multiplied by the slack variable s based on the excess amount Δs of the slack variable s from the threshold Ths, and changes the weight Rs used in the next optimal value candidate calculation based on the change amount ΔRs of the weight. Here, B is a positive coefficient.
number
[0116] Alternatively, the optimal value calculation unit 53 refers to a change calculation map in which the relationship between the excess amount Δs and the change amount ΔRs of the weights is predetermined, calculates the change amount ΔRs of the weights corresponding to the current excess amount Δs, and changes the weight Rs used in the next optimal value candidate calculation based on the change amount ΔRs of the weights.
[0117] <Setting the weights for each time point k> As shown in the following equation, the optimal value calculation unit 53 may set a weight Rs(k) for the slack variable s(k) at each time point k of the prediction period in the evaluation function.
number
[0118] Furthermore, after the completion of each optimal value candidate calculation, if the slack variable s(k) exceeds the threshold Ths at a certain time k in the prediction period, the optimal value calculation unit 53 may change the weight Rs(k) for the slack variable s(k) at the time k where it exceeds the threshold in the direction that decreases the slack variable s(k) (in this example, the positive direction).
[0119] With this configuration, by changing the weight Rs(k) at time k where the slack variable s(k) exceeds the threshold Ths, the candidate for the optimal value at that time k can be precisely changed, and unnecessary influence on the calculation of candidate optimal values at other time k where the slack variable s(k) does not exceed the threshold Ths can be suppressed. The method for changing the weight Rs at each time k can be the same as the method described above, so the explanation is omitted.
[0120] <When applied to vehicle control> Similar to Embodiment 1, the optimal value calculation unit 53 uses an input variable u related to vehicle control and a state variable x representing the vehicle's behavior to set a target value for the control variable at each point k in the prediction period, based on the optimal value u*(k) of the input variable and the optimal value x*(k) of the state variable at each point k in the prediction period. The optimal value calculation unit 53 also sets constraints on the input variable u, state variable x, state equation, target value of the control variable, and number of settings based on the control content of the vehicle control. The optimal value calculation unit 53 also sets the output variable y of the state equation and the target value yref of the output variable based on the control content of the vehicle control. The state equation used is that of the vehicle model.
[0121] Similar to Embodiment 1, the vehicle control is configured to selectively execute either or both of the following: longitudinal control, which controls the vehicle's behavior in the longitudinal direction, and lateral control, which controls the vehicle's behavior in the lateral direction. Except for the fact that the input variable u evaluated by the evaluation function J includes a slack variable s, this is the same as Embodiment 1 and therefore will not be described further.
[0122] Because the input variable u includes the slack variable s, the input variable u and the weight R in equation (11) are changed as follows:
number
[0123] Because the input variable u includes the slack variable s, the input variable u and the weight R in equation (14) are changed as follows:
number
[0124] Because the input variable u includes the slack variable s, the input variable u and the weight R in equation (17) are changed as follows:
number
[0125] <Flowchart> Referring to the flowchart in Figure 8, the overview of the processing of the vehicle control device 50 (optimal calculation device 50) will be explained. The processing in Figure 8 is executed at each calculation cycle.
[0126] In step S11, as described in Embodiment 1, the information acquisition unit 51 acquires various information regarding the state variable x and input variable u used by the optimal value calculation unit 53. In this embodiment, various information related to vehicle control is acquired.
[0127] In step S12, as described in Embodiment 1, the target setting unit 52 sets the target value of the state variable x used by the optimal value calculation unit 53 (in this example, the target value yref of the output variable). In this embodiment, the target value of the state variable x (the target value yref of the output variable) is set according to the content of the vehicle control.
[0128] In step S13, as described above, the optimal value calculation unit 53 uses a state equation that calculates the state variable x(k) at each time point k of the prediction period using the input variable u(k) at each time point k of the prediction period as input, and calculates an evaluation function that evaluates the input variable u and the state variable x, including the slack variable s, by weighting them, and a relaxed constraint condition g, which is a set number of 1 or more that constrains the constrained item, which is an item of the input variable u or the state variable x, by an upper or lower limit, and relaxes the constraint condition by relaxing the constraint condition by the slack variable s. The unit then calculates candidate optimal values utmp(k) for the input variable and xtmp(k) for the state variable at each time point k.
[0129] In step S14, the optimal value calculation unit 53 determines whether the slack variable s is greater than the threshold Ths in the optimal value candidate calculation performed in step S03. If it is greater, the unit proceeds to step S15; otherwise, the unit proceeds to step S16.
[0130] In step S15, as described above, the optimal value calculation unit 53 changes the weight Rs for the slack variable s in a direction that decreases the slack variable s. Then, the optimal value calculation unit 53 returns to step S13 and performs the optimal value candidate calculation again using an evaluation function that uses the changed weight Rs for the slack variable s.
[0131] On the other hand, in step S16, as described above, the optimal value calculation unit 53 sets target values for the control variables at each time point k of the prediction period based on the optimal values u*(k) of the input variables and the optimal values x*(k) of the state variables.
[0132] Subsequently, in step S07, as described in Embodiment 1, the control unit 54 controls the controlled object (in this example, the vehicle itself) based on the target value of the controlled amount at each time point k of the prediction period, which is set by the optimal value calculation unit 53 described later.
[0133] <Other embodiments> In each of the embodiments described above, a vehicle model was used in the state equations, and the case where an optimization problem of vehicle control is solved was explained as an example. However, equations for various controlled objects may be used in the state equations, and the optimization calculation device 50 may be applied to optimization problems for various controlled objects.
[0134] Even in this case, the optimal value calculation unit 53 only needs to set constraints on the input variable u, the state variable x, and the number of settings based on the control content in which the optimal value is used.
[0135] While this disclosure describes various exemplary embodiments and examples, the various features, aspects, and functions described in one or more embodiments are not limited to the application of a particular embodiment, but are applicable individually or in various combinations to the embodiments. Accordingly, countless variations not illustrated are envisioned within the scope of the art disclosed in this disclosure. For example, these include modifying, adding or omitting at least one component, or even extracting at least one component and combining it with a component from another embodiment. [Explanation of Symbols]
[0136] 50: Optimal calculation unit, 51: Information acquisition unit, 52: Target setting unit, 53: Optimal value calculation unit, 54: Control unit, Dall: Number of settings, J: Evaluation function, Ths: Threshold, g: Constraint condition, k: Time point, s: Slack variable, u*: Optimal value of input variable, u: Input variable, utmp: Candidate for optimal value of input variable, x*: Optimal value of state variable, x: State variable, xtmp: Candidate for optimal value of state variable
Claims
1. The system includes an optimal value calculation unit that solves an optimization problem having one or more set constraints that constrain the constrained items, which are items of the input variables or the state variables, by upper or lower limits, by repeatedly performing an optimal value candidate calculation to calculate candidate optimal values for the input variables and the state variables until the set number of constraints are satisfied, and then calculates the optimal values for the input variables and the state variables at each time point in the prediction period based on the candidate optimal values. The optimal value calculation unit, after the completion of each of the candidate optimal value calculations, if any of the constraints are not satisfied, changes the weights related to the constrained items constrained by the unsatisfied constraints in a direction that satisfies the constraints.
2. The optimal value calculation device according to claim 1, wherein, after the completion of each of the optimal value candidate calculations, if the constraint conditions that constrain the constrained item of the input variable are not satisfied, the weights related to the constrained item of the input variable that are constrained by the unsatisfied constraint conditions are changed in a direction that satisfies the constraint conditions.
3. The optimal value calculation device according to claim 1, wherein, after the completion of each of the optimal value candidate calculations, if the constraint condition that constrains the constrained item of the state variable is not satisfied, the weight related to the constrained item of the state variable that is constrained by the unsatisfied constraint condition is changed in a direction that satisfies the constraint condition.
4. The optimal value calculation unit sets the weights for each time point in the prediction period in the evaluation function, An optimal calculation device according to any one of claims 1 to 3, wherein, after the completion of each of the above-mentioned candidate optimal value calculations, if the constraint condition is not satisfied at some point in the prediction period, the weight at the point in time in which the constraint condition is not satisfied, related to the constrained item constrained by the unsatisfied constraint condition, is changed in a direction in which the constraint condition is satisfied.
5. The optimal value calculation unit, after the completion of each optimal value candidate calculation, if the constraint conditions are not met, changes the weights related to the constrained item that is constrained by the unmet constraint conditions based on the amount of the constrained item exceeding the upper limit or the lower limit, according to any one of claims 1 to 3.
6. The optimal calculation device according to claim 5, wherein the optimal value calculation unit uses a preset change amount calculation formula, with the excess amount as the input variable and the change amount of the weight as the output variable, to calculate the change amount of the weight corresponding to the current excess amount, and changes the weight according to the change amount of the weight.
7. The optimal calculation device according to claim 5, wherein the optimal value calculation unit refers to a change amount calculation map in which the relationship between the excess amount and the change amount of the weight is set in advance, calculates the change amount of the weight corresponding to the current excess amount, and changes the weight according to the change amount of the weight.
8. The optimal value calculation unit, after the completion of each of the optimal value candidate calculations, if the constraint conditions are not met, changes the weights related to the constraint items that are not met only in the same specific positive or negative direction in which the constraint conditions are met, as described in any one of claims 1 to 3.
9. The optimal value calculation unit adds or subtracts a slack variable to each of the constrained items in order to relax each of the constraint conditions in the set number, and then constrains each of the constrained items to which the slack variable has been added or subtracted by the upper limit or the lower limit. The optimal calculation device according to any one of claims 1 to 3, which sets the smallest slack variable of 0 or more such that the constraint condition of the number of settings is satisfied in each of the candidate optimal value calculations.
10. It further comprises a control unit for controlling the controlled object, The optimal value calculation unit sets a target value for the control variable at each point in the prediction period based on the optimal value of the input variable and the optimal value of the state variable at each point in the prediction period. The control unit controls the controlled object based on the target value of the controlled quantity at each point in the prediction period, according to any one of claims 1 to 3.
11. The controlled object is a vehicle, The optimal value calculation unit uses the input variables related to vehicle control, the state variables representing the behavior of the vehicle, and the state equations of the vehicle model to set target values for the control quantities related to vehicle control. The control unit controls the vehicle based on the target value of the control quantity related to the vehicle control, as described in claim 10.
12. The system includes an optimal value calculation unit that calculates candidate optimal values for the input variables and state variables at each point in the prediction period based on the candidate optimal values. This unit uses a state equation that calculates state variables at each point in the prediction period using input variables at each point in the prediction period as input, an evaluation function that weights and evaluates the input variables and state variables, and relaxed constraints obtained by relaxing one or more set constraint conditions that constrain constrained items, which are items of the input variables or state variables, by upper or lower limits using a slack variable. The unit repeatedly performs an optimal value candidate calculation to calculate candidate optimal values for the input variables and state variables until the slack variable falls below a threshold, and then calculates the optimal values for the input variables and state variables at each point in the prediction period based on the candidate optimal values. The optimal value calculation unit, in the relaxed constraint conditions, adds or subtracts the slack variable to each of the constrained items of each constraint condition in order to relax each of the constraint conditions, and then constrains each of the constrained items to which the slack variable has been added or subtracted by the upper limit or the lower limit. The input variable evaluated by the evaluation function includes the slack variable, An optimal calculation device that, after the completion of each of the aforementioned optimal value candidate calculations, if the slack variable exceeds the threshold, changes the weight of the slack variable in a direction that decreases the slack variable.
13. The optimal value calculation unit sets the slack variable at each point in time during the prediction period, In the evaluation function, the weights for the slack variable are set for each time point in the prediction period. The optimal calculation device according to claim 12, wherein, after the completion of each of the optimal value candidate calculations, if the slack variable exceeds the threshold at a certain point in the prediction period, the weight for the slack variable at the point in time when it exceeds the threshold is changed in a direction that decreases the slack variable.
14. The optimal value calculation device according to claim 12 or 13, wherein, after the completion of each of the optimal value candidate calculations, if the slack variable exceeds the threshold, the weight for the slack variable is changed based on the amount of the slack variable exceeding the threshold.
15. The optimal calculation device according to claim 14, wherein the optimal value calculation unit uses a preset change amount calculation formula, with the excess amount as the input variable and the change amount of the weight as the output variable, to calculate the change amount of the weight corresponding to the current excess amount, and changes the weight for the slack variable according to the change amount of the weight.
16. The optimal calculation device according to claim 14, wherein the optimal value calculation unit refers to a change calculation map in which the relationship between the excess amount and the change amount of the weight is set in advance, calculates the change amount of the weight corresponding to the current excess amount, and changes the weight for the slack variable according to the change amount of the weight.
17. The optimal value calculation device according to claim 12 or 13, wherein, after the completion of each of the optimal value candidate calculations, if the slack variable exceeds the threshold, the weight for the slack variable is changed only in the same specific positive or negative direction that decreases the slack variable.
18. It further comprises a control unit for controlling the controlled object, The optimal value calculation unit sets a target value for the control variable at each point in the prediction period based on the optimal value of the input variable and the optimal value of the state variable at each point in the prediction period. The optimal calculation device according to claim 12 or 13, wherein the control unit controls the control target based on the target value of the control quantity at each point in the prediction period.
19. The controlled object is a vehicle, The optimal value calculation unit uses the input variables related to vehicle control, the state variables representing the behavior of the vehicle, and the state equations of the vehicle model to set target values for the control quantities related to vehicle control. The control unit controls the vehicle based on the target value of the control quantity related to the vehicle control, as described in claim 18.
Citation Information
Patent Citations
Model estimation controller
JP1992015706A
Travel support method and travel support device
JP2020026189A
Operation control apparatus
JP2022150606A
Control device
JP2024022942A