AI控制下的换挡策略提升

换挡规律优化是有级式自动变速器控制系统的核心问题之一,它直接影响着车辆的驾驶性能和整车经济性能。换挡规律是通过控制一些车辆参数来确定换挡决策和换挡时间。一个精确合理的换挡规律对改善汽车的动力性及燃油经济性具有显著的理论研究价值和实际意义。因此,许多汽车制造商、大学和科研机构都试图优化换挡规律来增强汽车性能。在传统的方法中,通常只是考虑一个优化性能指标,例如动力性或者燃油经济性,但这样优化出来的换挡规律并不能充分发挥出汽车的整体性能。本次毕业设计拟根据环境、道路、行驶车况等信息,基于AI的智能化思想,对变速器的换挡曲线进行升级优化
大概是想通过MATLAB求解汽车的最佳动力性与最佳经济性换挡曲线,之后利用MATLAB的神经网络在不同路况下对于换挡曲线进行优化。请问有没有人可以给与代码予以参照的。最好是对代码有一定解释

换挡控制
https://github.com/btknzn/Autonomous-Route-following-system-for-small-degree-routes/blob/master/515projerapor%20(2).pdf 代码参考

参考https://wenku.baidu.com/view/c6c21158abea998fcc22bcd126fff705cc175cc9.html

自动变速器控制器建模:https://ww2.mathworks.cn/help/simulink/slref/modeling-an-automatic-transmission-controller.html
电动车AMT换挡规律研究——换挡点计算:https://blog.csdn.net/Gengxiao1996/article/details/106710609

可以参考这个

1、经济换挡策略就是在发动机转速允许的情况下优先选用高档。
2、确实需要根据万有特性曲线进行计算,寻找最省油的换挡点,然后将其绘制成二维的换挡图,根据车速和油门确定档位。

参考链接:

机械式自动变速器为非动力换挡,换挡品质是AMT换挡控制的关键。分析了换挡过程的控制策略对换挡品质的影响。在恢复动力过程中,离合器在同步时刻主从动盘转速差的变化率与车辆加速度的突变量成正比。车辆加速度变化较大时会引起使乘员感到不舒适的车辆冲击和振荡。笔者提出了通过发动机和离合器的协调控制使同步时刻离合器主从动盘转速差的变化率小于设定范围的控制策略。道路试验表明,该控制策略改善了换挡品质。

首先,自动换挡策略提升,涉及到的技术领域比较广泛,会用到测距技术、摄像头以及传感器等,能够根据路况信息和车速,能够自动调整档位和速度,肯定也离不开汽车域控制器技术,具体的可以参考如下链接https://www.cnblogs.com/wujianming-110117/p/16181366.html

你这个就分步优化呗,动力性和燃油经济都有人做过了,你现在是做一个同时两者都能优化的方案,找一下神经网络或者深度学习模型试一下,这个研究方向应该很成熟了

我的车是自动挡的,发现提速时有明显换挡顿挫感,感觉是换挡算法不行。

看看这个:https://blog.csdn.net/weixin_34619335/article/details/115835234

参考这篇文章,进行算法的优化
https://mp.weixin.qq.com/s/5ZN81g0PsY4euGFQhnjy2w

百度智能驾驶
https://github.com/ApolloAuto/apollo
汽车电控理论_变速器_换挡策略
https://wenku.baidu.com/view/9a9b3a00571810a6f524ccbff121dd36a22dc4d1.html

传统汽车无论是从节能环保还是舒适性来说已不再能满足现代人对于汽车的追求,以电动汽车为特色的新能源汽车应运而生。通过改变汽车的动力装置,打破传统手动变速器的局限来提高汽车的动力性、舒适性和经济性。纯电动汽车是指汽车形势所需要的动力全部来源于电机,汽车通过本身携带的储电装置及可充电的电池组提供电能驱动。AMT机械式自动变速器与电动汽车的结合减轻了驾驶员的操作负担,提高了汽车动力性能和换挡时的平稳性。本文通过研究纯电动汽车AMT两档换挡规律及利用Matlab仿真分析,以验证换档策略的可行性。

img

这是之前我在网上找的一些经济性换挡曲线的求解代码,你可以参考一下

clear; clc;
format long
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%从AMESim中获得的车辆参数,变最为全局变量Vs=2;
t=4;    %发动机行程数t
rou=l.226;
al=O;    %坡度
V_windspeed=O;    %风速(m/s)
ig= [3.608,2.05,1.237,0.91,0.747];    %5档变速器各档速比 空挡传动比设为0 igb= [l,2,3,4,5,];        %6个前进档位和一个空挡i0=4.05;

g=9.80665; Jw=2; r=0.301; Mass=1470; S=l; Cx=0.3; f=0.01;
Ff=Mass*g*f*cos(al); Fi=Mass*g*sin(al);

