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 3d828e54 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

testing additional model parameters: min engine speed post-upshift; estimated...

testing additional model parameters: min engine speed post-upshift; estimated power including v_drop, ...
parent fbe0bb86
Branches
Tags
No related merge requests found
Showing
with 136 additions and 142 deletions
......@@ -607,6 +607,12 @@ Public Class Gearbox
End Get
End Property
public readonly Property MinEngineSpeedPostUpshift as PerSecond Implements IGearshiftEngineeringInputData.MinEngineSpeedPostUpshift
get
Return Nothing
End Get
End Property
Public Overridable ReadOnly Property LoadStageShiftLines As TableData Implements IGearshiftEngineeringInputData.LoadStageShiftLines
Get
Return Nothing
......
......@@ -285,6 +285,7 @@ namespace TUGraz.VectoCommon.InputData
TableData LoadStageShiftLines { get; }
IList<double> LoadStageThresoldsUp { get; }
IList<double> LoadStageThresoldsDown { get; }
PerSecond MinEngineSpeedPostUpshift { get; }
}
public interface ITorqueConverterEngineeringShiftParameterInputData
......
......@@ -405,6 +405,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
public double? RatioEarlyDownshiftFC { get { return null; } }
public int? AllowedGearRangeFC { get { return null; } }
public PerSecond MinEngineSpeedPostUpshift { get { return null; } }
public double? VeloictyDropFactor
{
get { return null; }
......
......@@ -290,6 +290,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
}
}
public PerSecond MinEngineSpeedPostUpshift
{
get {
if (Body["MinEngineSpeedPostUpshift"] == null) {
return null;
}
return Body.GetEx<double>("MinEngineSpeedPostUpshift").RPMtoRad();
}
}
public TableData LoadStageShiftLines
{
get {
......
......@@ -118,6 +118,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider
public double? VeloictyDropFactor { get { return null; } }
public PerSecond MinEngineSpeedPostUpshift { get { return null; } }
public double? AccelerationFactor
{
get { return null; }
......
......@@ -601,6 +601,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
AllowedGearRangeFC = gbxType.AutomaticTransmission() ? DeclarationData.GearboxTCU.AllowedGearRangeFCAT : DeclarationData.GearboxTCU.AllowedGearRangeFCAMT,
VelocityDropFactor = DeclarationData.GearboxTCU.VelocityDropFactor,
AccelerationFactor = DeclarationData.GearboxTCU.AccelerationFactor,
MinEngineSpeedPostUpshift = 0.RPMtoRad(),
};
return retVal;
......
......@@ -460,6 +460,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
AllowedGearRangeFC = gsInputData.AllowedGearRangeFC ?? (gbxType.AutomaticTransmission() ? DeclarationData.GearboxTCU.AllowedGearRangeFCAT : DeclarationData.GearboxTCU.AllowedGearRangeFCAMT),
VelocityDropFactor = gsInputData.VeloictyDropFactor ?? DeclarationData.GearboxTCU.VelocityDropFactor,
AccelerationFactor = gsInputData.AccelerationFactor ?? DeclarationData.GearboxTCU.AccelerationFactor,
MinEngineSpeedPostUpshift = gsInputData.MinEngineSpeedPostUpshift ?? 0.RPMtoRad(),
// voith gs parameters
......
......@@ -65,6 +65,6 @@ namespace TUGraz.VectoCore.Models.Simulation.Data {
public IEnumerable<Tuple<double, double>> LoadstageThresholds { get; set; }
public PerSecond MinEngineSpeedPostUpshift { get; set; }
}
}
\ No newline at end of file
......@@ -116,7 +116,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent
TorqueConverterLocked = tcLocked;
}
public uint Gear { get; private set; }
public uint Gear { get; protected internal set; }
public bool TorqueConverterLocked { get; private set; }
}
}
\ No newline at end of file
......@@ -26,7 +26,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
private SimplePowertrainContainer TestContainer;
private Gearbox TestContainerGbx;
//protected readonly VelocityRollingLookup VelocityDropData;
protected readonly VelocityRollingLookup VelocityDropData;
private AccelerationCurveData accCurve;
private Kilogram vehicleMass;
......@@ -56,12 +56,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
}
// register pre-processors
//var maxG = runData.Cycle.Entries.Max(x => Math.Abs(x.RoadGradientPercent.Value())) + 1;
//var grad = Convert.ToInt32(maxG / 2) * 2;
var maxG = runData.Cycle.Entries.Max(x => Math.Abs(x.RoadGradientPercent.Value())) + 1;
var grad = Convert.ToInt32(maxG / 2) * 2;
if (grad == 0) {
grad = 2;
}
//VelocityDropData = new VelocityRollingLookup();
//dataBus.AddPreprocessor(
// new VelocitySpeedGearshiftPreprocessor(VelocityDropData, runData.GearboxData.TractionInterruption, TestContainer, -grad, grad, 2));
VelocityDropData = new VelocityRollingLookup();
dataBus.AddPreprocessor(
new VelocitySpeedGearshiftPreprocessor(VelocityDropData, runData.GearboxData.TractionInterruption, TestContainer, -grad, grad, 2));
if (shiftStrategyParameters.AllowedGearRangeFC > 2 || shiftStrategyParameters.AllowedGearRangeFC < 1) {
Log.Warn("Gear-range for FC-based gearshift must be either 1 or 2!");
......@@ -80,11 +83,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var fcUpshiftPossible = true;
//var estimatedVelocityPostShift = VelocityDropData.Interpolate(DataBus.VehicleSpeed, DataBus.RoadGradient);
//var vDrop = DataBus.VehicleSpeed - estimatedVelocityPostShift;
//var vehicleSpeedForGearRating = DataBus.VehicleSpeed - vDrop * shiftStrategyParameters.VelocityDropFactor;
var estimatedVelocityPostShift = VelocityDropData.Interpolate(DataBus.VehicleSpeed, DataBus.RoadGradient ?? 0.SI<Radian>());
var vDrop = DataBus.VehicleSpeed - estimatedVelocityPostShift;
var vehicleSpeedPostShift = DataBus.VehicleSpeed - vDrop * shiftStrategyParameters.VelocityDropFactor;
var totalTransmissionRatio = DataBus.EngineSpeed / DataBus.VehicleSpeed;
//var totalTransmissionRatio = DataBus.EngineSpeed / DataBus.VehicleSpeed;
var totalTransmissionRatio = outAngularVelocity / DataBus.VehicleSpeed;
for (var i = 1; i <= shiftStrategyParameters.AllowedGearRangeFC; i++) {
var tryNextGear = (uint)(currentGear + i);
......@@ -96,7 +100,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
fcUpshiftPossible = true;
//var response = RequestDryRunWithGear(absTime, dt, vehicleSpeedForGearRating, DataBus.DriverAcceleration, tryNextGear);
//var response = RequestDryRunWithGear(absTime, dt, vehicleSpeedPostShift, DataBus.DriverAcceleration, tryNextGear);
var response = RequestDryRunWithGear(absTime, dt, outTorque, outAngularVelocity, tryNextGear);
var inAngularVelocity = ModelData.Gears[tryNextGear].Ratio * outAngularVelocity;
......@@ -108,6 +112,17 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
continue;
}
var estimatedEngineSpeed = (vehicleSpeedPostShift * (totalTransmissionRatio * ModelData.Gears[tryNextGear].Ratio)).Cast<PerSecond>();
if (estimatedEngineSpeed.IsSmaller(shiftStrategyParameters.MinEngineSpeedPostUpshift)) {
continue;
}
var pNextGearMax = DataBus.EngineStationaryFullPower(estimatedEngineSpeed);
if (!response.EnginePowerRequest.IsSmaller(pNextGearMax)) {
continue;
}
var fullLoadPower = response.EnginePowerRequest - response.DeltaFullLoad;
var reserve = 1 - response.EnginePowerRequest / fullLoadPower;
......@@ -116,7 +131,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
if (reserve < ModelData.TorqueReserve /* && reserve > -0.1*/) {
//var acc = EstimateAcceleration(outAngularVelocity, outTorque);
//var estimatedEngineSpeed = DataBus.VehicleSpeed * (totalTransmissionRatio / ModelData.Gears[currentGear].Ratio * ModelData.Gears[tryNextGear].Ratio);
var accelerationFactor = outAngularVelocity * ModelData.Gears[currentGear].Ratio < fld[0].NTq98hSpeed
? 1.0
: VectoMath.Interpolate(
......@@ -127,7 +141,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
}
//var minAcc = VectoMath.Min(DataBus.DriverAcceleration, accCurve.Lookup(DataBus.VehicleSpeed).Acceleration * accelerationFactor);
//var minAcc = DataBus.DriverAcceleration * accelerationFactor;
//response = RequestDryRunWithGear(absTime, dt, vehicleSpeedForGearRating, minAcc, tryNextGear);
//response = RequestDryRunWithGear(absTime, dt, vehicleSpeedPostShift, minAcc, tryNextGear);
var accelerationTorque = vehicleMass * DataBus.DriverAcceleration * DataBus.VehicleSpeed / outAngularVelocity;
var reducedTorque = outTorque - accelerationTorque * (1 - accelerationFactor);
......@@ -265,12 +279,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
responseCurrent.EngineTorqueDemand.LimitTo(
fld[currentGear].DragLoadStationaryTorque(responseCurrent.EngineSpeed),
fld[currentGear].FullLoadStationaryTorque(responseCurrent.EngineSpeed))
, responseCurrent.EngineSpeed).Value;
, responseCurrent.EngineSpeed, true).Value;
}
var fcNext = fcMap.GetFuelConsumption(
response.EngineTorqueDemand.LimitTo(
fld[tryNextGear].DragLoadStationaryTorque(response.EngineSpeed),
fld[tryNextGear].FullLoadStationaryTorque(response.EngineSpeed)), response.EngineSpeed).Value;
fld[tryNextGear].FullLoadStationaryTorque(response.EngineSpeed)), response.EngineSpeed, true).Value;
if (!fcNext.IsSmaller(fcCurrent * shiftStrategyParameters.RatingFactorCurrentGear) ||
!fcNext.IsSmaller(minFc)) {
......
......@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
{
public class ATGearbox : AbstractGearbox<ATGearbox.ATGearboxState>
{
private readonly IShiftStrategy _strategy;
protected internal readonly IShiftStrategy _strategy;
protected internal readonly TorqueConverter TorqueConverter;
private IIdleController _idleController;
protected bool RequestAfterGearshift;
......
......@@ -109,7 +109,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var currentIdx = GearList.IndexOf(current);
var vDrop = DataBus.DriverAcceleration * DeclarationData.Gearbox.PowershiftShiftTime;
var vehicleSpeedForGearRating = DataBus.VehicleSpeed - vDrop * shiftStrategyParameters.VelocityDropFactor;
var vehicleSpeedPostShift = DataBus.VehicleSpeed + vDrop * shiftStrategyParameters.VelocityDropFactor;
for (var i = 1; i <= shiftStrategyParameters.AllowedGearRangeFC; i++) {
......@@ -128,13 +128,26 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
continue;
}
var inAngularVelocity = ModelData.Gears[next.Gear].Ratio * outAngularVelocity;
var totalTransmissionRatio = inAngularVelocity / DataBus.VehicleSpeed;
var estimatedEngineSpeed = (vehicleSpeedPostShift * totalTransmissionRatio).Cast<PerSecond>();
if (estimatedEngineSpeed.IsSmaller(shiftStrategyParameters.MinEngineSpeedPostUpshift)) {
continue;
}
var pNextGearMax = DataBus.EngineStationaryFullPower(estimatedEngineSpeed);
var response = RequestDryRunWithGear(absTime, dt, outTorque, outAngularVelocity, next);
//var response = RequestDryRunWithGear(absTime, dt, vehicleSpeedForGearRating, DataBus.DriverAcceleration, next);
//var response = RequestDryRunWithGear(absTime, dt, vehicleSpeedPostShift, DataBus.DriverAcceleration, next);
if (!response.EnginePowerRequest.IsSmaller(pNextGearMax)) {
continue;
}
var inAngularVelocity = ModelData.Gears[next.Gear].Ratio * outAngularVelocity;
var inTorque = response.EnginePowerRequest / inAngularVelocity;
// if next gear supplied enough power reserve: take it
// otherwise take
if (ModelData.Gears[next.Gear].ShiftPolygon.IsBelowDownshiftCurve(inTorque, inAngularVelocity)) {
......@@ -157,6 +170,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var reducedTorque = outTorque - accelerationTorque * (1 - accelerationFactor);
response = RequestDryRunWithGear(absTime, dt, reducedTorque, outAngularVelocity, next);
//response = RequestDryRunWithGear(absTime, dt, vehicleSpeedPostShift, DataBus.DriverAcceleration * accelerationFactor, next);
fullLoadPower = response.EnginePowerRequest - response.DeltaFullLoad;
reserve = 1 - response.EnginePowerRequest / fullLoadPower;
if (reserve < ModelData.TorqueReserve) {
......@@ -249,12 +263,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
responseCurrent.EngineTorqueDemand.LimitTo(
fld[currentGear].DragLoadStationaryTorque(responseCurrent.EngineSpeed),
fld[currentGear].FullLoadStationaryTorque(responseCurrent.EngineSpeed))
, responseCurrent.EngineSpeed).Value;
, responseCurrent.EngineSpeed, true).Value;
}
var fcNext = fcMap.GetFuelConsumption(
response.EngineTorqueDemand.LimitTo(
fld[next.Gear].DragLoadStationaryTorque(response.EngineSpeed),
fld[next.Gear].FullLoadStationaryTorque(response.EngineSpeed)), response.EngineSpeed).Value;
fld[next.Gear].FullLoadStationaryTorque(response.EngineSpeed)), response.EngineSpeed, true).Value;
if (fcNext.IsSmaller(fcCurrent * shiftStrategyParameters.RatingFactorCurrentGear) && fcNext.IsSmaller(minFc)) {
minFcGear = next;
......
......@@ -61,7 +61,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
protected readonly IDriverStrategy DriverStrategy;
public DrivingAction DrivingAction { get; private set; }
public DrivingAction DrivingAction { get; protected internal set; }
public Driver(IVehicleContainer container, DriverData driverData, IDriverStrategy strategy) : base(container)
{
......
......@@ -29,6 +29,15 @@ namespace TUGraz.VectoCore.Tests.Integration
}
[TestCase()]
public void VECTO_EffShift()
{
var jobName =
@"E:\QUAM\tmp\1a_EffShift_high-engine-rev_UD-cycle_LH-tractor_model\vecto_tractor_4x2_overdr_EffShift-def.vecto";
RunJob_DeclSingle(jobName, 9);
}
[TestCase(@"E:\QUAM\tmp\AMT_ShiftStrategyNeu\VOLVO_AxleLossMapExtrapolation\Class5_TUG_Vehicle_VOLVO.xml", 5)]
public void RunJob_DeclSingle(string jobName, int runIdx)
{
......
......@@ -40,10 +40,14 @@ using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.InputData.FileIO.JSON;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.Simulation.DataBus;
using TUGraz.VectoCore.Models.Simulation.Impl;
using TUGraz.VectoCore.Models.SimulationComponent.Impl;
using TUGraz.VectoCore.OutputData.FileIO;
using TUGraz.VectoCore.Tests.Models.Simulation;
using TUGraz.VectoCore.Tests.Utils;
using System.Collections.Generic;
using TUGraz.VectoCore.Models.Connector.Ports.Impl;
namespace TUGraz.VectoCore.Tests.Integration.ShiftStrategy
{
......@@ -104,5 +108,51 @@ namespace TUGraz.VectoCore.Tests.Integration.ShiftStrategy
GraphWriter.Write(modFile);
}
[TestCase()]
public void TestGearshiftTrigger()
{
var amtTestcase = @"E:\QUAM\tmp\AT_Vdrop\AMT_normal\MB_Citaro_G_MP156_ZF_Sort.vecto";
var atTestcase = @"E:\QUAM\tmp\AT_Vdrop\AT_normal\MB_Citaro_G_MP156_ZF_Sort.vecto";
var relativeJobPath = amtTestcase;
var writer = new FileOutputWriter(Path.Combine(Path.GetDirectoryName(relativeJobPath), "tmp", Path.GetFileName(relativeJobPath)));
var inputData = JSONInputDataFactory.ReadJsonJob(relativeJobPath);
var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) {
WriteModalResults = true,
//ActualModalData = true,
Validate = false
};
var jobContainer = new JobContainer(new MockSumWriter());
var runs = factory.SimulationRuns().ToArray();
var run = runs[0];
var container = run.GetContainer() as VehicleContainer;
var vehicle = container?.Vehicle as Vehicle;
Assert.NotNull(container);
Assert.NotNull(vehicle);
foreach (var preprocessor in container.Preprocessors) {
preprocessor.RunPreprocessing();
}
var decision = new List<Tuple<double, bool>>();
for (var v = 10.0; v < 20; v += 0.1) {
vehicle.Initialize(v.KMPHtoMeterPerSecond(), 0.SI<Radian>());
container.AbsTime = 0.SI<Second>();
(container.Gearbox as Gearbox).Gear = 2;
//(container.Gearbox as ATGearbox)._strategy.NextGear.Gear = 0;
(container.Driver as Driver).DrivingAction = DrivingAction.Accelerate;
(container.Driver as Driver).DriverBehavior = DrivingBehavior.Accelerating;
var response = vehicle.Request(
0.SI<Second>(), 0.5.SI<Second>(), 0.5.SI<MeterPerSquareSecond>(), 0.SI<Radian>(), false);
decision.Add(Tuple.Create(v, response is ResponseGearShift /* || (container.Gearbox as ATGearbox)._strategy.NextGear.Gear > 2) */));
}
foreach (var tuple in decision) {
Console.WriteLine("{0}: {1}", tuple.Item1, tuple.Item2 ? "1" : "0");
}
}
}
}
\ No newline at end of file
......@@ -2021,123 +2021,6 @@
<None Include="TestData\Integration\FullPowerTrain\unlimited.vacc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\5_ms2.vacc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\AccelerationReserveLookup.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Acc_TUG.vacc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Acc_ZF.vacc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\HeavyUrban.vdri">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Interurban.vdri">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\MB_Citaro_G_MP156_HUB_UB_SUB.vveh">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\MB_Citaro_G_MP156_IUB.vveh">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\MB_Citaro_G_MP156_Sort.vveh">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\MB_Citaro_G_MP156_ZF_HUB_UB_SUB.vecto">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\MB_Citaro_G_MP156_ZF_IUB.vecto">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\MB_Citaro_G_MP156_ZF_Sort.vecto">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\OM470EU6_265kW_1700Nm_MP156_Engine.veng">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\OM470EU6_265kW_1700Nm_MP156_Fullload.vfld">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\OM470EU6_MP156_FCmap_komplett.vmap">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\PredictionTimeLookup.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ShareEngineSpeedHigh.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ShareIdleLow.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ShareTq99L.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ShiftParameters.vtcu">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Shift_tc.vgbs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Shift_V2_gear 1.vgbs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Shift_V2_gear 2.vgbs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Shift_V2_gear 3.vgbs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Shift_V2_gear 4.vgbs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Shift_V2_gear 5.vgbs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\SORT1_target_speed.vdri">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\SORT2_target_speed.vdri">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\SORT3_target_speed.vdri">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Suburban.vdri">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\Urban.vdri">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ZF_1.vtlm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ZF_2.vtlm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ZF_3.vtlm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ZF_4.vtlm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ZF_5.vtlm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ZF_6.vtlm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ZF_EcoLife_1700_SN2837.vgbx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\ShiftStrategyV2\FC-Based_AT_TUG\ZF_EcoLife_1700_SN2837.vtcc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\Integration\TotalMassExceededInMU\325kW.vfld">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment