Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Select Git revision
  • 4743aa70f5cc56aa1e7151e5ab7761459db9cd24
  • stable default
  • amdm3/develop
  • fix-h2-ice-bus
  • feat-fchv-bus
  • powertrains-multiple-axles
  • issue-1039
  • amdm3/main
  • test/nuget_publish
  • IEPC-experiments
  • amdm2/main
  • amdm2/develop
  • aptngearbox-not-auto
  • playground
  • official/main
  • official/develop
  • issue-templates
  • pdf-reports
  • HEV-timeruns-dev
  • timerun-empower-hybrids
  • timerun-pwheel-hybrids
  • Release/v5.0.3
  • Release/v5.0.1
  • Release/5.0.0-RC
  • Nuget/v0.11.4-DEV
  • Release/v0.11.4-DEV
  • Release/4.3.4-DEV
  • Release/4.3.3
  • Release/4.3.2-RC
  • Release/v4.3.0-DEV
  • Release/4.2.7
  • XMLConverterTool/4.2.6.0
  • Release/4.2.6-RC
  • Release/v4.2.5
  • Release/v4.2.3
  • Release/v4.2.2.3539-RC
  • Release/v4.2.1.3469
  • Release/v0.11.2.3456-DEV
  • Release/v4.2.0.3448-RC
  • Release/v4.1.3.3415
  • Release/v4.1.1.3413
41 results

AuxDemandTest.cs

Blame
  • Forked from VECTO / VECTO Sim
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    AuxDemandTest.cs 4.45 KiB
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using NUnit.Framework;
    using TUGraz.VectoCore.Models.Simulation.Data;
    using TUGraz.VectoCore.Models.Simulation.DataBus;
    using TUGraz.VectoCore.Models.Simulation.Impl;
    using TUGraz.VectoCore.Models.SimulationComponent.Data;
    using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
    using TUGraz.VectoCore.Models.SimulationComponent.Impl;
    using TUGraz.VectoCore.Tests.Utils;
    using TUGraz.VectoCore.Utils;
    using Assert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert;
    
    namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries
    {
    	[TestFixture]
    	public class AuxDemandTest
    	{
    		[Test]
    		[TestCase(12000, 1256, 148, 148, 6087.0317)]
    		[TestCase(12000, 1256, -15, -50, 8954.1435)]
    		[TestCase(15700, 1319, -35.79263, -144.0441, 9093.9511)]
    		public void AuxDemandtest(double vehicleWeight, double engineSpeedRpm, double driveLinePower, double internalPower,
    			double expectedPowerDemand)
    		{
    			MockDriver driver;
    			var busAux = CreateBusAuxAdapterForTesting(vehicleWeight, out driver);
    
    
    			var engineDrivelinePower = (driveLinePower * 1000).SI<Watt>();
    			var engineSpeed = engineSpeedRpm.RPMtoRad();
    			busAux.Initialize(engineDrivelinePower / engineSpeed, engineSpeed);
    
    			var torque = busAux.PowerDemand(0.SI<Second>(), 1.SI<Second>(), engineDrivelinePower / engineSpeed,
    				(internalPower * 1000).SI<Watt>() / engineSpeed, engineSpeed);
    
    			Assert.AreEqual(expectedPowerDemand, (torque * engineSpeed).Value(), 1e-4);
    		}
    
    
    		[Test]
    		public void AuxFCConsumptionTest()
    		{
    			var driveLinePower = 148;
    			var engineSpeedRpm = 1256;
    			var internalPower = 148;
    
    			MockDriver driver;
    			var busAux = CreateBusAuxAdapterForTesting(12000, out driver);
    
    			var engineDrivelinePower = (driveLinePower * 1000).SI<Watt>();
    			var engineSpeed = engineSpeedRpm.RPMtoRad();
    			busAux.Initialize(engineDrivelinePower / engineSpeed, engineSpeed);
    
    			var modalData = new MockModalDataContainer();
    
    			for (int i = 0; i < 10; i++) {
    				var torque = busAux.PowerDemand(0.SI<Second>(), 1.SI<Second>(), engineDrivelinePower / engineSpeed,
    					(internalPower * 1000).SI<Watt>() / engineSpeed, engineSpeed);
    				Assert.AreEqual(6087.0317, (torque * engineSpeed).Value(), 1e-3);
    				busAux.CommitSimulationStep(modalData);
    			}
    
    			Assert.AreEqual(79.303, ((SI)modalData[ModalResultField.AA_TotalCycleFC_Grams]).Value(), 0.0001);
    
    			engineDrivelinePower = -15000.SI<Watt>();
    			internalPower = -50;
    
    			for (int i = 0; i < 10; i++) {
    				var torque = busAux.PowerDemand(0.SI<Second>(), 1.SI<Second>(), engineDrivelinePower / engineSpeed,
    					(internalPower * 1000).SI<Watt>() / engineSpeed, engineSpeed);
    				Assert.AreEqual(8954.1435, (torque * engineSpeed).Value(), 1e-3);
    				busAux.CommitSimulationStep(modalData);
    			}
    
    			Assert.AreEqual(82.5783, ((SI)modalData[ModalResultField.AA_TotalCycleFC_Grams]).Value(), 0.0001);
    
    			engineDrivelinePower = (driveLinePower * 1000).SI<Watt>();
    			internalPower = 148;
    
    			for (int i = 0; i < 10; i++) {
    				var torque = busAux.PowerDemand(0.SI<Second>(), 1.SI<Second>(), engineDrivelinePower / engineSpeed,
    					(internalPower * 1000).SI<Watt>() / engineSpeed, engineSpeed);
    				Assert.AreEqual(6087.0317, (torque * engineSpeed).Value(), 1e-3);
    				busAux.CommitSimulationStep(modalData);
    			}
    
    			Assert.AreEqual(162.4655, ((SI)modalData[ModalResultField.AA_TotalCycleFC_Grams]).Value(), 0.0001);
    		}
    
    
    		public static BusAuxiliariesAdapter CreateBusAuxAdapterForTesting(double vehicleWeight, out MockDriver driver)
    		{
    			var auxFilePath = @"TestData\Integration\BusAuxiliaries\AdvAuxTest.aaux";
    			var engineFLDFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vfld";
    			var engineFCMapFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vmap";
    
    			var vehicle = new VehicleContainer();
    			var fcMap = FuelConsumptionMap.ReadFromFile(engineFCMapFilePath);
    			var fld = EngineFullLoadCurve.ReadFromFile(engineFLDFilePath);
    			var modelData = new CombustionEngineData() {
    				ConsumptionMap = fcMap,
    				FullLoadCurve = fld,
    				IdleSpeed = 560.SI<PerSecond>()
    			};
    
    			var engine = new CombustionEngine(vehicle, modelData);
    			//new Vehicle(vehicle, new VehicleData());
    			driver = new MockDriver(vehicle) { VehicleStopped = false, DrivingBehavior = DrivingBehavior.Braking };
    			var gbx = new MockGearbox(vehicle) { Gear = 1 };
    			var brakes = new MockBrakes(vehicle);
    			var busAux = new BusAuxiliariesAdapter(vehicle, auxFilePath, "Coach", vehicleWeight.SI<Kilogram>(),
    				fcMap, modelData.IdleSpeed);
    			return busAux;
    		}
    	}
    }