diff --git a/VECTO/Input Files/cGBX.vb b/VECTO/Input Files/cGBX.vb index abd1335fecf263037ab906d848ada0d0868c1777..f013de2d7f26007b0b1580594eb4c56d16bb6452 100644 --- a/VECTO/Input Files/cGBX.vb +++ b/VECTO/Input Files/cGBX.vb @@ -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 diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb index 035f8ab5cc1db25d4751bba5b6b38eab7634092b..241f87321f801143461e36b9d4ebf9f1aa11dec6 100644 --- a/VECTO/MODcalc/cPower.vb +++ b/VECTO/MODcalc/cPower.vb @@ -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 diff --git a/VECTO/cDEV.vb b/VECTO/cDEV.vb index 94e93d03daf627d94de14d2322f2440b1911583b..e2d9d00f7a5e165d0bd678f781f6a26663ad66b8 100644 --- a/VECTO/cDEV.vb +++ b/VECTO/cDEV.vb @@ -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