Function that defines the characteristic behaviour of a motor to change its maximum available tracktion force with velocity.
More...
|
|
virtual TractionType | GetTractionType () const noexcept=0 |
| virtual One | operator() (Velocity velocity) const noexcept=0 |
| | Mapping function.
|
| virtual decltype(Power{}/Force{}) | MaximumPowerFraction () const noexcept=0 |
| virtual Velocity | MaximumVelocity () const noexcept=0 |
|
virtual void | AddSpeedStep (Velocity velocity, One value)=0 |
| | Add a velocity/value pair to the characteristic.
|
|
virtual void | GetSpeedSteps (std::vector< std::pair< Velocity, One > > &speedsteps) const =0 |
| | Get all the speedsteps.
|
|
| TractionForceCharacteristic (const TractionForceCharacteristic &)=delete |
|
| TractionForceCharacteristic (TractionForceCharacteristic &&)=delete |
|
TractionForceCharacteristic & | operator= (const TractionForceCharacteristic &)=delete |
|
TractionForceCharacteristic & | operator= (TractionForceCharacteristic &&)=delete |
Function that defines the characteristic behaviour of a motor to change its maximum available tracktion force with velocity.
The Factory provides one sample implementation for each TractionType. These are:
/// mechanic:
/// f = fstep for vstep <= v < vnextstep
///
/// hydrodynamic:
/// f = fstep + (fnextstep - fstep) (v - vstep)/(vnextstep - vstep) for vstep <= v < vnextstep
///
/// electric:
/// f = a/(v+x) - y
/// with:
/// x = sqrt( (vm-vt)(a + (vm-vt)/4) ) - (vm+vt)/2 with vt < vm
/// y = a / (vm+x)
/// f = a(vm-v)/(v+x)(vm+x)
///
/// steam:
/// as electric with vt = 0
///