mirror of
https://github.com/odriverobotics/ODrive.git
synced 2026-09-25 19:13:39 +08:00
add filter to the reported <odrv>.ibus
This commit is contained in:
@@ -636,7 +636,7 @@ void update_brake_current() {
|
|||||||
// Special handling to avoid the case 0.0/0.0 == NaN.
|
// Special handling to avoid the case 0.0/0.0 == NaN.
|
||||||
Ibus_sum += brake_duty ? (brake_duty * vbus_voltage / odrv.config_.brake_resistance) : 0.0f;
|
Ibus_sum += brake_duty ? (brake_duty * vbus_voltage / odrv.config_.brake_resistance) : 0.0f;
|
||||||
|
|
||||||
ibus_ = Ibus_sum;
|
ibus_ += odrv.ibus_report_filter_k_ * (Ibus_sum - ibus_);
|
||||||
|
|
||||||
if (Ibus_sum > odrv.config_.dc_max_positive_current) {
|
if (Ibus_sum > odrv.config_.dc_max_positive_current) {
|
||||||
low_level_fault(Motor::ERROR_DC_BUS_OVER_CURRENT);
|
low_level_fault(Motor::ERROR_DC_BUS_OVER_CURRENT);
|
||||||
|
|||||||
@@ -239,6 +239,7 @@ public:
|
|||||||
|
|
||||||
float& vbus_voltage_ = ::vbus_voltage; // TODO: make this the actual variable
|
float& vbus_voltage_ = ::vbus_voltage; // TODO: make this the actual variable
|
||||||
float& ibus_ = ::ibus_; // TODO: make this the actual variable
|
float& ibus_ = ::ibus_; // TODO: make this the actual variable
|
||||||
|
float ibus_report_filter_k_ = 1.0f;
|
||||||
|
|
||||||
const uint64_t& serial_number_ = ::serial_number;
|
const uint64_t& serial_number_ = ::serial_number;
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,12 @@ interfaces:
|
|||||||
This value is equal to the sum of the motor currents and the brake resistor currents.
|
This value is equal to the sum of the motor currents and the brake resistor currents.
|
||||||
The motor currents are measured, the brake resistor current is calculated based on
|
The motor currents are measured, the brake resistor current is calculated based on
|
||||||
`config.brake_resistance`.
|
`config.brake_resistance`.
|
||||||
|
ibus_report_filter_k:
|
||||||
|
type: float32
|
||||||
|
doc: |
|
||||||
|
Filter gain for the reported `ibus`. Set to a value below 1.0 to get a smoother
|
||||||
|
line when plotting `ibus`. Set to 1.0 to disable. This filter is only applied to
|
||||||
|
the reported value and not for internal calculations.
|
||||||
serial_number: readonly uint64
|
serial_number: readonly uint64
|
||||||
hw_version_major: readonly uint8
|
hw_version_major: readonly uint8
|
||||||
hw_version_minor: readonly uint8
|
hw_version_minor: readonly uint8
|
||||||
|
|||||||
Reference in New Issue
Block a user