Robot học (Robotics) · Bước 5/8 · 6 phút
Điều khiển: phản hồi và PID
Bạn hiểu robot tự sửa sai thế nào, và P, I, D mỗi thứ làm gì.
Vòng hở và vòng kín
Vòng hở (open loop) nghĩa là ra lệnh rồi hy vọng. Cho hai động cơ chạy cùng công suất, robot vẫn chạy lệch, vì không có hai động cơ nào giống hệt nhau.
Vòng kín (closed loop) nghĩa là đo kết quả rồi sửa. Khoảng cách giữa nơi bạn muốn đến và nơi bạn đang ở gọi là sai số. Điều khiển phản hồi là liên tục thu nhỏ sai số đó.
P, I và D
P, tỉ lệ (proportional), đẩy càng mạnh khi sai số càng lớn. Dùng một mình, nó hay vượt quá đích hoặc dừng lại hơi thiếu.
I, tích phân (integral), cộng dồn sai số theo thời gian. Nó xóa một sai lệch nhỏ cố định, như robot luôn nằm hơi lệch trái vạch. Quá nhiều I sẽ gây dao động chậm.
D, vi phân (derivative), phản ứng theo tốc độ thay đổi của sai số. Nó như cái phanh, làm dịu việc vượt đích, nhưng khuếch đại nhiễu cảm biến.
Chỉnh thông số trong thực tế
Bắt đầu chỉ với P. Tăng dần đến khi robot phản ứng nhanh nhẹn và bắt đầu lắc. Thêm D để bớt lắc. Chỉ thêm chút I nếu vẫn còn sai lệch cố định.
Hãy giới hạn thành phần tích phân để nó không tăng vô hạn khi động cơ bị kẹt. Hiện tượng này gọi là integral windup, và nó khiến robot giật mạnh ngay khi được thả ra.
Thử ngay
Chỉnh bộ điều khiển mà không cần phần cứng
- 1.Nhờ chatbot viết một đoạn Python ngắn mô phỏng chiếc xe di chuyển đến đích bằng bộ điều khiển PID và vẽ đồ thị kết quả.
- 2.Chạy miễn phí trên Google Colab.
- 3.Thử chỉ P, rồi P cộng D, rồi cả ba. Quan sát độ vượt đích và thời gian ổn định thay đổi ra sao.
Viết script Python cho Google Colab mô phỏng một chiếc xe 1 chiều di chuyển đến vị trí 10 bằng bộ điều khiển PID và vẽ đồ thị vị trí theo thời gian. Đặt Kp, Ki, Kd ở đầu để tôi đổi được. Dưới 40 dòng.