diff --git a/CHANGES.md b/CHANGES.md index 0482f26dd452f3a7c9ab73dbd88f8b9edd07d1e2..7a24374e865ff5b5ac376f3f91b9dcfca591cebb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,14 +2,26 @@ ### VECTO x.x (current source) TODO -- Traction interruption: No engine rev down - hold rpm until new gear engaged (Allison) - +* Traction interruption: No engine rev down - hold rpm until new gear engaged (Allison) + +### VECTO 2.1.4 +* Bugfixes in start gear and (A)MT shift model +* Updated Coach .vcdv file for higher speeds to avoid extrapolation +* Renamed output "FC" to "FC-Map" for better clarification +* Same header for g/h and g/km output +* Reduced minimum turbine speed for 1C-to-2C AT up-shift condition from 900 to 700rpm. +* Updated cross wind correction parameters to current White Book values + +### VECTO 2.1.3 +* PwheelPos output in VSUM file. +* Implemented new Cd*A(v) method +* Bugfix in TC model +* Bugfix: Unit error in Cd(v) methods caused incorrect Delta-Cd value being used ### VECTO 2.1.2 * Improved TC iteration for higher precision * Extended possible TC speed ratio - ### VECTO 2.1.1 * Bugfix: Incorrect torque calculation in AT/TC model caused early up-shifts * Updated C-to-C shift strategy with acc_min rule (see V2.1) diff --git a/Declaration/SegmentTable.csv b/Declaration/SegmentTable.csv index 940e70e4f8dfa186ee3fe2568909804e9107ebd5..b7cdfef9777066c13528aeec4b0ea51147716a1a 100644 --- a/Declaration/SegmentTable.csv +++ b/Declaration/SegmentTable.csv @@ -1,26 +1,26 @@ -Valid,tVehCat,tAxleConf,GVW_Min,GVW_Max,HDV_Class,VACC,VCDV - Long Haul,VCDV - Other,Rigid/Truck Axles - Long haul,Rigid/Truck Axles - Other,Trailer Axles - Long haul,Trailer Axles - Other,LongHaul,RegionalDelivery,UrbanDelivery,MunicipalUtility,Construction,HeavyUrban,Urban,Suburban,Interurban,Coach,MassExtra - LongHaul,MassExtra - RegionalDelivery,MassExtra - UrbanDelivery,MassExtra - MunicipalUtility,MassExtra - Construction,MassExtra - HeavyUrban,MassExtra - Urban,MassExtra - Suburban,MassExtra - Interurban,MassExtra - Coach,RefLoad - LongHaul,RefLoad - RegionalDelivery,RefLoad - UrbanDelivery,RefLoad - MunicipalUtility,RefLoad - Construction,RefLoad - HeavyUrban,RefLoad - Urban,RefLoad - Suburban,RefLoad - Interurban,RefLoad - Coach,WHTCWF - LongHaul,WHTCWF - RegionalDelivery,WHTCWF - UrbanDelivery,WHTCWF - MunicipalUtility,WHTCWF - Construction,WHTCWF - HeavyUrban,WHTCWF - Urban,WHTCWF - Suburban,WHTCWF - Interurban,WHTCWF - Coach -0,RigidTruck,4x2,0,7.5,0,Truck.vacc,-,RigidSolo,???,???,0/0,0/0,0,1,1,0,0,0,0,0,0,0,-,???,???,-,-,-,-,-,-,-,-,???,???,-,-,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -1,RigidTruck,4x2,7.5,10,1,Truck.vacc,-,RigidSolo,-,45/55,0/0,0/0,0,1,1,0,0,0,0,0,0,0,-,1600,1600,-,-,-,-,-,-,-,-,f,f,-,-,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -1,RigidTruck,4x2,10,12,2,Truck.vacc,RigidSolo,RigidSolo,40/60,45/55,0/0,0/0,1,1,1,0,0,0,0,0,0,0,1900,1900,1900,-,-,-,-,-,-,-,f,f,f,-,-,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -1,RigidTruck,4x2,12,16,3,Truck.vacc,-,RigidSolo,-,40/60,0/0,0/0,0,1,1,0,0,0,0,0,0,0,-,2000,2000,-,-,-,-,-,-,-,-,f,f,-,-,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -1,RigidTruck,4x2,16,99,4,Truck.vacc,RigidTrailer,RigidSolo,20/30,45/55,50/2,0/0,1,1,0,1,0,0,0,0,0,0,7500,2100,-,2100,-,-,-,-,-,-,14000,4400,-,4400,-,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -1,Tractor,4x2,16,99,5,Truck.vacc,TractorSemitrailer,TractorSemitrailer,20/25,25/25,55/3,50/3,1,1,0,0,0,0,0,0,0,0,7500,7500,-,-,-,-,-,-,-,-,19300,12900,-,-,-,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,RigidTruck,4x4,7.5,16,6,Truck.vacc,-,RigidSolo,???,???,0/0,0/0,0,0,0,1,1,0,0,0,0,0,-,-,-,???,???,-,-,-,-,-,-,-,-,???,???,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,RigidTruck,4x4,16,99,7,Truck.vacc,-,RigidSolo,???,???,0/0,0/0,0,0,0,0,1,0,0,0,0,0,-,-,-,-,B5,-,-,-,-,-,-,-,-,-,4300,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,Tractor,4x4,16,99,8,Truck.vacc,-,TractorSemitrailer,???,???,0/0,0/0,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -1,RigidTruck,6x2,0,99,9,Truck.vacc,RigidTrailer,RigidSolo,20/30/15,35/40/25,35/2,0/0,1,1,0,1,0,0,0,0,0,0,7600,2200,-,2200,-,-,-,-,-,-,17900,7100,-,7100,-,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -1,Tractor,6x2,0,99,10,Truck.vacc,TractorSemitrailer,TractorSemitrailer,15/10/20,20/10/20,55/2,50/2,1,1,0,0,0,0,0,0,0,0,7500,7500,-,-,-,-,-,-,-,-,19000,12700,-,-,-,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,RigidTruck,6x4,0,99,11,Truck.vacc,-,RigidSolo,???,???,0/0,0/0,0,0,0,0,1,0,0,0,0,0,-,-,-,-,B7,-,-,-,-,-,-,-,-,-,7600,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,Tractor,6x4,0,99,12,Truck.vacc,-,TractorSemitrailer,???,???,0/0,0/0,0,0,0,0,1,0,0,0,0,0,-,-,-,-,ST2,-,-,-,-,-,-,-,-,-,12100,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,RigidTruck,6x6,0,99,13,Truck.vacc,-,RigidSolo,???,???,0/0,0/0,0,0,0,0,1,0,0,0,0,0,-,-,-,-,0,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,Tractor,6x6,0,99,14,Truck.vacc,-,TractorSemitrailer,???,???,0/0,0/0,0,0,0,0,1,0,0,0,0,0,-,-,-,-,0,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,RigidTruck,8x2,0,99,15,Truck.vacc,-,RigidSolo,???,???,0/0,0/0,0,1,0,0,0,0,0,0,0,0,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,RigidTruck,8x4,0,99,16,Truck.vacc,-,RigidSolo,???,???,0/0,0/0,0,0,0,0,1,0,0,0,0,0,-,-,-,-,B9,-,-,-,-,-,-,-,-,-,11600,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,RigidTruck,8x6,0,99,17,Truck.vacc,-,RigidSolo,???,???,0/0,0/0,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,RigidTruck,8x8,0,99,17,Truck.vacc,-,-,???,???,0/0,0/0,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,CityBus,4x2,0,18,B1,N/A,-,CoachBus,???,???,0/0,0/0,0,0,0,0,0,1,1,1,0,0,-,-,-,-,-,???,???,???,-,-,-,-,-,-,-,???,???,???,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,InterurbanBus,4x2,0,18,B2,N/A,-,CoachBus,???,???,0/0,0/0,0,0,0,0,0,0,0,0,1,0,-,-,-,-,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,Coach,4x2,0,18,B3,N/A,-,CoachBus,???,???,0/0,0/0,0,0,0,0,0,0,0,0,0,1,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,CityBus,6x2,18,99,B4,N/A,-,CoachBus,???,???,0/0,0/0,0,0,0,0,0,1,1,1,0,0,-,-,-,-,-,???,???,???,-,-,-,-,-,-,-,???,???,???,-,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,InterurbanBus,6x2,18,99,B5,N/A,-,CoachBus,???,???,0/0,0/0,0,0,0,0,0,0,0,0,1,0,-,-,-,-,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 -0,Coach,6x2,18,99,B6,N/A,-,CoachBus,???,???,0/0,0/0,0,0,0,0,0,0,0,0,0,1,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,11/0/89,17/30/53,69/27/4,98/0/2,62/32/6,100/0/0,100/0/0,100/0/0,45/36/19,0/22/78 +Valid,Vehicle Category ,Axle Conf.,GVW_Min,GVW_Max,HDV class,.vacc file ,Cross Wind Correction - Long haul,Cross Wind Correction - Other,Truck Axles - Long haul,Truck Axles - Other,Trailer Axles - Long haul,Trailer Axles - Other,Long haul,Regional delivery,Urban delivery,Municipal utility,Construction,Heavy Urban,Urban,Suburban,Interurban,Coach,Mass Extra - Long haul,Mass Extra - Regional delivery,Mass Extra - Urban delivery,Mass Extra - Municipal utility,Mass Extra - Construction,Mass Extra - Heavy Urban,Mass Extra - Urban,Mass Extra - Suburban,Mass Extra - Interurban,Mass Extra - Coach,Payload - Long haul,Payload - Regional delivery,Payload - Urban delivery,Payload - Municipal utility,Payload - Construction,Payload - Heavy Urban,Payload - Urban,Payload - Suburban,Payload - Interurban,Payload - Coach +0,RigidTruck,4x2,0,7.5,0,Truck.vacc,-,RigidSolo,-,-,-,-,0,1,1,0,0,0,0,0,0,0,-,???,???,-,-,-,-,-,-,-,-,???,???,-,-,-,-,-,-,- +1,RigidTruck,4x2,7.5,10,1,Truck.vacc,-,RigidSolo,-,45/55,-,-,0,1,1,0,0,0,0,0,0,0,-,1600,1600,-,-,-,-,-,-,-,-,f,f,-,-,-,-,-,-,- +1,RigidTruck,4x2,10,12,2,Truck.vacc,RigidSolo,RigidSolo,40/60,45/55,-,-,1,1,1,0,0,0,0,0,0,0,1900,1900,1900,-,-,-,-,-,-,-,f,f,f,-,-,-,-,-,-,- +1,RigidTruck,4x2,12,16,3,Truck.vacc,-,RigidSolo,-,40/60,-,-,0,1,1,0,0,0,0,0,0,0,-,2000,2000,-,-,-,-,-,-,-,-,f,f,-,-,-,-,-,-,- +1,RigidTruck,4x2,16,99,4,Truck.vacc,RigidTrailer,RigidSolo,20/30,45/55,50/2,-,1,1,0,1,0,0,0,0,0,0,7500,2100,-,2100,-,-,-,-,-,-,14000,4400,-,4400,-,-,-,-,-,- +1,Tractor,4x2,16,99,5,Truck.vacc,TractorSemitrailer,TractorSemitrailer,20/25,25/25,55/3,50/3,1,1,0,0,0,0,0,0,0,0,7500,7500,-,-,-,-,-,-,-,-,19300,12900,-,-,-,-,-,-,-,- +0,RigidTruck,4x4,7.5,16,6,Truck.vacc,-,RigidSolo,-,-,-,-,0,0,0,1,1,0,0,0,0,0,-,-,-,???,???,-,-,-,-,-,-,-,-,???,???,-,-,-,-,- +0,RigidTruck,4x4,16,99,7,Truck.vacc,-,RigidSolo,-,-,-,-,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,- +0,Tractor,4x4,16,99,8,Truck.vacc,-,TractorSemitrailer,-,-,-,-,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,- +1,RigidTruck,6x2,0,99,9,Truck.vacc,RigidTrailer,RigidSolo,20/30/15,35/40/25,35/2,-,1,1,0,1,0,0,0,0,0,0,7600,2200,-,2200,-,-,-,-,-,-,19300,7100,-,7100,-,-,-,-,-,- +1,Tractor,6x2,0,99,10,Truck.vacc,TractorSemitrailer,TractorSemitrailer,15/10/20,20/10/20,55/2,50/2,1,1,0,0,0,0,0,0,0,0,7500,7500,-,-,-,-,-,-,-,-,19300,12900,-,-,-,-,-,-,-,- +0,RigidTruck,6x4,0,99,11,Truck.vacc,-,RigidSolo,-,35/35/30,-,-,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,7100,-,-,-,-,- +0,Tractor,6x4,0,99,12,Truck.vacc,-,TractorSemitrailer,-,20/15/15,-,50/2,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,12900,-,-,-,-,- +0,RigidTruck,6x6,0,99,13,Truck.vacc,-,RigidSolo,-,-,-,-,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,- +0,Tractor,6x6,0,99,14,Truck.vacc,-,TractorSemitrailer,-,-,-,-,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,- +0,RigidTruck,8x2,0,99,15,Truck.vacc,-,RigidSolo,-,-,-,-,0,1,0,0,0,0,0,0,0,0,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,-,-,- +0,RigidTruck,8x4,0,99,16,Truck.vacc,-,RigidSolo,-,-,-,-,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,12900,-,-,-,-,- +0,RigidTruck,8x6,0,99,17,Truck.vacc,-,RigidSolo,-,-,-,-,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,- +0,RigidTruck,8x8,0,99,17,Truck.vacc,-,RigidSolo,-,-,-,-,0,0,0,0,1,0,0,0,0,0,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,-,-,-,-,- +0,CityBus,4x2,0,18,B1,N/A,-,CoachBus,-,-,-,-,0,0,0,0,0,1,1,1,0,0,-,-,-,-,-,???,???,???,-,-,-,-,-,-,-,???,???,???,-,- +0,InterurbanBus,4x2,0,18,B2,N/A,-,CoachBus,-,-,-,-,0,0,0,0,0,0,0,0,1,0,-,-,-,-,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,- +0,Coach,4x2,0,18,B3,N/A,-,CoachBus,-,-,-,-,0,0,0,0,0,0,0,0,0,1,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,-,-,-,-,??? +0,CityBus,6x2,18,99,B4,N/A,-,CoachBus,-,-,-,-,0,0,0,0,0,1,1,1,0,0,-,-,-,-,-,???,???,???,-,-,-,-,-,-,-,???,???,???,-,- +0,InterurbanBus,6x2,18,99,B5,N/A,-,CoachBus,-,-,-,-,0,0,0,0,0,0,0,0,1,0,-,-,-,-,-,-,-,-,???,-,-,-,-,-,-,-,-,-,???,- +0,Coach,6x2,18,99,B6,N/A,-,CoachBus,-,-,-,-,0,0,0,0,0,0,0,0,0,1,-,-,-,-,-,-,-,-,-,???,-,-,-,-,-,-,-,-,-,??? diff --git a/Declaration/VCDV/CoachBus.vcdv b/Declaration/VCDV/CoachBus.vcdv deleted file mode 100644 index 39a23feda955735a6a80ec920e23e4a083236708..0000000000000000000000000000000000000000 --- a/Declaration/VCDV/CoachBus.vcdv +++ /dev/null @@ -1,27 +0,0 @@ -# Crosswind influence on CdxA as a function of vehicle speed -# Vehicle category: coach bus -# Absolute yaw angle influence from ACEA Whitebook April 2014 -# Average crosswind: 3 m/s -# Baseline CdxA assumed with: 4.68 [m²] -v_veh [km/h],cdx_rel [-] -0,1.16368917057624 -5,1.16368917057624 -10,1.16368917057624 -15,1.16368917057624 -20,1.16368917057624 -25,1.16368917057624 -30,1.16368917057624 -35,1.16368917057624 -40,1.16368917057624 -45,1.16368917057624 -50,1.16368917057624 -55,1.16368917057624 -60,1.16368917057624 -65,1.14636945173252 -70,1.13130108969249 -75,1.11820564231065 -80,1.10682947645795 -85,1.09694460329622 -90,1.08828107916225 -95,1.08068278133074 -100,1.07400028829548 diff --git a/Declaration/VCDV/RigidSolo.vcdv b/Declaration/VCDV/RigidSolo.vcdv deleted file mode 100644 index 934c3e582527884496e7e091a521ab55ba2e10bf..0000000000000000000000000000000000000000 --- a/Declaration/VCDV/RigidSolo.vcdv +++ /dev/null @@ -1,27 +0,0 @@ -# Crosswind influence on CdxA as a function of vehicle speed -# Vehicle category: rigid solo -# Absolute yaw angle influence from ACEA Whitebook April 2014 -# Average crosswind: 3 m/s -# Baseline CdxA assumed with: 5.3 [m²] -v_veh [km/h],cdx_rel (v_veh) [-] -0,1.16995889058525 -5,1.16995889058525 -10,1.16995889058525 -15,1.16995889058525 -20,1.16995889058525 -25,1.16995889058525 -30,1.16995889058525 -35,1.16995889058525 -40,1.16995889058525 -45,1.16995889058525 -50,1.16995889058525 -55,1.16995889058525 -60,1.16995889058525 -65,1.14969968431834 -70,1.13284015316129 -75,1.11867388752005 -80,1.10667545890928 -85,1.09644348982345 -90,1.08762853580613 -95,1.07999428002092 -100,1.07334468074717 diff --git a/Declaration/VCDV/RigidTrailer.vcdv b/Declaration/VCDV/RigidTrailer.vcdv deleted file mode 100644 index 205473b64f696c4117669451ea1cbd9321a4a0c2..0000000000000000000000000000000000000000 --- a/Declaration/VCDV/RigidTrailer.vcdv +++ /dev/null @@ -1,27 +0,0 @@ -# Crosswind influence on CdxA as a function of vehicle speed -# Vehicle category: rigid trailer -# Absolute yaw angle influence from ACEA Whitebook April 2014 -# Average crosswind: 3 m/s -# Baseline CdxA assumed with: 6.33 [m²] -v_veh [km/h],cdx_rel (v_veh) [-] -0,1.35547110023335 -5,1.35547110023335 -10,1.35547110023335 -15,1.35547110023335 -20,1.35547110023335 -25,1.35547110023335 -30,1.35547110023335 -35,1.35547110023335 -40,1.35547110023335 -45,1.35547110023335 -50,1.35547110023335 -55,1.35547110023335 -60,1.35547110023335 -65,1.32382413546552 -70,1.29486615012693 -75,1.26877023747113 -80,1.24548620694966 -85,1.22484426801493 -90,1.20642747216762 -95,1.19005025706557 -100,1.17548319913321 diff --git a/Declaration/VCDV/TractorSemitrailer.vcdv b/Declaration/VCDV/TractorSemitrailer.vcdv deleted file mode 100644 index 50cfff436b7dfae4677e65b86ed30f12e59f9136..0000000000000000000000000000000000000000 --- a/Declaration/VCDV/TractorSemitrailer.vcdv +++ /dev/null @@ -1,27 +0,0 @@ -# Crosswind influence on CdxA as a function of vehicle speed -# Vehicle category: tractor semitrailer -# Absolute yaw angle influence from ACEA Whitebook April 2014 -# Average crosswind: 3 m/s -# Baseline CdxA assumed with: 5.7 [m²] -v_veh [km/h],cdx_rel [-] -0,1.27614894491372 -5,1.27614894491372 -10,1.27614894491372 -15,1.27614894491372 -20,1.27614894491372 -25,1.27614894491372 -30,1.27614894491372 -35,1.27614894491372 -40,1.27614894491372 -45,1.27614894491372 -50,1.27614894491372 -55,1.27614894491372 -60,1.27614894491372 -65,1.24890735180796 -70,1.22499288657568 -75,1.20405384590645 -80,1.18574578066132 -85,1.1697448123524 -90,1.15564641074318 -95,1.14321982822533 -100,1.13223910374519 diff --git a/Declaration/VCDV/paramerters.csv b/Declaration/VCDV/paramerters.csv index 99ddf04bd38b643d3543e79ab95ff8d8e82c9daa..7a6e9b270ebc04b4494ded8c808d2c6369cb4fca 100644 --- a/Declaration/VCDV/paramerters.csv +++ b/Declaration/VCDV/paramerters.csv @@ -1,5 +1,6 @@ Parameters,a1,a2,a3 RigidSolo,0.013526,0.017746,-0.000666 RigidTrailer,0.017125,0.072275,-0.004148 -TractorSemitrailer,0.030042,0.040817,-0.00213 +TractorSemitrailer,0.034767,0.039367,-0.001897 CoachBus,-0.000794,0.02109,-0.00109 + diff --git a/Declaration/WHTC-Weighting-Factors.csv b/Declaration/WHTC-Weighting-Factors.csv new file mode 100644 index 0000000000000000000000000000000000000000..4d00f736a8fa3eae465182a1618051e782bc0ab9 --- /dev/null +++ b/Declaration/WHTC-Weighting-Factors.csv @@ -0,0 +1,4 @@ +Part,Long haul,Regional delivery,Urban delivery,Municipal utility,Construction,Heavy Urban,Urban,Suburban,Interurban,Coach +Urban,11,17,69,98,62,100,100,100,45,0 +Rural,0,30,27,0,32,0,0,0,36,22 +Motorway,89,53,4,2,6,0,0,0,19,78 diff --git a/Declaration/Wheels.csv b/Declaration/Wheels.csv index 3c01c43e64217d44b4aac1c60bed2d1e8be03cb6..f49a335209e44ff9951ed5e98a2785bd226be895 100644 --- a/Declaration/Wheels.csv +++ b/Declaration/Wheels.csv @@ -1,41 +1,41 @@ -Wheel,Inertia,d,Size-Class(0/1) -9 R 22.5,8.9,970,0 -9.00 R 20,10.5,1018,0 -9.5 R 17.5,4.9,842,0 -10 R 17.5,5,858,0 -10 R 22.5,11,1020,0 -10.00 R 20,13.1,1025,0 -11 R 22.5,14.4,1050,0 -11.00 R 20,14.6,1082,0 -12 R 22.5,16.8,1084,0 -12.00 R 20,19.5,1122,0 -12.00 R 24,27.7,1226,0 -12.5 R 20,12.7,1120,0 -13 R 22.5,20,1124,0 -14.00 R 20,30.8,1238,0 -14.5 R 20,14.8,1092,0 -16.00 R 20,47.5,1343,0 -215/75 R 17.5,3.9,767,0 -225/70 R 17.5,4,759.5,0 -225/75 R 17.5,4,782,0 -235/75 R 17.5,4.5,797,0 -245/70 R 17.5,5.2,787.5,0 -245/70 R 19.5,6,838.3,0 -255/70 R 22.5,9.5,928.5,0 -265/70 R 19.5,6.5,866.3,0 -275/70 R 22.5,11.9,956.5,0 -275/80 R 22.5,12.8,1011.5,0 -285/70 R 19.5,7.9,894.3,0 -295/55 R 22.5,10.2,896,1 -295/60 R 22.5,10.8,925.5,1 -295/80 R 22.5,15.5,1043.5,0 -305/70 R 19.5,9.2,922.3,0 -305/70 R 22.5,13.9,998.5,0 -315/45 R22.5,9.9,347,1 -315/60 R 22.5,12.8,949.5,1 -315/70 R 22.5,14.9,1012.5,0 -315/80 R 22.5,17.6,1075.5,0 -365/80 R 20,17.2,1092,0 -365/85 R 20,22.5,1128.5,0 -385/55 R 22.5,15.9,995,1 -385/65 R 22.5,19.2,1072,1 +Wheel,Inertia,d,Size-Class (0/1) +9 R22.5,8.9,970,b +9.00 R20,10.5,1018,b +9.5 R17.5,4.9,842,b +10 R17.5,5,858,b +10 R22.5,11,1020,b +10.00 R20,13.1,1025,b +11 R22.5,14.4,1050,b +11.00 R20,14.6,1082,b +12 R22.5,16.8,1084,b +12.00 R20,19.5,1122,b +12.00 R24,27.7,1226,b +12.5 R20,12.7,1120,b +13 R22.5,20,1124,b +14.00 R20,30.8,1238,b +14.5 R20,14.8,1092,b +16.00 R20,47.5,1343,b +215/75 R17.5,3.9,767,b +225/70 R17.5,4,759.5,b +225/75 R17.5,4,782,b +235/75 R17.5,4.5,797,b +245/70 R17.5,5.2,787.5,b +245/70 R19.5,6,838.3,b +255/70 R22.5,9.5,928.5,b +265/70 R19.5,6.5,866.3,b +275/70 R22.5,11.9,956.5,b +275/80 R22.5,12.8,1011.5,b +285/70 R19.5,7.9,894.3,b +295/55 R22.5,10.2,896,a +295/60 R22.5,10.8,925.5,a +295/80 R22.5,15.5,1043.5,b +305/70 R19.5,9.2,922.3,b +305/70 R22.5,13.9,998.5,b +315/45 R22.5,9.9,855,a +315/60 R22.5,12.8,949.5,a +315/70 R22.5,14.9,1012.5,b +315/80 R22.5,17.6,1075.5,b +365/80 R20,17.2,1092,b +365/85 R20,22.5,1128.5,b +385/55 R22.5,15.9,995,a +385/65 R22.5,19.2,1072,a diff --git a/Generic Vehicles/Engineering Mode/24t Coach/24t Coach.vcdv b/Generic Vehicles/Engineering Mode/24t Coach/24t Coach.vcdv index f739a3d532b2559d1b48b95ad04369d2c91630df..ec81cff161820618abe871c3174c7ff12c3d970e 100644 --- a/Generic Vehicles/Engineering Mode/24t Coach/24t Coach.vcdv +++ b/Generic Vehicles/Engineering Mode/24t Coach/24t Coach.vcdv @@ -20,3 +20,5 @@ 90,1.06160070824245 95,1.05601203497592 100,1.05120696831716 +105,1.0477 +110,1.045 diff --git a/User Manual/GUI/VEH-Editor.html b/User Manual/GUI/VEH-Editor.html index bebadf2561c4c8b6005974a048deb50f1edb8691..340f1e77f924dcb8bf646a2d3bc6803701983a41 100644 --- a/User Manual/GUI/VEH-Editor.html +++ b/User Manual/GUI/VEH-Editor.html @@ -98,17 +98,17 @@ Wind Correction</span></a>.<br> <hr style="height: 1px; width: 100%;">For each axle the parameters <span style="font-weight: bold;">Relative axle load</span>, <span style="font-weight: bold;">RRC</span><sub style="font-weight: bold;">ISO</sub> and <span style="font-weight: bold;">F</span><sub style="font-weight: bold;">zISO</sub> have to be defined in order to calculate the total <a href="../general/RRC.html">Rolling Resistance Coefficient</a>.<br> -Furthermore the <span style="font-weight: bold;">Wheels Inertia [kgm²]</span> has to be set <span style="text-decoration: underline;">per wheel</span> for each axle. In <a href="../general/calc_Declaration.html">Declaration Mode</a> the inertia is defined automatically according to the selected tires.<br> +Furthermore the <span style="font-weight: bold;">Wheels Inertia [kgm²]</span> has to be set <span style="text-decoration: underline;">per wheel</span> for each axle. In <a href="../general/calc_Declaration.html">Declaration Mode</a> the inertia is defined automatically according to the selected tyres.<br> Use the <img style="width: 16px; height: 16px;" alt="add" src="../pics/icons/plus-circle-icon.png"> and <img style="width: 16px; height: 16px;" alt="remove" src="../pics/icons/minus-circle-icon.png"> buttons to add or remove axles form the vehicle. Doubleclick entries to edit existing axle configurations.<br> <br> -<span style="font-weight: bold;">Dynamic Tire Radius [mm]</span><br> -<div style="margin-left: 40px;">Effective (dynamic) wheel radius used to calculate engine speed. In <a href="../general/calc_Declaration.html">Declaration Mode</a> the radius calculated automatically using tires/rims of the powered axle.<br> +<span style="font-weight: bold;">Dynamic Tyre Radius [mm]</span><br> +<div style="margin-left: 40px;">Effective (dynamic) wheel radius used to calculate engine speed. In <a href="../general/calc_Declaration.html">Declaration Mode</a> the radius calculated automatically using tyres/rims of the powered axle.<br> </div> <br> <span style="font-weight: bold;">Powered axle tyres/rims</span><br> -<div style="margin-left: 40px;">Needed for <a href="../general/calc_Declaration.html">Declaration Mode</a> to calculate the dynamic tire radius.</div> +<div style="margin-left: 40px;">Needed for <a href="../general/calc_Declaration.html">Declaration Mode</a> to calculate the dynamic tyre radius.</div> <br> <br> <big><big style="font-weight: bold;">Retarder Losses</big></big><br> diff --git a/VECTO/Input Files/cVEH.vb b/VECTO/Input Files/cVEH.vb index 97e05b67933cc54217b3645472610ed8c98d58ea..13bc8a936373560497071228286ccb6879d687ca 100644 --- a/VECTO/Input Files/cVEH.vb +++ b/VECTO/Input Files/cVEH.vb @@ -13,7 +13,7 @@ Imports System.Collections.Generic Public Class cVEH 'V2 MassMax is now saved in [t] instead of [kg] - Private Const FormatVersion As Short = 5 + Private Const FormatVersion As Short = 6 Private FileVersion As Short Private sFilePath As String @@ -76,7 +76,7 @@ Public Class cVEH MyFileList = New List(Of String) '.vcdv / .vcdb - If Me.CdMode <> tCdMode.ConstCd0 Then MyFileList.Add(Me.CdFile.FullPath) + If Me.CdMode = tCdMode.CdOfVeng Or Me.CdMode = tCdMode.CdOfBeta Then MyFileList.Add(Me.CdFile.FullPath) 'Retarder If Me.RtType <> tRtType.None Then MyFileList.Add(Me.RtFile.FullPath) @@ -229,7 +229,8 @@ Public Class cVEH a0.Wheels = "-" Else a0.Inertia = CSng(dic("Inertia")) - a0.Wheels = CStr(dic("Wheels")) + a0.Wheels = CStr(dic("Wheels")) + If FileVersion < 6 Then a0.Wheels = a0.Wheels.Replace("R ", "R") End If a0.Share = CSng(dic("AxleWeightShare")) @@ -382,7 +383,7 @@ Public Class cVEH a0 = New cAxle a0.Inertia = 0 'Defined later - a0.Wheels = "385/65 R 22.5" + a0.Wheels = cDeclaration.TyreTr a0.Share = a / 100 a0.TwinTire = False diff --git a/VECTO/MODcalc/cMOD.vb b/VECTO/MODcalc/cMOD.vb index 0cd97831c6e825bfa4d9d07717ea901ff0f47f31..7a19b9b8861dc8943ddc09e14f11af72f6dc4857 100644 --- a/VECTO/MODcalc/cMOD.vb +++ b/VECTO/MODcalc/cMOD.vb @@ -552,7 +552,7 @@ Public Class cMOD End If - HeaderList.Add(New String() {"FC", "g/h"}) + HeaderList.Add(New String() {"FC-Map", "g/h"}) HeaderList.Add(New String() {"FC-AUXc", "g/h"}) HeaderList.Add(New String() {"FC-WHTCc", "g/h"}) diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb index a885e9dd082bb9b492e9ad5462db448316176aa1..aafcc28d469de7193ed7e1b31a12c6a776a04a2c 100644 --- a/VECTO/MODcalc/cPower.vb +++ b/VECTO/MODcalc/cPower.vb @@ -1798,6 +1798,7 @@ lb_nOK: Dim nUdown As Single Dim Tq As Single Dim Pe As Single + Dim TqX As Single Dim MdMax As Single Dim Pmax As Single @@ -1842,11 +1843,14 @@ lb_nOK: Else 'Calculate Start Gear - For Gear = GBX.GearCount To 1 Step -1 + ' Loop finishes at Gear = 1 (If "Exit For" is not called) + For Gear = GBX.GearCount To 2 Step -1 'rpm at StartSpeed [m/s] nU = GBX.gs_StartSpeed * 60.0 * GBX.Igetr(0) * GBX.Igetr(Gear) / (2 * VEH.rdyn * Math.PI / 1000) + If nU > FLD(Gear).fnUrated Then Continue For + 'full load Pmax = FLD(Gear).Pfull(nU) @@ -1854,15 +1858,17 @@ lb_nOK: MdMax = Pmax * 1000 / (nU * 2 * Math.PI / 60) 'power demand - Pe = Math.Min(fPeGearMod(Gear, t, GBX.gs_StartSpeed, GBX.gs_StartAcc, Grad), Pmax) - Pe = Math.Max(Pe, FLD(Gear).Pdrag(nU)) + Pe = fPeGearMod(Gear, t, GBX.gs_StartSpeed, GBX.gs_StartAcc, Grad) 'torque demand Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + 'torque (limited to max) + TqX = Math.Min(Tq, FLD(Gear).Tmax) + 'Up/Downshift rpms - nUup = GBX.Shiftpolygons(Gear).fGSnUup(Tq) - nUdown = GBX.Shiftpolygons(Gear).fGSnUdown(Tq) + nUup = GBX.Shiftpolygons(Gear).fGSnUup(TqX) + nUdown = GBX.Shiftpolygons(Gear).fGSnUdown(TqX) If nU > nUdown And nU >= ENG.Nidle And (1 - Tq / MdMax >= GBX.gs_TorqueResvStart / 100 Or Tq < 0) Then Exit For @@ -1982,13 +1988,13 @@ lb_nOK: If DEV.TCshiftModeNew Then If _ - fnUout(Vact, LastGear + 1) > Math.Min(900, iRatio * (FLD(LastGear).N80h - 150)) AndAlso + fnUout(Vact, LastGear + 1) > Math.Min(700, iRatio * (FLD(LastGear).N80h - 150)) AndAlso FLD(LastGear + 1).Pfull(nU * iRatio) >= fPeGearMod(LastGear + 1, t, MODdata.Vh.V(t), TCaccmin, Grad) Then Return LastGear + 1 End If Else If _ - fnUout(Vact, LastGear + 1) > Math.Min(900, iRatio * (FLD(LastGear).N80h - 150)) AndAlso + fnUout(Vact, LastGear + 1) > Math.Min(700, iRatio * (FLD(LastGear).N80h - 150)) AndAlso FLD(LastGear + 1).Pfull(nU * iRatio) > 0.7 * FLD(LastGear).Pfull(nU) Then Return LastGear + 1 End If @@ -2036,7 +2042,8 @@ lb_nOK: Dim LastPeNorm As Single Dim tx As Int16 - Dim OutOfRpmRange As Boolean + Dim RpmTooHigh As Boolean + Dim RpmTooLow As Boolean 'First time step OR first time step after stand still If t = 0 OrElse MODdata.VehState(t - 1) = tVehState.Stopped Then Return fStartGear(t, Grad) @@ -2058,47 +2065,40 @@ lb_nOK: 'First time step after stand still If LastGear = 0 Then Return fStartGear(t, Grad) - nU = CSng(Vact * 60.0 * GBX.Igetr(0) * GBX.Igetr(LastGear) / (2 * VEH.rdyn * Math.PI / 1000)) + nU = fnUout(Vact, LastGear) - OutOfRpmRange = ((nU - ENG.Nidle) / (ENG.Nrated - ENG.Nidle) >= 1.2 Or nU < ENG.Nidle) + RpmTooLow = (nU < ENG.Nidle) + RpmTooHigh = ((nU - ENG.Nidle) / (ENG.Nrated - ENG.Nidle) >= 1.2) 'No gear change 3s after last one -except rpm out of range - If Not OutOfRpmRange AndAlso t - LastGearChange <= GBX.gs_ShiftTime And t > GBX.gs_ShiftTime - 1 Then Return LastGear + If Not (RpmTooHigh Or RpmTooLow) AndAlso t - LastGearChange <= GBX.gs_ShiftTime And t > GBX.gs_ShiftTime - 1 Then Return LastGear 'During start (clutch slipping) no gear shift If LastClutch = tEngClutch.Slipping And VehState0 = tVehState.Acc Then Return LastGear - ''Search for last Gear-change - 'itgangw = 0 - 'For i = t - 1 To 1 Step -1 - ' If MODdata.Gear(i) <> MODdata.Gear(i - 1) Then - ' itgangw = i - ' Exit For - ' End If - 'Next + + If Not (RpmTooHigh Or RpmTooLow) Then - ''Maximum permissible Gear-shifts every 3 seconds: - 'If t - itgangw <= 3 And t > 2 Then - ' Return LastGear '<<< no further checks!!! - 'End If + 'Current rpm with previous gear + nU = fnU(Vact, LastGear, Clutch = tEngClutch.Slipping) - 'Current rpm with previous gear - nU = fnU(Vact, LastGear, Clutch = tEngClutch.Slipping) + 'Current power demand with previous gear + Pe = Math.Min(fPeGearMod(LastGear, t, Grad), FLD(LastGear).Pfull(nU)) + Pe = Math.Max(Pe, FLD(LastGear).Pdrag(nU)) - 'Current power demand with previous gear - Pe = Math.Min(fPeGearMod(LastGear, t, Grad), FLD(LastGear).Pfull(nU)) - Pe = Math.Max(Pe, FLD(LastGear).Pdrag(nU)) + 'Current torque demand with previous gear + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + MdMax = FLD(LastGear).Pfull(nU, LastPeNorm) * 1000 / (nU * 2 * Math.PI / 60) - 'Current torque demand with previous gear - Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) - MdMax = FLD(LastGear).Pfull(nU, LastPeNorm) * 1000 / (nU * 2 * Math.PI / 60) + 'Up/Downshift rpms + nnUp = GBX.Shiftpolygons(LastGear).fGSnUup(Tq) + nnDown = GBX.Shiftpolygons(LastGear).fGSnUdown(Tq) + + End If - 'Up/Downshift rpms - nnUp = GBX.Shiftpolygons(LastGear).fGSnUup(Tq) - nnDown = GBX.Shiftpolygons(LastGear).fGSnUdown(Tq) 'Compare rpm with Up/Downshift rpms - If nU <= nnDown And LastGear > 1 Then + If (RpmTooLow OrElse nU <= nnDown) And LastGear > 1 Then 'Shift DOWN Gear = LastGear - 1 @@ -2144,7 +2144,7 @@ lb_nOK: End If - ElseIf LastGear < GBX.GearCount And nU > nnUp Then + ElseIf (RpmTooHigh OrElse nU > nnUp) And LastGear < GBX.GearCount Then 'Shift UP Gear = LastGear + 1 @@ -2206,10 +2206,11 @@ lb_nOK: If GBX.gs_ShiftInside And LastGear < GBX.GearCount Then 'Calculate Shift-rpm for higher gear - nU = fnU(Vact, Gear + 1, False) + 'old: nU = fnU(Vact, Gear + 1, False) + nU = fnUout(Vact, Gear + 1) 'Continue only if rpm (for higher gear) is below rated rpm - If nU <= ENG.Nrated Then + If nU > ENG.Nidle AndAlso nU <= ENG.Nrated Then Pe = Math.Min(fPeGearMod(Gear + 1, t, Grad), FLD(Gear + 1).Pfull(nU)) Pe = Math.Max(Pe, FLD(Gear + 1).Pdrag(nU)) Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) diff --git a/VECTO/My Project/AssemblyInfo.vb b/VECTO/My Project/AssemblyInfo.vb index 7b4deb2110c83d14408e09984c09818dcbd39e92..b2512db355386236a41c15cdf0acb190929ed92b 100644 --- a/VECTO/My Project/AssemblyInfo.vb +++ b/VECTO/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' by entering "*" in them: ' <Assembly: AssemblyVersion("1.0.*")> -<Assembly: AssemblyVersion("2.1.2.0")> -<Assembly: AssemblyFileVersion("2.1.2.0")> +<Assembly: AssemblyVersion("2.1.4.0")> +<Assembly: AssemblyFileVersion("2.1.4.0")> diff --git a/VECTO/VECTO_Global.vb b/VECTO/VECTO_Global.vb index 6b269d500c40f335f0498cb99840d5ca80ecadf7..3f6b1ef950c2c868dd479f4859249ea63b682f4e 100644 --- a/VECTO/VECTO_Global.vb +++ b/VECTO/VECTO_Global.vb @@ -11,7 +11,7 @@ Imports System.Collections.Generic Module VECTO_Global - Public Const VECTOvers As String = "2.1.2" + Public Const VECTOvers As String = "2.1.4" Public Const LicSigAppCode As String = "VECTO-Release-0093C61E0A2E4BFA9A7ED7E729C56AE4" Public MyAppPath As String Public MyConfPath As String diff --git a/VECTO/cDeclaration.vb b/VECTO/cDeclaration.vb index 28b561b1acd3fa6ba42a751c4b85e4dc70dde43e..a70d8f378f20f6c6168f3e1df176211781bb7bba 100644 --- a/VECTO/cDeclaration.vb +++ b/VECTO/cDeclaration.vb @@ -38,6 +38,7 @@ Public Class cDeclaration Public Const RRCTr As Single = 0.00555 Public Const FzISOTr As Single = 37500 + Public Const TyreTr As String = "385/65 R22.5" Public Const AirDensity As Single = 1.188 Public Const FuelDens As Single = 0.832 @@ -98,7 +99,6 @@ Public Class cDeclaration Dim i As Integer Dim a As Integer Dim s0 As String - Dim s As String() Dim TrS As Single Dim TrA As Single Dim stl As String() @@ -109,8 +109,6 @@ Public Class cDeclaration Dim AxleShares As List(Of String) Dim AxleSharesTr As List(Of String) Dim l0 As List(Of Single) - Dim WHTCWF As List(Of String) - Dim dWHTCWF As Dictionary(Of tWHTCpart, Single) Dim at0 As List(Of String) Dim AuxPower0 As Dictionary(Of tMission, Single) @@ -230,7 +228,45 @@ Public Class cDeclaration file.Close() + 'WHTC-Weighting-Factors.csv + If Not file.OpenRead(MyDeclPath & "WHTC-Weighting-Factors.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (WHTC-Weighting-Factors.csv)!") + Return False + End If + + 'Skip Header + file.ReadLine() + + Try + For i = 0 To 2 + If file.EndOfFile Then Throw New Exception("Unexpected end of file.") + line = file.ReadLine + + a = 0 + For Each mt0 In Missions.Keys + a += 1 + mc0 = Missions(mt0) + Select Case i + Case 0 + mc0.WHTCWF = New Dictionary(Of tWHTCpart, Single) + mc0.WHTCWF.Add(tWHTCpart.Urban, line(a) / 100) + Case 1 + mc0.WHTCWF.Add(tWHTCpart.Rural, line(a) / 100) + Case Else '2 + mc0.WHTCWF.Add(tWHTCpart.Motorway, line(a) / 100) + End Select + Next + Next + + + Catch ex As Exception + file.Close() + GUImsg(tMsgID.Err, "Error in WHTC-Weighting-Factors! " & ex.Message) + Return False + End Try + + file.Close() 'Segment Table If Not file.OpenRead(MyDeclPath & "SegmentTable.csv") Then @@ -252,7 +288,6 @@ Public Class cDeclaration LoadingList = New List(Of String) AxleShares = New List(Of String) AxleSharesTr = New List(Of String) - WHTCWF = New List(Of String) ste0.VehCat = ConvVehCat(line(1)) @@ -294,7 +329,7 @@ Public Class cDeclaration If mt0 <> tMission.LongHaul Then AxleSharesTr.Add(line(12)) Next - ste0.TrailerOnlyInLongHaul = (Trim(line(11)) <> "0/0" And Trim(line(12)) = "0/0" And ste0.VehCat = tVehCat.RigidTruck) + ste0.TrailerOnlyInLongHaul = (Trim(line(11)) <> "-" And Trim(line(12)) = "-" And ste0.VehCat = tVehCat.RigidTruck) i = 12 For Each mt0 In SegmentTable.MissionList @@ -310,11 +345,6 @@ Public Class cDeclaration LoadingList.Add(line(i)) Next - For Each mt0 In SegmentTable.MissionList - i += 1 - WHTCWF.Add(line(i)) - Next - For i = 0 To SegmentTable.MissionList.Count - 1 If ste0.UseMission(i) Then ste0.Missions.Add(SegmentTable.MissionList(i)) @@ -329,8 +359,14 @@ Public Class cDeclaration l0 = New List(Of Single) - TrS = AxleSharesTr(i).Split("/")(0) - TrA = AxleSharesTr(i).Split("/")(1) + If AxleSharesTr(i) = "-" Then + TrS = 0 + TrA = 0 + Else + TrS = AxleSharesTr(i).Split("/")(0) + TrA = AxleSharesTr(i).Split("/")(1) + End If + For a = 1 To TrA l0.Add(TrS / TrA) @@ -338,14 +374,6 @@ Public Class cDeclaration ste0.AxleSharesTr.Add(SegmentTable.MissionList(i), l0) - s = WHTCWF(i).Split("/") - dWHTCWF = New Dictionary(Of tWHTCpart, Single) - dWHTCWF.Add(tWHTCpart.Urban, CSng(s(0)) / 100) - dWHTCWF.Add(tWHTCpart.Rural, CSng(s(1)) / 100) - dWHTCWF.Add(tWHTCpart.Motorway, CSng(s(2)) / 100) - - ste0.WHTCWF.Add(SegmentTable.MissionList(i), dWHTCWF) - End If Next @@ -668,7 +696,7 @@ Public Class cDeclaration w0 = New cWheel w0.Inertia = CSng(line(1)) w0.Diam = CSng(line(2)) - w0.SizeA = (CInt(line(3)) = 1) + w0.SizeA = (line(3) = "a") Wheels.Add(line(0), w0) @@ -869,9 +897,9 @@ Public Class cDeclaration CurrentMission = Missions(SegRef.Missions(CycleIndex)) - WHTCcorrFactor = Declaration.SegRef.WHTCWF(Declaration.CurrentMission.MissionID)(tWHTCpart.Urban) * ENG.WHTCurban / Declaration.WHTCresults(tWHTCpart.Urban) _ - + Declaration.SegRef.WHTCWF(Declaration.CurrentMission.MissionID)(tWHTCpart.Rural) * ENG.WHTCrural / Declaration.WHTCresults(tWHTCpart.Rural) _ - + Declaration.SegRef.WHTCWF(Declaration.CurrentMission.MissionID)(tWHTCpart.Motorway) * ENG.WHTCmw / Declaration.WHTCresults(tWHTCpart.Motorway) + WHTCcorrFactor = CurrentMission.WHTCWF(tWHTCpart.Urban) * ENG.WHTCurban / Declaration.WHTCresults(tWHTCpart.Urban) _ + + CurrentMission.WHTCWF(tWHTCpart.Rural) * ENG.WHTCrural / Declaration.WHTCresults(tWHTCpart.Rural) _ + + CurrentMission.WHTCWF(tWHTCpart.Motorway) * ENG.WHTCmw / Declaration.WHTCresults(tWHTCpart.Motorway) If Not VEH.DeclInitCycle Then Return False @@ -1207,6 +1235,7 @@ Public Class cMission Public MissionID As tMission Public NameStr As String Public CyclePath As String + Public WHTCWF As New Dictionary(Of tWHTCpart, Single) End Class Public Class cSegmentTable @@ -1244,7 +1273,6 @@ Public Class cSegmentTableEntry Public Loading As New Dictionary(Of tMission, String) Public AxleShares As New Dictionary(Of tMission, List(Of Single)) Public AxleSharesTr As New Dictionary(Of tMission, List(Of Single)) - Public WHTCWF As New Dictionary(Of tMission, Dictionary(Of tWHTCpart, Single)) Public TrailerOnlyInLongHaul As Boolean Public Function GetCycles() As List(Of String) diff --git a/VECTO/cVSUM.vb b/VECTO/cVSUM.vb index 70f522d149589c8487b104927652c66da0ad66a4..bf00a90827d8ff9417617ef4a23b686d0ccd21cf 100644 --- a/VECTO/cVSUM.vb +++ b/VECTO/cVSUM.vb @@ -186,104 +186,111 @@ Class cVSUM 'Only Entire-vehicle (not EngOnly) - If Not VEC.EngOnly Then - - 'Pbrake-norm - sum = 0 - For t = 0 To t1 - sum += MODdata.Pbrake(t) - Next - VSUMentries("\\Pbrake").ValueString = (sum / (t1 + 1)) - - 'Eair - sum = 0 - For t = 0 To t1 - sum += MODdata.Pair(t) - Next - VSUMentries("\\Eair").ValueString = (-sum / 3600) - - 'Eroll - sum = 0 - For t = 0 To t1 - sum += MODdata.Proll(t) - Next - VSUMentries("\\Eroll").ValueString = (-sum / 3600) - - 'Egrad - sum = 0 - For t = 0 To t1 - sum += MODdata.Pstg(t) - Next - VSUMentries("\\Egrad").ValueString = (-sum / 3600) - - 'Eacc - sum = 0 - For t = 0 To t1 - sum += MODdata.Pa(t) + MODdata.PaGB(t) + MODdata.PaEng(t) - Next - VSUMentries("\\Eacc").ValueString = (-sum / 3600) - - 'Eaux - sum = 0 - For t = 0 To t1 - sum += MODdata.PauxSum(t) - Next - VSUMentries("\\Eaux").ValueString = (-sum / 3600) - - 'Ebrake - sum = 0 - For t = 0 To t1 - sum += MODdata.Pbrake(t) - Next - VSUMentries("\\Ebrake").ValueString = (sum / 3600) - - 'Etransm - sum = 0 - For t = 0 To t1 - sum += MODdata.PlossDiff(t) + MODdata.PlossGB(t) - Next - VSUMentries("\\Etransm").ValueString = (-sum / 3600) - - 'Retarder - sum = 0 - For t = 0 To t1 - sum += MODdata.PlossRt(t) - Next - VSUMentries("\\Eretarder").ValueString = (-sum / 3600) - - 'TC Losses - sum = 0 - For t = 0 To t1 - sum += MODdata.PlossTC(t) - Next - VSUMentries("\\Etorqueconv").ValueString = (-sum / 3600) - - - - 'Masse, Loading - VSUMentries("\\Mass").ValueString = (VEH.Mass + VEH.MassExtra) - VSUMentries("\\Loading").ValueString = VEH.Loading - - 'CylceKin - For Each VSUMentry In MODdata.CylceKin.VSUMentries - VSUMentries("\\" & VSUMentry.Head).ValueString = MODdata.CylceKin.GetValueString(VSUMentry.Head) - Next - - 'EposICE - sum = 0 - For t = 0 To t1 - sum += Math.Max(0, MODdata.Pe(t)) - Next - VSUMentries("\\EposICE").ValueString = (sum / 3600) - - 'EnegICE - sum = 0 - For t = 0 To t1 - sum += Math.Min(0, MODdata.Pe(t)) - Next - VSUMentries("\\EnegICE").ValueString = (sum / 3600) - - End If + If Not VEC.EngOnly Then + + 'PwheelPos + sum = 0 + For t = 0 To t1 + sum += Math.Max(0, MODdata.Psum(t)) + Next + VSUMentries("\\PwheelPos").ValueString = (sum / (t1 + 1)) + + 'Pbrake-norm + sum = 0 + For t = 0 To t1 + sum += MODdata.Pbrake(t) + Next + VSUMentries("\\Pbrake").ValueString = (sum / (t1 + 1)) + + 'Eair + sum = 0 + For t = 0 To t1 + sum += MODdata.Pair(t) + Next + VSUMentries("\\Eair").ValueString = (-sum / 3600) + + 'Eroll + sum = 0 + For t = 0 To t1 + sum += MODdata.Proll(t) + Next + VSUMentries("\\Eroll").ValueString = (-sum / 3600) + + 'Egrad + sum = 0 + For t = 0 To t1 + sum += MODdata.Pstg(t) + Next + VSUMentries("\\Egrad").ValueString = (-sum / 3600) + + 'Eacc + sum = 0 + For t = 0 To t1 + sum += MODdata.Pa(t) + MODdata.PaGB(t) + MODdata.PaEng(t) + Next + VSUMentries("\\Eacc").ValueString = (-sum / 3600) + + 'Eaux + sum = 0 + For t = 0 To t1 + sum += MODdata.PauxSum(t) + Next + VSUMentries("\\Eaux").ValueString = (-sum / 3600) + + 'Ebrake + sum = 0 + For t = 0 To t1 + sum += MODdata.Pbrake(t) + Next + VSUMentries("\\Ebrake").ValueString = (sum / 3600) + + 'Etransm + sum = 0 + For t = 0 To t1 + sum += MODdata.PlossDiff(t) + MODdata.PlossGB(t) + Next + VSUMentries("\\Etransm").ValueString = (-sum / 3600) + + 'Retarder + sum = 0 + For t = 0 To t1 + sum += MODdata.PlossRt(t) + Next + VSUMentries("\\Eretarder").ValueString = (-sum / 3600) + + 'TC Losses + sum = 0 + For t = 0 To t1 + sum += MODdata.PlossTC(t) + Next + VSUMentries("\\Etorqueconv").ValueString = (-sum / 3600) + + + + 'Masse, Loading + VSUMentries("\\Mass").ValueString = (VEH.Mass + VEH.MassExtra) + VSUMentries("\\Loading").ValueString = VEH.Loading + + 'CylceKin + For Each VSUMentry In MODdata.CylceKin.VSUMentries + VSUMentries("\\" & VSUMentry.Head).ValueString = MODdata.CylceKin.GetValueString(VSUMentry.Head) + Next + + 'EposICE + sum = 0 + For t = 0 To t1 + sum += Math.Max(0, MODdata.Pe(t)) + Next + VSUMentries("\\EposICE").ValueString = (sum / 3600) + + 'EnegICE + sum = 0 + For t = 0 To t1 + sum += Math.Min(0, MODdata.Pe(t)) + Next + VSUMentries("\\EnegICE").ValueString = (sum / 3600) + + End If 'Create Output-string: First = True @@ -386,18 +393,18 @@ Class cVSUM If VSUMentries(key).Multi Then - If dic1.ContainsKey(VSUMentries(key).Head) Then - ls0 = dic1(VSUMentries(key).Head) - Else - ls0 = New List(Of Dictionary(Of String, Object)) - dic1.Add(VSUMentries(key).Head, ls0) - End If + If dic1.ContainsKey(VSUMentries(key).Head) Then + ls0 = dic1(VSUMentries(key).Head) + Else + ls0 = New List(Of Dictionary(Of String, Object)) + dic1.Add(VSUMentries(key).Head, ls0) + End If ls0.Add(dic0) Else - dic1.Add(VSUMentries(key).Head, dic0) + dic1.Add(VSUMentries(key).Head, dic0) End If @@ -429,13 +436,13 @@ Class cVSUM End Function - Private Sub AddToVSUM(ByVal IDstring As String, ByVal Head As String, ByVal Unit As String, Optional Multi As Boolean = False) - If Not VSUMentries.ContainsKey(IDstring) Then - VSUMentries.Add(IDstring, New cVSUMentry(Head, Unit)) - VSUMentryList.Add(IDstring) - If Multi Then VSUMentries(IDstring).Multi = True - End If - End Sub + Private Sub AddToVSUM(ByVal IDstring As String, ByVal Head As String, ByVal Unit As String, Optional Multi As Boolean = False) + If Not VSUMentries.ContainsKey(IDstring) Then + VSUMentries.Add(IDstring, New cVSUMentry(Head, Unit)) + VSUMentryList.Add(IDstring) + If Multi Then VSUMentries(IDstring).Multi = True + End If + End Sub Public Function Init(ByVal JobFile As String) As Boolean @@ -621,15 +628,15 @@ Class cVSUM Return False End Try - AddToVSUM("FC_h", "FCh", "[g/h]") - AddToVSUM("FC-AUXc_h", "FCh-AUXc", "[g/h]") - AddToVSUM("FC-WHTCc_h", "FCh-WHTCc", "[g/h]") + AddToVSUM("FC_h", "FC-Map", "[g/h]", True) + AddToVSUM("FC-AUXc_h", "FC-AUXc", "[g/h]", True) + AddToVSUM("FC-WHTCc_h", "FC-WHTCc", "[g/h]", True) If Not VEC0.EngOnly Then - AddToVSUM("FC_km", "FC", "[g/km]") - AddToVSUM("FC-AUXc_km", "FC-AUXc", "[g/km]") - AddToVSUM("FC-WHTCc_km", "FC-WHTCc", "[g/km]") + AddToVSUM("FC_km", "FC-Map", "[g/km]", True) + AddToVSUM("FC-AUXc_km", "FC-AUXc", "[g/km]", True) + AddToVSUM("FC-WHTCc_km", "FC-WHTCc", "[g/km]", True) AddToVSUM("CO2_km", "CO2", "[g/km]", True) AddToVSUM("CO2_tkm", "CO2", "[g/tkm]", True) @@ -651,7 +658,8 @@ Class cVSUM If NonEngOnly Then - 'Vehicle-related fields + 'Vehicle-related fields + AddToVSUM("\\PwheelPos", "PwheelPos", "[kW]") AddToVSUM("\\Pbrake", "Pbrake", "[kW]") AddToVSUM("\\EposICE", "EposICE", "[kWh]") AddToVSUM("\\EnegICE", "EnegICE", "[kWh]") @@ -670,7 +678,7 @@ Class cVSUM 'CylceKin CylceKin = New cCycleKin For Each VSUMentry In CylceKin.VSUMentries - AddToVSUM("\\" & VSUMentry.Head, VSUMentry.Head, VSUMentry.Unit) + AddToVSUM("\\" & VSUMentry.Head, VSUMentry.Head, VSUMentry.Unit) Next End If @@ -714,8 +722,8 @@ Class cVSUM End Class Public Class cVSUMentry - Public Head As String - Public Unit As String + Public Head As String + Public Unit As String Public MyVal As Object Public Multi As Boolean @@ -723,8 +731,8 @@ Public Class cVSUMentry Head = HeadStr Unit = UnitStr MyVal = Nothing - Multi = False - End Sub + Multi = False + End Sub Public Property ValueString As Object Get