Tuning PI speed controller for DC motor

  • Thread starter xhatemx
  • Start date
  • #1
18
0

Main Question or Discussion Point

Good day everyone

I'm implementing a speed controller for a DC motor 220 v 2.7 A 1500 rpm.

I've already made and tested the firing circuit and the motor works fine in an open loop.

Now big problem the parameters of the motor are unknown and impossible to find. No time for mechanical procedures to find those parameters too.

I want to implement a speed controller with an inner current loop. the set point is from 0 to 10 volts .. the 2 P's and the 2 I's can be varied through potentiometers but online tuning for a motor that big is dangerous i guess. Can someone tell me how to do it ?

As a start what should be the gain of the current sensing signal (The Red Box in the pic) if the resistance used is 0.1 ohm 7 watts ...

The tacho Generator transfer function is 90v / 1500rpm .. i actuated it to be 10v at 1500 rpm to match the setpoint

http://img19.imageshack.us/img19/9941/controllerl.jpg [Broken]
 
Last edited by a moderator:

Answers and Replies

  • #2
18
0
C'mon guys any help is mostly appreciated
 
  • #3
1,760
57
What functions do you want your controller to have? Do you want to ramp up and ramp down the speed with a fixed or adjustable ramp speed Do you want over current protection (to protect against over heating when stalled)?

If the motor is turning a load with high inertia especially if the load is variable you may have to worry about overshoot and oscillation. One advantage to using a PID controller over a PI controller is that the waveforms of the integrator and differentiator tend to be out of phase and thus tend to prevent oscillation.

I think you're looking to find an automatically tuning controller. The easiest way to do that may be with a microcontroller.
 
  • #4
18
0
Thanks for your reply skeptic2
Just a fixed ramp speed varying from 0 to 10v corresponding to 0 to rated rpm (which is 1500 rpm). Actually i've implemented the speed control loop and it worked fine.
Still the problem is with the red box in the pic and also i think i will have to re-adjust the PI values of the speed controller when i add the current loop to it .. right ?

And yes i will also need an over current protection.
I'm running a fixed load so i'm not worried about any kind of unstability.
And unfortunately i must do this project using analog circuits, I cant use a microcontroller..
 
  • #5
1,760
57
Assuming this is a DC motor, I'm sure you know the speed is proportional to the voltage and the torque is proportional to the current. Some of the voltage is lost in the I*R drop of the motor and wires. This results in the motor slowing down as the load increases. Normally that voltage loss is compensated for by measuring the motor current and adding a percentage of that value back into the drive voltage. The current limiting can act as a limit that will lower the drive voltage to prevent the current from exceeding a fixed value or it can act as a circuit breaker that will shut off the drive voltage until a button is reset.
 
  • #6
From the block diagram, it appears you're missing some information.

Your units won't match up at the current error and current controller (you're subtracting a current measurement from a velocity signal). Maybe I'm being picky or don't see the concept, but I think you need to add details and information to the block diagram. You can then get a proper idea of what information you have and need to attain.

Like someone else said, you will use or derive constants that show the relationship between torque and current, and voltage and rpm, all of which are specific to your motor. You should be able to get these from the manufacturer or datasheet without knowing the internal resistance and inductance of the motor.

The internal inertia, friction, inductance, and resistance of the motor may be negligible depending on the response you're expecting out of your controller and how much more significant the load's intertia and force is than the internal inertia and friction.
 
  • #7
18
0
@ TheAnalogKid83
The current signal is actually a voltage drop across a very small resistance (voltage signal corresponding to the passing current). Also as i mentioned before i know nothing about this motor except its rated V, I and rpm. No manuals or datasheet. Actually this motor has been in my college for more than 60 years.

Thanks to TheAnalogKid83 & skeptic2
Still no answer to my question :(
 
  • #8
1,760
57
Good day everyone

I'm implementing a speed controller for a DC motor 220 v 2.7 A 1500 rpm.

I've already made and tested the firing circuit and the motor works fine in an open loop.

Now big problem the parameters of the motor are unknown and impossible to find. No time for mechanical procedures to find those parameters too.

I want to implement a speed controller with an inner current loop. the set point is from 0 to 10 volts .. the 2 P's and the 2 I's can be varied through potentiometers but online tuning for a motor that big is dangerous i guess. Can someone tell me how to do it ?

As a start what should be the gain of the current sensing signal (The Red Box in the pic) if the resistance used is 0.1 ohm 7 watts ...

The tacho Generator transfer function is 90v / 1500rpm .. i actuated it to be 10v at 1500 rpm to match the setpoint

http://img19.imageshack.us/img19/9941/controllerl.jpg [Broken]
[/URL]

You say you've already gotten the speed control to work. That means you've been able to divide the maximum voltage across the motor down to 10 V and use that voltage in a comparator and integrator to develop the drive for the motor.

You need to insert a small value resistor in series with the motor. For instance if it is 0.1 ohm at 1500 RPM and 2.7 amps you will have 0.27 volts across the resistor. Your current limit needs to be above that because you will use more current during acceleration. Let's set the current limit at 3 amps but it may have to higher. It should be adjustable with a pot. You would connect your reference to the non-inverting input of the opamp and the current feedback to the inverting input. Your current feedback opamp should have a gain of at least 43.

There are various ways of combining the speed signal and the current signal. I think in your case I'd use a 10K resistor between the output of your speed signal opamp and the input of the summing opamp. I'd connect a diode between the output of the current feedback opamp and the same input of the summing opamp. The diode's anode is connected to the input of the summer opamp and the 10K resistor. The cathode is connected to the output of the current feedback opamp.

It's really difficult to convey a circuit with only words but I hope you get the idea.
 
Last edited by a moderator:
  • #9
18
0
skeptic2 thanks again for your help .. its very useful so far

sorry for the late reply; i stopped working on the project for a while and paid attention to the exams.

Anyway,

There are various ways of combining the speed signal and the current signal. I think in your case I'd use a 10K resistor between the output of your speed signal opamp and the input of the summing opamp. I'd connect a diode between the output of the current feedback opamp and the same input of the summing opamp. The diode's anode is connected to the input of the summer opamp and the 10K resistor. The cathode is connected to the output of the current feedback opamp.
Whats the purpose of the diode ? .. Is it for limiting the current ?
 
  • #10
1,760
57
The idea is that to limit current, the amplified voltage from the current sensor must be subtracted from speed voltage only if the current exceeds the current limit. One way to do that is to use a diode so that when the current is less than the current limit, its value does not get added to the speed.
 
  • #11
18
0
Thanks i'll try that ...
Its frustrating never thought a PI controller would be that complex
 

Related Threads for: Tuning PI speed controller for DC motor

  • Last Post
Replies
4
Views
15K
Replies
3
Views
2K
  • Last Post
Replies
6
Views
2K
  • Last Post
Replies
11
Views
99K
  • Last Post
Replies
3
Views
2K
Replies
28
Views
2K
Replies
4
Views
3K
Replies
6
Views
1K
Top