开发者

The I in Proportional Integral Derivative [closed]

开发者 https://www.devze.com 2023-02-18 05:04 出处:网络
Closed. This question is off-topic. It is not currentl开发者_运维知识库y accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed. This question is off-topic. It is not currentl开发者_运维知识库y accepting answers.

Want to improve this question? Update the question so it's on-topic for Stack Overflow.

Closed 11 years ago.

Improve this question

The I in PID (Proportional Integral Derivative) is the sum of the last few previous errors, weighted only by it's gain.

Using error(-1) to mean the previous error, error(-2) to mean the error before that etc... 'I' can be described as:

I = (error(-1) + error(-2) + error(-3) + error(-4) etc...) * I_gain

Why when PID was designed was 'I' not instead designed to slope off in importance into the past, for example:

I = (error(-1) + (error(-2) * 0.9) + (error(-3) * 0.81) + (error(-4) * 0.729) + etc...) * I_gain

edit: reworded


The integral term is the sum of ALL the past errors. You simply add the error to the "integrator" at each time step. If this needs to be limited, clamp it to a min or max value if it goes out of range. Then copy this accumulated value to your output and add the proportional and derivative terms and clamp the output again if necessary.

The Derivative term is the difference in the present and previous error (the rate of change in the error). P of course is just proportional to the error.

err = reference - new_measurement
I += kI * err
Derivative = err - old_err
output = I - kD * Derivative + kP * err
old_err = err

And there you have it. Limits omitted of course.

Once the controller reaches the reference value, the error will become zero and the integrator will stop changing. Noise will naturally make it bounce around a bit, but it will stay at the steady state value required to meet your objective, while the P and D terms do most of the work to reduce transients.

Notice that in a steady state condition, the I term is the ONLY thing providing any output. If the control has reached the reference and this requires a non-zero output, it is provided solely by the integrator since the error will be zero. If the I term used weighted errors, it would start to decay back to zero and not sustain the output as needed.

0

精彩评论

暂无评论...
验证码 换一张
取 消