Electronics > Projects, Designs, and Technical Stuff

Brushed DC motor closed loop speed control

(1/16) > >>

Martinn:
Hi all,

I just bought a powerfeed unit for my mill https://www.paulimot.de/Maschinen/Maschinenzubehoer/Vorschubmotoren/1121/Vorschubmotor-X-Achse-fuer-SIEG-SX4 which it not really fantastic. Slowest feeds are too fast for milling and speed stability is poor - not sure if it has feedback at all. So I'm thinking of adding a closed loop speed controller (or simply replace the motor with a stepper, but this is not what I'd like to discuss here). The motor is a 24 V brushed DC with 1800 rpm and 1:7.5 reduction gear. No encoder or feedback. The original electronics does some PWM and overload limiting, see PCB photo (LM324, power transistor IRF540. I work on motion and motor control professionally, I just never came across a brushed motor, so I'm asking here if someone has experience with controlling brushed DC motors.
Specifically, I am wondering if closed loop speed control with decent stiffness can be achieved down to a few rpm. This is critical, as it defines the chip load of a milling cutter. Faster speeds (up to 1800 rpm) are for moving the table only and are not critical.

As the motor is now, the only option to get feedback from it would be via back EMF sensing. Not sure how well this would work with the brushes. I guess I would not bother with it.
I think that without a decent encoder, stable low speed performance will be difficult to achieve. Simplest method I could think of would be to add a magnet at the end of the shaft (drill threaded hole in shaft) and put a AS5047 on axis. I have used this sensor for other control projects and it is great when you need high resolution, but only moderate accuracy. Ideal for speed estimation. System options would be going for an STM32 (cascaded PI current and PI velocity control loops), finding a controller chip (Trinamic has some nice ones) or maybe even improving the existing analog control.

Not sure if I am trying to beat a dead horse here. :horse: (and an expensive one at € 383 btw)

Has anyone experience with decent quality (stiffness/dynamic range) control of small brushed DC motors?

Thanks, Martin

IanB:
No direct experience, but I think speed regulation of brushed DC motors is best done with PWM.

To control the speed, I think you would need an encoder on the output shaft and a feedback loop to adjust the PWM duty cycle.

My guess is you would have to experiment and see what you can achieve.

fourtytwo42:
There are three sensorless methods I have used,

One is a current compensated constant voltage, that is the voltage increases by a small amount with increasing current to compensate for Rm.
Another is to AC couple and low pass filter the commutation voltage and count the frequency.
And finally I have tried PWM sampling the back emf during switch off time.

All of course are not as good as a mechanical sensor.

I am guessing that pcb only implements constant voltage OTH the heatsink is quite small so maybe it's a PWM output but with no feedback.

Zero999:
It's not something I've done before.

How precise does it need to be?

If precision is important, then how about a PLL controller?
https://www.ti.com/lit/an/slua085/slua085.pdf

Martinn:

--- Quote from: fourtytwo42 on June 09, 2024, 07:15:54 pm ---Another is to AC couple and low pass filter the commutation voltage and count the frequency.

--- End quote ---

Great idea! Did that work? Probably pretty messy I'd think?


--- Quote from: fourtytwo42 on June 09, 2024, 07:15:54 pm ---And finally I have tried PWM sampling the back emf during switch off time.

--- End quote ---
That would be the straightforward way, I wonder how well that works with the commutation noise?


--- Quote from: fourtytwo42 on June 09, 2024, 07:15:54 pm ---I am guessing that pcb only implements constant voltage OTH the heatsink is quite small so maybe it's a PWM output but with no feedback.

--- End quote ---
Yes, it's PWM, you can hear it (few hundred Hz).

So how was your success rate with those methods?

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod