Optimal calculation device

The optimization calculation device addresses inflexible constraint management by iteratively adjusting weights and slack variables, ensuring optimal value calculation and constraint satisfaction for input and state variables, enhancing optimization efficiency.

WO2025203290A1PCT designated stage Publication Date: 2025-10-02MITSUBISHI ELECTRIC MOBILITY CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/012150
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-27
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

Existing optimization technologies fail to adequately manage the behavior of manipulated and controlled variables due to inflexible constraint conditions, leading to unsatisfactory constraint satisfaction and management of input and state variables.

Method used

An optimization calculation device that uses state equations, evaluation functions, and optimal value calculation units to iteratively adjust weights and slack variables to satisfy constraints, allowing for individual management of constrained items and optimizing input and state variables.

Benefits of technology

Enables effective constraint satisfaction and optimal value calculation for input and state variables, improving the management and behavior of constrained items within the optimization process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024012150_02102025_PF_FP_ABST
    Figure JP2024012150_02102025_PF_FP_ABST
Patent Text Reader

Abstract

Provided is an optimal calculation device capable of calculating, for an optimization problem with constraint conditions, an optimal value that satisfies the constraint conditions by individually evaluating constrained items constrained by each constraint condition. This optimal calculation device repeatedly performs an optimal value candidate calculation so as to solve an optimization problem that has an evaluation function for weighting and evaluating input variables and state variables, and has a set number, one or more, of constraint conditions that constrain constrained items, which are input variable or state variable items, by upper or lower limits, until the set number of constraint conditions are satisfied. After each optimal value candidate calculation is completed, if any of the constraint conditions is not satisfied, the optimal calculation device changes the weights associated with the constrained items constrained by the unsatisfied constraint condition, in a direction that the constraint condition is satisfied.
Need to check novelty before this filing date? Find Prior Art

Description

Optimal computing device

[0001] The present disclosure relates to an optimal computing device.

[0002] In the technology of Patent Document 1, the constraint conditions on the manipulated variable u, the rate of change Δu of the manipulated variable, the controlled variable y, and the rate of change Δy of the controlled variable are transformed using a model into a constraint condition that constrains the rate of change Δu of the manipulated variable, and if a solution that satisfies the constraint conditions cannot be obtained, the weight λ of the evaluation function related to the rate of change Δu of the manipulated variable is changed and a solution is calculated again.

[0003] Japanese Unexamined Patent Publication No. 4-15706

[0004] However, in the technology of Patent Document 1, it is necessary to transform the constraint conditions on the manipulated variable u, the rate of change Δu of the manipulated variable, the controlled variable y, and the rate of change Δy of the controlled variable into a constraint condition that constrains the rate of change Δu of the manipulated variable, which is not versatile.In addition, since the constraint conditions are condensed into the rate of change Δu of the manipulated variable and the weight λ of the rate of change Δu of the manipulated variable is changed, it is not possible to adequately manage the behavior of the manipulated variable u, the rate of change Δu of the manipulated variable, the controlled variable y, and the rate of change Δy of the controlled variable.

[0005] Therefore, an object of the present disclosure is to provide an optimization calculation device that can solve an optimization problem with constraints by evaluating each constrained item constrained by each constraint and calculating an optimal value that satisfies the constraints.

[0006] A first optimization calculation device according to the present disclosure uses a state equation that calculates state variables at each time point in a prediction period using inputs of input variables at the respective time points in the prediction period, and has an evaluation function that weights and evaluates the input variables and the state variables, and one or more set constraint conditions that constrain constrained items that are items of the input variables or the state variables by upper or lower limits, so as to solve an optimization problem, the optimization problem having the evaluation function weighting and evaluating the input variables and the state variables, and one or more set constraint conditions that constrain constrained items that are items of the input variables or the state variables by upper or lower limits, and includes an optimal value calculation unit that repeatedly performs an optimal value candidate calculation that calculates candidates for optimal values ​​of the input variables and the state variables until the set number of constraint conditions are satisfied, and calculates optimal values ​​of the input variables and the state variables at each time point in the prediction period based on the optimal value candidates, and if any of the constraint conditions is not satisfied after completion of each of the optimal value candidate calculations, the optimal value calculation unit changes the weight associated with the constrained item that is constrained by the unsatisfied constraint condition in a direction in which the constraint condition is satisfied.

[0007] A second optimization calculation device according to the present disclosure uses a state equation that calculates state variables at each time point of a prediction period using inputs of input variables at the respective time points of the prediction period, and an evaluation function that weights and evaluates the input variables and the state variables, and an optimization problem having relaxed constraint conditions in which one or more set number of constraint conditions that constrain constrained items that are items of the input variables or the state variables by upper or lower limit values ​​are relaxed by slack variables, the device repeatedly performs an optimal value candidate calculation that calculates optimal value candidates for the input variables and the state variables until the slack variables become equal to or less than a threshold, and calculates optimal values ​​of the input variables and the state variables at each time point of the prediction period based on the optimal value candidates, the optimal value calculation unit adding or subtracting the slack variable to each of the constrained items of each constraint condition so as to relax each of the constraint conditions in the relaxed constraint conditions, and constraining each of the constrained items to which the slack variable has been added or subtracted by the upper or lower limit value, the input variables evaluated by the evaluation function include the slack variable, If the slack variable exceeds the threshold value after each of the optimum value candidate calculations is completed, the weight for the slack variable is changed in the direction in which the slack variable decreases.

[0008] According to the first optimization calculation device of the present disclosure, after each optimal value candidate calculation is completed, the weights associated with the constrained items constrained by the unsatisfied constraints are changed in a direction that satisfies the constraints, thereby enabling the optimal value candidates and the optimal value candidates for the state variables to be changed in a direction that satisfies the constraints in the next optimal value candidate calculation. Therefore, each constrained item constrained by each constraint can be evaluated to calculate an optimal value that satisfies the constraints. Furthermore, the behavior of each constrained item can be managed individually by each constraint.

[0009] According to the second optimization calculation device disclosed herein, after each optimal value candidate calculation is completed, the weights for the slack variables are changed in a direction that reduces the slack variables that relax the set number of constraint conditions. This allows the optimal value candidates for the input variables and 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 constrained by each constraint condition and calculate an optimal value that satisfies the constraint condition. Furthermore, it is possible to individually manage the behavior of each constrained item according to each constraint condition.

[0010] 1 is a schematic block diagram of a vehicle control device and a vehicle system incorporating an optimization calculation device according to embodiment 1. FIG. 2 is a hardware configuration diagram of the vehicle control device according to embodiment 1. FIG. 3 is a hardware configuration diagram of another example of the vehicle control device according to embodiment 1. FIG. 4 is a diagram for explaining a change amount calculation map according to embodiment 1. FIG. 5 is a diagram for explaining a coordinate system of the host vehicle according to embodiment 1. FIG. 6 is a flowchart for explaining processing of the optimization calculation device according to embodiment 1. FIG. 7 is a diagram for explaining slack variables according to embodiment 2. FIG. 8 is a flowchart for explaining processing of the optimization calculation device according to embodiment 2.

[0011] 1. First Embodiment An optimization calculation device according to the first embodiment will be described with reference to the drawings. In this embodiment, the optimization calculation device is mounted on a host vehicle and performs optimization calculations for controlling the host vehicle. The optimization calculation device is incorporated into a vehicle control device 50. The vehicle system 1 and the vehicle control device 50 are mounted on the host vehicle.

[0012] As shown in FIG. 1, the vehicle system 1 includes a vehicle state detection device 31, a surroundings 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 motor 8, an electric steering device 7, and an electric braking device 9.