%重力加速度(m/s-2)
%车轮惯最(kg.m-2) 问还用考虑发动机的转动惯最吗
%轮胎半径m
%汽车总质量(kg)问转动惯量与质量之间的关系? ?
%迎风面积(m-2)
%空气阻力系数
%滚动阻力系数
%滚动阻力(N)
%坡度阻力(N)

rou—g=O.725;    %汽油的密度(g/ml)    g/ml=kg/1 =(1/g) n/1 fuel_initial=2000;
itatgb=0.98;    %变速器各挡齿轮的效率均设为0.98
itatfd=0.98;    %主减速器传动效率均设为0.98 itat=itatgb*itatfd;
Tb=O;    %一般机械制动力为0
Cl=0.055;    %换挡频繁惩罚系数,待定
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
load engine/Engine_be_Data.mat    %燃油消耗率be(g/kw.h)
load engine/Engine_BMEP—Axis.mat    %平均有效压力BMEP(bar) lbar=O.lMpa

load engine/engine_RPM_Axis.mat load engine/engine_Torque_max.mat figure;

%发动机转速n(r/min)
%发动机最大力矩

%绘制发动机的扭矩特性曲线    为 什 么 要 画 ? ? ? ? ? plot(engine—RPM—Axis,engine—Torque_max,'r');    %发动机的扭矩特性 转速与最大转矩之间的关系xlabel('发动机转速n/(r/min)','fontweight','bold');
ylabel(' 发动机最大转矩Ttq/(N.m)','fontweight','bold');
figure; for i=l: 12

end

engine—p—m(i)=engine—RPM—Axis(i).*pi/30.*engine_Torque—max(i);

%发动机的最大功率表达式

plot(engine_RPM_Axis,engine_F_m,'r');
xlabel('发动机转速n/(r/min)','fontweight','bold'); ylabel('发动机最大功率P_m/(w)','fontweight','bold');
Ttq=(Engine_BMEP_Axis*O.1).*Vs./(0.00314*t);    %有效转矩Ttq(N.m)与有效平均压力BMEP(Mpa)的关系
%绘制万有特性曲线三维图    为什么要画? ? ? ? ?

figure;
mesh(engine_RPM_Axis',Ttq',Engine_be_Data');    %跟数据在be中写的方式有关,用到转置xlabel('发动机转速n/(r/min)','fontweight','bold');
ylabel('发动机有效转矩Ttq/(N.m)','fontweight','bold');
zlabel(' 燃油消耗率be/(g/(kw.h))','fontweight','bold');  %%%% 这个地方燃油消耗率和功率有关? ? ? ?不是和/扭矩? ?
title(' 发动机万有特性三维图); figure;
%万有特性曲线平面图(投影图)    为什么要画? ? ? ? [c,h]=contour(engine_RPM_Axis',Ttq',Engine_be—Data', ,/
[110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,36✓ 0,370,380,390,400,410,420,430,440,450,460,470,480,490,500,520,540,560,580,600,700,800,900,1000,1100,120✓
0,1300,1400,1500,1600,1700,1800,1900]);
set(h,'ShowText','on');
xlabel(' 发动机转速n/(r/min)','fontweight','bold'); ylabel('发动机有效转矩Ttq/(N.m)','fontweight','bold'); title(' 发动机万有特性投影图');
hold on
plot(engine—RPM—Axis,engine—Torque_max,'r');
%经济性换挡规律

for i=l:10    %代表的可能是油门开度    从10%到100%变化    总共生成了10张档位线图 load zsa        % 发动机的 转速值    lx12的矩阵格式
load zja    %    发动机的转矩值
zJa=zja'; %这一步是千什么用的? ? ? ? ?后面的上单引号是什么作用? ? ? 阵形式。
Tm=zJa(i,:);    %取zJade第一行的值    一共是12个数据figure;
Vl=O.377*zsa*r/ig(1)/iO;    %单位km/h    车速的计算公式

bel=griddata(engine_RPM_Axis',Ttq',Engine_be_Data',zsa,Tm);% zsa 是横坐标值是 发动机的转速坐标值 有效转矩, Engine_be_Data是一个函数表达式的意思    计算的是燃汕消耗率plot(Vl,bel,'r');
hold on V2=0.377*zsa*r/ig(2)/i0;%单位km/h plot(V2,bel,'b'); V3=0.377*zsa*r/ig(3)/i0;%单位km/h plot(V3,bel,'g');
hold  on V4=0.377*zsa*r/ig(4)/i0;%单位km/h plot(V4,bel,'k');
hold on V5=0.377*zsa*r/ig(5)/i0;%单位km/h plot(V5,bel,'y');
hold on
xlabel (' 车速v/(km/h)');
ylabel (' 燃汕消耗率be/(g/ Ckw/h))');
legend('1挡','2挡','3挡','4挡','5挡' )