LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Are there alternatives to PID?

Solved!
Go to solution

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. Smiley Very Happy Thanks in advance.

PaulG.
Retired
0 Kudos
Message 1 of 8
(11,926 Views)
In what way isn't PID working the way you want? Unless a simple bang-bang controller is sufficient for you, it's probably easier to get PID working than to attempt to implement some other approach.
Message 2 of 8
(11,914 Views)

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.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 3 of 8
(11,908 Views)

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.

PaulG.
Retired
0 Kudos
Message 4 of 8
(11,895 Views)

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.

Paul Falkenstein
Coleman Technologies Inc.
CLA, CPI, AIA-Vision
Labview 4.0- 2013, RT, Vision, FPGA
Message 5 of 8
(11,866 Views)

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


"Should be" isn't "Is" -Jay
Message 6 of 8
(11,816 Views)

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?

0 Kudos
Message 7 of 8
(11,759 Views)
Solution
Accepted by topic author PaulG.

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. Smiley Tongue

 

Thanks everyone for the pointers and sorry for wasting your time. Smiley Sad

 

 

PaulG.
Retired
Message 8 of 8
(11,732 Views)