PID control

Thread Starter

m7mood

Joined Dec 26, 2010
8
how can i control the settling time using PID to reach the setting point in different times??
plz help me..
 

strantor

Joined Oct 3, 2010
6,798
how can i control the settling time using PID to reach the setting point in different times??
plz help me..
Clarify? What are you dealing with? does your application already have PID and you are trying to tune it? Or you are trying to add PID to your application?

assuming you already have PID and you are trying to tune it:
First, make sure that your input gain and span are such that your desired setpoint is in the middle of the range, and not off to extreme.
I also usually leave a little bit of "deadzone" at each end of the range (i.e. first 25% of range corresponds to 100% PID. 26%-75% of range correspond to 99%-1% PID. 76%-100% of range corresponds to 0% PID.) This enables a little bit of time buffer for PID to be "in the red" before your system self destructs.
Generally you want to adjust your "P" (proportional gain) until the system oscillations are minimal. the lower the setting, the more stable the system will be. the higher the setting, the more responsive it will be.
Then, adjust the "I" (integral time) until oscillations get near zero. Again, the lower the setting, the more stable the system will be. the higher the setting, the more responsive it will be.
I don't normally mess with "D" (derivative)
 

Jaguarjoe

Joined Apr 7, 2010
767
You need a transducer or some device to accurately measure the process variable (PV) (what do you want to control?)

You need a controlled variable (CV) operator (how do you want to adjust the process to affect the PV the way you want)

You need a PID controller that can accept the PV signal, the setpoint (SP) signal and also supply the proper output to the CV operator.

You need to tune the PID loop.

Honeywell UDC's are nice PID controllers that can be adapted to many applications. There are many hundreds of PID controllers out there. Like cars, everyone has their favorite. Ditto for xdcrs and final operators.
 

Thread Starter

m7mood

Joined Dec 26, 2010
8
Clarify? What are you dealing with? does your application already have PID and you are trying to tune it? Or you are trying to add PID to your application?

assuming you already have PID and you are trying to tune it:
First, make sure that your input gain and span are such that your desired setpoint is in the middle of the range, and not off to extreme.
I also usually leave a little bit of "deadzone" at each end of the range (i.e. first 25% of range corresponds to 100% PID. 26%-75% of range correspond to 99%-1% PID. 76%-100% of range corresponds to 0% PID.) This enables a little bit of time buffer for PID to be "in the red" before your system self destructs.
Generally you want to adjust your "P" (proportional gain) until the system oscillations are minimal. the lower the setting, the more stable the system will be. the higher the setting, the more responsive it will be.
Then, adjust the "I" (integral time) until oscillations get near zero. Again, the lower the setting, the more stable the system will be. the higher the setting, the more responsive it will be.
I don't normally mess with "D" (derivative)

i want to add a PID controller to control a heating system to achieve different settling time
for example : reach 50 C (setting Point) in 100 seconds (settling time),, reaching 50 C in 200 seconds.. not reaching my set point in a fixed time..
so how can i get a relation that achieve that-> reaching my set point in different times..
Is varying the duty cycle of PWM signal (o/p of PID) will achieve that?? if yes,, so what's the relation between the duty cycle and the settling time?
Is varying PID parameters (P,I,D) will achieve that?? if yes ,, so what's the relation between them and the settling time??
Is varying Ts (sampling time ) will achieve that?? if yes ,, so what's the relation between the sampling time and the settling point??

thanks for your concern :)
 

strantor

Joined Oct 3, 2010
6,798
i want to add a PID controller to control a heating system to achieve different settling time
for example : reach 50 C (setting Point) in 100 seconds (settling time),, reaching 50 C in 200 seconds.. not reaching my set point in a fixed time..
so how can i get a relation that achieve that-> reaching my set point in different times..
Is varying the duty cycle of PWM signal (o/p of PID) will achieve that?? if yes,, so what's the relation between the duty cycle and the settling time?
Is varying PID parameters (P,I,D) will achieve that?? if yes ,, so what's the relation between them and the settling time??
Is varying Ts (sampling time ) will achieve that?? if yes ,, so what's the relation between the sampling time and the settling point??

thanks for your concern :)
I haven't seen PID used for heating the way you are describing. What you are describing would probably require voltage control. the reason is because PID in heater controller is bang-bang type. either on or off - so when you first turn the system on (cold) it will immediately apply 100% power to the heater and monitor the feedback as temperature comes up. It will measure the rate of increase to determine when to "let off" (based on PID parameters). It will always heat up as fast as possible. I don't see any reason why a PID controller could not do what you are describing with PWM if it were designed for such; but I've never one with that function. I would advise you to do some research/call up manufacturers and ask if their products support what you are trying to accomplish.
 

steveb

Joined Jul 3, 2008
2,436
I haven't seen PID used for heating the way you are describing.
Yes, usually large heating systems use bang/band type control. However, we used to see PID used for thermal chambers in order to improve the control. In recent years these PID controllers have been largely replaced by fuzzy logic controllers.

In any event, when a PID system is in use, the PID parameters are the logical thing to change to try and tune the settling time. The system itself is not tunable, and generally things like PWM frequency and sampling time are not going to be a factor unless they are set too low, which is not likely in a large thermal system.

