汽车理论学习笔记(一)- 汽车动力性 - Matlab及Simulink仿真

news/2024/12/4 8:25:28/

前言:由于后续要从事汽车行业,所以这段时间对《汽车理论》这本书进行了系统的学习,并利用Matlab、Simulink对汽车的动力性、操纵稳定性、平顺性等进行了仿真,加深了对汽车理论的理解。开启这个系列是对自己学习内容的一个总结,也希望能够和优秀的前辈们多学习经验。本系列的全部代码及模型(带注释)都会放到百度云盘里共享,欢迎大家一起交流。

一、汽车的动力性指标

汽车的动力性主要可由三方面的指标来评定:

  • 汽车的最高车速 umax:在水平良好的直线道路(混凝土或沥青)上汽车能达到的最高行驶稳定车速。
  • 汽车的加速时间 t:原地起步加速时间(汽车由I档或Ⅱ档起步,并以最大的加速强度逐步换至最高档后到某一预定的距离或车速所需的时间)、超车加速时间(由最高档或次高档由某一较低车速全力加速至某一高速所需的时间)。
  • 汽车的最大爬坡度 imax: 表征汽车的上坡能力。

二、汽车驱动力-行驶阻力平衡图

汽车的驱动力

驱动力 Ft 是由发动机的转矩 Ttq 经传动系统传至驱动轮上得到的。用Tt 表示驱动轮上的转矩,用ig表示变速器的传动比,i0表示主减速器的传动比,nt表示传动系统的机械效率,则有:
T t = T t q ⋅ i g ⋅ i 0 ⋅ n t T_t = T_{tq}\cdot i_g\cdot i_0\cdot nt Tt=Ttqigi0nt
汽车的驱动力 F t = T t / r F_t = T_t / r Ft=Tt/r
因此有: F t = T t q ⋅ i g ⋅ i 0 ⋅ n t / r F_t = T_{tq}\cdot i_g\cdot i_0\cdot nt / r Ft=Ttqigi0nt/r

发动机转矩曲线

由试验测得的转矩特性曲线如下:

发动机转速 n/(r/min)100015002000250030003500400045005000
发动机转矩 Ttq /(N.m)78.683.085.086.687.185.984.782.580.5

利用matlab的工具 Curve Fitting Tool可模拟出发动机转矩与转速的关系函数
在matlab命令行中输入:cftool,即可调用曲线拟合工具箱。利用“X data”和“Y data”下拉菜单读入转速数据和转矩数据T,选择多项式函数“Polynomial”,再选择拟合阶数“3”;自动拟合,就会在结果窗口和曲线窗口显示出拟合结果,如下图所示:

Matlab cftool工具箱由此可得转矩与转速的关系函数:

Tq = 65.07 + 0.01756 * n - (4.225e-6) * n.^2 + (2.714e-10) * n.^3;  % 计算发动机转矩

发动机转速与汽车行驶速度之间的关系式为:
u a = 0.377 ∗ r ∗ n / ( i g ∗ i 0 ) u_a = 0.377*r*n/(i_g*i_0) ua=0.377rn/(igi0) 其中,r为车轮半径(m),n为发动机转速(r/min),ig 表示变速器的传动比,i0 表示主减速器的传动比。

汽车的行驶阻力

汽车在水平道路上等速行驶时,必须克服来自地面的滚动阻力 Ff 和来自空气的空气阻力 Fw 。当汽车在坡道上上坡行驶时,还必须克服重力沿坡道的分力,称为坡道阻力 Fi 。当汽车加速时,还需克服加速阻力 Fj 。因此汽车行驶的总阻力为:
Σ F = F f + F w + F i + F j ΣF = F_f +F_w+F_i+F_j ΣF=Ff+Fw+Fi+Fj

  • 滚动阻力: F f = m ∗ g ∗ f F_f = m*g*f Ff=mgf 其中,f为滚动阻力系数。
  • 空气阻力: F w = C D ∗ A ∗ u a 2 / 21.15 F_w = C_D * A * u_a^2 / 21.15 Fw=CDAua2/21.15 其中,CD为空气阻力系数,A为汽车迎风面积,单位为m^2,ua为汽车行驶速度,单位为km/h。
  • 坡道阻力: F i = m ∗ g ∗ s i n a F_i = m*g*sina Fi=mgsina 其中a为坡道角度。
  • 加速阻力:汽车加速行驶时,需要克服其质量加速运动时的惯性力,就是加速阻力Fj
    F j = d e l t a ∗ m ∗ d u / d t F_j = delta*m*du/dt Fj=deltamdu/dt 其中delta为汽车旋转质量换算系数,主要与车轮的转动惯量、传动比有关,delta>1,du/dt为行驶加速度,单位为m/s2。

实例Matlab代码

%% 1、绘制驱动力-行驶阻力平衡图
% 发动机转矩与转速曲线
% n = [1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000];
% T = [78.6, 83.0, 85.0, 86.6, 87.1, 85.9, 84.7, 82.5, 80.5];% 通过matlab的cftool工具箱,拟合出转速与转矩的三阶函数。
n = 800:10:6800;                                                    % 定义转速范围
Tq = 65.07 + 0.01756 * n - (4.225e-6) * n.^2 + (2.714e-10) * n.^3;  % 计算发动机转矩% 汽车参数赋值
m = 936;                                  % 汽车质量
g = 9.8;                                  % 重力加速度
r = 0.272;                                % 车轮半径
nt = 0.9;                                 % 传动效率
CD = 0.3;                                 % 空气阻力系数
A = 1.75;                                 % 迎风正面面积
f = 0.012;                                % 滚动阻力系数
i0 = 4.388;                               % 主减速比
ig = [3.416, 1.894, 1.28, 1.00, 0.757];   % 变速器各档传动比% 通过转矩来计算驱动力
Ft1 = Tq * ig(1) * i0 * nt / r;           % 计算一档驱动力
Ft2 = Tq * ig(2) * i0 * nt / r;           % 计算二档驱动力
Ft3 = Tq * ig(3) * i0 * nt / r;           % 计算三档驱动力
Ft4 = Tq * ig(4) * i0 * nt / r;           % 计算四档驱动力
Ft5 = Tq * ig(5) * i0 * nt / r;           % 计算五档驱动力% 通过转速来计算速度
ua1 = 0.377 * r * n / ig(1) / i0;         % 计算一档速度
ua2 = 0.377 * r * n / ig(2) / i0;         % 计算二档速度
ua3 = 0.377 * r * n / ig(3) / i0;         % 计算三档速度
ua4 = 0.377 * r * n / ig(4) / i0;         % 计算四档速度
ua5 = 0.377 * r * n / ig(5) / i0;         % 计算五档速度ua = 0 : 5 : 200;                         % 设置速度范围
Ff = m * g * f;                           % 计算滚动阻力
Fw = CD * A * ua.^2 / 21.15;              % 计算空气阻力
F = Ff + Fw;                              % 计算滚动阻力与空气阻力之和% 绘制汽车驱动力-行驶阻力平衡图
figure(1)
plot(ua1, Ft1, ua2, Ft2, ua3, Ft3, ua4, Ft4, ua5, Ft5, ua, F);
xlabel('车速 / (km/h)');
ylabel('汽车驱动力/行驶阻力 / N')
text(35, 4100, 'Ft1'), text(55, 2300, 'Ft2'), text(100, 1600, 'Ft3'), text(140, 1200, 'Ft4'), text(200, 900, 'Ft5');
text(175, 1150, 'Ff + Fw');% 求出最高速度umax
Fw5 = CD * A * ua5.^2 / 21.15;           % 计算五档空气阻力
Fz1 = Ff + Fw5;           % 计算五档滚动阻力与空气阻力之和(求最高速度时只考虑滚动阻力和空气阻力)
k = find(abs(Ft5 - Fz1) < 1.5);
umax = ua5(k);
fprintf('最高车速 Vmax = %.2f km/h\n', umax);%% 2、绘制各档加速度曲线图
dt1 = 1.03 + 0.04 * ig(1);              % 计算一档旋转质量换算系数
dt2 = 1.03 + 0.04 * ig(2);              % 计算二档旋转质量换算系数
dt3 = 1.03 + 0.04 * ig(3);              % 计算三档旋转质量换算系数
dt4 = 1.03 + 0.04 * ig(4);              % 计算四档旋转质量换算系数
dt5 = 1.03 + 0.04 * ig(5);              % 计算五档旋转质量换算系数Fw1 = CD * A * ua1.^2 / 21.15;          % 计算一档空气阻力
Fw2 = CD * A * ua2.^2 / 21.15;          % 计算二档空气阻力
Fw3 = CD * A * ua3.^2 / 21.15;          % 计算三档空气阻力
Fw4 = CD * A * ua4.^2 / 21.15;          % 计算四档空气阻力a1 = (Ft1 - Ff - Fw1) / dt1 / m;        % 计算一档加速度
a2 = (Ft2 - Ff - Fw2) / dt2 / m;        % 计算二档加速度
a3 = (Ft3 - Ff - Fw3) / dt3 / m;        % 计算三档加速度
a4 = (Ft4 - Ff - Fw4) / dt4 / m;        % 计算四档加速度
a5 = (Ft5 - Ff - Fw5) / dt5 / m;        % 计算五档加速度% 绘制各档加速度曲线图
figure(2)
plot(ua1, a1, ua2, a2, ua3, a3, ua4, a4, ua5, a5);
xlabel('车速 / (km/h)');
ylabel('加速度 / (m/s^2)');
text(35, 3.7, '一档');
text(55, 2.2, '二档');
text(85, 1.3, '三档');
text(120, 0.8, '四档');
text(150, 0.3, '五档');%% 3、计算爬坡度曲线
i1 = asin((Ft1 - Ff - Fw1) / m / g);    % 计算一档爬坡度
i2 = asin((Ft2 - Ff - Fw2) / m / g);    % 计算二档爬坡度
i3 = asin((Ft3 - Ff - Fw3) / m / g);    % 计算三档爬坡度
i4 = asin((Ft4 - Ff - Fw4) / m / g);    % 计算四档爬坡度
i5 = asin((Ft5 - Ff - Fw5) / m / g);    % 计算五档爬坡度
figure(3)
plot(ua1, i1, ua2, i2, ua3, i3, ua4, i4, ua5, i5);
xlabel('车速 / (km/h)');
ylabel('爬坡度 / rad');
text(35, 0.45, '一档');
text(55, 0.25, '二档');
text(85, 0.15, '三档');
text(120, 0.1, '四档');
text(150, 0.05, '五档');

结果如下图所示:
驱动力-阻力平衡图、汽车加速度、爬坡度

三、汽车动力特性图

利用汽车驱动力-行驶阻力平衡图可以确定汽车的动力性,但不能直接用来评价不同种类汽车的动力性。因为汽车的种类不同,其重量或外形也有所不同,因此各行驶阻力也不同,也就是说即使驱动力相近的汽车,其动力性也不相近。因此需要找一个既考虑驱动力,又兼顾汽车自重和空气阻力的综合性参数:汽车动力因数
通常把汽车动力因数作为表征汽车动力特性的指标,表示单位车重所具有的克服道路阻力加速阻力的能力。汽车动力因数表达式如下:
D = ( F t − F w ) / m g D = (F_t - F_w) / mg D=(FtFw)/mg 汽车动力因数D和速度u的关系图称为汽车动力特性图。
由汽车驱动力-行驶阻力平衡关系式可得: Σ F = F f + F w + F i + F j ΣF = F_f +F_w+F_i+F_j ΣF=Ff+Fw+Fi+Fj F t − F w = F f + F i + F j F_t - F_w = F_f +F_i+F_j FtFw=Ff+Fi+Fj ( F t − F w ) / m g = ( F f + F i + F j ) / m g (F_t - F_w)/mg = (F_f +F_i+F_j)/mg (FtFw)/mg=(Ff+Fi+Fj)/mg 加速时不考虑坡道阻力,则汽车的加速度与动力因数的关系式为: D = f + d e l t a / g ∗ d u / d t D = f+delta/g * du/dt D=f+delta/gdu/dt d u / d t = ( D − f ) ∗ g / d e l t a du/dt = (D-f)*g/delta du/dt=(Df)g/delta

实例Matlab代码

%% 4、汽车动力特性图
Dt1 = (Ft1 - Fw1) / m / g;      % 计算一档动力因数
Dt2 = (Ft2 - Fw2) / m / g;      % 计算二档动力因数
Dt3 = (Ft3 - Fw3) / m / g;      % 计算三档动力因数
Dt4 = (Ft4 - Fw4) / m / g;      % 计算四档动力因数
Dt5 = (Ft5 - Fw5) / m / g;      % 计算五档动力因数
f = (F - Fw) / m / g;           % 滚动阻力系数填进和ua维度一致的矩阵% 汽车动力特性图
figure(4)
plot(ua1, Dt1, ua2, Dt2, ua3, Dt3, ua4, Dt4, ua5, Dt5, ua, f);
xlabel('车速 / (km/h)');
ylabel('汽车动力因数');
text(50, 0.45, '一档');
text(50, 0.28, '二档');
text(100, 0.2, '三档');
text(150, 0.1, '四档');
text(170, -0.05, '五档');
text(180, 0.03, '滚动阻力系数');f = 0.012;
k = find(abs(Dt5 - f) < 0.001);
uamax = ua5(k);
fprintf('最高车速 Vmax = %.2f km/h \n', umax);a1 = g * (Dt1 - f) / dt1;       % 计算一档加速度
a2 = g * (Dt2 - f) / dt2;       % 计算一档加速度
a3 = g * (Dt3 - f) / dt3;       % 计算一档加速度
a4 = g * (Dt4 - f) / dt4;       % 计算一档加速度
a5 = g * (Dt5 - f) / dt5;       % 计算一档加速度
figure(5)
plot(ua1, a1, ua2, a2, ua3, a3, ua4, a4, ua5, a5);
xlabel('车速 / (km/h)');
ylabel('加速度 / (m/s^2)');
text(35, 3.7, '一档');
text(55, 2.2, '二档');
text(85, 1.3, '三档');
text(120, 0.8, '四档');
text(150, 0.3, '五档');% 计算爬坡度曲线
i1 = asin(Dt1 - f.*(1 - Dt1.^2 + f.^2).^0.5) ./ (1+f.^2);   % 计算一档爬坡度
i2 = asin(Dt2 - f.*(1 - Dt2.^2 + f.^2).^0.5) ./ (1+f.^2);   % 计算一档爬坡度
i3 = asin(Dt3 - f.*(1 - Dt3.^2 + f.^2).^0.5) ./ (1+f.^2);   % 计算一档爬坡度
i4 = asin(Dt4 - f.*(1 - Dt4.^2 + f.^2).^0.5) ./ (1+f.^2);   % 计算一档爬坡度
i5 = asin(Dt5 - f.*(1 - Dt5.^2 + f.^2).^0.5) ./ (1+f.^2);   % 计算一档爬坡度
figure(6)
plot(ua1, i1, ua2, i2, ua3, i3, ua4, i4, ua5, i5);
xlabel('车速 / (km/h)');
ylabel('爬坡度 / rad');
text(35, 0.45, '一档');
text(55, 0.25, '二档');
text(85, 0.15, '三档');
text(120, 0.1, '四档');
text(150, 0.05, '五档');

四、汽车功率平衡图

将汽车行驶方程式两边乘以行驶车速ua,并经单位换算整理得出汽车功率平衡方程式。
发动机功率为: P e = F t ∗ u a / 3600 P_e = F_t*u_a/3600 Pe=Ftua/3600 滚动阻力功率为: P f = m ∗ g ∗ f ∗ u a ∗ c o s ( a l p h a ) / 3600 P_f = m*g*f*u_a*cos(alpha) / 3600 Pf=mgfuacos(alpha)/3600 空气阻力功率为: P w = C D ∗ A ∗ U 3 / 76140 P_w = C_D*A*U^3/76140 Pw=CDAU3/76140 坡道阻力功率为: P i = m ∗ g ∗ u a ∗ s i n ( a l p h a ) / 3600 P_ i= m*g*u_a*sin(alpha)/3600 Pi=mguasin(alpha)/3600 加速阻力功率为: P j = d e l t a ∗ m ∗ u a / 3600 ∗ d u / d t P_j = delta*m*u_a/3600 * du/dt Pj=deltamua/3600du/dt
当坡度较小时,sin(alpha) = tan(alpha) = i; cos(alpha) = 1;

实例Matlab代码

%% 5、利用功率平衡图进行汽车动力性仿真
Pe1 = Ft1 .* ua1 ./ 3600;             % 计算一档发动机功率
Pe2 = Ft2 .* ua2 ./ 3600;             % 计算二档发动机功率
Pe3 = Ft3 .* ua3 ./ 3600;             % 计算三档发动机功率
Pe4 = Ft4 .* ua4 ./ 3600;             % 计算四档发动机功率
Pe5 = Ft5 .* ua5 ./ 3600;             % 计算五档发动机功率Pf = m * g * f * ua / 3600;           % 计算滚动阻力功率
Pw = CD * A * ua .^ 3 / 76140;        % 计算空气阻力功率
P = Pf + Pw;
figure(7)
plot(ua1, Pe1, ua2, Pe2, ua3, Pe3, ua4, Pe4, ua5, Pe5, ua, P);
xlabel('车速 /(km/h)');
ylabel('汽车功率 / (kW)');
text(50, 50, '一档');
text(80, 50, '二档');
text(120, 50, '三档');
text(150, 50, '四档');
text(200, 50, '五档');
text(150, 60, '阻力功率');% 根据功率求最大速度
Pw5 = CD * A * ua5 .^ 3 / 76140;      % 计算五档空气阻力功率
Pf5 = m * g * f * ua5 / 3600;         % 计算五档滚动阻力功率
Pz = Pw5 + Pf5;
k = find(abs(Pe5 - Pz) < 0.1);
umax = ua5(k);
fprintf('最高车速 Vmax = %.2f km/h\n', umax);

