Làm thế nào để bạn thiết lập Điều khiển PID nếu hằng số thời gian của hệ thống được điều khiển thay đổi?


9

Mô tả chung cho bộ điều khiển PID liên tục được viết như sau:

y(t)=Kpe(t)+Ki0te(τ)dτ+Kdde(t)dt
Tốt nhất giá trị của các hằng số Kp , KiKd cho một hệ thống được kiểm soát nhất định sẽ phụ thuộc vào (các) hằng số thời gian của nó, có thể là hệ thống PT1 hoặc PT2 , v.v ...

Bạn làm gì nếu hằng số thời gian của một hệ thống như vậy là biến. Hãy nói rằng, nó khác nhau giữa TaTb ( Ta<Tb ). Làm thế nào để bạn thiết kế các hằng số PID?

Câu trả lời:


8

Một cách sẽ là thực hiện một số hình thức kiểm soát thích ứng. Nếu phạm vi các hằng số thời gian của bạn nhỏ và được biết đến, bạn có thể sử dụng một thứ gọi là "lập lịch đạt được" nơi bạn xác định trước tất cả các hằng số thời gian mà bạn sẽ xử lý (hy vọng nó là hữu hạn) và sử dụng logic if / then để xác định PI và D. Có thể khó đảm bảo rằng bạn đã bảo hiểm đủ độ biến thiên để đảm bảo tính ổn định và hiệu suất trong phạm vi. Một câu chuyện thành công tốt đẹp để đạt được lịch trình là máy bay trực thăng Chinook. Nó có thể được thực hiện.

Nếu bạn không có dự đoán khả thi cho các hằng số thời gian sẽ là gì, bạn có thể xem xét bằng cách sử dụng Điều khiển thích ứng tham chiếu mô hình (MRAC). Trong sơ đồ điều khiển này, bạn có một mô hình tham chiếu (hệ thống lý tưởng của bạn) với bộ điều khiển PID đã chọn. MRAC giảm thiểu lỗi giữa những gì nhà máy thực sự đang làm và những gì mô hình tham chiếu của bạn đang làm. Theo cách này, bạn buộc nhà máy thay đổi của mình hoạt động giống như mô hình LTI của bạn.

Hoặc bạn có thể thử sử dụng Bộ điều khiển thích ứng nhận dạng mô hình (MIAC). Ở đây sơ đồ điều khiển thực hiện nhận dạng hệ thống theo thời gian thực và sử dụng luật cập nhật cho bộ điều khiển của bạn. Điều này đòi hỏi kỹ năng tiên tiến nhất trong ba ý tưởng.

Vì hệ thống của bạn đang thay đổi hằng số thời gian theo thời gian, nó không còn là LTI. Điều này có nghĩa là bạn cần phải lập lịch đạt được (khá dễ dàng nếu bạn biết phạm vi của hằng số thời gian) hoặc nhận dạng hệ thống với luật cập nhật cho PID của bạn.


tại sao không tự động cân bằng các bước thời gian bằng cách thiết kế cho dấu thời gian lớn hơn và làm cho phần mềm gần như thời gian thực bằng cách chờ đợi trong mỗi lần lặp trước khi gửi lệnh của bộ chấp hành?
Gürkan etin

@ GürkanÇetin phần mềm đang chờ đợi điều gì? Bạn có thể giúp tôi hiểu những gì đang xảy ra khi phần mềm cố tình trì hoãn cập nhật kiểm soát không?
ý chí2727

Nếu tôi hiểu chính xác, sẽ có độ trễ thời gian không xác định tại mỗi vòng lặp của phép lặp tính toán (nghĩa là do giao tiếp I / O hoặc các tác vụ CPU khác.) Đây là vấn đề chung về mục tiêu (HĐH) không theo thời gian thực. Vì vậy, điều chỉnh bộ điều khiển cho delta_t (dài) được xác định trước (100msec), và sau đó ở mỗi lần lặp, cố gắng điều chỉnh tổng thời gian vòng lặp cho delta_t này (giả sử các thuật toán điều khiển được kết thúc bởi msec thứ 80, chờ thêm 20msec ) để gửi các lệnh điều khiển; có thể hoạt động, nếu biết rằng tất cả các tác vụ khác chỉ mất chưa đến 100ms (trừ thời gian tính toán điều khiển).
Gürkan Çetin

@ GürkanÇetin nếu tôi hiểu chính xác câu hỏi ban đầu, câu hỏi là về cách kiểm soát khi các khía cạnh vật lý của nhà máy thay đổi theo thời gian (tức là tên lửa mất khối lượng theo thời gian), chứ không phải làm thế nào để xử lý thời gian thực hiện vòng lặp hoạt động không theo thời gian thực. Tôi nghĩ rằng đề xuất của bạn có thể hợp lệ, về mặt xử lý hệ điều hành phi thời gian thực đang chạy bộ điều khiển.
ý chí2727

ồ vâng Tôi đã nhầm câu hỏi. Trong trường hợp này nếu nhà máy thay đổi trong thời gian (đột ngột hoặc dần dần), tôi sẽ nói cấu hình lại là một khả năng khác. Tất nhiên, chỉ hoạt động nếu bạn biết sự thay đổi của động lực mô hình. Giống như mất khối lượng, tiêu tốn nhiên liệu, trích xuất / rút lại các bánh răng hạ cánh, v.v.
Gürkan etin
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.