Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit df437dae authored by Michael KRISPER's avatar Michael KRISPER Committed by Markus Quaritsch
Browse files

Pull request #201: Develop

Merge in VECTO/vecto-dev from VECTO/mk_vecto-dev:develop to develop

* commit '34e5afea':
  VectoRunData: reformulated error message for P0
  PowertrainBuilder and PowertrainPosition: reformulated error message
  JSONFileWriter: Added check for APT-N Gearbox to not access TorqueConverter Data
  TorqueConverter: Initialize: When no operating point was found only write a Log.Warn if outTorque and speed are not zero. Otherwise write a Log.Info.
  PowertrainBuilder and GUI: Removed P0 in Dropdown and throw exception if P0 is defined in file.
parents 036ab56d 34e5afea
No related branches found
No related tags found
No related merge requests found
......@@ -122,7 +122,8 @@ Public Class VehicleForm
_changed = False
cbEmPos.DataSource = EnumHelper.GetKeyValuePairs(Of PowertrainPosition)(Function(t) t.GetLabel(),
Function(x) x <> PowertrainPosition.GEN)
Function(x) x <> PowertrainPosition.GEN _
AndAlso x <> PowertrainPosition.HybridP0)
NewVehicle()
End Sub
......
......@@ -72,14 +72,20 @@ namespace TUGraz.VectoCommon.InputData
public static bool IsBatteryElectric(this PowertrainPosition pos)
{
return pos == PowertrainPosition.BatteryElectricE2 || pos == PowertrainPosition.BatteryElectricE3 ||
pos == PowertrainPosition.BatteryElectricE4;
switch (pos) {
case PowertrainPosition.BatteryElectricE2:
case PowertrainPosition.BatteryElectricE3:
case PowertrainPosition.BatteryElectricE4:
return true;
default:
return false;
}
}
public static bool IsParallelHybrid(this PowertrainPosition pos)
{
switch (pos) {
case PowertrainPosition.HybridP0:
//case PowertrainPosition.HybridP0: // special case currently modelled in BusAuxiliary as SmartAlternator.
case PowertrainPosition.HybridP1:
case PowertrainPosition.HybridP2:
case PowertrainPosition.HybridP2_5:
......
......@@ -235,6 +235,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
}
}
if (runData.ElectricMachinesData?.Any(e => e.Item1 == PowertrainPosition.HybridP0) ?? false){
return new ValidationResult("P0 Hybrids are modeled as SmartAlternator in the BusAuxiliary model.");
}
return ValidationResult.Success;
}
......
......@@ -412,6 +412,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
if (data.ElectricMachinesData.Count != 1) {
throw new VectoException("ParallelHybrid needs exactly one electric motor.");
}
if (data.ElectricMachinesData.Any(e => e.Item1 == PowertrainPosition.HybridP0)) {
throw new VectoException("P0 Hybrids are modeled as SmartAlternator in the BusAuxiliary model.");
}
var container = new VehicleContainer(data.ExecutionMode, _modData, _sumWriter) { RunData = data };
var es = ConnectREESS(data, container);
......@@ -665,7 +668,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
if (data.ElectricMachinesData.Count != 1) {
throw new VectoException("Battery electric vehicle needs exactly one electric motor.");
}
var container = new VehicleContainer(data.ExecutionMode, _modData, _sumWriter) { RunData = data };
var es = ConnectREESS(data, container);
......
......@@ -82,8 +82,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
if (operatingPointList.Count > 0) {
operatingPoint = SelectOperatingPoint(operatingPointList);
} else {
Log.Warn(
"TorqueConverter Initialize: No operating point found. Using output as input values as fallback for initialize.");
if (outTorque.IsEqual(0) && outAngularVelocity.IsEqual(0)) {
Log.Info("TorqueConverter Initialize: No operating point found. Using output as input values as fallback for initialize.");
}
else {
Log.Warn("TorqueConverter Initialize: No operating point found. Using output as input values as fallback for initialize.");
}
var inAngularVelocity = outAngularVelocity.LimitTo(DataBus.EngineInfo.EngineIdleSpeed, DataBus.EngineInfo.EngineN95hSpeed);
operatingPoint = new TorqueConverterOperatingPoint {
OutAngularVelocity = outAngularVelocity,
......
......@@ -260,7 +260,7 @@ public class JSONFileWriter : IOutputFileWriter
body.Add(JsonKeys.Gearbox_GearboxType, gbx.Type.ToString());
var torqueConverterDict = new Dictionary<string, object> { { "Enabled", torqueConverter != null && gbx.Type.AutomaticTransmission() } };
if (gbx.Type.AutomaticTransmission() && torqueConverter != null) {
if (gbx.Type.AutomaticTransmission() && gbx.Type != GearboxType.APTN) {
torqueConverterDict.Add("File", GetRelativePath(torqueConverter.TCData.Source, Path.GetDirectoryName(filename)));
torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_ReferenceRPM, Math.Round(torqueConverter.ReferenceRPM.AsRPM, 4));
torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_Inertia, torqueConverter.Inertia.Value());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment