LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

I need a PID Guru, dead time issue

I have a system that does not want to be tuned using a PID controller.  It has a significant dead time of about 15 seconds and asymmetric rise and fall times.  This is a circulating chamber that produces smoke to test devices.  I don't want to get into details about the chamber, NDA.

 

It is easy to add smoke but the dead time is killing the PID control.  The smoke escapes very slowly so it is hard to correct for overshot.  We have tried almost everything in the manual.  Tune one parameter at a time while setting the others to zero, different sampling rates, and the auto-tune.  Auto-tune seems to yield no usable results.

 

We are able to get it to kind of work but not the way we want it to.  If we ease it into the set point then it takes forever to get to the set point.  If we make it faster then it has overshot and can’t correct.  Seems to stay just high or low of the set point but will not lock on the set point.  What we would like is faster start to the set point then ease it into the line and then lock on the set point.  Asking too much????

 

I am about ready to abandon the PID control but thought I would post looking for additional ideas.  I have tried the basic and advanced PID tuning VIs but have had minimal success.  Contacted NI Support and no real solutions came from the discussion.  The PID control seems to work excellent when dead time is not an issue.

 

Anyone?

 

Matt

Matthew Fitzsimons

Certified LabVIEW Architect
LabVIEW 6.1 ... 2013, LVOOP, GOOP, TestStand, DAQ, and Vison
0 Kudos
Message 1 of 8
(3,631 Views)
Matt,

You have a non-linear system (the assymetry), so you may need an adaptive or non-linear control. Can you determine two sets of parameters, one that works for adding smoke and another which works for removing it? Depending on which side of the setpoint you are on, switch parameter sets. You will also need some dead space or hysteresis near the setpoint. Easier said, than done probably.

Long delays are deadly to control systems as you probably already know.

Lynn
0 Kudos
Message 2 of 8
(3,614 Views)

Thanks for the reply.  I will see if I can come up with two distinct settings for adding and subtracting.  Yes, this is proving to be very challenging.

Matt

Matthew Fitzsimons

Certified LabVIEW Architect
LabVIEW 6.1 ... 2013, LVOOP, GOOP, TestStand, DAQ, and Vison
0 Kudos
Message 3 of 8
(3,607 Views)

Greetings,

If you are staying with the PID control.  Other thing to try would be to put limits on the integrator.  This will help prevent 'wind-up' during your long dead time.  The response still might be poor, but at least controllable.  You might also try playing with how fast the PID loop iterates.  Shorter loop times will give you more correction, sooner, but would produce more 'wind-up' during your long delay.

I you transition to a 'rule' based system (fuzzy logic).  You might have the ability to define logic for each control issue you've come across.  If you do not want to use the more traditional fuzzy system (continuous functions) you could make the correction in discrete steps.

These are broad suggestions, but perhaps they might work.

JMA

0 Kudos
Message 4 of 8
(3,594 Views)

Thanks for the advice.  When you say, "Other thing to try would be to put limits on the integrator" do you mean just keep the number small to prevent wind up?

Matt

Matthew Fitzsimons

Certified LabVIEW Architect
LabVIEW 6.1 ... 2013, LVOOP, GOOP, TestStand, DAQ, and Vison
0 Kudos
Message 5 of 8
(3,581 Views)
Howdy Matt,
 
No.  I mean to put an upper and lower bounds on the integral term contribution of your PID loop.  I do not have the PID toolkit and have used this with embedded systems.  Each of the PID terms gets calculated, summed together, and then this gets massaged into some sort of output.  If the integral term starts at a value (some seed value) upon initializing your system.  With each loop iteration, the calculated integral sum will fluctuate higher and lower based on your error from the set point.   I assumed from your long delay in the system, the integral sum was going so far out the normal range for most corrections it was causing an uncontrolled overshoot or undershoot (too large / small to overcome quickly).
0 Kudos
Message 6 of 8
(3,578 Views)
Got it, Thanks!
Matthew Fitzsimons

Certified LabVIEW Architect
LabVIEW 6.1 ... 2013, LVOOP, GOOP, TestStand, DAQ, and Vison
0 Kudos
Message 7 of 8
(3,569 Views)

Just for future reference.  I gave up on the PID and went to the Fuzzy Logic controller.  More predictable and easier to control for my application.

Matt

 

Matthew Fitzsimons

Certified LabVIEW Architect
LabVIEW 6.1 ... 2013, LVOOP, GOOP, TestStand, DAQ, and Vison
0 Kudos
Message 8 of 8
(3,525 Views)