PID Tuning tool

My tuning values are in a similar range to what you guys have already posted.
Those graphs are from the simulation with the values provided above (converted to Independent form)
The didn't answer my question. Your graphs say ITAE. Did you use ITAE and did you use it calculate the gains directly or the poles. My suspicion is that you used ITAE to calculate the controller gains directly. That is not how ITAE is supposed to be used because the results will be different depending on whether you jump from 25 degree to 90 degrees or 25 degrees to 180 degrees. In other words, you solution will only work well for this one example.
 
The didn't answer my question. Your graphs say ITAE. Did you use ITAE and did you use it calculate the gains directly or the poles. My suspicion is that you used ITAE to calculate the controller gains directly. That is not how ITAE is supposed to be used because the results will be different depending on whether you jump from 25 degree to 90 degrees or 25 degrees to 180 degrees. In other words, you solution will only work well for this one example.

The plots were from the PID simulation with a FOPDT model as given above. The ITAE in this instance is used an indicator of PID performance allowing for comparisons of tunes.
 
Thank you all! Nice to get this discussion on PIDs going once in a while.

What bothers me the most at the moment is the adjustment of the PID controller in combination with the Smith predictor. Any good suggestions?
 
Thank you all! Nice to get this discussion on PIDs going once in a while.

What bothers me the most at the moment is the adjustment of the PID controller in combination with the Smith predictor. Any good suggestions?
Yes, tune the PID as if there is no dead time because the Smith Predictor takes care of the dead time. The issue is that a Smith Predictor requires an accurate model. If the dead time isn't too long you can compensate for the dead time by using a two term Taylor series or Pade Approximant.

The link is to a .pdf I made a few months ago when we were having a discussion about floating control vs Smith Predictor. The Smith Predictor wins hands down and is noise immune because you are actually controlling a model and using the model for feedback, not the noisy feedback. However that assume you can estimate a good model.
NOTE! ALL THE WORK A DERIVATION IS SHOWN. YOU WON'T TIME THIS KIND OF DETAIL ANYWHERE ELSE.
https://deltamotion.com/peter/Mathcad/SOPDT/Mathcad - SOPDT SP vs FC 9deg db.pdf
To estimate a model I use Nelder-Mead with differential equations to find the model with the lowest sum of squared errors, sse.
I usually don't bother with FOPDT models since they are not as accurate as the SOPDT models
The output of my python system identification tool
Code:
sse =  250.3141656165739
sse =  250.31416493541923
sse =  250.31414761879358
 final_simplex: (array([[ 3.75741204,  0.68461421,  2.84927027, 77.84024028,  0.35401924],
       [ 3.75741276,  0.68461511,  2.84926905, 77.84016508,  0.35401852],
       [ 3.75741085,  0.68461181,  2.84927089, 77.84033032,  0.35402135],
       [ 3.75741199,  0.68461453,  2.84926966, 77.84023678,  0.35401922],
       [ 3.75741296,  0.68461419,  2.84927032, 77.8401676 ,  0.35401904],
       [ 3.75741189,  0.68461419,  2.84927023, 77.84025638,  0.35401937]]), array([250.31414491, 250.3141476 , 250.31414762, 250.3141638 ,
       250.31416494, 250.31416562]))
           fun: 250.31414490854445
       message: 'Optimization terminated successfully.'
          nfev: 764
           nit: 452
        status: 0
       success: True
             x: array([ 3.75741204,  0.68461421,  2.84927027, 77.84024028,  0.35401924])
printing plot
RMS error          =   0.436
The open loop gain =   3.757 PV/%CO
Time constant 0    =   0.685 minutes
Time constant 1    =   2.849 minutes
Ambient PV         =  77.840 in PV units
Dead time          =   0.354
Time units are the same as provided in input file
The closed loop time constant =   0.285
The controller gain           =   1.472 %CO/unit of error
The integrator time constant  =   3.534 minutes
The derivative time constant  =   0.552 minutes
The data came from Ron Beaufort's "Hotrod" data.

temp.png
 
Rarely is a Smith Predictor the answer, first port of call should be to reduce dead time where possible. Here's an example implementation in Logix.


Step Response:
PRC.png

Logix FBD Smith Predictor:
Smith.PNG

PIDE (Smith Predictor) in Auto
SmithPredictor.png
 
