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 4c959a0b59b90bda19344888441553f4e7f22fc6..650450f6bda30aa27adaeea9970c18e650e5f9dc 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,4 +1,10 @@ -Job [-],Input File [-],Cycle [-],time [s],Ppos [kW],Pneg [kW],FC [g/h],FC-AUXc [g/h],FC-WHTCc [g/h] -1,12t Delivery Truck.vecto,Long Haul,Aborted due to Error! -1,12t Delivery Truck.vecto,Regional Delivery,Aborted due to Error! -1,12t Delivery Truck.vecto,Urban Delivery,Aborted due to Error! +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 diff --git a/Generic Vehicles/Declaration Mode/12t Delivery Truck/12t Delivery Truck.vsum.json b/Generic Vehicles/Declaration Mode/12t Delivery Truck/12t Delivery Truck.vsum.json index 6af3d872556ae6c97df3c6832493a65f6fe85d8b..6f100fe9e85877ce939db04065775cab429a37ad 100644 --- a/Generic Vehicles/Declaration Mode/12t Delivery Truck/12t Delivery Truck.vsum.json +++ b/Generic Vehicles/Declaration Mode/12t Delivery Truck/12t Delivery Truck.vsum.json @@ -1,8 +1,8 @@ { "Header": { "CreatedBy": " ()", - "Date": "3/4/2015 12:31:07 PM", - "AppVersion": "2.0.4-beta3", + "Date": "10/6/2015 11:34:57 AM", + "AppVersion": "2.2 beta-2", "FileVersion": 1 }, "Body": { @@ -16,20 +16,1784 @@ { "Job": "12t Delivery Truck.vecto", "Cycle": "Long Haul", - "Loading": "User-defined Loading", - "AbortedByError": true + "Loading": "Empty Loading", + "AbortedByError": false, + "Results": { + "time": { + "Value": 5245, + "Unit": "[s]" + }, + "distance": { + "Value": 108.181763, + "Unit": "[km]" + }, + "speed": { + "Value": 74.2524948, + "Unit": "[km/h]" + }, + "∆altitude": { + "Value": 0.415793329, + "Unit": "[m]" + }, + "Eaux_FAN": { + "Value": 1.3680708486172888, + "Unit": "[kWh]" + }, + "Eaux_PS": { + "Value": 1.7191943680246671, + "Unit": "[kWh]" + }, + "Eaux_STP": { + "Value": 0.32344167083501818, + "Unit": "[kWh]" + }, + "Eaux_ES": { + "Value": 2.5808730357223086, + "Unit": "[kWh]" + }, + "Eaux_AC": { + "Value": 0.29138889323092171, + "Unit": "[kWh]" + }, + "Ppos": { + "Value": 68.828245691688039, + "Unit": "[kW]" + }, + "Pneg": { + "Value": -0.29506068781472822, + "Unit": "[kW]" + }, + "FC-Map": [ + { + "Value": 13939.9238, + "Unit": "[g/h]" + }, + { + "Value": 187.736771, + "Unit": "[g/km]" + } + ], + "FC-AUXc": [ + { + "Value": "-", + "Unit": "[g/h]" + }, + { + "Value": "-", + "Unit": "[g/km]" + } + ], + "FC-WHTCc": [ + { + "Value": 14048.6543, + "Unit": "[g/h]" + }, + { + "Value": 189.201111, + "Unit": "[g/km]" + } + ], + "CO2": [ + { + "Value": 597.875549, + "Unit": "[g/km]" + }, + { + "Value": "-", + "Unit": "[g/tkm]" + } + ], + "FC-Final": [ + { + "Value": 189.201111, + "Unit": "[g/km]" + }, + { + "Value": "-", + "Unit": "[l/100tkm]" + }, + { + "Value": 22.7405167, + "Unit": "[l/100km]" + } + ], + "PwheelPos": { + "Value": 53.33314316980789, + "Unit": "[kW]" + }, + "Pbrake": { + "Value": -0.95129606053020066, + "Unit": "[kW]" + }, + "EposICE": { + "Value": 100.27893018136214, + "Unit": "[kWh]" + }, + "EnegICE": { + "Value": -0.42988702988562483, + "Unit": "[kWh]" + }, + "Eair": { + "Value": -53.721797563845534, + "Unit": "[kWh]" + }, + "Eroll": { + "Value": -21.602133366182034, + "Unit": "[kWh]" + }, + "Egrad": { + "Value": -0.0059443338981105221, + "Unit": "[kWh]" + }, + "Eacc": { + "Value": 8.5470059679614171E-08, + "Unit": "[kWh]" + }, + "Eaux": { + "Value": -6.2829687078793848, + "Unit": "[kWh]" + }, + "Ebrake": { + "Value": -1.3859855104113619, + "Unit": "[kWh]" + }, + "Etransm": { + "Value": -16.850215470815698, + "Unit": "[kWh]" + }, + "Eretarder": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Etorqueconv": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Mass": { + "Value": 7750.0, + "Unit": "[kg]" + }, + "Loading": { + "Value": 0.0, + "Unit": "[kg]" + }, + "a": { + "Value": "-4.545636E-10", + "Unit": "[m/s^2]" + }, + "a_pos": { + "Value": "0.432781", + "Unit": "[m/s^2]" + }, + "a_neg": { + "Value": "-0.5312394", + "Unit": "[m/s^2]" + }, + "Acc.Noise": { + "Value": "0.2062322", + "Unit": "[m/s^2]" + }, + "pAcc": { + "Value": "0.0528122", + "Unit": "[%]" + }, + "pDec": { + "Value": "0.04080076", + "Unit": "[%]" + }, + "pCruise": { + "Value": "0.8602479", + "Unit": "[%]" + }, + "pStop": { + "Value": "0.04613918", + "Unit": "[%]" + } + } + }, + { + "Job": "12t Delivery Truck.vecto", + "Cycle": "Long Haul", + "Loading": "Reference Loading", + "AbortedByError": false, + "Results": { + "time": { + "Value": 5275, + "Unit": "[s]" + }, + "distance": { + "Value": 108.181885, + "Unit": "[km]" + }, + "speed": { + "Value": 73.83029, + "Unit": "[km/h]" + }, + "∆altitude": { + "Value": 0.41229853, + "Unit": "[m]" + }, + "Eaux_FAN": { + "Value": 1.375895848704709, + "Unit": "[kWh]" + }, + "Eaux_PS": { + "Value": 1.7290277009208996, + "Unit": "[kWh]" + }, + "Eaux_STP": { + "Value": 0.32529167085886, + "Unit": "[kWh]" + }, + "Eaux_ES": { + "Value": 2.5956349405977459, + "Unit": "[kWh]" + }, + "Eaux_AC": { + "Value": 0.2930555599224236, + "Unit": "[kWh]" + }, + "Ppos": { + "Value": 76.562278412040939, + "Unit": "[kW]" + }, + "Pneg": { + "Value": -0.61427228344560236, + "Unit": "[kW]" + }, + "FC-Map": [ + { + "Value": 15412.9971, + "Unit": "[g/h]" + }, + { + "Value": 208.762512, + "Unit": "[g/km]" + } + ], + "FC-AUXc": [ + { + "Value": "-", + "Unit": "[g/h]" + }, + { + "Value": "-", + "Unit": "[g/km]" + } + ], + "FC-WHTCc": [ + { + "Value": 15533.2178, + "Unit": "[g/h]" + }, + { + "Value": 210.390854, + "Unit": "[g/km]" + } + ], + "CO2": [ + { + "Value": 664.835144, + "Unit": "[g/km]" + }, + { + "Value": 160.201233, + "Unit": "[g/tkm]" + } + ], + "FC-Final": [ + { + "Value": 210.390854, + "Unit": "[g/km]" + }, + { + "Value": 6.09334, + "Unit": "[l/100tkm]" + }, + { + "Value": 25.2873611, + "Unit": "[l/100km]" + } + ], + "PwheelPos": { + "Value": 61.618614434834342, + "Unit": "[kW]" + }, + "Pbrake": { + "Value": -1.9162271057005742, + "Unit": "[kW]" + }, + "EposICE": { + "Value": 112.18500517319887, + "Unit": "[kWh]" + }, + "EnegICE": { + "Value": -0.90007952643765343, + "Unit": "[kWh]" + }, + "Eair": { + "Value": -53.154475598491814, + "Unit": "[kWh]" + }, + "Eroll": { + "Value": -31.777363040136795, + "Unit": "[kWh]" + }, + "Egrad": { + "Value": -0.011467684529100856, + "Unit": "[kWh]" + }, + "Eacc": { + "Value": -1.9734608940780163E-07, + "Unit": "[kWh]" + }, + "Eaux": { + "Value": -6.3189056118329363, + "Unit": "[kWh]" + }, + "Ebrake": { + "Value": -2.8078049951584805, + "Unit": "[kWh]" + }, + "Etransm": { + "Value": -17.214910343007908, + "Unit": "[kWh]" + }, + "Eretarder": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Etorqueconv": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Mass": { + "Value": 7750.0, + "Unit": "[kg]" + }, + "Loading": { + "Value": 4150.0, + "Unit": "[kg]" + }, + "a": { + "Value": "-4.519783E-10", + "Unit": "[m/s^2]" + }, + "a_pos": { + "Value": "0.4081375", + "Unit": "[m/s^2]" + }, + "a_neg": { + "Value": "-0.4746179", + "Unit": "[m/s^2]" + }, + "Acc.Noise": { + "Value": "0.1942435", + "Unit": "[m/s^2]" + }, + "pAcc": { + "Value": "0.05800948", + "Unit": "[%]" + }, + "pDec": { + "Value": "0.05023697", + "Unit": "[%]" + }, + "pCruise": { + "Value": "0.8458768", + "Unit": "[%]" + }, + "pStop": { + "Value": "0.04587678", + "Unit": "[%]" + } + } + }, + { + "Job": "12t Delivery Truck.vecto", + "Cycle": "Long Haul", + "Loading": "Full Loading", + "AbortedByError": false, + "Results": { + "time": { + "Value": 5275, + "Unit": "[s]" + }, + "distance": { + "Value": 108.181885, + "Unit": "[km]" + }, + "speed": { + "Value": 73.83029, + "Unit": "[km/h]" + }, + "∆altitude": { + "Value": 0.41229853, + "Unit": "[m]" + }, + "Eaux_FAN": { + "Value": 1.375895848704709, + "Unit": "[kWh]" + }, + "Eaux_PS": { + "Value": 1.7290277009208996, + "Unit": "[kWh]" + }, + "Eaux_STP": { + "Value": 0.32529167085886, + "Unit": "[kWh]" + }, + "Eaux_ES": { + "Value": 2.5956349405977459, + "Unit": "[kWh]" + }, + "Eaux_AC": { + "Value": 0.2930555599224236, + "Unit": "[kWh]" + }, + "Ppos": { + "Value": 76.562278412040939, + "Unit": "[kW]" + }, + "Pneg": { + "Value": -0.61427228344560236, + "Unit": "[kW]" + }, + "FC-Map": [ + { + "Value": 15412.9971, + "Unit": "[g/h]" + }, + { + "Value": 208.762512, + "Unit": "[g/km]" + } + ], + "FC-AUXc": [ + { + "Value": "-", + "Unit": "[g/h]" + }, + { + "Value": "-", + "Unit": "[g/km]" + } + ], + "FC-WHTCc": [ + { + "Value": 15533.2178, + "Unit": "[g/h]" + }, + { + "Value": 210.390854, + "Unit": "[g/km]" + } + ], + "CO2": [ + { + "Value": 664.835144, + "Unit": "[g/km]" + }, + { + "Value": 160.201233, + "Unit": "[g/tkm]" + } + ], + "FC-Final": [ + { + "Value": 210.390854, + "Unit": "[g/km]" + }, + { + "Value": 6.09334, + "Unit": "[l/100tkm]" + }, + { + "Value": 25.2873611, + "Unit": "[l/100km]" + } + ], + "PwheelPos": { + "Value": 61.618614434834342, + "Unit": "[kW]" + }, + "Pbrake": { + "Value": -1.9162271057005742, + "Unit": "[kW]" + }, + "EposICE": { + "Value": 112.18500517319887, + "Unit": "[kWh]" + }, + "EnegICE": { + "Value": -0.90007952643765343, + "Unit": "[kWh]" + }, + "Eair": { + "Value": -53.154475598491814, + "Unit": "[kWh]" + }, + "Eroll": { + "Value": -31.777363040136795, + "Unit": "[kWh]" + }, + "Egrad": { + "Value": -0.011467684529100856, + "Unit": "[kWh]" + }, + "Eacc": { + "Value": -1.9734608940780163E-07, + "Unit": "[kWh]" + }, + "Eaux": { + "Value": -6.3189056118329363, + "Unit": "[kWh]" + }, + "Ebrake": { + "Value": -2.8078049951584805, + "Unit": "[kWh]" + }, + "Etransm": { + "Value": -17.214910343007908, + "Unit": "[kWh]" + }, + "Eretarder": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Etorqueconv": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Mass": { + "Value": 7750.0, + "Unit": "[kg]" + }, + "Loading": { + "Value": 4150.0, + "Unit": "[kg]" + }, + "a": { + "Value": "-4.519783E-10", + "Unit": "[m/s^2]" + }, + "a_pos": { + "Value": "0.4081375", + "Unit": "[m/s^2]" + }, + "a_neg": { + "Value": "-0.4746179", + "Unit": "[m/s^2]" + }, + "Acc.Noise": { + "Value": "0.1942435", + "Unit": "[m/s^2]" + }, + "pAcc": { + "Value": "0.05800948", + "Unit": "[%]" + }, + "pDec": { + "Value": "0.05023697", + "Unit": "[%]" + }, + "pCruise": { + "Value": "0.8458768", + "Unit": "[%]" + }, + "pStop": { + "Value": "0.04587678", + "Unit": "[%]" + } + } + }, + { + "Job": "12t Delivery Truck.vecto", + "Cycle": "Regional Delivery", + "Loading": "Empty Loading", + "AbortedByError": false, + "Results": { + "time": { + "Value": 1614, + "Unit": "[s]" + }, + "distance": { + "Value": 25.8283958, + "Unit": "[km]" + }, + "speed": { + "Value": 57.6098061, + "Unit": "[km/h]" + }, + "∆altitude": { + "Value": -0.0243198443, + "Unit": "[m]" + }, + "Eaux_FAN": { + "Value": 0.44564334124326704, + "Unit": "[kWh]" + }, + "Eaux_PS": { + "Value": 0.57386665383974711, + "Unit": "[kWh]" + }, + "Eaux_STP": { + "Value": 0.086080000748236976, + "Unit": "[kWh]" + }, + "Eaux_ES": { + "Value": 0.675702400803566, + "Unit": "[kWh]" + }, + "Eaux_AC": { + "Value": 0.089666668002804123, + "Unit": "[kWh]" + }, + "Ppos": { + "Value": 50.790913190591105, + "Unit": "[kW]" + }, + "Pneg": { + "Value": -0.79710085363193073, + "Unit": "[kW]" + }, + "FC-Map": [ + { + "Value": 10468.6738, + "Unit": "[g/h]" + }, + { + "Value": 181.716873, + "Unit": "[g/km]" + } + ], + "FC-AUXc": [ + { + "Value": "-", + "Unit": "[g/h]" + }, + { + "Value": "-", + "Unit": "[g/km]" + } + ], + "FC-WHTCc": [ + { + "Value": 10474.9551, + "Unit": "[g/h]" + }, + { + "Value": 181.8259, + "Unit": "[g/km]" + } + ], + "CO2": [ + { + "Value": 574.5698, + "Unit": "[g/km]" + }, + { + "Value": "-", + "Unit": "[g/tkm]" + } + ], + "FC-Final": [ + { + "Value": 181.8259, + "Unit": "[g/km]" + }, + { + "Value": "-", + "Unit": "[l/100tkm]" + }, + { + "Value": 21.8540745, + "Unit": "[l/100km]" + } + ], + "PwheelPos": { + "Value": 38.742192976767612, + "Unit": "[kW]" + }, + "Pbrake": { + "Value": -2.2232646890621646, + "Unit": "[kW]" + }, + "EposICE": { + "Value": 22.771259413781678, + "Unit": "[kWh]" + }, + "EnegICE": { + "Value": -0.35736688271164896, + "Unit": "[kWh]" + }, + "Eair": { + "Value": -10.539273132291129, + "Unit": "[kWh]" + }, + "Eroll": { + "Value": -5.1202677349332308, + "Unit": "[kWh]" + }, + "Egrad": { + "Value": 0.00982296626605805, + "Unit": "[kWh]" + }, + "Eacc": { + "Value": -9.3620684411790633E-08, + "Unit": "[kWh]" + }, + "Eaux": { + "Value": -1.8709590713183084, + "Unit": "[kWh]" + }, + "Ebrake": { + "Value": -0.99676366892953716, + "Unit": "[kWh]" + }, + "Etransm": { + "Value": -3.8964546082831091, + "Unit": "[kWh]" + }, + "Eretarder": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Etorqueconv": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Mass": { + "Value": 7750.0, + "Unit": "[kg]" + }, + "Loading": { + "Value": 0.0, + "Unit": "[kg]" + }, + "a": { + "Value": "-1.181753E-09", + "Unit": "[m/s^2]" + }, + "a_pos": { + "Value": "0.4412237", + "Unit": "[m/s^2]" + }, + "a_neg": { + "Value": "-0.4665618", + "Unit": "[m/s^2]" + }, + "Acc.Noise": { + "Value": "0.3421181", + "Unit": "[m/s^2]" + }, + "pAcc": { + "Value": "0.1356877", + "Unit": "[%]" + }, + "pDec": { + "Value": "0.1363073", + "Unit": "[%]" + }, + "pCruise": { + "Value": "0.6592317", + "Unit": "[%]" + }, + "pStop": { + "Value": "0.06877323", + "Unit": "[%]" + } + } }, { "Job": "12t Delivery Truck.vecto", "Cycle": "Regional Delivery", - "Loading": "User-defined Loading", - "AbortedByError": true + "Loading": "Reference Loading", + "AbortedByError": false, + "Results": { + "time": { + "Value": 1601, + "Unit": "[s]" + }, + "distance": { + "Value": 25.8283272, + "Unit": "[km]" + }, + "speed": { + "Value": 58.07744, + "Unit": "[km/h]" + }, + "∆altitude": { + "Value": -0.0246604662, + "Unit": "[m]" + }, + "Eaux_FAN": { + "Value": 0.44205389673511186, + "Unit": "[kWh]" + }, + "Eaux_PS": { + "Value": 0.56924443172083961, + "Unit": "[kWh]" + }, + "Eaux_STP": { + "Value": 0.085386667408876946, + "Unit": "[kWh]" + }, + "Eaux_ES": { + "Value": 0.67025994032621383, + "Unit": "[kWh]" + }, + "Eaux_AC": { + "Value": 0.088944445769819955, + "Unit": "[kWh]" + }, + "Ppos": { + "Value": 57.118361313815122, + "Unit": "[kW]" + }, + "Pneg": { + "Value": -1.3193749848713658, + "Unit": "[kW]" + }, + "FC-Map": [ + { + "Value": 11643.998, + "Unit": "[g/h]" + }, + { + "Value": 200.4909, + "Unit": "[g/km]" + } + ], + "FC-AUXc": [ + { + "Value": "-", + "Unit": "[g/h]" + }, + { + "Value": "-", + "Unit": "[g/km]" + } + ], + "FC-WHTCc": [ + { + "Value": 11650.9834, + "Unit": "[g/h]" + }, + { + "Value": 200.611176, + "Unit": "[g/km]" + } + ], + "CO2": [ + { + "Value": 633.931335, + "Unit": "[g/km]" + }, + { + "Value": 212.451324, + "Unit": "[g/tkm]" + } + ], + "FC-Final": [ + { + "Value": 200.611176, + "Unit": "[g/km]" + }, + { + "Value": 8.080701, + "Unit": "[l/100tkm]" + }, + { + "Value": 24.1119213, + "Unit": "[l/100km]" + } + ], + "PwheelPos": { + "Value": 45.256496177752418, + "Unit": "[kW]" + }, + "Pbrake": { + "Value": -3.4898557770697121, + "Unit": "[kW]" + }, + "EposICE": { + "Value": 25.401804573171667, + "Unit": "[kWh]" + }, + "EnegICE": { + "Value": -0.58675537521640464, + "Unit": "[kWh]" + }, + "Eair": { + "Value": -10.538148882198763, + "Unit": "[kWh]" + }, + "Eroll": { + "Value": -6.8643774398002364, + "Unit": "[kWh]" + }, + "Egrad": { + "Value": -0.0089103394850260677, + "Unit": "[kWh]" + }, + "Eacc": { + "Value": -1.6934031413661108E-08, + "Unit": "[kWh]" + }, + "Eaux": { + "Value": -1.8558893885877397, + "Unit": "[kWh]" + }, + "Ebrake": { + "Value": -1.5520164164135026, + "Unit": "[kWh]" + }, + "Etransm": { + "Value": -3.9957101975960865, + "Unit": "[kWh]" + }, + "Eretarder": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Etorqueconv": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Mass": { + "Value": 7750.0, + "Unit": "[kg]" + }, + "Loading": { + "Value": 2983.89, + "Unit": "[kg]" + }, + "a": { + "Value": "-1.191348E-09", + "Unit": "[m/s^2]" + }, + "a_pos": { + "Value": "0.4123022", + "Unit": "[m/s^2]" + }, + "a_neg": { + "Value": "-0.4458131", + "Unit": "[m/s^2]" + }, + "Acc.Noise": { + "Value": "0.3330745", + "Unit": "[m/s^2]" + }, + "pAcc": { + "Value": "0.1599001", + "Unit": "[%]" + }, + "pDec": { + "Value": "0.1505309", + "Unit": "[%]" + }, + "pCruise": { + "Value": "0.6202374", + "Unit": "[%]" + }, + "pStop": { + "Value": "0.06933167", + "Unit": "[%]" + } + } + }, + { + "Job": "12t Delivery Truck.vecto", + "Cycle": "Regional Delivery", + "Loading": "Full Loading", + "AbortedByError": false, + "Results": { + "time": { + "Value": 1596, + "Unit": "[s]" + }, + "distance": { + "Value": 25.8282166, + "Unit": "[km]" + }, + "speed": { + "Value": 58.2591324, + "Unit": "[km/h]" + }, + "∆altitude": { + "Value": -0.02519032, + "Unit": "[m]" + }, + "Eaux_FAN": { + "Value": 0.44067334115505219, + "Unit": "[kWh]" + }, + "Eaux_PS": { + "Value": 0.56746665398279827, + "Unit": "[kWh]" + }, + "Eaux_STP": { + "Value": 0.085120000739892329, + "Unit": "[kWh]" + }, + "Eaux_ES": { + "Value": 0.668166686296463, + "Unit": "[kWh]" + }, + "Eaux_AC": { + "Value": 0.088666667987902958, + "Unit": "[kWh]" + }, + "Ppos": { + "Value": 59.748534180634749, + "Unit": "[kW]" + }, + "Pneg": { + "Value": -1.4318572242830629, + "Unit": "[kW]" + }, + "FC-Map": [ + { + "Value": 12153.249, + "Unit": "[g/h]" + }, + { + "Value": 208.606766, + "Unit": "[g/km]" + } + ], + "FC-AUXc": [ + { + "Value": "-", + "Unit": "[g/h]" + }, + { + "Value": "-", + "Unit": "[g/km]" + } + ], + "FC-WHTCc": [ + { + "Value": 12160.541, + "Unit": "[g/h]" + }, + { + "Value": 208.731934, + "Unit": "[g/km]" + } + ], + "CO2": [ + { + "Value": 659.592957, + "Unit": "[g/km]" + }, + { + "Value": 158.938065, + "Unit": "[g/tkm]" + } + ], + "FC-Final": [ + { + "Value": 208.731934, + "Unit": "[g/km]" + }, + { + "Value": 6.04529428, + "Unit": "[l/100tkm]" + }, + { + "Value": 25.0879726, + "Unit": "[l/100km]" + } + ], + "PwheelPos": { + "Value": 48.254532970164796, + "Unit": "[kW]" + }, + "Pbrake": { + "Value": -4.1155796262218542, + "Unit": "[kW]" + }, + "EposICE": { + "Value": 26.488516820081408, + "Unit": "[kWh]" + }, + "EnegICE": { + "Value": -0.63479003609882456, + "Unit": "[kWh]" + }, + "Eair": { + "Value": -10.62016522081815, + "Unit": "[kWh]" + }, + "Eroll": { + "Value": -7.5319970802962777, + "Unit": "[kWh]" + }, + "Egrad": { + "Value": 0.016459057985598016, + "Unit": "[kWh]" + }, + "Eacc": { + "Value": 4.7750460604826611E-08, + "Unit": "[kWh]" + }, + "Eaux": { + "Value": -1.8500933567682902, + "Unit": "[kWh]" + }, + "Ebrake": { + "Value": -1.8245736342916885, + "Unit": "[kWh]" + }, + "Etransm": { + "Value": -4.0433599840849634, + "Unit": "[kWh]" + }, + "Eretarder": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Etorqueconv": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Mass": { + "Value": 7750.0, + "Unit": "[kg]" + }, + "Loading": { + "Value": 4150.0, + "Unit": "[kg]" + }, + "a": { + "Value": "1.792621E-09", + "Unit": "[m/s^2]" + }, + "a_pos": { + "Value": "0.4045506", + "Unit": "[m/s^2]" + }, + "a_neg": { + "Value": "-0.4171267", + "Unit": "[m/s^2]" + }, + "Acc.Noise": { + "Value": "0.3388702", + "Unit": "[m/s^2]" + }, + "pAcc": { + "Value": "0.1785714", + "Unit": "[%]" + }, + "pDec": { + "Value": "0.1735589", + "Unit": "[%]" + }, + "pCruise": { + "Value": "0.5783208", + "Unit": "[%]" + }, + "pStop": { + "Value": "0.06954888", + "Unit": "[%]" + } + } + }, + { + "Job": "12t Delivery Truck.vecto", + "Cycle": "Urban Delivery", + "Loading": "Empty Loading", + "AbortedByError": false, + "Results": { + "time": { + "Value": 3368, + "Unit": "[s]" + }, + "distance": { + "Value": 27.8073463, + "Unit": "[km]" + }, + "speed": { + "Value": 29.7228165, + "Unit": "[km/h]" + }, + "∆altitude": { + "Value": -0.0525400378, + "Unit": "[m]" + }, + "Eaux_FAN": { + "Value": 0.82609557072321571, + "Unit": "[kWh]" + }, + "Eaux_PS": { + "Value": 1.2349333824051751, + "Unit": "[kWh]" + }, + "Eaux_STP": { + "Value": 0.17401333745982911, + "Unit": "[kWh]" + }, + "Eaux_ES": { + "Value": 1.3017587473657397, + "Unit": "[kWh]" + }, + "Eaux_AC": { + "Value": 0.140333338909679, + "Unit": "[kWh]" + }, + "Ppos": { + "Value": 25.139603612462231, + "Unit": "[kW]" + }, + "Pneg": { + "Value": -0.94852429131519345, + "Unit": "[kW]" + }, + "FC-Map": [ + { + "Value": 5488.629, + "Unit": "[g/h]" + }, + { + "Value": 184.660461, + "Unit": "[g/km]" + } + ], + "FC-AUXc": [ + { + "Value": "-", + "Unit": "[g/h]" + }, + { + "Value": "-", + "Unit": "[g/km]" + } + ], + "FC-WHTCc": [ + { + "Value": 5438.134, + "Unit": "[g/h]" + }, + { + "Value": 182.9616, + "Unit": "[g/km]" + } + ], + "CO2": [ + { + "Value": 578.1586, + "Unit": "[g/km]" + }, + { + "Value": "-", + "Unit": "[g/tkm]" + } + ], + "FC-Final": [ + { + "Value": 182.9616, + "Unit": "[g/km]" + }, + { + "Value": "-", + "Unit": "[l/100tkm]" + }, + { + "Value": 21.9905739, + "Unit": "[l/100km]" + } + ], + "PwheelPos": { + "Value": 17.708187470822583, + "Unit": "[kW]" + }, + "Pbrake": { + "Value": -4.2275213466844805, + "Unit": "[kW]" + }, + "EposICE": { + "Value": 23.519495824103554, + "Unit": "[kWh]" + }, + "EnegICE": { + "Value": -0.88739717031932541, + "Unit": "[kWh]" + }, + "Eair": { + "Value": -5.6845096131650976, + "Unit": "[kWh]" + }, + "Eroll": { + "Value": -5.51247593332082, + "Unit": "[kWh]" + }, + "Egrad": { + "Value": 0.0078068577350414768, + "Unit": "[kWh]" + }, + "Eacc": { + "Value": 2.3874609420696896E-07, + "Unit": "[kWh]" + }, + "Eaux": { + "Value": -3.6771342235141331, + "Unit": "[kWh]" + }, + "Ebrake": { + "Value": -3.9550810821203695, + "Unit": "[kWh]" + }, + "Etransm": { + "Value": -3.8107293722364637, + "Unit": "[kWh]" + }, + "Eretarder": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Etorqueconv": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Mass": { + "Value": 7750.0, + "Unit": "[kg]" + }, + "Loading": { + "Value": 0.0, + "Unit": "[kg]" + }, + "a": { + "Value": "-2.477628E-10", + "Unit": "[m/s^2]" + }, + "a_pos": { + "Value": "0.4752795", + "Unit": "[m/s^2]" + }, + "a_neg": { + "Value": "-0.5695276", + "Unit": "[m/s^2]" + }, + "Acc.Noise": { + "Value": "0.4568766", + "Unit": "[m/s^2]" + }, + "pAcc": { + "Value": "0.1980404", + "Unit": "[%]" + }, + "pDec": { + "Value": "0.1725059", + "Unit": "[%]" + }, + "pCruise": { + "Value": "0.442696", + "Unit": "[%]" + }, + "pStop": { + "Value": "0.1867577", + "Unit": "[%]" + } + } + }, + { + "Job": "12t Delivery Truck.vecto", + "Cycle": "Urban Delivery", + "Loading": "Reference Loading", + "AbortedByError": false, + "Results": { + "time": { + "Value": 3310, + "Unit": "[s]" + }, + "distance": { + "Value": 27.8079987, + "Unit": "[km]" + }, + "speed": { + "Value": 30.24435, + "Unit": "[km/h]" + }, + "∆altitude": { + "Value": -0.0495902039, + "Unit": "[m]" + }, + "Eaux_FAN": { + "Value": 0.81186945935090382, + "Unit": "[kWh]" + }, + "Eaux_PS": { + "Value": 1.213666714893447, + "Unit": "[kWh]" + }, + "Eaux_STP": { + "Value": 0.17101667072210047, + "Unit": "[kWh]" + }, + "Eaux_ES": { + "Value": 1.2793412867519591, + "Unit": "[kWh]" + }, + "Eaux_AC": { + "Value": 0.13791667214698261, + "Unit": "[kWh]" + }, + "Ppos": { + "Value": 30.433458180405943, + "Unit": "[kW]" + }, + "Pneg": { + "Value": -1.1674894084563068, + "Unit": "[kW]" + }, + "FC-Map": [ + { + "Value": 6470.452, + "Unit": "[g/h]" + }, + { + "Value": 213.9392, + "Unit": "[g/km]" + } + ], + "FC-AUXc": [ + { + "Value": "-", + "Unit": "[g/h]" + }, + { + "Value": "-", + "Unit": "[g/km]" + } + ], + "FC-WHTCc": [ + { + "Value": 6410.92432, + "Unit": "[g/h]" + }, + { + "Value": 211.970978, + "Unit": "[g/km]" + } + ], + "CO2": [ + { + "Value": 669.8283, + "Unit": "[g/km]" + }, + { + "Value": 224.481583, + "Unit": "[g/tkm]" + } + ], + "FC-Final": [ + { + "Value": 211.970978, + "Unit": "[g/km]" + }, + { + "Value": 8.538279, + "Unit": "[l/100tkm]" + }, + { + "Value": 25.4772816, + "Unit": "[l/100km]" + } + ], + "PwheelPos": { + "Value": 22.823100320778764, + "Unit": "[kW]" + }, + "Pbrake": { + "Value": -6.4608470516162573, + "Unit": "[kW]" + }, + "EposICE": { + "Value": 27.981874049206574, + "Unit": "[kWh]" + }, + "EnegICE": { + "Value": -1.0734416505528821, + "Unit": "[kWh]" + }, + "Eair": { + "Value": -5.8964291196101994, + "Unit": "[kWh]" + }, + "Eroll": { + "Value": -7.3903790671564638, + "Unit": "[kWh]" + }, + "Egrad": { + "Value": 0.012227594218978387, + "Unit": "[kWh]" + }, + "Eacc": { + "Value": -7.7676183233658474E-08, + "Unit": "[kWh]" + }, + "Eaux": { + "Value": -3.6138106531567042, + "Unit": "[kWh]" + }, + "Ebrake": { + "Value": -5.9403899280138361, + "Unit": "[kWh]" + }, + "Etransm": { + "Value": -4.079683450870216, + "Unit": "[kWh]" + }, + "Eretarder": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Etorqueconv": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Mass": { + "Value": 7750.0, + "Unit": "[kg]" + }, + "Loading": { + "Value": 2983.89, + "Unit": "[kg]" + }, + "a": { + "Value": "6.122531E-10", + "Unit": "[m/s^2]" + }, + "a_pos": { + "Value": "0.5035743", + "Unit": "[m/s^2]" + }, + "a_neg": { + "Value": "-0.5390744", + "Unit": "[m/s^2]" + }, + "Acc.Noise": { + "Value": "0.4479906", + "Unit": "[m/s^2]" + }, + "pAcc": { + "Value": "0.2042296", + "Unit": "[%]" + }, + "pDec": { + "Value": "0.1930514", + "Unit": "[%]" + }, + "pCruise": { + "Value": "0.4126888", + "Unit": "[%]" + }, + "pStop": { + "Value": "0.1900302", + "Unit": "[%]" + } + } }, { "Job": "12t Delivery Truck.vecto", "Cycle": "Urban Delivery", - "Loading": "User-defined Loading", - "AbortedByError": true + "Loading": "Full Loading", + "AbortedByError": false, + "Results": { + "time": { + "Value": 3338, + "Unit": "[s]" + }, + "distance": { + "Value": 27.8079262, + "Unit": "[km]" + }, + "speed": { + "Value": 29.990572, + "Unit": "[km/h]" + }, + "∆altitude": { + "Value": -0.04992481, + "Unit": "[m]" + }, + "Eaux_FAN": { + "Value": 0.81873723725477854, + "Unit": "[kWh]" + }, + "Eaux_PS": { + "Value": 1.2239333819680744, + "Unit": "[kWh]" + }, + "Eaux_STP": { + "Value": 0.17246333742307293, + "Unit": "[kWh]" + }, + "Eaux_ES": { + "Value": 1.2901635091172323, + "Unit": "[kWh]" + }, + "Eaux_AC": { + "Value": 0.13908333886000845, + "Unit": "[kWh]" + }, + "Ppos": { + "Value": 32.038994209183556, + "Unit": "[kW]" + }, + "Pneg": { + "Value": -1.2470423789832177, + "Unit": "[kW]" + }, + "FC-Map": [ + { + "Value": 6760.725, + "Unit": "[g/h]" + }, + { + "Value": 225.428345, + "Unit": "[g/km]" + } + ], + "FC-AUXc": [ + { + "Value": "-", + "Unit": "[g/h]" + }, + { + "Value": "-", + "Unit": "[g/km]" + } + ], + "FC-WHTCc": [ + { + "Value": 6698.52637, + "Unit": "[g/h]" + }, + { + "Value": 223.3544, + "Unit": "[g/km]" + } + ], + "CO2": [ + { + "Value": 705.7999, + "Unit": "[g/km]" + }, + { + "Value": 170.072266, + "Unit": "[g/tkm]" + } + ], + "FC-Final": [ + { + "Value": 223.3544, + "Unit": "[g/km]" + }, + { + "Value": 6.46879, + "Unit": "[l/100tkm]" + }, + { + "Value": 26.84548, + "Unit": "[l/100km]" + } + ], + "PwheelPos": { + "Value": 24.500979686132759, + "Unit": "[kW]" + }, + "Pbrake": { + "Value": -7.2716543908380791, + "Unit": "[kW]" + }, + "EposICE": { + "Value": 29.707267408404086, + "Unit": "[kWh]" + }, + "EnegICE": { + "Value": -1.1562854058461056, + "Unit": "[kWh]" + }, + "Eair": { + "Value": -5.918228678346857, + "Unit": "[kWh]" + }, + "Eroll": { + "Value": -8.1091753267745172, + "Unit": "[kWh]" + }, + "Egrad": { + "Value": 0.024015253752271142, + "Unit": "[kWh]" + }, + "Eacc": { + "Value": 1.557750834359063E-07, + "Unit": "[kWh]" + }, + "Eaux": { + "Value": -3.644380652639601, + "Unit": "[kWh]" + }, + "Ebrake": { + "Value": -6.7424395435048625, + "Unit": "[kWh]" + }, + "Etransm": { + "Value": -4.1608081422208087, + "Unit": "[kWh]" + }, + "Eretarder": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Etorqueconv": { + "Value": 0.0, + "Unit": "[kWh]" + }, + "Mass": { + "Value": 7750.0, + "Unit": "[kg]" + }, + "Loading": { + "Value": 4150.0, + "Unit": "[kg]" + }, + "a": { + "Value": "-1.785639E-10", + "Unit": "[m/s^2]" + }, + "a_pos": { + "Value": "0.4881508", + "Unit": "[m/s^2]" + }, + "a_neg": { + "Value": "-0.5538294", + "Unit": "[m/s^2]" + }, + "Acc.Noise": { + "Value": "0.4431113", + "Unit": "[m/s^2]" + }, + "pAcc": { + "Value": "0.2055123", + "Unit": "[%]" + }, + "pDec": { + "Value": "0.1842421", + "Unit": "[%]" + }, + "pCruise": { + "Value": "0.4218095", + "Unit": "[%]" + }, + "pStop": { + "Value": "0.1884362", + "Unit": "[%]" + } + } } ] } diff --git a/VECTO/GUI/F_MAINForm.vb b/VECTO/GUI/F_MAINForm.vb index de9f4a527480123853c655a95533f2f7994ba30e..e4d0810089d66a89c923d7e937a875269d66157b 100644 --- a/VECTO/GUI/F_MAINForm.vb +++ b/VECTO/GUI/F_MAINForm.vb @@ -480,7 +480,7 @@ Public Class F_MAINForm ModeUpdate() 'License check - If Not Lic.LICcheck() Then + If False And Not Lic.LICcheck() Then MsgBox("License File invalid!" & vbCrLf & vbCrLf & Lic.FailMsg) If Lic.CreateActFile(MyAppPath & "ActivationCode.dat") Then MsgBox("Activation File created.") diff --git a/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs b/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs index 2b8cb7808cb380a17e64964d5e9ea9eeb2d05e14..10708fe00f3d40a1a041b84b9b106c00254af891 100644 --- a/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs +++ b/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs @@ -33,13 +33,20 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl tmpVehicle.GrossVehicleMassRating, tmpVehicle.CurbWeight); var driverdata = dao.CreateDriverData(Job); driverdata.AccelerationCurve = AccelerationCurveData.ReadFromStream(segment.AccelerationFile); + + var resultCount = segment.Missions.Sum(m => m.Loadings.Count); + + var engineData = dao.CreateEngineData(Engine); + var gearboxData = dao.CreateGearboxData(Gearbox, engineData); + var report = new DeclarationReport(engineData.FullLoadCurve, segment, "CREATOR", engineData.ModelName, "engineStr", + gearboxData.ModelName, "gearboxStr", Job.BasePath, Job.JobFile, resultCount); + foreach (var mission in segment.Missions) { var cycle = DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased); foreach (var loading in mission.Loadings) { - var engineData = dao.CreateEngineData(Engine); - var simulationRunData = new VectoRunData { - VehicleData = dao.CreateVehicleData(Vehicle, mission, loading.LoadingWeight), + Loading = loading.Key, + VehicleData = dao.CreateVehicleData(Vehicle, mission, loading.Value), EngineData = engineData, GearboxData = dao.CreateGearboxData(Gearbox, engineData), Aux = dao.CreateAuxiliaryData(Aux, mission.MissionType, segment.VehicleClass), @@ -48,7 +55,9 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl IsEngineOnly = IsEngineOnly, JobFileName = Job.JobFile, BasePath = "", - ModFileSuffix = loading.Name + ModFileSuffix = loading.Key.ToString(), + Report = report, + Mission = mission, }; simulationRunData.Cycle.Name = mission.MissionType.ToString(); simulationRunData.VehicleData.VehicleClass = segment.VehicleClass; @@ -62,9 +71,8 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl try { var job = vectoJob as VectoJobFileV2Declaration; if (job == null) { - throw new VectoException( - string.Format("Unhandled Job File Format. Expected: Job File, Version 2, Declaration Mode. Got: {0}", - vectoJob.GetType())); + throw new VectoException("Unhandled Job File Format. Expected: Job File, Version 2, Declaration Mode. Got: {0}", + vectoJob.GetType()); } Vehicle = ReadVehicle(Path.Combine(job.BasePath, job.Body.VehicleFile)); Engine = ReadEngine(Path.Combine(job.BasePath, job.Body.EngineFile)); diff --git a/VectoCore/Models/Declaration/DeclarationReport.cs b/VectoCore/Models/Declaration/DeclarationReport.cs new file mode 100644 index 0000000000000000000000000000000000000000..bce841bab6952ea46766500d3b83fff4268515bd --- /dev/null +++ b/VectoCore/Models/Declaration/DeclarationReport.cs @@ -0,0 +1,527 @@ +using System; +using iTextSharp.text; +using iTextSharp.text.pdf; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Imaging; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Windows.Forms.DataVisualization.Charting; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.Utils; +using Font = System.Drawing.Font; +using Image = iTextSharp.text.Image; +using Rectangle = System.Drawing.Rectangle; + +namespace TUGraz.VectoCore.Models.Declaration +{ + public class DeclarationReport + { + private class ResultContainer + { + public Mission Mission; + public Dictionary<LoadingType, IModalDataWriter> ModData; + } + + private readonly Dictionary<MissionType, ResultContainer> _missions = new Dictionary<MissionType, ResultContainer>(); + + private readonly FullLoadCurve _flc; + private readonly Segment _segment; + + private readonly string _creator; + private readonly string _engineModel; + private readonly string _engineStr; + private readonly string _gearboxModel; + private readonly string _gearboxStr; + private readonly string _jobFile; + private readonly int _resultCount; + private readonly string _basePath; + + public DeclarationReport(FullLoadCurve flc, Segment segment, string creator, string engineModel, string engineStr, + string gearboxModel, string gearboxStr, string basePath, string jobFile, int resultCount) + { + _flc = flc; + _segment = segment; + _creator = creator; + _engineModel = engineModel; + _engineStr = engineStr; + _gearboxModel = gearboxModel; + _gearboxStr = gearboxStr; + _jobFile = jobFile; + _resultCount = resultCount; + _basePath = basePath; + } + + [MethodImpl(MethodImplOptions.Synchronized)] + public void AddResult(LoadingType loadingType, Mission mission, IModalDataWriter modData) + { + if (!_missions.ContainsKey(mission.MissionType)) { + _missions[mission.MissionType] = new ResultContainer { + Mission = mission, + ModData = new Dictionary<LoadingType, IModalDataWriter> { { loadingType, modData } } + }; + } else { + _missions[mission.MissionType].ModData[loadingType] = modData; + } + + if (_resultCount == _missions.Sum(v => v.Value.ModData.Count)) { + WriteReport(); + } + } + + private void WriteReport() + { + var titlePage = CreateTitlePage(_missions); + var cyclePages = _missions.Select((m, i) => CreateCyclePage(m.Value, i, _missions.Count)); + + MergeDocuments(titlePage, cyclePages, Path.Combine(_basePath, _jobFile + ".pdf")); + } + + private Stream CreateTitlePage(Dictionary<MissionType, ResultContainer> missions) + { + var stream = new MemoryStream(); + + var reader = + new PdfReader( + RessourceHelper.ReadStream(RessourceHelper.Namespace + + string.Format("Report.title{0}CyclesTemplate.pdf", missions.Count))); + var stamper = new PdfStamper(reader, stream); + + var pdfFields = stamper.AcroFields; + pdfFields.SetField("version", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()); + pdfFields.SetField("Job", _jobFile); + pdfFields.SetField("Date", DateTime.Now.ToString(CultureInfo.InvariantCulture)); + pdfFields.SetField("Created", _creator); + pdfFields.SetField("Config", + string.Format("{0:0.0}t {1} {2}", _segment.GrossVehicleMassRating / 1000, _segment.AxleConfiguration.GetName(), + _segment.VehicleCategory)); + pdfFields.SetField("HDVclass", "HDV Class " + _segment.VehicleClass); + pdfFields.SetField("Engine", _engineStr); + pdfFields.SetField("EngM", _engineModel); + pdfFields.SetField("Gearbox", _gearboxStr); + pdfFields.SetField("GbxM", _gearboxModel); + pdfFields.SetField("PageNr", "Page 1 of " + missions.Count); + + var i = 1; + foreach (var results in missions.Values) { + pdfFields.SetField("Mission" + i, results.Mission.MissionType.ToString()); + + var m = results.ModData[LoadingType.ReferenceLoad]; + var dt = m.GetValues<SI>(ModalResultField.simulationInterval); + var distance = m.GetValues<SI>(ModalResultField.dist).Max().Value(); + + Func<ModalResultField, double> avgWeighted = + field => m.GetValues<SI>(field).Zip(dt, (v, t) => v / t).Average().Value(); + + pdfFields.SetField("Loading" + i, results.Mission.RefLoad.Value().ToString("0.0") + " t"); + pdfFields.SetField("Speed" + i, avgWeighted(ModalResultField.v_act).ToString("0.0") + " km/h"); + + var loading = results.Mission.RefLoad.Value(); + + var fc = avgWeighted(ModalResultField.FCMap) / distance * 1000 * 100; + + // todo: calc co2 + var co2 = fc; + + pdfFields.SetField("FC" + i, fc.ToString("0.0")); + pdfFields.SetField("FCt" + i, (fc / loading).ToString("0.0")); + pdfFields.SetField("CO2" + i, co2.ToString("0.0")); + pdfFields.SetField("CO2t" + i, (co2 / loading).ToString("0.0")); + i++; + } + + // Add Images + var content = stamper.GetOverContent(1); + var img = Image.GetInstance(DrawCO2MissionsChart(missions), BaseColor.WHITE); + img.ScaleAbsolute(440, 195); + img.SetAbsolutePosition(360, 270); + content.AddImage(img); + + img = Image.GetInstance(DrawCO2SpeedChart(missions), BaseColor.WHITE); + img.ScaleAbsolute(440, 195); + img.SetAbsolutePosition(360, 75); + content.AddImage(img); + + img = + Image.GetInstance( + RessourceHelper.ReadStream(RessourceHelper.Namespace + "Report." + + GetHDVClassImageName(_segment, MissionType.LongHaul))); + img.ScaleAbsolute(180, 50); + img.SetAbsolutePosition(30, 475); + content.AddImage(img); + + stamper.FormFlattening = true; + stamper.Writer.CloseStream = false; + stamper.Close(); + + return stream; + } + + private static string GetHDVClassImageName(Segment segment, MissionType missionType) + { + switch (segment.VehicleClass) { + case VehicleClass.Class1: + case VehicleClass.Class2: + case VehicleClass.Class3: + return "4x2r.png"; + case VehicleClass.Class4: + return missionType == MissionType.LongHaul ? "4x2rt.png" : "4x2r.png"; + case VehicleClass.Class5: + return "4x2tt.png"; + case VehicleClass.Class9: + return missionType == MissionType.LongHaul ? "6x2rt.png" : "6x2r.png"; + case VehicleClass.Class10: + return "6x2tt.png"; + } + return "Undef.png"; + } + + private Stream CreateCyclePage(ResultContainer results, int i, int pgMax) + { + var stream = new MemoryStream(); + + var reader = new PdfReader(RessourceHelper.ReadStream(RessourceHelper.Namespace + "Report.cyclePageTemplate.pdf")); + var stamper = new PdfStamper(reader, stream); + + var pdfFields = stamper.AcroFields; + pdfFields.SetField("version", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()); + pdfFields.SetField("Job", _jobFile); + pdfFields.SetField("Date", DateTime.Now.ToString(CultureInfo.InvariantCulture)); + pdfFields.SetField("Created", _creator); + pdfFields.SetField("Config", + string.Format("{0:0.0}t {1} {2}", _segment.GrossVehicleMassRating / 1000, _segment.AxleConfiguration.GetName(), + _segment.VehicleCategory)); + pdfFields.SetField("HDVclass", "HDV Class " + _segment.VehicleClass); + pdfFields.SetField("PageNr", "Page " + (i + 1) + " of " + pgMax); + pdfFields.SetField("Mission", results.Mission.MissionType.ToString()); + + + foreach (var pair in results.ModData) { + var loadingType = pair.Key; + var m = pair.Value; + + var loadString = loadingType.GetShortName(); + pdfFields.SetField("Load" + loadString, results.Mission.Loadings[loadingType].Value().ToString("0.0") + " t"); + + var dt = m.GetValues<SI>(ModalResultField.simulationInterval); + var distance = m.GetValues<SI>(ModalResultField.dist).Max().Value(); + + Func<ModalResultField, double> avgWeighted = + field => m.GetValues<SI>(field).Zip(dt, (v, t) => v / t).Average().Value(); + + pdfFields.SetField("Speed" + loadString, avgWeighted(ModalResultField.v_act).ToString("0.0")); + + var fc = avgWeighted(ModalResultField.FCMap) / distance * 1000 * 100; + + // todo: calculate co2!! + var co2 = fc; + + var loading = results.Mission.Loadings[loadingType].Value(); + + pdfFields.SetField("FCkm" + loadString, fc.ToString("0.0")); + pdfFields.SetField("CO2km" + loadString, co2.ToString("0.0")); + + if (loading.IsEqual(0)) { + pdfFields.SetField("FCtkm" + loadString, "-"); + pdfFields.SetField("CO2tkm" + loadString, "-"); + } else { + pdfFields.SetField("FCtkm" + loadString, (fc / loading).ToString("0.0")); + pdfFields.SetField("CO2tkm" + loadString, (fc / loading).ToString("0.0")); + } + } + + var content = stamper.GetOverContent(1); + + var img = + Image.GetInstance( + RessourceHelper.ReadStream(RessourceHelper.Namespace + "Report." + + GetHDVClassImageName(_segment, results.Mission.MissionType))); + img.ScaleAbsolute(180, 50); + img.SetAbsolutePosition(600, 475); + content.AddImage(img); + + img = Image.GetInstance(DrawCycleChart(results), BaseColor.WHITE); + img.ScaleAbsolute(780, 156); + img.SetAbsolutePosition(17, 270); + content.AddImage(img); + + img = Image.GetInstance(DrawOperatingPointsChart(results.ModData[LoadingType.ReferenceLoad], _flc), BaseColor.WHITE); + img.ScaleAbsolute(420, 178); + img.SetAbsolutePosition(375, 75); + content.AddImage(img); + + stamper.FormFlattening = true; + + stamper.Writer.CloseStream = false; + stamper.Close(); + return stream; + } + + private static void MergeDocuments(Stream titlePage, IEnumerable<Stream> cyclePages, string outputFileName) + { + var document = new Document(PageSize.A4.Rotate(), 12, 12, 12, 12); + var writer = PdfWriter.GetInstance(document, new FileStream(outputFileName, FileMode.Create)); + + document.Open(); + + titlePage.Position = 0; + document.Add(Image.GetInstance(writer.GetImportedPage(new PdfReader(titlePage), 1))); + + foreach (var cyclePage in cyclePages) { + cyclePage.Position = 0; + document.Add(Image.GetInstance(writer.GetImportedPage(new PdfReader(cyclePage), 1))); + } + + document.Close(); + } + + private static Bitmap DrawCO2MissionsChart(Dictionary<MissionType, ResultContainer> missions) + { + var co2Chart = new Chart { Width = 1500, Height = 700 }; + co2Chart.Legends.Add(new Legend("main") { + Font = new Font("Helvetica", 20), + BorderColor = Color.Black, + BorderWidth = 3, + }); + co2Chart.ChartAreas.Add(new ChartArea { + Name = "main", + AxisX = { + Title = "Missions", + TitleFont = new Font("Helvetica", 20), + LabelStyle = { Enabled = false } + }, + AxisY = { + Title = "CO2 [g/tkm]", + TitleFont = new Font("Helvetica", 20), + LabelStyle = { Font = new Font("Helvetica", 20) }, + LabelAutoFitStyle = LabelAutoFitStyles.None + }, + BorderDashStyle = ChartDashStyle.Solid, + BorderWidth = 3 + }); + + + foreach (var missionResult in missions) { + var series = new Series(missionResult.Key + " (Ref. load.)"); + var co2sum = missionResult.Value.ModData[LoadingType.ReferenceLoad].GetValues<SI>(ModalResultField.FCMap).Sum(); + + var maxDistance = missionResult.Value.ModData[LoadingType.ReferenceLoad].GetValues<SI>(ModalResultField.dist).Max(); + var loading = missionResult.Value.Mission.Loadings[LoadingType.ReferenceLoad]; + var co2pertkm = co2sum / maxDistance / loading * 1000; + + series.Points.AddXY(missionResult.Key.ToString(), co2pertkm.Value()); + + series.Points[0].Label = series.Points[0].YValues[0].ToString("0.0") + " [g/tkm]"; + series.Points[0].Font = new Font("Helvetica", 20); + series.Points[0].LabelBackColor = Color.White; + + co2Chart.Series.Add(series); + } + + co2Chart.Update(); + + var chartCO2tkm = new Bitmap(co2Chart.Width, co2Chart.Height, PixelFormat.Format32bppArgb); + co2Chart.DrawToBitmap(chartCO2tkm, new Rectangle(0, 0, chartCO2tkm.Width, chartCO2tkm.Height)); + return chartCO2tkm; + } + + private static Bitmap DrawCO2SpeedChart(Dictionary<MissionType, ResultContainer> missions) + { + var co2speedChart = new Chart { Width = 1500, Height = 700 }; + co2speedChart.Legends.Add(new Legend("main") { + Font = new Font("Helvetica", 20), + BorderColor = Color.Black, + BorderWidth = 3, + }); + co2speedChart.ChartAreas.Add(new ChartArea("main") { + BorderDashStyle = ChartDashStyle.Solid, + BorderWidth = 3, + AxisX = { + Title = "vehicle speed [km/h]", + TitleFont = new Font("Helvetica", 20), + LabelStyle = { Font = new Font("Helvetica", 20) }, + LabelAutoFitStyle = LabelAutoFitStyles.None, + Minimum = 20.0, + }, + AxisY = { + Title = "CO2 [g/km]", + TitleFont = new Font("Helvetica", 20), + LabelStyle = { Font = new Font("Helvetica", 20) }, + LabelAutoFitStyle = LabelAutoFitStyles.None + } + }); + + foreach (var missionResult in missions) { + var series = new Series { MarkerSize = 15, MarkerStyle = MarkerStyle.Circle, ChartType = SeriesChartType.Point }; + foreach (var pair in missionResult.Value.ModData) { + var dt = pair.Value.GetValues<SI>(ModalResultField.simulationInterval).ToDouble(); + var speed = pair.Value.GetValues<SI>(ModalResultField.v_act).ToDouble(); + var distance = pair.Value.GetValues<SI>(ModalResultField.dist).Max().Value(); + + //todo get co2 value + var co2 = pair.Value.GetValues<SI>(ModalResultField.FCMap).ToDouble(); + + var avgSpeed = speed.Zip(dt, (v, t) => v / t).Average(); + var avgCO2km = co2.Zip(dt, (co, t) => co / t).Average() / distance * 1000; + + var loading = missionResult.Value.Mission.Loadings[pair.Key]; + + var point = new DataPoint(avgSpeed, avgCO2km) { + Label = loading.Value().ToString("0.0") + " t", + Font = new Font("Helvetica", 16), + LabelBackColor = Color.White + }; + + if (pair.Key != LoadingType.ReferenceLoad) { + point.MarkerSize = 10; + point.Font = new Font("Helvetica", 14); + } + series.Points.Add(point); + } + series.Name = missionResult.Key.ToString(); + co2speedChart.Series.Add(series); + } + + co2speedChart.Update(); + var chartCO2speed = new Bitmap(co2speedChart.Width, co2speedChart.Height, PixelFormat.Format32bppArgb); + co2speedChart.DrawToBitmap(chartCO2speed, new Rectangle(0, 0, co2speedChart.Width, co2speedChart.Height)); + return chartCO2speed; + } + + private static Bitmap DrawCycleChart(ResultContainer results) + { + var missionCycleChart = new Chart { Width = 2000, Height = 400 }; + missionCycleChart.Legends.Add(new Legend("main") { + Font = new Font("Helvetica", 14), + BorderColor = Color.Black, + BorderWidth = 3, + Position = { X = 97, Y = 3, Width = 10, Height = 40 } + }); + + missionCycleChart.ChartAreas.Add(new ChartArea { + Name = "main", + BorderDashStyle = ChartDashStyle.Solid, + BorderWidth = 3, + AxisX = { + Title = "distance [km]", + TitleFont = new Font("Helvetica", 16), + LabelStyle = { Font = new Font("Helvetica", 16), Format = "0.0" }, + LabelAutoFitStyle = LabelAutoFitStyles.None, + Minimum = 0 + }, + AxisY = { + Title = "vehicle speed [km/h]", + TitleFont = new Font("Helvetica", 16), + LabelStyle = { Font = new Font("Helvetica", 16) }, + LabelAutoFitStyle = LabelAutoFitStyles.None + }, + AxisY2 = { + Title = "altitude [m]", + TitleFont = new Font("Helvetica", 16), + LabelStyle = { Font = new Font("Helvetica", 16) }, + LabelAutoFitStyle = LabelAutoFitStyles.None, + MinorGrid = { Enabled = false }, + MajorGrid = { Enabled = false } + }, + Position = { X = 0f, Y = 0f, Width = 90f, Height = 100f }, + }); + + var altitude = new Series { + ChartType = SeriesChartType.Area, + Color = Color.Lavender, + Name = "Altitude", + YAxisType = AxisType.Secondary + }; + + var distance = results.ModData.First().Value.GetValues<SI>(ModalResultField.dist).ToDouble(); + var altitudeValues = results.ModData.First().Value.GetValues<SI>(ModalResultField.altitude).ToDouble(); + + altitude.Points.DataBindXY(distance, altitudeValues); + missionCycleChart.Series.Add(altitude); + + var targetSpeed = new Series { ChartType = SeriesChartType.FastLine, BorderWidth = 3, Name = "Target speed" }; + targetSpeed.Points.DataBindXY(distance, + results.ModData.First().Value.GetValues<SI>(ModalResultField.v_targ).ToDouble()); + missionCycleChart.Series.Add(targetSpeed); + + foreach (var result in results.ModData) { + var name = result.Key.ToString(); + var values = result.Value; + + var series = new Series { ChartType = SeriesChartType.FastLine, Name = name }; + series.Points.DataBindXY(values.GetValues<SI>(ModalResultField.dist).ToDouble(), + values.GetValues<SI>(ModalResultField.v_act).ToDouble()); + missionCycleChart.Series.Add(series); + } + missionCycleChart.Update(); + + var cycleChart = new Bitmap(missionCycleChart.Width, missionCycleChart.Height, PixelFormat.Format32bppArgb); + missionCycleChart.DrawToBitmap(cycleChart, new Rectangle(0, 0, missionCycleChart.Width, missionCycleChart.Height)); + return cycleChart; + } + + private static Bitmap DrawOperatingPointsChart(IModalDataWriter modData, FullLoadCurve flc) + { + var operatingPointsChart = new Chart { Width = 1000, Height = 427 }; + operatingPointsChart.Legends.Add(new Legend("main") { + Font = new Font("Helvetica", 14), + BorderColor = Color.Black, + BorderWidth = 3 + }); + + operatingPointsChart.ChartAreas.Add(new ChartArea("main") { + BorderDashStyle = ChartDashStyle.Solid, + BorderWidth = 3, + AxisX = { + Title = "engine speed [1/min]", + TitleFont = new Font("Helvetica", 20), + LabelStyle = { Font = new Font("Helvetica", 20) }, + LabelAutoFitStyle = LabelAutoFitStyles.None, + Minimum = 300.0 + }, + AxisY = { + Title = "engine torque [Nm]", + TitleFont = new Font("Helvetica", 20), + LabelStyle = { Font = new Font("Helvetica", 20) }, + LabelAutoFitStyle = LabelAutoFitStyles.None + }, + Position = { X = 0, Y = 0, Width = 70, Height = 100 } + }); + + var n = flc.FullLoadEntries.Select(x => x.EngineSpeed.ConvertTo().Rounds.Per.Minute).ToDouble(); + var torqueFull = flc.FullLoadEntries.Select(x => x.TorqueFullLoad).ToDouble(); + var torqueDrag = flc.FullLoadEntries.Select(x => x.TorqueDrag).ToDouble(); + + var fullLoadCurve = new Series("Full load curve") { + ChartType = SeriesChartType.FastLine, + BorderWidth = 3, + Color = Color.DarkBlue + }; + fullLoadCurve.Points.DataBindXY(n, torqueFull); + operatingPointsChart.Series.Add(fullLoadCurve); + + var dragLoadCurve = new Series("Drag curve") { + ChartType = SeriesChartType.FastLine, + BorderWidth = 3, + Color = Color.Blue + }; + dragLoadCurve.Points.DataBindXY(n, torqueDrag); + operatingPointsChart.Series.Add(dragLoadCurve); + + var dataPoints = new Series("load points (Ref. load.)") { ChartType = SeriesChartType.Point, Color = Color.Red }; + dataPoints.Points.DataBindXY( + modData.GetValues<SI>(ModalResultField.n).Select(x => x.ConvertTo().Rounds.Per.Minute).ToDouble(), + modData.GetValues<SI>(ModalResultField.Tq_eng).ToDouble()); + operatingPointsChart.Series.Add(dataPoints); + + operatingPointsChart.Update(); + + var tqnBitmap = new Bitmap(operatingPointsChart.Width, operatingPointsChart.Height, PixelFormat.Format32bppArgb); + operatingPointsChart.DrawToBitmap(tqnBitmap, new Rectangle(0, 0, tqnBitmap.Width, tqnBitmap.Height)); + return tqnBitmap; + } + } +} \ No newline at end of file diff --git a/VectoCore/Models/Declaration/Mission.cs b/VectoCore/Models/Declaration/Mission.cs index be6b86957d73d0a34e4a392ff69e03499d5af51f..9e303beb061e7991b8c7703b380fa746174148f0 100644 --- a/VectoCore/Models/Declaration/Mission.cs +++ b/VectoCore/Models/Declaration/Mission.cs @@ -4,6 +4,22 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.Models.Declaration { + public enum LoadingType + { + FullLoading, + ReferenceLoad, + EmptyLoading, + } + + public static class LoadingTypeHelper + { + public static string GetShortName(this LoadingType loadingType) + { + return loadingType.ToString().Substring(0, 1); + } + } + + public class Mission { public MissionType MissionType { get; set; } @@ -17,14 +33,14 @@ namespace TUGraz.VectoCore.Models.Declaration public Kilogram RefLoad { get; set; } public Kilogram MaxLoad { get; set; } - public IEnumerable<LoadingEntry> Loadings + public Dictionary<LoadingType, Kilogram> Loadings { get { - return new[] { - new LoadingEntry() { LoadingWeight = MinLoad, Name = "EmptyLoading" }, - new LoadingEntry() { LoadingWeight = RefLoad, Name = "ReferenceLoad" }, - new LoadingEntry() { LoadingWeight = MaxLoad, Name = "FullLoading" } + return new Dictionary<LoadingType, Kilogram> { + { LoadingType.EmptyLoading, MinLoad }, + { LoadingType.ReferenceLoad, RefLoad }, + { LoadingType.FullLoading, MaxLoad } }; } } diff --git a/VectoCore/Models/Declaration/Segment.cs b/VectoCore/Models/Declaration/Segment.cs index 4c84703eb8b3fc1e58af53c6da5aa1badc3c7f31..55521c212ec9ded83cfd70f954ba871a17e42272 100644 --- a/VectoCore/Models/Declaration/Segment.cs +++ b/VectoCore/Models/Declaration/Segment.cs @@ -14,6 +14,8 @@ namespace TUGraz.VectoCore.Models.Declaration public Kilogram GrossVehicleWeightMax { get; set; } + public Kilogram GrossVehicleMassRating { get; set; } + public VehicleClass VehicleClass { get; internal set; } public Stream AccelerationFile { get; internal set; } diff --git a/VectoCore/Models/Declaration/Segments.cs b/VectoCore/Models/Declaration/Segments.cs index 394649ab6382ce4fb3414715676130750041778b..ae61bdeb2dc5e7b6988863ba2112fca6b751de32 100644 --- a/VectoCore/Models/Declaration/Segments.cs +++ b/VectoCore/Models/Declaration/Segments.cs @@ -8,14 +8,11 @@ namespace TUGraz.VectoCore.Models.Declaration { public class Segments : LookupData<VehicleCategory, AxleConfiguration, Kilogram, Kilogram, Segment> { - private const string ResourceNamespace = "TUGraz.VectoCore.Resources.Declaration."; - public Segments() { - ParseData(ReadCsvResource(ResourceNamespace + "SegmentTable.csv")); + ParseData(ReadCsvResource(RessourceHelper.Namespace + "SegmentTable.csv")); } - protected override void ParseData(DataTable table) { // normalize column names, remove whitespaces and lowercase @@ -43,8 +40,9 @@ namespace TUGraz.VectoCore.Models.Declaration VehicleCategory = vehicleCategory, AxleConfiguration = axleConfiguration, VehicleClass = VehicleClassHelper.Parse(row.Field<string>("hdvclass")), - AccelerationFile = RessourceHelper.ReadStream(ResourceNamespace + "VACC." + row.Field<string>(".vaccfile")), - Missions = CreateMissions(grossVehicleMassRating, curbWeight, row).ToArray() + AccelerationFile = RessourceHelper.ReadStream(RessourceHelper.Namespace + "VACC." + row.Field<string>(".vaccfile")), + Missions = CreateMissions(grossVehicleMassRating, curbWeight, row).ToArray(), + GrossVehicleMassRating = grossVehicleMassRating }; return segment; @@ -76,7 +74,7 @@ namespace TUGraz.VectoCore.Models.Declaration MissionType = missionType, CrossWindCorrection = row.Field<string>(vcdvField), MassExtra = row.ParseDouble("massextra-" + missionType.ToString().ToLower()).SI<Kilogram>(), - CycleFile = RessourceHelper.ReadStream(ResourceNamespace + "MissionCycles." + missionType + ".vdri"), + CycleFile = RessourceHelper.ReadStream(RessourceHelper.Namespace + "MissionCycles." + missionType + ".vdri"), AxleWeightDistribution = row.Field<string>(axleField).Split('/').ToDouble().Select(x => x / 100.0).ToArray(), UseCdA2 = trailerOnlyInLongHaul && missionType != MissionType.LongHaul, }; diff --git a/VectoCore/Models/Simulation/Data/ModalDataWriter.cs b/VectoCore/Models/Simulation/Data/ModalDataWriter.cs index 42c2dca39a02bbd1800565d59229e5f5645240ee..4ef22cbfa0a3e84fc1cb069600c81f67f69e888e 100644 --- a/VectoCore/Models/Simulation/Data/ModalDataWriter.cs +++ b/VectoCore/Models/Simulation/Data/ModalDataWriter.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Data; using System.Linq; using TUGraz.VectoCore.Models.Simulation.Impl; @@ -9,12 +10,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Data public class ModalDataWriter : IModalDataWriter { private readonly SimulatorFactory.FactoryMode _mode; + private readonly Action<ModalDataWriter> _addReportResult; private ModalResults Data { get; set; } private DataRow CurrentRow { get; set; } private string ModFileName { get; set; } + public ModalDataWriter(string modFileName, + SimulatorFactory.FactoryMode mode = SimulatorFactory.FactoryMode.EngineeringMode) : this(modFileName, _ => {}, mode) {} - public ModalDataWriter(string modFileName, SimulatorFactory.FactoryMode mode = SimulatorFactory.FactoryMode.EngineeringMode) + public ModalDataWriter(string modFileName, Action<ModalDataWriter> addReportResult, + SimulatorFactory.FactoryMode mode = SimulatorFactory.FactoryMode.EngineeringMode) { HasTorqueConverter = false; ModFileName = modFileName; @@ -22,6 +27,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data Auxiliaries = new Dictionary<string, DataColumn>(); CurrentRow = Data.NewRow(); _mode = mode; + _addReportResult = addReportResult; } public bool HasTorqueConverter { get; set; } @@ -93,6 +99,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Data if (_mode != SimulatorFactory.FactoryMode.DeclarationMode) { VectoCSVFile.Write(ModFileName, new DataView(Data).ToTable(false, strCols.ToArray())); } + + if (_mode == SimulatorFactory.FactoryMode.DeclarationMode) { + _addReportResult(this); + } } diff --git a/VectoCore/Models/Simulation/Data/ModalResult.cs b/VectoCore/Models/Simulation/Data/ModalResult.cs index 04fd573d7e6b92b0a0c6de221fe933a3df9bd986..a45ce1996027e76b216379675fa3ae4e63fb4202 100644 --- a/VectoCore/Models/Simulation/Data/ModalResult.cs +++ b/VectoCore/Models/Simulation/Data/ModalResult.cs @@ -266,6 +266,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Data /// [1/min] Torque converter output speed /// </summary> [ModalResultField(typeof(SI))] TC_n_Out, + + /// <summary> + /// [m] Altitude + /// </summary> + [ModalResultField(typeof(SI))] altitude, } diff --git a/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs b/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs index 78b5071f4db551554d8dc10c8ad2f9edf5e8dd4f..a712fdb818b518fd4029fd6adea8ca5f02469cb8 100644 --- a/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs +++ b/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs @@ -4,6 +4,8 @@ using System.Data; using System.Globalization; using System.Linq; using System.Linq.Expressions; +using System.Runtime.CompilerServices; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Utils; @@ -107,6 +109,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data _table.Rows.Add(row); } + [MethodImpl(MethodImplOptions.Synchronized)] private void WriteAuxiliaries(IModalDataWriter data, DataRow row) { _auxColumns = _auxColumns.Union(data.Auxiliaries.Select(kv => "Eaux_" + kv.Key + " [kWh]")).ToList(); @@ -114,10 +117,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Data var sum = 0.SI<Watt>(); foreach (var aux in data.Auxiliaries) { var colName = "Eaux_" + aux.Key + " [kWh]"; - try { + if (!_table.Columns.Contains(colName)) { _table.Columns.Add(colName, typeof(SI)); - } catch (DuplicateNameException) {} - + } var currentSum = data.Sum(aux.Value); row[colName] = currentSum; @@ -167,9 +169,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Data row[EACC] = paeng ?? 0.SI() + pagb ?? 0.SI(); } - //todo altitude - calculate when reading the cycle file, add column for altitude - //row["∆altitude [m]"] = Data.Rows[Data.Rows.Count - 1].Field<double>("altitude") - - // Data.Rows[0].Field<double>("altitude"); + row[ALTITUDE] = data.GetValues<SI>(ModalResultField.altitude).Last() - + data.GetValues<SI>(ModalResultField.altitude).First(); WriteAuxiliaries(data, row); diff --git a/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/Models/Simulation/Data/VectoRunData.cs index 7e424c73a5d180c791a6e69eb9cd0e571b978c80..6ecf013f7f2f958d38ae135b5c7b89fc31afeb02 100644 --- a/VectoCore/Models/Simulation/Data/VectoRunData.cs +++ b/VectoCore/Models/Simulation/Data/VectoRunData.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Runtime.Serialization; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.Utils; @@ -35,6 +36,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Data public string BasePath { get; set; } public string ModFileSuffix { get; set; } + public DeclarationReport Report { get; set; } + public LoadingType Loading { get; set; } + public Mission Mission { get; set; } public class AuxData diff --git a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs index ff00c7f47f443e1b78589ba83ee47d2745d15311..d60fba5a64bd8ea175cc7b17bcdb8951a1c103db 100644 --- a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs @@ -42,20 +42,6 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl DataReader.SetJobFile(jobFile); } - ///// <summary> - ///// Creates a simulation run for time based engine only powertrain. - ///// </summary> - //public static IVectoRun CreateTimeBasedEngineOnlyRun(string engineFile, string cycleName, string jobFileName, - // string jobName, IModalDataWriter dataWriter, SummaryFileWriter sumWriter) - //{ - // var sumWriterDecorator = new SumWriterDecoratorEngineOnly(sumWriter, jobFileName, jobName, cycleName); - // var builder = new PowertrainBuilder(dataWriter, sumWriterDecorator, engineOnly: true); - - // // @@@ TODO: builder.AddEngine(engineFile); - - // return builder.Build(cycleName); - //} - public ISimulationDataReader DataReader { get; private set; } public SummaryFileWriter SumWriter { get; set; } @@ -73,8 +59,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var modFileName = Path.Combine(data.BasePath, data.JobFileName.Replace(Constants.FileExtensions.VectoJobFile, "") + "_{0}{1}" + Constants.FileExtensions.ModDataFile); + var d = data; IModalDataWriter modWriter = - new ModalDataWriter(string.Format(modFileName, data.Cycle.Name, data.ModFileSuffix ?? ""), _mode); + new ModalDataWriter(string.Format(modFileName, data.Cycle.Name, data.ModFileSuffix ?? ""), + writer => d.Report.AddResult(d.Loading, d.Mission, writer), _mode); var jobName = string.Format("{0}-{1}", JobNumber, i++); var sumWriterDecorator = DecorateSumWriter(data.IsEngineOnly, SumWriter, data.JobFileName, jobName, data.Cycle.Name); var builder = new PowertrainBuilder(modWriter, sumWriterDecorator, DataReader.IsEngineOnly); diff --git a/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/Models/Simulation/Impl/VehicleContainer.cs index 944abb8c7c4bb8eb9ab26940e042d748cc669895..e49344a5e635bc5bf7a6f5d968909d47a712b4db 100644 --- a/VectoCore/Models/Simulation/Impl/VehicleContainer.cs +++ b/VectoCore/Models/Simulation/Impl/VehicleContainer.cs @@ -3,6 +3,7 @@ using System.Collections.ObjectModel; using System.Diagnostics; using TUGraz.VectoCore.Exceptions; using TUGraz.VectoCore.Models.Connector.Ports; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; using TUGraz.VectoCore.Models.SimulationComponent; diff --git a/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs index 00653dce01878b94aed27dedd873ad440786eb02..71ecb2ab45217c6e6228472a78fdf0202f9d653d 100644 --- a/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs +++ b/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs @@ -130,6 +130,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl CurrentState.AbsTime = PreviousState.AbsTime + dt; CurrentState.WaitTime = PreviousState.WaitTime + dt; CurrentState.Gradient = ComputeGradient(); + CurrentState.VehicleTargetSpeed = CycleIntervalIterator.LeftSample.VehicleTargetSpeed; return NextComponent.Request(absTime, dt, CycleIntervalIterator.LeftSample.VehicleTargetSpeed, CurrentState.Gradient); } @@ -219,6 +220,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl writer[ModalResultField.dist] = CurrentState.Distance; writer[ModalResultField.v_targ] = CurrentState.VehicleTargetSpeed; writer[ModalResultField.grad] = (Math.Tan(CurrentState.Gradient.Value()) * 100).SI<Scalar>(); + writer[ModalResultField.altitude] = CurrentState.Altitude; } protected override void DoCommitSimulationStep() diff --git a/VectoCore/Resources/Declaration/Report/4x2r.png b/VectoCore/Resources/Declaration/Report/4x2r.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9743755e507850624ac7d2868b96bfc2d1a412 Binary files /dev/null and b/VectoCore/Resources/Declaration/Report/4x2r.png differ diff --git a/VectoCore/Resources/Declaration/Report/4x2rt.png b/VectoCore/Resources/Declaration/Report/4x2rt.png new file mode 100644 index 0000000000000000000000000000000000000000..6aeb34d129142c4a2b55f7250e34a521b96d873d Binary files /dev/null and b/VectoCore/Resources/Declaration/Report/4x2rt.png differ diff --git a/VectoCore/Resources/Declaration/Report/4x2tt.png b/VectoCore/Resources/Declaration/Report/4x2tt.png new file mode 100644 index 0000000000000000000000000000000000000000..6e1b64fa88c12d870aab871bcb700bc150cd5864 Binary files /dev/null and b/VectoCore/Resources/Declaration/Report/4x2tt.png differ diff --git a/VectoCore/Resources/Declaration/Report/6x2r.png b/VectoCore/Resources/Declaration/Report/6x2r.png new file mode 100644 index 0000000000000000000000000000000000000000..290259e37a61c522ea7fe4bb018015dc69a55dbf Binary files /dev/null and b/VectoCore/Resources/Declaration/Report/6x2r.png differ diff --git a/VectoCore/Resources/Declaration/Report/6x2rt.png b/VectoCore/Resources/Declaration/Report/6x2rt.png new file mode 100644 index 0000000000000000000000000000000000000000..b078dbaf65a61c3922321209b7271f3d046ec427 Binary files /dev/null and b/VectoCore/Resources/Declaration/Report/6x2rt.png differ diff --git a/VectoCore/Resources/Declaration/Report/6x2tt.png b/VectoCore/Resources/Declaration/Report/6x2tt.png new file mode 100644 index 0000000000000000000000000000000000000000..d752ac94daf159eb6f33dc612f3b9a8f57cdb23a Binary files /dev/null and b/VectoCore/Resources/Declaration/Report/6x2tt.png differ diff --git a/VectoCore/Resources/Declaration/Report/Undef.png b/VectoCore/Resources/Declaration/Report/Undef.png new file mode 100644 index 0000000000000000000000000000000000000000..7357fd75808d2e83fa30dee4a767ccfad443f416 Binary files /dev/null and b/VectoCore/Resources/Declaration/Report/Undef.png differ diff --git a/VectoCore/Resources/Declaration/Report/cyclePageTemplate.pdf b/VectoCore/Resources/Declaration/Report/cyclePageTemplate.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3ee3d13b9fb50d53ed644539d09a167b9ddf09da Binary files /dev/null and b/VectoCore/Resources/Declaration/Report/cyclePageTemplate.pdf differ diff --git a/VectoCore/Resources/Declaration/Report/title2CyclesTemplate.pdf b/VectoCore/Resources/Declaration/Report/title2CyclesTemplate.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a915d8395f2b0354d9faed62217cdb613b7c9f17 Binary files /dev/null and b/VectoCore/Resources/Declaration/Report/title2CyclesTemplate.pdf differ diff --git a/VectoCore/Resources/Declaration/Report/title3CyclesTemplate.pdf b/VectoCore/Resources/Declaration/Report/title3CyclesTemplate.pdf new file mode 100644 index 0000000000000000000000000000000000000000..52eb20016fad493740e8937fe76130e83c446254 Binary files /dev/null and b/VectoCore/Resources/Declaration/Report/title3CyclesTemplate.pdf differ diff --git a/VectoCore/Utils/IEnumberableExtensionMethods.cs b/VectoCore/Utils/IEnumberableExtensionMethods.cs index 1d0b63bd9b928b411971b19fa79330af0e331397..d4fdb9fd98923178d8fa0281c83dee6dcdeca63e 100644 --- a/VectoCore/Utils/IEnumberableExtensionMethods.cs +++ b/VectoCore/Utils/IEnumberableExtensionMethods.cs @@ -12,9 +12,9 @@ namespace TUGraz.VectoCore.Utils return self.Select(StringExtensionMethods.ToDouble); } - public static IEnumerable<double> ToDouble(this IEnumerable<SI> self) + public static IList<double> ToDouble(this IEnumerable<SI> self) { - return self.Select(x => x.Value()); + return self.Select(x => x.Value()).ToList(); } /// <summary> diff --git a/VectoCore/Utils/RessourceHelper.cs b/VectoCore/Utils/RessourceHelper.cs index 29ca9f6339d524b2636a3ae19b6fc4ddfbc44184..e0e5d043e19227a001051af3e610c48e44184e97 100644 --- a/VectoCore/Utils/RessourceHelper.cs +++ b/VectoCore/Utils/RessourceHelper.cs @@ -6,6 +6,8 @@ namespace TUGraz.VectoCore.Utils { public static class RessourceHelper { + public const string Namespace = "TUGraz.VectoCore.Resources.Declaration."; + public static Stream ReadStream(string resourceName) { var assembly = Assembly.GetExecutingAssembly(); diff --git a/VectoCore/Utils/SI.cs b/VectoCore/Utils/SI.cs index 7d3b876fcb4f5798c9320198a585fce41904eba9..c6691b6c288e7eae241977dff0531c30c0a885ac 100644 --- a/VectoCore/Utils/SI.cs +++ b/VectoCore/Utils/SI.cs @@ -7,6 +7,7 @@ using System.Globalization; using System.Linq; using System.Linq.Expressions; using System.Reflection; +using System.Runtime.CompilerServices; using System.Runtime.Serialization; using Newtonsoft.Json; using TUGraz.VectoCore.Exceptions; @@ -458,6 +459,7 @@ namespace TUGraz.VectoCore.Utils /// </summary> /// <param name="val">The value of the SI object.</param> [DebuggerHidden] + [MethodImpl(MethodImplOptions.Synchronized)] public static T Create(double val) { if (!Constructors.ContainsKey(typeof(T))) { diff --git a/VectoCore/VectoCore.csproj b/VectoCore/VectoCore.csproj index 6575bb3606fc880f1c34ece98efd36cb60342c4a..765e6bf46630c3013919656c21a8020ffb442b2c 100644 --- a/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore.csproj @@ -78,6 +78,9 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> + <Reference Include="itextsharp"> + <HintPath>..\packages\iTextSharp.5.5.7\lib\itextsharp.dll</HintPath> + </Reference> <Reference Include="JetBrains.Annotations"> <HintPath>..\packages\JetBrains.Annotations.9.2.0\lib\net20\JetBrains.Annotations.dll</HintPath> </Reference> @@ -93,6 +96,8 @@ <Reference Include="System.Core" /> <Reference Include="System.Drawing" /> <Reference Include="System.Runtime.Serialization" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Windows.Forms.DataVisualization" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> <Reference Include="Microsoft.CSharp" /> @@ -134,6 +139,7 @@ <Compile Include="Models\Declaration\HVAC.cs" /> <Compile Include="Models\Declaration\PneumaticSystem.cs" /> <Compile Include="Models\Declaration\PT1.cs" /> + <Compile Include="Models\Declaration\DeclarationReport.cs" /> <Compile Include="Models\Declaration\Rims.cs" /> <Compile Include="Models\Declaration\Segments.cs" /> <Compile Include="Models\Declaration\SteeringPump.cs" /> @@ -280,6 +286,18 @@ <EmbeddedResource Include="Resources\Declaration\VCDV\parameters.csv" /> <EmbeddedResource Include="Resources\Declaration\WHTC-Weighting-Factors.csv" /> <EmbeddedResource Include="Resources\Declaration\VAUX\ALT-Tech.csv" /> + <EmbeddedResource Include="Resources\Declaration\Report\cyclePageTemplate.pdf" /> + <EmbeddedResource Include="Resources\Declaration\Report\title2CyclesTemplate.pdf" /> + <EmbeddedResource Include="Resources\Declaration\Report\title3CyclesTemplate.pdf" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Resources\Declaration\Report\4x2r.png" /> + <EmbeddedResource Include="Resources\Declaration\Report\4x2rt.png" /> + <EmbeddedResource Include="Resources\Declaration\Report\4x2tt.png" /> + <EmbeddedResource Include="Resources\Declaration\Report\6x2r.png" /> + <EmbeddedResource Include="Resources\Declaration\Report\6x2rt.png" /> + <EmbeddedResource Include="Resources\Declaration\Report\6x2tt.png" /> + <EmbeddedResource Include="Resources\Declaration\Report\Undef.png" /> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/VectoCore/packages.config b/VectoCore/packages.config index 93d893d176e2019d115b1dfe736c093029ece7aa..7f4d447004ab9d6182fd2824e4d1344721a249a4 100644 --- a/VectoCore/packages.config +++ b/VectoCore/packages.config @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <packages> + <package id="iTextSharp" version="5.5.7" targetFramework="net45" /> <package id="JetBrains.Annotations" version="9.2.0" targetFramework="net45" /> <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net45" /> <package id="NLog" version="4.0.1" targetFramework="net45" /> diff --git a/VectoCoreTest/Integration/DeclarationReportTest.cs b/VectoCoreTest/Integration/DeclarationReportTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..f720b4e69349761056c105979b7a8b33b441f156 --- /dev/null +++ b/VectoCoreTest/Integration/DeclarationReportTest.cs @@ -0,0 +1,27 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.Impl; + +namespace TUGraz.VectoCore.Tests.Integration +{ + [TestClass] + public class DeclarationReportTest + { + [TestMethod] + public void RunDeclarationMode() + { + var sumWriter = new SummaryFileWriter(@"job-report.vsum"); + var jobContainer = new JobContainer(sumWriter); + + var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode, @"TestData\Jobs\job-report.vecto"); + + jobContainer.AddRuns(factory); + jobContainer.Execute(); + + //ResultFileHelper.TestSumFile(@"TestData\Results\Integration\job.vsum", @"job.vsum"); + + //ResultFileHelper.TestModFile(@"TestData\Results\Integration\job_1-Gear-Test-dist.vmod", + // @"TestData\job_1-Gear-Test-dist.vmod", testRowCount: false); + } + } +} \ No newline at end of file diff --git a/VectoCoreTest/TestData/Components/12t Delivery Truck.vgbx b/VectoCoreTest/TestData/Components/12t Delivery Truck.vgbx index 922993ec9fa7193115dfba9b6965be547e87cf62..3598d8824c2a7f164603168b0767ffd7f4269df9 100644 --- a/VectoCoreTest/TestData/Components/12t Delivery Truck.vgbx +++ b/VectoCoreTest/TestData/Components/12t Delivery Truck.vgbx @@ -65,7 +65,7 @@ "StartTqReserve": 20.0, "StartSpeed": 2.0, "StartAcc": 0.6, - "GearboxType": "MT", + "GearboxType": "AMT", "TorqueConverter": { "Enabled": false, "File": "<NOFILE>", diff --git a/VectoCoreTest/TestData/Integration/DriverStrategy/Vecto2.2/40t Truck/40t_Long_Haul_Truck.vsum b/VectoCoreTest/TestData/Integration/DriverStrategy/Vecto2.2/40t Truck/40t_Long_Haul_Truck.vsum index d7395d29e2fca286a234bbdbe12147b0a5b61ee7..5f282702bb03ef11d7184d19c80927b47f919764 100644 --- a/VectoCoreTest/TestData/Integration/DriverStrategy/Vecto2.2/40t Truck/40t_Long_Haul_Truck.vsum +++ b/VectoCoreTest/TestData/Integration/DriverStrategy/Vecto2.2/40t Truck/40t_Long_Haul_Truck.vsum @@ -1,44 +1 @@ -Job [-],Input File [-],Cycle [-],time [s],distance [km],speed [km/h],∆altitude [m],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,40t_Long_Haul_Truck.vecto,Cycle_AccelerateAtBrake_80_0_level.vdri,58,0.9874753,61.29157,0,52.6868657079236,-6.83727843597018,10118,165.0799,-,-,-,-,521.6524,27.02862,165.0799,1.028048,19.84133,48.238155233449,-127.876702604623,0.848843947516547,-0.110156152579519,-0.424423063731972,-0.538527222424746,0,2.39143487930298,0,-2.06023576418559,-0.104575687845548,0,0,14600,19300,-0.3831418,0.1910066,-0.7044746,0.4179549,0.05172414,0.5517241,0.3793103,0.01724138 -1,40t_Long_Haul_Truck.vecto,Cycle_AccelerateBeforeBrake_80_0_level.vdri,58,0.9881617,61.33418,0,54.6313821200667,-7.23140326270769,10502.94,171.2412,-,-,-,-,541.1221,28.03742,171.2412,1.066418,20.58187,50.2003144889042,-129.157337386033,0.880172267489963,-0.116505941454735,-0.427925734858094,-0.538901608188947,0,2.39143480857213,0,-2.08086821344164,-0.106226928995715,0,0,14600,19300,-0.3831418,0.1990935,-0.6940194,0.425371,0.06896552,0.5689655,0.3448276,0.01724138 -1,40t_Long_Haul_Truck.vecto,Cycle_AccelerateWhileBrake_80_0_level.vdri,61,0.9874105,58.27341,0,40.0263756923988,-6.37961569184163,7774.099,133.4073,-,-,-,-,421.5671,21.84286,133.4073,0.8308049,16.03453,36.0954594846632,-112.1656855677,0.678224699232313,-0.108099043667316,-0.421130959505163,-0.538491919396652,0,2.39143470896615,0,-1.90058522767491,-0.0989640723003282,0,0,14600,19300,-0.3642987,0,-0.6669721,0.3846135,0,0.5409836,0.4262295,0.03278688 -1,40t_Long_Haul_Truck.vecto,Cycle_Accelerate_0_20_downhill_5.vdri,58,0.2940977,18.25434,-14.70488,4.32688265833361,-9.61993741989136,1018.974,55.8209,-,-,-,-,176.3941,9.139589,55.8209,0.3476292,6.709243,3.85228660188872,-56.9065512295427,0.0697108872731527,-0.154987880653805,-0.00913936651724927,-0.160188318259186,1.35670551406013,-0.150897967451149,0,-0.916827769809299,-0.0343751315606965,0,0,14600,19300,0.09578544,0.6701862,-0.1392673,0.2841256,0.137931,0.01724138,0.8103448,0.03448276 -1,40t_Long_Haul_Truck.vecto,Cycle_Accelerate_0_20_level.vdri,59,0.295864,18.05272,0,21.7139404102907,0,5083.367,281.5845,-,-,-,-,889.8071,46.104,281.5845,1.75359,33.84429,19.488873740374,0,0.355867356724209,0,-0.00905146582361744,-0.161351744780938,0,-0.149306959918726,0,0,-0.0361572140124109,0,0,14600,19300,0.09416196,0.5202299,0,0.2919045,0.1694915,0,0.7966102,0.03389831 -1,40t_Long_Haul_Truck.vecto,Cycle_DecelerateWhileBrake_80_0_level.vdri,62,0.988534,57.39875,0,19.2480812688028,-8.6301227658987,4097.946,71.39434,-,-,-,-,225.6061,11.68944,71.39434,0.4446141,8.581051,17.2578307736304,-89.548487763251,0.331494732962714,-0.148629892079367,-0.401238015323825,-0.539104636203912,0,2.39143506526947,0,-1.54222395592266,-0.0881765829854541,0,0,14600,19300,-0.3584229,0,-0.5192389,0.3648162,0,0.6612903,0.3064516,0.03225806 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_22_20_downhill_5.vdri,51,0.2921945,20.6255,-14.60973,0,-10.8505207066442,21.22133,1.028888,-,-,-,-,3.251286,0.1684604,1.028888,0.006407483,0.1236644,0,-72.2585184433881,0,-0.153715710010793,-0.0100242932471964,-0.159151728153229,1.34792621612549,0.0300873858067724,0,-1.02366234461466,-0.0314595385392507,0,0,14600,19300,-0.01089325,0,-0.1512468,0.1011332,0,0.05882353,0.9411765,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_60_20_downhill_15.vdri,82,1.092451,47.96125,-163.8676,0,-12.5001035816059,27.71097,0.5777783,-,-,-,-,1.825779,0.09459998,0.5777783,0.003598161,0.06944451,0,-655.292909203506,0,-0.284724581581023,-0.271115117089616,-0.589184924496545,14.9702030097114,1.19320910089546,0,-14.926116265191,-0.0898376734389199,0,0,14600,19300,-0.1355013,0,-0.729587,0.3514989,0,0.1829268,0.8170732,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_60_20_downhill_25.vdri,82,1.092451,47.96125,-273.1127,0,-12.5001035816059,27.71097,0.5777783,-,-,-,-,1.825779,0.09459998,0.5777783,0.003598161,0.06944451,0,-1073.1200025605,0,-0.284724581581023,-0.271115117089616,-0.577987999386258,24.4761783938938,1.19320910089546,0,-24.4432889472114,-0.0898376734389199,0,0,14600,19300,-0.1355013,0,-0.729587,0.3514989,0,0.1829268,0.8170732,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_60_20_downhill_5.vdri,82,1.091869,47.93569,-54.59343,0,-12.4918047309649,27.71097,0.5780863,-,-,-,-,1.826753,0.09465041,0.5780863,0.003600079,0.06948153,0,-218.967376057695,0,-0.284535552205311,-0.271051704304086,-0.594715954992506,5.0369119644165,1.19320909986893,0,-4.98759023242527,-0.0897938134935167,0,0,14600,19300,-0.1355013,0,-0.6896226,0.3215879,0,0.1951219,0.8048781,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_60_20_level.vdri,82,1.090963,47.89596,0,35.913299432615,-2.09040039668723,7321.083,152.8539,-,-,-,-,483.0183,25.02686,152.8539,0.95191,18.37186,31.8264632573942,-43.4089673670327,0.818025153742896,-0.0476146757023202,-0.270641521695587,-0.594965280161964,0,1.19480023151147,0,-0.988759812249078,-0.108410392271148,0,0,14600,19300,-0.1355014,0,-0.7274253,0.3126254,0,0.1829268,0.8170732,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_60_20_uphill_5.vdri,85,1.092396,46.2662,54.61982,227.224014551499,-1.17930822652929,43362.99,937.25,-,-,-,-,2961.71,153.4565,937.25,5.8368,112.6502,215.691979352166,-15.7936311160817,5.36501145468818,-0.0278447775708305,-0.248937196996477,-0.595003444618649,-5.03934688991971,1.19912025438415,0,-0.372905179129707,-0.27766052087148,0,0,14600,19300,-0.1307189,0.2567733,-0.7869603,0.3355308,0.02352941,0.1529412,0.8235294,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_80_0_downhill_15.vdri,61,0.9875448,58.28133,-148.1317,0,-15.0794307208452,134.7061,2.311308,-,-,-,-,7.303735,0.3784319,2.311308,0.01439386,0.2778015,0,-863.479397883181,0,-0.25551257610321,-0.42163404006886,-0.532606602253185,13.5326425117917,2.39143510205878,0,-14.6311786863539,-0.0807070815232065,0,0,14600,19300,-0.3642987,0,-0.6683277,0.3865429,0,0.5409836,0.4262295,0.03278688 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_80_0_downhill_25.vdri,61,0.9875448,58.28133,-246.8862,0,-15.0794307208452,134.7061,2.311308,-,-,-,-,7.303735,0.3784319,2.311308,0.01439386,0.2778015,0,-1371.21255021017,0,-0.25551257610321,-0.42163404006886,-0.522484885851542,22.1257766686545,2.39143510205878,0,-23.2344348785612,-0.0807070815232065,0,0,14600,19300,-0.3642987,0,-0.6683277,0.3865429,0,0.5409836,0.4262295,0.03278688 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_80_0_downhill_5.vdri,36,0.4870205,48.70205,-24.35102,0,-12.7867381738292,130.8103,2.68593,-,-,-,-,8.487537,0.4397688,2.68593,0.01672684,0.322828,0,-403.863819705115,0,-0.127867381738292,-0.165333385011371,-0.265268977731466,2.24668006393645,2.39143505573273,0,-4.03863819705115,-0.0386490397320853,0,0,14600,19300,-0.6172839,0,-0.7069911,0.339553,0,0.8611111,0.1111111,0.02777778 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_80_0_level.vdri,62,0.9875845,57.34362,0,19.2480812688028,-8.5994735071736,4101.571,71.5262,-,-,-,-,226.0228,11.71103,71.5262,0.4454352,8.596899,17.2578307736304,-89.6475609271757,0.331494732962714,-0.148102043734656,-0.401564805432765,-0.538586812110411,0,2.39143498950534,0,-1.54393021596803,-0.0883073295156161,0,0,14600,19300,-0.3584229,0,-0.5192387,0.3649616,0,0.6612903,0.3064516,0.03225806 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_80_0_uphill_15.vdri,107,0.6516512,21.92471,97.74768,244.815520491555,-0.0100891645823684,46912.36,2139.702,-,-,-,-,6761.46,350.3347,2139.702,13.32517,257.1758,234.368076110555,-2.16760367990654E-05,7.27646130349901,-0.000299872391753727,-0.0686672460402921,-0.351451146114204,-8.92978532049391,2.3969752576761,0,-6.44259982638889E-07,-0.323232708010409,0,0,14600,19300,-0.2076844,0,-0.8134995,0.421518,0,0.2523364,0.728972,0.01869159 -1,40t_Long_Haul_Truck.vecto,Cycle_Decelerate_80_0_uphill_5.vdri,66,0.9872035,53.84747,49.36018,202.444689667586,-1.80720005432765,38851.67,721.5134,-,-,-,-,2279.982,118.1338,721.5134,4.493283,86.72035,191.378704370874,-23.9599377747738,3.71148597723908,-0.0331320009960069,-0.33901491433005,-0.537707306701276,-4.55408056967788,2.39764809485939,0,-0.439265525870853,-0.204755880567763,0,0,14600,19300,-0.3367003,0,-0.3949744,0.3458336,0,0.8333333,0.1363636,0.03030303 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_10_downhill_15.vdri,179,0.4972222,10,-74.58334,0,-9.6013879776001,0,0,-,-,-,-,0,0,0,0,0,0,-120.489692687988,0,-0.477402346664005,-0.00398718661732144,-0.268163876533508,6.81359537760417,0,0,-5.99101527531942,-0.0730263012647629,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_10_downhill_25.vdri,179,0.4972222,10,-124.3056,0,-9.6013879776001,0,0,-,-,-,-,0,0,0,0,0,0,-207.607330322266,0,-0.477402346664005,-0.00398718661732144,-0.263067658874724,11.1401813422309,0,0,-10.322697813246,-0.0730263012647629,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_10_downhill_5.vdri,359,0.9972222,10,-49.86111,0,-9.6013879776001,0,0,-,-,-,-,0,0,0,0,0,0,-29.5340843200684,0,-0.95747174554401,-0.0079966480202145,-0.543164265155792,4.60029767778185,0,0,-2.94520451969571,-0.146460570693016,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_10_level.vdri,358,0.9944444,10,0,6.88525199890137,0,2507.495,250.7495,-,-,-,-,792.3683,41.05536,250.7495,1.561563,30.13816,5.53376579284668,0,0.684700059890747,0,-0.00797437323464288,-0.542327891720666,0,0,0,0,-0.134397818644842,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_10_uphill_15.vdri,179,0.4972222,10,74.58334,149.306091308594,0,27713.64,2771.364,-,-,-,-,8757.511,453.757,2771.364,17.25889,333.0966,142.506637573242,0,7.4238306511773,0,-0.00398718661732144,-0.268163876533508,-6.81359537760417,0,0,0,-0.338083902200063,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_10_uphill_25.vdri,179,0.4972222,10,124.3056,239.834045410156,0,44493.62,4449.362,-,-,-,-,14059.98,728.4966,4449.362,27.70876,534.7791,229.419281005859,0,11.9250817023383,0,-0.00398718661732144,-0.263067658874724,-11.1401813422309,0,0,0,-0.517845324940152,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_10_uphill_5.vdri,359,0.9972222,10,49.86111,54.6676139831543,0,10751.89,1075.189,-,-,-,-,3397.599,176.0414,1075.189,6.69583,129.2295,51.6580810546875,0,5.45157594998678,0,-0.0079966480202145,-0.543164265155792,-4.60029767778185,0,0,0,-0.300117311477661,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_20_downhill_15.vdri,89,0.4944444,20,-74.16667,0,-11.6147556304932,0,0,-,-,-,-,0,0,0,0,0,0,-248.733703613281,0,-0.287142569753859,-0.0158596473269992,-0.266665754318237,6.77553059895833,0,0,-6.1492498948839,-0.0566129448678758,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_30_Decreasing_Slope.vdri,131,1.091667,30,-13.55667,3.90945603920303,-6.33647464067881,1219.956,40.66519,-,-,-,-,128.502,6.658135,40.66519,0.2532457,4.887643,3.10776960212766,-10.9672220244662,0.142260761426555,-0.230577271646923,-0.0787859165668488,-0.595283827251858,1.26131475746632,0,0,-0.399085023668077,-0.0998434527052773,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_30_Dec_Increasing_Slope.vdri,276,2.292476,29.90186,-0.1755981,29.761342195929,-3.04555189263993,6223.737,208.1388,-,-,-,-,657.7185,34.07868,208.1388,1.296201,25.01668,27.3224880902664,-5.21586358028909,2.28170290168789,-0.233492311769062,-0.164406888782978,-1.25008910576502,0.00816412713792589,0.0166325685713026,0,-0.399882874488831,-0.258630475070741,0,0,14600,19300,-0.0007485825,0,-0.1518024,0.1064273,0,0.02173913,0.9782609,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_30_downhill_15.vdri,58,0.4833333,30,-72.5,0,-10.4941444396973,9.236381E-05,3.078794E-06,-,-,-,-,9.728989E-06,5.040927E-07,3.078794E-06,1.917344E-08,3.700473E-07,0,-379.512298583984,0,-0.169072327084012,-0.0348823142051697,-0.260673265457153,6.623271484375,0,0,-6.11436481051975,-0.0442787555853526,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_30_Increasing_Slope.vdri,132,1.092476,29.7948,13.5769,56.3815741539001,0,11362.47,381.3574,-,-,-,-,1205.089,62.43987,381.3574,2.374934,45.83622,52.3604456728155,-3.41010816169508E-06,2.06732438564301,0,-0.0778025224804878,-0.59572522242864,-1.26277253448963,0.0166325685713026,0,-1.25037299262153E-07,-0.147658641868167,0,0,14600,19300,-0.001565218,0,-0.1518024,0.1538895,0,0.04545455,0.9545454,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_50_Decreasing_Slope.vdri,78,1.083333,50,-13.34833,8.75522469251584,-6.4865696980403,2068.781,41.37561,-,-,-,-,130.7469,6.774454,41.37561,0.25767,4.973031,7.16899945185735,-18.5826641963078,0.18969653500451,-0.14054234345754,-0.21717919031779,-0.590739804903666,1.25073193126255,0,0,-0.402624390920003,-0.0893427511056264,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_50_Dec_Increasing_Slope.vdri,164,2.275009,49.93923,-0.612262,52.2799472692536,-3.15179392768116,10286.64,205.9831,-,-,-,-,650.9065,33.72573,205.9831,1.282776,24.75758,48.0829543602176,-9.2236583988841,2.381642042266,-0.143581723372142,-0.454991322358449,-1.2405646525489,0.0525744120279948,0.0701602675693317,0,-0.420188882615831,-0.245052461028099,0,0,14600,19300,-0.003358044,0,-0.2493812,0.06924811,0,0.01219512,0.9878049,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_50_downhill_15.vdri,34,0.4722222,50,-70.83334,0,-10.9417676925659,0,0,-,-,-,-,0,0,0,0,0,0,-633.255554199219,0,-0.103338917096456,-0.0946678521898058,-0.254680794609918,6.47101294623481,0,0,-5.9807469007704,-0.0375781055291494,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_50_Increasing_Slope.vdri,78,1.07984,49.83878,13.26101,97.7245827210255,0,18920.72,379.6385,-,-,-,-,1199.658,62.15843,379.6385,2.364229,45.62962,91.0218845758683,0,2.11736595895555,0,-0.215106930467818,-0.588835651609633,-1.24058447308011,0.0701602642051876,0,0,-0.143001963562436,0,0,14600,19300,-0.007060503,0,-0.2493812,0.1102031,0,0.02564103,0.974359,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_80_Decreasing_Slope.vdri,48,1.066667,80,-12.93167,25.0979234774907,-9.14136930306753,5494.71,68.68388,-,-,-,-,217.0411,11.24565,68.68388,0.4277344,8.255274,21.4935611883799,-15.4824297030767,0.334638979699877,-0.1218849240409,-0.547425130208333,-0.581653072569105,1.21866787486606,0,0,-0.206432396041022,-0.0959113204479218,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_80_Dec_Increasing_Slope.vdri,102,2.265748,79.96758,-0.8437988,104.024080556982,-4.50052014519187,19873.96,248.5252,-,-,-,-,785.3395,40.69117,248.5252,1.547711,29.87082,95.8661438063079,-8.00197565789316,2.94734894911448,-0.127514737447103,-1.16187981287638,-1.23551598654853,0.0534058380126953,0.0256691031985813,0,-0.226722643640306,-0.274790661599901,0,0,14600,19300,-0.001455139,0,0,0.0349764,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_80_downhill_15.vdri,21,0.4666667,80,-70,0,-20.2673282623291,5.63808E-05,7.0476E-07,-,-,-,-,2.227042E-06,1.153908E-07,7.0476E-07,4.38895E-09,8.470673E-08,0,-985.078063964844,0,-0.118226081530253,-0.239498494466146,-0.251684532165527,6.3948828125,0,0,-5.74628870646159,-0.039184805949529,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_80_downhill_5.vdri,44,0.9777778,80,-48.88889,0,-20.2673282623291,5.63808E-05,7.0476E-07,-,-,-,-,2.227042E-06,1.153908E-07,7.0476E-07,4.38895E-09,8.470673E-08,0,-257.433166503906,0,-0.247711789872911,-0.501806369357639,-0.532573318481445,4.51059828016493,0,0,-3.14640536838108,-0.0821014981799656,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_80_Increasing_Slope.vdri,48,1.065748,79.93111,12.9087,186.171160697937,0,34876.07,436.3266,-,-,-,-,1378.792,71.44001,436.3266,2.717259,52.4431,173.400588035584,-8.7738037109375E-05,2.48228214263916,0,-0.546026541392008,-0.581152344809638,-1.21656683709886,0.0256691031985813,0,-1.16984049479167E-06,-0.16420432806015,0,0,14600,19300,-0.00309217,0,0,0.05093675,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_80_level.vdri,44,0.9777778,80,0,93.9080352783203,0,17869.25,223.3656,-,-,-,-,705.8352,36.57177,223.3656,1.391027,26.84682,84.6855010986328,0,1.14776487562391,0,-0.501806369357639,-0.533238597446018,0,0,0,0,-0.112719815572103,0,0,14600,19300,0,0,0,0,0,0,1,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_80_uphill_15.vdri,34,0.3086138,32.67675,46.29207,243.669862634995,0,46949.88,1436.798,-,-,-,-,4540.281,235.2477,1436.798,8.947774,172.692,232.982836555032,-6.82157628676471E-05,2.30132648044162,0,-0.059537576056189,-0.166442841423882,-4.22903396606445,2.25966048978269,0,-6.44259982638889E-07,-0.105972354147169,0,0,14600,19300,-0.5013545,0,-1.002381,0.5831483,0,0.5,0.5,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_80_uphill_5.vdri,52,0.9616838,66.57811,48.08419,306.264456528884,0,58408.93,877.2993,-,-,-,-,2772.266,143.6407,877.2993,5.463452,105.4446,290.423548184908,-6.22089092548077E-05,4.42381992763943,0,-0.352960902320014,-0.523807300991482,-4.43635529412164,1.12073833041721,0,-8.98573133680556E-07,-0.231433844566345,0,0,14600,19300,-0.115946,0,-0.1607749,0.08528713,0,0.6538461,0.3461539,0 -1,40t_Long_Haul_Truck.vecto,Cycle_Drive_stop_85_stop_85_level.vdri,219,2.967401,48.77919,0,160.402268649236,-3.41847749830109,31101.44,637.5965,-,-,-,-,2014.805,104.394,637.5965,3.970684,76.6342,151.582892644351,-59.9650775319365,9.75780467616187,-0.20795738114665,-1.00675772621237,-1.61829470892747,0,-2.70002240421044,0,-3.64787554985947,-0.57100832760334,0,0,14600,19300,0.1078133,0.5013386,-0.6633881,0.6129725,0.5981735,0.2968037,0.08219178,0.02283105 + \ No newline at end of file diff --git a/VectoCoreTest/TestData/Jobs/job-report.vecto b/VectoCoreTest/TestData/Jobs/job-report.vecto new file mode 100644 index 0000000000000000000000000000000000000000..1a7f49b08a9ab1ab803d3434c46d7908aec1936f --- /dev/null +++ b/VectoCoreTest/TestData/Jobs/job-report.vecto @@ -0,0 +1,70 @@ +{ + "Header": { + "CreatedBy": "Raphael Luz IVT TU-Graz (85407225-fc3f-48a8-acda-c84a05df6837)", + "Date": "29.07.2014 16:59:08", + "AppVersion": "2.0.4-beta", + "FileVersion": 2 + }, + "Body": { + "SavedInDeclMode": true, + "VehicleFile": "../Components/12t Delivery Truck.vveh", + "EngineFile": "../Components/12t Delivery Truck.veng", + "GearboxFile": "../Components/12t Delivery Truck.vgbx", + "Cycles": [ + "Long Haul", + "Regional Delivery" + ], + "Aux": [ + { + "ID": "FAN", + "Type": "Fan", + "Path": "<NOFILE>", + "Technology": "Hydraulic driven - Constant displacement pump" + }, + { + "ID": "STP", + "Type": "Steering pump", + "Path": "<NOFILE>", + "Technology": "Variable displacement" + }, + { + "ID": "AC", + "Type": "HVAC", + "Path": "<NOFILE>", + "Technology": "Default" + }, + { + "ID": "ES", + "Type": "Electric System", + "Path": "<NOFILE>", + "Technology": "Custom Technology List", + "TechList": [] + }, + { + "ID": "PS", + "Type": "Pneumatic System", + "Path": "<NOFILE>", + "Technology": "Default" + } + ], + "VACC": "<NOFILE>", + "EngineOnlyMode": false, + "StartStop": { + "Enabled": false, + "MaxSpeed": 5.0, + "MinTime": 5.0, + "Delay": 5 + }, + "LAC": { + "Enabled": true, + "Dec": -0.5, + "MinSpeed": 50.0 + }, + "OverSpeedEcoRoll": { + "Mode": "OverSpeed", + "MinSpeed": 50.0, + "OverSpeed": 5.0, + "UnderSpeed": 5.0 + } + } +} \ No newline at end of file diff --git a/VectoCoreTest/VectoCoreTest.csproj b/VectoCoreTest/VectoCoreTest.csproj index 8b24fc4bf10b68e92d2b3874c8d14ca576b0897e..43fc0f262540fa66aa7e60c95e4c9a7ea9effb3b 100644 --- a/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCoreTest/VectoCoreTest.csproj @@ -71,6 +71,7 @@ <Compile Include="Integration\FullCycleDeclarationTest.cs"> <SubType>Code</SubType> </Compile> + <Compile Include="Integration\DeclarationReportTest.cs" /> <Compile Include="Utils\GraphWriter.cs" /> <Compile Include="Integration\EngineOnlyCycle\EngineOnlyCycleTest.cs" /> <Compile Include="Integration\SimpleDrivingCycles.cs" /> @@ -378,6 +379,9 @@ <None Include="TestData\Integration\FullPowerTrain\unlimited.vacc"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\Jobs\job-report.vecto"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\job.vecto"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> @@ -538,6 +542,7 @@ </ItemGroup> <ItemGroup> <Folder Include="Dummy\" /> + <Folder Include="Integration\FullPowertrain\" /> <Folder Include="Models\DeclarationData\" /> </ItemGroup> <Choose>