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

reset braking power before next search, fix gearbox: add inertia

parent bbe89025
Branches
Tags
No related merge requests found
...@@ -691,6 +691,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -691,6 +691,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
Case<ResponseGearShift>(r => { Case<ResponseGearShift>(r => {
Log.Info("Brake -> Got GearShift response, performing roll action + brakes"); Log.Info("Brake -> Got GearShift response, performing roll action + brakes");
//response = Driver.DrivingActionRoll(absTime, ds, DriverStrategy.BrakeTrigger.NextTargetSpeed, gradient); //response = Driver.DrivingActionRoll(absTime, ds, DriverStrategy.BrakeTrigger.NextTargetSpeed, gradient);
DataBus.BrakePower = 0.SI<Watt>();
response = Driver.DrivingActionBrake(absTime, ds, DriverStrategy.BrakeTrigger.NextTargetSpeed, response = Driver.DrivingActionBrake(absTime, ds, DriverStrategy.BrakeTrigger.NextTargetSpeed,
gradient, targetDistance: targetDistance); gradient, targetDistance: targetDistance);
}); });
......
...@@ -74,7 +74,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -74,7 +74,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
return _engageTime.IsSmallerOrEqual(absTime); return _engageTime.IsSmallerOrEqual(absTime);
} }
public Gearbox(IVehicleContainer container, GearboxData gearboxModelData, IShiftStrategy strategy, KilogramSquareMeter engineInertia) public Gearbox(IVehicleContainer container, GearboxData gearboxModelData, IShiftStrategy strategy,
KilogramSquareMeter engineInertia)
: base(container, gearboxModelData, engineInertia) : base(container, gearboxModelData, engineInertia)
{ {
_strategy = strategy; _strategy = strategy;
...@@ -309,14 +310,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -309,14 +310,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var inTorque = outTorque / ModelData.Gears[Gear].Ratio + inTorqueLossResult.Value; var inTorque = outTorque / ModelData.Gears[Gear].Ratio + inTorqueLossResult.Value;
var inAngularVelocity = outAngularVelocity * ModelData.Gears[Gear].Ratio; var inAngularVelocity = outAngularVelocity * ModelData.Gears[Gear].Ratio;
var inertiaTorqueLossOut = !inAngularVelocity.IsEqual(0)
if (dryRun) {
CurrentState.InertiaTorqueLossOut = !inAngularVelocity.IsEqual(0)
? Formulas.InertiaPower(outAngularVelocity, PreviousState.OutAngularVelocity, ModelData.Inertia, dt) / ? Formulas.InertiaPower(outAngularVelocity, PreviousState.OutAngularVelocity, ModelData.Inertia, dt) /
avgOutAngularVelocity avgOutAngularVelocity
: 0.SI<NewtonMeter>(); : 0.SI<NewtonMeter>();
inTorque += CurrentState.InertiaTorqueLossOut / ModelData.Gears[Gear].Ratio; inTorque += inertiaTorqueLossOut / ModelData.Gears[Gear].Ratio;
if (dryRun) {
var inertiaTorqueLossIn = avgOutAngularVelocity.IsEqual(0, 1e-9) var inertiaTorqueLossIn = avgOutAngularVelocity.IsEqual(0, 1e-9)
? 0.SI<NewtonMeter>() ? 0.SI<NewtonMeter>()
: Formulas.InertiaPower(outAngularVelocity, PreviousState.OutAngularVelocity, ModelData.Inertia, dt) / : Formulas.InertiaPower(outAngularVelocity, PreviousState.OutAngularVelocity, ModelData.Inertia, dt) /
...@@ -357,11 +357,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -357,11 +357,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
// begin critical section // begin critical section
CurrentState.TransmissionTorqueLoss = inTorque - outTorque / ModelData.Gears[Gear].Ratio; CurrentState.TransmissionTorqueLoss = inTorque - outTorque / ModelData.Gears[Gear].Ratio;
// MQ 19.2.2016: check! inertia is related to output side, torque loss accounts to input side // MQ 19.2.2016: check! inertia is related to output side, torque loss accounts to input side
CurrentState.InertiaTorqueLossOut = !inAngularVelocity.IsEqual(0) CurrentState.InertiaTorqueLossOut = inertiaTorqueLossOut;
? Formulas.InertiaPower(outAngularVelocity, PreviousState.OutAngularVelocity, ModelData.Inertia, dt) /
avgOutAngularVelocity
: 0.SI<NewtonMeter>();
inTorque += CurrentState.InertiaTorqueLossOut / ModelData.Gears[Gear].Ratio;
CurrentState.TransmissionTorqueLoss = inTorque - outTorque / ModelData.Gears[Gear].Ratio; CurrentState.TransmissionTorqueLoss = inTorque - outTorque / ModelData.Gears[Gear].Ratio;
CurrentState.TorqueLossResult = inTorqueLossResult; CurrentState.TorqueLossResult = inTorqueLossResult;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment