Lợi nhuận:
- Có khả năng giải thích và áp dụng các thuật ngữ, tác dụng P, I, D của bộ điều khiển PID vào AI với ngữ cảnh phù hợp
- Khả năng thực hiện Ziegler-Nichols và các phương pháp điều chỉnh thử nghiệm từng bước với sự trợ giúp của AI
- Khả năng nhận biết và loại bỏ các bẫy PID như cuộn dây tích hợp, nhiễu phái sinh trong các đề xuất AI
Giữ nhiệt độ của lò không đổi, điều khiển tốc độ của động cơ ở giá trị mong muốn, cân bằng góc của máy bay không người lái; Trọng tâm của tất cả chúng là một thuật toán điều khiển. Phổ biến nhất trong số này là bộ điều khiển PID, là xương sống của ngành. PID; Nó đơn giản, mạnh mẽ và có thể giải quyết được nhiều vấn đề. Nhưng "đơn giản" không có nghĩa là "dễ điều chỉnh": PID được đặt không chính xác sẽ dao động, vượt quá giới hạn, trễ hoặc trở nên hoàn toàn không ổn định. Trí tuệ nhân tạo là một trợ thủ đắc lực ở đây: nó giải thích các thuật ngữ PID, hướng dẫn các phương pháp điều chỉnh, chẩn đoán các cạm bẫy điển hình và viết mã điều chỉnh. Tuy nhiên, việc điều chỉnh cuối cùng được thực hiện bằng cách xem xét hoạt động vật lý của hệ thống và quyết định về độ ổn định thuộc về kỹ sư. Trong phần này, chúng tôi đề cập đến cách cài đặt, điều chỉnh và xác minh bẫy PID bằng AI.
Ba điều khoản của PID
PID phản hồi tín hiệu lỗi (e = target - được đo) theo ba cách:
kỳ hạn
Anh ấy nhìn cái gì?
Hiệu ứng
cực độ
P (tỷ lệ thuận)
lỗi hiện tại
phản ứng nhanh
Dao động, lỗi vĩnh viễn
Tôi (tích phân)
Lỗi tích lũy trong quá khứ
Đặt lại lỗi vĩnh viễn
vượt quá, cuộn dây, dao động
D (đạo hàm)
Tỷ lệ thay đổi lỗi
Giảm xóc làm giảm độ vọt lố
Khuếch đại tiếng ồn
Tóm tắt bằng lời: P trả lời các câu hỏi “hiện tại tôi đã đi được bao xa”, tôi “tôi đã đi được bao lâu rồi”, D “tôi đang đến gần nhanh như thế nào”. Một bộ điều khiển tốt sẽ cân bằng được cả ba yếu tố này.
lớp PID: def __init__(self, Kp, Ki, Kd, out_min=-100, out_max=100): self.Kp, self.Ki, self.Kd = Kp, Ki, Kd self.out_min, self.out_max = đầu ra_min, đầu ra_max self.integral = 0,0 self.previous_error = 0,0 def tính toán (tự, mục tiêu, đo, dt): lỗi = mục tiêu - đo # P p = self.Kp * error # I -- self.integral với bảo vệ gió += lỗi * dt i = self.Ki * self.integral # D -- nhạy cảm với nhiễu dẫn xuất d = self.Kd * (lỗi - self.previous_error) / dt self.previous_error = error out = p + i + d # Bão hòa đầu ra và giới hạn gió lên nếu đầu ra > self.output_max: đầu ra = self.out_max self.integral -= lỗi * dt # anti-windup: hoàn tác đầu ra elif tích phân < self.output_min: đầu ra = self.output_min self.integral -= lỗi * dt trả về đầu ra
Mã này không phải là "PID huấn luyện", mà là một khung gần với logic sản xuất: nó bao gồm độ bão hòa đầu ra và khả năng chống cuộn dây. Nhiều PID đơn giản do AI đưa ra bỏ qua hai biện pháp bảo vệ này; Không có chúng, khi bộ truyền động đạt đến giới hạn của nó, tích phân sẽ phồng lên và hệ thống sẽ vọt lố một cách bất ngờ.
Mẹo: Khi yêu cầu AI về PID, hãy nói "thêm độ bão hòa đầu ra và chống cuộn dây, áp dụng đạo hàm trong phép đo cho thuật ngữ đạo hàm". Ba phần bổ sung này chuyển đổi PID sách giáo khoa thành PID trường.
Tích phân cuộn dây và tiếng ồn phái sinh
Hai cạm bẫy kinh điển là nguyên nhân phổ biến nhất gây ra lỗi PID:
Cuộn dây tích phân: Khi bộ truyền động bão hòa (ví dụ: động cơ đã hoạt động hết công suất), lỗi vẫn tồn tại và số hạng tích phân tiếp tục tăng. Tích phân tăng cao này dẫn đến độ vọt lố lớn khi hệ thống đạt đến mục tiêu. Giải pháp: dừng hoặc khôi phục tích phân khi đầu ra bão hòa (chống cuộn dây, được minh họa trong đoạn mã trên).
Nhiễu đạo hàm: Thuật ngữ D lấy đạo hàm của sai số; Đạo hàm của phép đo nhiễu sẽ ồn hơn nhiều và sẽ làm rung bộ truyền động. Giải pháp: lấy đạo hàm từ phép đo (đạo hàm của phép đo thay cho sai số), thêm bộ lọc thông thấp vào số hạng đạo hàm.
# Giảm nhiễu đạo hàm: đạo hàm đo lường + filterd_raw = -(measured - self.previous_measured) / dt thay vì lỗi
AI rất giỏi trong việc xác định những cạm bẫy này; Nếu bạn nói "PID của tôi vượt quá mức rất nhiều khi đạt đến mục tiêu", nó sẽ khuyên bạn nên kết thúc. Tuy nhiên, bạn xác minh bằng cách đo xem bản sửa lỗi có hoạt động trên hệ thống của bạn hay không.
Thiết lập với Ziegler-Nichols
Một phương pháp cổ điển để tìm kiếm lợi nhuận (Kp, Ki, Kd) từ đầu là Ziegler-Nichols. Bản chất của nó: chỉ bắt đầu với P và tăng Kp cho đến khi hệ thống chuyển sang dao động liên tục; Tính Kp, Ki, Kd từ bảng với độ lợi tới hạn Ku và chu kỳ dao động Tu tại thời điểm này.
bộ điều khiển
kp
Ti
Td
P.
0,5·Ku
–
–
P.I.
0,45·Ku
Tú/1.2
–
PID
0,6·Ku
Tu/2
Tú/8
Các bước Ziegler-Nichols (kế hoạch do AI thực hiện):1. Lấy Ki=0, Kd=0. Chỉ cần chạy P.2. Tăng CHẬM Kp cho đến khi bắt đầu dao động ổn định và bền vững.3. Kp này = Ku (mức tăng tới hạn), chu kỳ dao động = Tu.4. Tính Kp, Ti, Td từ bảng; Ki = Kp/Ti, Kd = Kp*Td.5. Bắt đầu với những giá trị này, sau đó thực hiện các điều chỉnh thử nghiệm.
Thận trọng: Ziegler-Nichols cố tình đưa hệ thống đến giới hạn ổn định của nó (dao động liên tục). Có nguy cơ bị căng cơ, quá dòng và nguy hiểm khi thực hiện việc này trên phần cứng thực; Nếu có thể, hãy thực hiện nó trong mô phỏng trước, sau đó làm việc với giới hạn công suất thấp và E-stop trong phần cứng. Ku do AI gợi ý là điểm khởi đầu, nó được đo lường và xác minh trong hệ thống của bạn.
Chẩn đoán được hỗ trợ bởi AI
Bạn có thể chẩn đoán hành vi PID bằng cách mô tả nó cho AI. Triệu chứng → sơ đồ nguyên nhân có thể xảy ra:
triệu chứng
nguyên nhân có thể
Hướng đi mà AI sẽ gợi ý
ngồi chậm
Kp/Ki thấp
tăng kp
Lỗi vĩnh viễn
Tôi vắng mặt hoặc rất thấp
Ki thêm/tăng
Vượt quá + dao động
Kp/Ki cao, không có D
Thêm Kd, Giảm Ki
Thiết bị truyền động đang rung
tiếng ồn phái sinh
Lọc/giảm D
Khi bạn đạt đến mức vượt quá lớn
kết thúc tích hợp
Thêm tính năng chống gió
Nhắc yếu / Nhắc mạnh
YẾU:"Cung cấp mức tăng cho PID."(Hệ thống nào? Hành vi như thế nào? Có bất kỳ phép đo nào không? Số ngẫu nhiên xuất hiện.) MẠNH:"Tôi đang điều chỉnh PID cho điều khiển tốc độ động cơ DC. Hiện tại, Kp=2, Ki=0,5, Kd=0. Nó vượt quá 35% ở bước đầu vào và khi đạt đến mục tiêu, sẽ có độ vọt lố thứ hai lớn; phải mất nhiều thời gian để giải quyết. Lấy mẫu là 100 Hz. Liệt kê các lý do có thể xảy ra từ các triệu chứng này, đạt được "Đề nghị tôi nên thay đổi hướng nào và cho tôi biết cách kiểm tra xem phần vượt quá có phải là một sự cố không thể thiếu hay không."
Hộp đựng nhỏ
Kỹ sư điều khiển Kerem điều chỉnh việc kiểm soát nhiệt độ của máy đùn. Với mức tăng do AI đề xuất, hệ thống sẽ nhanh chóng đạt được mục tiêu, nhưng ở mỗi lần thay đổi cài đặt, hệ thống sẽ vượt quá mức lớn và từ từ ổn định lại. Kerem giải thích triệu chứng này cho AI; AI nghi ngờ có sự cố xảy ra do máy sưởi vẫn hoạt động hết công suất (bão hòa) trong một thời gian. Kerem thêm tính năng chống cuộn dây vào mã PID và độ vọt lố giảm đáng kể. Nhưng bây giờ có hiện tượng nhấp nháy nhẹ ở ổ cắm máy sưởi; Anh ta gán điều này cho thuật ngữ D khuếch đại nhiễu cảm biến nhiệt độ và thêm bộ lọc thông thấp vào đạo hàm. Cuối cùng, nó xác nhận một cách đại khái những lợi ích thu được bằng Ziegler-Nichols và thực hiện tinh chỉnh thử nghiệm. AI có khả năng chẩn đoán nhanh chóng; Nhưng Kerem đã xác nhận từng điều chỉnh bằng cách đo phản hồi bước thực tế—cho dù cuộn dây đã được sửa hay hiện tượng nhấp nháy đã biến mất, nó chỉ có thể được nhìn thấy bằng đồ họa.
Những lỗi thường gặp
- Không thêm được độ bão hòa đầu ra và khả năng chống cuộn dây vào PID và gặp phải hiện tượng vượt giới hạn lớn trong giới hạn bộ truyền động.
- Lấy đạo hàm từ đạo hàm của phép đo nhiễu và làm rung bộ truyền động.
- Giả sử dt không đổi, trong khi chu kỳ lấy mẫu thay đổi.
- Thực hiện kiểm tra dao động Ziegler-Nichols trên phần cứng mà không có biện pháp phòng ngừa an toàn.
- Chấp nhận thu nhập do AI tạo ra là “cuối cùng” mà không cần xác minh cụ thể theo hệ thống.
- Thay đổi một mức khuếch đại đơn lẻ với bước nhảy rất lớn và đẩy hệ thống vào tình trạng mất ổn định.
Tóm lại
- PID; Nó phản ứng với P (lỗi hiện tại), I (lỗi tích lũy), D (tỷ lệ thay đổi lỗi).
- PID trường phải bao gồm bộ lọc bão hòa đầu ra, bộ lọc chống cuộn dây và đạo hàm.
- Tích hợp độ vọt lố lớn, nhiễu đạo hàm gây ra rung động cho bộ truyền động.
- Ziegler-Nichols bắt đầu thắng lợi; Nó được thực hiện với các biện pháp bảo mật trong phần cứng.
- AI chẩn đoán nhanh chóng từ triệu chứng đến nguyên nhân; Sự hiệu chỉnh được xác nhận bằng phép đo.
- dt đo thực tế; Những thay đổi về thu nhập được thực hiện theo từng bước nhỏ và theo dõi.
Nhiệm vụ ứng dụng
Chọn một hệ thống (động cơ/bộ sưởi thực hoặc mô hình bậc một/thứ hai đơn giản trong Python) và yêu cầu AI tạo lớp PID với độ bão hòa + chống cuộn dây. Sau đó: (1) quan sát hành vi dao động bằng cách chỉ bắt đầu với P và tăng Kp, (2) thêm Ki để loại bỏ lỗi vĩnh viễn và xem độ vọt lố tăng như thế nào, (3) so sánh tác động lên độ vọt lố lớn bằng cách bật và tắt tính năng chống cuộn dây. Vẽ biểu đồ phản hồi từng bước ở mỗi bước và lưu ý xem mức tăng nào sẽ thay đổi hành vi nào. So sánh lợi ích thu được từ Ziegler-Nichols với lợi ích bạn đạt được.