Speed control of a DC motor.

MrAl

Joined Jun 17, 2014
11,389
I red about this relationship in electric machinery fundamentals - 5th ed (chapman) but i am not able to find a method to manipulate this value experimentally and thus control the speed of the motor.
Hi again,

The basic theory is actually pretty simple. For applied armature voltage Va, armature current Ia, and armature resistance Ra, the back EMF in the steady state solution (effects of rotational inertia and series inductance have damped out) is:
Vb=Va-Ia*Ra

What this means is that we can use this Vb as feedback for a speed regulator/control. All we have to do is measure Va, measure Ia, get an approximate measure of Ra, and then build a small op amp circuit that subtracts Ia*Ra from Va. Since we only have an approximate Ra, we make that adjustable. Running the motor with load, we add some friction to the motor to see if the speed stays constant, and if it does not stay constant then we adjust the measurement circuit equivalent to Ra until it does, with the normal load and with some added friction.

Of course in the actual circuit we may scale the values like Ia so we dont have to work with the full motor current. And Vb is used as the feedback signal. Note that then Va and Ra are constant and Ia increases because of extra frictional load, Vb decreases, and that tells us that we must apply a higher Va to get Vb back up again and thus keep the shaft speed constant. That's the basic feedback mechanism.
 

Thread Starter

Halim.Akiki

Joined Dec 29, 2014
44
Hi again,

The basic theory is actually pretty simple. For applied armature voltage Va, armature current Ia, and armature resistance Ra, the back EMF in the steady state solution (effects of rotational inertia and series inductance have damped out) is:
Vb=Va-Ia*Ra

What this means is that we can use this Vb as feedback for a speed regulator/control. All we have to do is measure Va, measure Ia, get an approximate measure of Ra, and then build a small op amp circuit that subtracts Ia*Ra from Va. Since we only have an approximate Ra, we make that adjustable. Running the motor with load, we add some friction to the motor to see if the speed stays constant, and if it does not stay constant then we adjust the measurement circuit equivalent to Ra until it does, with the normal load and with some added friction.

Of course in the actual circuit we may scale the values like Ia so we dont have to work with the full motor current. And Vb is used as the feedback signal. Note that then Va and Ra are constant and Ia increases because of extra frictional load, Vb decreases, and that tells us that we must apply a higher Va to get Vb back up again and thus keep the shaft speed constant. That's the basic feedback mechanism.
But we have to do it on a constant load because varying the load will automatically change the speed according to the magnetization curve of the equivalent circuit of this DC motor. since Va/Vo = Na/No and since Ra is constant Ia is varied with the variation of the load, and thus Va changes with the load. Am i wrong?Magnetization curve.png Shunt DC equivalent.jpg
 

Thread Starter

Halim.Akiki

Joined Dec 29, 2014
44
In what way exactly?
If I can't there is sure to be someone here that can if you post the question.
Max.
I posted earlier a circuit i drew on proteus that you gave me the other day on #12, can you tell me what i missed? And can you give me your opinion about what's happening in posts 22 and 25?
 

nsaspook

Joined Aug 27, 2009
13,081

Thread Starter

Halim.Akiki

Joined Dec 29, 2014
44
You can have fairly precise speed and position control of DC motors using current control. I once built a XYZ test jig for a contractor to test rebuilt parts using slowing resistors, DPDT reversing and stopping relays. It had to emulate the original controller so we could see how the parts worked before being install on a working machine.

Original prototype controller.
https://www.flickr.com/photos/nsaspook/sets/72157630632759744/
https://github.com/nsaspook/mandm
What you did is epic but with my level of education ( third and last year BS license in electrical engineering ) i can't understand most of it. The code you wrote is too advanced because i only know Assembly language for PIC18F4550. I hope that after 2 years when i finish my masters i could understand it all.
 

nsaspook

Joined Aug 27, 2009
13,081
What you did is epic but with my level of education ( third and last year BS license in electrical engineering ) i can't understand most of it. The code you wrote is too advanced because i only know Assembly language for PIC18F4550. I hope that after 2 years when i finish my masters i could understand it all.
It's complicated because I didn't use true PWM and modern methods to control speed and positioning. It was fun to make and interface with the various analog inputs/output in an old school way but I wouldn't design something like it today unless there was a special requirement for very high EMI or a possible rad-hard environment like in the OEM gear.
 

Thread Starter

Halim.Akiki

Joined Dec 29, 2014
44
It's complicated because I didn't use true PWM and modern methods to control speed and positioning. It was fun to make and interface with the various analog inputs/output in an old school way but I wouldn't design something like it today unless there was a special requirement for very high EMI or a possible rad-hard environment like in the OEM gear.
Is there any simpler way to do it?
 

MrAl

Joined Jun 17, 2014
11,389
But we have to do it on a constant load because varying the load will automatically change the speed according to the magnetization curve of the equivalent circuit of this DC motor. since Va/Vo = Na/No and since Ra is constant Ia is varied with the variation of the load, and thus Va changes with the load. Am i wrong?View attachment 80318 View attachment 80319

Hello again,

I am not sure what you are saying here. If you have constant load then you dont need a regulator, you just have to change the drive voltage, and that's a no brainer.

However, if you want linear control (motor speeds up in proportion to the angle of the adjustment potentiometer shaft for example) then you need regulation, or if you need to actually make sure the speed stays constant if the load varies even a little then you need regulation too.

Va changes with the load only if you incorporate a speed control circuit. The speed control circuit then changes Va so that the motor stays at a constant speed even if the load changes.

This kind of speed control has been used over decades, but let me run through a block diagram of what it would require.
First, measure the current. The current would then be in the form of a voltage, and then that voltage is used as the input of an amplifier. The amplifier has gain set to a value Kb. The output of the amplifier Vout is then equal to Kb*Ia. Kb here is the 'back emf' constant of the motor.
We then subtract that from Va using another op amp perhaps, and that gives us a voltage Vb. We then subtract that from a reference voltage (the reference voltage sets the speed) so we get a new voltage Ve, the error voltage, so this is Ve=Vref-Vb. The error voltage is then used as the input to an integrator, and the output of the integrator is the drive (Va) to the motor (with appropriate current capability).
Since the expression Kb*Ia may lead to a voltage that is too high to implement in the real world, some scaling of that would most likely be necessary, as well as a scaling of Vref so that they both stay within the limits of the power supply (which might only be 10 volts).

It might sound a little strange but that's the way you build a speed control based on back emf, and the above circuit can probably be reduced to use a single op amp section, although that detracts from the theory of using the back emf itself so it's best left for last.
Also, Kb is the back emf constant of the motor, but if you dont know that then a little experiment allows you to adjust this constant. Since in our circuit above this was the gain of an op amp stage, it can be made to be a potentiometer so it can be adjusted during the test phase. This also allows adjusting on a per motor basis, where each motor might be somewhat different.

This is purely analog too, but if it sounds too complicated then i guess you'll have to wait until you get to more advanced classes, or just take a good look at it now and analyze it until you understand it well.

As i pointed out earlier too, this is mainly used for small motors because the drive is analog too. But that can be changed. You can substitute a PWM circuit for the drive circuit part of the circuit above, and that will allow use with bigger motors. The real beauty of this kind of circuit is that it does not require a speed sensor such as a tachometer, and since the calculations are all done using analog, no micrcocontroller is needed either.
 

Thread Starter

Halim.Akiki

Joined Dec 29, 2014
44
Hello again,

I am not sure what you are saying here. If you have constant load then you dont need a regulator, you just have to change the drive voltage, and that's a no brainer.

However, if you want linear control (motor speeds up in proportion to the angle of the adjustment potentiometer shaft for example) then you need regulation, or if you need to actually make sure the speed stays constant if the load varies even a little then you need regulation too.

