How to control current for a Brushed DC motor using PWM?

Thread Starter

learnfromfailures

Joined Jun 14, 2021
10
I'm designing a FPGA controlled DC brushed motor with 28V, inrush current 30 Amps and Stall current 25 amps. I'm need to design a current controller. I don't know how can I control just the current with PWM. I have an option to use specialized IC DRV8701 instead, I want to control using FPGA Software.
 

Papabravo

Joined Feb 24, 2006
17,315
The basic idea is to use switches to connect and disconnect the motor windings from a power sources in such a way that the average current can be fixed at a specified value. The operation of an inductive load usually involves a current that is either increasing or decreasing but never constant. The integral of the current with respect to time over a period will give you an average value. The magnitude of the current ripple can be controlled by adjusting the switching frequency or period. The duty cycle or the ratio of "on" time to the switching period can be adjusted to change the average current.

It doesn't seem like you have the time to mess around with the FPGA. If I were you I'd use the DRV8701. It seems like a viable way to go if you're not absolutely sure you know what you want to do and how to get there.
 

LowQCab

Joined Nov 6, 2012
1,372
Do You want to "Limit-Current" to the Motor,
or Control Motor Torque / Speed by varying Current rather than Voltage,
or both.

An FPGA seems like an awful lot of work and complexity to simply control a Motor.
Why is an FPGA necessary ?
.
.
.
 

Thread Starter

learnfromfailures

Joined Jun 14, 2021
10
The basic idea is to use switches to connect and disconnect the motor windings from a power sources in such a way that the average current can be fixed at a specified value. The operation of an inductive load usually involves a current that is either increasing or decreasing but never constant. The integral of the current with respect to time over a period will give you an average value. The magnitude of the current ripple can be controlled by adjusting the switching frequency or period. The duty cycle or the ratio of "on" time to the switching period can be adjusted to change the average current.

It doesn't seem like you have the time to mess around with the FPGA. If I were you I'd use the DRV8701. It seems like a viable way to go if you're not absolutely sure you know what you want to do and how to get there.
This explains it, thanks. The PID loop will be required. I took a course in control theory during my undergrad. I forgot how people started PID loop design. I'm assuming using MATLAB they get the parameters for a PID loop and then implement that in FW design.
 

Thread Starter

learnfromfailures

Joined Jun 14, 2021
10
Do You want to "Limit-Current" to the Motor,
or Control Motor Torque / Speed by varying Current rather than Voltage,
or both.

An FPGA seems like an awful lot of work and complexity to simply control a Motor.
Why is an FPGA necessary ?
.
.
.
I don't want to limit then current if I'm using a controlled current loop. The speed is not an issue, I don't want to control the speed at all. It is mostly stall and inrush current. I can only vary the average current using PWM and current sense. Correct ? That is the idea.

Small xilinx S7 FPGA with DSP was a better fit in terms of control and cost.
 

Papabravo

Joined Feb 24, 2006
17,315
This explains it, thanks. The PID loop will be required. I took a course in control theory during my undergrad. I forgot how people started PID loop design. I'm assuming using MATLAB they get the parameters for a PID loop and then implement that in FW design.
It may be more complicated then that, and I am far from certain that Matlab is the correct tool. I would recommend that you at least take a look at simulation of the motor and the control loop as an alternative.
 

LowQCab

Joined Nov 6, 2012
1,372
I'm sorry but I still don't understand what You are trying to accomplish.

You say "Correct" ??, as if You are asking if your method of control is
the "standard" and generally accepted "proper" way to control a Motor.

There are many different, very simple, ways of controlling a Motor,
PWM is only "required" when maximum efficiency is required,
or when the Motor is very large,
and therefore PWM becomes the most practical method of control.

You have not made the application clear.

You may have a Motor with a very high-inertia Load,
that may need precision positioning control.

Current Regulation for control of the Motor does have certain advantages,
but it is not required,
except in highly specialized applications.
.
.
.
 

Thread Starter

learnfromfailures

Joined Jun 14, 2021
10
I'm sorry but I still don't understand what You are trying to accomplish.

You say "Correct" ??, as if You are asking if your method of control is
the "standard" and generally accepted "proper" way to control a Motor.

There are many different, very simple, ways of controlling a Motor,
PWM is only "required" when maximum efficiency is required,
or when the Motor is very large,
and therefore PWM becomes the most practical method of control.

You have not made the application clear.

You may have a Motor with a very high-inertia Load,
that may need precision positioning control.

Current Regulation for control of the Motor does have certain advantages,
but it is not required,
except in highly specialized applications.
.
.
.
In simple words, all I'm asking is if I can eliminate or reduce inrush and stall current using PWM method. I know I can control the speed of the motor with PWM, that is not an issue. I'm more concerned with the starting the motor and overcome inertia.

This is an industrial application where DC motor controls a valve. The valve has a load and DC motor, during start, has to overcome that load.

What sort of method are you referring with precision position control ? I dont have a rotary encoder it is a simple brushed DC motor.

If a motor needs 30Amps to overcome inertia, how can a current regulation will work in this case ? I'm trying to "force" a DC motor to consume current.
 

shortbus

Joined Sep 30, 2009
8,971
If a motor needs 30Amps to overcome inertia, how can a current regulation will work in this case ? I'm trying to "force" a DC motor to consume current.
One of us doesn't understand DC motors. Don't know if it's you or me. From my world and learning a motor of any type DC or otherwise will "try" to draw the current necessary to do it's job, if the current isn't available it will, blow its fuse if it has one, it will burn up if it doesn't. Never heard that you can "force" any electrical thing to take more current than it actually needs.
 

LowQCab

Joined Nov 6, 2012
1,372
There is one simple answer, No.
A Motor, especially a Brushed-Motor will require Current in
direct proportion to the Torque it is producing.

If the Motor must generate XXX-Torque to overcome the friction of a Valve-Shaft
then XXX-Amps of Current will be required.
PWM Control Techniques will not reduce this required amount of Torque / Current.

You can, however, smoothly ramp-up the Current so as to not require
the Motor to spin to high RPM "instantly",
but it will still take XXX-Amps to move the Valve,
regardless of what type of Controller You use,

Unless, of course, You reduce the friction of the Valve,
or use a Valve-Actuator that has a Gear-Box that reduces
the Torque requirements of the Motor,
but which will cause the Valve to move much slower.
.
.
.
 
Top