Code development platform for open source projects from the European Union institutions

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