The proportional gain should be set as high as possible, but not so high that the system oscillates. And, then the integral gain can be adjusted to get the settling time, if possible. The derivative gain is a fine tuning control to try and prevent excessive overshoot (can be tricky and can add noise, so many people avoid using the D term, as you mentioned yourself).
 
Last edited:

Thread Starter

m7mood

Joined Dec 26, 2010
8
I haven't seen PID used for heating the way you are describing. What you are describing would probably require voltage control. the reason is because PID in heater controller is bang-bang type. either on or off - so when you first turn the system on (cold) it will immediately apply 100% power to the heater and monitor the feedback as temperature comes up. It will measure the rate of increase to determine when to "let off" (based on PID parameters). It will always heat up as fast as possible. I don't see any reason why a PID controller could not do what you are describing with PWM if it were designed for such; but I've never one with that function. I would advise you to do some research/call up manufacturers and ask if their products support what you are trying to accomplish.
thanks very much..
 

strantor

Joined Oct 3, 2010
6,798
Yes, usually large heating systems use bang/band type control. However, we used to see PID used for thermal chambers in order to improve the control. In recent years these PID controllers have been largely replaced by fuzzy logic controllers.

In any event, when a PID system is in use, the PID parameters are the logical thing to change to try and tune the settling time.
Correct me if I'm wrong M7, but I think when he refers to "settling time", he's referring more to a "ramp time" - the total time it takes from when you turn it on, or when you change the setpoint, to when it reaches the new setpoint (i.e. the entire PID curve); not really a settling time like I would usually think of it - the time at or near the end of the upward trend curve (or when compensating for a change up/down in temperature) at which temp stops changing and levels out. (at least that's the way I interpret it). changing this "total time" (as I will refer to it now) is what I'm not sure how to do. I've never seen an option for it in a controller.

The system itself is not tunable, and generally things like PWM frequency and sampling time are not going to be a factor unless they are set too low, which is not likely in a large thermal system.

The proportional gain should be set as high as possible, but not so high that the system oscillates. And, then the integral gain can be adjusted to get the settling time, if possible. The derivative gain is a fine tuning control to try and prevent excessive overshoot (can be tricky and can add noise, so many people avoid using the D term, as you mentioned yourself).
 
You could still use the same PID control, even just PI at a push, to control the ramp but you would need to have rate of change as a (P)rocess variable rather than absolute temperature.
Of course you would have to know the magnitude of the required change in order to calculate the target rate in the first place.
Al
 

strantor

Joined Oct 3, 2010
6,798
You could still use the same PID control, even just PI at a push, to control the ramp but you would need to have rate of change as a (P)rocess variable rather than absolute temperature.
Of course you would have to know the magnitude of the required change in order to calculate the target rate in the first place.
Al
I don't get it. If rate of change was your process variable, wouldn't temp just continue to rise up and up past your desired final temp until the heater was maxed out, so long as the desired rate of change was satisfied?



What about if you setup the PID controller as you normally would, then externally installed some sort of proportional timer (i don't know of any such timer, but it seems feasible to find or make) to multiply the thermocouple feedback signal X a fraction proportional to time. For example, you set it for 100sec; at 10sec it will multiply the signal X .10; at 70 sec, X .70 ...etc. As long as the proportional gain was high enough to be just a little bit faster than the rising process variable, I think that should work. Now where to find such a thing, IDK.
 

Thread Starter

m7mood

Joined Dec 26, 2010
8
Correct me if I'm wrong M7, but I think when he refers to "settling time", he's referring more to a "ramp time" - the total time it takes from when you turn it on, or when you change the setpoint, to when it reaches the new setpoint (i.e. the entire PID curve); not really a settling time like I would usually think of it - the time at or near the end of the upward trend curve (or when compensating for a change up/down in temperature) at which temp stops changing and levels out. (at least that's the way I interpret it). changing this "total time" (as I will refer to it now) is what I'm not sure how to do. I've never seen an option for it in a controller.
yess strantor this exactly what i want.. ramp time.. do you have any suggestions for control this ramp time ??
 
Strantor - Yes, up and up that is .... The question was how to control rate ...
A completly seperate loop, or a simple stat, would be required to end the process and send the control back to a more usual level control.

Whilst moving between setpoints you would use a degree second rate.

Whilst maintaining a setpoint you would work with a conventional derivative energy input based on the error (PWM or PID depending on the accuracy required)

In industrial procesors loops would be switched in sequence, or according to some other logical analasis, with the parameters for the rate calculated from the current temperature diferental when the loop started.

What isnt clear to me is weather he is asking for a constant time with a variable rate or a constant rate with a variable time.
Given that the start and end temps arn't fixed, so the diferential is dynamic, then either time or rate must also be dynamic.

A fixed rate would actually be relativly easy and may well be possible in a single loop if rate and offset were both factored in to the derivertive calculation with rate as an inverted factor.
Calculating the required rate for a fixed time over a variable diferential is the tricky bit I think. Once done, at the beginning of the process cycle, this would need to be applied to the fixed rate loop or above.

Just musing ....
Al
 
Top