I'm interested in your comment about how " there might be too much pure deadtime. If true, and the CV has room to work it could very well be possible to significantly reduce or eliminate the amplitude of oscillation."
Darn. I had a response all written up before I realized I need PVEUMin and PVEUMax, not the corresponding CV scales.
The default for these is also 0 and 100, but a decent chance they were modified depending on your temperature range.
Is this a new or an existing installation?
If the latter, has the PID ever controlled the temperature better than this?
The parameter that will close the valve before the temperature is exceeded is the derivative factor D that acts not by the error value (PV - SV) but by its variation.
You would have to play with it and see the effect, the dilemma is that there are PID implementations on which increasing D the derivative effect increases and in others it decreases, therefore you will first have to test whether you should increase or decrease it.
If you put excessive effect it can also generate oscillation.
If you manage to stabilize the oscillation but it takes a long time to finally reach the setpoint then you would have to adjust I
Systems with a lot of thermal inertia need derivative effect.
With a peak to peak time of 5 hours I would expect the I = (5 * 60)=300 and the D 1/8 * I = 45. That would be my starting point. I am assuming that 'I' is minutes per repeat of course.
The first thing I would do is plot the integrator's contribution to the control output. Then it is easy to see if it is winding up or down too much.
I would also model the system. Rockwell PLCs/software can save away the trend. The control output and PV must be recorded as a function of time. Then it is possible compute a model. An accurate model will probably be required because a simple PID may not work by itself.
I would use a Smith Predictor but this will require the use of a long FIFO or queue to record data. Another method that would work is MPC or model predictive control but that method is too complicated to implement in a PLC and it still requires an accurate model.
When the dead time is longer than the time constants the system will be difficult to tune. A thousand curses on the engineers that design systems like this that don't consider how it will be controlled.
Here is an example of of using a PID with Smith Predictor.
In this example the plant is modeled as a SOPDT system with the two time constants being 0.5 and 2 minutes. The dead time is 180 minutes which is MUCH longer than the plant time constants.
To make tuning more realistic I introduce modeling error at the top of page 6.
https://deltamotion.com/peter/Mathcad/SOPDT/Mathcad - SOPDT SP.pdf
I created this a long time ago. I am sure it has been posted before.
I know the date is wrong.
What are the units for the proportional gain?I took a look through your Mathcad document with the smith predictor in it. I won't lie that this is way over my head. I did however send off some screen captures of some trend displays to our engineering department. A screen capture can only give you so much information but our engineer returned with our original parameters of,
P=35
I=8
D=0
The integrator time constant is way too short for a system like yours.Which was not a bad start.
I doubt they know what they are doing.Now that we have been going for about a week I connected an SQL database to the factorytalk application to get some refined data. That chart I showed earlier on has been compiled into an excel spreadsheet with a pivot table. I sent off that information to our engineer to further refinement.
A Smith Predictor is not used to calculate gains. It is used to predict what the system will do 5 hours in advance in your case. This keeps the integrator from winding up when the actual system isn't responding.Ill have to ask him if he uses a smith predictor to determine the gains, im sure he uses something close to that.
Yes, if you can display it in 3 columnsWithout imposing I still have the spreadsheet if anybody is interested is seeing the recorded data in CSV form.
I agree that this system has a lot of thermal inertia which is the cause of all my problems. I started with 35Kp 8Ki and 0Kd Adjusting the Kd parameter in this AB PIDE instruction up from 0.5, 1.5 and then 3 did not result in anything other than random spikes in the opposite direction of the control action. The spikes occurred if the PV went up or down 0.01C then the CV immediately went back to its original value. If the spikes were smoothed out it would have been beneficial.
In order to test this I extended the PID algorithm time from 1 seconds to 45 seconds. This however had none to negligible effects.
I have seen some PID algorithm in PLCs and also in panel temperature controllers in which the derivative effect makes that rebound that you describe but the sum of both corrections usually goes in the correct direction of the control action.
But if you only regulate every 45 seconds, it may be that the first correction in the opposite direction has an effect that is too long and harmful.
I installed in the past about a hundred large industrial furnaces with tens of tons of material inside and always used a fixed PID run period of 3 seconds.