Làm cách nào để điều chỉnh bộ điều khiển PID thành quy trình phi tuyến


9

Tôi có một quá trình nhiệt phi tuyến (bức xạ phi tuyến ngày càng hiện diện khi nhiệt độ tăng) mà tôi muốn điều chỉnh bộ điều khiển PID. Tôi muốn kiểm soát nhiệt độ chính xác nhất có thể.

Tôi đã lên kế hoạch phân chia phạm vi nhiệt độ theo N phạm vi tuyến tính giả (sẽ được xác định) và với từng phạm vi nhiệt độ này: điều chỉnh mô hình bậc nhất sử dụng bước nhiệt độ nhỏ và tính toán các tham số PID cho phù hợp với mô hình này. Các tham số PID sẽ được tự động chuyển đổi tùy thuộc vào nhiệt độ của quá trình *.

Vấn đề của tôi là như sau: xem xét điểm kiểm tra 70 ° C chẳng hạn. P watt đã chảy để đạt đến nhiệt độ này. Tôi sẽ tiêm dP watt để tăng nhiệt độ thêm 1 ° C. Sau đó tôi sẽ ghi lại hằng số thời gian và mức tăng trạng thái ổn định sẽ là 1 / dP ° C / W. [Xin vui lòng bạn có thể dành một chút thời gian để suy nghĩ xem liệu điều này có đúng không?] Cuối cùng, tôi sẽ điều chỉnh PID đến nhà máy đó để lấy thông số cho phạm vi nhiệt độ đó và chuyển sang các phạm vi khác.

Bây giờ, giả sử quá trình đạt 70 ° C. Các tham số mới được tải và thiết lập lại bộ đếm tích phân. Lỗi có thể là 1 ° C, nhưng công suất cần thiết nhiều hơn mức đó để đạt 21 ° C, chắc chắn bộ điều khiển sẽ yêu cầu ít hơn P watt. Điều này có nghĩa là nhiệt độ sẽ giảm xuống rất nhiều trước khi thuật ngữ tích phân yêu cầu P watt, và chỉ sau đó, dP bổ sung cuối cùng sẽ đưa quá trình lên 71 ° C (và chắc chắn nó sẽ vượt quá mức). P càng lớn so với dP thì càng tệ.

Có vẻ như các bộ gia nhiệt phải được điều khiển bằng tổng đầu ra của bộ điều khiển và công suất cần thiết để duy trì ở "nhiệt độ tham chiếu" hiện tại (ví dụ 70 ° C). Nhưng ngoài bộ điều khiển kệ không cung cấp điều đó, vì vậy phải có một cách khác.

Tôi đang thiếu gì? Cách thích hợp là gì?

*: Đó là cách lập kế hoạch đạt được hiệu quả .


1
Bộ điều khiển PID thường dành cho các hệ thống tuyến tính. Nó đủ mạnh để kiểm soát một số hệ thống phi tuyến tính cũng như xung quanh một số điểm hoạt động "gần như tuyến tính". Nếu không phải như vậy, các kỹ thuật khác nhau có thể được sử dụng để tuyến tính hóa nhà máy được kiểm soát (tra cứu "tuyến tính hóa phản hồi" hoặc giới thiệu một số vòng lặp bên trong)
Eugene Sh.

Cám ơn bạn đã góp ý. Đó là những gì tôi đang cố gắng đạt được: sử dụng bộ điều khiển PID trong phạm vi nhiệt độ "gần như tuyến tính". Tôi đã xem xét xung quanh với những từ khóa đó nhưng không có nhiều may mắn.
dùng42875

1
Thay vì đào tạo nhiều mô hình, bạn có thể cung cấp giá trị đầu vào thông qua chức năng 'tuyến tính hóa' trước khi chuyển nó sang bộ điều khiển PID và huấn luyện nó dựa trên điều đó không?
Nick Johnson

1
Cách tiếp cận của bạn âm thanh OK với tôi. Bạn sẽ điều chỉnh mức tăng và thời gian không đổi tùy thuộc vào nhiệt độ. Bạn sẽ phải suy nghĩ về những gì xảy ra tại các điểm giao nhau. Bạn đã xây dựng một cái gì đó không hoạt động tốt như bạn muốn? Một vòng điều khiển có thể ẩn rất nhiều phi tuyến tính. Và có lẽ bạn sẽ ổn mà không cần phải thích.
George Herold

Tại sao bức xạ là phi tuyến? Nếu lò bị rò rỉ nhiệt độ, thì tổn thất điện năng là tuyến tính Q = mc * delta_T. Nếu sytem của bạn chỉ bị rò rỉ, thì hầu như mọi hằng số vẫn còn, như thời gian chết, thời gian tăng, ngoại trừ mức tăng bị giảm. Bạn chỉ có thể biến Kp biến Kp (T_actual) thành một fnction tuyến tính của Kp_initial và Kp_final.
Marko Buršič

Câu trả lời:


11

Làm cách nào để điều chỉnh bộ điều khiển PID thành quy trình phi tuyến?

Bạn không. Bạn tuyến tính hóa quá trình, sau đó để bộ điều khiển PID hoạt động trên các giá trị tuyến tính.

Bằng cách "tuyến tính hóa quá trình", tôi không có nghĩa là thực sự biến quá trình thành tuyến tính. Điều đó thường không thể được thực hiện do vật lý. Tuy nhiên, bạn có thể đặt một cái gì đó phi tuyến tính giữa đầu ra của bộ điều khiển PID và đầu vào quá trình để đầu ra PID điều khiển tuyến tính quá trình theo quan điểm của bộ điều khiển PID.

Một bộ tuyến tính hóa như vậy không cần phải rất chính xác vì nó nằm trong vòng phản hồi. Mục đích của nó là mang lại sự xuất hiện của mức tăng gần như không đổi trên phạm vi động điều khiển. Một cách đơn giản và tổng quát là một hàm dựa trên bảng tuyến tính mảnh khôn ngoan. 16 hoặc 32 phân đoạn thường là đủ cho bất cứ điều gì nhưng các quá trình phi tuyến tính rất cao.

Ví dụ tồi tệ nhất mà tôi gặp phải là điều khiển dòng điện qua ống điện tử bằng cách thay đổi độ cứng của dây tóc catốt. Chức năng của nhiệt độ catốt đối với dòng tia điện tử là rất phi tuyến tính, và hệ thống kiểm soát dòng dây tóc catốt cũng hơi phi tuyến tính. Trong trường hợp này, quá khó để dự đoán toàn bộ sự lộn xộn này, vì vậy tôi đã sử dụng một quy trình hiệu chuẩn trong quá trình sản xuất để vượt qua các giá trị điều khiển dây tóc, đo dòng tia cho mỗi, sau đó tính toán bảng tra cứu 32 đoạn từ đó. Nó hoạt động rất tốt và chúng tôi có thể điều chỉnh bộ điều khiển PID dòng tia để đáp ứng tốt trên toàn bộ phạm vi.

Nếu không có chức năng tuyến tính hóa trước quy trình, bạn phải điều chỉnh bộ điều khiển PID để ổn định tại điểm tăng cao nhất của quy trình. Điều này sau đó dẫn đến hành vi rất ẩm ướt ở các điểm khác.

Thêm

Không có gì trong câu hỏi cập nhật của bạn nói bất cứ điều gì về lý do tại sao phương pháp trên vẫn không phải là một ý tưởng hay và có thể áp dụng. Bạn nói rằng bạn đang sử dụng một bộ điều khiển tương tự. Phản ứng đầu tiên của tôi là "Những năm 1980 đã qua lâu rồi, đừng làm thế." Tuy nhiên, bộ điều khiển PID và bộ tuyến tính hóa thực vật có thể độc lập.

Rõ ràng đầu vào của nhà máy là năng lượng và đầu ra là nhiệt độ. Đo nhiệt độ trạng thái ổn định điển hình ở một loạt các mức công suất. Từ đó bạn có thể tính toán hàm chuyển đổi "công suất" được tuyến tính hóa thành đầu vào công suất thực tế của nhà máy. Bộ điều khiển PID tương tự có lẽ đặt ra một điện áp tỷ lệ thuận với công suất. Tất cả những gì bạn phải làm là chèn một hộp đen phù hợp với điện áp đó thực hiện phép đo tuyến tính để dịch mức năng lượng thực tế.

Thông thường bạn sẽ làm điều này với một vi điều khiển có A / D tích hợp. Thực hiện tra cứu bảng này và nội suy tuyến tính giữa các điểm là chuyện nhỏ. Sau đó, nó đưa ra kết quả theo cách cuối cùng được chuyển đổi thành điện áp. Do nhà máy hoạt động chậm so với vi điều khiển, điều này có thể dễ dàng như lọc và đệm một đầu ra PWM. Hoặc bạn có thể lái D / A trực tiếp, mặc dù điều đó không có vẻ cần thiết trong trường hợp này.

Để phù hợp với chủ đề thập niên 1980 của bộ điều khiển của bạn, bạn có thể thực hiện điều này với A / D, bộ nhớ và D / A cho cảm giác retro đó.

Trong mọi trường hợp, bộ điều khiển PID hiện đang điều khiển hiệu quả một nhà máy tuyến tính theo như nó biết, và điều chỉnh nó thành hiệu suất tốt là điều có thể.

Thực hiện chuyển đổi tuyến tính từng phần trên đầu vào của nhà máy ở một nơi dễ dàng hơn so với điều chỉnh 3 giá trị bên trong bộ điều khiển PID trên phạm vi đầu ra. Cái sau là một loại bùn, trong khi cái trước trực tiếp giải quyết vấn đề. Việc đo dữ liệu cho hàm tuyến tính hóa cũng dễ dàng hơn rất nhiều so với việc xác định mức tăng P, I và D tại các điểm khác nhau. Ngay cả khi bạn đã làm điều đó, bạn vẫn có những vấn đề nhất thời, vì lợi ích đúng đắn không được áp dụng ngay lập tức vào tình huống. Một lần nữa "lập kế hoạch đạt được" là một loại bùn.


