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
  • 1d707b46cbdd7d7b018cc0df21d2a4419599ab59
  • 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

DeclarationDataTest.cs

  • 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.
    EngineOnlyCycleTest.cs 5.60 KiB
    /*
    * This file is part of VECTO.
    *
    * Copyright © 2012-2017 European Union
    *
    * Developed by Graz University of Technology,
    *              Institute of Internal Combustion Engines and Thermodynamics,
    *              Institute of Technical Informatics
    *
    * VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved
    * by the European Commission - subsequent versions of the EUPL (the "Licence");
    * You may not use VECTO except in compliance with the Licence.
    * You may obtain a copy of the Licence at:
    *
    * https://joinup.ec.europa.eu/community/eupl/og_page/eupl
    *
    * Unless required by applicable law or agreed to in writing, VECTO
    * distributed under the Licence is distributed on an "AS IS" basis,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the Licence for the specific language governing permissions and
    * limitations under the Licence.
    *
    * Authors:
    *   Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology
    *   Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology
    *   Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology
    *   Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology
    *   Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology
    *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
    */
    
    using System.IO;
    using System.Linq;
    using NUnit.Framework;
    using TUGraz.VectoCommon.Models;
    using TUGraz.VectoCommon.Utils;
    using TUGraz.VectoCore.Configuration;
    using TUGraz.VectoCore.InputData.Reader;
    using TUGraz.VectoCore.Models.Connector.Ports.Impl;
    using TUGraz.VectoCore.Models.Declaration;
    using TUGraz.VectoCore.Models.Simulation.Data;
    using TUGraz.VectoCore.Models.Simulation.Impl;
    using TUGraz.VectoCore.Models.SimulationComponent.Data;
    using TUGraz.VectoCore.Models.SimulationComponent.Impl;
    using TUGraz.VectoCore.OutputData;
    using TUGraz.VectoCore.OutputData.FileIO;
    using TUGraz.VectoCore.Tests.Utils;
    
    namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle
    {
    	[TestFixture]
    	public class EngineOnlyCycleTest
    	{
    		private const string EngineFile = @"TestData\Components\24t Coach.veng";
    
    		[OneTimeSetUp]
    		public void Init()
    		{
    			Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
    		}
    
    		[TestCase("24tCoach_EngineOnly",
    			@"TestData\Components\24t Coach.veng",
    			@"TestData\Cycles\Coach Engine Only.vdri",
    			@"TestData\Results\EngineOnlyCycles\24tCoach_EngineOnly.vmod")]
    		[TestCase("24tCoach_EngineOnlyPaux",
    			@"TestData\Components\24t Coach.veng",
    			@"TestData\Cycles\Coach Engine Only Paux.vdri",
    			@"TestData\Results\EngineOnlyCycles\24tCoach_EngineOnlyPaux.vmod")]
    		[TestCase("24tCoach_EngineOnlyFullLoad",
    			@"TestData\Components\24t Coach.veng",
    			@"TestData\Cycles\Coach Engine Only FullLoad.vdri",
    			@"TestData\Results\EngineOnlyCycles\24tCoach_EngineOnlyFullLoad.vmod")]
    		public void TestEngineOnlyDrivingCycle(string testName, string engineFile, string cycleFile, string modalResultFile)
    		{
    			var data = DrivingCycleDataReader.ReadFromFile(cycleFile, CycleType.EngineOnly,
    				false);
    			var vehicle = new VehicleContainer(ExecutionMode.Engineering);
    			// ReSharper disable once ObjectCreationAsStatement
    			new MockDrivingCycle(vehicle, data);
    			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(engineFile, 0);
    
    			var aux = new EngineAuxiliary(vehicle);
    			aux.AddCycle(Constants.Auxiliaries.Cycle);
    
    			var engine = new EngineOnlyCombustionEngine(vehicle, engineData);
    			engine.Connect(aux);
    
    			//aux.InPort().Connect(engine.OutPort());
    			var port = engine.OutPort();
    
    			var absTime = 0.SI<Second>();
    			var dt = 1.SI<Second>();
    
    			var modFile = Path.GetFileNameWithoutExtension(modalResultFile);
    			//Path.GetFileNameWithoutExtension(Path.GetRandomFileName()); // + ".vmod";
    			var fileWriter = new FileOutputWriter(modFile);
    			var modData = new ModalDataContainer(modFile, FuelType.DieselCI, fileWriter, true) { WriteModalResults = true };
    			modData.AddAuxiliary(Constants.Auxiliaries.Cycle);
    			port.Initialize(data.Entries.First().Torque, data.Entries.First().AngularVelocity);
    			foreach (var cycleEntry in data.Entries) {
    				// ReSharper disable once UnusedVariable
    				var response = (ResponseSuccess)port.Request(absTime, dt, cycleEntry.Torque, cycleEntry.AngularVelocity);
    				foreach (var sc in vehicle.SimulationComponents()) {
    					modData[ModalResultField.time] = absTime + dt / 2;
    					sc.CommitSimulationStep(modData);
    				}
    
    				modData.CommitSimulationStep();
    				absTime += dt;
    			}
    			modData.Finish(VectoRun.Status.Success);
    
    			ResultFileHelper.TestModFile(modalResultFile, modFile + Constants.FileExtensions.ModDataFile);
    		}
    
    		[TestCase]
    		public void AssembleEngineOnlyPowerTrain()
    		{
    			var dataWriter = new MockModalDataContainer();
    
    			var vehicleContainer = new VehicleContainer(ExecutionMode.Engineering);
    
    			var engine = new CombustionEngine(vehicleContainer, MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile, 0));
    			var gbx = new MockGearbox(vehicleContainer) { Gear = 0 };
    
    			var absTime = 0.SI<Second>();
    			var dt = 1.SI<Second>();
    
    			var angularVelocity = 644.4445.RPMtoRad();
    			var power = 2329.973.SI<Watt>();
    
    			engine.OutPort().Initialize(power / angularVelocity, angularVelocity);
    			engine.OutPort().Request(absTime, dt, power / angularVelocity, angularVelocity);
    
    			foreach (var sc in vehicleContainer.SimulationComponents()) {
    				sc.CommitSimulationStep(dataWriter);
    			}
    
    			Assert.IsNotNull(dataWriter.CurrentRow);
    		}
    	}
    }