Làm thế nào để học điều khiển PID?


26

Tôi muốn tìm hiểu điều khiển PID (Tỷ lệ thuận tích hợp trực tiếp tích hợp) chủ yếu cho nhiệt độ.

Tôi muốn học tốt nhất là thông qua một dự án dễ làm.

Bạn có thể vui lòng giới thiệu một cái gì đó sẽ mất một vài tuần để tìm hiểu?

Chỉnh sửa: Tôi muốn kiểm soát nhiệt độ của một bể nước. Việc sưởi ấm được thực hiện bởi một điện trở.


Tôi đã cố gắng để có được một dự án cơ bản mà ai đó có thể học hỏi, tôi nghĩ toán học cũng thú vị. Mọi người dành cuộc sống của họ cho nó.
Kortuk

Bạn muốn kiểm soát nhiệt độ của cái gì?
J. Polfer

3
Vì bạn không thể loại bỏ nhiệt, bạn cần đảm bảo rằng hệ thống của bạn vẫn mát ngay cả khi áp dụng dòng điện nhỏ hoặc pid của bạn có thể có vấn đề về quy định. Tôi có thể sẽ thêm một cái quạt hoặc băng khi bạn làm thí nghiệm. Bạn muốn nó đi lên khi bạn đầy đủ và đi xuống khi bạn nghỉ. Nếu đây là trường hợp thông tin phản hồi sẽ quy định cho bạn.
Rex Logan

1
Điều đó được xác định bởi nhiệt độ của bể nước được yêu cầu. Nếu anh ta muốn 80C thì temp môi trường sẽ là đủ, nếu anh ta muốn 25C thì anh ta sẽ gặp vấn đề. Bộ điều khiển PID khi được điều chỉnh đúng sẽ có thể xử lý mất nhiệt độ chậm.
Kortuk

Câu trả lời:


27

Kiểm soát nhiệt độ (phụ thuộc vào môi trường của bạn) không quá khó. Đó là dự án đầu tiên của tôi khi tôi bắt đầu. Xin lỗi, nếu tôi nhắc lại những điều bạn đã biết.

Tôi giả sử bạn đã có cách điều khiển hệ thống (ví dụ: bộ gia nhiệt hoặc bộ làm mát) và cách nhận phản hồi từ hệ thống (cảm biến nhiệt độ như nhiệt điện trở hoặc thứ gì đó). Bạn sẽ cần cả hai để thực hiện một vòng lặp PID, đây là một loại điều khiển vòng kín. Tất cả những gì bạn thực sự cần làm sau đó là viết một chút phần mềm để gửi lệnh điều khiển, đọc phản hồi và đưa ra quyết định dựa trên phản hồi đó.

Tôi sẽ bắt đầu bằng cách đọc PID mà không cần bằng tiến sĩ . Đó là bài báo tôi đã sử dụng khi lần đầu tiên phải điều chỉnh nhiệt độ trong một thí nghiệm khoa học. Nó cung cấp một số hình ảnh dễ hiểu và mã mẫu đẹp (một vòng lặp cơ bản mà bạn có thể điều chỉnh chỉ cần 30 dòng) giải thích cách kiểm soát 'nhà máy' của bạn - trong trường hợp này, điều bạn muốn kiểm soát nhiệt độ của .

Ý chính của điều khiển PID - Sự khác biệt-Tích phân-Tích phân - là sử dụng hiệu suất tức thời, quá khứ và dự đoán trong tương lai (tương ứng) của hệ thống để xác định cách điều khiển hệ thống tại một thời điểm nhất định để đạt đến điểm đặt đã chỉ định. Trong nhiều trường hợp, bạn sẽ phải điều chỉnh các yếu tố tăng ích của thuật toán để có được hiệu suất mong muốn - nhiệt độ sẽ tăng nhanh bao nhiêu, bạn muốn tránh tình trạng vượt mức, v.v. Thậm chí bạn có thể thấy mình không cần chênh lệch hoặc thậm chí kiểm soát không thể thiếu để đến nơi bạn muốn!


không thể nhớ nơi liên kết đến PID mà không có bằng tiến sĩ. Tôi đã quên tên của nó và không thể nhớ những gì tôi đọc từ lâu. +1 thưa ông.
Kortuk

3
PID mà không có bằng tiến sĩ là một bài viết tuyệt vời! Tuy nhiên, vi điều khiển 8 bit của tôi không thích số học dấu phẩy động đó ..
abdullah kahraman

Chỉ cần xuất sắc! PID w / o PHD là hoàn hảo. Tôi có PHD, nhưng tôi đã cố gắng hết sức để tránh xa lý thuyết kiểm soát :) Ngoài ra, tôi thích người theo dõi dòng mini.

@Bistromath Vui lòng không thêm "cảm ơn" làm câu trả lời. Khi bạn có đủ danh tiếng , bạn sẽ có thể bỏ phiếu cho các câu hỏi và câu trả lời mà bạn thấy hữu ích.
m.Alin

10

Vâng. Nhận một nhiệt điện trở và một điện trở. Chọn một điện trở có thể kéo dòng điện lớn (> 100mA).

Sử dụng dán nhiệt giữa chúng và băng chúng lại với nhau bằng băng keo. Nối mạch nhiệt điện trở vào một vi điều khiển thông qua ADC. Sử dụng một bóng bán dẫn để điều khiển điện trở và điều khiển điều này với một PWM.

