Fuzzy logic control in DeltaV

FLC function block in DeltaV has similar capacity as PID module. is it possible to implement fuzzy logic control (multivariable, define rules, fuzzification, inference, and defuzzificaiton) in deltaV? can any Emerson product handle this? Thank you.

13 Replies

  • The fuzzy logic product was first developed on PROVOX. I don't think it was ever sold as a product, but was developed as a proof of concept. There was the version we have today in DeltaV and there was a version that a more general fuzzy logic. I imagine it could be reproduced in DeltaV, but to my knowledge, it has never been done. The challenge would be "tuning" the membership functions. If I may ask, did you have an application in mind where you would use it?
  • In reply to Lou Heavner:

    Hi Lou,
    I think that the Fuzzi PID has a lot of knowledge inside, but have never seen that any customer want to use it. So, I am curios to learn more about applications where this FLC help better than an own 'fuzzy' calc block to control a process which overwrite the out HI/LO limits. In principal I programmed something in the calc block which is near to a fuzzy logic, but easier to understand.
    I have seen only one time in my 25 years DeltaV that a customer even want to use a MPC. Chemical and Pharmacy world is very conservative and shy against new features .
  • In reply to Lou Heavner:

    Thanks Lou,
    Yes. I have an application in mind. A client used Schneider Ecostruxure fuzzy for a reactor control before and achieved a good result. They would like to implement fuzzy strategy in a similar unit controlled by DeltaV. They thought fuzzy logic is easy to understand and maintenance compared to MPC. They have the rule and use trapezoid membership function to avoid oscillation. Any suggestions about how to implement fuzzy logic in DeltaV? Thank you.
  • In reply to Michael Krispin:

    Thank Michael. DeltaV fuzzy is SISO using error and error of change to calculate change of output(4 rules inside). Using calc block is normal way to integrate knowledge for small scale application.
  • In reply to frankfu:

    My simple calc prediction logic would take care also of the PV Rate of change and take care about before a PV overswing to the wrong direction of SP. Overwrite the OUT_LO/HI_LIM to break the PID Algorithms earlier. I guess that this calculation do similar as a fuzzy control maybe do. But I have not much personal experience about fuzzy control from DeltaV because that is not well documented. It might be a pearl or diamond which nobody want to have. Would be good if our control champions could give here some input
  • In reply to frankfu:

    So is the reactor application you mention a MIMO application? As you know, the Fuzzy Logic Control block in DeltaV is a SISO (plus feedforward) application and is noted for good performance on lag dominant processes where large SP changes with fast response and no overshoot is desired. There is subsantial information in on the FLC block in DeltaV Books On Line. The DeltaV On-Demand Tuner is used the tune the FLC.

    There is no special functio block in DeltaV for fuzzy rule but, as has been pointed out, the CALC block is where you would write your rules. I am more in favor of using standard control blocks (PID, RTO, BG, Control Selector, FLC, MPC, etc.) for control applications since they provide tracking and bumpless transfer, etc.

    If the reactor is MIMO appliction, the embedded MPCPro or MPCPlus blocks would be a good fit. I have implemented over 100 DeltaV MPC Applications in Chemical, Refining and Pharmaceutical applications with good results! We can help you implement DeltaV MPC and teach you to do so as part of a project.
  • In reply to Michael Krispin:

    Hi Michael,
    It hasn't been used very much. It isn't well understood. In essence, it is a feedback controller similar to PI with a symmetrical nonlinearity sort of like an error squared PID controller. The nonlinearity is not as exaggerated as with Error squared PID. The effect is that it is more immune and less reactive to noise around the setpoint and more aggressive when the process is farther from setpoint. Both of these can be nice features. I have been told that if there were an infinite number of membership functions on the error and change in error, then the control response would be linear like PID. An academic version used 5 membership functions on the error and change in error. The guy who developed ours did two things... he reduced the number of membership functions which maximized the difference between it and PID and made it easier to tune, and he discovered tuning rules using the relay oscillation "auto-tuner" which used to be called TUNE and is now a part of Process Insight. One case study used pH control, at Shell if IIRC, nd presented it at an Emerson Exchange conference many years ago. There are other instances. Jay Colclazier once did a study to understand the sensitivity of the tuning parameters (Membership scaling factors) that gave some clue as to how to tune without the autotuner. I believe @MarkCoughran has done some work with Fuzzy in the pharma industry and maybe others. He uses simulation to try and find the correct tuning parameters in what is essentially a trial-and-error methodology.
  • In reply to frankfu:

    Building the fuzzy logic (rules) seems pretty straight-forward. The challenge will be to represent the membership functions in a way that can be tuned and evaluated. I'd have to think about that. More variables leads to more rules and introduces more complexity. You could do it, but you might be better off looking for a general purpose fuzzy application that could be loaded on a workstation and use its richer toolset. MPC, Fuzzy, Neural, Expert systems, etc. all have a place in automation.

    If the process is fast as many reactors are, you may be better off using an advanced regulatory control strategy. This is what usually happens in combustion control. As long as fast processes aren't inherently unstable (exothermic reactors for example), regulatory controls usually do a good job. That's why we often prescribe cascading slower loops to flow loops instead of tying loops like temperature and level directly to a valve which probably has nonlinear characteristics. APC could work, but basic boiler controls are well known, easy to configure and tune, and deal with fast process dynamics.

    MPC shines when the process is highly interactive and when deadtime is a dominant process dynamic. Advanced regulatory controls usually involving feed-forward can decouple process interactions. Emerson's more often recommended approach is to dynamically decouple interacting loops in regulatory control applications is with lambda tuning. MPC doesn't decouple, but rather coordinates the controller moves to compensate for the loop interactions. PID and other feedback controllers struggle with deadtime dominant processes, which led to the development of the Smith Predictor. Smith Predictor is similar to MPC, but not as robust. The big win for MPC often comes from constraint optimization. Many processes benefit economically from operating closer to constraints. A combination of effective loop tuning and MPC can reduce process variability, often by over 50% when measured as standard deviation. This allows processes to operate closer to constraints. Operators may want to operate closer to constraints, but they have a lot of responsibilities besides monitoring a few critical variables second by second. But MPC is dedicated to those critical variables and can focus on driving the process toward optimal constraint limits.

    MPC is a linear controller. If the process operates over a wide range with nonlinearity, it may not be the best answer. Fortunately, for many processes, the process operates in a sufficiently narrow range that it is nearly linear.

    What I see in the mining industry, for example, is that the industry has grown up using expert systems and in some cases fuzzy logic to determine the optimum operating point as ore quality and equipment performance change. Unfortunately, they don't usually provide a dynamic path from current to optimum operation. They can be excellent for updating setpoints and constraint limits in a supervisory fashion and let MPC provide the dynamic control.
  • In reply to Michael Krispin:

    The DeltaV Fuzzy block is a SISO nonlinear controller. It is less immune to noise around the setpoint and more aggressive the farther the process deviates from setpoint. This is a nice characteristic for level control, but level controllers can be easily tuned using lambda tuning and eliminate much benefit of fuzzy. Similarly, processes like pH that are nonlinear around the neutral point would be good candidates if your intent is to operate near the neutral point. It has been used with good success in a number of processes, but I don't have a list. There is no license required and it can be configured in parallel with PID, so there is no harm and little cost to try it and see how it works for you. Unfortunately, it isn't very well documented. It may be a pearl. More likely, it is that one tool at the bottom of your toolbox that you rarely use, never see, and forget that it is even in there.
  • I have seen the DeltaV FLC block applied to reactor temperature in several instances. Perhaps the user thought the process was lag-dominated (actually reactor temperature is typically an integrating process). Perhaps the user thought special nonlinear control on error was needed (actually that is already available in DeltaV). Perhaps the user thought special nonlinearity was needed to prevent overshoot (actually DeltaV PID has several features for that). Perhaps the user thought special nonlinearity was needed to prevent oscillation (actually, Lambda tuning is a simple and rigorous way to prevent oscillation in all PID controllers).
    So, when asked about reactor control, my answer is "the DeltaV PID block is a very powerful and flexible control block". Please excuse my skepticism about more-complex blocks for this application!
    Frank, can we start over with your "similar unit controlled by DeltaV". Is it controlling better, same, or worse than the reactor with Schneider Ecostruxure fuzzy? What are the process dynamics--do you have any step response data?
  • In reply to James Beall:

    Thanks James.
    Yes it is MIMO application. I have implemented 2 MPCs for two different reactors. one is working great and the other one is not that good. The reason is because the second reactor need to switch grades frequently(several days normally), running in wide range of operating conditions and CV needed to control very tight specification. So performance vs robust...the customer have to change models and tune parameters, which is hard for them to maintenance. So they start to miss pervious fuzzy rule based control.
  • In reply to Lou Heavner:

    Thanks Lou and your insight about benefit and limitation of MPC.
    Exactly as you mentioned, the MPC is linearization solution around the steady operating conditions and can reduce variability and push to the operating limit. RTO(ruled based) +MPC(dynamic) solution seems can only handle the process with similar linear dynamic characters in the whole range. Correct me if i am wrong.
    The process for my problem is nonlinear in the wide operating range(for different grades). so the potential solution in my mind now is using 3 MPCs to cover whole range and bumpless switch logic(Calc block rules based).
  • In reply to Mark Coughran:

    Thanks Mark.
    I agree, regular PID is powerful for most application and there are some great features in deltaV PID block.
    The main challenge for this reactor is working at different steady operating points for different grades. Adaptive tuning can handle nonlinear characters for wide range in some extent but still need to handle interaction between variables, and deadtime(from step response and historical data). It is hard to compare directly since it is not the same reactor running Schneider fuzzy. But the field engineer thinks the fuzzy solution is more robust to different grades and easy to maintenance.