[0013] The vehicle state detection device 31 is a detection device that detects the running state of the host vehicle. As the running state of the host vehicle, the vehicle speed V, acceleration α, roll angular velocity, pitch angular velocity, and yaw angular velocity γ of the host vehicle are detected. For example, the vehicle state detection device 31 may be provided with a three-axis angular velocity sensor that detects the roll angular velocity, pitch angular velocity, and yaw angular velocity acting on the host vehicle, an acceleration sensor, and a speed sensor that detects the rotational speed of the wheels. Note that the speed of the host vehicle may be detected by other methods, such as integrating acceleration.

[0014] The periphery monitoring device 32 is a device such as a camera or radar that monitors the periphery of the vehicle. The radar may be a millimeter wave radar, a laser radar, an ultrasonic radar, etc. 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 vehicle, and uses a GPS antenna or the like that receives signals output from artificial satellites such as the Global Navigation Satellite System (GNSS). Note that various methods may be used to detect the current position of the vehicle, such as a method using the lane number of the vehicle, a map matching method, a dead reckoning method, or a method using detected information around the vehicle.

[0016] The map information database 34 stores road information such as road shapes (e.g., road locations, number of lanes, shape of each lane, road type, speed limit, etc.), signs, traffic lights, etc. The map information database 34 is mainly composed of a storage device. The map information database 34 may be provided in a server outside the vehicle connected to a network, and the vehicle control device 50 may obtain necessary road information from the server outside the vehicle via the wireless communication device 35.

[0017] The drive control device 36 includes a power control device, a brake control device, an automatic steering control device, a light control device, etc. The power control device controls the output of a power machine 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 turn signals, hazard lights, 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 optimum value calculation unit 53, and a control unit 54. Each function of the vehicle control device 50 is realized by a processing circuit included in the vehicle control device 50. Specifically, as shown in Fig. 2, the vehicle control device 50 includes an arithmetic processing device 90 such as a CPU (Central Processing Unit), a storage device 91, an input / output device 92 that inputs and outputs external signals to the arithmetic processing device 90, and the like.

[0019] The arithmetic processing device 90 may be 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, various signal processing circuits, etc. Furthermore, the arithmetic processing device 90 may be a plurality of the same or different types, and each process may be shared and executed. As the storage device 91, various storage devices such as a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, an EEPROM (Electrically Erasable Programmable Read Only Memory), a hard disk, etc. may be used.

[0020] The input / output device 92 includes a communication device, an A / D converter, an input / output port, a drive circuit, etc. The input / output device 92 is connected to the vehicle state detection device 31, the surroundings monitoring device 32, the position detection device 33, the map information database 34, the wireless communication device 35, the drive control device 36, etc., and communicates with these devices.

[0021] The functions of the functional units 51 to 54 of the vehicle control device 50 are realized by the arithmetic processing device 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. Note that setting data used by the functional units 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 provided with dedicated hardware 93 as a processing circuit, 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, as shown in Fig. 3. Each function of the vehicle control device 50 will be described in detail below.

[0023] 1-1-1 Information Acquisition Unit 51 The information acquisition unit 51 acquires various pieces of information relating to the state variable x and the input variable u used by the optimum value calculation unit 53.

[0024] In this embodiment, the information acquisition unit 51 acquires the surrounding conditions of the host vehicle. For example, the information acquisition unit 51 detects other vehicles and the like present around the host vehicle. The information acquisition unit 51 detects the position, movement direction, movement speed, and the like of the other vehicles based on the detection information acquired from the periphery monitoring device 32 and the position information of the host vehicle acquired from the position detection device 33. Furthermore, the information acquisition unit 51 detects lane shapes such as road dividing lines, obstacles, pedestrians, signs, and the like in addition to other vehicles.

[0025] The information acquisition unit 51 also acquires the running state of the host vehicle. The information acquisition unit 51 acquires the vehicle speed V, acceleration α, roll angular velocity, pitch angular velocity, and yaw angular velocity γ of the host vehicle as the running state of the host vehicle from the vehicle state detection device 31. The information acquisition unit 51 also acquires the position, movement direction, etc. of the host vehicle based on the position information of the host vehicle acquired from the position detection device 33. The information acquisition unit 51 also acquires information on the running position of the host vehicle relative to the lane based on the shape of the lane acquired from the information acquisition unit 51. The information acquisition unit 51 also acquires driving operation states such as the steering angle δ, the output of a power machine such as an internal combustion engine, and the operating state of the brakes from the control unit 54.

[0026] 1-1-2. Target Setting Unit 52 The target setting unit 52 sets the target value of the state variable x (in this example, the target value yref of the output variable) used in the optimum value calculation unit 53.

[0027] In this embodiment, the target setting unit 52 sets a target driving state of the vehicle. The target setting unit 52 calculates the target driving state in accordance with the state of other vehicles, road shapes, obstacles, pedestrians, etc. around the vehicle detected by the information acquisition unit 51.

[0028] For example, when lateral control, which will be described later, is executed, a lateral target driving position is calculated as the target driving state. The lateral target driving position is set within a lateral target driving range at 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 executed, longitudinal speed, inter-vehicle distance, etc. are calculated as the target driving state. Examples of longitudinal control include cruise control, inter-vehicle distance control, and leading vehicle following control.

[0030] For example, when both longitudinal control and lateral control are executed, a target driving trajectory is calculated as a target driving state. The target driving trajectory is a time-series driving plan including the position, direction, and speed of the vehicle at each future point in time. Various known methods are used to calculate the target driving trajectory. Note that the longitudinal control and lateral control may simply be executed simultaneously.

[0031] 1-1-3. Control Unit 54 The control unit 54 controls the controlled object (in this example, the vehicle) based on the target value of the controlled variable set by the optimum value calculation unit 53, which will be described later.

[0032] In this embodiment, when both longitudinal control and lateral control are performed, the target values ​​of the control variables are set to the target value of the steering angle δ at each time point and the target value of the acceleration α at each time point. When lateral control is performed, the target value of the control variables is set to the target value of the steering angle δ at each time point. When longitudinal control is performed, the target value of the control variables is set to the target value of the acceleration α at each time point. Other parameters may be set as the target values ​​of the control variables.

[0033] The control unit 54 calculates a command value for the power control unit and a command value for the brake control unit based on the acceleration α at each point in time. The control unit 54 calculates a command value for the automatic steering control unit based on the target value of the steering angle δ at each point in time.

[0034] The power control device controls the output of a power machine 8 such as an internal combustion engine or a motor according to a command value. The brake control device controls the braking operation of an electric brake device 9 according to a command value. The automatic steering control device controls the electric steering device 7 according to a command value.

[0035] 1-1-4. Optimal Value Calculation Unit 53 The optimal value calculation unit 53 uses a state equation that calculates a state variable x(k) at each time point k of the prediction period using an input of an input variable u(k) at each time point k of the prediction period, and repeatedly performs an optimal value candidate calculation to calculate a candidate utamp(k) for the optimal value of the input variable at each time point k and a candidate xtmp(k) for the optimal value of the state variable until the constraint condition g of the set number Dall is satisfied, so as to solve an optimization problem having an evaluation function that weights and evaluates the input variable u(k) and the state variable x, and a constraint condition g 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 limit value or a lower limit value, and calculates an optimal value u*(k) for the input variable at each time point k of the prediction period based on the candidate utamp(k) for the optimal value of the input variable at each time point k and the candidate xtmp(k) for the optimal value of the state variable. The optimal value calculation unit 53 sets the target value of the controlled variable at each time point k of the prediction period based on the optimal value u*(k) of the input variable at each time point k of the prediction period and the optimal value x*(k) of the state variable. The optimal value calculation unit 53 executes calculation processing of the optimal value for each calculation cycle to calculate the optimal value.

