diff --git a/Documentation/User Manual Source/DocumentationGearshiftModels.pptx b/Documentation/User Manual Source/DocumentationGearshiftModels.pptx index 2c2601edbf18d245d70a4b78d53fcde2e9ad7057..b6184919e63928f7599b281d140fb2949b26c879 100644 Binary files a/Documentation/User Manual Source/DocumentationGearshiftModels.pptx and b/Documentation/User Manual Source/DocumentationGearshiftModels.pptx differ diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyVoith.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyVoith.cs index 04b1bb50d0b10d2458e65932a574321d338e20c8..f33906ee6696c2a173d1d826832257ed3321aa02 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyVoith.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyVoith.cs @@ -62,7 +62,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var shift = row[ShiftLinesColumns.Shift].ToString().Split('-'); var g1 = shift[0].ToInt(); var g2 = shift[1].ToInt(); - var upshift = true; + bool upshift; if (g1 + 1 == g2) { // upshift upshift = true; @@ -75,34 +75,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var loadStage = row[ShiftLinesColumns.LoadStage].ToString().ToInt(); - var nDhAmaxLower = row.Field<string>(ShiftLinesColumns.nDhAmaxLower).ToDouble().RPMtoRad(); - var nLevelAmaxLower = row.Field<string>(ShiftLinesColumns.nLevelAmaxLower).ToDouble() + var nDhAmaxLower = row.Field<string>(ShiftLinesColumns.nDhAmax).ToDouble().RPMtoRad(); + var nLevelAmaxLower = row.Field<string>(ShiftLinesColumns.nLevelAmax).ToDouble() .RPMtoRad(); - var nUhAmaxLower = row.Field<string>(ShiftLinesColumns.nUhAmaxLower).ToDouble().RPMtoRad(); + var nUhAmaxLower = row.Field<string>(ShiftLinesColumns.nUhAmax).ToDouble().RPMtoRad(); - var nDhAminLower = GetAlternativeIfEmpty(row, ShiftLinesColumns.nDhAminLower, ShiftLinesColumns.nDhAmaxLower) + var nDhAminLower = GetAlternativeIfEmpty(row, ShiftLinesColumns.nDhAmin, ShiftLinesColumns.nDhAmax) .RPMtoRad(); var nLevelAminLower = GetAlternativeIfEmpty( - row, ShiftLinesColumns.nLevelAminLower, ShiftLinesColumns.nLevelAmaxLower).RPMtoRad(); - var nUhAminLower = GetAlternativeIfEmpty(row, ShiftLinesColumns.nUhAminLower, ShiftLinesColumns.nUhAmaxLower) - .RPMtoRad(); - - var nDhAminUpper = GetAlternativeIfEmpty( - row, ShiftLinesColumns.nDhAminUpper, ShiftLinesColumns.nDhAminLower, ShiftLinesColumns.nDhAmaxLower) - .RPMtoRad(); - var nLevelAminUpper = GetAlternativeIfEmpty( - row, ShiftLinesColumns.nLevelAminUpper, ShiftLinesColumns.nLevelAminLower, ShiftLinesColumns.nLevelAmaxLower) - .RPMtoRad(); - var nUhAminUpper = GetAlternativeIfEmpty( - row, ShiftLinesColumns.nUhAminUpper, ShiftLinesColumns.nUhAminLower, ShiftLinesColumns.nUhAmaxLower) - .RPMtoRad(); - - var nDhAmaxUpper = GetAlternativeIfEmpty(row, ShiftLinesColumns.nDhAmaxUpper, ShiftLinesColumns.nDhAmaxLower) - .RPMtoRad(); - var nLevelAmaxUpper = GetAlternativeIfEmpty( - row, ShiftLinesColumns.nLevelAmaxUpper, ShiftLinesColumns.nLevelAmaxLower) - .RPMtoRad(); - var nUhAmaxUpper = GetAlternativeIfEmpty(row, ShiftLinesColumns.nUhAmaxUpper, ShiftLinesColumns.nUhAmaxLower) + row, ShiftLinesColumns.nLevelAmin, ShiftLinesColumns.nLevelAmax).RPMtoRad(); + var nUhAminLower = GetAlternativeIfEmpty(row, ShiftLinesColumns.nUhAmin, ShiftLinesColumns.nUhAmax) .RPMtoRad(); ShiftLineSet shiftLineSet; @@ -128,35 +110,18 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var entry = new ShiftLines(); - entry.LowerBound.entriesAMin.Add(Tuple.Create(slopeDh, nDhAminLower)); - entry.LowerBound.entriesAMin.Add(Tuple.Create(slopeLevel, nLevelAminLower)); - entry.LowerBound.entriesAMin.Add(Tuple.Create(slopeUh, nUhAminLower)); - - entry.LowerBound.entriesAMax.Add(Tuple.Create(slopeDh, nDhAmaxLower)); - entry.LowerBound.entriesAMax.Add(Tuple.Create(slopeLevel, nLevelAmaxLower)); - entry.LowerBound.entriesAMax.Add(Tuple.Create(slopeUh, nUhAmaxLower)); + entry.entriesAMin.Add(Tuple.Create(slopeDh, nDhAminLower)); + entry.entriesAMin.Add(Tuple.Create(slopeLevel, nLevelAminLower)); + entry.entriesAMin.Add(Tuple.Create(slopeUh, nUhAminLower)); - entry.UpperBound.entriesAMin.Add(Tuple.Create(slopeDh, nDhAminUpper)); - entry.UpperBound.entriesAMin.Add(Tuple.Create(slopeLevel, nLevelAminUpper)); - entry.UpperBound.entriesAMin.Add(Tuple.Create(slopeUh, nUhAminUpper)); - - entry.UpperBound.entriesAMax.Add(Tuple.Create(slopeDh, nDhAmaxUpper)); - entry.UpperBound.entriesAMax.Add(Tuple.Create(slopeLevel, nLevelAmaxUpper)); - entry.UpperBound.entriesAMax.Add(Tuple.Create(slopeUh, nUhAmaxUpper)); + entry.entriesAMax.Add(Tuple.Create(slopeDh, nDhAmaxLower)); + entry.entriesAMax.Add(Tuple.Create(slopeLevel, nLevelAmaxLower)); + entry.entriesAMax.Add(Tuple.Create(slopeUh, nUhAmaxLower)); shiftLineSet.LoadStages[loadStage] = entry; } } - private double GetAlternativeIfEmpty(DataRow row, string col1, string col2, string col3) - { - return string.IsNullOrWhiteSpace(row[col1].ToString()) - ? (string.IsNullOrWhiteSpace(row[col2].ToString()) - ? row.Field<string>(col3).ToDouble() - : row.Field<string>(col2).ToDouble()) - : row.Field<string>(col1).ToDouble(); - } - private double GetAlternativeIfEmpty(DataRow row, string col1, string col2) { return string.IsNullOrWhiteSpace(row[col1].ToString()) @@ -308,21 +273,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public const string Shift = "shift"; public const string LoadStage = "loadstage"; - public const string nDhAminLower = "n_dh_amin_lower"; - public const string nLevelAminLower = "n_level_amin_lower"; - public const string nUhAminLower = "n_uh_amin_lower"; - - public const string nDhAmaxLower = "n_dh_amax_lower"; - public const string nLevelAmaxLower = "n_level_amax_lower"; - public const string nUhAmaxLower = "n_uh_amax_lower"; + public const string nDhAmin = "n_dh_amin"; + public const string nLevelAmin = "n_level_amin"; + public const string nUhAmin = "n_uh_amin"; - public const string nDhAminUpper = "n_dh_amin_upper"; - public const string nLevelAminUpper = "n_level_amin_upper"; - public const string nUhAminUpper = "n_uh_amin_upper"; - - public const string nDhAmaxUpper = "n_dh_amax_upper"; - public const string nLevelAmaxUpper = "n_level_amax_upper"; - public const string nUhAmaxUpper = "n_uh_amax_upper"; + public const string nDhAmax = "n_dh_amax"; + public const string nLevelAmax = "n_level_amax"; + public const string nUhAmax = "n_uh_amax"; } } @@ -346,29 +303,19 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl gradient = gradient.LimitTo( VectoMath.InclinationToAngle(ATShiftStrategyVoith.DownhillSlope), VectoMath.InclinationToAngle(ATShiftStrategyVoith.UphillSlope)); - var shiftSpeedsLower = shiftLinesSet.LowerBound.LookupShiftSpeed(gradient); - var shiftSpeedsUpper = shiftLinesSet.UpperBound.LookupShiftSpeed(gradient); + var shiftLine = shiftLinesSet.LookupShiftSpeed(gradient); var acc = aMin > aMax ? acceleration.LimitTo(aMax, aMin) : acceleration.LimitTo(aMin, aMax); - var shiftSpeed1 = VectoMath.Interpolate( - aMin, aMax, shiftSpeedsLower.ShiftSpeedAMin, shiftSpeedsLower.ShiftSpeedAMax, acc); - var shiftSpeed2 = VectoMath.Interpolate( - aMin, aMax, shiftSpeedsUpper.ShiftSpeedAMin, shiftSpeedsUpper.ShiftSpeedAMax, acc); + var shiftSpeed = VectoMath.Interpolate( + aMin, aMax, shiftLine.ShiftSpeedAMin, shiftLine.ShiftSpeedAMax, acc); - return (shiftSpeed1 + shiftSpeed2) / 2.0; + return shiftSpeed; } } public class ShiftLines { - public readonly ShiftSpeeds LowerBound = new ShiftSpeeds(); - public readonly ShiftSpeeds UpperBound = new ShiftSpeeds(); - } - - public class ShiftSpeeds - { - //private Tuple<Radian, Tuple<PerSecond, PerSecond>>[] entries; - + internal readonly List<Tuple<Radian, PerSecond>> entriesAMin = new List<Tuple<Radian, PerSecond>>(); internal readonly List<Tuple<Radian, PerSecond>> entriesAMax = new List<Tuple<Radian, PerSecond>>(); diff --git a/VectoCore/VectoCoreTest/TestData/Components/GearshiftLinesVoith.vgsv b/VectoCore/VectoCoreTest/TestData/Components/GearshiftLinesVoith.vgsv index 74eb2c7eafe3d39046d41cb7063b30978b315c53..66bdae6f81958ad99a7796cf2f0b994bb8ba7d31 100644 --- a/VectoCore/VectoCoreTest/TestData/Components/GearshiftLinesVoith.vgsv +++ b/VectoCore/VectoCoreTest/TestData/Components/GearshiftLinesVoith.vgsv @@ -1,42 +1,70 @@ -shift , LoadStage , n_dh_amax_lower , n_level_amax_lower , n_uh_amax_lower , n_dh_amin_lower , n_level_amin_lower , n_uh_amin_lower , n_dh_amax_upper , n_level_amax_upper , n_uh_amax_upper , n_dh_amin_upper , n_level_amin_upper , n_uh_amin_upper -1-2 , 1 , 650 , 680 , 725 , , , , , , , , , -1-2 , 2 , 650 , 680 , 725 , , , , , , , , , -1-2 , 3 , 650 , 680 , 725 , , , , , , , , , -1-2 , 4 , 650 , 680 , 725 , 670 , 700 , 745 , , , , , , -1-2 , 5 , 650 , 680 , 725 , 670 , 700 , 745 , 670 , 700 , 745 , 690 , 720 , 765 -1-2 , 6 , 670 , 700 , 745 , 690 , 720 , 765 , , , , , , -#---------------------------- -2-3 , 1 , 700 , 700 , 725 , , , , , , , , , -2-3 , 2 , 700 , 700 , 725 , , , , , , , , , -2-3 , 3 , 700 , 700 , 725 , , , , , , , , , -2-3 , 4 , 700 , 700 , 725 , 725 , 750 , 750 , , , , , , -2-3 , 5 , 700 , 700 , 725 , 725 , 750 , 750 , 725 , 750 , 750 , 750 , 770 , 800 -2-3 , 6 , 725 , 750 , 750 , 750 , 770 , 800 , , , , , , -#---------------------------- -3-4 , 1 , 725 , 750 , 800 , , , , , , , , , -3-4 , 2 , 725 , 750 , 800 , , , , , , , , , -3-4 , 3 , 725 , 750 , 800 , , , , , , , , , -3-4 , 4 , 725 , 750 , 800 , 750 , 775 , 825 , , , , , , -3-4 , 5 , 725 , 750 , 800 , 750 , 775 , 825 , 750 , 780 , 830 , 770 , 800 , 850 -3-4 , 6 , 750 , 780 , 830 , 770 , 800 , 850 , , , , , , -#---------------------------- -2-1 , 1 , 650 , 650 , 670 , , , , , , , , , -2-1 , 2 , 650 , 650 , 670 , , , , , , , , , -2-1 , 3 , 650 , 650 , 670 , , , , , , , , , -2-1 , 4 , 650 , 650 , 670 , 650 , 650 , 670 , , , , , , -2-1 , 5 , 650 , 650 , 670 , 650 , 650 , 670 , 650 , 650 , 670 , 650 , 650 , 670 -2-1 , 6 , 650 , 650 , 670 , 650 , 650 , 670 , , , , , , -#---------------------------- -3-2 , 1 , 700 , 720 , 740 , , , , , , , , , -3-2 , 2 , 700 , 720 , 740 , , , , , , , , , -3-2 , 3 , 700 , 720 , 740 , , , , , , , , , -3-2 , 4 , 700 , 720 , 740 , 700 , 720 , 740 , , , , , , -3-2 , 5 , 700 , 720 , 740 , 700 , 720 , 740 , 700 , 720 , 740 , 700 , 720 , 740 -3-2 , 6 , 700 , 720 , 740 , 700 , 720 , 740 , , , , , , -#---------------------------- -4-3 , 1 , 700 , 725 , 750 , , , , , , , , , -4-3 , 2 , 700 , 725 , 750 , , , , , , , , , -4-3 , 3 , 700 , 725 , 750 , , , , , , , , , -4-3 , 4 , 700 , 725 , 750 , 725 , 740 , 770 , , , , , , -4-3 , 5 , 700 , 725 , 750 , 725 , 740 , 770 , 725 , 740 , 770 , 740 , 760 , 800 -4-3 , 6 , 725 , 740 , 770 , 740 , 760 , 800 , , , , , , \ No newline at end of file +shift , LoadStage , n_dh_amax , n_level_amax , n_uh_amax , n_dh_amin , n_level_amin , n_uh_amin +1-2 , 1 , 650 , 680 , 725 , , , +1-2 , 2 , 650 , 680 , 725 , , , +1-2 , 3 , 650 , 680 , 725 , , , +1-2 , 4 , 650 , 680 , 725 , 670 , 700 , 745 +1-2 , 5 , 660 , 690 , 735 , 680 , 710 , 755 +1-2 , 6 , 670 , 700 , 745 , 690 , 720 , 765 +#---------------------------- +2-3 , 1 , 700 , 700 , 725 , , , +2-3 , 2 , 700 , 700 , 725 , , , +2-3 , 3 , 700 , 700 , 725 , , , +2-3 , 4 , 700 , 700 , 725 , 725 , 750 , 750 +2-3 , 5 , 712.5 , 725 , 737.5 , 737.5 , 760 , 775 +2-3 , 6 , 725 , 750 , 750 , 750 , 770 , 800 +#---------------------------- +3-4 , 1 , 725 , 750 , 800 , , , +3-4 , 2 , 725 , 750 , 800 , , , +3-4 , 3 , 725 , 750 , 800 , , , +3-4 , 4 , 725 , 750 , 800 , 750 , 775 , 825 +3-4 , 5 , 712.5 , 765 , 815 , 760 , 787.5 , 837.5 +3-4 , 6 , 750 , 780 , 830 , 770 , 800 , 850 +#---------------------------- +4-5 , 1 , 725 , 750 , 800 , , , +4-5 , 2 , 725 , 750 , 800 , , , +4-5 , 3 , 725 , 750 , 800 , , , +4-5 , 4 , 725 , 750 , 800 , 750 , 775 , 825 +4-5 , 5 , 712.5 , 765 , 815 , 760 , 787.5 , 837.5 +4-5 , 6 , 750 , 780 , 830 , 770 , 800 , 850 +#---------------------------- +5-6 , 1 , 725 , 750 , 800 , , , +5-6 , 2 , 725 , 750 , 800 , , , +5-6 , 3 , 725 , 750 , 800 , , , +5-6 , 4 , 725 , 750 , 800 , 750 , 775 , 825 +5-6 , 5 , 712.5 , 765 , 815 , 760 , 787.5 , 837.5 +5-6 , 6 , 750 , 780 , 830 , 770 , 800 , 850 +#---------------------------- +2-1 , 1 , 650 , 650 , 670 , , , +2-1 , 2 , 650 , 650 , 670 , , , +2-1 , 3 , 650 , 650 , 670 , , , +2-1 , 4 , 650 , 650 , 670 , 650 , 650 , 670 +2-1 , 5 , 650 , 650 , 670 , 650 , 650 , 670 +2-1 , 6 , 650 , 650 , 670 , 650 , 650 , 670 +#---------------------------- +3-2 , 1 , 700 , 720 , 740 , , , +3-2 , 2 , 700 , 720 , 740 , , , +3-2 , 3 , 700 , 720 , 740 , , , +3-2 , 4 , 700 , 720 , 740 , 700 , 720 , 740 +3-2 , 5 , 700 , 720 , 740 , 700 , 720 , 740 +3-2 , 6 , 700 , 720 , 740 , 700 , 720 , 740 +#---------------------------- +4-3 , 1 , 700 , 725 , 750 , , , +4-3 , 2 , 700 , 725 , 750 , , , +4-3 , 3 , 700 , 725 , 750 , , , +4-3 , 4 , 700 , 725 , 750 , 725 , 740 , 770 +4-3 , 5 , 712.5 , 732.5 , 760 , 732.5 , 750 , 785 +4-3 , 6 , 725 , 740 , 770 , 740 , 760 , 800 +#---------------------------- +5-4 , 1 , 700 , 725 , 750 , , , +5-4 , 2 , 700 , 725 , 750 , , , +5-4 , 3 , 700 , 725 , 750 , , , +5-4 , 4 , 700 , 725 , 750 , 725 , 740 , 770 +5-4 , 5 , 712.5 , 732.5 , 760 , 732.5 , 750 , 785 +5-4 , 6 , 725 , 740 , 770 , 740 , 760 , 800 +#---------------------------- +6-5 , 1 , 700 , 725 , 750 , , , +6-5 , 2 , 700 , 725 , 750 , , , +6-5 , 3 , 700 , 725 , 750 , , , +6-5 , 4 , 700 , 725 , 750 , 725 , 740 , 770 +6-5 , 5 , 712.5 , 732.5 , 760 , 732.5 , 750 , 785 +6-5 , 6 , 725 , 740 , 770 , 740 , 760 , 800 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/ShiftStrategyV2/CityBus_AT_GSVoith/GearshiftLinesVoith.vgsv b/VectoCore/VectoCoreTest/TestData/Integration/ShiftStrategyV2/CityBus_AT_GSVoith/GearshiftLinesVoith.vgsv index 10522e7fc422c03c4ff67b1165b4b6f9926a0273..66bdae6f81958ad99a7796cf2f0b994bb8ba7d31 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/ShiftStrategyV2/CityBus_AT_GSVoith/GearshiftLinesVoith.vgsv +++ b/VectoCore/VectoCoreTest/TestData/Integration/ShiftStrategyV2/CityBus_AT_GSVoith/GearshiftLinesVoith.vgsv @@ -1,70 +1,70 @@ -shift , LoadStage , n_dh_amax_lower , n_level_amax_lower , n_uh_amax_lower , n_dh_amin_lower , n_level_amin_lower , n_uh_amin_lower , n_dh_amax_upper , n_level_amax_upper , n_uh_amax_upper , n_dh_amin_upper , n_level_amin_upper , n_uh_amin_upper -1-2 , 1 , 650 , 680 , 725 , , , , , , , , , -1-2 , 2 , 650 , 680 , 725 , , , , , , , , , -1-2 , 3 , 650 , 680 , 725 , , , , , , , , , -1-2 , 4 , 650 , 680 , 725 , 670 , 700 , 745 , , , , , , -1-2 , 5 , 650 , 680 , 725 , 670 , 700 , 745 , 670 , 700 , 745 , 690 , 720 , 765 -1-2 , 6 , 670 , 700 , 745 , 690 , 720 , 765 , , , , , , +shift , LoadStage , n_dh_amax , n_level_amax , n_uh_amax , n_dh_amin , n_level_amin , n_uh_amin +1-2 , 1 , 650 , 680 , 725 , , , +1-2 , 2 , 650 , 680 , 725 , , , +1-2 , 3 , 650 , 680 , 725 , , , +1-2 , 4 , 650 , 680 , 725 , 670 , 700 , 745 +1-2 , 5 , 660 , 690 , 735 , 680 , 710 , 755 +1-2 , 6 , 670 , 700 , 745 , 690 , 720 , 765 #---------------------------- -2-3 , 1 , 700 , 700 , 725 , , , , , , , , , -2-3 , 2 , 700 , 700 , 725 , , , , , , , , , -2-3 , 3 , 700 , 700 , 725 , , , , , , , , , -2-3 , 4 , 700 , 700 , 725 , 725 , 750 , 750 , , , , , , -2-3 , 5 , 700 , 700 , 725 , 725 , 750 , 750 , 725 , 750 , 750 , 750 , 770 , 800 -2-3 , 6 , 725 , 750 , 750 , 750 , 770 , 800 , , , , , , +2-3 , 1 , 700 , 700 , 725 , , , +2-3 , 2 , 700 , 700 , 725 , , , +2-3 , 3 , 700 , 700 , 725 , , , +2-3 , 4 , 700 , 700 , 725 , 725 , 750 , 750 +2-3 , 5 , 712.5 , 725 , 737.5 , 737.5 , 760 , 775 +2-3 , 6 , 725 , 750 , 750 , 750 , 770 , 800 #---------------------------- -3-4 , 1 , 725 , 750 , 800 , , , , , , , , , -3-4 , 2 , 725 , 750 , 800 , , , , , , , , , -3-4 , 3 , 725 , 750 , 800 , , , , , , , , , -3-4 , 4 , 725 , 750 , 800 , 750 , 775 , 825 , , , , , , -3-4 , 5 , 725 , 750 , 800 , 750 , 775 , 825 , 750 , 780 , 830 , 770 , 800 , 850 -3-4 , 6 , 750 , 780 , 830 , 770 , 800 , 850 , , , , , , +3-4 , 1 , 725 , 750 , 800 , , , +3-4 , 2 , 725 , 750 , 800 , , , +3-4 , 3 , 725 , 750 , 800 , , , +3-4 , 4 , 725 , 750 , 800 , 750 , 775 , 825 +3-4 , 5 , 712.5 , 765 , 815 , 760 , 787.5 , 837.5 +3-4 , 6 , 750 , 780 , 830 , 770 , 800 , 850 #---------------------------- -4-5 , 1 , 725 , 750 , 800 , , , , , , , , , -4-5 , 2 , 725 , 750 , 800 , , , , , , , , , -4-5 , 3 , 725 , 750 , 800 , , , , , , , , , -4-5 , 4 , 725 , 750 , 800 , 750 , 775 , 825 , , , , , , -4-5 , 5 , 725 , 750 , 800 , 750 , 775 , 825 , 750 , 780 , 830 , 770 , 800 , 850 -4-5 , 6 , 750 , 780 , 830 , 770 , 800 , 850 , , , , , , +4-5 , 1 , 725 , 750 , 800 , , , +4-5 , 2 , 725 , 750 , 800 , , , +4-5 , 3 , 725 , 750 , 800 , , , +4-5 , 4 , 725 , 750 , 800 , 750 , 775 , 825 +4-5 , 5 , 712.5 , 765 , 815 , 760 , 787.5 , 837.5 +4-5 , 6 , 750 , 780 , 830 , 770 , 800 , 850 #---------------------------- -5-6 , 1 , 725 , 750 , 800 , , , , , , , , , -5-6 , 2 , 725 , 750 , 800 , , , , , , , , , -5-6 , 3 , 725 , 750 , 800 , , , , , , , , , -5-6 , 4 , 725 , 750 , 800 , 750 , 775 , 825 , , , , , , -5-6 , 5 , 725 , 750 , 800 , 750 , 775 , 825 , 750 , 780 , 830 , 770 , 800 , 850 -5-6 , 6 , 750 , 780 , 830 , 770 , 800 , 850 , , , , , , +5-6 , 1 , 725 , 750 , 800 , , , +5-6 , 2 , 725 , 750 , 800 , , , +5-6 , 3 , 725 , 750 , 800 , , , +5-6 , 4 , 725 , 750 , 800 , 750 , 775 , 825 +5-6 , 5 , 712.5 , 765 , 815 , 760 , 787.5 , 837.5 +5-6 , 6 , 750 , 780 , 830 , 770 , 800 , 850 #---------------------------- -2-1 , 1 , 650 , 650 , 670 , , , , , , , , , -2-1 , 2 , 650 , 650 , 670 , , , , , , , , , -2-1 , 3 , 650 , 650 , 670 , , , , , , , , , -2-1 , 4 , 650 , 650 , 670 , 650 , 650 , 670 , , , , , , -2-1 , 5 , 650 , 650 , 670 , 650 , 650 , 670 , 650 , 650 , 670 , 650 , 650 , 670 -2-1 , 6 , 650 , 650 , 670 , 650 , 650 , 670 , , , , , , +2-1 , 1 , 650 , 650 , 670 , , , +2-1 , 2 , 650 , 650 , 670 , , , +2-1 , 3 , 650 , 650 , 670 , , , +2-1 , 4 , 650 , 650 , 670 , 650 , 650 , 670 +2-1 , 5 , 650 , 650 , 670 , 650 , 650 , 670 +2-1 , 6 , 650 , 650 , 670 , 650 , 650 , 670 #---------------------------- -3-2 , 1 , 700 , 720 , 740 , , , , , , , , , -3-2 , 2 , 700 , 720 , 740 , , , , , , , , , -3-2 , 3 , 700 , 720 , 740 , , , , , , , , , -3-2 , 4 , 700 , 720 , 740 , 700 , 720 , 740 , , , , , , -3-2 , 5 , 700 , 720 , 740 , 700 , 720 , 740 , 700 , 720 , 740 , 700 , 720 , 740 -3-2 , 6 , 700 , 720 , 740 , 700 , 720 , 740 , , , , , , +3-2 , 1 , 700 , 720 , 740 , , , +3-2 , 2 , 700 , 720 , 740 , , , +3-2 , 3 , 700 , 720 , 740 , , , +3-2 , 4 , 700 , 720 , 740 , 700 , 720 , 740 +3-2 , 5 , 700 , 720 , 740 , 700 , 720 , 740 +3-2 , 6 , 700 , 720 , 740 , 700 , 720 , 740 #---------------------------- -4-3 , 1 , 700 , 725 , 750 , , , , , , , , , -4-3 , 2 , 700 , 725 , 750 , , , , , , , , , -4-3 , 3 , 700 , 725 , 750 , , , , , , , , , -4-3 , 4 , 700 , 725 , 750 , 725 , 740 , 770 , , , , , , -4-3 , 5 , 700 , 725 , 750 , 725 , 740 , 770 , 725 , 740 , 770 , 740 , 760 , 800 -4-3 , 6 , 725 , 740 , 770 , 740 , 760 , 800 , , , , , , +4-3 , 1 , 700 , 725 , 750 , , , +4-3 , 2 , 700 , 725 , 750 , , , +4-3 , 3 , 700 , 725 , 750 , , , +4-3 , 4 , 700 , 725 , 750 , 725 , 740 , 770 +4-3 , 5 , 712.5 , 732.5 , 760 , 732.5 , 750 , 785 +4-3 , 6 , 725 , 740 , 770 , 740 , 760 , 800 #---------------------------- -5-4 , 1 , 700 , 725 , 750 , , , , , , , , , -5-4 , 2 , 700 , 725 , 750 , , , , , , , , , -5-4 , 3 , 700 , 725 , 750 , , , , , , , , , -5-4 , 4 , 700 , 725 , 750 , 725 , 740 , 770 , , , , , , -5-4 , 5 , 700 , 725 , 750 , 725 , 740 , 770 , 725 , 740 , 770 , 740 , 760 , 800 -5-4 , 6 , 725 , 740 , 770 , 740 , 760 , 800 , , , , , , +5-4 , 1 , 700 , 725 , 750 , , , +5-4 , 2 , 700 , 725 , 750 , , , +5-4 , 3 , 700 , 725 , 750 , , , +5-4 , 4 , 700 , 725 , 750 , 725 , 740 , 770 +5-4 , 5 , 712.5 , 732.5 , 760 , 732.5 , 750 , 785 +5-4 , 6 , 725 , 740 , 770 , 740 , 760 , 800 #---------------------------- -6-5 , 1 , 700 , 725 , 750 , , , , , , , , , -6-5 , 2 , 700 , 725 , 750 , , , , , , , , , -6-5 , 3 , 700 , 725 , 750 , , , , , , , , , -6-5 , 4 , 700 , 725 , 750 , 725 , 740 , 770 , , , , , , -6-5 , 5 , 700 , 725 , 750 , 725 , 740 , 770 , 725 , 740 , 770 , 740 , 760 , 800 -6-5 , 6 , 725 , 740 , 770 , 740 , 760 , 800 , , , , , , \ No newline at end of file +6-5 , 1 , 700 , 725 , 750 , , , +6-5 , 2 , 700 , 725 , 750 , , , +6-5 , 3 , 700 , 725 , 750 , , , +6-5 , 4 , 700 , 725 , 750 , 725 , 740 , 770 +6-5 , 5 , 712.5 , 732.5 , 760 , 732.5 , 750 , 785 +6-5 , 6 , 725 , 740 , 770 , 740 , 760 , 800 \ No newline at end of file