Tuning PI speed controller for DC motor

In summary, the speaker is implementing a speed controller for a DC motor and has successfully tested it in an open loop. However, the parameters of the motor are unknown and the speaker is seeking advice on how to implement a speed controller with an inner current loop. They are also wondering about the gain of the current sensing signal and the use of a tacho generator transfer function.
  • #1
xhatemx
18
0
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
 
Last edited by a moderator:
Engineering news on Phys.org
  • #2
C'mon guys any help is mostly appreciated
 
  • #3
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
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 can't use a microcontroller..
 
  • #5
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
@ 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
xhatemx said:
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
[/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
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,

skeptic2 said:
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
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
Thanks i'll try that ...
Its frustrating never thought a PI controller would be that complex
 

FAQ: Tuning PI speed controller for DC motor

How do I tune a PI speed controller for a DC motor?

To tune a PI speed controller for a DC motor, you will need to adjust the proportional and integral gains. The proportional gain determines the initial response of the controller, while the integral gain helps to reduce any steady-state error. It is important to test and adjust these gains until you achieve the desired speed response.

What is the purpose of tuning a PI speed controller for a DC motor?

The purpose of tuning a PI speed controller for a DC motor is to optimize the speed response of the motor. This ensures that the motor operates at the desired speed and maintains a steady-state speed with minimal error. Proper tuning also helps to prevent the motor from overshooting or undershooting the setpoint, which can lead to instability or inefficiency.

What factors should I consider when tuning a PI speed controller for a DC motor?

When tuning a PI speed controller for a DC motor, you should consider the motor's characteristics such as its inertia, torque, and maximum speed. Additionally, the load on the motor, the desired speed range, and the system's stability requirements should also be taken into account.

How can I test the performance of a tuned PI speed controller for a DC motor?

To test the performance of a tuned PI speed controller for a DC motor, you can plot the motor's speed response to a step input. This will allow you to see how quickly the motor reaches the setpoint and whether it maintains a steady-state speed. You can also test the controller's response to disturbances or changes in the load to ensure it can handle unexpected variations.

What are the common challenges when tuning a PI speed controller for a DC motor?

Some common challenges when tuning a PI speed controller for a DC motor include finding the right balance between the proportional and integral gains, as well as dealing with nonlinearities in the motor's behavior. Additionally, changes in the motor's operating conditions, such as temperature or voltage, can also affect the controller's performance and may require retuning.

Back
Top