diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/RetarderLossMap.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/RetarderLossMap.cs index 95efbcc48672cb5e62d0c48fb4c5fbc6e5f0ff5a..9faa334d9e81f5c77d520171361878e555556d7a 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/RetarderLossMap.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/RetarderLossMap.cs @@ -38,7 +38,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data /// <summary> /// LossMap for retarder. /// </summary> - public class RetarderLossMap : SimulationComponentData + public class RetarderLossMap : SimulationComponentData, ILossMap { [ValidateObject] private readonly RetarderLossEntry[] _entries; private PerSecond _minSpeed; @@ -68,7 +68,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data /// <summary> /// Calculates the retarder losses. /// </summary> - public NewtonMeter RetarderLoss(PerSecond angularVelocity) + public NewtonMeter GetTorqueLoss(PerSecond angularVelocity) { var s = _entries.GetSection(e => e.RetarderSpeed < angularVelocity); return VectoMath.Interpolate(s.Item1.RetarderSpeed, s.Item2.RetarderSpeed, s.Item1.TorqueLoss, s.Item2.TorqueLoss, diff --git a/VectoCore/VectoCore/Models/SimulationComponent/ILossMap.cs b/VectoCore/VectoCore/Models/SimulationComponent/ILossMap.cs new file mode 100644 index 0000000000000000000000000000000000000000..c8e13b4878e86e8af0b91fa5016b071e379aa63b --- /dev/null +++ b/VectoCore/VectoCore/Models/SimulationComponent/ILossMap.cs @@ -0,0 +1,12 @@ +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCore.Models.SimulationComponent +{ + public interface ILossMap + { + /// <summary> + /// Calculates the torque loss. + /// </summary> + NewtonMeter GetTorqueLoss(PerSecond angularVelocity); + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Retarder.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Retarder.cs index 3797ed6a0a2597163dd720fd526ba2ef2d7f3bce..d2e4591eda70704e97e26625f1628cd825e10df7 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Retarder.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Retarder.cs @@ -64,7 +64,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public IResponse Initialize(NewtonMeter torque, PerSecond angularVelocity) { - var retarderTorqueLoss = _lossMap.RetarderLoss(angularVelocity * _ratio) / _ratio; + var retarderTorqueLoss = _lossMap.GetTorqueLoss(angularVelocity * _ratio) / _ratio; PreviousState.SetState(torque + retarderTorqueLoss, angularVelocity, torque, angularVelocity); return NextComponent.Initialize(PreviousState.InTorque, PreviousState.InAngularVelocity); } @@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return NextComponent.Request(absTime, dt, torque, null, dryRun); } var avgAngularSpeed = (PreviousState.InAngularVelocity + angularVelocity) / 2.0; - var retarderTorqueLoss = _lossMap.RetarderLoss(avgAngularSpeed * _ratio) / _ratio; + var retarderTorqueLoss = _lossMap.GetTorqueLoss(avgAngularSpeed * _ratio) / _ratio; CurrentState.SetState(torque + retarderTorqueLoss, angularVelocity, torque, angularVelocity); return NextComponent.Request(absTime, dt, CurrentState.InTorque, CurrentState.InAngularVelocity, dryRun); }