Advanced Control - System Identification

greetings from the lab ...

from Peter:

... did you see where I wanted to have the Kc set to .28 or so?

I see it now, but I had already started and finished the test before I got a chance to read your post ... but, here's the latest from the Hotrod ...

HOTROD_TF_C.JPG


I think this is more along the lines of what you were shooting for ... let me be the first to offer my congratulations ...

the lab grunt awaits your next command ...
 
something happening here...

what it is ain't exactly clear...

This simulation is pretty close to Ron's result:

HR_PID_3.jpg


No changes to the model.
This run was done with the CLX ladder PID instruction.
I had to set the Kc to 2.8 (must be some scaling going on in the instruction).
Ti and Td were set scaled down by a factor of 10 consistent with all my previous tests.
Note the time span on the graph is 10 min but represents 100 min on the real device.
My previous efforts were using FBD configurations.
Did you implement the PID in FBD too? If so can you share it? I bet it looks pretty simple.
I'll tidy it up and post it.
Big question is - why such a difference? I know in the PLC5 when using the integer version of PID, gains are factored by 100. There's no mention of this in the SLC or CLX help files, but I suspect something is going on.
 
The CLX ladder PID instruction doesn't seem to follow the rules.

The initial kick in CO should be Kc * E where E = SP-PV
When the SP jumps by 100, E =100. With Kc = .28, CO should go up by 28%
What I'm seeing from the CLX ladder PID is a jump in CO of
New_CO = 2*(Old_CO + (E * Kc/100))
In my simulator, steady state output at 100 deg is 5.6%
When I bump the SP to 200, CO jumps to 67%
In my FBD version CO jumps to 33.6% - which I believe is correct. The setup below settles after 20-25 minutes.


PID_CFG.jpg
 
Last edited:
Gerry, that last FBD doesn't look right

Your derivative term depends only on the PV yet you add it to the the integrator. The derivative term needs to be subtracted because it depends only on the PV and not the error.

Isn't there a FBD PID? You built your PID from the ground up.

The initial kick in CO should be Kc * E where E = SP-PV
When the SP jumps by 100, E =100. With Kc = .28, CO should go up by 28%
This depends on whether the proportional term works on the error or the just the PV.

I like to use the I-PD form of PID for temperature control. This means that both the P and D terms use only the PV and not the error.
 
Ron's results look good too.

the lab grunt awaits your next command ...
Hopefully you can use this information.

I don't see why the response rates seem to be different.
Gerry's trend shows the PV taking about 8 minutes to get to the SP.

Ron's graph appears to indicate it takes an hour. I will be able to investigate this weekend.
I think we are all using different versions of PID.
 
Your derivative term depends only on the PV yet you add it to the the integrator. The derivative term needs to be subtracted because it depends only on the PV and not the error.
I tried changing the sign but it didn't seem to make any difference.

Isn't there a FBD PID? You built your PID from the ground up.
The FBD block (PIDE) is a velocity algorithm. I was attempting to implement the position algorithm - I believe that is what the controlguru articles were using and it is supposedly what the ladder PID instruction uses.


eqn.jpg


Gerry's trend shows the PV taking about 8 minutes to get to the SP.
It's factored by 10. That represents 80 minutes in reality.
 
Here's working version of STEP7 SOPDT simulator.
Please test it and comment.
Cheers!
 
I am going to assume you mean
(y/u)=(.05 (z^-1) +.03 (z^-2))/(1+.1((z^-1)+.03(z^-2))
with the extra parentheses
Multiply both sides by the denominator
y(n)*(1+0.1*z^-1+0.003*z^-2)=u(n)*(0.05*z^-1+0.03z^-2)
convert the z delays to n indexs and multiply by y(n) and u(n)
y(n)+0.1*y(n-1)+0.003*y(n-2)=0.05*u(n-1)+0.03*u(n-2)
now move the delayed y terms to the right side
y(n)=-0.1*y(n-1)-0.003*y(n-2)+0.05*u(n-1)+0.03*u(n-2)
I doubt this filter will work because the both coefficients in front of y(n-1) and y(n-2) are negative.
Do a sanity check and assume y is at steady state where y(n)=y(n-1)=y(n-2) and u(n-1) and u(n-2)= 0. Now what happens to y(n), y(n-1), and y(n-2) if they all are equal to 1? The first iteration y(n) will change sign and decay quickly. Is that what you expect?
A digital filter with a unity gain should have the coefficients add up to 0
0.05+0.03+1+0.1+0.003=1.183 and that isn't equal to 1.
 
Last edited:
at first thank you very much.
yes excat what i want. now the coefficients are not problem but how can i implement this in rslogix 5000
with my regards?
 
Last edited:
Hello sir.
Please i need too much to know how can I implement the equation....y(n)=-0.1*y(n-1)-0.003*y(n-2)+0.05*u(n-1)+0.03*u(n-2) in rslogix 5000 ( fbd). Can you help me please
 

Similar Topics

This video shows the things I think about on page 1. I use Laplace transforms a lot. Laplace transforms allow one to express differential...
Replies
2
Views
1,814
Instead of this info getting lost in another thread I will start a new thread. For those that don't know you can search for Advanced Control on...
Replies
8
Views
2,659
sampling data. I will probably use this in a magazine article.
Replies
18
Views
8,423
This topic deserved to be a separate thread with and Advanced Control header. The first video was made from videos a couple of years back. You...
Replies
3
Views
1,537
Hello dear experts! I use WinCC Advanced Runtime V15 as a HMI for the process. I grab values from AB Micro 850 PLC via Modbus TCP. On the HMI...
Replies
2
Views
2,410
Back
Top Bottom