在這個模組化和仿真教程中,我們将分析一個簡單的車輛傳動系模型的動态行為。傳統汽車的動力傳動系統由發動機,變速箱和車輪組成。 發動機可以等效為一個轉動慣量,變速箱為固定齒輪比,傳動系統的其餘部分(變速箱後)和車輪作為另一個轉動慣量。
-發動機+變速箱(發動機側)的等效轉動慣量
-車輪+變速箱(車輪側)的等效轉動慣量
-發動機側的扭轉阻尼系數
-車輪側的扭轉阻尼系數
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的轉速。 為了提高模型的精度,我們還可以考慮在車輪端加入負載轉矩,進而可以模拟輪胎摩擦阻力,空氣阻力和坡度阻力。在後續的文章中我會對傳動鍊的抖動問題進行分析,會對傳動鍊的複雜模型進行研究,加入一些非線性的特性。
有關本教程的任何問題或意見,請在評論頁留言。