Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

PID tuning question for throttle actuator

Status
Not open for further replies.

mgeerts

Computer
Nov 10, 2009
34
I have a DC motor attached to the throttle of a continuously variable transmission fed by an engine that always runs at the same speed.

I measure the output speed and compare to the set speed. I use the difference as the error in a PID system that has an output of the PWM duty cycle going to the motor.

I have the system running fairly well but I find that I'm always below my setpoint because the throttle has a very light return-to-zero springiness to it.

How can I adjust my PID controller to account for this spring return? I would suspect that an increase "I" should do it.

Second question:
There is a bad hysteresis in this system. It seems that the amount of throttle required to get the machine to begin moving is high enough to get it to overshoot my setpoint horribly. This often causes wild fluctuations where this overshoot starts causing oscillation.

A high "I" value (the possible solution to the above problem) is going to make this problem even worse. As i ramp up the PID to get the machine to start it will be building up a large "I" and will continue to increase the throttle even as it is passing the setpoint!

Thanks,
Matt
 
Replies continue below

Recommended for you

You have two classic servo problems 1) a feedback sensor system that is under damped and a "Stiction" deadband.

This is not an elegant solution but you could try adding a mechanical viscous damper across the throttle return spring. The should 1) kill the oscillations from the throttle position sensor and 2) slow down the servo response enough to allow the integral term time to unwind to stop the overshoot.
 
sreid, I appreciate your input. I think that I need to clarify something, though. It is not the throttle actuator that is oscillating wildly - it is the transmissions output speed.
I actually have very fine control over the throttle position - if it does oscilate it is very small and settles in a fraction of a second.
I actually described my system incorrectly - the transmission output speed error is used to determine a change in throttle position, not PWM. The position is then fed into another PID that outputs PWM.

So the throttle is always going where I want it, but the machine response is to not move till the throttle position is way too high, then "I" takes over and it continues to overshoot, then oscillate horribly.

Would a "D" term, properly tuned, cause the controller to back off when the machine's speed begins to rise? (unfortunately, i don't get my hands on this machine very often, i'm programming at my desk).
 
Derivative action can also be called "Electronic Damping" so it's worth a try.
 
I just wish i had some better datalogging on this thing so I could try to "excel tune" it. I'll play with it and see where some D tuning gets me. I suppose I'll first tune the P and I according to changes in speed after the initial start has already been overcome, then tune D to prevent the initial overshoot on startup. Sound like a reasonable game plan?

(I've been playing occasionally with PID for a couple years, but it is usually rather straight forward, not series-PID controllers with hysteresis)

Thanks for your help, sreid.
 
The most common control on small generator sets is proportional plus offset.
For 1800 RPM nominal speed, the offset and proportional are set for 1854 RPM no load and 1800 RPM at full load.
No integral. No derivative. You may chose to use some integral for mission critical or slow changing applications.
First get the system working with just offset and proportional.
These settings work well for millions of gen sets.

Bill
--------------------
"Why not the best?"
Jimmy Carter
 
Hello mgeerts:

Why is it necessary for the second PID - the throttle position / PWM loop? Does the throttle position simply need translated to PWM output, or am I missing something?
 
PWM output determines the torque generated by the throttle motor. It is a very rapidly changing system and therefor can use very tight controls to snap the throttle to exactly where i want it quickly.

The system speed changes very slowly, so it has its own PID that takes in speed and puts out throttle position.
 
Does your controller have "Offset"?

Bill
--------------------
"Why not the best?"
Jimmy Carter
 
No, actually. How does that fit into the equation?
 
That's back to standard PID theory. If you just have P control the controller's authority is the difference between the setpoint and the output - which is the error. As the error diminishes the authority does too. This guarantees that the output will NEVER reach the setpoint.

So you get really fast, simple control, but it never actually reaches the setpoint...

Enter the offset. You essentially lie about where the setpoint is. You artificially add to the setpoint so right when the authority runs out the output is at the originally desired setpoint. It's simple and generally effective.

You setup up the P control to be snappy and stable while not actually caring about where it lands. Once it's working well you add an offset to the desired setpoint that lifts the output speed to your actual desired value.

Keith Cress
kcress -
 
Sounds easy enough, I suppose. I will add that to my list of things to try - probably at the top of that list.

Thanks for all of your help, everybody.
 
I won't even have my hands on the machine for a week and I don't know if i'll be able to start PID tuning as new circuit boards need testing. I'll get back when i can, though!
 
You said it much better than I could Keith.
Thanks

Bill
--------------------
"Why not the best?"
Jimmy Carter
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor