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 e23eeadc authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

Merge pull request #380 in VECTO/vecto-sim from ~EMQUARIMA/vecto-sim:master to master

* commit '712d87fd':
  last minute fixes for AT gearbox aborts
parents a4231594 712d87fd
No related branches found
No related tags found
No related merge requests found
......@@ -519,17 +519,20 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
Case<ResponseOverload>(r => {
if (DataBus.GearboxType.AutomaticTransmission()) {
// overload may happen because of gearshift between search and actual request, search again
DataBus.BrakePower = 0.SI<Watt>();
operatingPoint = SearchBrakingPower(absTime, operatingPoint.SimulationDistance, gradient,
operatingPoint.Acceleration, response);
DriverAcceleration = operatingPoint.Acceleration;
if (DataBus.BrakePower.IsSmaller(0)) {
var i = 5;
while (i-- > 0 && !(retVal is ResponseSuccess)) {
DataBus.BrakePower = 0.SI<Watt>();
operatingPoint = SearchBrakingPower(absTime, operatingPoint.SimulationDistance, gradient,
operatingPoint.Acceleration, response);
DriverAcceleration = operatingPoint.Acceleration;
if (DataBus.BrakePower.IsSmaller(0)) {
DataBus.BrakePower = 0.SI<Watt>();
operatingPoint = SearchOperatingPoint(absTime, ds, gradient, 0.SI<MeterPerSquareSecond>(), r);
operatingPoint = SearchOperatingPoint(absTime, ds, gradient, 0.SI<MeterPerSquareSecond>(), r);
}
retVal = NextComponent.Request(absTime, operatingPoint.SimulationInterval,
operatingPoint.Acceleration, gradient);
}
retVal = NextComponent.Request(absTime, operatingPoint.SimulationInterval,
operatingPoint.Acceleration, gradient);
} else {
throw new UnexpectedResponseException(
"DrivingAction Brake: request failed after braking power was found.", r);
......
......@@ -236,12 +236,23 @@ namespace TUGraz.VectoCore.OutputData
row[CD_x_A] = runData.VehicleData.CrossWindCorrectionCurve.AirDragArea;
row[ROLLING_RESISTANCE_COEFFICIENT] = runData.VehicleData.TotalRollResistanceCoefficient.SI<Scalar>();
row[TRANSMISSION_TYPE] = runData.GearboxData.Type;
row[GEAR_RATIO_FIRST_GEAR] = runData.GearboxData.Gears.Count > 0
? runData.GearboxData.Gears.First().Value.Ratio.SI<Scalar>()
: 0.SI<Scalar>();
row[GEAR_RATIO_LAST_GEAR] = runData.GearboxData.Gears.Count > 0
? runData.GearboxData.Gears.Last().Value.Ratio.SI<Scalar>()
: 0.SI<Scalar>();
if (runData.GearboxData.Type.AutomaticTransmission()) {
row[GEAR_RATIO_FIRST_GEAR] = runData.GearboxData.Gears.Count > 0
? (double.IsNaN(runData.GearboxData.Gears.First().Value.Ratio)
? runData.GearboxData.Gears.First().Value.TorqueConverterRatio.SI<Scalar>()
: runData.GearboxData.Gears.First().Value.Ratio.SI<Scalar>())
: 0.SI<Scalar>();
row[GEAR_RATIO_LAST_GEAR] = runData.GearboxData.Gears.Count > 0
? runData.GearboxData.Gears.Last().Value.Ratio.SI<Scalar>()
: 0.SI<Scalar>();
} else {
row[GEAR_RATIO_FIRST_GEAR] = runData.GearboxData.Gears.Count > 0
? runData.GearboxData.Gears.First().Value.Ratio.SI<Scalar>()
: 0.SI<Scalar>();
row[GEAR_RATIO_LAST_GEAR] = runData.GearboxData.Gears.Count > 0
? runData.GearboxData.Gears.Last().Value.Ratio.SI<Scalar>()
: 0.SI<Scalar>();
}
row[AXLE_GEAR_RATIO] = runData.AxleGearData.AxleGear.Ratio.SI<Scalar>();
row[R_DYN] = runData.VehicleData.DynamicTyreRadius;
row[RETARDER_TYPE] = runData.Retarder.Type;
......
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