Rất thú vị, cảm ơn vì đã trình bày phương pháp tuyến tính hóa. Tôi đang sử dụng bộ điều khiển phần cứng được nối trực tiếp với rơle, vì vậy thật không may là tôi phải lên lịch. Là cách tiếp cận nhận dạng của tôi là chính xác? Nó cảm thấy như không.
dùng42875

Tôi đã chỉnh sửa câu hỏi của mình để làm rõ vấn đề của mình - cụ thể là hai đoạn cuối. (vẫn, +1)
dùng42875

Tôi đã hỏi nhà sản xuất bộ điều khiển nếu tôi có thể chèn bảng tra cứu với phép nội suy tuyến tính trước khi xuất - nếu điều đó có thể được thực hiện, tôi chắc chắn sẽ chọn tùy chọn đó ngay cả khi điều đó có nghĩa là tôi sẽ phải quên đi công cụ điều chỉnh thông thường dựa trên chức năng chuyển và như vậy. Thật thanh lịch. Nếu họ không, tôi sẽ phải lập kế hoạch đạt được rất tẻ nhạt, nhưng rõ ràng không có gì sai với cách tiếp cận của tôi, đó là điều tôi muốn kiểm tra.
dùng42875

2

Hãy nhớ rằng khi bạn tuyến tính hóa một mô hình, bạn sẽ giả định rằng mô hình phi tuyến y = f (x) được thay thế bằng y = A * (x-x0) + B. Lưu ý rằng x0 là điểm tuyến tính hóa. Khi bạn giới thiệu phạm vi cho x, bạn sẽ có nhiều A, B và x0. Dù bằng cách nào, đầu vào cho bộ điều khiển của bạn sẽ là lỗi liên quan đến điểm tuyến tính hóa hiện tại. Tuy nhiên, bạn vẫn bù tín hiệu đầu vào (với B), vì vậy ngay cả khi lỗi là 0 đối với điểm tuyến tính hóa hiện tại, bạn vẫn sẽ tiếp tục phát tín hiệu.

Trong ví dụ của bạn sau đó, ngay cả khi lỗi là 0 độ (tại điểm đặt 70 độ), bộ điều khiển vẫn sẽ tạo ra công suất lớn hơn 0.


Cảm ơn. Tôi nghĩ rằng bạn đang ở một cái gì đó, nhưng tôi không thực sự hiểu. Nói một cách tổng quát, tôi đang sử dụng các bộ điều khiển PID cơ bản (tương tự), trong đó tôi có thể thay đổi các thuật ngữ P, I, D về chức năng của nhiệt độ. Tôi biết rằng tại một thời điểm ổn định ở 70 ° C, công suất sẽ không bằng 0 ngay cả khi sai số bằng không. Đó là sự giải quyết khiến tôi lo lắng: Về cơ bản, tôi thả bộ điều khiển ở 70 ° C, và vì nó là 0 = 0 cho nó, nên thuật ngữ tích hợp sẽ mất một thời gian để khởi động để tôi có một sự sụp đổ khủng khiếp. Có vẻ như phương pháp của tôi là sai.
dùng42875

(Bộ điều khiển sẽ yêu cầu rất ít năng lượng khi bắt đầu, dưới mức năng lượng cần thiết để duy trì ở 70 ° C)
dùng42875

Tôi đã chỉnh sửa câu hỏi của mình để làm rõ - cụ thể là hai đoạn cuối.
dùng42875

Thật khó để đưa ra lời khuyên mà không có thêm thông tin chi tiết về quy trình của bạn, nhưng có vẻ như bạn có một hệ thống khá không ổn định quanh 70 độ và xung quanh nhiệt độ đó hầu hết sự kiểm soát xảy ra do bù trừ nội bộ (I trong PID)?
Pål-Kristian Engstad

70 ° C chỉ là một ví dụ, tôi có thể có 6 phạm vi nhiệt độ khác nhau để điều chỉnh. Nói một cách đại khái, tôi đang kiểm soát nhiệt độ bên trong phích bằng cách làm nóng bề mặt bên ngoài.
dùng42875

2

Một cách tiếp cận để điều khiển phi tuyến với bộ điều khiển PID, một cách tiếp cận được sử dụng rộng rãi trong công nghiệp, được gọi là 'lập lịch đạt được'.

Vấn đề điều khiển phi tuyến được chia thành một loạt các vùng đủ tuyến tính và các tham số thích hợp được sử dụng cho từng vùng.


Đó là những gì tôi đang cố gắng đạt được, như có thể được đọc trong câu hỏi của tôi ("Các tham số PID sẽ được tự động chuyển đổi tùy thuộc vào nhiệt độ của quá trình *" "*: Đó là cách lập kế hoạch đạt được hiệu quả.")
user42875
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.