五、Simulink建模

参考B站尚禾师兄的视频,将以上的关系式用simulink进行建模也非常方便。可以用matlab做一遍在用simulink做一遍,加深理解。
B站视频链接:

B站汽车动力性Simulink建模

模型如下图所示:
汽车驱动力-行驶阻力simulink建模

六、总结

  1. 汽车的动力性主要包括三个参数:最高车速、加速时间及最大爬坡度。在求最高速度的时候,只考虑滚动阻力及空气阻力;求加速度的时候,不考虑坡道阻力;求爬坡度的时候,不考虑加速阻力。
  2. Matlab和Simulink只是工具,使用工具可以加深我们对理论的理解,掌握一种建模方法即可。

http://www.ppmy.cn/news/690609.html

相关文章

五档盘口

五档盘口 目录 盘口 五档盘口 编辑本段盘口   在 股票交易软件中&#xff0c;显示在右上角的委托买入和卖出都按 委托价高低按序排列&#xff0c;来定的。 编辑本段五档盘口   通常情况下&#xff0c;在股票行情软件上分别显示买卖各五个价格。 即&#xff1a;买一、买二、…

什么是五档即成剩撤?

什么是五档即成剩撤&#xff1f; 五档即成剩撤 &#xff1a;交易后&#xff0c;如果有没成交的自动撤销挂单。 五档即成转限价; 如果没成交自动转到当时价格&#xff0c;挂在那里等待成交。 限价委托 客户向证券经纪商发出买卖某种股票的指令时&#xff0c;对买卖的价格作出…

基于springboot的垃圾分类网站的设计与实现

系统设计 本垃圾分类网站主要包括三大功能模块&#xff0c;即用户功能模块和管理员功能模块、垃圾分类管理员功能模块。源码下载 &#xff08;1&#xff09;管理员模块&#xff1a;系统中的核心用户是管理员&#xff0c;管理员登录后&#xff0c;通过管理员功能来管理后台系统…

c#调用串口报“连到系统上的设备没有发挥作用”的解决

如下图所示&#xff0c;当C#打开串口报如下错误&#xff1a; 这是因为在Win11上安装了多个驱动造成的&#xff0c;需要切换回旧的驱动。 解决方法&#xff1a; 打开设备管理器&#xff0c;找到串口设备&#xff0c;点击更新驱动程序&#xff1a; 选择浏览我的电脑以查找驱动程…

回收过期闲置苹果开发者账号

没有订阅 没开双重 忘记密保 不能续费的都可以

苹果笔记本回收,正二品给你保驾护航,让回收体验归功于服务

那句台词你的下一台电脑何必是电脑席卷了网络&#xff0c;这句广告词也让很多人选择了最新款的iPad去代替苹果笔记本&#xff0c;但iPad Pro真的有那么强大吗&#xff1f;无论广告打得多响亮&#xff0c;现在更多的人想要的都归结于一个词&#xff1a;服务&#xff0c;只有好的…

mac回收站清空还能恢复吗?

当小伙伴们在日常使用苹果笔记本电脑的时候&#xff0c;往往会随便整理一下电脑上的文件&#xff0c;不要的直接丢到废纸篓&#xff0c;这可以收集用户所有删除的文件&#xff0c;当然不少人都清理回收站的习惯。毕竟日常工作都会产生文件&#xff0c;让废纸篓占用垃圾太多容易…

怎么恢复苹果回收站删除的文件呢?

在我们日常生活中&#xff0c;文件删除是一个非常简单的基本操作。同时也是我们不可或缺的操作之一。毕竟电脑上的存储空间有限&#xff0c;而文件占用的空间是越来越大&#xff0c;只能通过删除一些没用的文件来解决空间不足这一问题。但有时我们会不小心误删文件&#xff0c;…