自适应巡航控制系统研究(Matlab代码实现)

简介: 自适应巡航控制系统研究(Matlab代码实现)

💥1 概述

据统计, 我国交通事故造成的伤亡人数每年超过10万人, 其中驾驶员人为原因 (疲劳、酒驾、误操作等) 所致事故逐渐升高.汽车交通事故引起的人员伤亡、经济损失、道路拥堵等已演变成重大社会问题.


为解决上述问题, 交通法规、安全技术等各种交通安全措施随之诞生并不断发展, 其中汽车安全技术是保障道路交通安全的关键.汽车安全技术分为被动安全技术和主动安全技术.从20世纪80年代开始的安全气囊、安全带等被动安全技术, 再到90年代逐渐出现且成为标配的制动防抱死系统 (antilock braking system, ABS) 、电子稳定控制(electronic stability control, ESC) 系统等主动安全技术, 都在一定程度上起到了保证人们财产安全的作用.进入21世纪, 汽车主动安全技术愈发被重视, 从预警系统、独立控制、集成控制、智能驾驶到无人驾驶等主动安全技术方面都获得了飞速发展, 其中自适应巡航控制(adaptive cruise control, ACC) 、车道偏离预警 (lane departure warning, LDW) 、前方碰撞预警 (front collision warning, FCW) 等汽车先进驾驶辅助系统 (advanced driver assistance systems, ADAS) 成为防止交通事故的新一代前沿技术.


📚2 运行结果

主函数部分代码:

clear
clc
close all
%addpath(fullfile(matlabroot,'examples','mpc','main'));
global mdl Ts T G_ego t_gap D_default v_set amin_ego amax_ego
global x0_lead v0_lead x0_ego v0_ego seed
mdl = 'mpcACCsystem';
open_system(mdl)
% Generate training data
[inputs_cell, output_cell] = generateOnetrace();
inputs_test = inputs_cell;
output_test = output_cell;
for i = 1:20
    [input1, output1] = generateOnetrace();
    inputs_cell = catsamples(inputs_cell, input1, 'pad');
    output_cell = catsamples(output_cell, output1, 'pad');
end
%% Construct NN controller
S = [10,10,10];
mrac_net = feedforwardnet(S);
for i = 1:length(S)
    mrac_net.layers{i}.transferFcn = 'poslin';
end
mrac_net.layers{length(S)+1}.transferFcn = 'purelin';
mrac_net.inputs{1}.processFcns = {};
mrac_net.outputs{length(S)+1}.processFcns = {};
% mrac_net.layerConnect = [0 0 0 1;1 0 0 0;0 1 0 0;0 0 1 0];
%  mrac_net.layerWeights{1,4}.delays = 1:2;
mrac_net = configure(mrac_net,inputs_cell,output_cell);
mrac_net.plotFcns = {'plotperform','plottrainstate',...
    'ploterrhist','plotregression','plotresponse'};
mrac_net.trainFcn = 'trainlm';
[x_tot,xi_tot,ai_tot,t_tot] = ...
            preparets(mrac_net,inputs_cell,output_cell);
mrac_net.trainParam.epochs = 500;
mrac_net.trainParam.min_grad = 1e-10;
[mrac_net,tr] = train(mrac_net,x_tot,t_tot,xi_tot,ai_tot);
testoutseq = mrac_net(inputs_test);
testout = cell2mat(testoutseq);
figure
plot(testout,'r');
hold on 
plot(cell2mat(output_test),'b')
hold off
%generate simlink nn
%gensim(mrac_net)
% store weights to network
% weights(1) = mrac_net.IW(1,1);
% for i = 1:length(S)
%     weights(i+1) = mrac_net.LW(i+1,i);
% end
% bias = mrac_net.b;
% 
% network.weights = weights;
% network.bias = bias;
% save network
%% Remove example file folder from MATLAB path, and close Simulink model.
rmpath(fullfile(matlabroot,'examples','mpc','main'));


🎉3 参考文献

[1]吴光强,张亮修,刘兆勇等.汽车自适应巡航控制系统研究现状与发展趋势[J].同济大学学报(自然科学版),2017,45(04):544-553.

部分理论引用网络文献,若有侵权联系博主删除。

相关文章
|
6天前
|
数据可视化 算法
MATLAB Simulink 交交变流电路性能研究
MATLAB Simulink 交交变流电路性能研究
10 2
|
6天前
|
数据可视化 算法
MATLAB Simulink 直流斩波电路性能研究
MATLAB Simulink 直流斩波电路性能研究
15 1
|
6天前
|
数据可视化 算法
MATLAB Simulink 逆变电路性能研究
MATLAB Simulink 逆变电路性能研究
11 1
|
6天前
|
数据可视化 算法
MATLAB Simulink 三相整流电路性能研究
MATLAB Simulink 三相整流电路性能研究
10 1
|
6天前
|
数据可视化 算法
MATLAB Simulink 单相桥式整流电路性能研究
MATLAB Simulink 单相桥式整流电路性能研究
8 2
|
6天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
6天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
6天前
|
算法 调度
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
|
6天前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)

热门文章

最新文章