5
\$\begingroup\$

I'm sorry if this question is too stupid, unfortunately I have a very low experience with BLDC motors.

I would like to use 4 x 350W, 24VDC brushless motor hubs for my wheeled robot (they are usually used for ATVs or hover boards). Each motor is geared and comes with an encoder with 1024 pulses/rev.

The problem is that when the robot isn't moving, the wheels/motors can still move since they act like free wheels when no power is applied and this is bad if the robot stops in slope or if someone tries to pull/push the robot because it can be easily moved.

I never had this problem with other robots since I always used brushed DC motors with angled gearbox with high output torque so it was very hard to move the wheels when the robot is stopped.

The brushless motors come with U,V,W wires, three wires for Hall sensor, two wires for encoder, two wires for +5VDC and GND.

I was reading a discussion on researchgate about braking by shorting motor terminals. Few days ago, I've read a very interesting discussion on this forum about the difference between brushless and stepper motors. I think what I need should be the holding torque like it happens for stepepr motors.

I was thinking to try to implement something like that via software:

  1. the robot is not moving
  2. check if encoder pulses are changing and their direction
  3. if they are changing, then the robot is moving in free wheel
  4. if moving, try to apply power in opposite direction till encoder pulses are NULL.

This procedure looks complex for me so I would like to know if there is any smarter electronic solution.

Thank you!

P.S. I forgot to mention that obviously the controller can store the energy produced during the braking into the batteries.

\$\endgroup\$
14
  • 2
    \$\begingroup\$ Did you make your own motor driver or are you asking how to configure one to enable the DC-hold function? \$\endgroup\$
    – Jeroen3
    Commented Jul 11, 2020 at 15:36
  • 1
    \$\begingroup\$ In which circumstances are your motors free wheeling ? Your suggestion is possible only if the robot is ON but I guess your problem is when it is OFF (no more power available: accu removed or empty batteries), isn't it ? \$\endgroup\$
    – Mathieu G.
    Commented Jul 11, 2020 at 16:23
  • 2
    \$\begingroup\$ You almost need a mechanical parking brake for something like this. Wasting power to not move is a waste of battery power, especially on a slope. For braking something at speed, you can gradually (or rapidly) reduce the phase advance until the motor locks up. You can collect energy during a braking process that is slowing down via regen, but you'll collect nothing "braking" to stay in the same spot on a slope. \$\endgroup\$
    – DKNguyen
    Commented Jul 11, 2020 at 16:29
  • 2
    \$\begingroup\$ @MarcusBarnet not at all. In speed mode, asking for a 0, the Roboteq will try to stop the motor every time you try to move it. It will act like a brake. However I think that it will allow a very little speed in this mode. The speed position mode is exactly what you need: you ask for a speed, the controller integrates it and runs a position control to the motor. It will act like a rotary spring if you try to move it: that's what you need. \$\endgroup\$
    – Mathieu G.
    Commented Jul 12, 2020 at 11:47
  • 1
    \$\begingroup\$ I don't know about roboteq, but for many types of controller, it is a configuration choice whether it should be controlled down to zero speed or allowed to coast down to zero speed. So basically, I am saying that Mathieu G's comment could be a solution for you. It sounds like the roboteq controller has some of the features of a servo motor controller. \$\endgroup\$
    – user57037
    Commented Jul 12, 2020 at 17:08

2 Answers 2

7
\$\begingroup\$

The braking options are mechanical, dissipation, and energy recovery. However when the vehicle is at a stop, braking can only be via mechanical static friction or via electrical dissipation generating static counter-torque. Current in the windings is highest when the motor is not turning, because there are motoring coils and generating coils. When shaft speed is zero, there is zero back-EMF and the motoring coils absorb high stall current. The braking torque generated by this technique could develop enough heat to degrade the varnish or other insulation on the wires of the motor coils.

I anticipate this will be my final edit just to add this link to a pdf presentation for fairly complex effort to design a regenerative braking circuit with a BLDC motor:

http://ww1.microchip.com/downloads/en/devicedoc/regenerative%20braking%20of%20bldc%20motors.pdf

I would read the 16-page paper below, which uses a low voltage BLDC example to explore the issues of energy-recovery braking and then perform experiments with small inexpensive systems that might get destroyed, before undertaking any effort to design a higher power system. Mechanical brakes via electronic actuation are probably the best solution and perhaps the only viable non-destructive solution for certain operating conditions.

Energy-Regenerative Braking Control of Electric Vehicles Using Three-Phase Brushless Direct-Current Motors, Energies 2014, 7, 99-114; doi:10.3390/en7010099

https://pdfs.semanticscholar.org/eb63/34a18cda052716e59043a702e2da14a528dc.pdf

Here is another 7 page paper with discussion of electrical braking BLDC. It also says mechanical brakes are necessary for static braking.

International Electrical Engineering Journal (IEEJ) Vol. 3 (2012) No. 2, pp. 784-790ISSN 2078-2365 Page 784 Rakesh and Narasimham, Different Braking Techniques Employed to a Brushless DC Motor Drive used in Locomotives:

