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

Skip to content
Snippets Groups Projects
Commit 075d747a authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

butgix calculating inertia torque of EM, bugfix searching electric power for torque

parent 68f687bb
No related branches found
No related tags found
No related merge requests found
......@@ -164,7 +164,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricMotor
},
searcher: this);
var tmp = LookupElectricPower(avgSpeed, retVal, true);
if ((tmp.ElectricalPower - batPower).IsGreater(Constants.SimulationSettings.InterpolateSearchTolerance)) {
if (VectoMath.Abs(tmp.ElectricalPower - batPower).IsGreater(Constants.SimulationSettings.InterpolateSearchTolerance)) {
// searched operating point is not accurate enough...
retVal = SearchAlgorithm.Search(
maxEmTorque, elPowerMaxEM.ElectricalPower - batPower,
......
......@@ -161,7 +161,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var avgEmSpeed = (prevEmSpeed + emSpeed) / 2;
var inertiaTorqueEm = avgEmSpeed.IsEqual(0)
? 0.SI<NewtonMeter>()
: Formulas.InertiaPower(avgEmSpeed, PreviousState.EMSpeed, ModelData.Inertia, dt) / avgEmSpeed;
: Formulas.InertiaPower(emSpeed, PreviousState.EMSpeed, ModelData.Inertia, dt) / avgEmSpeed;
var maxDriveTorqueEmMap = GetMaxDriveTorque(voltage, dt, avgEmSpeed, gear);
var maxRecuperationTorqueEmMap = GetMaxRecuperationTorque(voltage, dt, avgEmSpeed, gear);
......
......@@ -1298,6 +1298,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
}
} else {
if (emRecuperationTq.IsGreater(0)) {
var voltage = DataBus.BatteryInfo.InternalVoltage;
var maxbatDragTq = DataBus.ElectricMotorInfo(emPos).GetTorqueForElectricPower(voltage,
response.ElectricSystem.MaxPowerDrag, response.ElectricMotor.AngularVelocity, dt, nextGear,
false);
eval.Add(
new HybridResultEntry {
ICEOff = !DataBus.EngineInfo.EngineOn,
......@@ -1307,7 +1311,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
GearboxInNeutral = false,
NextGear = nextGear,
MechanicalAssistPower = new Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>> {
{ emPos, Tuple.Create(response.ElectricMotor.AngularVelocity, response.ElectricMotor.MaxRecuperationTorque) }
{ emPos, Tuple.Create(response.ElectricMotor.AngularVelocity, VectoMath.Min(maxbatDragTq, response.ElectricMotor.MaxRecuperationTorque)) }
}
}
});
......
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