Vui lòng giải thích bằng thuật ngữ của giáo dân về cách thức PID chiếm quán tính trong điều khiển nhiệt độ


9

Tôi đang xây dựng lò phản xạ điều khiển vi xử lý sở thích của riêng tôi. Tôi đang sử dụng rơle (cơ học) để bật hoặc tắt máy sưởi (tức là ống thạch anh). Tôi đã nhận thấy sưởi ấm chậm một vài giây trước khi nhiệt độ bắt đầu tăng.

Hiện tại tôi đang quản lý cấu hình nhiệt độ theo cách thủ công với sự hỗ trợ của Arduino, nó chỉ tắt máy sưởi khi đạt đến nhiệt độ cài đặt. Chẳng hạn, khi tôi cài đặt nhiệt độ, giả sử 120 ° C và máy sưởi dừng lại, nhiệt độ vẫn leo lên 10-20 độ nên có một chút quá mức sau đó một số tiếng chuông, giảm dần.

Tôi đã đọc và xem nhiều ví dụ sử dụng bộ điều khiển PID để kiểm soát nhiệt độ tốt hơn. Nếu không có điều đó, tôi sẽ chỉ dừng các lò sưởi, như 10-20 độ dưới giá trị cài đặt và bật / tắt chúng trong thời gian ngắn sau đó cho đến khi nhiệt độ ổn định xung quanh giá trị cài đặt. Tôi chỉ biết đồng bằng thay đổi theo nhiệt độ nên có thể không đơn giản - tôi biết về tính chất tăng theo cấp số nhân của việc tăng nhiệt độ với giá trị đặt cố định.

Vì vậy, bất kỳ ai cũng có thể giải thích bằng thuật ngữ của giáo dân về cách thức tính toán cho quán tính, ví dụ như phần đóng vai trò và phần đạo hàm đóng vai trò gì trong các thuật ngữ đơn giản, cũng như cách / nếu tôi có thể tìm ra một cách ước tính trực quan về đạo hàm và tích phân số lượng mà không dùng đến các tính toán phức tạp.


Thách thức là sự chậm trễ, như bạn đã thấy. Do đó, chìa khóa để kiểm soát là trong việc kiểm tra các phần tử và dẫn xuất của các phần
tử xoay

@analogsystemsrf Tôi nghĩ rằng tôi đã thực sự hiểu nó. Như bạn có thể đọc, tôi chỉ gặp một số khó khăn khi cố gắng tạo liên kết giữa cái này (lý thuyết) và cái kia (thực hành). Tóm lại: phần nào bù cho sự chậm trễ và làm thế nào ?

1
Sự chậm trễ là khủng khiếp để đối phó. Có lẽ gây ra bởi một cảm biến quá xa lò sưởi. Hoặc một lò sưởi quá lớn, với khối lượng nhiệt quá lớn. Các hệ số tỷ lệ PID có thể thay đổi lớn khi sự sắp xếp vật lý được thay đổi. Giảm độ trễ giúp đạt được các yếu tố kiểm soát PID mang lại các lỗi nhỏ hơn.
glen_geek

Bạn thực sự không thể thực hiện một PID nếu điều khiển duy nhất bạn có là bật và tắt máy sưởi bằng rơle.
mkeith

2
Tôi sử dụng bộ điều khiển nhiệt độ công nghiệp cho công việc. Những cái có đầu ra rơle thường giới hạn thời gian chu kỳ ở mức tối thiểu 5 giây. Những cái có đầu ra DC trạng thái rắn để lái SSR không có hạn chế này. Nếu bạn nghĩ về một ứng dụng có hằng số thời gian dài - chẳng hạn như lò nung thủy tinh hoặc một tấn sô cô la - bạn có thể tưởng tượng rằng chu kỳ nhiệm vụ 30 giây có thể đủ để kiểm soát tốt nó.
Transitor

Câu trả lời:


12

Δt

Biểu thức chính tắc cho điều khiển PID là:

ut=K[et+1Ti0teτdτ+Tddetdt]

