⚠️ Vì sao PID cổ điển bị vỡ dưới Giới Hạn Vật Lý?

Khi điều khiển theo điểm va chạm với thực tại vật lý


Lời mở đầu

PID cổ điển đã tồn tại hơn một thế kỷ và vẫn được giảng dạy rộng rãi trong giáo trình điều khiển học. Trong nhiều hệ đơn giản, nó cho cảm giác “chạy được”, đặc biệt khi áp dụng với servo RC hoặc các bài toán chất lượng thấp.

Tuy nhiên, khi bước vào thế giới servo hiện đại, tracking liên tục, và giới hạn vật lý nghiêm ngặt, PID cổ điển bộc lộ một vấn đề mang tính nền tảng:

PID cổ điển vỡ ngay khi yêu cầu toán học của nó vượt qua khả năng vật lý của hệ.

Bài viết này không nhằm phủ nhận giá trị lịch sử của PID, mà nhằm chỉ ra lý do cốt lõi khiến PID cổ điển không thể mở rộng một cách an toàn và tin cậy trong các hệ servo hiện đại.


1. PID cổ điển không sai ngay ở phương trình

Xét dạng chuẩn của PID:u(t)=Kpe(t)+Kie(t)dt+Kdde(t)dtu(t) = K_p e(t) + K_i \int e(t)\,dt + K_d \frac{de(t)}{dt}

Về mặt hình thức:

  • Các toán tử đều đúng thứ nguyên
  • Sai số vị trí được xử lý đầy đủ
  • Không có mâu thuẫn toán học nội tại

Nếu coi u(t)u(t) chỉ là một tín hiệu điều khiển trừu tượng, và plant “tự biết cách” dùng nó để đưa hệ về setpoint, thì đến đây vẫn chưa có gì sai.

👉 Vấn đề chưa bộc lộ ở phương trình.


2. Cái bẫy thực sự nằm ở chấp hành: giới hạn vật lý

Sai lầm xuất hiện khi PID được đưa vào một hệ có giới hạn vật lý hữu hạn, cụ thể:

  • Tốc độ tối đa
  • Gia tốc tối đa
  • Mô-men cực đại
  • Năng lượng hữu hạn

Trong thực tế, không hệ nào có thể tăng tốc vô hạn.

Nhưng PID cổ điển ngầm giả định điều đó là có thể.


3. Tại sao overshoot là hệ quả tất yếu (không phải tai nạn)

Xét kịch bản kinh điển:

  • Setpoint ở xa
  • Hệ bắt đầu từ trạng thái đứng yên
  • Sai số e>0e > 0 lớn trong nhiều chu kỳ

Khi đó:

  • Thành phần I tích lũy một giá trị dương lớn
  • Thành phần P ban đầu cũng dương lớn

Đến khi hệ tiến gần setpoint:

  • P giảm
  • Nhưng I vẫn còn rất lớn

Để triệt một I dương lớn, PID cổ điển buộc hệ phải tăng tốc rất mạnh ngay từ đầu nhằm làm e giảm nhanh, tức là đòi hỏi một D âm rất lớn.

Nhưng chính tại thời điểm đó:

  • Hệ chạm trần giới hạn vật lý
  • Không thể tăng tốc theo yêu cầu toán học

➡️ Mâu thuẫn giữa yêu cầu toán học và khả năng vật lý xuất hiện

Hệ quả:

Overshoot không còn là tai nạn, mà là kết cục tất yếu.


4. Vì sao servo RC “chạy được” nhưng vẫn sai

Servo RC bộc lộ rõ căn bệnh này:

  • Giới hạn tốc độ là chắc chắn
  • Không thể tăng tốc vô hạn

Nhưng nó có vẻ chạy được vì:

  • Yêu cầu chính xác thấp
  • Dao động quanh setpoint được chấp nhận
  • Hệ “run rẩy” nhưng không bị coi là lỗi

Thực chất:

Servo RC chỉ che giấu vấn đề bằng cách chịu đựng rung động, chứ không giải quyết được nó.

Đây không phải lỗi của servo RC, mà là lỗi phương pháp.


5. Tracking không cứu được PID cổ điển

Một phản biện thường gặp:

“Tracking thì setpoint thay đổi liên tục, PID sẽ ổn hơn.”

Điều này không đúng.

Trong tracking:

  • Mỗi frame có một setpoint mới
  • Nhưng thành phần I không hề được reset
  • Sai số nhỏ nhưng lặp lại → I vẫn tiếp tục cộng dồn

Kết quả:

  • Không còn overshoot lớn như setpoint tĩnh
  • Nhưng xuất hiện chuyển động giật–nhảy (stop–go)

Hệ liên tục:

  • “đến đích từng frame”
  • rồi lại phải tăng tốc lại
  • giống như cóc nhảy

➡️ Vấn đề không biến mất, chỉ đổi hình thức.


6. Bản chất lỗi: setpoint theo điểm dưới giới hạn vật lý

Căn nguyên sâu xa là:

PID cổ điển được xây dựng quanh setpoint theo điểm, trong khi hệ vật lý bị ràng buộc bởi tốc độ, gia tốc và năng lượng hữu hạn.

Với setpoint ở xa:

  • PID yêu cầu tốc độ và gia tốc vượt giới hạn
  • Hệ không đáp ứng được
  • I không được triệt
  • Overshoot là tất yếu

Với tracking:

  • Setpoint liên tục thay đổi
  • Hệ bị ép “phanh–ga” từng frame
  • Chuyển động nhảy cóc là không thể tránh

👉 Sai lầm nằm ở mô hình, không nằm ở thiết bị.


7. Kết luận

PID cổ điển:

  • Không sai về lịch sử
  • Không sai về hình thức toán học
  • Nhưng vỡ khi đối mặt với giới hạn vật lý thực

Overshoot, rung, nhảy cóc:

  • Không phải lỗi tuning
  • Không phải lỗi phần cứng
  • Mà là hệ quả tất yếu của việc dùng điều khiển theo điểm cho một hệ bị giới hạn năng lượng

Một hướng tiếp cận khác là điều khiển trực tiếp tốc độ và năng lượng của hệ, nơi chỉ cần tăng hoặc giảm tốc trong vùng hoạt động cách xa giới hạn vật lý để rút ngắn sai số.

Mô hình đó chính là Energy-Based Control (MotionEdge).
Xem thêm: Classical PID vs Energy-Based Control.

Bình luận về bài viết này