Va changes with the load only if you incorporate a speed control circuit. The speed control circuit then changes Va so that the motor stays at a constant speed even if the load changes.

This kind of speed control has been used over decades, but let me run through a block diagram of what it would require.
First, measure the current. The current would then be in the form of a voltage, and then that voltage is used as the input of an amplifier. The amplifier has gain set to a value Kb. The output of the amplifier Vout is then equal to Kb*Ia. Kb here is the 'back emf' constant of the motor.
We then subtract that from Va using another op amp perhaps, and that gives us a voltage Vb. We then subtract that from a reference voltage (the reference voltage sets the speed) so we get a new voltage Ve, the error voltage, so this is Ve=Vref-Vb. The error voltage is then used as the input to an integrator, and the output of the integrator is the drive (Va) to the motor (with appropriate current capability).
Since the expression Kb*Ia may lead to a voltage that is too high to implement in the real world, some scaling of that would most likely be necessary, as well as a scaling of Vref so that they both stay within the limits of the power supply (which might only be 10 volts).

It might sound a little strange but that's the way you build a speed control based on back emf, and the above circuit can probably be reduced to use a single op amp section, although that detracts from the theory of using the back emf itself so it's best left for last.
Also, Kb is the back emf constant of the motor, but if you dont know that then a little experiment allows you to adjust this constant. Since in our circuit above this was the gain of an op amp stage, it can be made to be a potentiometer so it can be adjusted during the test phase. This also allows adjusting on a per motor basis, where each motor might be somewhat different.

This is purely analog too, but if it sounds too complicated then i guess you'll have to wait until you get to more advanced classes, or just take a good look at it now and analyze it until you understand it well.

As i pointed out earlier too, this is mainly used for small motors because the drive is analog too. But that can be changed. You can substitute a PWM circuit for the drive circuit part of the circuit above, and that will allow use with bigger motors. The real beauty of this kind of circuit is that it does not require a speed sensor such as a tachometer, and since the calculations are all done using analog, no micrcocontroller is needed either.
I understood almost 90% of the explanation but can you draw me a block diagram so i can understand it more?
 

MrAl

Joined Jun 17, 2014
11,389
I understood almost 90% of the explanation but can you draw me a block diagram so i can understand it more?
Hello again,

In the diagram, A/s is an integrator, and for our discussion G(s) is a constant G.
As show, B(s) is the back EMF and is proportional to the speed w(s). This B(s) comes from subtracting the current times G from the armature voltage Va(s).
For simplification, we can call the armature voltage Va, the back emf B, the speed w, and the armature current Ia.
 

Attachments

Thread Starter

Halim.Akiki

Joined Dec 29, 2014
44
Hello again,

In the diagram, A/s is an integrator, and for our discussion G(s) is a constant G.
As show, B(s) is the back EMF and is proportional to the speed w(s). This B(s) comes from subtracting the current times G from the armature voltage Va(s).
For simplification, we can call the armature voltage Va, the back emf B, the speed w, and the armature current Ia.
Thank you! this circuit just reminded me of a course i took once about control systems, and in it's lab we only worked on com3lab (if you know it) but we never applied it on real practical devices. I'll take a look at the book (Modern Control Engineering 5th Edition Ogata) and try to make the actual circuit on a board. Thank you, again.
 

MrAl

Joined Jun 17, 2014
11,389
Thank you! this circuit just reminded me of a course i took once about control systems, and in it's lab we only worked on com3lab (if you know it) but we never applied it on real practical devices. I'll take a look at the book (Modern Control Engineering 5th Edition Ogata) and try to make the actual circuit on a board. Thank you, again.
Hi,

You're welcome :)

Keep in mind that some of the signals may have to be scaled up or down to fit within the power supply requirements and still have reasonable min and max amplitudes.

That book sounds interesting, i bet they have something in there and maybe with a speed regulator like this. Would be interesting to see how they did it.
 
Top