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
  • 326acc30610b24dbe9d6c05648f90e34f643cd47
  • stable default
  • feat-fchv-bus
  • fix-h2-ice-bus
  • powertrains-multiple-axles
  • amdm3/develop
  • 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

DriverStrategyTest.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.
    GearboxTest.cs 3.18 KiB
    using System;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using TUGraz.VectoCore.FileIO.Reader.Impl;
    using TUGraz.VectoCore.Models.Simulation.Impl;
    using TUGraz.VectoCore.Models.SimulationComponent.Impl;
    using TUGraz.VectoCore.Tests.Utils;
    using TUGraz.VectoCore.Utils;
    
    namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
    {
    	[TestClass]
    	public class GearboxTest
    	{
    		protected string GearboxDataFile = @"TestData\Components\24t Coach.vgbx";
    
    		public TestContext TestContext { get; set; }
    
    		[TestMethod]
    		public void AxleGearTest()
    		{
    			var vehicle = new VehicleContainer();
    			var gbxData = EngineeringModeSimulationDataReader.CreateGearboxDataFromFile(GearboxDataFile);
    			//Gears gearData = new Gears();
    			var axleGear = new AxleGear(vehicle, gbxData.AxleGearData);
    
    			var mockPort = new MockTnOutPort();
    			axleGear.InPort().Connect(mockPort);
    
    			var absTime = 0.SI<Second>();
    			var dt = 1.SI<Second>();
    
    			var rdyn = 520;
    			var speed = 20.320;
    
    
    			var angSpeed = SpeedToAngularSpeed(speed, rdyn);
    			var PvD = 279698.4.SI<Watt>();
    			// Double.Parse(TestContext.DataRow["PowerGbxOut"].ToString(), CultureInfo.InvariantCulture).SI<Watt>();
    
    			var torqueToWheels = Formulas.PowerToTorque(PvD, angSpeed);
    			//var torqueFromEngine = 0.SI<NewtonMeter>();
    
    			axleGear.Request(absTime, dt, torqueToWheels, angSpeed);
    
    			var loss = 9401.44062.SI<Watt>();
    
    			Assert.AreEqual(Formulas.PowerToTorque(PvD + loss, angSpeed * gbxData.AxleGearData.Ratio).Value(),
    				mockPort.Torque.Value(), 0.01, "Torque Engine Side");
    			Assert.AreEqual((angSpeed * gbxData.AxleGearData.Ratio).Value(), mockPort.AngularVelocity.Value(), 0.01,
    				"Torque Engine Side");
    		}
    
    		protected PerSecond SpeedToAngularSpeed(double v, double r)
    		{
    			return ((60 * v) / (2 * r * Math.PI / 1000)).RPMtoRad();
    		}
    
    		[TestMethod]
    		public void Gearbox_IntersectFullLoadCurves()
    		{
    			Assert.Inconclusive("Test if the intersection of two fullloadcurves is correct");
    		}
    
    		[TestMethod]
    		public void Gearbox_Request()
    		{
    			var container = new VehicleContainer();
    			var gearboxData = EngineeringModeSimulationDataReader.CreateGearboxDataFromFile(GearboxDataFile);
    			var gearbox = new Gearbox(container, gearboxData);
    
    			var port = new MockTnOutPort();
    			gearbox.InPort().Connect(port);
    
    			var absTime = 0.SI<Second>();
    			var dt = 0.5.SI<Second>();
    			var torque = 500.SI<NewtonMeter>();
    			var angularVelocity = 1400.RPMtoRad();
    
    			var ratio = 1; // todo: set correct ratio
    			var expectedN = angularVelocity * ratio;
    			var expectedT = 500.SI<NewtonMeter>(); //todo: set correct value
    
    			gearbox.OutPort().Request(absTime, dt, torque, angularVelocity);
    			AssertHelper.AreRelativeEqual(absTime, port.AbsTime);
    			AssertHelper.AreRelativeEqual(dt, port.Dt);
    			AssertHelper.AreRelativeEqual(expectedN, port.AngularVelocity);
    			AssertHelper.AreRelativeEqual(expectedT, port.Torque);
    
    			// todo check for different ranges and gears
    			// todo set initial gear
    
    			Assert.Inconclusive();
    		}
    
    		[TestMethod]
    		public void Gearbox_ShiftUp()
    		{
    			Assert.Inconclusive();
    		}
    
    		[TestMethod]
    		public void Gearbox_ShiftDown()
    		{
    			Assert.Inconclusive();
    		}
    
    		[TestMethod]
    		public void Gearbox_Overload()
    		{
    			Assert.Inconclusive();
    		}
    	}
    }