Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit a2abb76e authored by Raphael LUZ's avatar Raphael LUZ
Browse files

- Limit engine rpm in torque converter operation acc. > acc_min

- Shift up (C-to-L, L-to-L) if acc. > acc_min and next-gear-rpm > threshold
parent a1a73586
No related branches found
No related tags found
No related merge requests found
......@@ -433,6 +433,8 @@ Public Class cGBX
Dim Brake As Boolean
Dim FirstDone As Boolean
Dim rpmLimit As Single
Dim MsgSrc As String
MsgSrc = "GBX/TCiteration/t= " & t + 1
......@@ -443,6 +445,16 @@ Public Class cGBX
Brake = False
TCNeutral = False
'TC rpm limit
If DEV.TClimitOn Then
If MODdata.Vh.a(t) >= DEV.TCaccmin Then
rpmLimit = DEV.TClimit
Else
rpmLimit = ENG.Nrated
End If
Else
rpmLimit = ENG.Nrated
End If
'Power to torque
Mout = nPeToM(nUout, PeOut)
......@@ -461,7 +473,7 @@ Public Class cGBX
nuMax = Math.Min(TCnu(TCdim), nUout/ENG.Nidle)
Else
nuMin = Math.Max(nUout/DEV.TClimit, TCnu(0))
nuMin = Math.Max(nUout / rpmLimit, TCnu(0))
nuMax = Math.Min(TCnuMax, nUout/ENG.Nidle)
End If
......
......@@ -1962,18 +1962,27 @@ Public Class cPower
'Upshift
If PlusGearLockUp Then
If nUnext > nUup AndAlso Pe <= FLD(LastGear + 1).Pfull(nUnext) Then
Return LastGear + 1
'C-to-L / L-to-L
If DEV.TCshiftModeNew Then
If _
nUnext > nUup AndAlso
fPeGearMod(LastGear + 1, t, MODdata.Vh.V(t), DEV.TCaccmin, Grad) <= FLD(LastGear + 1).Pfull(nUnext) Then
Return LastGear + 1
End If
Else
If nUnext > nUup AndAlso Pe <= FLD(LastGear + 1).Pfull(nUnext) Then
Return LastGear + 1
End If
End If
Else
'1C-to-2C
'C-to-C
If LastGear < GBX.GearCount Then
iRatio = GBX.Igetr(LastGear + 1)/GBX.Igetr(LastGear)
iRatio = GBX.Igetr(LastGear + 1) / GBX.Igetr(LastGear)
If _
fnUout(Vact, LastGear + 1) > Math.Min(900, iRatio*(FLD(LastGear).N80h - 150)) AndAlso
FLD(LastGear + 1).Pfull(nU*iRatio) > 0.7*FLD(LastGear).Pfull(nU) Then
fnUout(Vact, LastGear + 1) > Math.Min(900, iRatio * (FLD(LastGear).N80h - 150)) AndAlso
FLD(LastGear + 1).Pfull(nU * iRatio) > 0.7 * FLD(LastGear).Pfull(nU) Then
Return LastGear + 1
End If
End If
......
......@@ -16,11 +16,12 @@ Public Class cDEV
Private MyOptions As Dictionary(Of String, cDEVoption)
Private iOptionsDim As Integer
Public AdvFormat As Boolean
Public TCiterPrec As Single
Public TClimitOn As Boolean
Public TClimit As Single
Public AdvFormat As Boolean
Public TCshiftModeNew As Boolean
Public TCaccmin As Single
'**************************************************************************************************************
......@@ -136,14 +137,14 @@ Public Class cDEV
Conf0 = New cDEVoption(tDEVconfType.tSelection,
"Acceleration for AT Up-Shift power condition")
Conf0.AddMode("acc_target (old)")
Conf0.AddMode("acc_min (new)")
Conf0.AddMode("acc_target") '0
Conf0.AddMode("acc_min") '1
Conf0.ModeIndex = 1
MyOptions.Add("TCshiftMode", Conf0)
Conf0 = New cDEVoption(tDEVconfType.tSingleVal, "Minimum acceleration (acc_min) for TC rpm limit and AT-Shift [m/s²]")
Conf0.SingleVal = 0.02
Conf0.SingleVal = 0.025
MyOptions.Add("TCaccMin", Conf0)
......@@ -158,7 +159,10 @@ Public Class cDEV
Public Sub SetOptions()
TCiterPrec = MyOptions("TCiterPrec").SingleVal
AdvFormat = MyOptions("AdvFormat").BoolVal
TClimitOn = MyOptions("TClimitOn").BoolVal
TClimit = MyOptions("TClimit").SingleVal
TCshiftModeNew = (MyOptions("TCshiftMode").ModeIndex = 1)
TCaccmin = MyOptions("TCaccMin").SingleVal
End Sub
'Demo for Delegate Function
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment