Tuning deadzone PI control

Hi, We have a vessel whose level is continually ramping up and down between about 20 and 80% in a triangle wave. The output flow is controlled by an
onoff valve with a 50% duty cycle, that part of the system is an immutable 'given'. Objective is to control the level so that the high peaks don't overflow the tank, and the low peaks don't empty it. The handle available is a proportional control valve in the feed line.
Normal PID control of the tank level doesn't appear to be suitable because the feed valve is of an unusual type that wouldn't tolerate excessive movement for long. The alternative is some sort of inching control, where you back the feed off when the level gets *too* high, or increase when it gets *too* low. One way to do this would be a PI controller with deadzone on the error, that approach has the advantage that it's a standard algo on our platform. Does anyone have any experience on what sort of tuning settings may be appropriate in a situation like that?
We've considered filtering the level heaps, but that wrecks the dynamic response, and with an integrating process the resulting stability is going to be really marginal.
Any other ideas?
For the purposes of the exercise, can assume that the ramp time one way for the tank level is 5 minutes.
TIA
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Bruce Varley wrote:

If the outlet timing pattern is truly unchanging and very reliable, why not use it in a model approach?
In other words, incorporate the state of the out flow valve in the control algorithm, including the prediction of its next change of state, based on the time of its last change of state. For example, each time the valve goes from closed to open, measure the level and slope and continuously predict the minimum level long before it happens. Once the valve actually closes, freeze the actual minimum level (the last and least extrapolated value) as the minimum prediction, till the next valve opening.
Likewise, each time the valve closes, measure the level and slope and continuously predict the maximum level. Average those two predictions, and use that value as the PV for an ordinary input valve level controller.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
The simplest solution is to add feedforward control to the PI controller. Each time the outlet valve opens, increase the inlet valve position by X%. With a short test, you can figure out the X% opening you need. (When Inlet=Outlet, tank level doesn't change.) When the outlet closes, reduce the inlet, again by X%.
Don't worry if you don't have the exact X%...The PI action will trim the level OK.
For articles and tutorials on loop tuning, including level loops, follow this link:
http://www.expertune.com/r2.asp?f=NewsGroup&l=articles.html
-George
Bruce Varley wrote:

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Site Timeline

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.