diff --git a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs index f6de84a9c5a80e87832511cf7bc445470df58f9d..b4d263a24d9c1e2fda7f49eadbf87462fa9d2997 100644 --- a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs +++ b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs @@ -58,32 +58,32 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var absTime = TimeSpan.FromSeconds(10); var dt = TimeSpan.FromSeconds(1); - var response = cycle.Request(absTime, dt); - Assert.IsInstanceOfType(response, typeof(ResponseFailTimeInterval)); + var response = cycle.OutPort().Request(absTime, dt); + Assert.IsInstanceOfType(response, typeof (ResponseFailTimeInterval)); dt = TimeSpan.FromSeconds(0.25); - response = cycle.Request(absTime, dt); - Assert.IsInstanceOfType(response, typeof(ResponseSuccess)); + response = cycle.OutPort().Request(absTime, dt); + Assert.IsInstanceOfType(response, typeof (ResponseSuccess)); var dataWriter = new TestModalDataWriter(); container.CommitSimulationStep(dataWriter); Assert.AreEqual(absTime, outPort.AbsTime); Assert.AreEqual(dt, outPort.Dt); - Assert.AreEqual(743.2361.RPMtoRad(), outPort.AngularFrequency); + Assert.AreEqual(743.2361.RPMtoRad(), outPort.AngularVelocity); Assert.AreEqual(Formulas.PowerToTorque(2779.576.SI<Watt>(), 743.2361.RPMtoRad()), outPort.Torque); // ======================== dt = TimeSpan.FromSeconds(1); absTime = TimeSpan.FromSeconds(500); - response = cycle.Request(absTime, dt); - Assert.IsInstanceOfType(response, typeof(ResponseFailTimeInterval)); + response = cycle.OutPort().Request(absTime, dt); + Assert.IsInstanceOfType(response, typeof (ResponseFailTimeInterval)); dt = TimeSpan.FromSeconds(0.25); for (int i = 0; i < 2; i++) { - response = cycle.Request(absTime, dt); + response = cycle.OutPort().Request(absTime, dt); Assert.IsInstanceOfType(response, typeof (ResponseSuccess)); dataWriter = new TestModalDataWriter(); @@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation Assert.AreEqual(absTime, outPort.AbsTime); Assert.AreEqual(dt, outPort.Dt); - Assert.AreEqual(1584.731.RPMtoRad(), outPort.AngularFrequency); + Assert.AreEqual(1584.731.RPMtoRad(), outPort.AngularVelocity); Assert.AreEqual(Formulas.PowerToTorque(3380.548.SI<Watt>(), 1584.731.RPMtoRad()), outPort.Torque); absTime += dt; diff --git a/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs b/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs index 4d765a5fd36dd467fafea78d5d26d417395f6c56..46f50c6a3759f0d8e7bb938b786a9c65827fdc74 100644 --- a/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs +++ b/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs @@ -118,8 +118,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent [TestMethod] - [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestData\\EngineLoadJumpTests.csv", - "EngineLoadJumpTests#csv", DataAccessMethod.Sequential)] + //[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestData\\EngineLoadJumpTests.csv", + // "EngineLoadJumpTests#csv", DataAccessMethod.Sequential)] public void TestEngineFullLoadJump() { var vehicleContainer = new VehicleContainer(); @@ -129,10 +129,29 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent gearbox.InShaft().Connect(engine.OutShaft()); + var requestPort = gearbox.OutShaft(); + var modalData = new TestModalDataWriter(); - var idlePower = 5000.SI<Watt>(); - var angularSpeed = 1000; + var idlePower = 50.SI<Watt>(); + var angularSpeed = 1000.RPMtoRad(); + + var t = TimeSpan.FromSeconds(0); + var dt = TimeSpan.FromSeconds(0.5); + for (; t.TotalSeconds < 10; t += dt) { + requestPort.Request(t, dt, Formulas.PowerToTorque(idlePower, angularSpeed), angularSpeed); + } + + var fullLoadPower = Formulas.TorqueToPower(2300.SI<NewtonMeter>(), angularSpeed); + + for (; t.TotalSeconds < 20; t += dt) { + requestPort.Request(t, dt, Formulas.PowerToTorque(fullLoadPower, angularSpeed), angularSpeed); + modalData[ModalResultField.time] = t.TotalSeconds; + modalData[ModalResultField.simulationInterval] = dt.TotalSeconds; + engine.CommitSimulationStep(modalData); + // todo: compare results... + modalData.CommitSimulationStep(); + } } [TestMethod] diff --git a/VectoCoreTest/TestData/EngineFullLoadJumps.csv b/VectoCoreTest/TestData/EngineFullLoadJumps.csv new file mode 100644 index 0000000000000000000000000000000000000000..35ce389570e8c7745526c6b3c5a90059298de562 --- /dev/null +++ b/VectoCoreTest/TestData/EngineFullLoadJumps.csv @@ -0,0 +1,5 @@ +TestName,EngineFile,rpm,initialIdleLoad,finalIdleLoad,ResultFile +Test1Hz,TestData\Components\14t Coach.veng,1000,50,70,TestData\Results\EngineFullLoadJumps\EngineFLJ_1000rpm_1Hz.csv +Test2Hz,TestData\Components\14t Coach.veng,1000,50,70,TestData\Results\EngineFullLoadJumps\EngineFLJ_1000rpm_2Hz.csv +Test5Hz,TestData\Components\14t Coach.veng,1000,50,70,TestData\Results\EngineFullLoadJumps\EngineFLJ_1000rpm_5Hz.csv +Test10Hz,TestData\Components\14t Coach.veng,1000,50,70,TestData\Results\EngineFullLoadJumps\EngineFLJ_1000rpm_10Hz.csv \ No newline at end of file diff --git a/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_10Hz.csv b/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_10Hz.csv new file mode 100644 index 0000000000000000000000000000000000000000..835f11a06b18c5d68646e577b14004b3fb2371f5 --- /dev/null +++ b/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_10Hz.csv @@ -0,0 +1,252 @@ +t,Pe_FullDyn +0.00,34407.92 +0.10,63900.42 +0.20,89179.71 +0.30,110847.67 +0.40,129420.21 +0.50,145339.53 +0.60,158984.66 +0.70,170680.48 +0.80,180705.48 +0.90,189298.33 +1.00,196663.63 +1.10,202976.74 +1.20,208387.99 +1.30,213026.19 +1.40,217001.80 +1.50,220409.46 +1.60,223330.32 +1.70,225833.90 +1.80,227979.84 +1.90,229819.21 +2.00,231395.81 +2.10,232747.19 +2.20,233905.51 +2.30,234898.36 +2.40,235749.37 +2.50,236478.81 +2.60,237104.04 +2.70,237639.95 +2.80,238099.31 +2.90,238493.04 +3.00,238830.53 +3.10,239119.80 +3.20,239367.75 +3.30,239580.27 +3.40,239762.44 +3.50,239918.58 +3.60,240052.42 +3.70,240167.14 +3.80,240265.46 +3.90,240349.75 +4.00,240421.99 +4.10,240483.91 +4.20,240536.98 +4.30,240582.48 +4.40,240621.47 +4.50,240654.90 +4.60,240683.54 +4.70,240708.10 +4.80,240729.15 +4.90,240747.19 +5.00,240762.65 +5.10,240775.91 +5.20,240787.27 +5.30,240797.01 +5.40,240805.35 +5.50,240812.51 +5.60,240818.64 +5.70,240823.90 +5.80,240828.40 +5.90,240832.27 +6.00,240835.58 +6.10,240838.41 +6.20,240840.84 +6.30,240842.93 +6.40,240844.72 +6.50,240846.25 +6.60,240847.56 +6.70,240848.69 +6.80,240849.65 +6.90,240850.48 +7.00,240851.19 +7.10,240851.79 +7.20,240852.31 +7.30,240852.76 +7.40,240853.14 +7.50,240853.47 +7.60,240853.75 +7.70,240853.99 +7.80,240854.20 +7.90,240854.38 +8.00,240854.53 +8.10,240854.66 +8.20,240854.77 +8.30,240854.86 +8.40,240854.95 +8.50,240855.02 +8.60,240855.08 +8.70,240855.13 +8.80,240855.17 +8.90,240855.21 +9.00,240855.24 +9.10,240855.27 +9.20,240855.29 +9.30,240855.31 +9.40,240855.33 +9.50,240855.35 +9.60,240855.36 +9.70,240855.37 +9.80,240855.38 +9.90,240855.39 +10.00,240855.40 +10.10,206457.48 +10.20,176973.56 +10.30,151701.62 +10.40,130039.96 +10.50,111472.82 +10.60,95558.13 +10.70,81916.97 +10.80,70224.55 +10.90,60202.47 +11.00,51612.12 +11.10,44248.96 +11.20,37937.68 +11.30,32528.01 +11.40,27891.15 +11.50,23916.70 +11.60,20510.03 +11.70,17590.02 +11.80,15087.16 +11.90,12941.85 +12.00,11103.02 +12.10,9526.87 +12.20,8175.89 +12.30,7017.91 +12.40,6025.35 +12.50,5174.58 +12.60,4445.36 +12.70,3820.31 +12.80,3284.55 +12.90,2825.33 +13.00,2431.71 +13.10,2094.32 +13.20,1805.13 +13.30,1557.26 +13.40,1344.79 +13.50,1162.68 +13.60,1006.58 +13.70,872.78 +13.80,758.10 +13.90,659.80 +14.00,575.54 +14.10,503.32 +14.20,441.42 +14.30,388.36 +14.40,342.88 +14.50,303.90 +14.60,270.48 +14.70,241.84 +14.80,217.29 +14.90,196.25 +15.00,178.22 +15.10,162.76 +15.20,149.51 +15.30,138.15 +15.40,128.41 +15.50,120.07 +15.60,112.92 +15.70,106.78 +15.80,101.53 +15.90,97.03 +16.00,93.16 +16.10,89.86 +16.20,87.02 +16.30,84.59 +16.40,82.50 +16.50,80.72 +16.60,79.19 +16.70,77.87 +16.80,76.75 +16.90,75.78 +17.00,74.96 +17.10,74.25 +17.20,73.64 +17.30,73.12 +17.40,72.68 +17.50,72.29 +17.60,71.97 +17.70,71.69 +17.80,71.44 +17.90,71.24 +18.00,71.06 +18.10,70.91 +18.20,70.78 +18.30,70.67 +18.40,70.57 +18.50,70.49 +18.60,70.42 +18.70,70.36 +18.80,70.31 +18.90,70.27 +19.00,70.23 +19.10,70.19 +19.20,70.17 +19.30,70.14 +19.40,70.12 +19.50,70.11 +19.60,70.09 +19.70,70.08 +19.80,70.07 +19.90,70.06 +20.00,70.05 +20.10,70.04 +20.20,70.04 +20.30,70.03 +20.40,70.03 +20.50,70.02 +20.60,70.02 +20.70,70.02 +20.80,70.01 +20.90,70.01 +21.00,70.01 +21.10,70.01 +21.20,70.01 +21.30,70.01 +21.40,70.01 +21.50,70.00 +21.60,70.00 +21.70,70.00 +21.80,70.00 +21.90,70.00 +22.00,70.00 +22.10,70.00 +22.20,70.00 +22.30,70.00 +22.40,70.00 +22.50,70.00 +22.60,70.00 +22.70,70.00 +22.80,70.00 +22.90,70.00 +23.00,70.00 +23.10,70.00 +23.20,70.00 +23.30,70.00 +23.40,70.00 +23.50,70.00 +23.60,70.00 +23.70,70.00 +23.80,70.00 +23.90,70.00 +24.00,70.00 +24.10,70.00 +24.20,70.00 +24.30,70.00 +24.40,70.00 +24.50,70.00 +24.60,70.00 +24.70,70.00 +24.80,70.00 +24.90,70.00 +25.00,70.00 diff --git a/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_1Hz.csv b/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_1Hz.csv new file mode 100644 index 0000000000000000000000000000000000000000..d8f39c2a687dfd883ca584022640b01775c6777e --- /dev/null +++ b/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_1Hz.csv @@ -0,0 +1,27 @@ +t,Pe_FullDyn +0,150534.6400 +1,206985.1380 +2,228154.0747 +3,236092.4260 +4,239069.3077 +5,240185.6384 +6,240604.2624 +7,240761.2464 +8,240820.1154 +9,240842.1913 +10,90359.5717 +11,33928.5894 +12,12766.9710 +13,4831.3641 +14,1855.5116 +15,739.5668 +16,321.0876 +17,164.1578 +18,105.3092 +19,83.2409 +20,74.9654 +21,71.8620 +22,70.6983 +23,70.2618 +24,70.0982 +25,70.0368 \ No newline at end of file diff --git a/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_2Hz.csv b/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_2Hz.csv new file mode 100644 index 0000000000000000000000000000000000000000..59fc231f620847c9ddbe9350cac1e9a011b51efa --- /dev/null +++ b/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_2Hz.csv @@ -0,0 +1,37 @@ +t,Pe_FullDyn +0.00,50.00 +0.50,109507.02 +1.00,169210.84 +1.50,201776.57 +2.00,219539.69 +2.50,229228.67 +3.00,234513.56 +3.50,237396.23 +4.00,238968.60 +4.50,239826.25 +5.00,240294.06 +5.50,240549.23 +6.00,240688.42 +6.50,240764.33 +7.00,240805.74 +7.50,240828.33 +8.00,240840.65 +8.50,240847.37 +9.00,240851.04 +9.50,240853.04 +10.00,240854.13 +11.00,90364.05 +12.00,33930.27 +13.00,12767.60 +14.00,4831.60 +15.00,1855.60 +16.00,739.60 +17.00,321.10 +18.00,164.16 +19.00,105.31 +20.00,83.24 +21.00,74.97 +22.00,71.86 +23.00,70.70 +24.00,70.26 +25.00,70.10 diff --git a/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_5Hz.csv b/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_5Hz.csv new file mode 100644 index 0000000000000000000000000000000000000000..9f831b1d80a04182aa5925ed91d68e14cfe65c4d --- /dev/null +++ b/VectoCoreTest/TestData/Results/EngineFullLoadJumps/EngineFLJ_1000rpm_5Hz.csv @@ -0,0 +1,52 @@ +t,Pe_FullDyn +0.00,60213.86 +0.20,105374.25 +0.40,139244.55 +0.60,164647.27 +0.80,183699.31 +1.00,197988.34 +1.20,208705.12 +1.40,216742.70 +1.60,222770.88 +1.80,227292.02 +2.00,230682.87 +2.20,233226.02 +2.40,235133.37 +2.60,236563.89 +2.80,237636.77 +3.00,238441.44 +3.20,239044.94 +3.40,239497.56 +3.60,239837.03 +3.80,240091.63 +4.00,240282.58 +4.20,240425.80 +4.40,240533.21 +4.60,240613.76 +4.80,240674.18 +5.00,240719.50 +5.20,240753.48 +5.40,240778.97 +5.60,240798.09 +5.80,240812.42 +6.00,240823.18 +6.20,240831.24 +6.40,240837.29 +6.60,240841.83 +6.80,240845.23 +7.00,240847.78 +7.20,240849.70 +7.40,240851.13 +7.60,240852.21 +7.80,240853.01 +8.00,240853.62 +8.20,240854.07 +8.40,240854.41 +8.60,240854.67 +8.80,240854.86 +9.00,240855.01 +9.20,240855.11 +9.40,240855.19 +9.60,240855.25 +9.80,240855.30 +10.00,240855.33 \ No newline at end of file