Auto-Tune in the Do-more engine works really well.
But, it can only do so much.
As we saw in a previous video, noise can be a big issue for Auto-Tune and if you have
a process with a lot of weird stuff going on, well, Auto-Tune may struggle to produce
reliable PID coefficients.
So, in this video, we’ll show you a quick and simple way to manually tune a PID loop
in a Do-more PLC, just so you have a backup for those times when Auto-Tune isn’t appropriate.
One caveat – I am going to show you my favorite way to do this.
AutomationDirect’s tech support is not familiar with this, so PLEASE don’t call them asking
for help with this PID method.
They won’t be able to help you.
If you want to learn more about this method, visit this website.
Ok, let’s do it.
Just like the previous video where we setup the PID process simulator, we need to get
our system stable near the 110 degrees we want to operate around, then manually bump
the PID output a few percent – I’ll do 5%. You’ll want to do some small amount
that is enough to get your system to respond and that represents the kind of process changes
you expect.
The difference is, in that video, we measured the dead time and time constant. This manual
tuning method calculates the dead time and time constant.
To do that calculation we need the following items:
PID.Output Change – well, we bumped our output 5%.
Process Variable Change –The highs and lows you see here are being caused by my office
air conditioner turning on and off.
So, we have to use our imagination and say it really looks like this, which is a 6.5
degree change.
Again, its things like this that drive Auto- Tune nuts, but we can easily recognize and
take into account when manually tuning.
The time we started the output change – which I’ll set to zero.
Time when the process variable gets to 25% of its final value -
Time when the process variable gets to 75% of its final value -
By the way, I should point out that I did all of these measurements before recording
the video and am just showing the results here.
To get these numbers I simply moved the cursor around and watched the result down here.
Is our system linear?
We know from the previous videos that ours is, but if it wasn’t we would want to linearize
it.
We’ll do an example of that in another video series.
Our Sample time -
We happen to know from our previous auto-tunes we did that the sample time tends to be around
1000 milliseconds.
But what if you didn’t know that?
Well, usually something around 10% of the time constant is fine.
You will see in this demo that 1000 milliseconds is actually 1% of our time constant,
which, in theory, is overkill and uses extra CPU power, but we’ll stick with it so we
can get an apples to apples comparison with the Auto-Tune results in the previous videos.
We need to know what the process variable is when the PID output is zero and when it
is 100%.
Well again, we know from the previous videos that it is this, but if you didn’t know
that, you would manually set the PID output to zero and then to 100% and see what you
get.
We also need to know which PID algorithm we have.
The two most common ones are the Dependent or ISA version, and Independent or parallel
version.
In this one the I and D coefficients depend on the value of P. Every time you change P,
you have to adjust I and D. In the independent version, you can adjust each coefficient independently
because they don’t affect each other.
Each coefficient just contributes to the overall result.
The Do-more engine uses the dependent version.
That’s the classic version that represents the old analog systems where when you change
the gain of the system it changes everything else too.
And finally, we need to know what type of system we have.
Do we have a self-regulating system, that is a system that when given a change in the
PID output levels off after a while, or an integrating system – one that just keeps
going up.
We know from the previous videos we have a self-regulating system.
Great, we have now fully characterized our system, so now we just plug those numbers
into these magic formulas.
And those formulas are used to calculate the final PID values.
There is one catch.
This method falls apart if you have a short dead time.
That is, a dead time that is less than around 10% of the time constant, which is exactly
the case here.
In that case, I just measure the dead time like we did in the previous video and use
that number.
I put those formulas into a spreadsheet to make it super easy for me to play with.
I just enter the measured data here, and that automatically falls right through to the PID
coefficients we need.
Notice the calculated dead time is here, but since it was a problem, I put our measured
dead time in here.
The cool thing about this method is it produces all the results for all combinations of systems.
It optimizes the coefficients depending on if you will be changing the setpoint or changing
the load.
We’re changing the setpoint, so we will choose this one, but if we were changing the
load like we did in a previous video where we plugged the vent holes of the enclosure,
we would use this one.
And for each of those it produces coefficients for systems that only need P, PI or PI and
D. Very comprehensive!
This method also produces the coefficients you need if you have a parallel or independent
form of the PID equations.
Again, the Do-more engine uses the Dependent or ISA version, so we want these.
So the bottom line is you take a few easy measurements, plug them into some equations
– my spreadsheet does that automatically for me - and you’re done!
But, these coefficients look a LOT different than the Auto-Tune coefficients we have been
getting in the previous videos.
Will they work?
Well, click here to see how these manually generated PID coefficients stack up against
the Auto-Tune coefficients.
Click here to learn more about AutomationDirect’s Free support options and click here to subscribe
to our YouTube channel so you will be notified when we publish new videos.