Class CurrentLimitsConfigs
- All Implemented Interfaces:
ParentConfiguration
,ISerializable
public class CurrentLimitsConfigs extends Object implements ParentConfiguration
Contains the supply/stator current limit thresholds and whether to enable them.
-
Field Summary
Fields Modifier and Type Field Description double
StatorCurrentLimit
The amount of current allowed in the motor (motoring and regen current).boolean
StatorCurrentLimitEnable
Enable motor stator current limiting.double
SupplyCurrentLimit
The amount of supply current allowed.boolean
SupplyCurrentLimitEnable
Enable motor supply current limiting.double
SupplyCurrentThreshold
Delay supply current limiting until current exceeds this threshold for longer than SupplyTimeThreshold.double
SupplyTimeThreshold
Allows unlimited current for a period of time before current limiting occurs. -
Constructor Summary
Constructors Constructor Description CurrentLimitsConfigs()
-
Method Summary
Modifier and Type Method Description StatusCode
deserialize(String to_deserialize)
String
serialize()
String
toString()
CurrentLimitsConfigs
withStatorCurrentLimit(double newStatorCurrentLimit)
Modifies this configuration's StatorCurrentLimit parameter and returns itself for method-chaining and easier to use config API.CurrentLimitsConfigs
withStatorCurrentLimitEnable(boolean newStatorCurrentLimitEnable)
Modifies this configuration's StatorCurrentLimitEnable parameter and returns itself for method-chaining and easier to use config API.CurrentLimitsConfigs
withSupplyCurrentLimit(double newSupplyCurrentLimit)
Modifies this configuration's SupplyCurrentLimit parameter and returns itself for method-chaining and easier to use config API.CurrentLimitsConfigs
withSupplyCurrentLimitEnable(boolean newSupplyCurrentLimitEnable)
Modifies this configuration's SupplyCurrentLimitEnable parameter and returns itself for method-chaining and easier to use config API.CurrentLimitsConfigs
withSupplyCurrentThreshold(double newSupplyCurrentThreshold)
Modifies this configuration's SupplyCurrentThreshold parameter and returns itself for method-chaining and easier to use config API.CurrentLimitsConfigs
withSupplyTimeThreshold(double newSupplyTimeThreshold)
Modifies this configuration's SupplyTimeThreshold parameter and returns itself for method-chaining and easier to use config API.
-
Field Details
-
StatorCurrentLimit
The amount of current allowed in the motor (motoring and regen current). Note this requires StatorCurrentLimitEnable to be true.This is only applicable for non-torque current control modes. For torque current control, set the PeakForwardTorqueCurrent and PeakReverseTorqueCurrent in TorqueCurrentConfigs instead.
Stator current is directly proportional to torque, so this limit can be used to restrict the torque output of the motor, such as preventing wheel slip for a drivetrain. Additionally, stator current limits can prevent brownouts during acceleration; supply current will never exceed the stator current limit and is often significantly lower than stator current.
A reasonable starting point for a stator current limit is 120 A, with values commonly ranging from 80-160 A. Mechanisms with a hard stop may need a smaller limit to reduce the torque applied when running into the hard stop.
- Minimum Value: 0.0
- Maximum Value: 800.0
- Default Value: 0
- Units: A
-
StatorCurrentLimitEnable
Enable motor stator current limiting.- Default Value: False
-
SupplyCurrentLimit
The amount of supply current allowed. Note this requires SupplyCurrentLimitEnable to be true. Use SupplyCurrentThreshold and SupplyTimeThreshold to allow brief periods of high-current before limiting occurs.This is only applicable for non-torque current control modes. For torque current control, set the PeakForwardTorqueCurrent and PeakReverseTorqueCurrent in TorqueCurrentConfigs instead.
Supply current is the current drawn from the battery, so this limit can be used to prevent breaker trips and improve battery longevity. Additionally, in the rare case where the robot experiences brownouts despite configuring stator current limits, a supply current limit can further help avoid brownouts. However, such brownouts are most commonly caused by a bad battery or poor power wiring.
A reasonable starting point for a supply current limit is 60 A with a threshold of 80 A for 0.1 seconds. Supply current limits commonly range from 20-80 A depending on the breaker used.
- Minimum Value: 0.0
- Maximum Value: 800.0
- Default Value: 0
- Units: A
-
SupplyCurrentLimitEnable
Enable motor supply current limiting.- Default Value: False
-
SupplyCurrentThreshold
Delay supply current limiting until current exceeds this threshold for longer than SupplyTimeThreshold. This allows current draws above SupplyCurrentLimit for a fixed period of time. This has no effect if SupplyCurrentLimit is greater than this value.- Minimum Value: 0.0
- Maximum Value: 511
- Default Value: 0
- Units: A
-
SupplyTimeThreshold
Allows unlimited current for a period of time before current limiting occurs. Current threshold is the maximum of SupplyCurrentThreshold and SupplyCurrentLimit.- Minimum Value: 0.0
- Maximum Value: 1.275
- Default Value: 0
- Units: sec
-
-
Constructor Details
-
CurrentLimitsConfigs
public CurrentLimitsConfigs()
-
-
Method Details
-
withStatorCurrentLimit
Modifies this configuration's StatorCurrentLimit parameter and returns itself for method-chaining and easier to use config API.The amount of current allowed in the motor (motoring and regen current). Note this requires StatorCurrentLimitEnable to be true.
This is only applicable for non-torque current control modes. For torque current control, set the PeakForwardTorqueCurrent and PeakReverseTorqueCurrent in TorqueCurrentConfigs instead.
Stator current is directly proportional to torque, so this limit can be used to restrict the torque output of the motor, such as preventing wheel slip for a drivetrain. Additionally, stator current limits can prevent brownouts during acceleration; supply current will never exceed the stator current limit and is often significantly lower than stator current.
A reasonable starting point for a stator current limit is 120 A, with values commonly ranging from 80-160 A. Mechanisms with a hard stop may need a smaller limit to reduce the torque applied when running into the hard stop.
- Minimum Value: 0.0
- Maximum Value: 800.0
- Default Value: 0
- Units: A
- Parameters:
newStatorCurrentLimit
- Parameter to modify- Returns:
- Itself
-
withStatorCurrentLimitEnable
Modifies this configuration's StatorCurrentLimitEnable parameter and returns itself for method-chaining and easier to use config API.Enable motor stator current limiting.
- Default Value: False
- Parameters:
newStatorCurrentLimitEnable
- Parameter to modify- Returns:
- Itself
-
withSupplyCurrentLimit
Modifies this configuration's SupplyCurrentLimit parameter and returns itself for method-chaining and easier to use config API.The amount of supply current allowed. Note this requires SupplyCurrentLimitEnable to be true. Use SupplyCurrentThreshold and SupplyTimeThreshold to allow brief periods of high-current before limiting occurs.
This is only applicable for non-torque current control modes. For torque current control, set the PeakForwardTorqueCurrent and PeakReverseTorqueCurrent in TorqueCurrentConfigs instead.
Supply current is the current drawn from the battery, so this limit can be used to prevent breaker trips and improve battery longevity. Additionally, in the rare case where the robot experiences brownouts despite configuring stator current limits, a supply current limit can further help avoid brownouts. However, such brownouts are most commonly caused by a bad battery or poor power wiring.
A reasonable starting point for a supply current limit is 60 A with a threshold of 80 A for 0.1 seconds. Supply current limits commonly range from 20-80 A depending on the breaker used.
- Minimum Value: 0.0
- Maximum Value: 800.0
- Default Value: 0
- Units: A
- Parameters:
newSupplyCurrentLimit
- Parameter to modify- Returns:
- Itself
-
withSupplyCurrentLimitEnable
Modifies this configuration's SupplyCurrentLimitEnable parameter and returns itself for method-chaining and easier to use config API.Enable motor supply current limiting.
- Default Value: False
- Parameters:
newSupplyCurrentLimitEnable
- Parameter to modify- Returns:
- Itself
-
withSupplyCurrentThreshold
Modifies this configuration's SupplyCurrentThreshold parameter and returns itself for method-chaining and easier to use config API.Delay supply current limiting until current exceeds this threshold for longer than SupplyTimeThreshold. This allows current draws above SupplyCurrentLimit for a fixed period of time. This has no effect if SupplyCurrentLimit is greater than this value.
- Minimum Value: 0.0
- Maximum Value: 511
- Default Value: 0
- Units: A
- Parameters:
newSupplyCurrentThreshold
- Parameter to modify- Returns:
- Itself
-
withSupplyTimeThreshold
Modifies this configuration's SupplyTimeThreshold parameter and returns itself for method-chaining and easier to use config API.Allows unlimited current for a period of time before current limiting occurs. Current threshold is the maximum of SupplyCurrentThreshold and SupplyCurrentLimit.
- Minimum Value: 0.0
- Maximum Value: 1.275
- Default Value: 0
- Units: sec
- Parameters:
newSupplyTimeThreshold
- Parameter to modify- Returns:
- Itself
-
toString
-
deserialize
- Specified by:
deserialize
in interfaceParentConfiguration
-
serialize
- Specified by:
serialize
in interfaceISerializable
-