在这个建模和仿真教程中,我们将分析一个简单的车辆传动系模型的动态行为。传统汽车的动力传动系统由发动机,变速箱和车轮组成。 发动机可以等效为一个转动惯量,变速箱为固定齿轮比,传动系统的其余部分(变速箱后)和车轮作为另一个转动惯量。
-发动机+变速箱(发动机侧)的等效转动惯量
-车轮+变速箱(车轮侧)的等效转动惯量
-发动机侧的扭转阻尼系数
-车轮侧的扭转阻尼系数
I[-]-变速箱的传动比
为了简化模型,我们假设:
轴是刚性的,没有弹性(弹性系数);
不同部件(例如离合器,传动轴)的转动惯量已经换算到了发动机和车轮中;
系统没有扭矩损失(例如变速箱损失);
传动比i定义为输出轴齿轮的半径b
与输入轴齿轮的半径a [mm]之间的比。
首先,我们来单独分析各个部件的受力情况,如图2所示。
– 有效发动机扭矩(输入)
– 发动机侧惯性扭矩
– 发动机侧阻尼扭矩
– 车轮侧惯性扭矩
– 车轮侧阻尼扭矩
a [mm] – 输入齿轮半径
b [mm] – 输出齿轮半径
– 输入轮齿轮啮合中的切向力
– 输出轮齿轮啮合中的切向力
D’Alembert定律指出,作用于物体的扭矩(内部和外部)的总和等于零:
根据此定律,分别写出两个部件的受力方程。
对于发动机侧的受力,如下所示:
从上式我们可以推导出变速箱输入轴齿轮的切向力:
其中变速箱输入轴扭矩和发动机侧的阻尼力矩为:
其中:
– 发动机的旋转角度
– 发动机的角速度
– 发动机角加速度
将变速箱输入轴扭矩和发动机侧的阻尼力矩代入式(1)可以得到:
使用相同的方法,我们可以得到车轮侧的受力平衡方程:
从上式我们可以推导出变速箱输出轴齿轮的切向力:
车轮侧的输入扭矩和阻尼力矩分别为:
其中:
– 变速箱输出轴的旋转角度
– 变速箱输出轴的角速度
– 变速箱输出轴的角加速度
将变速箱输入轴扭矩和发动机侧的阻尼力矩代入式(2)可以得到:
在变速箱输入轴和输出轴之间存在如下运动学关系:
由于作用力与反作用力相等,即
使用式(1)与式(2)替换上式,得到:
将b移到方程左边,得到:
由于我们更关心轮端(变速箱输出轴),我们将运动学关系代入上式,得到:
为了建模方便,我们使用两个新的常量A和B分别代替常微分方程的两个系数,得到如下关系:
我们现在得到了描述传动链的双转动惯量简化模型运动规律的二阶常微分方程。为了在XCOS中进行建模方便,我们将常微分方程改写成如下形式:
使用XCOS进行如下建模:
运行模型前在Scilab的工作空间中输入如下脚本:
J1 = 0.16;
J2 = 1.72;
c1 = 0.5;
c2 = 0.05;
i = 3.5;
A = J2 + J1*i^2; B = c2 + c1*i^2;
发动机的扭矩输入是一个阶跃信号,在t=1s时跳变为100N.m。初始角度和初始角速度都为0.仿真持续时间为10s。
为了方便作图(Scilab的Scope不如Simulink的好用),我们使用如下脚本:
subplot(2,1,1)
plot(simResult.time,simResult.values(:,1),'r'), xgrid()
ylabel('$T_1 quad [Nm]$','FontSize',3)
subplot(2,1,2)
plot(simResult.time,simResult.values(:,3)*180/%pi), xgrid()
xlabel('$t quad [s]$','FontSize',3)
ylabel('$n_2 quad [rpm]$','FontSize',3)
运行仿真和上述脚本后,我们可以得到如下结果:
简化的传动系模型表现为一阶系统。 由于阻尼系数,对于100 Nm的阶跃输入扭矩,车轮需要大约2.5 s才能以2500 rpm的转速。 为了提高模型的精度,我们还可以考虑在车轮端加入负载转矩,从而可以模拟轮胎摩擦阻力,空气阻力和坡度阻力。在后续的文章中我会对传动链的抖动问题进行分析,会对传动链的复杂模型进行研究,加入一些非线性的特性。
有关本教程的任何问题或意见,请在评论页留言。