07-31-2012 10:38 AM
The graphs are a little "fuzzy" but somewhat helpful.
I wonder if the time delay to change the pressure may be part of the problem. For a 6 psf pressure step it will take about 4 seconds for the pressure to change that far. The pressure transducer probably responds in milliseconds. And the blower probably takes a second or more to change speeds significantly. So the control system sees a large error which results in a large output to the blower. With a small proportional band the pressure is near or past the setpoint before the blower is commanded to slow down. This results in a large overshoot which then produces a large error of the opposite polarity.
Lynn
07-31-2012 11:13 AM
Despite how resposnive various components may be, shouldn't the output to the motor drop once the pressure crosses the setpoint? The voltage line you see in the graph is the value that is sent to the motor control. In just the PID it responds fine and all that is being changed is where the P gain is coming from. I tried putting a median filter on the fuzzy output to see if PID didn't like the amount of changes for the P but it didn't seem to change how it worked much at all.
07-31-2012 11:36 AM
The PID looks like it works well under these conditions. As Lynne suggests - can you show some trends of the situations where you think the fixed-gain PID will not work so well - and showing that it requires something more sophisticated.
For the Fuzzy Control - how have you defined the rules / fuzzy functions - it is a good method for converting hurestic rules into a control scheme (i.e. "when pressure > xx, then make controller gain = low"), but setting up a fuzzy controller without these rules is probably quite troublesome.
Are you saying that the fuzzy rules scales or replaces the proportional gain of the PID controller ? Trending that the proportional gain from the Fuzzy Controller, will show if the stepping is just coming from the fuzzy controller gain - which may or may not be what you intend - or if it is coming from the overall closed loop going unstable with those particular gains (my money is on the former).
As you are just adjusting the proportional gain using the Fuzzy Rules, then a simpler solution would be to define good PID tuning for each of situations (operating condition), then change gains online as the operating condition changes - this is a Gain Scheduled Controller.
08-06-2012 02:49 PM
I will see if I can get on another unit that will require more than just a PID to make it perform properly. Right now the one I've been testing on to esentially get a proof of concept isn't able to go up to a very high PSF.
The graph that I posted was with a fuzzy that repalced the "P" in the PID completely. The two inputs to the fuzzy are the actual pressure's percentage of the set pressure also the derivative of actual pressure. So when the actual pressure is at the setpoint it read's "1" and if it is at 50 percent of the setpoint it reads ".5".
I'm using linguistic variables like "bigless" or "medless" for the actual pressure's percentage of the setpoint and variables like "bigneg" and "smallneg" for the derivative of the actual pressure. So if the pressure is "little less" and "big pos" then it means that the pressure is getting close to the setpoint and is moving up quickly so the voltage being sent to the motor should be decreasing.
If these were the conditions for a fuzzy controlled PID, would mean the "P" value should be increased to give it more control over the output variable, or should the "P" value be decreased so the adjustments were more controlled?
08-07-2012 02:52 PM
I'm being lead to believe that there is some issue with the way I have the fuzzy feeding the PID controller. I've had it both as a scalar of the "P" value and a direct "P" output and I come up with the same problem. The scalar can only double depending on conditions and I've tested just the PID and it looks that it still behaves when its double of the best "PID" gains. I'm thinking its a problem with the way that the gain is being controller by the fuzzy or the PID controller can't keep up with the constant changes of "P".
I think everything aside from this is working properly. I'm not sure if this is the correct route to go with this project but I at least want to get some results from this method.
Thanks,
Dan
08-15-2012 04:47 PM
I can only really offer a few ideas, as trying to understand what is happening in such a nonlinear control problem requires proper analysis of the process, control requirements and the interaction with the feedback controller and the fuzzy logic that is modifying the gain.
Here are some things for you to think about (if you are intent on using this structure):
Don't forget that a control problem only requires something sophisticated if the process is difficult (e.g.. nonlinear, time delay) and if the performance requirements are demanding. A difficult process is easy to control if the performance required is not demanding.
08-15-2012 05:07 PM
I guess my idea of difficult and your idea of difficult may be two entirely different things. The reason I'm thinking that something like a simple PID may not work is because its not going to be used on just one system. We have four different systems that each respond differently to what voltage is being sent to the motor and within each system there is also variation with what unit is being tested. For all these tests we have 15 seconds to get to and hold the set point and have zero overshoot.
I've found one set of PID gains that work well on one of the systems for every amount of leakage I've simulated. I'm starting to stray away from the fuzzy to PID thing and looking at adaptable PID gains based on some tests performed before the actual test.
I haven't quite gotten the straight fuzzy control to perfrom as well as the PID that I have but it seems that it should be able to do the same things, I'm just not sure what advantage there would be to using a PID or fuzzy control in this situation.
Thanks for the help.
I'm an engineer in training and this is my first time dealing with controls, thanks for putting up with my endless questions.
08-15-2012 05:17 PM
Sounds like you have a plan and understand what you are trying to do.
No problem - it's all about trying things, learning and so gaining experience. Good luck
08-16-2012 08:46 AM
Given my situation, what advantage would there be using either fuzzy control or PID control? Requirements essentially being that it has to work on a wide range of set points, get there without overshooting in 15 seconds, and be able to work with different systems with different response times.
08-16-2012 12:43 PM
I will be interested in Andy's response to your question as well.
My thought is that you need to have more understanding (quantitative) of your systems than the one line description you gave before you select a control algorithm. How much non-linearity, if any, do your systems have? How much does the response time or response gain of your systems vary from one to another? How much time lag do your systems have? Does your control system need to be able to switch from one test system to another without user intervention? How close is the capability of the system (running open loop) to meeting the response time requirement?
Once you have quantitative answers to questions like these you can begin to determine the appropriate control strategy.
Lynn