Cách tốt nhất để đào tạo bộ điều khiển PID là gì?


7

Đây là đường biên không phải là gamedev nhưng PID thường được sử dụng trong các trò chơi nên tôi nghĩ tôi sẽ thử.

Tôi đã có một vài bộ điều khiển PID trong trò chơi của mình, được sử dụng cho những việc như điều khiển lái và ga. Tôi đang gặp khó khăn trong việc điều chỉnh chúng một cách chính xác. Tôi không bao giờ cảm thấy mình đang tiến gần hơn đến giải pháp tối ưu và thật tuyệt vời khi cứ để chúng "đủ tốt" với sự dao động hoặc tăng đột biến mà tôi không thể thoát khỏi.

Bộ điều khiển đã đưa tôi đến bài viết này với sự thất vọng tạo ra các dao động nhỏ cho các đầu vào lỗi rất nhỏ. Ở đầu vào lớn, nó ổn nhưng không ổn định.

Có ai có bất cứ lời khuyên hay tài nguyên nào về cách tôi có thể huấn luyện những thứ này một cách đáng tin cậy hơn không?


Tôi không nghĩ bộ điều khiển ổn định. Bạn đã kết hôn với ý tưởng sử dụng bộ điều khiển PID? Nếu bạn không thể giải thích một trường hợp cụ thể chi tiết hơn, tôi có thể đưa ra một giải pháp ổn định hơn.
Jonathan Fischoff

Tôi đang tìm cách tiếp cận chung để điều chỉnh bộ điều khiển PID. Bạn có điều chỉnh các hệ số P, I và D theo một thứ tự nhất định không? Bạn có phải tạo thành một hệ thống khép kín để điều chỉnh hoặc bạn đã thực hiện nó trong môi trường trò chơi?
tenpn

Câu trả lời:


7

Thực sự có một bài viết khá hay trong Trí tuệ lập trình trò chơi AI 2 của Euan Forrester liên quan đến Bộ điều khiển PID.

Tôi sẽ chỉ nhắc lại những gì anh ấy nói về việc điều chỉnh các hệ số khác nhau:

  1. Bắt đầu với hệ số tỷ lệ (P) - Điều này có ảnh hưởng lớn nhất đến hành vi của bộ điều khiển. Đặt 2 coeff khác thành 0 và điều chỉnh P cho đến khi bạn nhận được hiệu ứng mong muốn thô.
  2. Chỉ thay đổi một hệ số tại một thời điểm - Hãy cảm nhận rõ ràng về một hệ số để đảm bảo rằng nó thực hiện xấp xỉ những gì nó làm trong khi giữ cho 2 hệ số còn lại không đổi.
  3. Điều chỉnh các hệ số trong thời gian thực - Những lợi ích thực sự rõ ràng một chút. Bạn không muốn biên dịch lại mọi thứ mỗi khi bạn thay đổi giá trị, đó chỉ là ý nghĩa mã hóa thông thường.
  4. (Tùy chọn) Có một tính năng phát lại ngay lập tức - Điều này sẽ giúp ích trong trường hợp bạn quan sát điều gì đó thực sự kỳ lạ xảy ra với các giá trị PID của mình để bạn có thể phát lại các bước cho đến thời điểm đó.

Ông cũng cung cấp một số tài nguyên trực tuyến (một số trong số đó là các liên kết chết vì vậy tôi sẽ chỉ đăng những tài nguyên vẫn còn khả dụng):

Điều chỉnh vòng lặp trực quan

Điều chỉnh bộ điều khiển nhiệt độ PID

Mong rằng sẽ giúp

~ Ray




1

Đừng điều chỉnh pids bằng phương pháp "dùng thử và lỗi" đơn giản!Bạn sẽ không bao giờ có được kết quả tốt vì các thông số phụ thuộc lẫn nhau. Sử dụng mô hình FOPDT (thứ tự đầu tiên cộng với thời gian chết) cùng với các công thức IMC để tính Kp, Ki và Kd từ dữ liệu thử nghiệm.

Thực hiện kiểm tra bước trên tín hiệu điều khiển của bạn (trực tiếp về phía "nhà máy" không có bộ điều khiển) và ghi lại biến quy trình mà bạn đang cố kiểm soát vì nó liên quan đến tín hiệu điều khiển. Sau đó nhìn vào dữ liệu và ghi lại quá trình tăng, thời gian chết và thời gian xử lý. (thêm thông tin ở đâyở đây ).

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Nói chung chỉ cần đọc qua toàn bộ trang ControlGuru. Đó là một nguồn tài nguyên rất tốt. Tôi đã sử dụng mô hình FOPDT khá thành công để có được các giá trị pid đúng ngay lập tức mà không có bất kỳ thử nghiệm và lỗi nào. Nó hoạt động tuyệt vời và tạo ra một bộ điều khiển tối ưu. Sau đó, khi bạn tính Kp, Ki và Kd của bạn từ Kp, Ti và Td, bạn cũng có một tùy chọn để chỉ định giá trị "tích cực", đó là một cách tốt để chỉ cho bộ điều khiển đã được điều chỉnh chính xác của bạn nên hội tụ nhanh như thế nào.

Ngoài ra, bạn có thể nên sử dụng đạo hàm trên PV thay vì đạo hàm do lỗi. Thực sự không có điểm nào trong hầu hết các trường hợp để thực hiện đạo hàm về lỗi. Để làm điều này, bạn sử dụng dấu âm trước Kd và sử dụng công thức này:

nhập mô tả hình ảnh ở đây

Điều này tránh một hiệu ứng gọi là "cú đá phái sinh" khi bạn thay đổi điểm đặt. Thêm thông tin ở đây .

Tôi không bao giờ điều chỉnh bằng tay nữa. Tôi nghĩ rằng mô hình FOPDT là phương pháp đơn giản nhất để điều chỉnh các vòng lặp PID rất nhanh. Bạn cũng phải phân biệt mặc dù giữa quá trình tự điều chỉnh (tự ổn định) và quá trình tích hợp (không ổn định - chẳng hạn như vị trí của một vật sau khi một lực được áp dụng cho nó). Các phương pháp điều chỉnh là một chút khác nhau nhưng cũng được mô tả tại trang web controlguru ở đây .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.