drbitboy
Lifetime Supporting Member
My CCW project is attached.
Normally a sigma is used to mean summation. What they are summing in the after the derivative term is a mystery. The summation after the Acting block is the real integrator that sums errors. It appears there are two integrators if this is the case. That is wrong.For what it's worth, this is the block diagram of the Micro 800 PID computation from the Rockwell document (Rockwell Automation Publication 2080-RM001J-EN-E - March 2021, page 567). It seems like they forgot to show the integral component, but then on later pages the examples show the PID output connected to that "Feedback (Tracking)" block diagram input. Still trying to understand if/how this accomplishes integral action -- even with the time constant of that filter being the integral gain.
View attachment 59260
No, I have not used CCW before. When I do temperature control simulations I use the ISA model with standard definitions/terms.For the love of all that is holy and as I have been telling you for some time now: Y. E. S. I.e. YES, Micro800 doesn't implement them correctly.
You are getting close; dare I deign to think I see light at the end of the tunnel? ...
... aw krap, apparently not. Also apparently you have never used CCW before, else you would not cling to that belief.
OK, if you want to find out how this black box is working you need to do your test differently.Don't be misled by your presuppositions!
Drop that assumption, i.e. that the usually stellar A-B documentation is accurate in this case, and look at the data i.e. how the CCW/Micro800 PID instruction actually performs.
No, I have not used CCW before. When I do temperature control simulations I use the ISA model with standard definitions/terms.
OK, if you want to find out how this black box is working you need to do your test differently.
First test the proportional gain. Set it to 1. Set other time constants and scalars to 0. Set the SP to 1 and the PV to 0. You should get an output of 1. When the gain is one the output should be equal to the error.
Gee, Peter, what a great idea. Do you know how I know it's a great idea? Because I already did it.
Next test the integrator gain. ...
Gee, Peter, what a great idea. Do you know how I know it's a great idea? Because I already did it.
Next, you will need to write some ladder to increase the SP by 1 per second. ...
Ah geez, gimme a bloody break. Actually it is simpler to merely measure what the difference is between no derivate action and some derivative action; having a moving setpoint when the documentation claims to have some sort of output filtering makes it more difficult to isolate the individual and synergistic effects of .Td and .FC.
Do you know how I know that? Because I already did it.
I posted all the code that is necessary. I suggest you either prove me wrong, or stop confusing the issue.
I posted all the code that is necessary. I suggest you either prove me wrong, or stop confusing the issue.
... Could gurus advise me on an appropriate equation for calculating initial parameters for both controllers? ...
10 ms.I am curious about one thing though: what is the update time you plan to use for the PID? Approximate is fine i.e. to nearest power of 10 or so (100ms, 1s, 10s, etc).
10 ms.
P.S. here is the original paper: https://folk.ntnu.no/skoge/puublica...retical Consideration of Retarded Control.pdf
Yes, but you did it with the derivative gain active too. I can see the proportional gain acts as expected because after the derivative term decays there is only the proportional term.First test the proportional gain. Set it to 1. Set other time constants and scalars to 0. Set the SP to 1 and the PV to 0. You should get an output of 1. When the gain is one the output should be equal to the error.
Gee, Peter, what a great idea. Do you know how I know it's a great idea? Because I already did it.
I don't see it. You didn't tell us if it works as expected so how are we to know?Gee, Peter, what a great idea. Do you know how I know it's a great idea? Because I already did it.Next test the integrator gain. ...
NO! In post #8 you have FC labeled as the derivative gain. If it is a filter time constant the units would be seconds but if so then it should take 5 time constants for the derivative gain to decay to 1%. It looks like it is decaying faster.Ah geez, gimme a bloody break.
FC should be set so there is no derivative filter.Actually it is simpler to merely measure what the difference is between no derivate action and some derivative action; having a moving setpoint when the documentation claims to have some sort of output filtering makes it more difficult to isolate the individual and synergistic effects of .Td and .FC.
If the FC is 4 seconds then why does the derivative term decay so fast? The FC should be in the denominator, not multiplied by the controller gain Kc as shown in your annotation in post #8. See the example in Misspeld's diagram.Do you know how I know that? Because I already did it.
I am not confusing the issue. You are. What is the equation that the Micro800 uses?I posted all the code that is necessary. I suggest you either prove me wrong, or stop confusing the issue.
I'm getting similar values if we're referring to this source https://blog.opticontrols.com/archives/383If the MIcro800 PID form is actually what @drbitboy shows in post #5, I would start with these gains: Kc = 10, Ti=1270, Td=0, and very important to configure the loop as forward acting (i.e., "Acting" = +1). You probably don't need derivative action, and it avoids the messiness of @drbitboy's reverse engineering and analysis.
If those gains are insufficiently responsive, try increasing Kc to 35, leaving Ti as-is, and see if there is too much overshoot for your performance objective.
As a side note, my Cohen-Coon calculator suggests Kc=95, Ti=284 sec, Td=43 sec for dependent gains. As noted by Mr. Nachtwey, these optimize metrics that are willing to tolerate overshoot (e.g., quarter-wave damping).
If the MIcro800 PID form is actually what @drbitboy shows in post #5, I would start with these gains: Kc = 10, Ti=1270, Td=0, and very important to configure the loop as forward acting (i.e., "Acting" = +1). You probably don't need derivative action, and it avoids the messiness of @drbitboy's reverse engineering and analysis.
If those gains are insufficiently responsive, try increasing Kc to 35, leaving Ti as-is, and see if there is too much overshoot for your performance objective.
As a side note, my Cohen-Coon calculator suggests Kc=95, Ti=284 sec, Td=43 sec for dependent gains. As noted by Mr. Nachtwey, these optimize metrics that are willing to tolerate overshoot (e.g., quarter-wave damping).