[0036] The optimal value calculation unit 53 sets an 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 optimal value candidate utmp(k) of the input variable at each time point k from the initial value u0(k) each time the optimal value candidate calculation is repeated, in a manner similar to solving an optimization problem.

[0037] <State equation of state variable> As shown in the following equation, the state equation of state variable x is expressed by a function f in which the time derivative dx / dt(k) of the state variable at each time point k is expressed as an input of the input variable u(k) and state variable x(k) at each time point k. When there are multiple state variables x, x becomes a vector, and when there are multiple input variables u, u becomes a vector. Here, k represents each time point in the prediction period, with k=0 being the present and k=N being the end point of the prediction period, which is called the horizon.

[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 differential dx(k) / dt of the state variable at the current time point by the time interval ΔT between time points in the prediction period to the state variable at the current time point x(k). Note that various calculation methods such as the Runge-Kutta method may be used instead of the Euler method as in equation (2).

[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) in the prediction period becomes the initial value or the updated value of the previous optimal value candidate calculation. As the time point k is increased by one from 0 to N, the state variable x(k+1) at the next time point k+1 is calculated in sequence 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 the following general optimization problem:

[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 restricts the input variable u(k) and the state variable x(k), and there is a constraint g of a set number Dall. In other words, the input variable u that minimizes the evaluation function J is calculated while satisfying the constraint of the set number Dall. Note that the sign of the evaluation function may be reversed, and the problem may be considered as a maximization problem in which the evaluation function is maximized.

[0042] For example, when an input variable u(k) is upper-bounded by an upper limit value uH and lower-bounded by a lower limit value uL, the constraint condition g is expressed as follows:

[0043] In this embodiment, the following quadratic expression is used as the evaluation function J. The evaluation function J has a higher evaluation value as the difference between the output variable y and the target value yref of the output variable becomes smaller, and the evaluation becomes higher as the input variable u becomes smaller (in this example, the value becomes smaller).

[0044] Here, k (k = 0, 1, ..., N-1, N) is a time point number representing each time point in the prediction period, with k = 0 being the present and k = N being the final prediction time point. The time point number k is incremented by one from 0 to N at every time interval ΔT. Therefore, k x ΔT is the elapsed time from the present to each time point k. C is a vector that extracts the output variable y from the state variable x. y(k) is a vector of output variables of the state equation at each time point k. yref(k) is a vector of target values ​​of the output variable at each time point k, P is a weight for the deviation between the output variable y(N) at the final prediction time point (k = N) and the target value yref(N) of the output variable, and Q is a weight for 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 prediction time point. The weights P and Q are used to evaluate the deviation of the output variable from the target value at each time point. R is a 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 is used to evaluate the input variable u so that it does not become too large. When there are multiple output variables y, the weights P and Q are a diagonal matrix, and a weight is set for each item of the output variable y. When there are multiple input variables u, the weight R is a diagonal matrix, and a weight is set for each item of the input variable u. By adjusting the magnitude of each of the weights P, Q, and R, the weighting of the evaluation for each item of the output variable y and the input variable u changes, and the calculated optimal value u* of the input variable and the optimal value x* of the state variable change. Note that each weight is set to a positive value.

[0045] <Introduction of Slack Variables into Constraints> In this embodiment, the optimal value calculation unit 53 adds or subtracts (subtracts in this example) a slack variable s to each constrained item so as to relax each constraint g in the constraint g of the set number Dall, as shown in the following equation, and constrains each constrained item to which the slack variable s has been added or subtracted by an upper or lower limit value. Then, in each optimal value candidate calculation, the optimal value calculation unit 53 sets the smallest slack variable s equal to or greater than 0, which satisfies the constraint g of the set number Dall. Furthermore, in this embodiment, the optimal value calculation unit 53 sets a slack variable s(k) for each time point k in the prediction period.

[0046] Here, in the constraint g of the set number Dall, in the constraint that needs to be relaxed the most (for example, i=b), that is, the constraint g for which the minimum slack variable s required to satisfy the constraint g is the largest, the inequality constraint is converted into an equality constraint as shown in the following equation. That is, by introducing the slack variable s, the inequality constraint in the constraint that needs to be relaxed the most is converted into an equality constraint, and the computational load for solving the optimization problem can be reduced.

[0047] The optimization problem with constraints using the slack variable s can be solved using various known methods. Note that the optimization problem with constraints that does not use the slack variable s may also be solved.

[0048] <Change in weight when constraint condition is not satisfied> After each optimal value candidate calculation is completed, if any constraint condition g is not satisfied, the optimal value calculation unit 53 changes the weight associated with the constrained item that is constrained by the unsatisfied constraint condition g in the direction in which the constraint condition g is satisfied.

[0049] When the slack variable s is introduced, the slack variable s is set so that all the constraint conditions g are satisfied. Therefore, the constraint conditions g that are judged to be satisfied or not are the constraint conditions g before the slack variable s shown in Equation (3) and Equation (4) is added or subtracted.

[0050] According to this configuration, after each optimum value candidate calculation is completed, the weights associated with the constrained items constrained by the unsatisfied constraint condition g are changed in the direction in which the constraint condition is satisfied. In this way, in the next optimum value candidate calculation, the optimum value candidate utmp and the optimum value candidate xtmp for the state variable can be indirectly changed in the direction in which the constraint condition g is satisfied. Therefore, the constrained items constrained by each constraint condition can be individually evaluated to calculate an optimum value that satisfies the constraint condition. Furthermore, the behavior of the constrained items can be individually managed by each constraint condition.

[0051] After each optimum value candidate calculation is completed, if the constraint conditions that constrain the constrained items of the input variable u are not satisfied, the optimum value calculation unit 53 changes the weights associated with the constrained items of the input variable u that are constrained by the unsatisfied constraint conditions in a direction in which the constraint conditions are satisfied.

[0052] According to this configuration, after each optimum value candidate calculation is completed, the weight for the input variable u is changed in the direction in which the constraint condition of the unsatisfied input variable u is satisfied, and in the next optimum value candidate calculation, the optimum value candidate utmp for the input variable and the optimum value candidate xtmp for the state variable can be changed in the direction in which the constraint condition g is satisfied.

[0053] For example, if the absolute value of the constrained item of the input variable u is large and the constraint condition is not satisfied, the weight R item multiplied to the constrained item of the input variable u for which the constraint condition is not satisfied is increased in the evaluation function of equation (5). This acts to decrease the absolute value of the constrained item of the input variable u in the next optimum value candidate calculation.

[0054] After each optimum value candidate calculation is completed, if the constraint conditions that constrain the constrained items of the state variable x are not satisfied, the optimum value calculation unit 53 changes the weights associated with the constrained items of the state variable x that are constrained by the unsatisfied constraint conditions in a direction in which the constraint conditions are satisfied.

[0055] According to this configuration, after each optimum value candidate calculation is completed, the weight for the state variable x is changed in a direction in which the unsatisfied constraint condition of the state variable x is satisfied, and thus in the next optimum value candidate calculation, the optimum value candidates utmp for the input variables and the optimum value candidates xtmp for the state variables can be changed in a direction in which the constraint condition of the state variable x is satisfied.

[0056] Basically, the smaller the absolute value of the deviation between the item of the output variable y to which the constrained item of the state variable x is set and the item of the target value yref of the corresponding output variable, the more likely the constraint condition is satisfied. Therefore, when the constraint condition of the state variable x is not satisfied, in the evaluation function of equation (5), the weights Q and P, which are multiplied by the target value deviation of the item of the output variable y to which the constrained item of the state variable x to which the unsatisfied constraint condition is set, are increased. As a result, in the next optimal value candidate calculation, the item of the output variable y to which the constrained item of the state variable x is set acts in a direction approaching the item of the target value yref of the corresponding output variable, and the constrained item of the state variable x acts in a direction to satisfy the constraint condition.

[0057] If the constraint is not satisfied after each optimum value candidate calculation is completed, the optimum value calculation unit 53 changes the weights associated with the unsatisfied constrained items only in the same specific direction, positive or negative, in which the constraint is satisfied. Note that the optimum value calculation unit 53 resets each weight to its initial value at the start of calculation in each calculation cycle.

[0058] For example, if the weight is changed in the opposite direction in which the constraint condition is not satisfied, and a change in a specific direction and a change in the opposite direction are performed, the number of calculations for the optimum value candidate until the constraint condition is satisfied increases, and the calculation load increases.With the above configuration, the weight related to the unsatisfied constrained item is changed only in the same specific direction, positive or negative, in which the constraint condition is satisfied, so that the increase in the number of calculations for the optimum value candidate until the constraint condition is satisfied can be suppressed.

[0059] <Changing weight according to excess amount> After each optimal value candidate calculation is completed, if a constraint condition is not satisfied, the optimal value calculation unit 53 changes the weight associated with the constrained item that is constrained by the unsatisfied constraint condition based on the excess amount of the constrained item from the upper limit value or lower limit value.

[0060] This configuration allows the weight to be changed appropriately depending on the excess amount. For example, the weight is increased by a larger amount as the absolute value of the excess amount increases. This allows the absolute value of the excess amount to be decreased by a larger amount in the next optimum value candidate calculation, reducing the number of iterations of the optimum value candidate calculation until the constraint condition is satisfied and reducing the calculation load.

[0061] For example, the optimum value calculation unit 53 uses a preset change amount calculation formula in which the excess amount is an input variable and the change amount of the weight is an output variable to calculate the change amount of the weight corresponding to the current excess amount, and changes the weight to be used in the next optimum value candidate calculation based on the change amount of the weight. The change amount calculation formula is set for each constraint condition.

[0062] For example, for a given constraint g, the optimum value calculation unit 53 uses the following change calculation formula to calculate a change ΔR in the weight to be multiplied by the input variable u based on the excess amount Δu of the input variable u from the upper limit value uH or the lower limit value uL, and changes the weight R used in the next optimum value candidate calculation based on the change ΔR in the weight, where A is a positive coefficient.

[0063] Alternatively, the optimum value calculation unit 53 refers to a change amount calculation map in which the relationship between the excess amount and the change amount of the weight is preset, calculates the change amount of the weight corresponding to the current excess amount, and changes the weight to be used in the next optimum value candidate calculation based on the change amount of the weight. The change amount calculation formula is set for each constraint condition.

[0064] For example, for a certain constraint condition g, the optimum value calculation unit 53 refers to the change amount calculation map shown in FIG. 4, calculates the change amount ΔR of the weight to be multiplied by the input variable u based on the excess amount Δu of the input variable u from the upper limit value uH or the lower limit value uL, and changes the weight R to be used in the next optimum value candidate calculation based on the change amount ΔR of the weight.

[0065] <Setting Weight for Each Time Point k> As shown in the following equation, the optimum value calculation unit 53 may set a weight for each time point k in the prediction period in the evaluation function.

[0066] Then, after each optimal value candidate calculation is completed, if the constraint condition g is not satisfied at a certain point k in the prediction period, the optimal value calculation unit 53 may change the weight of the unsatisfied point k associated with the constrained item constrained by the unsatisfied constraint condition g in the direction in which the constraint condition g is satisfied (in this example, in the positive direction).

[0067] According to this configuration, by changing the weight of the time point k at which the constraint condition is not satisfied, it is possible to pinpoint the candidate for the optimum value at the time point k at which the constraint condition is not satisfied, and it is possible to prevent unnecessary influence on the calculation of the candidate for the optimum value at other time points k at which the constraint condition is satisfied. Note that the method for changing the weight of each time point k is omitted here, as it is sufficient to use the above-mentioned method for changing the weight at each time point 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 behavior of the vehicle, and sets a target value of the controlled variable at each time 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 time point k in the prediction period. Furthermore, the optimal value calculation unit 53 sets constraint conditions for the input variable u, the state variable x, the state equation, the target value of the controlled variable, and the number of settings based on the control content of the vehicle control. The optimal value calculation unit 53 also sets an output variable y of the state equation and a target value yref of the output variable based on the control content of the vehicle control. A state equation of a vehicle model is used as the state equation.

[0069] In this embodiment, the vehicle control is configured to selectively execute one or both of longitudinal control, which controls the longitudinal behavior of the vehicle, and lateral control, which controls the lateral behavior of the vehicle. For example, when longitudinal control and lateral control are performed, the state equation of the vehicle model of Equation (10) is used, when lateral control is performed, the state equation of the vehicle model of Equation (13) is used, and when longitudinal control is performed, the state equation of the vehicle model of Equation (16) is used. In Equation (10) and Equation (13), a two-wheel model is used as the vehicle model. The state equation of the vehicle model is expressed as a differential equation of each state variable that represents the behavior of the vehicle. Note that 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 the lateral control may include lane keeping control, obstacle avoidance control, lane change control, etc. A set number of constraint conditions are set based on the control content of the lateral control. The input variable u, the state variable x, the state equation, the target value of the controlled variable, the output variable y of the state equation, and the target value yref of the output variable may also be set based on the control content of the lateral control.

[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, inter-vehicle distance control, and leading vehicle following control. A set number of constraint conditions are set based on the control content of the longitudinal control. The input variable u, the state variable x, the state equation, the target value of the controlled variable, the output variable y of the state equation, and the target value yref of the output variable may also be set based on the control content of the longitudinal control.

[0072] Even when longitudinal control and lateral control are performed, the control contents of the longitudinal control and lateral control may be changed. For example, the control contents of the longitudinal control and lateral control include control for following a target driving trajectory, obstacle avoidance control, or simultaneous execution of the longitudinal control and lateral control. A set number of constraint conditions are set based on the control contents of the longitudinal control and lateral control. The input variable u, the state variable x, the state equation, the target value of the controlled variable, the output variable y of the state equation, and the target value yref of the output variable may also be set based on the control contents of the longitudinal control and lateral control.

[0073] <Vehicle Model for Longitudinal Control and Lateral Control> The state equation of the vehicle model when longitudinal control and lateral control are performed is shown below. The state equation etc. may be changed depending on the control content of the longitudinal control and lateral control.

[0074] Here, the dot symbol above each variable on the left side indicates the time differential value of each state variable. As for the state variable x, Y indicates the longitudinal position of the host vehicle, X indicates the lateral position of the host vehicle, θ is the longitudinal tilt of the host vehicle, β is the side slip angle of the host vehicle's center of gravity, γ is the yaw angular velocity of the host vehicle, δ is the steering angle of the wheels of the host vehicle, V is the velocity of the host vehicle, and α is the acceleration of the host vehicle.

[0075] As the input variable u, j is the jerk of the host vehicle, and ω is the steering angular velocity of the host vehicle.

[0076] I is the yaw moment of inertia of the vehicle, M is the mass of the vehicle, Lf is the distance between the center of gravity of the vehicle and the front axle, Lr is the distance between the center of gravity of the vehicle 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 state equation is expressed in a coordinate system X, Y of the host vehicle based on the current position of the host vehicle. As shown in Fig. 5, X is the lateral direction of the host vehicle, and Y is the longitudinal direction of the host vehicle. Note that instead of the host vehicle coordinate system, a coordinate system based on the target driving trajectory or lane may be used.

[0078] <Evaluation Function for Longitudinal Control and Lateral Control> When longitudinal control and lateral control are performed, the following quadratic expression is used as an evaluation function J for evaluating the desirability of vehicle behavior. The evaluation function J has a higher evaluation value (in this example, the value becomes smaller) as the difference between the target running state (target running trajectory) and the predicted running state becomes smaller. Note that the evaluation function J may be changed depending on the control content of the longitudinal control and lateral control.

[0079] The output variable y is set to the longitudinal position Y of the host vehicle, the lateral position X of the host vehicle, the longitudinal tilt θ of the host vehicle, and the speed V of the host vehicle, among the state variables 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 the target driving trajectory (a time-series driving plan including the position, direction of travel, and speed of the host vehicle at each future point in time).

[0080] The target values ​​of the controlled variables at each time point k are set to the steering angle δ*(k) and acceleration α*(k) contained in the optimal value x*(k) of the state variable at each time point k after the optimization problem is solved.

[0081] <Constraints on the Number of Settings for Longitudinal Control and Lateral Control> The following equation shows the constraints on the number of settings when longitudinal control and lateral control are performed. In this example, the set number Dall is set to 6. The first constraint g1 limits the upper limit of the acceleration α by a positive upper limit αH, and the second constraint g2 limits the lower limit of the acceleration α by a negative lower limit αL. This is to improve ride comfort. The third constraint g3 limits the upper limit of the steering angular velocity ω by a positive upper limit ωH, and the fourth constraint g4 limits the lower limit of the steering angular velocity ω by a negative lower limit ωL. This is to improve ride comfort. The fifth constraint g5 limits the upper limit of the lateral position X by a positive upper limit XH, and the sixth constraint g6 limits the lower limit of the lateral position X by a negative lower limit XL. This is to prevent deviation from the planned driving range. If the target driving trajectory is curved, the upper limit value XH and the lower limit value XL at each time point may be changed according to the target driving trajectory at each time point. The constraint conditions may be changed according to the control content of the longitudinal control and the lateral control. For example, to avoid entry into a no-entry area or contact with an obstacle, any number of constraint conditions for the lateral position X and the longitudinal position Y may be set. The constraint condition for the acceleration α may be deleted, and the constraint condition for the steering angular velocity ω may be deleted. A constraint condition for the velocity V may be added, a constraint condition for the jerk j may be added, and a constraint condition for the steering angle δ may be added.

[0082] <Vehicle Model for Lateral Control> The following equation shows a state equation of the vehicle model when lateral control is performed. In equation (13), the seventh and eighth lines of the state equation of equation (10), which are the time derivatives of the host vehicle's velocity V and host vehicle's acceleration α, are deleted. The host vehicle's velocity V(k) at each time point k may be set to the host vehicle's velocity V(0) at the current time point k=0. The steering angular velocity ω(k) of the host vehicle at each time point k is set as the input variable u(k) at each time point k. Note that the state equation, etc. may be changed depending on the control content of the lateral control.

[0083] <Evaluation Function for Lateral Control> When performing lateral control, the following quadratic expression is used as an evaluation function J for evaluating the desirability of vehicle behavior. The evaluation function J increases (in this example, the value decreases) as the difference between the target running state (lateral target position) and the predicted running state decreases. Note that the evaluation function J may be changed depending on the control content of the lateral control.

[0084] The output variable y is set to the lateral position X of the vehicle among the state variables x. The target value yref of the output variable is the target value Xref of the lateral position of the vehicle set by the target setting unit 52. The target value of the controlled 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 is solved.

[0085] <Constraint Conditions for the Set Number for Lateral Control> The following equation shows the constraint conditions for the set number when longitudinal control and lateral control are performed. In this example, the set number Dall is set to 4. The first constraint condition g1 limits the upper limit of the steering angular velocity ω by a positive upper limit value ωH, and the second constraint condition g2 limits the lower limit of the steering angular velocity ω by a negative lower limit value ωL. This is to improve ride comfort. The third constraint condition g3 limits the upper limit of the lateral position X by a positive upper limit value XH, and the fourth constraint condition g4 limits the lower limit of the lateral position X by a negative lower limit value XL. Note that the constraint conditions may be changed depending on the control content of the lateral control. For example, when lane keeping control is performed, the upper limit value XH and the lower limit value XL of the lateral direction at each time point may be set according to the shape of the lane. Alternatively, any number of constraint conditions for the lateral position X and the longitudinal position Y may be set to avoid entering a no-entry zone or contacting an obstacle. Also, the constraint on the steering angular velocity ω may be deleted, and a constraint on the steering angle δ may be added.

[0086] <Vehicle Model for Longitudinal Control> The following equation shows the state equation of the vehicle model when longitudinal control is performed. In equation (16), all lines other than those relating to longitudinal behavior are deleted from equation (10). The host vehicle's speed V(k) at each time point k may be set to the host vehicle's speed V(0) at the current time point k=0. The host vehicle's jerk j(k) at each time point k is set as the input variable u(k) at each time point k. Note that the state equation, etc. may be changed depending on the control content of the longitudinal control.

[0087] <Evaluation Function for Longitudinal Control> When longitudinal control is performed, the following quadratic expression is used as an evaluation function J for evaluating the desirability of vehicle behavior. The evaluation function J has a higher evaluation value (in this example, the value becomes smaller) as the difference between the target running state (target position in the longitudinal direction) and the predicted running state becomes smaller. Note that the evaluation function J may be changed depending on the control content of the longitudinal control.

[0088] The output variable y is set to the longitudinal position Y of the host vehicle and the velocity V of the host vehicle among the state variables x. The target value yref of the output variable is the target value Yref of the longitudinal position of the host vehicle and the target value Vref of the velocity of the host vehicle set by the target setting unit 52. The target value of the control amount 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 is solved.

[0089] <Constraint Conditions for the Number of Settings for Longitudinal Control> The following equation shows the constraint condition for the number of settings when longitudinal control is performed. In this example, the set number Dall is set to 4. The first constraint condition g1 limits the upper limit of the acceleration α by a positive upper limit value αH, and the second constraint condition g2 limits the lower limit of the acceleration α by a negative lower limit value αL. This is to improve ride comfort. The third constraint condition g3 limits the upper limit of the longitudinal position Y by a positive upper limit value YH, and the fourth constraint condition g4 limits the lower limit of the longitudinal position Y by a negative lower limit value YL. For example, these constraint conditions are used to maintain a distance between the vehicle and other vehicles in front and behind. The upper limit value YH and the lower limit value YL in the longitudinal direction at each time point may be changed at each time point. Note that the constraint conditions may be changed depending on the control content of the longitudinal control. For example, one or both of the constraint condition limiting the upper limit value YH in the longitudinal direction and the constraint condition limiting the lower limit value YL in the longitudinal direction may be deleted. Furthermore, the constraint condition on the acceleration α may be deleted. Also, a constraint on the velocity V may be added, and a constraint on the jerk j may be added.

[0090] <Flowchart> An overview of the processing of the vehicle control device 50 (optimization calculation device) will be described with reference to the flowchart of Fig. 6. The processing of Fig. 6 is executed every calculation cycle.

[0091] In step S01, as described above, the information acquisition unit 51 acquires various pieces of information related to the state variable x and the input variable u used by the optimal value calculation unit 53. In this embodiment, various pieces of information related to vehicle control are acquired.

[0092] In step S02, as described above, the target setting unit 52 sets the target value of the state variable x (in this example, the target value yref of the output variable) to be used in the optimum value calculation unit 53. In this embodiment, the target value of the state variable x (the target value yref of the output variable) is set in accordance with the content of vehicle control.

[0093] In step S03, as described above, the optimum 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 as input the input variable u(k) at each time point k of the prediction period, and executes an optimum value candidate calculation to calculate a candidate utamp(k) for the optimum value of the input variable at each time point k and a candidate xtmp(k) for the optimum value of the state variable, so as to solve an optimization problem having an evaluation function that weights and evaluates the input variable u and the state variable x, and a constraint condition g with a set number Dall of 1 or more that constrains the constrained item, which is the item of the input variable u or the state variable x, by an upper limit value or a lower limit value.

[0094] In step S04, the optimum value calculation unit 53 determines whether or not the constraint condition g of the set number Dall is satisfied in the optimum value candidate calculation executed in step S03. If any of the constraint conditions g is not satisfied, the process proceeds to step S05. If all of the constraint conditions g are satisfied, the process proceeds to step S06.

[0095] In step S05, as described above, the optimum value calculation unit 53 changes the weights associated with the constrained items constrained by the unsatisfied constraint g in the direction in which the constraint g is satisfied. Then, the optimum value calculation unit 53 returns to step S03 and executes the optimum value candidate calculation again using the evaluation function using the changed weights.

[0096] On the other hand, in step S06, as described above, the optimal value calculation unit 53 sets the target value of the controlled variable at each point k of the prediction period based on the optimal value u*(k) of the input variable at each point k of the prediction period and the optimal value x*(k) of the state variable.

[0097] Then, in step S07, as described above, the control unit 54 controls the control object (in this example, the vehicle) based on the target value of the control quantity at each point k of the prediction period set by the optimal value calculation unit 53 described later.

[0098] 2. Second Embodiment An optimum calculation device and a vehicle control device 50 according to a second embodiment will be described with reference to the drawings. Description of the same components as those in the first embodiment will be omitted. The basic configuration of the optimum calculation device and the vehicle control device 50 according to this embodiment is the same as that of the first embodiment, but part of the processing of the optimum value calculation unit 53 differs from that of the first embodiment.

[0099] The optimal value calculation unit 53 uses a state equation that calculates a state variable x(k) at each time point k of the prediction period using an input of an input variable u(k) at each time point k of the prediction period, and repeatedly performs optimal value candidate calculations to calculate optimal value candidates utamp(k) of the input variable at each time point k and optimal value candidates xtmp(k) of the state variable at each time point k until the slack variable s becomes equal to or less than the threshold value Ths, so as to solve an optimization problem having an evaluation function that weights and evaluates the input variable u and the state variable x, and a constraint condition g of a set number Dall 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 limit value or a lower limit value, and calculates the optimal value u*(k) of the input variable at each time point k of the prediction period based on the optimal value candidates utamp(k) of the input variable at each time point k and the optimal value candidates xtmp(k) of the state variable at each time point k. The optimum value calculation unit 53 sets the target value of the controlled variable at each time point k of the prediction period based on the optimum value u*(k) of the input variable at each time point k of the prediction period and the optimum value x*(k) of the state variable. The optimum value calculation unit 53 executes calculation processing of the optimum value for each calculation cycle to calculate the optimum value.

[0100] The optimal value calculation unit 53 sets an 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 optimal value candidate utmp(k) of the input variable at each time point k from the initial value u0(k) each time the optimal value candidate calculation is repeated, in a manner similar to solving an optimization problem.

[0101] As explained in the first embodiment, the optimum value calculation unit 53 adds or subtracts (subtracts in this example) a slack variable s to each constrained item so as to relax each constraint condition g in the constraint condition g of the set number Dall, as shown in the following equation, and constrains each constrained item to which the slack variable s has been added or subtracted by an upper or lower limit value. Then, in each optimum value candidate calculation, the optimum value calculation unit 53 sets the smallest slack variable s equal to or greater than 0, which satisfies the constraint condition g of the set number Dall. Furthermore, in this embodiment, the optimum value calculation unit 53 sets a slack variable s(k) for each time point k in the prediction period.

[0102] Here, in the constraint g of the set number Dall, in the constraint that needs to be relaxed the most (for example, i=b), that is, the constraint g for which the minimum slack variable s required to satisfy the constraint g is the largest, the inequality constraint is converted into an equality constraint as shown in the following equation. That is, by introducing the slack variable s, the inequality constraint in the constraint that needs to be relaxed the most is converted into an equality constraint, and the computational load for solving the optimization problem can be reduced.

[0103] For example, when an input variable u(k) is upper-bounded by an upper limit value uH and when an input variable u(k) is lower-bounded by a lower limit value uL, the relaxed constraint using the slack variable s(k) is expressed as follows:

[0104] The optimization problem with relaxed constraints using the slack variable s can be solved using various known methods.

[0105] <Setting the Threshold Ths> FIG. 7 illustrates the setting of the threshold Ths. FIG. 7 illustrates the constraint condition most requiring relaxation, as explained using Equation (20), and shows a case in which the constrained item is upper-bounded by an upper limit value. When the slack variable s = 0, the constrained item is equal to or less than the upper limit value. When the slack variable s > 0, the constrained item exceeds the upper limit value. When the slack variable s = threshold Ths, the constrained item exceeds the upper limit value 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 value exceeds the threshold Ths and is unacceptable. The threshold Ths is set in advance taking into account the tolerance for the upper or lower limit value. When the tolerance for the upper or lower limit value is 0, the threshold Ths may be set to 0. Even if the slack variable s exceeds the threshold Ths, the optimal value candidate calculation is executed, and the optimal value candidate utmp for the input variable and the optimal value candidate xtmp for the state variable are calculated.

[0106] <Evaluation Function Including Slack Variable s> In this embodiment, as shown in the following equation, the slack variable s is included in the input variable u evaluated by the evaluation function J. The following quadratic equation is used as the evaluation function J. The smaller the difference between the output variable y and the target value yref of the output variable, the higher the evaluation of the evaluation function J, and the smaller the input variable u is (in this example, the value becomes smaller). Furthermore, the weight R multiplied by the input variable u including the slack variable s is a diagonal matrix, and a weight is set for each item of the input variable u, and a weight Rs dedicated to the slack variable s is provided. Note that each weight is set to a positive value.

[0107] <Change in weight when slack variable s exceeds threshold value Ths> After each optimal value candidate calculation is completed, if the slack variable s exceeds threshold value Ths, the optimal value calculation unit 53 changes the weight Rs for the slack variable s in the direction of decreasing the slack variable s.

[0108] According to this configuration, after each optimum value candidate calculation is completed, the weight Rs for the slack variable s is changed in the direction of decreasing the slack variable s that relaxes the constraint condition g of the set number Dall. In the next optimum value candidate calculation, the optimum value candidates utmp for the input variables and the optimum value candidates xtmp for the state variables can be changed in the direction of decreasing the slack variable s. Even when the slack variable s is used, it is possible to individually evaluate the constrained items constrained by each constraint condition and calculate an optimum value that satisfies the constraint condition. Therefore, it is possible to individually manage the behavior of each constrained item according to each constraint condition.

[0109] When the slack variable s decreases, the constrained item of the input variable u or the state variable x changes in a direction below the upper limit value or above the lower limit value. Therefore, if the slack variable s is not equal to or less than the threshold value 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 optimum value candidate calculation, the slack variable s acts in a direction to decrease, and the constrained item of the input variable u or the state variable x acts in a direction below the upper limit value or above the lower limit value.

[0110] After each optimal value candidate calculation is completed, if the slack variable s exceeds the threshold value Ths, the optimal value calculation unit 53 changes the weight Rs for the slack variable s only in the same specific direction (positive or negative in this example) in which the slack variable s decreases.

[0111] For example, if the weight is changed in the opposite direction to the increase in the slack variable s, and a change in a specific direction and a change in the opposite direction are performed, the number of times that the optimum value candidate calculation is performed until the slack variable s becomes equal to or less than the threshold value Ths increases, and the calculation load increases. According to the above configuration, the weight for the slack variable s is changed only in the same specific direction, positive or negative, in which the slack variable s decreases, so that an increase in the number of times that the optimum value candidate calculation is performed until the slack variable s becomes equal to or less than the threshold value Ths can be suppressed.

[0112] <Changing the weight according to the excess amount> After each optimal value candidate calculation is completed, if the slack variable s exceeds the threshold value 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 value Ths.

[0113] According to this configuration, the weight Rs can be appropriately changed according to the excess amount Δs. For example, as the absolute value of the excess amount Δs increases, the increase amount ΔRs of the weight Rs is increased. This allows the amount of decrease in the absolute value of the excess amount Δs to be increased in the next optimum value candidate calculation, and reduces the number of iterations of the optimum value candidate calculation until the slack variable s becomes equal to or less than the threshold value Ths, thereby reducing the calculation load.

[0114] For example, the optimum value calculation unit 53 uses a preset change amount calculation formula in which the excess amount Δs is an input variable and the weight change amount ΔRs is an output variable to calculate the weight change amount ΔRs corresponding to the current excess amount Δs, and changes the weight Rs used in the next optimum value candidate calculation based on the weight change amount ΔRs.

[0115] For example, the optimum value calculation unit 53 uses the following change amount calculation formula to calculate a change amount ΔRs of the weight to be multiplied by the slack variable s based on the excess amount Δs of the slack variable s from the threshold value Ths, and changes the weight Rs used in the next optimum value candidate calculation according to the change amount ΔRs of the weight: where B is a positive coefficient.

[0116] Alternatively, the optimum value calculation unit 53 refers to a change amount calculation map in which the relationship between the excess amount Δs and the weight change amount ΔRs is preset, calculates the weight change amount ΔRs corresponding to the current excess amount Δs, and changes the weight Rs used in the next optimum value candidate calculation based on the weight change amount ΔRs.

[0117] <Setting Weight for Each Time Point k> As shown in the following equation, the optimum value calculation unit 53 may set a weight Rs(k) for the slack variable s(k) for each time point k in the prediction period in the evaluation function.

[0118] Then, after each optimal value candidate calculation is completed, if the slack variable s(k) exceeds the threshold value Ths at a certain point 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 point k where the threshold value Ths is exceeded in a direction in which the slack variable s(k) decreases (in this example, a positive direction).

[0119] According to this configuration, by changing the weight Rs(k) at time point k when the slack variable s(k) exceeds the threshold value Ths, it is possible to pinpoint the candidate for the optimum value at that time point k, and to prevent unnecessary influence on the calculation of the candidate for the optimum value at other time points k when the slack variable s(k) does not exceed the threshold value Ths. Note that the method for changing the weight Rs at each time point k can be any of the above-mentioned methods at each time point k, and therefore the explanation will be omitted.

[0120] <When applied to vehicle control> As in the first embodiment, the optimal value calculation unit 53 uses an input variable u related to vehicle control and a state variable x representing the behavior of the vehicle, and sets a target value of the controlled variable at each time 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 time point k in the prediction period. Furthermore, the optimal value calculation unit 53 sets constraints on the input variable u, the state variable x, the state equation, the target value of the controlled variable, and the number of settings based on the control content of the vehicle control. The optimal value calculation unit 53 also sets an output variable y of the state equation and a target value yref of the output variable based on the control content of the vehicle control. A state equation of a vehicle model is used as the state equation.

[0121] As in the first embodiment, the vehicle control is configured to selectively execute one or both of longitudinal control for controlling the longitudinal behavior of the vehicle and lateral control for controlling the lateral behavior of the vehicle. Since this is the same as the first embodiment except that the input variable u evaluated by the evaluation function J includes a slack variable s, a description thereof will be omitted.

[0122] Since the slack variable s is included in the input variable u, the input variable u and the weight R in equation (11) are changed as follows:

[0123] Since the slack variable s is included in the input variable u, the input variable u and the weight R in equation (14) are changed as follows:

[0124] Since the slack variable s is included in the input variable u, the input variable u and the weight R in equation (17) are changed as follows:

[0125] <Flowchart> An overview of the processing of the vehicle control device 50 (optimization calculation device 50) will be described with reference to the flowchart of Fig. 8. The processing of Fig. 8 is executed every calculation cycle.

[0126] In step S11, as described in the first embodiment, the information acquisition unit 51 acquires various pieces of information related to the state variable x and the input variable u used by the optimal value calculation unit 53. In this embodiment, various pieces of information related to vehicle control are acquired.

[0127] In step S12, as described in the first embodiment, the target setting unit 52 sets a target value of the state variable x (in this example, the target value yref of the output variable) to be used in the optimum value calculation unit 53. In this embodiment, the target value of the state variable x (the target value yref of the output variable) is set in accordance with the content of vehicle control.

[0128] In step S13, as described above, the optimum 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) as an input, and executes an optimum value candidate calculation to calculate a candidate utamp(k) for the optimum value of the input variable at each time point k and a candidate xamp(k) for the optimum value of the state variable, so as to solve an optimization problem having an evaluation function that weights and evaluates the input variable u and the state variable x including the slack variable s, and a relaxed constraint condition in which the constraint condition g, which is a set number Dall of 1 or more that constrains the constrained item, which is the item of the input variable u or the state variable x, by an upper limit value or a lower limit value, is relaxed by the slack variable s.

[0129] In step S14, the optimum value calculation unit 53 determines whether the slack variable s is greater than the threshold value Ths in the optimum value candidate calculation executed in step S03, and if it is greater, proceeds to step S15, and if it is not greater, proceeds to step S16.

[0130] In step S15, as described above, the optimum value calculation unit 53 changes the weight Rs for the slack variable s in the direction that decreases the slack variable s. Then, the optimum value calculation unit 53 returns to step S13 and executes the optimum value candidate calculation again using the evaluation function that uses the weight Rs for the changed slack variable s.

[0131] On the other hand, in step S16, as described above, the optimal value calculation unit 53 sets the target value of the controlled variable at each point k of the prediction period based on the optimal value u*(k) of the input variable at each point k of the prediction period and the optimal value x*(k) of the state variable.

[0132] Then, in step S07, as described in embodiment 1, the control unit 54 controls the control object (in this example, the vehicle) based on the target value of the control quantity at each point k of the prediction period set by the optimal value calculation unit 53 described later.

[0133] In the above embodiments, a vehicle model is used in the state equations to solve an optimization problem for vehicle control. 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 optimum value calculation unit 53 may set constraint conditions for the input variable u, the state variable x, and the setting number based on the control content for which the optimum value is used.

[0135] Although various exemplary embodiments and examples are described in this disclosure, the various features, aspects, and functions described in one or more embodiments are not limited to the application of a particular embodiment, but may be applied to the embodiments alone or in various combinations. Therefore, countless variations not illustrated are contemplated within the scope of the technology disclosed in this disclosure specification. For example, this includes cases where at least one component is modified, added, or omitted, or where at least one component is extracted and combined with components of another embodiment.

[0136] 50: Optimal calculation device, 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 value, 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. An optimization calculation device comprising: an optimal value calculation unit that uses a state equation that calculates state variables at each time point in a prediction period using inputs of input variables at the respective time points in the prediction period, an evaluation function that weights and evaluates the input variables and the state variables, and an optimization problem having one or more set constraint conditions that constrain constrained items that are items of the input variables or the state variables by upper or lower limits, and that repeatedly performs optimal value candidate calculations that calculate candidates for the optimal values ​​of the input variables and the state variables until the set number of constraint conditions are satisfied, and calculates optimal values ​​of the input variables and the state variables at each time point in the prediction period based on the optimal value candidates; and if any of the constraint conditions is not satisfied after the completion of each optimal value candidate calculation, the optimal value calculation unit changes the weights associated with the constrained items that are constrained by the unsatisfied constraint conditions in a direction that satisfies the constraint condition.

2. The optimization calculation device according to claim 1, wherein, after each of the optimal value candidate calculations is completed, if the constraint condition that constrains the constrained item of the input variable is not satisfied, the optimal value calculation unit changes the weight associated with the constrained item of the input variable that is constrained by the unsatisfied constraint condition in a direction in which the constraint condition is satisfied.

3. The optimization calculation device according to claim 1, wherein, after each of the optimal value candidate calculations is completed, if the constraint condition that constrains the constrained item of the state variable is not satisfied, the optimal value calculation unit changes the weight associated with the constrained item of the state variable that is constrained by the unsatisfied constraint condition in a direction in which the constraint condition is satisfied.

4. An optimization calculation device according to any one of claims 1 to 3, wherein the optimal value calculation unit sets the weight for each point in the prediction period in the evaluation function, and if the constraint condition is not satisfied at a certain point in the prediction period after each optimal value candidate calculation is completed, changes the weight for the not-satisfied point in time associated with the constrained item constrained by the not-satisfied constraint condition in a direction in which the constraint condition is satisfied.

5. An optimization calculation device according to any one of claims 1 to 3, wherein, after each of the optimal value candidate calculations is completed, if the constraint condition is not satisfied, the optimal value calculation unit changes the weight associated with the constrained item constrained by the unsatisfied constraint condition based on the amount by which the constrained item exceeds the upper limit value or the lower limit value.

6. The optimization calculation device according to claim 5, wherein the optimal value calculation unit uses a preset change amount calculation formula in which the excess amount is an input variable and the change amount of the weight is an 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 optimization calculation device according to claim 5, 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 preset, 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. An optimization calculation device according to any one of claims 1 to 3, wherein, after completion of each of the optimal value candidate calculations, if the constraint condition is not satisfied, the optimal value calculation unit changes the weight associated with the unsatisfied constrained item only in the same specific direction, positive or negative, in which the constraint condition is satisfied.

9. An optimal calculation device according to any one of claims 1 to 3, wherein the optimal value calculation unit adds or subtracts a slack variable to each of the constrained items so as to relax each of the constraint conditions in the set number of constraint conditions, constrains each of the constrained items to which the slack variable has been added or subtracted by the upper limit value or the lower limit value, and in each of the optimal value candidate calculations, sets the smallest slack variable greater than or equal to 0 such that the set number of constraint conditions are satisfied.

10. An optimization calculation device according to any one of claims 1 to 3, further comprising a control unit that controls a control object, wherein the optimal value calculation unit sets target values ​​of controlled variables at each point in the prediction period based on the optimal values ​​of the input variables and the optimal values ​​of the state variables at each point in the prediction period, and the control unit controls the controlled object based on the target values ​​of the controlled variables at each point in the prediction period.

11. The optimal calculation device according to claim 10, wherein 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 equation of the vehicle model to set target values ​​for the control quantities related to the vehicle control, and the control unit controls the vehicle based on the target values ​​for the control quantities related to the vehicle control.

12. An optimal value calculation unit that uses a state equation that calculates a state variable at each time point of a prediction period using an input of an input of an input variable at each time point of the prediction period, an evaluation function that weights and evaluates the input variables and the state variables, and an optimization problem having relaxed constraint conditions in which one or more set constraint conditions that constrain constrained items that are items of the input variables or the state variables by upper or lower limit values ​​are relaxed by slack variables, repeatedly performs an optimal value candidate calculation that calculates candidates of optimal values ​​of the input variables and the state variables until the slack variable becomes equal to or less than a threshold, and calculates optimal values ​​of the input variables and the state variables at each time point of the prediction period based on the optimal value candidates, wherein the optimal value calculation unit adds or subtracts the slack variable to each of the constrained items of each constraint condition so as to relax each of the constraint conditions in the relaxed constraint conditions, and constrains each of the constrained items to which the slack variable has been added or subtracted by the upper or lower limit value, and includes the slack variable in the input variables evaluated by the evaluation function, an optimum calculation device that, when the slack variable exceeds the threshold value after each optimum value candidate calculation is completed, changes the weight for the slack variable in a direction that reduces the slack variable; 13. The optimal value calculation unit of claim 12, wherein the optimal value calculation unit sets the slack variable for each time point in the prediction period, sets the weight for the slack variable in the evaluation function for each time point in the prediction period, and, after completion of each optimal value candidate calculation, if the slack variable exceeds the threshold at a certain time point in the prediction period, changes the weight for the slack variable at the time when the slack variable exceeds the threshold in a direction in which the slack variable decreases.

14. An optimal calculation device as described in claim 12 or 13, wherein, after completion of each optimal value candidate calculation, if the slack variable exceeds the threshold, the optimal value calculation unit changes the weight for the slack variable based on the amount by which the slack variable exceeds the threshold.

15. The optimization calculation device according to claim 14, wherein the optimal value calculation unit uses a preset change amount calculation formula in which the excess amount is an input variable and the change amount of the weight is an 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. An optimization calculation device as described in 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 weight is preset, calculates the change amount of weight corresponding to the current excess amount, and changes the weight for the slack variable according to the change amount of weight.

17. An optimal calculation device as described in claim 12 or 13, wherein, after completion of each optimal value candidate calculation, if the slack variable exceeds the threshold value, the optimal value calculation unit changes the weight for the slack variable only in the same specific direction, positive or negative, in which the slack variable decreases.

18. An optimization calculation device as described in claim 12 or 13, further comprising a control unit that controls a control object, wherein the optimal value calculation unit sets target values ​​of controlled variables at each point in the prediction period based on the optimal values ​​of the input variables and the optimal values ​​of the state variables at each point in the prediction period, and the control unit controls the controlled object based on the target values ​​of the controlled variables at each point in the prediction period.

19. An optimal calculation device as described in claim 18, wherein 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 equation of a vehicle model to set target values ​​for the control quantities related to the vehicle control, and the control unit controls the vehicle based on the target values ​​for the control quantities related to the vehicle control.

Citation Information

Patent Citations

  • Travel support method and travel support device

    JP2020026189A

  • Operation control apparatus

    JP2022150606A

  • Control device

    JP2024022942A