Phát triển một PID cho phép bạn điều khiển nhiệt độ bằng quay số và thực hành tạo ra một PID vượt qua và đổ chuông nhiệt độ. Làm cho nó quá ẩm và mất thời gian để đạt được nhiệt độ, và cố gắng làm cho nó bị ẩm nghiêm trọng và đến được nhiệt độ ở tốc độ tối đa.

Hãy cho tôi biết nếu chi tiết hơn sẽ giúp.

Sau khi bạn thực hiện điều này làm giảm độ dẫn nhiệt của chúng, hãy thử thêm một giai đoạn sẽ trì hoãn sự lan truyền nhiệt độ và cố gắng làm cho nó kiểm soát tốt.

Điều này cũng có thể được thực hiện với một đèn LED và bóng bán dẫn hình ảnh.


Đây là những gợi ý tốt để cố gắng hiểu cách hành xử của các vòng lặp PID.
J. Polfer



1

Chỉ cần thêm giá trị 2 xu của tôi vào các phản hồi tốt đã có.

Việc sử dụng thực tế của PID để kiểm soát nhiệt độ thường có các hành vi phi tuyến tính nếu việc phát hiện lỗi nhiệt độ bị hạn chế (đầu ra của op amp đạt độ bão hòa) và nguồn điện có sẵn để kiểm soát nhiệt độ được cố định.

Hãy xem xét một bộ điều khiển bật tắt. Hệ thống sẽ có độ trễ kể từ thời điểm áp dụng nhiệt và phát hiện sự thay đổi nhiệt độ. Không có vòng lặp PID, độ trễ này tạo ra một vòng lặp không ổn định dao động và nếu có bất kỳ hiện tượng hystereis nào, chu kỳ công suất có nhiễu (On-Off-On) Tuy nhiên, mức tăng rất cao (như bộ so sánh) dẫn đến sai số nhiệt độ dư nhỏ. Độ trễ ảnh hưởng đến thời gian chu kỳ và vượt mức.

Nếu có sự xáo trộn bên ngoài như đèn bể có thể thêm nhiệt đáng kể, thì bộ điều chỉnh nhiệt phải đáp ứng ngay khi phát hiện sự tăng nhiệt độ từ nhiệt của đèn. Nếu đèn của bạn không phải là một phần của vòng lặp PID, thì nó không thể "lường trước" hiệu ứng (tăng phản hồi phái sinh) Rõ ràng, nếu đèn tạo ra quá nhiều nhiệt thì nhiệt độ không thể được điều chỉnh và sẽ vượt quá điểm đặt.

Điều khiển nhiệt của bạn với điều khiển PID có thể phải có đầu vào cho trạng thái công tắc đèn và điều khiển đầu ra để điều chỉnh công suất ánh sáng như một nguồn nhiệt thứ cấp, một lần nữa nếu quá nhiều.

Xác định các yêu cầu của bạn đối với lỗi kiểm soát tuyệt đối,% vượt quá và thời gian phản hồi là một số đầu vào thiết kế cần thiết để tối ưu hóa vòng lặp PID của bạn. Điều quan trọng không kém là xác định các nhiễu loạn hệ thống của bạn và bao gồm chúng trong hệ thống kiểm soát của bạn cho đầu vào và đầu ra. ví dụ. Nhiệt năng của đèn và sự lựa chọn của cảm biến (s) và vị trí.

Ngoài kinh nghiệm.

Trải nghiệm đầu tiên của tôi khi sử dụng máy nước nóng là vào thời kỳ dưới nước vào những năm 70 khi tôi còn là sinh viên, tôi đã thiết kế bộ điều khiển nhiệt độ của riêng mình bằng cách sử dụng nhiệt điện trở, mạch điều khiển và công tắc triac xuyên không cho máy sưởi. Tôi bắt đầu với điều khiển so sánh và thấy một phản ứng bất thường từ việc nhảy lên giường. Vì vậy, tôi đã thêm điều khiển tỷ lệ bằng cách sử dụng nhiễu chưa được lọc trên cảm biến để cung cấp cho tôi "chu kỳ bị thiếu" theo tỷ lệ khi triac ZCS được BẬT gần ngưỡng. Tôi có thể điều chỉnh nhiệt độ trong vòng 0,1'C Phản ứng nhẹ nhàng hơn nhưng kết quả vẫn như vậy.

Tôi tìm thấy lỗi lớn nhất là ở vị trí và những thay đổi nhỏ về áp lực nước trên cảm biến. (Lúc đó tôi rất nhỏ, chỉ 185 lbs nhưng trên một chiếc giường nước 2000 lb <10% thay đổi áp lực nước là rất nhỏ)

Khả năng chịu nhiệt giữa cảm biến và đáy nước tạo ra một lỗi bù nhỏ tùy thuộc vào áp lực nước so với cảm biến. Trong kịch bản bể nước của bạn, lỗi cảm biến có thể là do kích thước của bể và khoảng cách giữa cảm biến và lò sưởi hoặc cảm biến và bề mặt xa nhất của nước hoặc tốc độ dòng nước hoặc bong bóng giữa cảm biến và lò sưởi.

Trong trường hợp của tôi bất cứ khi nào tôi nhảy xuống giường, điện trở nhiệt giảm nhẹ do áp suất tăng thêm và đèn điện sẽ phát sáng mờ trong một hoặc hai phút cho đến khi nhiệt độ giảm một phần mười độ hoặc để phù hợp với sự gia tăng nhiệt độ rõ ràng từ trọng lượng và áp suất tăng thêm các bồn nước chống lại nhiệt.

(Bài học rút ra. Đừng bỏ qua các nguồn gây nhiễu và ảnh hưởng của chúng đối với lỗi Hệ thống Kiểm soát)

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.