Studio 5000 - Ziegler Nichols' Closed-loop Tuning method

Chibu

Member
Join Date
Feb 2023
Location
Ontario
Posts
49
Hi Guys,

During PID Tuning by Ziegler Nichols Closed-loop method, In TIA Portal there is a Trend Tool used to determine Ultimate Period; marking time interval between two between successive oscillation peaks after critical Gain /sustained-oscillation has been achieved.

Where is this tool in Studio 5000 runtime PID Trend Properties please?
 
Last edited:
Rockwell has trending capability. It is possible to export this data if the CV and PV is recored as a function of time. I have posted links to python programs that can tune a system much better than Z-N.

Z-N should be abolished. It is only a way of trying to tune a system without understanding the plant. On top of that, Z-N doesn't work for all systems and it works poorly on the systems that it does control.
 
Let me know if this works

@Peter:
I am now retired, and learning python.
Just for the sake of learning can you please provide me your link where PID tuning with python is done.
https://deltamotion.com/peter/py/
The SOPDT file reads Ron Beaufort's hotrod.txt file and find a SOPDT model then calculate the controller gains using the IMC formulas.

I have a git account, but I have never posted anything there yet.
 
In TIA Portal there is a Trend Tool used to determine Ultimate Period


w'en aye w're a lad, we di'n't 'ave no trends, so aye watch'd t' data wi' a watch and estimated t'Z-N input parms in me 'ead.

'at us'ally got me close enough, and fine tuning fin'shed t'chob.
 
Well, if a branch of Vanity Fair opened here...

Important note: the methods below are tailored to compensate for disturbances (i.e., TF zeros are not taken into account)

For hotrod.txt

For open loop:

ktr = (378 – 114) / (80 – 10) = 3.77
T0.63 = 322 – 86 = 236
T0.2 = 181 – 86 = 95

kdyn = 1 (this coefficient sets the required dynamism of the closed loop, the larger the coefficient, the more dynamic the closed loop)

ak = 0.0523 * kdyn ^0.827 = 0,0523
ek = – 0.0916 * ln(kdyn ) – 2.0418 = -2,0418
offset = T0.2 / T0.63 + ln(0.8) = 0,179398822

aT = 9.31 * ln(kdyn ) – 17.73 = -17,73
bT = 6.6704 * kdyn ^-0.3533 = 6,6704

k’ = ak / (T0.63 * ktr ) * offset ^ ek = 0,001962454

T’ = (aT offset ^ 2 + bT offset) * T0.63 = 147,7456036

If
Wc(s) = kp + ki / s
then

kp = k’ * T’ = 0,289943964
Ti = k’ = 0,001962454

For closed loop:

I attached below Closed loop PI-tuning curves

Model:

W(s) = 3,77/ ((170,286*s+1)* (36,0195*s+1)* (14,57*s+1)* (11,515*s+1))

Obviously, the algorithm does not "know" anything about the parameters of the model.
The algorithm "knows": kp, ki, PV, CO.

Initial PI-settings

kp = 1
ki = 0.1

(Obviously, with such settings, the system is not stable.)

Description of the experiment

At time = 0
SP = 0
System stable

At time = 0
SP = 1

At time = 105
Calculate and apply new PI controller settings:
kp = 2.4 (Admittedly, this is not the best solution, but the system needs to be stabilized here and now)
ki = 0.00775

At time = 2000
SP = 0

At time = 4000
SP = 1

At time = 4074
Calculate and apply new PI controller settings:
kp = 0.225
ki = 0.00197

At time = 5000
SP = 0

I consider the system to be satisfactory.
The experiment was carried out without human participation.


This PI-tuning "algorithm" does not approximate the plant model.
We can even play a game:
You apply a step disturbance on the n-order lag (with or without) dead time model (dead time < total lag time constant) (before the perturbation is applied, the system must be stable or close to it) and provide me with the following data:
1. kp and ki
2. Value of the Error or PV at first peak.
3. CO value before the disturbance
4. CO value at the moment of the first peak of the Error or PV
5. CO value in steady state. If the system is not stable, then the CO values are peak-pit-peak or pit-peak-pit

I'll calculate the new kp and ki values and let you know.
Because algorithm is approximate, the experiment will have to be repeated several times.

AutoTune.png
 
Last edited:

Similar Topics

Hi Everyone. Not posted on here for a long time, but I am hoping someone can help me. I am doing a differential pressure calculation in a L27ERM...
Replies
2
Views
20
Hi, how do I convert 2x Integer registers to a Real? The two integers are from Modbus registers that contain a floating point value, I need to...
Replies
2
Views
104
What is the best way to extract the hour and minute from the register that comes from Yaskawa VFD. In studio 5000 I have a register saved as INT...
Replies
3
Views
103
I have an Allen Bradley temperature switch that I am trying to use in studio 5000. I am getting the message "Unable to interpret the IODD file"...
Replies
0
Views
64
Hi all. I want to ask what may seem a stupid question, as I have a project to send live data to a Yeacode line printer which will print meterage...
Replies
10
Views
190
Back
Top Bottom