diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs index da1387ddd3cf7235617a6e413f7dbd39b9d305fc..62bd6caf44abe7a4a8eee3db0edee5e7144c894b 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs @@ -384,7 +384,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter MinSpeed = driver.EcoRollData?.MinSpeed ?? DeclarationData.Driver.EcoRoll.MinSpeed, ActivationPhaseDuration = driver.EcoRollData?.ActivationDelay ?? DeclarationData.Driver.EcoRoll.ActivationDelay, AccelerationLowerLimit = DeclarationData.Driver.EcoRoll.AccelerationLowerLimit, - AccelerationUpperLimit = DeclarationData.Driver.EcoRoll.AccelerationUpperLimit, + AccelerationUpperLimit = 0.15.SI<MeterPerSquareSecond>(), // DeclarationData.Driver.EcoRoll.AccelerationUpperLimit, } }; return retVal; diff --git a/VectoCore/VectoCore/Models/Simulation/DataBus/IGearboxInfo.cs b/VectoCore/VectoCore/Models/Simulation/DataBus/IGearboxInfo.cs index a3d9b29a88b6ca5ab10c5b94a6a646a9285cf538..696f0a97976c9c4817f098fd54f0d1255afbb29c 100644 --- a/VectoCore/VectoCore/Models/Simulation/DataBus/IGearboxInfo.cs +++ b/VectoCore/VectoCore/Models/Simulation/DataBus/IGearboxInfo.cs @@ -68,10 +68,12 @@ namespace TUGraz.VectoCore.Models.Simulation.DataBus Second TractionInterruption { get; } uint NumGears { get; } + + bool DisengageGearbox { get; } } public interface IGearboxControl { - bool DisengageGearbox { get; set; } + bool DisengageGearbox { set; } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs index b955470472d3468a0bf512d9a562411fb4db6fcb..e551e57100e25e4e98e06132c51a46a5e1fd0225 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs @@ -490,7 +490,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl public bool DisengageGearbox { - get { return GearboxCtl.DisengageGearbox; } + get { return Gearbox.DisengageGearbox; } set { GearboxCtl.DisengageGearbox = value; } } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs index 2759204095328a67f79302e1d7f35d50b9d6237c..c51a3fb04b8fbe7b606d28fb941a9588253ceaab 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs @@ -114,11 +114,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl !(CurrentState.Disengaged || (DataBus.DriverBehavior == DrivingBehavior.Halted)); } - public override bool DisengageGearbox - { - get { throw new System.NotImplementedException(); } - set { throw new System.NotImplementedException(); } - } + public override bool DisengageGearbox { get; set; } public override IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity) { @@ -328,7 +324,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl CurrentState.InAngularVelocity); } - if (!CurrentState.TorqueConverterLocked) { + if (!CurrentState.TorqueConverterLocked || DisengageGearbox) { var response = TorqueConverter.Request(absTime, dt, inTorque, inAngularVelocity, dryRun); if (response is ResponseGearShift) { //RequestAfterGearshift = false; @@ -408,8 +404,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var avgInAngularSpeed = (PreviousState.InAngularVelocity + CurrentState.InAngularVelocity) / 2.0; var avgOutAngularSpeed = (PreviousState.OutAngularVelocity + CurrentState.OutAngularVelocity) / 2.0; - container[ModalResultField.Gear] = CurrentState.Disengaged || DataBus.VehicleStopped ? 0 : Gear; - container[ModalResultField.TC_Locked] = CurrentState.TorqueConverterLocked; + container[ModalResultField.Gear] = DisengageGearbox || CurrentState.Disengaged || DataBus.VehicleStopped ? 0 : Gear; + container[ModalResultField.TC_Locked] = !DisengageGearbox && CurrentState.TorqueConverterLocked; container[ModalResultField.P_gbx_loss] = CurrentState.InTorque * avgInAngularSpeed - CurrentState.OutTorque * avgOutAngularSpeed; container[ModalResultField.P_gbx_inertia] = CurrentState.InertiaTorqueLossOut * avgOutAngularSpeed; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs index 3551c75545247b58988107897005d3a88c4d6bae..7e5b06f741d30c9af8e50506f3a342b83cd19bfa 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs @@ -195,7 +195,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var slopeNegative = dBus.RoadGradient.IsSmaller(0); var forces = dBus.SlopeResistance(dBus.RoadGradient) + dBus.RollingResistance(dBus.RoadGradient) + dBus.AirDragResistance(dBus.VehicleSpeed, dBus.VehicleSpeed); - var accelerationWithinLimits = (-forces / dBus.VehicleMass).IsBetween( + //forces -= + if (dBus.GearboxType.AutomaticTransmission() && dBus.VehicleSpeed.IsGreater(0)) { + // for AT transmissions consider engine drag losses during eco-roll events + forces -= dBus.EngineDragPower(dBus.EngineSpeed) / dBus.VehicleSpeed; + forces += (dBus.GearboxLoss() + dBus.AxlegearLoss()) / dBus.VehicleSpeed; + } + var accelerationWithinLimits = (-forces / dBus.TotalMass).IsBetween( Driver.DriverData.EcoRoll.AccelerationLowerLimit, Driver.DriverData.EcoRoll.AccelerationUpperLimit); var accelerationPedalIdle = EcoRollState.AcceleratorPedalIdle; var brakeActive = !EcoRollState.PreviousBrakePower.IsEqual(0); @@ -233,13 +239,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl switch (EcoRollState.State) { case EcoRollStates.EcoRollOn: - dBus.DisengageGearbox = true; + (dBus as IGearboxControl).DisengageGearbox = true; if (ADAS.EcoRoll == EcoRollType.WithEngineStop) { dBus.IgnitionOn = false; } return; case EcoRollStates.EcoRollOff: - dBus.DisengageGearbox = false; + (dBus as IGearboxControl).DisengageGearbox = false; if (ADAS.EcoRoll == EcoRollType.WithEngineStop) { dBus.IgnitionOn = true; } @@ -587,13 +593,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var debug = new DebugData(); Driver.DriverBehavior = DrivingBehavior.Driving; - var velocity = targetVelocity; + var velocityWithOverspeed = targetVelocity; if (DriverStrategy.OverspeedAllowed(targetVelocity, prohibitOverspeed)) { - velocity += DriverData.OverSpeed.OverSpeed; + velocityWithOverspeed += DriverData.OverSpeed.OverSpeed; } if (DataBus.GearboxType.AutomaticTransmission() || DataBus.ClutchClosed(absTime)) { for (var i = 0; i < 3; i++) { - var retVal = HandleRequestEngaged(absTime, ds, targetVelocity, gradient, prohibitOverspeed, velocity, debug); + var retVal = HandleRequestEngaged(absTime, ds, targetVelocity, gradient, prohibitOverspeed, velocityWithOverspeed, debug); if (retVal != null) { return retVal; } @@ -601,7 +607,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl throw new VectoException("HandleRequestEngaged found no operating point."); } else { - return HandleRequestDisengaged(absTime, ds, gradient, velocity, debug); + return HandleRequestDisengaged(absTime, ds, gradient, velocityWithOverspeed, debug); } } @@ -640,23 +646,23 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl private IResponse HandleRequestEngaged( Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, - bool prohibitOverspeed, MeterPerSecond velocity, DebugData debug) + bool prohibitOverspeed, MeterPerSecond velocityWithOverspeed, DebugData debug) { // drive along - var first = FirstAccelerateOrCoast(absTime, ds, targetVelocity, gradient, prohibitOverspeed, velocity, debug); + var first = FirstAccelerateOrCoast(absTime, ds, targetVelocity, gradient, prohibitOverspeed, velocityWithOverspeed, debug); var second = first; first.Switch().Case<ResponseUnderload>( r => { if (DataBus.GearboxType.AutomaticTransmission() && !DataBus.ClutchClosed(absTime)) { - second = Driver.DrivingActionRoll(absTime, ds, velocity, gradient); + second = Driver.DrivingActionRoll(absTime, ds, velocityWithOverspeed, gradient); } if (DataBus.VehicleSpeed.IsGreater(0) && DriverStrategy.OverspeedAllowed(targetVelocity, prohibitOverspeed)) { - second = Driver.DrivingActionCoast(absTime, ds, velocity, gradient); + second = Driver.DrivingActionCoast(absTime, ds, velocityWithOverspeed, gradient); debug.Add(new { action = "first:(Underload & Overspeed)-> Coast", second }); - second = HandleCoastAfterUnderloadWithOverspeed(absTime, ds, gradient, velocity, debug, second); + second = HandleCoastAfterUnderloadWithOverspeed(absTime, ds, gradient, velocityWithOverspeed, debug, second); } else { - second = Driver.DrivingActionBrake(absTime, ds, velocity, gradient); + second = Driver.DrivingActionBrake(absTime, ds, velocityWithOverspeed, gradient); debug.Add(new { action = "first:(Underload & !Overspeed) -> Brake", second }); } }).Case<ResponseEngineSpeedTooHigh>( @@ -670,21 +676,21 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl second.Switch().Case<ResponseGearShift>( r => { - third = Driver.DrivingActionRoll(absTime, ds, velocity, gradient); + third = Driver.DrivingActionRoll(absTime, ds, velocityWithOverspeed, gradient); debug.Add(new { action = "second: GearShift -> Roll", third }); third.Switch().Case<ResponseUnderload>( () => { // overload may happen if driver limits acceleration when rolling downhill - third = Driver.DrivingActionBrake(absTime, ds, velocity, gradient); + third = Driver.DrivingActionBrake(absTime, ds, velocityWithOverspeed, gradient); debug.Add(new { action = "third:Underload -> Brake", third }); }).Case<ResponseSpeedLimitExceeded>( () => { - third = Driver.DrivingActionBrake(absTime, ds, velocity, gradient); + third = Driver.DrivingActionBrake(absTime, ds, velocityWithOverspeed, gradient); debug.Add(new { action = "third:SpeedLimitExceeded -> Brake", third }); }); }).Case<ResponseOverload>( r => { - third = Driver.DrivingActionCoast(absTime, ds, velocity, gradient); + third = Driver.DrivingActionCoast(absTime, ds, velocityWithOverspeed, gradient); debug.Add(new { action = "second:Overload -> Coast", third }); }); @@ -716,19 +722,23 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl private IResponse FirstAccelerateOrCoast( Second absTime, Meter ds, MeterPerSecond targetVelocity, Radian gradient, - bool prohibitOverspeed, MeterPerSecond velocity, DebugData debug) + bool prohibitOverspeed, MeterPerSecond velocityWithOverspeed, DebugData debug) { IResponse first; if (DriverStrategy.OverspeedAllowed(targetVelocity, prohibitOverspeed) && DataBus.VehicleSpeed.IsEqual(targetVelocity)) { - first = Driver.DrivingActionCoast(absTime, ds, velocity, gradient); + first = Driver.DrivingActionCoast(absTime, ds, velocityWithOverspeed, gradient); debug.Add(new { action = "Coast", first }); if (first is ResponseSuccess && first.Acceleration < 0) { first = Driver.DrivingActionAccelerate(absTime, ds, targetVelocity, gradient); debug.Add(new { action = "Coast:(Success & Acc<0) -> Accelerate", first }); } } else { - first = Driver.DrivingActionAccelerate(absTime, ds, targetVelocity, gradient); + if (DataBus.GearboxType.AutomaticTransmission() && (DataBus as IGearboxInfo).DisengageGearbox) { + first = Driver.DrivingActionCoast(absTime, ds, velocityWithOverspeed, gradient); + } else { + first = Driver.DrivingActionAccelerate(absTime, ds, targetVelocity, gradient); + } debug.Add(new { action = "Accelerate", first }); } return first; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs index cd7d75c756442175bb8abf40c3fc6fada9801e80..936df00918a4c842b5dc2ce3e046cbe634e75f58 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs @@ -130,7 +130,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl // check if shift is required var ratio = Gearbox.GetGearData(Gearbox.Gear).TorqueConverterRatio; - if (absTime > DataBus.LastShift && retVal is ResponseSuccess) { + if (!Gearbox.DisengageGearbox && absTime > DataBus.LastShift && retVal is ResponseSuccess) { var shiftRequired = ShiftStrategy.ShiftRequired( absTime, dt, outTorque * ratio, outAngularVelocity / ratio, inTorque, operatingPoint.InAngularVelocity, Gearbox.Gear, Gearbox.LastShift); diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs index 51793947715349f0099fdd6e37b80efd997c9f73..18aa45d0cfcaff76fa5769b3fa7454bccb8495c1 100644 --- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs @@ -138,9 +138,9 @@ namespace TUGraz.VectoCore.OutputData ModalResultField.FCMap, ModalResultField.FCNCVc, ModalResultField.FCWHTCc, ModalResultField.FCAAUX, ModalResultField.FCEngineStopStart, ModalResultField.FCFinal }.Select(x => x.GetName())); -#if TRACE +//#if TRACE strCols = strCols.Concat(_additionalColumns); -#endif +//#endif if (WriteModalResults) { var filteredData = Data; foreach (var filter in _filters) { diff --git a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTests.cs b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTests.cs index 1f7c35b615f4ebae73cd316329946fc862da8314..59e286dcab6b454e59fd1b774c080182c714004b 100644 --- a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTests.cs +++ b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTests.cs @@ -111,6 +111,47 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS GraphWriter.Write(modFilename); } + [TestCase(0, TestName = "AT EcoRoll DH1.1 const"), + TestCase(1, TestName = "AT EcoRoll DH1.1 UH0.1"), + TestCase(2, TestName = "AT EcoRoll DH1.3 const"), + TestCase(3, TestName = "AT EcoRoll DH0.8 const - too flat"), + TestCase(4, TestName = "AT EcoRoll DH1.5 const - too steep"), + TestCase(5, TestName = "AT EcoRoll DH1.1 const - Stop"), + TestCase(6, TestName = "AT EcoRoll DH1.1 const - TS60"), + TestCase(7, TestName = "AT EcoRoll DH1.1 const - TS68"), + TestCase(8, TestName = "AT EcoRoll DH1.1 const - TS72"), + TestCase(9, TestName = "AT EcoRoll DH1.1 const - TS80"), + ] + public void TestEcoRollAT(int cycleIdx) + { + string jobName = @"TestData\Integration\ADAS\Group9_RigidTruck_AT\Class_9_RigidTruck_AT_Eng.vecto"; + var inputData = JSONInputDataFactory.ReadJsonJob(jobName); + var writer = new FileOutputWriter(Path.Combine(Path.GetDirectoryName(jobName), Path.GetFileName(jobName))); + + var sumContainer = new SummaryDataContainer(writer); + var jobContainer = new JobContainer(sumContainer); + var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) { + WriteModalResults = true, + //ActualModalData = true, + Validate = false + }; + + factory.SumData = sumContainer; + + var runs = factory.SimulationRuns().ToArray(); + var run = runs[cycleIdx]; + + jobContainer.AddRun(run); + jobContainer.Execute(); + jobContainer.WaitFinished(); + + var progress = jobContainer.GetProgress(); + Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error))); + var modFilename = writer.GetModDataFileName(run.RunName, run.CycleName, run.RunSuffix); + GraphWriter.Write(modFilename); + } + + public JobContainer RunAllDeclarationJob(string jobName) { var relativeJobPath = jobName; diff --git a/VectoCore/VectoCoreTest/TestData/MeasuredSpeed/Results/MeasuredSpeedGearAT.vsum b/VectoCore/VectoCoreTest/TestData/MeasuredSpeed/Results/MeasuredSpeedGearAT.vsum deleted file mode 100644 index d4a278a1a04f458a6a455940edbd43d2ce08d9eb..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCoreTest/TestData/MeasuredSpeed/Results/MeasuredSpeedGearAT.vsum +++ /dev/null @@ -1,2 +0,0 @@ -Job [-],Input File [-],Cycle [-],Status,Mass [kg],Loading [kg],time [s],distance [km],speed [km/h],altitudeDelta [m],FC-Map [g/h],FC-Map [g/km],FC-AUXc [g/h],FC-AUXc [g/km],FC-WHTCc [g/h],FC-WHTCc [g/km],FC-AAUX [g/h],FC-AAUX [g/km],FC-Final [g/h],FC-Final [g/km],FC-Final [l/100km],FC-Final [l/100tkm],CO2 [g/km],CO2 [g/tkm],P_wheel_in_pos [kW],P_brake_loss [kW],P_angle_loss [kW],P_tc_loss [kW],P_clutch_pos [kW],P_clutch_neg [kW],P_fcmap_pos [kW],E_aux_sum [kWh],E_air [kWh],E_roll [kWh],E_grad [kWh],E_inertia [kWh],E_brake [kWh],E_gbx_axl_loss [kWh],E_ret_loss [kWh],E_tc_loss [kWh],E_angle_loss [kWh],E_clutch_pos [kWh],E_clutch_neg [kWh],E_fcmap_pos [kWh],a [m/s^2],a_pos [m/s^2],a_neg [m/s^2],AccelerationTimeShare [%],DecelerationTimeShare [%],CruiseTimeShare [%],StopTimeShare [%] -1-0,MeasuredSpeedGearAT,MeasuredSpeedGearAT.vdri,Aborted,17000.0000,4800.0000,52.0000,0.1432,9.9172,-0.4182,9112.1417,918.8185,9112.1417,918.8185,9112.1417,918.8185,9112.1417,918.8185,9112.1417,918.8185,110.4349,23.0073,2903.4663,604.8888,24.9016,6.0303,0.0000,0.0000,47.1976,-9.2836,50.9167,0.0663,0.0024,0.0503,-0.0256,0.0030,0.0871,-0.0001,0.0000,0.0000,0.0000,0.5637,-0.0258,0.6223,0.1612,0.7649,-0.7118,33.3333,15.6863,0.0000,38.4615 diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index e303ece9d797218d6f59887a865bb8da97e37fb2..8c34bac45fb9ff3cc5a2a26f34c5fdee2ddde2dc 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -618,6 +618,81 @@ <None Include="TestData\Generic Vehicles\Engineering Mode\24t Coach\ShiftPolygons.vgbs"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\APT-S Generic TqMax1200.vgbx"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Axle_i6-5.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Class_9_RigidTruck_AT_Eng.vecto"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\DriveDhSl0.8.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\DriveDhSl1.1.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\DriveDhSl1.1_Stop.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\DriveDhSl1.1_TS++.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\DriveDhSl1.1_TS+.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\DriveDhSl1.1_TS--.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\DriveDhSl1.1_TS-.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\DriveDhSl1.1_Uh0.1.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\DriveDhSl1.3.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\DriveDhSl1.5.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Engine_220kW.veng"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Engine_220kW.vfld"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Engine_220kW.vmap"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Gear_1_i=3-49.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Gear_2_i=1-86.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Gear_3_i=1-41.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Gear_4_i=1.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Gear_5_i=0-75.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Gear_6_i=0-65.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\RigidTruck_6x2.vveh"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\TorqueConverter_Serial_TqMax1200.vtcc"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\ADAS\Group9_RigidTruck_AT\Truck.vacc"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\Integration\ADAS\Group5EcoRollEng\325kW.vfld"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None>