项目作者: erfengwelink

项目描述 :
PID --- proportional, integral, derivative
高级语言: C++
项目地址: git://github.com/erfengwelink/PID_controller.git
创建时间: 2018-06-01T03:17:31Z
项目社区:https://github.com/erfengwelink/PID_controller

开源协议:

下载


PID_controller

PID —- proportional, integral, derivative

chapter 0:

  1. 0-1 ~ 0-3

chapter 1:

  1. 1-1 ~ 1-9

chapter 2:

  1. 2-1 ~ 2-4

proportional only

  1. u(t) = Kp * e(t) error = setpoint - processValue;
  2. output = K * error;

proportional + Integral

  1. u(t) = Kp * e(t) + Kt*∫e(t)dt error: = setpoint - processValue;
  2. u(t) = Kp * e(t) + Ki*∑e(t) Reset: = Reset + K/tau_i + Reset;
  3. u(t) = Kp * e(t) + Kt*∑{(K/†i)*e(t)} output: = K * Error + Reset;

units of tuning constants

K -
Gain ———————> Dimensionless -> K*e(t)
Proportional Band -> % of Span ———> e(t)/K

Tau_i -
Seconds per Repeat —-> K/tau sum(e(t))
Repeats per Minute —-> K
tau * sum(e(t))

proportional + Derivative

  1. u(t) = Kp * e(t) + Kd * de(t)/dt
  2. u(t) = K * [e(t) + 1/†d * de(t)/dt]
  3. u(t) = K * e(t) + K / i * e(t) Error : = setpoint - processValue;
  4. output: = K * Error + K/tau_i * (Error - LatError);
  5. LastError := Error; // save for next scan

units of tuning constants

Tau_d -
seconds per repeat —-> K/tau
repeat per minute —-> k * tau

proportional + Integral + Derivative

  1. u(t) = Kp * e(t) + Kt*∫e(t)dt + Kd * de(t)/dt
  2. Output = Proportional + Integral + Derivative
  3. Output = error now + errors past + error future