💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
自适应巡航控制 (ACC) 系统又称主动巡航控制系统, 是在传统定速巡航控制基础上结合了车距保持功能, 利用车载雷达探测前方行驶环境, 通过控制节气门和制动系统自动调整车速, 提高驾驶舒适性和安全性.
ACC的历史可以追溯至20世纪70年代, 1971年, 美国EATON (伊顿) 公司便已从事这方面的开发, 其雏形是日本三菱公司提出的PDC (preview distance control) 系统.1995年三菱汽车在日本市场推出首款ACC系统, 此后丰田、本田、通用、福特、戴姆勒、博世等公司也投入研发行列.纵观ACC系统的发展历程, 可以分为三个阶段:第一阶段为20世纪90年代初针对高速公
路的ACC系统, 主要实现定速巡航和安全车距功能;第二阶段为20世纪90年代末针对城市工况的ACC系统, 即起-停巡航系统 (stop&go cruise control, SG-ACC) , 实现自动起步、停车和低速跟车功能;第三阶段为21世纪初至今综合考虑燃油经济性、跟踪性能和驾驶员感受的多目标协调式ACC系统.此外, ACC的功能也在不断扩展,如将ACC与车道保持相结合、ACC与避撞相结合、ACC与车道变更相结合等, 突破传统ACC仅纵向跟车功能局限, 进一步实现汽车辅助安全驾驶.
本文基于预测控制模型的自适应巡航控制仿真与机器人实现:
- 在两辆车之间已经达到了近乎精确的纵向模型
- 试图使控制响应接近可行性和真实条件。
- 满足防撞和保持安全距离,前车为主要目标,舒适性为次要目标。(控制应用于以下汽车)
- 在 MATLAB 上应用实现和仿真。
📚2 运行结果


主函数部分代码:
clear ;
close all;
clc
% Define the sample time, |Ts|, and simulation duration, |t|, in seconds.
t0 = 0;
Ts = 0.1;
Tf = 100;
t = t0:Ts:Tf;
Nt = numel(t);
% Specify the initial position and velocity for the two vehicles.
%x0_lead = 0; %Initial position of lead car (m)
%v0_lead = 0; %Initial velocity of lead car (m/s)
%x0_ego = 0; %Initial position of ego car (m)
%v0_ego = 0; %Initial velocity of ego car (m/s)
% The safe distance between the lead car and the ego car is a function
% of the ego car velocity, $V_{ego}$:
%
% $$ D_{safe} = D_{default} + T_{gap}\times V_{ego} $$
%
% where $D_{default}$ is the standstill default spacing and $T_{gap}$ is
% the time gap between the vehicles. Specify values for $D_{default}$, in
% meters, and $T_{gap}$, in seconds.
t_gap = 1.4;
D_default = 10;
% Specify the driver-set velocity in m/s.
v_set = 30;
% Considering the physical limitations of the vehicle dynamics, the
% acceleration is constrained to the range |[-3,2]| (m/s^2).
a_max = 2; da_max = 0.15;
a_min = -3; da_min = -0.2;
% the relationship between the actual acceleration and the desired
% acceleration of the host vehicle satisfies the following conditions
%
% $$ a(k+1) = (1-\frac{Ts}{\tau}) \times a(k) + \frac{Ts}{\tau} \times u(k)$$
%
% where $ \tau $ is the time lag of the ACC system
tau = 0.3;
%Np = 20 ; % Prediction Horizon
%Nc = 20 ; % Control Horizon
%% Examples
% In this section we want to try to specify the various parameters
% of the machine for different simulation
%EX.1
% N = 5;
% Np = 20 ; % Prediction Horizon
% Nc = 5 ; % Control Horizon
% x0_ego = 0;
% v0_ego = 0;
% x0_lead = 50;
% v0_lead = 15;
% a_lead = 0.3*sin(2*pi*0.03*t); % Acceleration of lead car is a disturbance for our plant;
% [lead_car_position , lead_car_velocity] = lead_car_simulation(x0_lead,v0_lead,a_lead,t,Ts ,tau);
% EX.2
N = 5;
Np = 20 ; % Prediction Horizon
Nc = 15 ; % Control Horizon
x0_ego = 0;
v0_ego = 0;
x0_lead = 20;
v0_lead = 5;
a_lead = [1*(1-exp(-0.5*t(1:floor(Nt/5)))) ,0.5+0.5*exp(-0.5*t(1:floor(Nt/5))) , -0.5+exp(-0.5*t(1:floor(Nt/5))) ,-0.5*exp(-0.5*t(1:floor(Nt/5))) , zeros(1,floor(Nt/5)+1)];
[lead_car_position , lead_car_velocity] = lead_car_simulation(x0_lead,v0_lead,a_lead,t,Ts ,tau);
% % % EX.3
% Np = 20 ; % Prediction Horizon
% Nc = 15 ; % Control Horizon
% x0_ego = 0;
% v0_ego = 0;
% x0_lead = 1500;
% v0_lead = 0;
% a_lead = zeros(1,Nt) ;
% [lead_car_position , lead_car_velocity] = lead_car_simulation(x0_lead,v0_lead,a_lead,t,Ts ,tau);
%% Car State Space Model
Am=[1 Ts 0.5*Ts^2
0 1 Ts
0 0 1-Ts/tau ];
Bm=[0 ; 0 ; Ts/tau];
Cm=[1 0 0
0 1 0];
n = size(Am , 1) ; % number of eigenvalues
q = size(Cm , 1) ; % number of outputs
m = size(Bm , 2) ; % number of inputs
[A , B , C] = AugemenFun(Am , Bm , Cm) ;
a = 0.5 ;
[Al , L0] = LagFun(N,a);
L = zeros( N , Nc );
L( : , 1) = L0 ;
for i = 2:Nc
L(:,i) = Al*L(: , i-1) ;
end
🎉3 参考文献
[1]吴光强,张亮修,刘兆勇,郭晓晓.汽车自适应巡航控制系统研究现状与发展趋势[J].同济大学学报(自然科学版),2017,45(04):544-553.
部分理论引用网络文献,若有侵权联系博主删除。




















