diff --git a/CHANGES.md b/CHANGES.md index eeacd373b08a5c6b0895f0926cf970ecb18cad4c..1bba9672b06db4713db40e5e2357ca3d8ec44759 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,11 @@ +### VECTO 2.0.4-beta2 +* Bugfix: VECTO freezed if torque converter creeping was not possible due to low full load torque. Now it will abort with error message. +* Bugfix: Small fixes in torque converter model + + ### VECTO 2.0.4-beta1 * Updated CSV format of some declaration config files * Various bugfixes in AT model diff --git a/VECTO/Input Files/cGBX.vb b/VECTO/Input Files/cGBX.vb index bf1c73f5c194de390da677288f2b566a21b74aad..6d22fcdacb0ef1b2edbb5788faebe749cb842224 100644 --- a/VECTO/Input Files/cGBX.vb +++ b/VECTO/Input Files/cGBX.vb @@ -469,6 +469,16 @@ Public Class cGBX nuMax = Math.Min(TCnuMax, nUout / ENG.Nidle) End If + If nuMax <= nuMin Then + TCReduce = True + Return True + End If + + 'Reduce step size if nu-range is too low + Do While (nuMax - nuMin) / nuStep < 10 + nuStep *= 0.1 + Loop + FirstDone = False nu = nuMin - nuStep iDim = -1 @@ -507,7 +517,7 @@ Public Class cGBX 'Min Min = Mout / mu - 'Correct Min if too high + 'Check if Min is too high If Min > MinMax Then Continue Do 'Calculated output torque for given mu diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb index 963c0d5ab9ac488dbac313b8a2643fd77e0119b7..fcfe60e7a281fd66ad7b8a9c40a8f38c1a48ad82 100644 --- a/VECTO/MODcalc/cPower.vb +++ b/VECTO/MODcalc/cPower.vb @@ -11,7 +11,7 @@ Imports System.Collections.Generic Public Class cPower - + Private ClutchNorm As Single 'Normalized clutch speed Private ClutchEta As Single 'clutch efficiency @@ -71,7 +71,6 @@ Public Class cPower Dim adec As Single Dim LookAheadDone As Boolean Dim aCoasting As Single - Dim aRollout As Single Dim Gears As New List(Of Integer) Dim vRollout As Single Dim ProgBarShare As Int16 @@ -79,7 +78,6 @@ Public Class cPower Dim dist As New List(Of Double) Dim LastnU As Single = 0 - Dim MsgSrc As String @@ -133,6 +131,7 @@ Public Class cPower dist.Add(dist(i - 1) + Vh.V(i)) Next + 'Generate Positions List For i = 0 To MODdata.tDim Positions.Add(0) @@ -172,6 +171,7 @@ Public Class cPower End If End If + 'Wheel-Power Pwheel = fPwheel(i, Vh.fGrad(dist(i))) @@ -255,7 +255,6 @@ Public Class cPower Vmax = MODdata.Vh.Vsoll(i) + VEC.OverSpeed / 3.6 Vmin = Math.Max(0, MODdata.Vh.Vsoll(i) - VEC.UnderSpeed / 3.6) vRollout = fRolloutSpeed(i, 1, Vh.fGrad(dist(i))) - aRollout = (2 * vRollout - Vh.V0(i)) - Vh.V0(i) If vRollout < Vmin Then @@ -481,11 +480,8 @@ Public Class cPower Dim SecSpeedRed As Integer Dim FirstSecItar As Boolean Dim TracIntrIs As Single - Dim amax As Single - Dim ProgBarShare As Int16 - Dim LastPmax As Single Dim dist As Double Dim dist0 As Double @@ -668,11 +664,15 @@ lbGschw: 'Eco-Roll Speed Correction (because PreRun speed profile might still be too high or speed might generally be too low) If Vh.EcoRoll(jz) AndAlso Vact > MODdata.Vh.Vsoll(jz) - VEC.UnderSpeed / 3.6 AndAlso Not VehState0 = tVehState.Stopped AndAlso Pplus Then - Vh.ReduceSpeed(jz, 0.9999) + If Not Vh.ReduceSpeed(jz, 0.9999) Then + WorkerMsg(tMsgID.Err, "Engine full load too low for vehicle start (speed reduction failed) !", MsgSrc & "/t= " & jz + 1) + Return False + End If FirstSecItar = False GoTo lbGschw End If + '************************************ Gear selection ************************************ If VehState0 = tVehState.Stopped Or TracIntrOn Then @@ -887,7 +887,10 @@ lbCheck: End If If GBX.TCReduce Then - Vh.ReduceSpeed(jz, 0.999) + If Not Vh.ReduceSpeed(jz, 0.999) Then + WorkerMsg(tMsgID.Err, "Engine full load too low for vehicle start (speed reduction failed) !", MsgSrc & "/t= " & jz + 1) + Return False + End If FirstSecItar = False GoTo lbGschw End If @@ -910,7 +913,9 @@ lbCheck: If Clutch = tEngClutch.Closed Then If nU < ENG.Nidle + 0.0001 Then Gear -= 1 - nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping) + If Gear = 0 Then Clutch = tEngClutch.Opened + GoTo lbCheck + 'nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping) End If End If @@ -1275,7 +1280,7 @@ lb_nOK: End If Vrollout = fRolloutSpeed(jz + 1, TracIntrIs, Vh.fGrad(dist)) - If Vrollout < Vact Or VehState0 <> tVehState.Dec Then Vh.SetSpeed(jz + 1, Vrollout) + If Vrollout < Vh.V(jz + 1) Or VehState0 <> tVehState.Dec Then Vh.SetSpeed(jz + 1, Vrollout) End If diff --git a/VECTO/MODcalc/cVh.vb b/VECTO/MODcalc/cVh.vb index 75fd3db869fc09e8e0843bff85aecdf7a7b09209..ca257cd9ef4e611858121567667a1d1953bdf789 100644 --- a/VECTO/MODcalc/cVh.vb +++ b/VECTO/MODcalc/cVh.vb @@ -270,7 +270,10 @@ Public Class cVh End If End Sub - Public Sub ReduceSpeed(ByVal t As Integer, ByVal p As Single) + Public Function ReduceSpeed(ByVal t As Integer, ByVal p As Single) As Boolean + + If lV0(t + 1) = 0 Then Return False + lV0(t + 1) *= p lV(t) = (lV0(t + 1) + lV0(t)) / 2 la(t) = lV0(t + 1) - lV0(t) @@ -278,7 +281,10 @@ Public Class cVh lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 la(t + 1) = lV0(t + 2) - lV0(t + 1) End If - End Sub + + Return True + + End Function Public Sub SetMaxAcc(ByVal t As Integer) diff --git a/VECTO/VECTO_Global.vb b/VECTO/VECTO_Global.vb index 99c36582175bae52197fe3f69ecce1a0c715b2db..de18d5ca751ace9816a59002a3ed2ac986a8c74f 100644 --- a/VECTO/VECTO_Global.vb +++ b/VECTO/VECTO_Global.vb @@ -12,7 +12,7 @@ Imports System.Collections.Generic Module VECTO_Global - Public Const VECTOvers As String = "2.0.4-beta1" + Public Const VECTOvers As String = "2.0.4-beta2" Public Const LicSigAppCode As String = "VECTO-Release-0093C61E0A2E4BFA9A7ED7E729C56AE4" Public MyAppPath As String Public MyConfPath As String