If that is the response from a control logix, they are getting much better.
The next big hurdle with be model predictive control, MPC. I don't see that being implemented anytime soon on a PLC due to the lack of processing power but processing power is getting easier to come by.
I would like to implement MPC on our motion controller. There are some applications that are now controlled crashes because all the physical devices are TOO SLOW.

None of this makes any difference is you can't get a good model.
 
Originally posted by destination unknown:

Rarely is a Smith Predictor the answer, first port of call should be to reduce dead time where possible.

Isn't that kind of like saying "Rarely is amputation the answer, first port of call should be to treatment with antibiotics where possible". Well, you don't say. But if I were the one with a resistant infection and gangrene is setting in, I would certainly be glad amputation was developed as an option.

Typing "reduce dead time" is a fairly easy thing to do. Actually reducing dead time is often a whole lot complicated. Granted, it is not the best course of action to jump to advanced control methods without first looking at the physical system. But quite often the physical system is what it is due to cost, logistics, time, etc. Sometimes there is just no choice and its good to have tools to deal with those times.

Keith
 
Yeah kind of but that's why it's rarely instead of never.
Also for a Smith Predictor to be worthwhile the DeadTime has to be greater than 2*Time Constant. And the model of the system has to be pretty accurate and preferably linear.
The effectiveness and robustness of the Smith Predictor relies heavily on the accuracy of the model.

The built-in IMC in Logix is an alternative:

IMC_Param.png

IMC.png

or even a PID can be tuned to be somewhat effective:

JustAPID.PNG
 
If that is the response from a control logix, they are getting much better.
The next big hurdle with be model predictive control, MPC. I don't see that being implemented anytime soon on a PLC due to the lack of processing power but processing power is getting easier to come by.
I would like to implement MPC on our motion controller. There are some applications that are now controlled crashes because all the physical devices are TOO SLOW.

None of this makes any difference is you can't get a good model.

Yes that is from Control Logix.
They also have an MPC module, it's a separate dedicated processor that fits in a ControlLogix rack.
Comes with MPC builder, AOI etc but I haven't used it yet and don't know how good it is.
 
Is there a possibility to make a continuous model of the process (FOPDT). So without step response. This would make life a lot easier.
 
Is there a possibility to make a continuous model of the process (FOPDT). So without step response. This would make life a lot easier.
Yes, but it isn't easier math wise.

In some applications a step response is not desirable. For instance tuning a hydraulic cylinder moving a 50 ton roll of steel on a platform. A step response would cause the steel roll to fall off the platform and cause damage. That would be the fastest way to get kicked out of the mill.

In this case I used a M or W profile with gentle ramps. What I was testing was the picture in picture, not the auto tuning.

https://www.youtube.com/watch?v=tCNAydm4xpw

Here is an example where I use a swept sine wave.
https://deltamotion.com/peter/Videos/ValveID.mp4

The advantage of step changes is that it has very high frequency components that are necessary to identify systems with a high frequency response. However, temperature systems do not have high frequency responses, neither due most hydraulic systems. Therefore the excitation doesn't need to have a lot of high frequency components.

Most people that claim to have auto tuners use very crude ways of determining the model. They use the method you normally see on line and in text books. A step jump is used to determine the model by looking at only a few points. I use thousands of data points to get a model and you can see I don't care if it is linear or not as you can see in the ValveID video. I think there were about 3500 data points used in the ValveID video.

I use differential equations for my models. Differential equations are MUCH more flexible than using state space or Laplace transforms.

I have posted the ValveID video on YouTube because I have since made significant improvements to program.
 

Similar Topics

http://www.pas.com/tunewizard I've been using this a lot lately, used to cost $10k but now it is free (hoping you will pay for support or buy...
Replies
15
Views
10,749
Hello, I am attempting to tune a PID loop on a process. The process involves a valve with electronic actuator that has quite a high deadband...
Replies
10
Views
1,907
so i have 4 25gpm wells feeding a 1000gal tank (T-1), with an additional 15gpm from a decant tank for 3hrs every 12hrs. P1 and P2 both controlled...
Replies
154
Views
34,553
Hi everyone, yet another PID problem. I'm hoping I understand enough of the process I'm controlling that my request for help is reasonable. If a...
Replies
113
Views
26,616
I haven't had to tune a PID loop in a very long time. It's actually a PI loop for a pulse width modulation s.v. What was the name of that tuning...
Replies
16
Views
3,926
Back
Top Bottom