Compact Logic PID Loop Deadband

bgtorque

Member
Join Date
Oct 2013
Location
Northampton
Posts
127
Hi Guys, I have an existing PLC that has a PID that controls a valve that maintains a constant opposing thrust force (in order to keep bearings happy!) on a driveline when a test article generates thrust. Basically my issue is that the PID works really well except through the deadband, which is about 30-70% of the Cv range. Is there a way I can get the valve to paddle through the deadband nice and quickly (say between 35-65%)?

Thanks for any help.
 
Hi, I assume its the valve controller that has the DB ?? and the PID lag getting from 30-70% and back is the issue??

If so, I would manipulate the CV of the PID to generate a working reference to the valve that is always actively controlling.. Ie working from your reference of 0-30 & 70 -100

PID output is 0-100%, 0-50% PID = Valve 0-30% & 50-100% PID = valve 70-100%

Hope this helps...
 
Hi, I assume its the valve controller that has the DB ?? and the PID lag getting from 30-70% and back is the issue??

If so, I would manipulate the CV of the PID to generate a working reference to the valve that is always actively controlling.. Ie working from your reference of 0-30 & 70 -100

PID output is 0-100%, 0-50% PID = Valve 0-30% & 50-100% PID = valve 70-100%

Hope this helps...

Thanks for the comments Lemming. I'm not sure how I would achieve this? It seems that you are suggesting inputting two ranges for control, are you suggesting putting two PID's in series to achieve this? This is all pretty new to me, so i'm trying to find my feet.

Thanks again.
 
Hi

Take the raw PID CV and use it to drive a second manipulated CV. Limit test the the PID CV 0-50%, and if true scale 0-50% = 0-30% for the analogue out... Same for PID 50-100%

May be a good idea to add a third band in the middle to act as a DB, but you can set its width more appropriately... You will have to play with the values to figure out what works best in practice.

Didn't mention it previously, but assume you cant narrow to DB in the valve driver ??
 
So if the PID CV is say 37% would the manipulated CV statement be something like this(in Excel speak):

CVmanipulated = if (CVraw>29%&<70%,70%,CVraw)

So rounding up or down to eliminate the deadband, I guess i'd need to expand the statement to take account of if the CV is increasing or decreasing before it gets to the deadband?
 
No, that not what I was suggesting.... The statement clamps the output to 70% if the PID CV is in the DB. If my previous post didn't make sense to you, I am not sure how else to explain it... What PLC are you using ??
 
What he is saying is:


Code:
if (PID.CV <= 50) then

   Output = PID.CV * Lower_Deadband_Limit / 50)
else

   Output = Upper_Deadband_Limit + ((PID.CV - 50) * (100 -         Upper_Deadband_Limit) / 50)
end_if
 
Or if you prefer ladder..

If you do want a (smaller) DB, change the 50 to 48 & 52, and throw a limit test in the middle to force the output to neutral.

Probably worth scaling the PID to reflect direction as well, ie -100 to +100

Capture.jpg
 

Similar Topics

My PLC is currently running the program and the process is still live. One of my 1769-if16C cards values are all frozen but the card is not...
Replies
1
Views
123
Trying to understand how to send email or text messages for alarms. Anyone have example code for this?
Replies
1
Views
254
Hello; We have an Allen Bradley compact logic processor at an auto glue kitchen of corrugator machine which connected with AB HMI. Normally to...
Replies
5
Views
2,426
In assets center the firmware revision 30 is not available for 1769-L33ERM controller. Revision 32 and 33 are available though. What’s the best...
Replies
1
Views
1,171
Hello everyone I have an Allen Bradley Compact Logix 1769-L18ER-BB1B. I have several processes that I would like to start based on time of day...
Replies
9
Views
2,642
Back
Top Bottom