Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 03ff9946 authored by Gerard SILBERHOLZ's avatar Gerard SILBERHOLZ
Browse files

Changes in cMAP0>Init() so that automatic check of torque setpoints in FCMC...

Changes in cMAP0>Init() so that automatic check of torque setpoints in FCMC works also for engines with very low maximum torque (and thus very small stepsize compared to allowed tolerance)
parent e145c8f6
No related branches found
No related tags found
No related merge requests found
......@@ -431,16 +431,27 @@ Public Class cMAP0
'Variable only needed for function "AddFld()"
TqStep = TqStepMax
'Create list with target torque points
'Check correct location of every torque value in map
For Each rl In RPMlists.Values
'Create list with limited amount of target torque points for specific engine speed
' --> only target torque points below full load are relevant!
' --> Different handling of points close to full-load (5% rule; combining last point below full-load acc. to par. 4.3.5.2.2 of technical annex)
Tq = 0
TqList.Clear()
Do
TqList.Add(Tq)
Tq += TqStepMax
Loop Until Tq > FLC_Parent.TqMax + TqStepTol
Loop Until Tq > (FLC_Parent.Tq_orig(rl.TargetRPM) - 0.05 * FLC_Parent.TqMax)
'Check number of measured map points for specific engine speed
If rl.MapPoints.Count <> (TqList.Count + 1) Then
WorkerMsg(tMsgID.Err, "Invalid number of measured torque points in FC map at " & mp0.nU & " [1/min]!")
WorkerMsg(tMsgID.Err, " Expected number = " & (TqList.Count + 1) & ", actual number = " & rl.MapPoints.Count & ".")
Return False
End If
'Check correct location of every torque value in map
For Each rl In RPMlists.Values
i = -1
For Each mp0 In rl.MapPoints
......@@ -449,25 +460,9 @@ Public Class cMAP0
'Different handling of full-load point
' Index start from 0, so (i-1) is the last value
If i < (rl.MapPoints.Count - 1) Then
If i < TqList.Count Then
'Regular points
'Different handling of points close to full-load (5% rule; combining last point below full-load acc. to par. 4.3.5.2.2 of technical annex)
'Change of target torque value necessary
'If (TqList(i) > (FLC_Parent.Tq(mp0.nU) - 0.05 * FLC_Parent.TqMax)) Then
If (TqList(i) > (FLC_Parent.Tq_orig(rl.TargetRPM) - 0.05*FLC_Parent.TqMax)) Then
'TqTarget = FLC_Parent.Tq(mp0.nU)
'If Math.Abs(mp0.Tq - TqTarget) > TqStepTol Then
WorkerMsg(tMsgID.Err,
"Invalid torque value in FC map! (" & mp0.nU & " [1/min], " & mp0.Tq & " [Nm])")
WorkerMsg(tMsgID.Err, " Expected torque = full load.")
Return False
'End If
Else
TqTarget = TqList(i)
If Math.Abs(mp0.Tq - TqTarget) > TqStepTol Then
......@@ -478,12 +473,11 @@ Public Class cMAP0
Return False
End If
End If
Else
'Full load point has to be located at least above previously measured point
'TqTarget = (FLC_Parent.Tq(mp0.nU) - TqStepTol)
TqTarget = rl.MapPoints(rl.MapPoints.Count - 2).Tq
If mp0.Tq <= TqTarget Then
......@@ -502,6 +496,14 @@ Public Class cMAP0
Next
'Create list with ALL target torque points for later use in other functions
Tq = 0
TqList.Clear()
Do
TqList.Add(Tq)
Tq += TqStepMax
Loop Until Tq > (FLC_Parent.TqMax + 0.1)
'Check validity of map for family concept
' >>> 54 target points of the parent map must be located below the full-load curve of the engine to be certified
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment