PIDコントローラの不可欠な部分を理解していません。私は分かりませんPIDコントローラの一体部分
previous_error = 0
integral = 0
start:
error = setpoint - measured_value
integral = integral + error*dt
derivative = (error - previous_error)/dt
output = Kp*error + Ki*integral + Kd*derivative
previous_error = error
wait(dt)
goto start
Integralが最初にゼロに設定されていると仮定しましょう。そして、そのループの中で、時間の経過と共にエラーを統合しています。測定値または設定値を(正の)変化させると、エラーは正になり、積分は時間の経過とともに(最初から)「食べる」ことになります。しかし、私が理解していないことは、エラーがゼロまで安定すると、積分部分はまだいくつかの値(時間の経過とともに積分されたエラー)を持ち、コントローラの出力値に寄与しますが、そうではありません。
誰かが私にそれを説明できますか?
興味のある方は、この正確なアルゴリズムを実装してループ速度を制御してください。 http://stackoverflow.com/questions/38377820/throttling-await-for-inbound-messages – Jim