KTiTd

  1. ut=Ket+ubub
  2. Điều khiển theo tỷ lệ + Tích phân : Chức năng chính của hành động tích phân là đảm bảo rằng đầu ra của quá trình đồng ý với điểm đặt ở trạng thái ổn định. Với hành động tách rời, một lỗi dương nhỏ sẽ luôn dẫn đến tín hiệu điều khiển tăng và một lỗi âm nhỏ sẽ luôn dẫn đến tín hiệu điều khiển giảm. Điều này đúng cho dù lỗi nhỏ đến đâu.
  3. Điều khiển PID : Thêm điều khiển phái sinh giúp cải thiện độ ổn định của vòng kín. (Sẽ mất một thời gian trước khi thay đổi điều khiển được chú ý trong đầu ra của quá trình. Vì vậy, hệ thống điều khiển sẽ bị trễ, sửa lỗi đó. Kết quả của thuật ngữ phái sinh là một loại dự đoán được thực hiện bằng cách ngoại suy lỗi sử dụng tiếp tuyến với đường cong lỗi, được sử dụng để dự đoán kết quả bị trì hoãn.

Mô tả ở trên, được thêm vào mô tả của riêng bạn về vấn đề trì hoãn của bạn, sẽ gợi ý rằng một thuật ngữ phái sinh sẽ giúp bạn. Nhưng như thường lệ, không có gì là đơn giản như vậy.

Kiểm soát tích phân tỷ lệ là đủ khi động lực quá trình là bậc 1. Thật dễ dàng để tìm ra điều này bằng cách đo phản ứng bước. (Nếu đường cong Nyquist chỉ nằm trong góc phần tư thứ nhất và thứ tư.) Nó cũng có thể áp dụng trong trường hợp quy trình không yêu cầu kiểm soát chặt chẽ, ngay cả khi nó không thuộc bậc 1.

Điều khiển PID là đủ cho các quá trình trong đó các động lực chi phối là bậc 2. Kiểm soát nhiệt độ thường là trường hợp ở đây. Vì vậy, một lần nữa, điều này có lẽ lập luận cho việc thêm kiểm soát phái sinh trong tình huống của bạn.

Tuy nhiên. Tất cả những điều trên chỉ nên được xem xét sau khi bạn đã làm mọi thứ khác có thể để cải thiện một số điều:

  • Sử dụng cảm biến nhiệt độ phản ứng nhanh nhất mà bạn có thể áp dụng một cách hợp lý (khối lượng nhỏ, hình học, v.v.) và áp dụng nó trong tình huống có độ trễ phản hồi ít nhất có thể cho quá trình bạn muốn kiểm soát (gần, không xa).
  • Giảm sự thay đổi độ trễ trong việc thực hiện các phép đo và ban hành quy trình kiểm soát.

Tôi muốn giải thích một chút về điểm cuối cùng này. Hãy tưởng tượng điều khiển quá trình giống như bạn đang đứng ở đâu đó, cố gắng chọc một cây sào tre mỏng manh, rất linh hoạt và lung lay vào một cái lỗ nhà chim xa xôi đang ngồi trên một cái cây phía trên và cách xa bạn. Nếu bạn ở gần và cột tre ngắn, thật dễ dàng. Bạn có thể làm điều đó mọi lúc một cách nhanh chóng và dễ dàng. Nhưng nếu cột tre dài và nhà chim ở xa bạn, thì rất khó để làm. Cây sào cứ lang thang khắp nơi và nó khiến cho việc dự đoán và kiểm soát của bạn trở nên rất khó khăn.

(Nếu nó chưa rõ ràng, chiều dài của cột tre giống như thời gian trễ của vòng lặp.)

Vì vậy, độ trễ có lẽ là NIGHTMARE TUYỆT VỜI của các hệ thống điều khiển. Chậm trễ hơn là rất xấu. Vì vậy, điều rất quan trọng là bạn làm mọi thứ trong khả năng của mình để giảm sự chậm trễ này. Nhưng có một điểm quan trọng hơn.

Bây giờ hãy tưởng tượng tình huống tương tự. Nhưng bây giờ, cột tre cũng thay đổi theo chiều dài. Đôi khi nó ngắn hơn, đôi khi dài hơn và nó thay đổi liên tục mà không có dự đoán từ phía bạn. Bây giờ bạn phải tiếp tục thay đổi lập trường của mình và bạn không bao giờ biết khi nào sự chậm trễ sẽ thay đổi. Đây là tình huống tồn tại nếu PHẦN MỀM của bạn không kiểm soát rất cẩn thận và bằng nắm đấm sắt, thời gian trễ trong việc xử lý giá trị ADC của bạn và tạo đầu ra điều khiển DAC.

Vì vậy, trong khi độ trễ đủ tệ cho hệ thống điều khiển PID. Biến chậm trễ thậm chí còn tồi tệ hơn. Vì vậy, bạn cần chú ý nghiêm ngặt đến thiết kế phần mềm của mình - chú ý rất nghiêm ngặt - để bạn không có câu lệnh IF và mã tính toán có điều kiện hoặc sử dụng bộ định thời một cách cẩu thả, v.v., tất cả đều có thể gây ra các thay đổi đáng kể trong độ trễ giữa mẫu và đầu ra điều khiển.

Bạn cần phải quản lý những điều trên trước khi THÌ lo lắng về việc bạn có cần kiểm soát phái sinh hay không. Điều đầu tiên đầu tiên. Làm sạch hành động của bạn. Sau đó kiểm tra hệ thống để xác định những việc còn lại phải làm (ví dụ sử dụng PI so với PID.)


Tôi đang làm việc trên các hệ thống điều khiển PID sử dụng hệ thống pyrometer cực kỳ chính xác (cũng rất tốn kém cho khách hàng.) Tôi nhận được một cuộc gọi từ một nhà nghiên cứu người Canada làm việc với pyrometer của chúng tôi, nhưng sử dụng bộ điều khiển PID riêng từ một công ty thương mại rất lớn (lớn nhất trong thế giới đang làm những điều này.) Nhà nghiên cứu đang vật lộn với những gợn sóng rơi xuống một bên của một bó gallium arsenide mà anh ta đang kéo ra từ một sự tan chảy. Và muốn tôi giúp tìm ra các biến điều khiển PID đúng. (Trong kéo co, bạn muốn đường kính rất đồng đều.)

Bộ điều khiển anh ta đang sử dụng khá tốt theo bất kỳ biện pháp tiêu chuẩn nào. Nhưng nó đã thêm độ trễ --- và những độ trễ đó cũng khác nhau, vì phần mềm bên trong nó không kiểm soát chặt chẽ độ trễ mà nó đưa vào vòng điều khiển chung.

Vì vậy, điều đầu tiên tôi nói với anh ấy là tôi sẽ thêm điều khiển PID vào phần mềm trong pyrometer của chúng tôi và anh ấy chỉ cần PULL bộ điều khiển bên ngoài từ hệ thống anh ấy đang sử dụng. Tôi đã thêm phần mềm đó trong vòng chưa đầy một tuần và chuyển cho anh ta hệ thống pyro đã được sửa đổi. Tôi không làm bất cứ điều gì lạ mắt với phần mềm PID. Tuy nhiên, tôi đã giữ mức độ biến đổi của mình trong ADC thành DAC dưới một vài micro giây và thắt chặt độ trễ tổng thể cũng khoảng 100 micro giây. Tôi chuyển nó cho anh ta.

Tôi nhận được một cuộc gọi vào thứ Hai tuần sau. Các bó hoa được kéo ra gần như hoàn hảo, không có gợn nào cả.

Nó đơn giản như chỉ cần cắt giảm sự chậm trễ và cũng cắt giảm sự biến đổi trong những sự chậm trễ đó. Không có gì đặc biệt về điều khiển PID cả. Đó là một triển khai vanilla đơn giản mà bất cứ ai sẽ tạo ra lần đầu tiên tìm hiểu về nó.

Điều này cho thấy tầm quan trọng của việc giảm bớt độ trễ và độ biến thiên độ trễ. Chắc chắn, kiểm soát phái sinh có thể cung cấp một số loại ý tưởng "bí mật / tiếp tuyến" của dự đoán. Nhưng không có gì thay thế được việc trì hoãn và giữ mức độ biến đổi đến mức tối thiểu.

Chỉ cần nghĩ về cột tre và vấn đề lỗ nhà chim.


Phần kết luận?

Kiểm soát các hệ thống với độ trễ thời gian chiếm ưu thế là rất khó khăn. Tôi đã đề xuất một số lý do bạn có thểtin rằng một thuật ngữ phái sinh sẽ giúp trì hoãn thời gian. Nhưng có một thỏa thuận chung rằng hành động phái sinh không giúp ích nhiều cho các quá trình có độ trễ thời gian chi phối. Đây là lý do tại sao tôi ngay lập tức đề nghị giúp đỡ nhà nghiên cứu đó bằng cách loại bỏ tất cả các độ trễ mà tôi có thể dễ dàng loại bỏ (ví dụ như hộp PID bên ngoài.) Tôi không tưởng tượng rằng việc triển khai của tôi tốt hơn sản phẩm thương mại. Trên thực tế, tôi biết việc thực hiện của mình sẽ không được hiệu quả lắm. Cripes, tôi đã phải viết nó từ đầu, kiểm tra và cài đặt nó, và gửi ra một đơn vị với phần mềm mới được thêm vào mà nó chưa từng có trước đó và làm tất cả những điều đó trong một tuần. Nhưng tôi cũng biết rằng sự chậm trễ này sẽ giết chết tất cả các cơ hội mà nhà nghiên cứu này có được trong kết quả mà anh ta muốn. Vì vậy, tôi ngay lập tức biết rằng cách tiếp cận tốt nhất là loại bỏ sự chậm trễ và không phát minh ra một số mã PID ma thuật được triển khai "rực rỡ" mà chỉ một thiên tài mới có thể làm theo. Đó là tất cả về sự chậm trễ và sự chậm trễ đó khác nhau như thế nào, trước hết và quan trọng nhất. Phần còn lại là tất cả các ưu tiên thấp hơn nhiều.

Có một số thứ gọi là "bù thời gian chết". Nhưng trong phân tích cuối cùng, bạn cần làm mọi thứ có thể để rút ra sự chậm trễ và rút ra sự biến đổi trong những độ trễ đó. Và sau đó, sau khi bạn đã làm tất cả những gì bạn có thể ở đó, nếu vẫn còn một vấn đề, có khả năng bạn cần các điều khiển tinh vi hơn mức cho phép của PID. Ở đây, tôi có thể tiếp cận với các biến đổi phạm vi (và sử dụng một biến đổi nghịch đảo để phân tích các phản ứng bước và phát triển một mô tả về các phản ứng của hệ thống), có lẽ. Bạn có thể làm rất nhiều với những thứ không thể chạm tới được với PID. Trên thực tế, hầu như các kết quả kỳ diệu, nếu bạn có thể mô hình hóa chức năng phản hồi đủ tốt.

Nhưng trong trường hợp của bạn, tôi tập trung vào việc giảm bớt sự chậm trễ và tính biến đổi của chúng. Tôi nghĩ rằng, nếu có thể, bạn cũng nên cân nhắc việc tránh sử dụng điều khiển bật / tắt đèn đơn giản. Sẽ thật tuyệt nếu bạn có thể kiểm soát cường độ đèn. Nhưng tôi không biết nếu bạn có thể xem xét điều đó.


1
Cảm ơn rất nhiều, jonk, đó là một lời giải thích khá sâu sắc (với tôi). Sự chậm trễ mà tôi đã nói rất rõ, tôi e rằng tôi không thể giảm được vì tôi tin rằng đó là cách mà lò nướng được tạo ra - Tôi đã điều chỉnh một lò nướng đa năng thành một lò phản chiếu như thường thấy trên internet. Tuy nhiên, mặc dù sử dụng ống thạch anh, nhiệt độ tăng bằng một nửa tốc độ cần thiết (không quá 1 ° C mỗi giây thay vì 2-3). Đối với cảm biến tôi đang sử dụng một cặp nhiệt điện K và tôi đã kiểm tra nó có ít hoặc không có quán tính. Một điều tôi nhận thấy là độ trễ nhiệt độ giảm nếu tôi làm nóng lò trước, tức là khoảng 50 ° C.

Bạn đã thử Bộ điều khiển dự đoán Smith để giảm thiểu độ trễ chưa?
Chu

@Chu Chưa, tôi chỉ tìm hiểu về nó ở đây :-D. Hơn nữa, lò nướng của tôi hiện đã được tháo rời một phần và tôi không nhúng tay vào nó.

Tôi đã chấp nhận câu trả lời của bạn trước tiên về mức độ chi tiết và chi tiết của nó. Ngoài ra bởi vì tôi đã sẵn sàng sử dụng bất cứ thứ gì phù hợp, ngay cả khi nó ngụ ý không phải là một PID. Câu trả lời của bạn và Transitor đã cho tôi đủ gợi ý về những việc cần làm tiếp theo. Có thể chỉ có một [câu trả lời được chấp nhận] mặc dù. Dù sao cũng cảm ơn mọi người rất nhiều .

4

Điều này không trực tiếp trả lời câu hỏi của bạn nhưng cung cấp cho bạn một số công cụ để chơi để cải thiện sự hiểu biết của bạn.

Có một trình giả lập Excel đơn giản tại Engineers-Excel mà bạn có thể thấy hữu ích.

nhập mô tả hình ảnh ở đây

Hình 1. Mô hình mô phỏng PID.

Phần khó khăn là mô hình hóa quy trình của bạn - lò nướng - để thiết lập K - đạt được quá trình, Ts - hằng số thời gian đáp ứng và Ls - độ trễ phản hồi. Tôi đề nghị:

  • P1P2
    K=T2T1P2P1
  • P1P2LS
  • TST1T2

Sau đó, bạn có thể chơi với các tham số PID để xem liệu bạn có thể nhận được phản hồi mà bạn mong muốn không.

Lấy một số phỏng đoán hoang dã:

  • P1=40%T1=92°C
  • T 2 = 176 ° CP1=70% và .T2=176°C
  • K=176927040=2.8°C/% .
  • Ls=3s .
  • Phải mất 50 giây để có được 63% quãng đường từ 92 ° C đến 176 ° C nên .TS=50s

nhập mô tả hình ảnh ở đây

Hình 2. Đầu ra giả lập Excel PID.

Bạn thường thoát khỏi thuật ngữ D nếu quá trình của bạn không có khả năng bị xáo trộn, chẳng hạn như thay đổi đột ngột điểm đặt hoặc thay đổi đột ngột về tải nhiệt. Điều đó đơn giản hóa mọi thứ xuống một thiết lập điều khiển PI.

Để sưởi ấm, bạn có thể có được công suất tỷ lệ bằng cách bật và tắt nguồn đủ nhanh tương ứng với thời gian đáp ứng nhiệt.nhập mô tả hình ảnh ở đây

Hình 3. Chu kỳ nhiệm vụ biến đổi cho điều khiển AC của lò sưởi.


Cảm ơn thông tin kỹ thuật dễ hiểu. Chỉ là một lưu ý phụ: vì tôi sử dụng rơle mà tôi phát hiện ra rẻ hơn SSR (nguồn: Digi-Key), tôi chỉ có thể bật hoặc tắt hoàn toàn máy sưởi, không thể điều chỉnh từ 0% đến 100%. Ngoài ra, tôi không thể sử dụng phương pháp cắt ngang để tắt máy sưởi nhưng tôi đoán đó là điều ít quan trọng nhất. Dù sao cũng cảm ơn rất nhiều cho sự hiểu biết của bạn.

2
Hình 3 của tôi hiển thị điều khiển tắt và đó là những gì bạn sẽ làm và nó ổn. Bạn sẽ được tính trung bình ở bất cứ nơi nào bạn muốn trong khoảng từ 0 đến 100%. Thực tế, đó là một điều chế độ rộng xung chậm (PWM) với AC. Bạn sẽ đánh đổi việc giữ thời gian chu kỳ ngắn một cách hợp lý với tuổi thọ rơle. Zero-cross là tốt ở chỗ nó làm giảm tiếng ồn điện. Nếu nó không phải là một vấn đề thì nó không phải là một vấn đề!
Transitor

2

Trong PID có 3 phần: Tỷ lệ, Tích phân và Đạo hàm.

Tỷ lệ là bộ điều khiển đơn giản nhất. Nó khuếch đại lỗi giữa tín hiệu mong muốn và thực tế. Ví dụ: nếu nhiệt độ mong muốn là 100C, thực tế là 80C, thì đầu ra = 20 * Kp. Bao nhiêu đầu ra được đưa ra được điều chỉnh bởi Kp.

Nếu bạn điều chỉnh Kp quá thấp, không có đủ nhiệt và nó có thể không bao giờ đạt đến nhiệt độ mong muốn.

Nếu bạn điều chỉnh Kp quá cao, nó có thể tăng quá nhanh. Quán tính có thể dẫn đến quá mức và đổ chuông. Đó là bởi vì có một độ trễ giữa việc cung cấp một công suất đầu ra nhất định và đo lường hiệu quả của nó.

Phần không thể thiếu là cần thiết nếu bạn muốn độ lệch tĩnh thấp. Lưu ý rằng để bộ điều khiển P cung cấp đầu ra, nó phải có lỗi để tạo bất kỳ giá trị đầu ra nào. Nếu bạn muốn lỗi rất gần với 0, bạn cần phần I tiếp quản từ P. Tuy nhiên, điều này có thể mất một chút thời gian.

Phần phái sinh có lẽ là thú vị nhất cho vấn đề quán tính của bạn. Đạo hàm nhìn vào tốc độ thay đổi của lỗi. Nếu có một tỷ lệ thay đổi lớn trong lỗi, điều đó có nghĩa là có quán tính cao. Sử dụng hệ số điều chỉnh Kd, bạn có thể chắc chắn rằng đầu ra sẽ điều tiết ngược thời gian. Điều này là để quán tính chậm lại trước khi nó đạt đến giá trị đầu ra cuối cùng.

Điều này cho phép bạn sử dụng hệ số P (er) cao để đáp ứng tích cực đầy đủ, trong khi sử dụng D để ngăn chặn tình trạng vượt mức. Phần I được sử dụng để tạo ra lỗi tĩnh cuối cùng sẽ giải quyết thành 0.


Trên thực tế, về lâu dài, thuật ngữ P giảm xuống 0, vì thuật ngữ I tích hợp chính xác với điểm đặt, để lại chênh lệch đầu ra ở mức 0 và P lần 0 là 0.
WhatRoughBeast
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.