Skip to content

Motor burned due to overcurrent during position control with modified current control gains #600

@isorrentino

Description

@isorrentino

📝 Description:

One of the motors burned out during a test. When it failed, it was extremely hot to the touch.

🧪 Steps leading to the failure:

  1. The motor was being position-controlled.
  2. I increased the current control gains.
  3. With those gains, the motor immediately started whistling, so I quickly set the gains to zero.
  4. During the time the gains were zero, the motor was still under position control.
  5. The motor went into hardware fault due to overcurrent.

⚠️ Likely causes:

  • The current control gains are not only used for closed-loop current control, but also in PWM (open-loop) mode to zero the direct current and to limit the maximum voltage for the quadrature axes.
    A possible solution would be to separate the gains used for closed-loop control (user-modifiable) from those used internally in other modes (hidden from the user).
  • The current limits in the configuration files were incorrect. One suggestion to avoid motor damage in these cases could be adding runtime checks on both the requested current and motor temperature. This could improve safety.
  • Some integrator-related variables are not reset when gains are updated. This can lead to accumulation and unintended behavior.

✅ Suggested sub-issues / action points:

  • Separate current control gains used in closed-loop from those used in open-loop or internal modes.
  • Ensure that all integrator-related variables are reset when gains are modified.
  • Add runtime checks for output voltage over time and motor temperature.

cc @ale-git @valegagge

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions