Để đạt được setpoint, nếu chỉ dùng gain (tỷ lệ) thì sẽ có sai số xác lập (đầu ra còn cách một khoảng nữa mới đến setpoint). Cần thêm khâu tích phân (có hệ số Ki) để tích lũy sai số theo thời gian, cộng dồn và lên được setpoint. Nhưng sẽ vọt lố.
Khâu vi phân (có hệ số Kd) tính độ thay đổi của sai số theo thời gian, dự đoán trước sai số, từ đó phanh để tránh vọt lố.
error = setpoint - measured
p = kp * error
integral += error * dt
i = ki * integral
d = kd * (error - lastError) / dt
lastError = error
ouput = p + i + d
Anti-Windup
if (integral > 100) integral = 100
if (integral < -100) integral = -100
Các tiêu chí đánh giá chất lượng bộ điều khiển PID:
Độ vọt lố: tỷ lệ % giá trị đỉnh vượt quá setpoint
Thời gian tăng: Khoảng thời gian để đáp ứng đầu ra tăng từ 10% - 90% (hoặc 0% - 100% giá trị xác lập) -> Tốc độ phản ứng của bộ điều khiển
Thời gian xác lập: Khoảng thời gian cần thiết để đầu ra đi vào và duy trì trong dải sai số cho phép (±2% hoặc ±5% so với setpoint)
Sai số xác lập: Độ chênh lệch giữa setpoint và giá trị đo khi thời gian t -> ∞
Độ dự trữ biên & độ dự trữ pha: Đảm bảo hệ thống không bị mất ổn định khi thông số đối tượng thay đổi theo thời gian (do nhiễu hoặc lão hóa thiết bị)
Khả năng dập tắt nhiễu: Tốc độ và mức độ hồi phục của hệ thống khi có nhiễu bên ngoài tác động vào quy trình
Tín hiệu đầu ra cần mịn màng, tránh thay đổi đột ngột hoặc bão hòa liên tục
Tiêu chuẩn đánh giá tích phân sai số
IAE: Đánh giá tổng sai lệch tuyệt đối, ưu tiên giảm sai số trung bình

ISE: Phạt nặng các sai số lớn ở gia đoạn đầu, thích hợp khi cần giảm nhanh độ lệch ban đầu

ITAE: Phạt nặng các sai số tồn tại kéo dài về sau, giúp hệ thống ổn định triệt để ở cuối quá trình
