diff --git a/Generic Vehicles/Declaration Mode/12t Delivery Truck/12t Delivery Truck.vsum b/Generic Vehicles/Declaration Mode/12t Delivery Truck/12t Delivery Truck.vsum index 650450f6bda30aa27adaeea9970c18e650e5f9dc..6b6d338f51cc22f5fe777cf257339af6f826023a 100644 --- a/Generic Vehicles/Declaration Mode/12t Delivery Truck/12t Delivery Truck.vsum +++ b/Generic Vehicles/Declaration Mode/12t Delivery Truck/12t Delivery Truck.vsum @@ -1,10 +1,10 @@ -Job [-],Input File [-],Cycle [-],time [s],distance [km],speed [km/h],∆altitude [m],Eaux_FAN [kWh],Eaux_PS [kWh],Eaux_STP [kWh],Eaux_ES [kWh],Eaux_AC [kWh],Ppos [kW],Pneg [kW],FC-Map [g/h],FC-Map [g/km],FC-AUXc [g/h],FC-AUXc [g/km],FC-WHTCc [g/h],FC-WHTCc [g/km],CO2 [g/km],CO2 [g/tkm],FC-Final [g/km],FC-Final [l/100tkm],FC-Final [l/100km],PwheelPos [kW],Pbrake [kW],EposICE [kWh],EnegICE [kWh],Eair [kWh],Eroll [kWh],Egrad [kWh],Eacc [kWh],Eaux [kWh],Ebrake [kWh],Etransm [kWh],Eretarder [kWh],Etorqueconv [kWh],Mass [kg],Loading [kg],a [m/s^2],a_pos [m/s^2],a_neg [m/s^2],Acc.Noise [m/s^2],pAcc [%],pDec [%],pCruise [%],pStop [%] -1,12t Delivery Truck.vecto,Long_Haul.vdri,5245,108.1818,74.25249,0.4157933,1.36807084861729,1.71919436802467,0.323441670835018,2.58087303572231,0.291388893230922,68.828245691688,-0.295060687814728,13939.92,187.7368,-,-,14048.65,189.2011,597.8755,-,189.2011,-,22.74052,53.3331431698079,-0.951296060530201,100.278930181362,-0.429887029885625,-53.7217975638455,-21.602133366182,-0.00594433389811052,8.54700596796142E-08,-6.28296870787938,-1.38598551041136,-16.8502154708157,0,0,7750,0,-4.545636E-10,0.432781,-0.5312394,0.2062322,0.0528122,0.04080076,0.8602479,0.04613918 -1,12t Delivery Truck.vecto,Long_Haul.vdri,5275,108.1819,73.83029,0.4122985,1.37589584870471,1.7290277009209,0.32529167085886,2.59563494059775,0.293055559922424,76.5622784120409,-0.614272283445602,15413,208.7625,-,-,15533.22,210.3909,664.8351,160.2012,210.3909,6.09334,25.28736,61.6186144348343,-1.91622710570057,112.185005173199,-0.900079526437653,-53.1544755984918,-31.7773630401368,-0.0114676845291009,-1.97346089407802E-07,-6.31890561183294,-2.80780499515848,-17.2149103430079,0,0,7750,4150,-4.519783E-10,0.4081375,-0.4746179,0.1942435,0.05800948,0.05023697,0.8458768,0.04587678 -1,12t Delivery Truck.vecto,Long_Haul.vdri,5275,108.1819,73.83029,0.4122985,1.37589584870471,1.7290277009209,0.32529167085886,2.59563494059775,0.293055559922424,76.5622784120409,-0.614272283445602,15413,208.7625,-,-,15533.22,210.3909,664.8351,160.2012,210.3909,6.09334,25.28736,61.6186144348343,-1.91622710570057,112.185005173199,-0.900079526437653,-53.1544755984918,-31.7773630401368,-0.0114676845291009,-1.97346089407802E-07,-6.31890561183294,-2.80780499515848,-17.2149103430079,0,0,7750,4150,-4.519783E-10,0.4081375,-0.4746179,0.1942435,0.05800948,0.05023697,0.8458768,0.04587678 -1,12t Delivery Truck.vecto,Regional_Delivery.vdri,1614,25.8284,57.60981,-0.02431984,0.445643341243267,0.573866653839747,0.086080000748237,0.675702400803566,0.0896666680028041,50.7909131905911,-0.797100853631931,10468.67,181.7169,-,-,10474.96,181.8259,574.5698,-,181.8259,-,21.85407,38.7421929767676,-2.22326468906216,22.7712594137817,-0.357366882711649,-10.5392731322911,-5.12026773493323,0.00982296626605805,-9.36206844117906E-08,-1.87095907131831,-0.996763668929537,-3.89645460828311,0,0,7750,0,-1.181753E-09,0.4412237,-0.4665618,0.3421181,0.1356877,0.1363073,0.6592317,0.06877323 -1,12t Delivery Truck.vecto,Regional_Delivery.vdri,1601,25.82833,58.07744,-0.02466047,0.442053896735112,0.56924443172084,0.0853866674088769,0.670259940326214,0.08894444576982,57.1183613138151,-1.31937498487137,11644,200.4909,-,-,11650.98,200.6112,633.9313,212.4513,200.6112,8.080701,24.11192,45.2564961777524,-3.48985577706971,25.4018045731717,-0.586755375216405,-10.5381488821988,-6.86437743980024,-0.00891033948502607,-1.69340314136611E-08,-1.85588938858774,-1.5520164164135,-3.99571019759609,0,0,7750,2983.89,-1.191348E-09,0.4123022,-0.4458131,0.3330745,0.1599001,0.1505309,0.6202374,0.06933167 -1,12t Delivery Truck.vecto,Regional_Delivery.vdri,1596,25.82822,58.25913,-0.02519032,0.440673341155052,0.567466653982798,0.0851200007398923,0.668166686296463,0.088666667987903,59.7485341806347,-1.43185722428306,12153.25,208.6068,-,-,12160.54,208.7319,659.593,158.9381,208.7319,6.045294,25.08797,48.2545329701648,-4.11557962622185,26.4885168200814,-0.634790036098825,-10.6201652208182,-7.53199708029628,0.016459057985598,4.77504606048266E-08,-1.85009335676829,-1.82457363429169,-4.04335998408496,0,0,7750,4150,1.792621E-09,0.4045506,-0.4171267,0.3388702,0.1785714,0.1735589,0.5783208,0.06954888 -1,12t Delivery Truck.vecto,Urban_Delivery.vdri,3368,27.80735,29.72282,-0.05254004,0.826095570723216,1.23493338240518,0.174013337459829,1.30175874736574,0.140333338909679,25.1396036124622,-0.948524291315193,5488.629,184.6605,-,-,5438.134,182.9616,578.1586,-,182.9616,-,21.99057,17.7081874708226,-4.22752134668448,23.5194958241036,-0.887397170319325,-5.6845096131651,-5.51247593332082,0.00780685773504148,2.38746094206969E-07,-3.67713422351413,-3.95508108212037,-3.81072937223646,0,0,7750,0,-2.477628E-10,0.4752795,-0.5695276,0.4568766,0.1980404,0.1725059,0.442696,0.1867577 -1,12t Delivery Truck.vecto,Urban_Delivery.vdri,3310,27.808,30.24435,-0.0495902,0.811869459350904,1.21366671489345,0.1710166707221,1.27934128675196,0.137916672146983,30.4334581804059,-1.16748940845631,6470.452,213.9392,-,-,6410.924,211.971,669.8283,224.4816,211.971,8.538279,25.47728,22.8231003207788,-6.46084705161626,27.9818740492066,-1.07344165055288,-5.8964291196102,-7.39037906715646,0.0122275942189784,-7.76761832336585E-08,-3.6138106531567,-5.94038992801384,-4.07968345087022,0,0,7750,2983.89,6.122531E-10,0.5035743,-0.5390744,0.4479906,0.2042296,0.1930514,0.4126888,0.1900302 -1,12t Delivery Truck.vecto,Urban_Delivery.vdri,3338,27.80793,29.99057,-0.04992481,0.818737237254779,1.22393338196807,0.172463337423073,1.29016350911723,0.139083338860008,32.0389942091836,-1.24704237898322,6760.725,225.4283,-,-,6698.526,223.3544,705.7999,170.0723,223.3544,6.46879,26.84548,24.5009796861328,-7.27165439083808,29.7072674084041,-1.15628540584611,-5.91822867834686,-8.10917532677452,0.0240152537522711,1.55775083435906E-07,-3.6443806526396,-6.74243954350486,-4.16080814222081,0,0,7750,4150,-1.785639E-10,0.4881508,-0.5538294,0.4431113,0.2055123,0.1842421,0.4218095,0.1884362 +Job [-],Input File [-],Cycle [-],time [s],distance [km],speed [km/h],∆altitude [m],Eaux_FAN [kWh],Eaux_PS [kWh],Eaux_STP [kWh],Eaux_ES [kWh],Eaux_AC [kWh],Ppos [kW],Pneg [kW],FC-Map [g/h],FC-Map [g/km],FC-AUXc [g/h],FC-AUXc [g/km],FC-WHTCc [g/h],FC-WHTCc [g/km],CO2 [g/km],CO2 [g/tkm],FC-Final [g/km],FC-Final [l/100tkm],FC-Final [l/100km],PwheelPos [kW],Pbrake [kW],EposICE [kWh],EnegICE [kWh],Eair [kWh],Eroll [kWh],Egrad [kWh],Eacc [kWh],Eaux [kWh],Ebrake [kWh],Etransm [kWh],Eretarder [kWh],Etorqueconv [kWh],Mass [kg],Loading [kg],a [m/s^2],a_pos [m/s^2],a_neg [m/s^2],pAcc [%],pDec [%],pCruise [%],pStop [%] +1,12t Delivery Truck.vecto,Long_Haul.vdri,5245,108.1818,74.25249,0.4157933,1.36807084861729,1.71919436802467,0.323441670835018,2.58087303572231,0.291388893230922,68.828245691688,-0.295060687814728,13939.92,187.7368,-,-,14048.65,189.2011,597.8755,-,189.2011,-,22.74052,53.3331431698079,-0.951296060530201,100.278930181362,-0.429887029885625,-53.7217975638455,-21.602133366182,-0.00594433389811052,8.54700596796142E-08,-6.28296870787938,-1.38598551041136,-16.8502154708157,0,0,7750,0,-4.545636E-10,0.432781,-0.5312394,0.0528122,0.04080076,0.8602479,0.04613918 +1,12t Delivery Truck.vecto,Long_Haul.vdri,5275,108.1819,73.83029,0.4122985,1.37589584870471,1.7290277009209,0.32529167085886,2.59563494059775,0.293055559922424,76.5622784120409,-0.614272283445602,15413,208.7625,-,-,15533.22,210.3909,664.8351,160.2012,210.3909,6.09334,25.28736,61.6186144348343,-1.91622710570057,112.185005173199,-0.900079526437653,-53.1544755984918,-31.7773630401368,-0.0114676845291009,-1.97346089407802E-07,-6.31890561183294,-2.80780499515848,-17.2149103430079,0,0,7750,4150,-4.519783E-10,0.4081375,-0.4746179,0.05800948,0.05023697,0.8458768,0.04587678 +1,12t Delivery Truck.vecto,Long_Haul.vdri,5275,108.1819,73.83029,0.4122985,1.37589584870471,1.7290277009209,0.32529167085886,2.59563494059775,0.293055559922424,76.5622784120409,-0.614272283445602,15413,208.7625,-,-,15533.22,210.3909,664.8351,160.2012,210.3909,6.09334,25.28736,61.6186144348343,-1.91622710570057,112.185005173199,-0.900079526437653,-53.1544755984918,-31.7773630401368,-0.0114676845291009,-1.97346089407802E-07,-6.31890561183294,-2.80780499515848,-17.2149103430079,0,0,7750,4150,-4.519783E-10,0.4081375,-0.4746179,0.05800948,0.05023697,0.8458768,0.04587678 +1,12t Delivery Truck.vecto,Regional_Delivery.vdri,1614,25.8284,57.60981,-0.02431984,0.445643341243267,0.573866653839747,0.086080000748237,0.675702400803566,0.0896666680028041,50.7909131905911,-0.797100853631931,10468.67,181.7169,-,-,10474.96,181.8259,574.5698,-,181.8259,-,21.85407,38.7421929767676,-2.22326468906216,22.7712594137817,-0.357366882711649,-10.5392731322911,-5.12026773493323,0.00982296626605805,-9.36206844117906E-08,-1.87095907131831,-0.996763668929537,-3.89645460828311,0,0,7750,0,-1.181753E-09,0.4412237,-0.4665618,0.1356877,0.1363073,0.6592317,0.06877323 +1,12t Delivery Truck.vecto,Regional_Delivery.vdri,1601,25.82833,58.07744,-0.02466047,0.442053896735112,0.56924443172084,0.0853866674088769,0.670259940326214,0.08894444576982,57.1183613138151,-1.31937498487137,11644,200.4909,-,-,11650.98,200.6112,633.9313,212.4513,200.6112,8.080701,24.11192,45.2564961777524,-3.48985577706971,25.4018045731717,-0.586755375216405,-10.5381488821988,-6.86437743980024,-0.00891033948502607,-1.69340314136611E-08,-1.85588938858774,-1.5520164164135,-3.99571019759609,0,0,7750,2983.89,-1.191348E-09,0.4123022,-0.4458131,0.1599001,0.1505309,0.6202374,0.06933167 +1,12t Delivery Truck.vecto,Regional_Delivery.vdri,1596,25.82822,58.25913,-0.02519032,0.440673341155052,0.567466653982798,0.0851200007398923,0.668166686296463,0.088666667987903,59.7485341806347,-1.43185722428306,12153.25,208.6068,-,-,12160.54,208.7319,659.593,158.9381,208.7319,6.045294,25.08797,48.2545329701648,-4.11557962622185,26.4885168200814,-0.634790036098825,-10.6201652208182,-7.53199708029628,0.016459057985598,4.77504606048266E-08,-1.85009335676829,-1.82457363429169,-4.04335998408496,0,0,7750,4150,1.792621E-09,0.4045506,-0.4171267,0.1785714,0.1735589,0.5783208,0.06954888 +1,12t Delivery Truck.vecto,Urban_Delivery.vdri,3368,27.80735,29.72282,-0.05254004,0.826095570723216,1.23493338240518,0.174013337459829,1.30175874736574,0.140333338909679,25.1396036124622,-0.948524291315193,5488.629,184.6605,-,-,5438.134,182.9616,578.1586,-,182.9616,-,21.99057,17.7081874708226,-4.22752134668448,23.5194958241036,-0.887397170319325,-5.6845096131651,-5.51247593332082,0.00780685773504148,2.38746094206969E-07,-3.67713422351413,-3.95508108212037,-3.81072937223646,0,0,7750,0,-2.477628E-10,0.4752795,-0.5695276,0.1980404,0.1725059,0.442696,0.1867577 +1,12t Delivery Truck.vecto,Urban_Delivery.vdri,3310,27.808,30.24435,-0.0495902,0.811869459350904,1.21366671489345,0.1710166707221,1.27934128675196,0.137916672146983,30.4334581804059,-1.16748940845631,6470.452,213.9392,-,-,6410.924,211.971,669.8283,224.4816,211.971,8.538279,25.47728,22.8231003207788,-6.46084705161626,27.9818740492066,-1.07344165055288,-5.8964291196102,-7.39037906715646,0.0122275942189784,-7.76761832336585E-08,-3.6138106531567,-5.94038992801384,-4.07968345087022,0,0,7750,2983.89,6.122531E-10,0.5035743,-0.5390744,0.2042296,0.1930514,0.4126888,0.1900302 +1,12t Delivery Truck.vecto,Urban_Delivery.vdri,3338,27.80793,29.99057,-0.04992481,0.818737237254779,1.22393338196807,0.172463337423073,1.29016350911723,0.139083338860008,32.0389942091836,-1.24704237898322,6760.725,225.4283,-,-,6698.526,223.3544,705.7999,170.0723,223.3544,6.46879,26.84548,24.5009796861328,-7.27165439083808,29.7072674084041,-1.15628540584611,-5.91822867834686,-8.10917532677452,0.0240152537522711,1.55775083435906E-07,-3.6443806526396,-6.74243954350486,-4.16080814222081,0,0,7750,4150,-1.785639E-10,0.4881508,-0.5538294,0.2055123,0.1842421,0.4218095,0.1884362 diff --git a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs index 48bfc16afc31a6076008a7a0e67ba0c9f993bff2..4b96073226c7e4d99c9a9a30c305efb7d013691f 100644 --- a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs @@ -127,7 +127,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl modContainer.WriteModalResults = WriteModalResults; var current = i++; var builder = new PowertrainBuilder(modContainer, (writer, mass, loading) => - SumData.Write(d.IsEngineOnly, modContainer, d.JobName, string.Format("{0}-{1}", JobNumber, current), + SumData.Write(modContainer, d.JobName, string.Format("{0}-{1}", JobNumber, current), d.Cycle.Name + Constants.FileExtensions.CycleFile, mass, loading)); VectoRun run; diff --git a/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs b/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs index bac0e8e43eae0509a91cca49a31aad8684260cdf..c1dfcbeefb20f04a4e489bcc0c64827dc652fcaf 100644 --- a/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs +++ b/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs @@ -29,6 +29,7 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; diff --git a/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/OutputData/IModalDataContainer.cs index bc1784efc38dd0eec219274277cf051321d97760..093d28a9efcf39ccc2f83d4deefc2ceb4aa8aa21 100644 --- a/VectoCore/OutputData/IModalDataContainer.cs +++ b/VectoCore/OutputData/IModalDataContainer.cs @@ -365,24 +365,18 @@ namespace TUGraz.VectoCore.OutputData return data.TimeIntegral<Kilogram>(ModalResultField.FCFinal) * Physics.CO2PerFuelWeight / distance; } - public static SI FuelConsumptionLiterPer100Kilometer(this IModalDataContainer data) + public static KilogramPerSecond FCMapPerSecond(this IModalDataContainer data) { - var fcVolumePerMeter = data.FuelConsumptionPerMeter() / Physics.FuelDensity; - return fcVolumePerMeter.ConvertTo().Cubic.Dezi.Meter * 100.SI().Kilo.Meter; + return data.TimeIntegral<Kilogram>(ModalResultField.FCMap) / data.Duration(); } - public static KilogramPerSecond FuelConsumptionPerSecond(this IModalDataContainer data) - { - return data.TimeIntegral<Kilogram>(ModalResultField.FCFinal) / data.Duration(); - } - - public static KilogramPerMeter FuelConsumptionPerMeter(this IModalDataContainer data) + public static KilogramPerMeter FCMapPerMeter(this IModalDataContainer data) { var distance = data.Distance(); if (distance == null || distance.IsEqual(0)) { return null; } - return data.TimeIntegral<Kilogram>(ModalResultField.FCFinal) / distance; + return data.TimeIntegral<Kilogram>(ModalResultField.FCMap) / distance; } public static Watt EnginePowerNegativeAverage(this IModalDataContainer data) diff --git a/VectoCore/OutputData/PDF/PDFDeclarationReport.cs b/VectoCore/OutputData/PDF/PDFDeclarationReport.cs index d16fb92ac2ed0f35ca536ec0f136f6015c3f70f4..a4b721fa5d49082e99b398cb23bcf43c00b01398 100644 --- a/VectoCore/OutputData/PDF/PDFDeclarationReport.cs +++ b/VectoCore/OutputData/PDF/PDFDeclarationReport.cs @@ -113,7 +113,6 @@ namespace TUGraz.VectoCore.OutputData.PDF var reader = new PdfReader(inputStream); var stamper = new PdfStamper(reader, stream); - var pdfFields = stamper.AcroFields; pdfFields.SetField("version", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()); pdfFields.SetField("Job", JobName); @@ -130,7 +129,6 @@ namespace TUGraz.VectoCore.OutputData.PDF pdfFields.SetField("GbxM", GearboxModel); pdfFields.SetField("PageNr", string.Format("Page {0} of {1}", 1, missions.Count + 1)); - var i = 1; foreach (var results in missions.Values.OrderBy(m => m.Mission.MissionType)) { pdfFields.SetField("Mission" + i, results.Mission.MissionType.ToString()); @@ -140,7 +138,7 @@ namespace TUGraz.VectoCore.OutputData.PDF pdfFields.SetField("Loading" + i, results.Mission.RefLoad.ConvertTo().Ton.ToOutputFormat(1) + " t"); pdfFields.SetField("Speed" + i, data.Speed().ConvertTo().Kilo.Meter.Per.Hour.ToOutputFormat(1) + " km/h"); - var fcLiterPer100Km = data.FuelConsumptionLiterPer100Kilometer(); + var fcLiterPer100Km = data.FuelConsumptionFinalLiterPer100Kilometer(); pdfFields.SetField("FC" + i, fcLiterPer100Km.ToOutputFormat(1)); var loadingTon = results.Mission.RefLoad.ConvertTo().Ton; @@ -205,7 +203,6 @@ namespace TUGraz.VectoCore.OutputData.PDF pdfFields.SetField("PageNr", string.Format("Page {0} of {1}", currentPageNr, pageCount)); pdfFields.SetField("Mission", results.Mission.MissionType.ToString()); - foreach (var pair in results.ModData) { var loadingType = pair.Key; var data = pair.Value; @@ -216,12 +213,11 @@ namespace TUGraz.VectoCore.OutputData.PDF pdfFields.SetField("Load" + loadAppendix, loadingTon.ToOutputFormat(1) + " t"); pdfFields.SetField("Speed" + loadAppendix, data.Speed().ConvertTo().Kilo.Meter.Per.Hour.ToOutputFormat(1)); - var fcLiterPer100Km = data.FuelConsumptionLiterPer100Kilometer(); + var fcLiterPer100Km = data.FuelConsumptionFinalLiterPer100Kilometer(); pdfFields.SetField("FCkm" + loadAppendix, fcLiterPer100Km.ToOutputFormat(1)); pdfFields.SetField("FCtkm" + loadAppendix, loadingTon.IsEqual(0) ? "-" : (fcLiterPer100Km / loadingTon).ToOutputFormat(1)); - var co2GrammPerKm = data.CO2PerMeter().ConvertTo().Gramm.Per.Kilo.Meter; pdfFields.SetField("CO2km" + loadAppendix, co2GrammPerKm.ToOutputFormat(1)); pdfFields.SetField("CO2tkm" + loadAppendix, diff --git a/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/OutputData/SummaryDataContainer.cs index f03fc55b2cd9e9321bbd02623c2811cd1990a08b..160c7aec22666e1fcfea2ecf86f91cc832f49714 100644 --- a/VectoCore/OutputData/SummaryDataContainer.cs +++ b/VectoCore/OutputData/SummaryDataContainer.cs @@ -123,8 +123,8 @@ namespace TUGraz.VectoCore.OutputData }.Select(x => new DataColumn(x, typeof(SI))).ToArray()); } - public virtual void Write(bool isEngineOnly, IModalDataContainer data, string jobFileName, string jobName, - string cycleFileName, Kilogram vehicleMass, Kilogram vehicleLoading) + public virtual void Write(IModalDataContainer data, string jobFileName, string jobName, string cycleFileName, + Kilogram vehicleMass, Kilogram vehicleLoading) { var row = _table.NewRow(); _table.Rows.Add(row); @@ -135,85 +135,77 @@ namespace TUGraz.VectoCore.OutputData row[STATUS] = data.RunStatus; row[TIME] = data.Duration(); - if (isEngineOnly) { - row[PPOS] = data.EnginePowerPositiveAverage().ConvertTo().Kilo.Watt; - row[PNEG] = data.EnginePowerNegativeAverage().ConvertTo().Kilo.Watt; - row[FCMAP] = data.FuelConsumptionPerSecond().ConvertTo().Gramm.Per.Hour; - row[FCAUXC] = data.FuelConsumptionAuxStartStopCorrectedPerSecond().ConvertTo().Gramm.Per.Hour; - row[FCWHTCC] = data.FuelConsumptionWHTCCorrectedPerSecond().ConvertTo().Gramm.Per.Hour; - WriteAuxiliaries(data, row); - } else { - var distance = data.Distance(); - if (distance != null) { - row[DISTANCE] = distance.ConvertTo().Kilo.Meter; - } + var fcfinal = data.FuelConsumptionFinal(); + if (fcfinal != null) { + row[FCFINAL] = fcfinal.ConvertTo().Gramm.Per.Kilo.Meter; + } + row[FCFINAL_LITERPER100KM] = data.FuelConsumptionFinalLiterPer100Kilometer(); + if (vehicleLoading != null && !vehicleLoading.IsEqual(0)) { + row[FCFINAL_LITERPER100TKM] = data.FuelConsumptionFinalLiterPer100Kilometer() / vehicleLoading.ConvertTo().Ton; + } + row[FCMAP] = data.FCMapPerSecond().ConvertTo().Gramm.Per.Hour; - var speed = data.Speed(); - if (speed != null) { - row[SPEED] = speed.ConvertTo().Kilo.Meter.Per.Hour; - } + var fcMapPerMeter = data.FCMapPerMeter(); + if (fcMapPerMeter != null) { + row[FCMAPKM] = fcMapPerMeter.ConvertTo().Gramm.Per.Kilo.Meter; + } - row[ALTITUDE_DELTA] = data.AltitudeDelta(); - row[PPOS] = data.EnginePowerPositiveAverage().ConvertTo().Kilo.Watt; - row[PNEG] = data.EnginePowerNegativeAverage().ConvertTo().Kilo.Watt; + row[FCAUXC] = data.FuelConsumptionAuxStartStopCorrectedPerSecond().ConvertTo().Gramm.Per.Hour; + var fuelConsumptionAuxStartStopCorrected = data.FuelConsumptionAuxStartStopCorrected(); + if (fuelConsumptionAuxStartStopCorrected != null) { + row[FCAUXCKM] = fuelConsumptionAuxStartStopCorrected.ConvertTo().Gramm.Per.Kilo.Meter; + } + row[FCWHTCC] = data.FuelConsumptionWHTCCorrectedPerSecond().ConvertTo().Gramm.Per.Hour; + var fuelConsumptionWHTCCorrected = data.FuelConsumptionWHTCCorrected(); + if (fuelConsumptionWHTCCorrected != null) { + row[FCWHTCCKM] = fuelConsumptionWHTCCorrected.ConvertTo().Gramm.Per.Kilo.Meter; + } - var fcfinal = data.FuelConsumptionFinal(); - if (fcfinal != null) { - row[FCFINAL] = fcfinal.ConvertTo().Gramm.Per.Kilo.Meter; - } - row[FCFINAL_LITERPER100KM] = data.FuelConsumptionFinalLiterPer100Kilometer(); + var kilogramPerMeter = data.CO2PerMeter(); + if (kilogramPerMeter != null) { + row[CO2KM] = kilogramPerMeter.ConvertTo().Gramm.Per.Kilo.Meter; if (vehicleLoading != null && !vehicleLoading.IsEqual(0)) { - row[FCFINAL_LITERPER100TKM] = data.FuelConsumptionFinalLiterPer100Kilometer() / vehicleLoading.ConvertTo().Ton; - } - row[FCMAP] = data.FuelConsumptionPerSecond().ConvertTo().Gramm.Per.Hour; - - var fuelConsumptionPerMeter = data.FuelConsumptionPerMeter(); - if (fuelConsumptionPerMeter != null) { - row[FCMAPKM] = fuelConsumptionPerMeter.ConvertTo().Gramm.Per.Kilo.Meter; - } - row[FCAUXC] = data.FuelConsumptionAuxStartStopCorrectedPerSecond().ConvertTo().Gramm.Per.Hour; - var fuelConsumptionAuxStartStopCorrected = data.FuelConsumptionAuxStartStopCorrected(); - if (fuelConsumptionAuxStartStopCorrected != null) { - row[FCAUXCKM] = fuelConsumptionAuxStartStopCorrected.ConvertTo().Gramm.Per.Kilo.Meter; - } - row[FCWHTCC] = data.FuelConsumptionWHTCCorrectedPerSecond().ConvertTo().Gramm.Per.Hour; - var fuelConsumptionWHTCCorrected = data.FuelConsumptionWHTCCorrected(); - if (fuelConsumptionWHTCCorrected != null) { - row[FCWHTCCKM] = fuelConsumptionWHTCCorrected.ConvertTo().Gramm.Per.Kilo.Meter; + row[CO2TKM] = kilogramPerMeter.ConvertTo().Gramm.Per.Kilo.Meter / vehicleLoading.ConvertTo().Ton; } + } - var kilogramPerMeter = data.CO2PerMeter(); - if (kilogramPerMeter != null) { - row[CO2KM] = kilogramPerMeter.ConvertTo().Gramm.Per.Kilo.Meter; - if (vehicleLoading != null && !vehicleLoading.IsEqual(0)) { - row[CO2TKM] = kilogramPerMeter.ConvertTo().Gramm.Per.Kilo.Meter / vehicleLoading.ConvertTo().Ton; - } - } + var distance = data.Distance(); + if (distance != null) { + row[DISTANCE] = distance.ConvertTo().Kilo.Meter; + } - row[PWHEELPOS] = data.PowerWheelPositive().ConvertTo().Kilo.Watt; - row[PBRAKE] = data.PowerBrake().ConvertTo().Kilo.Watt; - row[EPOSICE] = data.EngineWorkPositive().ConvertTo().Kilo.Watt.Hour; - row[ENEGICE] = data.EngineWorkNegative().ConvertTo().Kilo.Watt.Hour; - row[EAIR] = data.WorkAirResistance().ConvertTo().Kilo.Watt.Hour; - row[EROLL] = data.WorkRollingResistance().ConvertTo().Kilo.Watt.Hour; - row[EGRAD] = data.WorkRoadGradientResistance().ConvertTo().Kilo.Watt.Hour; - row[EACC] = data.PowerAccelerations().ConvertTo().Kilo.Watt.Hour; - row[EAUX] = data.WorkAuxiliaries().ConvertTo().Kilo.Watt.Hour; - WriteAuxiliaries(data, row); - row[EBRAKE] = data.WorkTotalMechanicalBrake().ConvertTo().Kilo.Watt.Hour; - row[ETRANSM] = data.WorkTransmission().ConvertTo().Kilo.Watt.Hour; - row[ERETARDER] = data.WorkRetarder().ConvertTo().Kilo.Watt.Hour; - row[ETORQUECONV] = data.WorkTorqueConverter().ConvertTo().Kilo.Watt.Hour; - row[MASS] = vehicleMass; - row[LOADING] = vehicleLoading; - row[ACCELERATIONS] = data.AccelerationAverage(); - row[APOS] = data.AccelerationsPositive3SecondAverage(); - row[ANEG] = data.AverageAccelerations3SecondNegative(); - row[PACC] = data.PercentAccelerationTime(); - row[PDEC] = data.PercentDecelerationTime(); - row[PCRUISE] = data.PercentCruiseTime(); - row[PSTOP] = data.PercentStopTime(); + var speed = data.Speed(); + if (speed != null) { + row[SPEED] = speed.ConvertTo().Kilo.Meter.Per.Hour; } + + row[ALTITUDE_DELTA] = data.AltitudeDelta(); + row[PPOS] = data.EnginePowerPositiveAverage().ConvertTo().Kilo.Watt; + row[PNEG] = data.EnginePowerNegativeAverage().ConvertTo().Kilo.Watt; + + row[PWHEELPOS] = data.PowerWheelPositive().ConvertTo().Kilo.Watt; + row[PBRAKE] = data.PowerBrake().ConvertTo().Kilo.Watt; + row[EPOSICE] = data.EngineWorkPositive().ConvertTo().Kilo.Watt.Hour; + row[ENEGICE] = data.EngineWorkNegative().ConvertTo().Kilo.Watt.Hour; + row[EAIR] = data.WorkAirResistance().ConvertTo().Kilo.Watt.Hour; + row[EROLL] = data.WorkRollingResistance().ConvertTo().Kilo.Watt.Hour; + row[EGRAD] = data.WorkRoadGradientResistance().ConvertTo().Kilo.Watt.Hour; + row[EACC] = data.PowerAccelerations().ConvertTo().Kilo.Watt.Hour; + row[EAUX] = data.WorkAuxiliaries().ConvertTo().Kilo.Watt.Hour; + WriteAuxiliaries(data, row); + row[EBRAKE] = data.WorkTotalMechanicalBrake().ConvertTo().Kilo.Watt.Hour; + row[ETRANSM] = data.WorkTransmission().ConvertTo().Kilo.Watt.Hour; + row[ERETARDER] = data.WorkRetarder().ConvertTo().Kilo.Watt.Hour; + row[ETORQUECONV] = data.WorkTorqueConverter().ConvertTo().Kilo.Watt.Hour; + row[MASS] = vehicleMass; + row[LOADING] = vehicleLoading; + row[ACCELERATIONS] = data.AccelerationAverage(); + row[APOS] = data.AccelerationsPositive3SecondAverage(); + row[ANEG] = data.AverageAccelerations3SecondNegative(); + row[PACC] = data.PercentAccelerationTime(); + row[PDEC] = data.PercentDecelerationTime(); + row[PCRUISE] = data.PercentCruiseTime(); + row[PSTOP] = data.PercentStopTime(); } private static string ReplaceNotAllowedCharacters(string text) diff --git a/VectoCore/Utils/VectoCSVFile.cs b/VectoCore/Utils/VectoCSVFile.cs index 487d8f4f722331580ed5143cebf1f9287501ddb3..111e0cedb6b38de1a40ff4c9f9fd9507d81639b0 100644 --- a/VectoCore/Utils/VectoCSVFile.cs +++ b/VectoCore/Utils/VectoCSVFile.cs @@ -32,8 +32,6 @@ using System; using System.Collections.Generic; using System.Data; -using System.Diagnostics; -using System.Diagnostics.Contracts; using System.Globalization; using System.IO; using System.Linq; diff --git a/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCoreTest/Integration/CoachPowerTrain.cs index a20f1110c9e0c697ee7830e83c504466e039c980..2427a1e53a9de6d50954a75e5063dde8e9e9af82 100644 --- a/VectoCoreTest/Integration/CoachPowerTrain.cs +++ b/VectoCoreTest/Integration/CoachPowerTrain.cs @@ -60,7 +60,6 @@ namespace TUGraz.VectoCore.Tests.Integration bool overspeed = false) { var container = CreatePowerTrain(cycleData, modFileName.Replace(".vmod", ""), overspeed); - return new DistanceRun(container); } diff --git a/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCoreTest/Models/Simulation/AuxTests.cs index e43ec5bbea9d84624e44af3491ff1d50af950f4d..d44a38ce62fcc08cb4ee11ffa3e0d5cea86ca218 100644 --- a/VectoCoreTest/Models/Simulation/AuxTests.cs +++ b/VectoCoreTest/Models/Simulation/AuxTests.cs @@ -29,8 +29,6 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ -using System.Configuration; -using System.Linq; using TUGraz.VectoCore.Utils; using TUGraz.VectoCore.Exceptions; using TUGraz.VectoCore.Tests.Utils; @@ -52,6 +50,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation { [TestMethod] public void AuxWriteModFileSumFile() + { var fileWriter = new FileOutputWriter("AuxWriteModFileSumFile", ""); var modData = new ModalDataContainer("AuxWriteModFileSumFile", fileWriter); @@ -63,7 +62,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var sumWriter = new SummaryDataContainer(fileWriter); var container = new VehicleContainer(modData, - (writer, mass, loading) => sumWriter.Write(false, modData, "", "", "", null, null)); + (writer, mass, loading) => sumWriter.Write(modData, "", "", "", null, null)); var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\LongHaul_short.vdri", CycleType.DistanceBased, false); var mockcycle = new MockDrivingCycle(container, data); diff --git a/VectoCoreTest/Models/Simulation/SimulationTests.cs b/VectoCoreTest/Models/Simulation/SimulationTests.cs index 6fd36bdd958b79b7be8396f0e232da3c6bbfcfe1..1323120cba0701d0c50f4bb9679fa10ab826c107 100644 --- a/VectoCoreTest/Models/Simulation/SimulationTests.cs +++ b/VectoCoreTest/Models/Simulation/SimulationTests.cs @@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation private class MockSumWriter : SummaryDataContainer { - public override void Write(bool isEngineOnly, IModalDataContainer data, string jobFileName, string jobName, + public override void Write(IModalDataContainer data, string jobFileName, string jobName, string cycleFileName, Kilogram vehicleMass, Kilogram vehicleLoading) {} public override void Finish() {} diff --git a/VectoCoreTest/Reports/SumWriterTest.cs b/VectoCoreTest/Reports/SumWriterTest.cs index db7f43b901df33dc2e5c995210a0dcd62692b058..dd38b28c7ec6eeed2ab9f2bfe51a8a8c614541a1 100644 --- a/VectoCoreTest/Reports/SumWriterTest.cs +++ b/VectoCoreTest/Reports/SumWriterTest.cs @@ -29,7 +29,6 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ -using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; @@ -48,7 +47,7 @@ namespace TUGraz.VectoCore.Tests.Reports var writer = new FileOutputWriter("testsumcalc_fixed", ""); var sumWriter = new SummaryDataContainer(writer); - var modData = new ModalDataContainer("testsumcalc_fixed", writer); //("testsumcalc_fixed.vmod"); + var modData = new ModalDataContainer("testsumcalc_fixed", writer); modData.AddAuxiliary("FAN"); for (var i = 0; i < 500; i++) { @@ -71,7 +70,7 @@ namespace TUGraz.VectoCore.Tests.Reports modData.CommitSimulationStep(); } - sumWriter.Write(false, modData, "testSumCalc", "--", "--", 0.SI<Kilogram>(), 0.SI<Kilogram>()); + sumWriter.Write(modData, "testSumCalc", "--", "--", 0.SI<Kilogram>(), 0.SI<Kilogram>()); modData.Finish(VectoRun.Status.Success); sumWriter.Finish(); @@ -107,23 +106,23 @@ namespace TUGraz.VectoCore.Tests.Reports { 1000.SI<Watt>(), 1500.SI<Watt>(), 2000.SI<Watt>(), 2500.SI<Watt>(), 3000.SI<Watt>() }; for (var i = 0; i < 500; i++) { - modData[ModalResultField.simulationInterval] = timeSteps[i % timeSteps.Count()]; + modData[ModalResultField.simulationInterval] = timeSteps[i % timeSteps.Length]; modData[ModalResultField.time] = i.SI<Second>(); modData[ModalResultField.dist] = i.SI<Meter>(); - modData["FAN"] = powerDemand[i % powerDemand.Count()]; - modData[ModalResultField.P_air] = powerDemand[i % powerDemand.Count()]; - modData[ModalResultField.P_roll] = powerDemand[i % powerDemand.Count()]; - modData[ModalResultField.P_slope] = powerDemand[i % powerDemand.Count()]; - modData[ModalResultField.P_aux] = powerDemand[i % powerDemand.Count()]; - modData[ModalResultField.P_brake_loss] = powerDemand[i % powerDemand.Count()]; + modData["FAN"] = powerDemand[i % powerDemand.Length]; + modData[ModalResultField.P_air] = powerDemand[i % powerDemand.Length]; + modData[ModalResultField.P_roll] = powerDemand[i % powerDemand.Length]; + modData[ModalResultField.P_slope] = powerDemand[i % powerDemand.Length]; + modData[ModalResultField.P_aux] = powerDemand[i % powerDemand.Length]; + modData[ModalResultField.P_brake_loss] = powerDemand[i % powerDemand.Length]; modData[ModalResultField.altitude] = 0.SI<Meter>(); modData[ModalResultField.acc] = 0.SI<MeterPerSquareSecond>(); - modData[ModalResultField.P_eng_out] = (i % 2 == 0 ? 1 : -1) * powerDemand[i % powerDemand.Count()]; + modData[ModalResultField.P_eng_out] = (i % 2 == 0 ? 1 : -1) * powerDemand[i % powerDemand.Length]; modData.CommitSimulationStep(); } - sumWriter.Write(false, modData, "testSumCalc", "--", "--", 0.SI<Kilogram>(), 0.SI<Kilogram>()); + sumWriter.Write(modData, "testSumCalc", "--", "--", 0.SI<Kilogram>(), 0.SI<Kilogram>()); modData.Finish(VectoRun.Status.Success); sumWriter.Finish();