diff --git a/VECTO Changelog.txt b/VECTO Changelog.txt index 3948498c454982c6b6009f303c656ea835d3642d..eebcade868a38653a10e3c00c6a45690180cfca5 100644 --- a/VECTO Changelog.txt +++ b/VECTO Changelog.txt @@ -5,6 +5,7 @@ VECTO ?.? (future release) TODO New Eco Roll GBX <DRAG> + StStDelay - Gearbox Rules must be set when loading .gbx file to aviod invalid settings (e.g. AT with Skip Gears) - Correct Pg and Proll calculation (Road gradient)?? @@ -27,6 +28,7 @@ VECTO x.x (current source - next release) o Engages if Pwheel < 0 o Disengages if Underspeed is reached. - Look-Ahead Coasting now uses real coasting also if road gradient > 0 which means the coasting deceleration can be so high that no braking is necessary. In this case the braking phase will be ommitted and the total deceleration time can be shorter than expected by the given target coasting deceleration. +- "Minimum (actual) speed" instead of "Min. Target Speed" for Eco-Roll, Overspeed and Look Ahead Coasting => actual speed instead of target speed - Bugfix: Error if Look-Ahead Coasting was disabled. - Eco-Roll revised (see changelog) - Removed "IgnoreFCextrapol" form DEV-Options @@ -39,6 +41,8 @@ VECTO x.x (current source - next release) o Improved gear shift model for torque converter o Driving Cycle Preprocessing and Gear Shift Model now use approximated efficiency values based in the transmission loss maps. Reduces calculation time significantly with little to no impact on fuel consumption. - Engine Only Mode: Engine motoring points can be defined explicitly in load cycle with "<DRAG>" +- When speed is under 5km/h and engine in motoring operating then gearbox shifts to Neutral +- Start-Stop activation delay time can be defined in job file - Updated some error messages (units) diff --git a/VECTO/GUI/F_GEN.Designer.vb b/VECTO/GUI/F_GEN.Designer.vb index 72c91f7184e98a50c02918074177840f48a11ad1..ab8934876ba21a042e09b43b436978fa863eb83e 100644 --- a/VECTO/GUI/F_GEN.Designer.vb +++ b/VECTO/GUI/F_GEN.Designer.vb @@ -201,6 +201,9 @@ Partial Class F_GEN Me.OpenWithGRAPHiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TbStStDelay = New System.Windows.Forms.TextBox() + Me.Label30 = New System.Windows.Forms.Label() + Me.Label31 = New System.Windows.Forms.Label() Me.TabPgHEV.SuspendLayout() Me.TabPgColdSt.SuspendLayout() Me.GroupBox3.SuspendLayout() @@ -1198,11 +1201,11 @@ Partial Class F_GEN 'Label28 ' Me.Label28.AutoSize = True - Me.Label28.Location = New System.Drawing.Point(26, 38) + Me.Label28.Location = New System.Drawing.Point(41, 38) Me.Label28.Name = "Label28" - Me.Label28.Size = New System.Drawing.Size(95, 13) + Me.Label28.Size = New System.Drawing.Size(80, 13) Me.Label28.TabIndex = 1 - Me.Label28.Text = "Min. Target Speed" + Me.Label28.Text = "Minimum speed" ' 'CbLookAhead ' @@ -1288,11 +1291,11 @@ Partial Class F_GEN 'Label23 ' Me.Label23.AutoSize = True - Me.Label23.Location = New System.Drawing.Point(143, 76) + Me.Label23.Location = New System.Drawing.Point(158, 76) Me.Label23.Name = "Label23" - Me.Label23.Size = New System.Drawing.Size(95, 13) + Me.Label23.Size = New System.Drawing.Size(80, 13) Me.Label23.TabIndex = 1 - Me.Label23.Text = "Min. Target Speed" + Me.Label23.Text = "Minimum speed" ' 'Label22 ' @@ -1348,24 +1351,27 @@ Partial Class F_GEN ' Me.GrStartStop.Controls.Add(Me.PnStartStop) Me.GrStartStop.Controls.Add(Me.ChBStartStop) - Me.GrStartStop.Location = New System.Drawing.Point(9, 83) + Me.GrStartStop.Location = New System.Drawing.Point(7, 56) Me.GrStartStop.Name = "GrStartStop" - Me.GrStartStop.Size = New System.Drawing.Size(375, 87) + Me.GrStartStop.Size = New System.Drawing.Size(375, 130) Me.GrStartStop.TabIndex = 3 Me.GrStartStop.TabStop = False Me.GrStartStop.Text = "Engine Start Stop" ' 'PnStartStop ' + Me.PnStartStop.Controls.Add(Me.Label31) Me.PnStartStop.Controls.Add(Me.Label27) Me.PnStartStop.Controls.Add(Me.TBSSspeed) Me.PnStartStop.Controls.Add(Me.LabelSSspeed) Me.PnStartStop.Controls.Add(Me.Label26) + Me.PnStartStop.Controls.Add(Me.Label30) Me.PnStartStop.Controls.Add(Me.LabelSStime) + Me.PnStartStop.Controls.Add(Me.TbStStDelay) Me.PnStartStop.Controls.Add(Me.TBSStime) Me.PnStartStop.Location = New System.Drawing.Point(148, 10) Me.PnStartStop.Name = "PnStartStop" - Me.PnStartStop.Size = New System.Drawing.Size(221, 71) + Me.PnStartStop.Size = New System.Drawing.Size(221, 106) Me.PnStartStop.TabIndex = 1 ' 'Label27 @@ -2020,6 +2026,31 @@ Partial Class F_GEN Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(174, 22) Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" ' + 'TbStStDelay + ' + Me.TbStStDelay.Location = New System.Drawing.Point(99, 61) + Me.TbStStDelay.Name = "TbStStDelay" + Me.TbStStDelay.Size = New System.Drawing.Size(64, 20) + Me.TbStStDelay.TabIndex = 1 + ' + 'Label30 + ' + Me.Label30.AutoSize = True + Me.Label30.Location = New System.Drawing.Point(6, 64) + Me.Label30.Name = "Label30" + Me.Label30.Size = New System.Drawing.Size(87, 13) + Me.Label30.TabIndex = 35 + Me.Label30.Text = "Min ICE-On Time" + ' + 'Label31 + ' + Me.Label31.AutoSize = True + Me.Label31.Location = New System.Drawing.Point(169, 64) + Me.Label31.Name = "Label31" + Me.Label31.Size = New System.Drawing.Size(18, 13) + Me.Label31.TabIndex = 38 + Me.Label31.Text = "[s]" + ' 'F_GEN ' Me.AcceptButton = Me.ButOK @@ -2258,4 +2289,7 @@ Partial Class F_GEN Friend WithEvents Label29 As System.Windows.Forms.Label Friend WithEvents TbVminLA As System.Windows.Forms.TextBox Friend WithEvents Label28 As System.Windows.Forms.Label + Friend WithEvents Label31 As System.Windows.Forms.Label + Friend WithEvents Label30 As System.Windows.Forms.Label + Friend WithEvents TbStStDelay As System.Windows.Forms.TextBox End Class diff --git a/VECTO/GUI/F_GEN.vb b/VECTO/GUI/F_GEN.vb index a2630362efc2b425aff8ff7ce7e9fde94ed6ea84..f4b9377b5a2a452e3bbd19fed2a77b7734a04447 100644 --- a/VECTO/GUI/F_GEN.vb +++ b/VECTO/GUI/F_GEN.vb @@ -641,6 +641,7 @@ Public Class F_GEN Me.ChBStartStop.Checked = Gfile.StartStop Me.TBSSspeed.Text = Gfile.StStV Me.TBSStime.Text = Gfile.StStT + Me.TbStStDelay.Text = Gfile.StStDelay 'SOC Start/Iteration Me.TbSOCstart.Text = Gfile.SOCstart @@ -793,6 +794,7 @@ Public Class F_GEN g.StartStop = Me.ChBStartStop.Checked g.StStV = CSng(fTextboxToNumString(Me.TBSSspeed.Text)) g.StStT = CSng(fTextboxToNumString(Me.TBSStime.Text)) + g.StStDelay = CInt(fTextboxToNumString(Me.TbStStDelay.Text)) 'SOC g.SOCnJa = Me.CbSOCnIter.Checked @@ -1102,7 +1104,7 @@ Public Class F_GEN Change() End Sub - Private Sub TBSStime_TextChanged(sender As System.Object, e As System.EventArgs) Handles TBSStime.TextChanged + Private Sub TBSStime_TextChanged(sender As System.Object, e As System.EventArgs) Handles TBSStime.TextChanged, TbStStDelay.TextChanged Change() End Sub diff --git a/VECTO/Input Files/cGEN.vb b/VECTO/Input Files/cGEN.vb index 14fc94eaa866ea8655339b94d451e42df706e261..83db34029a2003480921eed247c7dbbdb9c74759 100644 --- a/VECTO/Input Files/cGEN.vb +++ b/VECTO/Input Files/cGEN.vb @@ -54,6 +54,7 @@ Public Class cGEN Private boStartStop As Boolean Private siStStV As Single Private siStStT As Single + Public StStDelay As Integer Private boSOCnJa As Boolean Private siSOCstart As Single Private GetrMod As tTransLossModel @@ -374,6 +375,10 @@ Public Class cGEN UnderSpeed = CSng(file.ReadLine(0)) vMinLA = CSng(file.ReadLine(0)) + If file.EndOfFile Then GoTo lbClose + + StStDelay = CSng(file.ReadLine(0)) + lbClose: file.Close() @@ -390,145 +395,6 @@ lbEr: Return False - End Function - - Private Function ReadOldFormat() As Boolean - Dim file As cFile_V3 - Dim ialt As Short - Dim str As String - - file = New cFile_V3 - - If Not file.OpenRead(sFilePath) Then - file = Nothing - Return False - End If - - - '**** Read GEN file **** - - boPKWja = CBool(file.ReadLine(0)) - - bodynkorja = CBool(file.ReadLine(0)) - - ineklasse = CShort(file.ReadLine(0)) - inizykwael = CShort(file.ReadLine(0)) - ialt = CShort(file.ReadLine(0)) - - 'Convert Old Calculation-mode into New-one - EngAnalysis = False - CreateMap = False - ModeHorEV = False - Select Case ialt - Case 0 '0 Standard (Gesamtes Fzg mit bestehendem Kennfeld) - VehMode = tVehMode.StandardMode - Case 1 '1 Motor alleine (mit bestehendem Kennfeld) - VehMode = tVehMode.EngineOnly - Case 2 '2 Kennfeld erstellen aus Rollenzyklus aus MES - VehMode = tVehMode.StandardMode - CreateMap = True - Case 3 '3 Motoranalyse (x-Sek. Mittelwerte Messung-Rechng) aus NPI - VehMode = tVehMode.EngineOnly - EngAnalysis = True - Case 4 '4 Kennfeld erstellen aus Motormessung aus NPI - VehMode = tVehMode.EngineOnly - CreateMap = True - Case 5 '5 Motoranalyse aus Fahrzeugmessung aus MES - VehMode = tVehMode.StandardMode - EngAnalysis = True - Case 6 '6 Hybridfahrzeug (VKM + Elektro) - VehMode = tVehMode.HEV - ModeHorEV = True - Case Else '7 Elektrofahrzeug - VehMode = tVehMode.EV - ModeHorEV = True - End Select - - inPschrit = CShort(file.ReadLine(0)) - innschrit = CShort(file.ReadLine(0)) - - boMapSchaltja = CBool(file.ReadLine(0)) - - iniMsek = CShort(file.ReadLine(0)) - - boottoJa = (CInt(file.ReadLine(0)) = 1) - - bokaltst1 = CBool(file.ReadLine(0)) - - sitkat1 = CSng(file.ReadLine(0)) - sitkw1 = CSng(file.ReadLine(0)) - sihsstart = CSng(file.ReadLine(0)) - - stPathVEH.Init(MyPath, file.ReadLine(0)) - - stPathENG.Init(MyPath, file.ReadLine(0)) - - 'stCycleFile.Init(MyPath, file.ReadLine(0)) - - stPathGBX.Init(MyPath, file.ReadLine(0)) - - stdynspez.Init(MyPath, file.ReadLine(0)) - - stkatmap.Init(MyPath, file.ReadLine(0)) - - stkwmap.Init(MyPath, file.ReadLine(0)) - - stkatkurv.Init(MyPath, file.ReadLine(0)) - - stkwkurv.Init(MyPath, file.ReadLine(0)) - - stcooldown.Init(MyPath, file.ReadLine(0)) - - sttumgebung.Init(MyPath, file.ReadLine(0)) - - If file.EndOfFile Then GoTo lbClose - - stBatfile.Init(MyPath, file.ReadLine(0)) - - stEmospez.Init(MyPath, file.ReadLine(0)) - - stEANfile.Init(MyPath, file.ReadLine(0)) - - stGetspez.Init(MyPath, file.ReadLine(0)) - - stSTEnam.Init(MyPath, file.ReadLine(0)) - - stEKFnam.Init(MyPath, file.ReadLine(0)) - - If file.EndOfFile Then GoTo lbClose - - boEXSja = CBool(file.ReadLine(0)) - - stPathExs.Init(MyPath, file.ReadLine(0)) - - If file.EndOfFile Then GoTo lbClose - - - str = file.ReadLine(0) - - If Not IsNumeric(str) Then GoTo lbClose - - boStartStop = CBool(str) - siStStV = CSng(file.ReadLine(0)) - siStStT = CSng(file.ReadLine(0)) - - boSOCnJa = CBool(file.ReadLine(0)) - siSOCstart = CSng(file.ReadLine(0)) - - If file.EndOfFile Then GoTo lbClose - - GetrMod = CShort(file.ReadLine(0)) - - -lbClose: - - file.Close() - file = Nothing - - Return True - - - End Function Public Function SaveFile() As Boolean @@ -755,6 +621,9 @@ lbClose: fGEN.WriteLine(CStr(vMinLA)) + fGEN.WriteLine("c Start/Stop activation delay time [s]") + fGEN.WriteLine(StStDelay) + fGEN.Close() fGEN = Nothing @@ -781,6 +650,7 @@ lbClose: boStartStop = False siStStV = 5 siStStT = 5 + StStDelay = 0 boSOCnJa = False siSOCstart = 0.5 GetrMod = tTransLossModel.Detailed diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb index c429d19b773320d9a9318a32db047cd7ffa623a4..cf72c8fedfaf16d6cc3e66c1320aceb33587e384 100644 --- a/VECTO/MODcalc/cPower.vb +++ b/VECTO/MODcalc/cPower.vb @@ -312,7 +312,7 @@ Public Class cPower 'Full load / motoring Pmin = FLD(Gear).Pdrag(nn) - If Vh.Vsoll(i) >= GEN.vMin / 3.6 Then + If Vist >= GEN.vMin / 3.6 Then If GEN.EcoRollOn Then @@ -453,7 +453,7 @@ Public Class cPower Positions(i) = 2 Else 'Coasting (Forward) - If GEN.LookAheadOn And Vh.Vsoll(i) >= GEN.vMinLA / 3.6 Then + If GEN.LookAheadOn And Vist >= GEN.vMinLA / 3.6 Then For j = t To i0 Vist = Vh.V(j) @@ -504,6 +504,8 @@ Public Class cPower 'Start/Stop Control Dim StStAus As Boolean Dim StStTx As Single + Dim StStDelayTx As Integer + Dim StStPossible As Boolean Dim Vh As cVh @@ -565,6 +567,7 @@ Public Class cPower End If StStAus = False StStTx = 0 + StStDelayTx = 0 SecSpeedRed = 0 If VEH.TracIntrSi < 0.001 Then @@ -620,6 +623,8 @@ lbGschw: Vist = Vh.V(jz) aist = Vh.a(jz) + StStPossible = False + 'If Speed over Top theoretical Speed => Reduce If Vist > GVmax + 0.0001 And Not GVset Then Vh.SetSpeed0(jz, GVmax) @@ -760,7 +765,7 @@ lbGschw: End If 'Must be reset here because the Gear-shifting model may cause changes - MODdata.ModErrors.PxReset() + MODdata.ModErrors.PxReset() End If @@ -792,6 +797,11 @@ lbGschw: Gear = 0 End If + If Gear = 1 And Pminus And Vist <= 5 / 3.6 Then + Clutch = tEngClutch.Opened + Gear = 0 + End If + ' Important checks lbCheck: @@ -1035,6 +1045,7 @@ lb_nOK: Case Else 'Idle/Stop If GEN.StartStop Then If Vist <= GEN.StStV / 3.6 Then + StStPossible = True If StStAus And jz > 0 Then If MODdata.EngState(jz - 1) = tEngState.Stopped Then EngState0 = tEngState.Stopped @@ -1225,16 +1236,21 @@ lb_nOK: 'Start / Stop - Activation-Speed Control If GEN.StartStop Then + If StStPossible Then + StStDelayTx += 1 + Else + StStDelayTx = 0 + End If If StStAus Then If Not EngState0 = tEngState.Stopped Then StStTx += 1 - If StStTx > GEN.StStT Then + If StStTx > GEN.StStT And StStDelayTx >= GEN.StStDelay Then StStTx = 1 StStAus = False End If End If Else - If EngState0 = tEngState.Stopped Then StStAus = True + If EngState0 = tEngState.Stopped Or StStDelayTx < GEN.StStDelay Then StStAus = True End If End If