12-13-2014 08:37 AM
I just think PI or PID would be overkill for what I'm trying to do. All I'm doing is monitoring an output and modifying an input to maintain the output at a setpoint. I know this sounds exactly like a PID application but it just seems too complicated. And ... it's not working the way I want it to. Thanks in advance.
Solved! Go to Solution.
12-13-2014 08:55 AM
12-13-2014 09:03 AM
Sounds like you are just trying to do a P controller (your feedback is a gained up version of your error). Those are really simple to implement, espcially if your gain is 1. Those usually work well for me as long as you are not in a transition. But it really depends on what you are trying to control.
12-13-2014 09:56 AM
I just started setting this up yesterday. Wasn't working as I expected so I thought I don't have the correct control loop for this. My application is not static nor linear. I am following the speed of a motor and reading the torque. As the speed changes I need to adjust a 4-20 mA signal to maintain constant torque. The problem is that the speed is not constant. It accelerates from 0-600 RPM then deaccelerates from 600 to 0 RPM, reverses direction then repeats. In my PID tuning I can get the stability but not the gain. If I get the gain in oscillates wildley. I can get consistent torque in both directions but not the gain and the stability I need from the PID.
12-13-2014 02:01 PM
In addition to a simple bang bang or P controller you might consider adding a dead band. This is a region when close to the setpoint where the output is not modified.
12-14-2014 04:14 PM
And,I know this sounds like under-kill!
Have you considered using a simple lookup table?
You might be surprised at how simple that implementation might be to give you exactly what you want
12-15-2014 12:13 PM
Any chance you can provide a graph of real data that would help explain what you're doing? Are you increasing torque in order to maintain the desired speed setpoint, or the speed changes and you somehow need to adjust torque to match? What are the process variable, setpoint, output, and final control element? Have you considered gain scheduling, or adding a feed-forward element if you can model the system somewhat to predict in advance the desired new output (in this case, the PID acts mostly as fine-tuning)? What tuning method did you attempt to use?
12-15-2014 02:29 PM
I could bang my head against the wall for making this more complicated than it needed to be. My motor drive has it's own built-in controller. I just set the torque value and let it run. The drive maintains the torque regardless of speed. I was getting wild oscillations because my PID and the controller were "fighting" each other.
Thanks everyone for the pointers and sorry for wasting your time.