Điều chỉnh mức tăng của bộ điều khiển có thể khó khăn, chiến lược chung nào hoạt động tốt để có được một hệ thống ổn định hội tụ đến giải pháp phù hợp?
Điều chỉnh mức tăng của bộ điều khiển có thể khó khăn, chiến lược chung nào hoạt động tốt để có được một hệ thống ổn định hội tụ đến giải pháp phù hợp?
Câu trả lời:
Đối với các động cơ mô-men xoắn nhỏ, thấp, có ít hoặc không có bánh răng, một quy trình bạn có thể sử dụng để có được một giai điệu cơ bản tốt là thăm dò phản ứng của nó đối với sự xáo trộn.
Để điều chỉnh một PID sử dụng các bước sau:
Những nhiễu loạn bạn sử dụng phụ thuộc vào cơ chế mà bộ điều khiển được gắn vào. Thông thường di chuyển cơ chế bằng tay ra khỏi điểm đặt và buông là đủ. Nếu dao động càng ngày càng lớn thì bạn cần giảm mức tăng P.
Nếu bạn đặt mức tăng D quá cao, hệ thống sẽ bắt đầu trò chuyện (rung ở tần số cao hơn dao động khuếch đại P). Nếu điều này xảy ra, giảm mức tăng D cho đến khi nó dừng lại.
Tôi tin rằng kỹ thuật này có tên. Tôi sẽ đặt nó ở đây khi tôi tìm thấy nó.
Một phương pháp thử nghiệm tương tự với câu trả lời của hauptmech mà tôi đã được dạy ở trường đại học:
Các phương pháp Ziegler-Nichols là chính xác hơn nếu bạn có thể nhận được một số chính xác cho thời kỳ dao động. Nó thường gây ra dao động khi sử dụng các số "PID cổ điển" đã cho, do đó không phải lúc nào cũng tối ưu.
Để biết các quy tắc chung về tác động của từng thuật ngữ đối với thời gian tăng, vượt mức, thời gian giải quyết, lỗi trạng thái ổn định và ổn định, hãy xem Bảng 1 của "Thiết kế và phân tích hệ thống điều khiển PID" của Li, Ang và Chong trong Hệ thống điều khiển của IEEE Tạp chí.
Embedded.com đã chuyển bài viết của tôi một lần nữa, nhưng đây là nơi nó đang ở. Điều này chỉ cho bạn cả cách viết một vòng lặp PID (tìm ra cách thực hiện nó trong một cái gì đó ngoài dấu phẩy động được để lại như một bài tập cho người đọc) và cách điều chỉnh nó.
Cách tốt nhất phụ thuộc rất nhiều vào khả năng của bạn. Cách để điều chỉnh tốt nhất , giả sử bạn là người có hệ thống kiểm soát có kinh nghiệm, bằng cách sử dụng để đo lường phản ứng của nhà máy ("nhà máy" == "điều bạn đang kiểm soát"), sau đó tùy thuộc vào cách bạn đã làm các phép đo trích xuất một mô hình của nhà máy và thiết kế theo đó, hoặc chỉ thiết kế trực tiếp đến các phép đo.
Đối với một số loại cây khó nhất định, bạn sẽ thấy rằng mình không thể thực hiện các phép đo thỏa đáng, trong trường hợp đó bạn phải đi theo mô hình một mình. Đó là những thứ hiếm, nhưng thỏa mãn khi bạn làm cho chúng hoạt động.
Sebastian Thrun đã trình bày một thuật toán đơn giản để điều chỉnh PID trong lớp "Cách lập trình xe robot" của mình. Nó được gọi là "twiddle", ông mô tả nó ở đây .
Twiddle rất dễ tìm thấy cực tiểu địa phương - điều này có nghĩa là bạn có thể đưa ra một bộ ba hằng số ổn, nhưng không tối ưu cho tình huống. Vấn đề điều chỉnh các hằng số PID là một tập hợp con của một vấn đề tìm kiếm tổng quát hơn để tìm các tham số nhất định để tối đa hóa tiện ích (trong trường hợp này, giảm thiểu lỗi của thuật toán PID). Bạn có thể xem xét các giải pháp chung khác cho vấn đề này, như leo đồi, ủ mô phỏng, thuật toán di truyền, v.v ... có thể sẽ tìm ra giải pháp tối ưu hơn.
Ngược lại với hai câu trả lời khác, tôi muốn nói một cách điều chỉnh thủ công tốt là bỏ qua Kd. Vì vậy, bắt đầu từ 0 và tăng Kp cho đến khi bạn đạt được mục tiêu, sau đó tăng Ki để thoát khỏi lỗi trạng thái ổn định.
Kd có thể nhầm lẫn vấn đề này vì nó phản ứng kém với tiếng ồn, sau đó bạn bắt đầu thêm các bộ lọc vào đầu vào tương tự của mình và sau đó đặt câu hỏi điều gì xảy ra ngoài việc làm chậm sự kiểm soát của bạn và làm cho toàn bộ vấn đề trở nên khó khăn hơn ...
Một điều nữa ràng buộc tôi nhầm lẫn là nếu phương trình PID ở dạng chuẩn hoặc ở dạng độc lập (song song trong wikipedia). Hiệu ứng của Ki dường như nghịch đảo khi hình thức là cách sai với những gì bạn nghĩ nó là. Cả hai loại được sử dụng trong tự động hóa, đôi khi có tùy chọn để chuyển đổi giữa chúng.
Mô hình hệ thống
Tất nhiên điều chỉnh thử nghiệm có thể được thực hiện như được đề cập trong các câu trả lời khác, nhưng nếu bạn có thể xác định mô hình động hợp lý cho bất cứ điều gì bạn muốn kiểm soát và có thể xác định các tham số của nó , bạn có thể thiết kế bộ điều khiển của mình dựa trên tốt các tiêu chí được xác định như vượt quá , thời gian tăng , thời gian giải quyết , lỗi trạng thái ổn định , v.v.
Thậm chí có những công cụ trong MATLAB có thể điều chỉnh bộ điều khiển của bạn để tối ưu hóa cho sự kết hợp của các tiêu chí này, điều này làm cho nó thậm chí còn tốt hơn để sử dụng.
Biết bộ điều khiển của bạn
Tìm hiểu những gì từng tham số trong bộ điều khiển PID cũng khá hữu ích. Tất cả các thuật toán thử nghiệm dựa trên loại kiến thức này bằng cách nào đó. Nếu bạn không chỉ làm theo hướng dẫn mà còn có thể tự mình cảm nhận được điều đó, bạn có thể thấy điều chỉnh thủ công dễ dàng hơn.
Các vấn đề trong thế giới thực
Có khả năng một trong những điều này, trong số những điều khác, sẽ xảy ra khi bạn điều chỉnh bộ điều khiển của mình: cuộn dây , tốc độ lấy mẫu không đầy đủ , độ bão hòa .
Phần kết luận
Cuối cùng, tất cả phụ thuộc vào những gì bạn thực sự có thể làm với hệ thống của mình để có được một số kiến thức về cách thức hoạt động và loại thử nghiệm nào có thể được thực hiện. Điều tốt nhất là thực sự tìm hiểu thêm về bộ điều khiển PID và lý thuyết điều khiển nói chung, IMO, nhưng tôi thiên vị :)
Tôi sẽ cố gắng mở rộng một chút từ kinh nghiệm của tôi cho những người có thể quan tâm. Tôi nghĩ vấn đề là chúng ta có rất nhiều lý thuyết điều khiển hơi khó tiếp cận (và đôi khi không hữu ích) và sau đó chúng ta có các quy tắc đưa ra các giả định về các hệ thống thường không chính xác.
Ổn định
Trước tiên hãy nói về lý do tại sao các vòng điều khiển trở nên không ổn định. Đối với cuộc thảo luận này, tôi sẽ giả sử một hệ thống tuyến tính. Một cách không chính thức điều này có nghĩa là nếu tín hiệu điều khiển của bạn là sóng hình sin ở một tần số nhất định thì đầu ra quan sát của bạn có cùng tần số và nếu bạn thay đổi biên độ của hệ thống điều khiển thì đầu ra của bạn sẽ phản hồi theo cùng một tỷ lệ. Giả định này là một xấp xỉ tốt cho nhiều hệ thống trong thế giới thực và cho phép chúng ta xem xét các tần số khác nhau.
Nếu bạn nhìn vào đường dẫn điều khiển, bạn có điểm đặt, bộ điều khiển PID, hệ thống của bạn (còn gọi là "Nhà máy"), rồi cảm biến của bạn. Tưởng tượng một điểm đặt cố định và sóng hình sin từ cảm biến của bạn (điều này tương đương với nhiễu loạn trong thế giới thực tại cảm biến, được đưa trở lại). Trong một hệ thống không ổn định, phản hồi của bạn làm cho vòng điều khiển khuếch đại lỗi thay vì giảm nó để thời gian tăng biên độ của bạn. Lý do điều này xảy ra là do độ trễ, hoặc đối với tần số cụ thể này, một sự dịch pha giữa đầu vào và đầu ra. Đối với một tần số nhất định, chúng ta có thể xem xét sự thay đổi và biên độ của vòng lặp mở (nghĩa là không có phản hồi) của đầu ra và khi chúng ta vẽ tất cả những thứ đó trên biểu đồ, chúng ta sẽ có được một cái gì đó giống như Bode Plot. Nếu chúng ta có một tình huống trong biểu đồ vòng mở này trong đó lỗi tiếp tục được khuếch đại thì chúng ta có một hệ thống không ổn định. Nếu độ trễ nhỏ hơn 1/2 bước sóng hoặc mức tăng nhỏ hơn x1 thì hệ thống sẽ ổn định . Trong thực tế, chúng tôi muốn có một số tiền ký quỹ từ thời điểm đó (đạt được tỷ lệ ký quỹ và tỷ lệ pha), đó là lý do tại sao bạn sẽ thấy "lùi lại" này trong nhiều phương pháp thủ công / heuristic.
Vấn đề chính với những phương pháp thủ công đó là bạn bị mù và bạn được đảm bảo khá nhiều để có được một hệ thống điều khiển kém.
Ngoài ra, hãy nhớ rằng ý nghĩa của P, I và D có liên quan đến cảm biến của bạn đang đo và kiểm soát nào bạn đang áp dụng. Một lỗi phổ biến trong các bộ điều khiển được xây dựng tại nhà là mọi người nghĩ rằng họ đang áp dụng P khi họ thực sự không. Bộ điều khiển động cơ thường có vòng lặp vị trí, chạy trên vòng tốc độ chạy trên vòng xoắn. (Một thác )
OK nhưng điều này giúp chúng ta như thế nào?
Điểm đầu tiên tôi muốn đưa ra là nếu bạn đang xây dựng bộ điều khiển PID của riêng mình, bạn cũng nên xây dựng cách đo phản ứng vòng hở. Thực hiện quét tần số ở đầu vào bộ điều khiển của bạn và đo đầu ra của cảm biến với phản hồi bị ngắt kết nối. Sau đó, bạn có thể vẽ sơ đồ Bode vòng mở và xem tại sao hệ thống của bạn ổn định và có thể trao đổi các điều khiển khác nhau. Nó cũng hữu ích để đo phản hồi vòng kín và bạn có thể làm điều đó với bất kỳ hệ thống nào bằng cách thực hiện quét tần số điểm đặt của bạn trong khi vòng lặp được đóng lại. Cả hai điều này đều không khó và không đòi hỏi nhiều kiến thức lý thuyết.
Nếu bạn chỉ đơn giản là điều chỉnh các điều khiển mà không có bất kỳ hiểu biết nào về những gì đang diễn ra dưới mui xe, bạn sẽ không thể tối ưu hóa hệ thống của mình. Xây dựng một số trực giác về các hệ thống này không khó lắm. Ví dụ, mức tăng tỷ lệ không ảnh hưởng đến pha mà chỉ đơn giản là tăng mức tăng vòng hở trên tất cả các tần số. Vì vậy, những gì bạn đang làm khi bạn tăng mức tăng theo tỷ lệ trong tất cả các phương pháp điều chỉnh thủ công đó là tìm tần số trong đó pha đến -180. Xem điều này để có thêm ý tưởng về tác động của các điều khiển khác nhau đối với đáp ứng tần số của bạn.
Khá thường xuyên nhận được hiệu suất vòng kín tốt nhất liên quan đến việc điều chỉnh hệ thống và không chỉ tăng bộ điều khiển. Những gì bạn muốn là làm cho hệ thống "cứng" nhất có thể. Điều đó sẽ cho phép bạn tăng cường các tham số điều khiển và có được băng thông vòng mở và đóng tốt nhất. Theo kinh nghiệm của tôi trong các ứng dụng điều khiển động cơ, mức tăng theo tỷ lệ là thứ nên được thực hiện trong hầu hết các "công việc" và tích hợp "phần còn lại". Tôi không nghĩ bạn cần một thuật ngữ D nào cả. Có bộ lọc thông thấp và bộ lọc notch giúp ích rất nhiều trong các trường hợp bạn có thể có một số cộng hưởng cơ học nhưng việc đặt chúng mà không có Bode Plot là rất khó (tần số dao động bạn quan sát được trong vòng kín có thể khác với vòng lặp mở).
Nếu an toàn là một mối quan tâm (động cơ rất mạnh hoặc hệ thống có thể bị phá hủy bởi động cơ mất kiểm soát), bạn cần đặt một số giới hạn trước khi bắt đầu điều chỉnh (ví dụ: giới hạn hiện tại, lỗi vị trí tối đa) để bảo vệ hệ thống. Sau đó, bạn cần có được một số loại cảm giác cho phạm vi của các tham số. Nếu phản hồi của bạn có 40 số trên mỗi vòng quay hoặc 4000 số trên mỗi vòng quay, các tham số của bạn sẽ là hệ số 100 cho một hệ thống nhất định. Cách tiếp cận của tôi trước tiên là tìm một phạm vi mà bạn có một số khả năng kiểm soát kém và sau đó lan rộng từ đó bắt đầu bằng P và sau đó tôi (mặc dù một lần nữa bạn lại bị mù). Sao lưu tạo ra biên độ ổn định này.
Ngoài vòng khép kín
Vòng lặp kín cố gắng để đưa ra lỗi từ hệ thống. Nó sẽ luôn luôn có một hiệu suất hạn chế. Những gì bạn muốn làm là giảm thiểu lỗi mà bộ điều khiển vòng kín của bạn nhìn thấy và một cách để làm điều đó là thông qua một kỹ thuật được gọi là chuyển tiếp nguồn cấp dữ liệu. Trong feed-Forward bạn đi xung quanh bộ điều khiển và điều khiển một lệnh trực tiếp đến hệ thống. Một ví dụ về điều đó sẽ là tăng tốc chuyển tiếp. Nếu bạn biết mô-men xoắn của động cơ không đổi và bạn biết tải trọng bạn có thể biết được mức độ bạn cần lái xe để có được gia tốc nhất định của tải. Bạn chỉ cần lấy gia tốc đầu vào lệnh, nhân nó với một hằng số và thêm nó vào lệnh ổ đĩa của bộ điều khiển. Về cơ bản, bạn đang làm những gì cần thiết để điều khiển hệ thống nếu không có bộ điều khiển và bạn càng có thể nhận được càng ít lỗi thì vòng lặp của bạn phải xử lý càng tốt và hệ thống của bạn sẽ hoạt động tốt hơn. Nó làm cho một sự khác biệt rất lớn trong thực tế.
Ziegler-Nichols là một phương pháp thủ công dễ dàng. Các phương thức mạnh hơn cũng tồn tại - chúng thường dựa vào các giải pháp toán học (phân tích, tối ưu hóa lặp, v.v.)
Ngoài ra, google "tự điều chỉnh PID" cho một số kỹ thuật tự động. Yêu thích của tôi là ứng dụng của các mạng thần kinh để điều chỉnh PID.
0.01sec
thời gian const thường xuyên ( ) cho 20secs
dưới dạng ma trận 3
x 2000
)Có một cách tiếp cận nhanh hơn được gọi là Ziegler nhận Nichols :