LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PID Auto Tune of integrating process with delay

Hi all,

 

I'm trying to use the Advanced Auto Tune to tune the PID of a process. Either I'm using the Auto Tune incorrectly, or it is not suitable for my application, but it won't converge (finish).

 

The process is an integrating process, much like this watertank example, but in my case the process restarts every few minutes. The sampling frequency is 10 Hz (controlled by an external timer). At maximum I can "run" the process for 7 minutes, before restarting.

I can achieve sustained oscillation of the process variable, but Ziegler-Nichols or derived rules do not seem to suffice (still oscillating output). With these settings the process has an initial settling time of 30-40 seconds with a large overshoot.

 

I implemented the Advanced Auto Tune to have it tune the process using Relay, P or PI type controller, Normal or Slow, and Amplitude varied between 1 and 30. My setpoint is between 300-600.

I checked the example VIs with auto tuning, there the process converges fast. In my case I do not even observe any change in behaviour when the auto tune is disabled or enabled. It makes me believe it's not properly working. I attached a small snippet of how I implemented the Advanced Auto Tune. I'm sorry I cannot make a minimal working example (nor can share the full VI). If necessary I can provide more data.

 

Any thoughts how I should approach this? Should I run it for longer, or is it perhaps simply not suitable for this type of process?

 

Thanks,

Paul

0 Kudos
Message 1 of 5
(2,961 Views)

I can not say I follow you completely...

 

I believe the Auto-tuning and other math approaches can handle a linear system but if it is non-linear, you need another approach.

 

So if worse comes to worse you could try an old-school approach that goes;

 

0) Make sure everything is safe and you can kill things if the start to oscillate out of control.

1) Crank the P I and D down to zero.

2) Start sending set points between to values and keep them going while tuning.

3) Crank up the P term gradually looking for first signs of the system stating to react to the set-points.

4) Keep cranking the P term watching for the system to start approaching the set-points.

5) Increase the P gradually until you start to see over-shot, stop with the P term.

6) Gradually increase the I term to reduce the over-shoot.

 

Then try two different set-points and see how you PID behaves. If the system is non-linear (I believe) you may need to introduce gain scheduling to use different PID values for different ranges.

 

I have delivered a good number of PID based systems and "tuning" is like beauty in that what is good is determined by the eye of the beholder.

 

Now no matter what you do, stay safe!

 

If the performance start to look like it is a historical chart of Bit Coin, you have an out of control system, shut it down fast!

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 2 of 5
(2,938 Views)

Thanks for the reply, Ben.

 

The opening post may not have been fully clear. I'm confused about the implementation of the autotune - it does not seem to do anything for me. I start the process, wait for it to get in its state of sustained oscillation, and then turn Autotuning on. From here, the Autotune has 5-6 minutes to finish the tuning, but it never does. More importantly the process does not behave any different than before the autotuning, so I don't think it is actually doing anything.

 

The system is definitely non-linear, and also integrating. I would be surprised if the autotune would not be able to work with non-linear systems, since there are hardly any linear systems to control. Perhaps the non-linearity in combination with an integrating process is too much for the autotune. Or the time it has is simply too short. But for that I first would like to see that it is actually trying.. Am I implementing it wrong? Should I change the parameters?

 

Manual tuning is quite a pain. I tried it with a similar strategy as yours but I did not get to satisfactory results. Without a proper model (or the possibility to make one) it also difficult to predict the tuning values.

0 Kudos
Message 3 of 5
(2,918 Views)

@irPaul wrote:

... 

Manual tuning is quite a pain. I tried it with a similar strategy as yours but I did not get to satisfactory results. Without a proper model (or the possibility to make one) it also difficult to predict the tuning values.


While engineers and scientist that focus on just one THING (like the inverted pendulum and keeping rocket upright in flight) I have found it rare to run into a customer that was able to predict the tuning before turning on the system. There is a reason they call it "tuning".

 

Did you try different PID settings for different set points?

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 4 of 5
(2,900 Views)

Of course the system has to be fine-tuned, I agree. But I was always taught to make guesstimates: turn on the system and measure dynamic response parameters, and use these to create a model with which to predict controller gains and stability. Basically what the LabView Auto Tune function does: it varies the output and records dynamic response, to calculate the controller gains with that.

I was hoping to do that, but the Ziegler-Nichols method using sustained oscillation did not work, that's why I wanted to see what the LabView Auto Tune would do.

 

I dug some deeper in the literature, and it is clear to me that an integrating process requires a completely different tuning strategy. LabView's Auto Tune is definitely not suitable for that, so I can forget about it.

I have been able to measure enough system response parameters to apply the Lambda tuning method for integrating processes.

I guess from here it's not LabView-related anymore..

0 Kudos
Message 5 of 5
(2,885 Views)