http://ieejournal.com/Vol_3_No_2/Different%20Braking%20Techniques%20Employed%20to%20a%20Brushless%20DC%20Motor%20Drive%20used%20in%20Locomotives.pdf

When conducting tests on a motor with no load or gearbox the dynamic braking will be very rapid due to only the rotor inertia of the BLDC. Adding inertia via a direct load or gearbox coupled mechanical load prolongs the spin up time and braking time. Heavy braking current flows for a longer period of time when more kinetic energy must be dissipated in the braking resistance or passed back into the battery power source. Heat can build up and exceed the safe operating area of electrical components with improper thermal design.

This video shows a 24 volt electro magnetic brake device:

https://www.youtube.com/watch?v=HrQPAZXsP6I

\$\endgroup\$
3
  • \$\begingroup\$ I couldn't find any cheap electric brake suitable for my application able to block a shaft that can provide at least 10Nm. The wheels can generate up to 25 Nm, but I can assume to decrease the power before to engage the electric brake. Any suggestions? Do you know any supplier? \$\endgroup\$ Commented Jul 12, 2020 at 11:17
  • \$\begingroup\$ Unfortunately, I can't use the electric brake, I forgot I have a hub motor, that's means that the only rotating part is the whole outer wheel and not the central shaft, so I have no way to install the brake. \$\endgroup\$ Commented Jul 12, 2020 at 17:51
  • \$\begingroup\$ I just watched part of a 6 minute video: "Robot and 380w BLDC ebike hub motor controllers, gimme a bleeping brake!" This robot has a front idle wheel and multiple buttons on the controller, so the obvious solution would be a electro magnetic brake on the idle wheel. I assume dissipation braking would work with a proper power dissipation resistor switched on when robot is free wheeling via a saturated mosfet which also might need a heat sink. I think there is a solution if you do some bench testing with no load motors and get creative with mechanical design. \$\endgroup\$ Commented Jul 12, 2020 at 18:07
3
\$\begingroup\$

As mentioned in the accepted answer to Difference between Brushless Motor and Stepper Motor, a brushless motor can be operated as a stepper motor. It is possible to transition between continuous operation and stepper operation and to apply DC to the windings to provide some holding torque.

If braking inertia to a stop, you must consider how much of the kinetic energy of the load would need to be dissipated or returned to the power supply. Some of the energy will be absorbed by the mechanical system. You may be able to estimate that by observing how much the driven system coasts when it is shut off without braking.

The software procedure that is proposed in the question is not a particularly good one. It is best to reduce the speed at a controlled rate. The motor will automatically provide braking and return energy to the controller. The problem will be to design the controller to accept the returned energy and dissipate it or return it to the power source. That will require a power electronic circuit on the DC side of the PWM controller.

Another alternative would be to limit the rate of speed reduction to allow only as much braking power as can be safely dissipated by losses in the system.

You may be able to modify the software to apply a small DC voltage to provide holding torque. You should determine how much DC current can be applied without overheating the motor. It would be best if the controller can measure and limit the DC current, but just limiting the voltage to a fixed low level may be sufficient.

\$\endgroup\$
9
  • 1
    \$\begingroup\$ @MarcusBarnet I don't think there is an electronic solution for maintaining position on a slope. This is a robot right? Can you just program it to turn so it sits 90 degrees to the slope whenever it detects it has come to a stop on a slope? \$\endgroup\$
    – DKNguyen
    Commented Jul 11, 2020 at 16:34
  • 1
    \$\begingroup\$ @MarcusBarnet I don't know your definition of professional but wasting power to do something that shouldn't require power is my definition of not professional. You have the disadvantage of a helicopter with none of the advantages. \$\endgroup\$
    – DKNguyen
    Commented Jul 11, 2020 at 16:38
  • 1
    \$\begingroup\$ @DKNguyen, you surely have reason, wasting power is not professional. The problem is that re-positioning the wheels will require time and in the meanwhile the robot can loose its position. This can be a problem when you run pose estimation algorithms. \$\endgroup\$ Commented Jul 11, 2020 at 16:40
  • 1
    \$\begingroup\$ If you don't have the experience and skill to design a new controller, you may need to buy one. I think there is a significant risk of damaging either the controller or motor if you try to keep the robot from coasting down a slope by intermittently reversing the motor. If the motor and controller are sufficiently protected, there is still the risk of the controller shutting down and letting the robot coast. \$\endgroup\$
    – user80875
    Commented Jul 11, 2020 at 17:28
  • 2
    \$\begingroup\$ @MarcusBarnet Oh! Then you're golden. With a holonomic base like that you can go way better than toe-in and toe-out. You can actually turn your wheels 90 degrees to the slope. Just get your algorithm that brakes the motion and the algorithm that actively holds position on the slope just good enough so that so that the robot has time to turn the wheels. Then you can sit on a slope all day without draining battery power. I do often wish there were more ready made "optical mice-like" optic flow type sensors that can just stare at the ground though to assist with encoders and IMUs. \$\endgroup\$
    – DKNguyen
    Commented Jul 12, 2020 at 15:47

Not the answer you're looking for? Browse other questions tagged or ask your own question.