|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools |
Rating:
|
Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: PID behavior
Quote:
What I mean is that when is only P it is ok the behavior: the output starts high and while the PV is increasing the output starts to decrease until 0. This we understand. The problem is now, when we put P and I: the output starts on 0 e it starts do raise slowly and not like when is only P, that starts directly high. After, when is running, we start to increase the process variable value, the output came down but after it begin to increase again coming back to the value before ("like an inverse pulse"). When the PV = SP the output starts to be constant but not 0. We guess that it has something with the I term and with the reinitialize boolean on PID .VI Now we ask: why output doesn't decrease until 0? What we can make to do it in the better way that is possible? |
|
#2
|
|||||
|
|||||
|
Re: PID behavior
Quote:
You are too attached to this "output must go to zero" mantra. Truth is, it's not always the case. Suppose you were controlling a motor's speed with a PID loop. When you reached the desired setpoint, would you like the controller output to go to zero? Of course not, because then the motor would stop spinning. Manually changing the process variable value isn't really a way to test anything, as it doesn't represent anything and isn't even reproducible. You guys should follow Greg's suggestion of trying the PID example VIs - they actually simulate a process and will be a lot more helpful. PS - It seems you already understand a bit about PID controllers, so what is the purpose of those tests? Please ask again if you need clarifications, and best of luck! |
|
#3
|
|||
|
|||
|
Re: PID behavior
Quote:
we already did it on past years when the programming was on RC (C language), but we decided to try another kind of programming. It was like it: previous_error = 0We tested on the motor before the manually test of the PV. However, we got the same result. |
|
#4
|
||||||
|
||||||
|
Re: PID behavior
Have you read the PID manual that is included with LabVIEW? I think you'll find that Ki and Kd are treated differently then the code you used in the past.
It certainly is possible to write your own PID code, but it's worth the time to understand NI's implementation. |
|
#5
|
|||
|
|||
|
Re: PID behavior
We read the PID manual before starts the tests, and we discovered that on LV PID is on Academic formula. Ti divides 1 (inverse of Ki) the Td only sums.
We are wondering too write our own PID like that pseudocode we already used. Or try to discovery another logic that fits to our problem. |
|
#6
|
|||||
|
|||||
|
Re: PID behavior
Quote:
|
|
#7
|
|||
|
|||
|
Re: PID behavior
Thanks everybody...
We got it ![]() |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Random behavior | RedBarons | Programming | 9 | 25-02-2006 23:03 |
| my behavior | lil_longo | General Forum | 1 | 24-02-2006 13:53 |
| Bizzare Quaderature Behavior | phrontist | Electrical | 8 | 22-01-2006 09:04 |
| Problematic 2004 RC behavior | Danny Diaz | Control System | 1 | 21-01-2006 17:48 |
| Strange Behavior | Gary Bonner | Control System | 17 | 09-11-2005 19:01 |