diff --git a/Documentation/User Manual/1-user-interface/D_VECTO-Job-Editor.md b/Documentation/User Manual/1-user-interface/D1_VECTO-Job-Editor.md similarity index 100% rename from Documentation/User Manual/1-user-interface/D_VECTO-Job-Editor.md rename to Documentation/User Manual/1-user-interface/D1_VECTO-Job-Editor.md diff --git a/Documentation/User Manual/1-user-interface/D2_VTP-Job-Editor.md b/Documentation/User Manual/1-user-interface/D2_VTP-Job-Editor.md new file mode 100644 index 0000000000000000000000000000000000000000..28a384e45767473d8e7f0902d9d3cc3ce0bc841f --- /dev/null +++ b/Documentation/User Manual/1-user-interface/D2_VTP-Job-Editor.md @@ -0,0 +1,57 @@ +##VTP-Job Editor + + + + + +###Description + +The [VTP job file (.vecto)](#vtp-job-file) includes all informations to run a VECTO calculation. It defines the vehicle and the driving cycle(s) to be used for calculation. In summary it defines: + +- Filepath to the Vehicle File (.xml)](#vehicle-editor which defines all relevant parameters, including all components +- Driving Cycles + + +###Relative File Paths + +It is recommended to use relative filepaths. This way the Job File and all input files can be moved without having to update the paths. Example: "Vehicles\\Vehicle1.xml" points to the "Vehicles" subdirectory of the Job File's directoy. + +VECTO automatically uses relative paths if the input file (e.g. Vehicle File) is in the same directory as the Job File. (*Note:* The Job File must be saved before browsing for input files.) + + + +Cycles +: List of cycles used for calculation. The .vdri format is described [here](#driving-cycles-.vdri). +**Double-click** an entry to open the file (see [File Open Command](#settings)). +**Click** selected items to edit file paths. + +:  Add cycle (.vdri) +:  Remove the selected cycle from the list + + + +###Chart Area + +If a valid Vehicle File is loaded into the Editor the main vehicle parameters like HDV class and axle configuration are shown here. The plot shows the full load curve(s) and sampling points of the fuel consumption map. + +###Controls + + New Job File +: Create a new empty .vecto file + + Open existing Job File +: Open an existing .vecto file + + ***Save current Job File*** + + ***Save Job File as...*** + + Send current file to Job List in [Main Form](#main-form) +: **Note:** The file will be sent to the Job List automatically when saved. + + ***Browse for vehicle file*** + + Save and close file +: File will be added to Job List in the [Main Form](#main-form). + + ***Cancel without saving*** diff --git a/Documentation/User Manual/2-calculation-modes/calculation-modes.md b/Documentation/User Manual/2-calculation-modes/calculation-modes.md index 1470a6a08ef289981dad68318dd4a7d08a75fcce..942b7f3d890f85d89cc248c78a4b90fda1c772ce 100644 --- a/Documentation/User Manual/2-calculation-modes/calculation-modes.md +++ b/Documentation/User Manual/2-calculation-modes/calculation-modes.md @@ -8,6 +8,9 @@ VECTO supports different calculation modes for declaring a vehicle, validation o - [**Engineering Mode**](#engineering-mode) : This mode is for experimenting and validation of a vehicle. There exist several options how the driving cycle may be defined (Target speed, Measured Speed, Pwheel). +- [**Verification Test Mode**](#verification-test-mode) + : This mode is for simulating a vehicle defined in declaration mode for the purpose of verification tests. This mode is similar to the PWheel simulation in engineering mode. + - [**Engine Only Mode**](#engine-only-mode) : This mode is for validation of a measured engine component. Only the engine is simulated in this mode. diff --git a/Documentation/User Manual/2-calculation-modes/declaration.md b/Documentation/User Manual/2-calculation-modes/declaration.md index 6746e598e04899d071af9f4f780dabab78f85680..e9978f4846db25955b064e742c99cebd7b821c9d 100644 --- a/Documentation/User Manual/2-calculation-modes/declaration.md +++ b/Documentation/User Manual/2-calculation-modes/declaration.md @@ -14,5 +14,5 @@ Declaration Mode can be activated in the [Options Tab](#main-form). - Modal results (.vmod). One file for each vehicle/cycle/loading combination. Modal results are only written if the modal output is enabled in the 'Options' tab on the [Main Window](#main-form) - Sum results (.vsum). One file for each invocation of VECTO. -- Results overview (.pdf). One file for each job. +- Results (.xml). One file for each job. diff --git a/Documentation/User Manual/2-calculation-modes/verification-test.md b/Documentation/User Manual/2-calculation-modes/verification-test.md new file mode 100644 index 0000000000000000000000000000000000000000..45356638f5b6573183a6f44100b4806940d52a06 --- /dev/null +++ b/Documentation/User Manual/2-calculation-modes/verification-test.md @@ -0,0 +1,14 @@ +##Verification Test Mode + +The purpose of the verification test is to simulate a vehicle defined in declaration mode on a measured real-driving cycle. This simulation mode uses its own [cyle format](#verification-test-cycle), requiring mainly vehicle speed, wheel speed, wheel torque, engine-fan speed, and engine speed. VECTO then calculates the appropriate gear and simulates the cycle. Auxiliary power is according to the technologies defined in the vehicle. However, the engine fan auxiliary is ignored and the power demand for the engine fan is calcuated based on the engine-fan speed. The power demand for the other auxiliaries depends on the vehicle's actual speed. The fuel consumption is calculated using the engine speed from the driving cycle and the torque demand as given in the cycle, adding the losses of all powertrain components. + +###Requirements + +- One or more checked job files in the Job List +- Each job must include a vehicle in declaration mode (XML) +- Each job file must include at least one driving cycle + +###Results + +- Modal results (.vmod). One file for each vehicle/cycle combination. Modal results are only written if the modal output is enabled in the 'Options' tab on the [Main Window](#main-form) +- Sum results (.vsum). One file for each invocation of VECTO. diff --git a/Documentation/User Manual/5-input-and-output-files/VDRI.md b/Documentation/User Manual/5-input-and-output-files/VDRI.md index 37367f547e2fb1c0373824492ff07232c34ea76c..5888c1a51e60f0eba17ea9629f211bff033846d9 100644 --- a/Documentation/User Manual/5-input-and-output-files/VDRI.md +++ b/Documentation/User Manual/5-input-and-output-files/VDRI.md @@ -5,6 +5,7 @@ The basic file format is [Vecto-CSV](#csv) and the file type ending is ".vdri". ###Driving Cycle Types - **Declaration Mode**: [Target speed, distance-based](#declaration-mode-cycles) +- **Verification Test Mode**: [Measured driving cycle, time-based](#verification-test-cycle) - **Engineering Mode**: - [Target speed, distance-based](#engineering-mode-target-speed-distance-based-cycle) - [Measured speed, time-based](#engineering-mode-measured-speed-time-based-cycle) @@ -30,6 +31,45 @@ In Declaration Mode driving cycles are automatically chosen depending on vehicle - Urban: 40km - Urban Delivery: 28km +###Verification Test Cycle +This kind of cycle is used for simulating vehicles defined in declaration mode (xml) on a real driving cycle. + +Header: **\<t>, \<v>, \<n\_eng>,\<n\_fan>, \<tq\_left>, \<tq\_right>, \<n\_wh\_left>, \<n\_wh\_right>***, \<fc>, \<gear>* + +**Bold columns** are mandatory. *Italic columns* are optional. Only the listed columns are allowed (no other columns!).<br /> +Units are optional and are enclosed in [square-brackets] after the header-column. Comments may be written with a preceding hash-sign "#". + +| Identifier | Unit | Description | +| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **t** | [s] | The absolute time. Must always be increasing. | +| **v** | [km/h] | The actual velocity of the vehicle. Must be >= 0 km/h. | +| **n_eng** | [rpm] | The actual engine speed. Must be >= 0 rpm. | +| **n_fan** | [rpm] | The actual engine-fan speed. Must be >= 0 rpm. | +| **tq_left** | [Nm] | The actual torque at the driven wheel (left side) | +| **tq_right** | [Nm] | The actual torque at the driven wheel (left side) | +| **n_wh_left** | [rpm] | The actual wheel speed of the driven wheel (left side). Must be >= 0 rpm. | +| **n_wh_right** | [rpm] | The actual wheel speed of the driven wheel (right side). Must be >= 0 rpm. | +| *fc* | [g/h] | Fuel consumption | +| *gear* | [-] | The actual gear | + +**Example:** + +| \<t> [s] | \<v> [km/h] | \<n_eng> [rpm] | \<n_fan> [rpm] | \<tq_left> [Nm] | \<tq_right> [Nm] | \<n_wh_left> [rpm] | \<n_wh_right> [rpm] | \<fc> [g/h] | \<gear> | +| --------- | ------------ | --------------- | --------------- | ---------------- | ----------------- | ------------------- | -------------------- | ------------ | -------- | +| 0 | 0 | 599.7 | 727.3 | 319.1 | 429.8 | 0.78 | 0.78 | 836 | 3 | +| 0.5 | 0 | 600.2 | 727.3 | 316.7 | 430.0 | 0.78 | 0.78 | 836 | 3 | +| 1 | 0 | 600.1 | 726.9 | 319.9 | 430.8 | 0.78 | 0.78 | 836 | 3 | +| 1.5 | 0 | 599.9 | 726.6 | 317.4 | 431.1 | 0.78 | 0.79 | 836 | 3 | +| 2 | 0 | 600.1 | 726.2 | 319.5 | 421.7 | 0.78 | 0.78 | 836 | 3 | +| 2.5 | 0 | 599.7 | 726 | 319.0 | 434.1 | 0.78 | 0.78 | 836 | 3 | +| 3 | 0 | 600.2 | 725.4 | 322.2 | 428.5 | 0.78 | 0.78 | 836 | 3 | +| 3.5 | 0 | 599.9 | 724.7 | 317.3 | 430.4 | 0.78 | 0.78 | 836 | 3 | +| 4 | 0 | 599.5 | 724.0 | 320.9 | 428.0 | 0.78 | 0.78 | 836 | 3 | +| 4.5 | 0 | 599.9 | 723.4 | 187.0 | 247.6 | 0.78 | 0.78 | 836 | 3 | +| 5 | 0 | 598.7 | 722.5 | 156.9 | 171.5 | 0.78 | 0.78 | 1003.2 | 3 | + + + ###Engineering Mode: Target-Speed, Distance-Based Cycle This driving cycle defines the target speed over distance. Vecto tries to achieve and maintain this target speed. diff --git a/Documentation/User Manual/5-input-and-output-files/VECTO-VTP.md b/Documentation/User Manual/5-input-and-output-files/VECTO-VTP.md new file mode 100644 index 0000000000000000000000000000000000000000..095ab03f0981bf56b34202bce9fed702da931353 --- /dev/null +++ b/Documentation/User Manual/5-input-and-output-files/VECTO-VTP.md @@ -0,0 +1,41 @@ +## VTP-Job File + +File for the definition of a verification test job in vecto. A job contains everything what is needed to run a simulation. Can be created with the [Verifcation Test Job Editor](#vtp-job-editor). + +- File format is [JSON](#json). +- Filetype ending is ".vecto" + +Refers to other files: + +* [Vehicle (XML)](#vehicle-file-.vveh) +* [Gearbox (VGBX)](#gearbox-file-.vgbx) +* [Driving Cycle (VDRI)](#driving-cycles-.vdri) + + + +**Example:** + +~~~json +{ + "Header": { + "CreatedBy": "VECTO 3.2", + "Date": "2017-11-14T13:16:31.7337506Z", + "AppVersion": "3", + "FileVersion": 4 + }, + "Body": { + "SavedInDeclMode": false, + "DeclarationVehicle": "SampleVehicle.xml", + "FanPowerCoefficients": [ + 0.00000055, + 14.62, + 108.5 + ], + "FanDiameter": 0.225, + "Cycles": [ + "VTP-cycle.vdri" + ] + } +} +~~~ + diff --git a/Documentation/User Manual/convert.bat b/Documentation/User Manual/convert.bat index 12ba5d5aecc9c4adfd8c95998d53766b3a4fe3a2..48632dc34037ee0e72aa5e19e98649ca3ae64360 100644 --- a/Documentation/User Manual/convert.bat +++ b/Documentation/User Manual/convert.bat @@ -9,7 +9,11 @@ for /f %%f in (files.txt) do set LIST=!LIST! "%%f" REM pandoc --verbose -f markdown+raw_html %LIST% -s -S --toc --toc-depth=2 --self-contained --email-obfuscation=none --section-divs --mathjax=includes/mathjax.js -c includes/style.css -c includes/print.css -B includes/header.html -A includes/footer.html -o help.html -H includes/jquery.js -H includes/jquery-ui.js -H includes/include.js -%LOCALAPPDATA%\Pandoc\pandoc --verbose -f markdown+raw_html %LIST% -s --toc --toc-depth=2 --self-contained --email-obfuscation=none --section-divs --webtex -c includes/style.css -c includes/print.css -B includes/header.html -A includes/footer.html -o help.html -H includes/jquery.js -H includes/jquery-ui.js -H includes/include.js + +REM %LOCALAPPDATA%\Pandoc\pandoc --verbose -f markdown+raw_html %LIST% -s --toc --toc-depth=2 --self-contained --email-obfuscation=none --section-divs --webtex -c includes/style.css -c includes/print.css -B includes/header.html -A includes/footer.html -o help.html -H includes/jquery.js -H includes/jquery-ui.js -H includes/include.js + +%LOCALAPPDATA%\Pandoc\pandoc --verbose -f markdown+raw_html %LIST% -s -S --toc --toc-depth=2 --self-contained --email-obfuscation=none --section-divs --webtex -c includes/style.css -c includes/print.css -B includes/header.html -A includes/footer.html -o help.html -H includes/jquery.js -H includes/jquery-ui.js -H includes/include.js + REM pandoc %LIST% -s -S --toc --toc-depth=2 --self-contained --email-obfuscation=none --section-divs --webtex -c includes/style.css -B includes/header.html -A includes/footer.html -o help.html -H includes/jquery.js -H includes/jquery-ui.js -H includes/include.js REM pandoc %LIST% -s -S --toc --toc-depth=2 --self-contained --email-obfuscation=none --section-divs --webtex="https://latex.codecogs.com/svg.latex?\large " -c includes/style.css -B includes/header.html -A includes/footer.html -o help.html -H includes/jquery.js -H includes/jquery-ui.js -H includes/include.js diff --git a/Documentation/User Manual/files.txt b/Documentation/User Manual/files.txt index 9957ec50e13bef47af00b2752f01b7a2a9b17915..f54be18c1b83ccb679f46d9eb38480b12ca7f3b3 100644 --- a/Documentation/User Manual/files.txt +++ b/Documentation/User Manual/files.txt @@ -2,7 +2,8 @@ 1-user-interface/A_index.md 1-user-interface/B_mainform.md 1-user-interface/C_settings.md -1-user-interface/D_VECTO-Job-Editor.md +1-user-interface/D1_VECTO-Job-Editor.md +1-user-interface/D2_VTP-Job-Editor.md 1-user-interface/E_VECTO-Editor_Aux.md 1-user-interface/K0_VECTO-AdvancedAux.md 1-user-interface/K1_VECTO-AdvancedAux_EL.md @@ -17,6 +18,7 @@ 2-calculation-modes/calculation-modes.md 2-calculation-modes/engineering.md 2-calculation-modes/declaration.md +2-calculation-modes/verification-test.md 2-calculation-modes/engine-only.md 3-simulation-models/simulation-models.md 3-simulation-models/powertrain.md @@ -44,6 +46,7 @@ 5-input-and-output-files/CSV.md 5-input-and-output-files/JSON.md 5-input-and-output-files/VECTO.md +5-input-and-output-files/VECTO-VTP.md 5-input-and-output-files/VVEH.md 5-input-and-output-files/VCDV.md 5-input-and-output-files/VCDB.md diff --git a/VectoCore/VectoCore/InputData/Reader/DrivingCycleDataReader.cs b/VectoCore/VectoCore/InputData/Reader/DrivingCycleDataReader.cs index df1ae6cbeae0e89ab8353375891747b3964ecbda..fcbdcaaee9b75312308491962807d1ac4055b4d9 100644 --- a/VectoCore/VectoCore/InputData/Reader/DrivingCycleDataReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/DrivingCycleDataReader.cs @@ -732,7 +732,7 @@ namespace TUGraz.VectoCore.InputData.Reader row.ParseDoubleOrGetDefault(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(), EngineSpeed = row.ParseDouble(Fields.EngineSpeedSuffix).RPMtoRad(), WheelAngularVelocity = wheelSpeed, - Torque = (row.ParseDouble(Fields.WheelTorqueLeft).SI<NewtonMeter>() * row.ParseDouble(Fields.WheelSpeedLeft).RPMtoRad() + row.ParseDouble(Fields.WheelTorqueRight).SI<NewtonMeter>() * row.ParseDouble(Fields.WheelSpeedRight).RPMtoRad()) / wheelSpeed, + Torque = wheelSpeed.IsEqual(0, 1e-3) ? 0.SI<NewtonMeter>() : (row.ParseDouble(Fields.WheelTorqueLeft).SI<NewtonMeter>() * row.ParseDouble(Fields.WheelSpeedLeft).RPMtoRad() + row.ParseDouble(Fields.WheelTorqueRight).SI<NewtonMeter>() * row.ParseDouble(Fields.WheelSpeedRight).RPMtoRad()) / wheelSpeed, FanSpeed = row.ParseDouble(Fields.FanSpeed).RPMtoRad(), Gear = (uint)row.ParseDoubleOrGetDefault(Fields.Gear), Fuelconsumption = row.ParseDoubleOrGetDefault(Fields.FuelConsumption).SI().Gramm.Per.Hour.ConvertTo().Kilo.Gramm.Per.Second.Cast<KilogramPerSecond>(),