Bộ điều khiển PID

Một bộ điều khiển vi tích phân tỉ lệ (bộ điều khiển PID- Proportional Integral Derivative) là một cơ chế phản hồi vòng điều khiển (bộ điều khiển) tổng quát được sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp – bộ điều khiển PID là bộ điều khiển được sử dụng nhiều nhất trong các bộ điều khiển phản hồi. Bộ điều khiển PID sẽ tính toán giá trị "sai số" là hiệu số giữa giá trị đo thông số biến đổi và giá trị đặt mong muốn. Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách điều chỉnh giá trị điều khiển đầu vào. Trong trường hợp không có kiến thức cơ bản (mô hình toán học) về hệ thống điều khiển thì bộ điều khiển PID là sẽ bộ điều khiển tốt nhất. Tuy nhiên, để đạt được kết quả tốt nhất, các thông số PID sử dụng trong tính toán phải điều chỉnh theo tính chất của hệ thống-trong khi kiểu điều khiển là giống nhau, các thông số phải phụ thuộc vào đặc thù của hệ thống.
Giải thuật tính toán bộ điều khiển PID bao gồm 3 thông số riêng biệt, do đó đôi khi nó còn được gọi là điều khiển ba khâu: các giá trị tỉ lệ, tích phân và đạo hàm, viết tắt là P, I, và D. Giá trị tỉ lệ xác định tác động của sai số hiện tại, giá trị tích phân xác định tác động của tổng các sai số quá khứ, và giá trị vi phân xác định tác động của tốc độ biến đổi sai số. Tổng chập của ba tác động này dùng để điều chỉnh quá trình thông qua một phần tử điều khiển như vị trí của van điều khiển hay bộ nguồn của phần tử gia nhiệt. Nhờ vậy, những giá trị này có thể làm sáng tỏ về quan hệ thời gian: P phụ thuộc vào sai số hiện tại, I phụ thuộc vào tích lũy các sai số quá khứ, và D dự đoán các sai số tương lai, dựa vào tốc độ thay đổi hiện tại.
Bằng cách điều chỉnh 3 hằng số trong giải thuật của bộ điều khiển PID, bộ điều khiển có thể dùng trong những thiết kế có yêu cầu đặc biệt. Đáp ứng của bộ điều khiển có thể được mô tả dưới dạng độ nhạy sai số của bộ điều khiển, giá trị mà bộ điều khiển vọt lố điểm đặt và giá trị dao động của hệ thống. Lưu ý là công dụng của giải thuật PID trong điều khiển không đảm bảo tính tối ưu hoặc ổn định cho hệ thống.
Vài ứng dụng có thể yêu cầu chỉ sử dụng một hoặc hai khâu tùy theo hệ thống. Điều này đạt được bằng cách thiết đặt đội lợi của các đầu ra không mong muốn về 0. Một bộ điều khiển PID sẽ được gọi là bộ điều khiển PI, PD, P hoặc I nếu vắng mặt các tác động bị khuyết. Bộ điều khiển PI khá phổ biến, do đáp ứng vi phân khá nhạy đối với các nhiễu đo lường, trái lại nếu thiếu giá trị tích phân có thể khiến hệ thống không đạt được giá trị mong muốn.
Chú ý: Do sự đa dạng của lĩnh vực lý thuyết và ứng dụng điều khiển, nhiều qui ước đặt tên cho các biến có liên quan cùng được sử dụng.

Droop(độ trượt)

Nếu không có nhiễu, điều khiển tỉ lệ thuần túy sẽ không xác lập tại giá trị mong muốn của nó, nhưng nó vẫn duy trì một (độ trượt) sai số ổn định trạng thái, là một hàm của độ lợi tỉ lệ và độ lợi quá trình. Đặc biệt, nếu độ lợi quá trình-trong khoảng thời gian dài bị trôi do thiếu điều khiển, như việc làm mát một lò nung tới nhiệt độ phòng-được ký hiệu G và giả sử sai số xấp xỉ là hằng số, khi đó droop-độ trượt xảy ra khi độ lợi không đổi này bằng thừa số tỉ lệ của đầu ra,  với sai số là tuyến tính,  do đó  Khi thừa số tỉ lệ, đẩy vào thông số tới giá trị đặt, được bù chính xác bởi độ lợi quá trình, nó sẽ kéo thông số ra khỏi giá trị đặt. Nếu độ lợi quá trình giảm, khi làm lạnh, thì trạng thái dừng sẽ nằm dưới điểm đặt, ta gọi là "droop-độ trượt".
Chỉ các thành phần dịch chuyển (trung bình dài hạn, thành phần tần số không) của độ lợi quá trình mới tác động tới độ trượt-các dao động đều hoặc ngẫu nhiên trên hoặc dưới thành phần dịch chuyển sẽ bị triệt tiêu. Độ lợi quá trình có thể thay đổi theo thời gian hoặc theo các thay đổi bên ngoài, ví dụ như nếu nhiệt độ phòng thay đổi, việc làm lạnh sẽ nhanh hơn hoặc chậm hơn.
Độ trượt tỉ lệ thuận với độ lợi quá trình và tỉ lệ nghịch với độ lợi tỉ lệ, và là một khiếm khuyết không thể tránh được của điều khiển tỉ lệ thuần túy. Độ trượt có thể được giảm bớt bằng cách thêm một thừa số độ lệch (cho điểm đặt trên giá trị mong muốn thực tế), hoặc sửa đổi bằng cách thêm một khâu tích phân (trong bộ điều khiển PI hoặc PID), sẽ tính toán độ lệch thêm vào một cách hữu hiệu.
Bất chấp độ trượt, cả lý thuyết điều chỉnh lẫn thực tế công nghiệp chỉ ra rằng khâu tỉ lệ là cần thiết trong việc tham gia vào quá trình điều khiển.

Điều chỉnh vòng lặp

Điều chỉnh một vòng điều khiển là điều chỉnh các thông số điều khiển của nó (độ lợi/dải tỉ lệ, độ lợi tích phân/reset, độ lợi vi phân/tốc độ) tới giá trị đáp ứng điều khiển tối ưu. Độ ổn định (dao động biên) là một yêu cầu căn bản, nhưng ngoài ra, các hệ thống khác nhau, có những hành vi khác nhau, những ứng dụng khác nhau có những yêu cầu khác nhau, và vài yêu cầu lại mâu thuẫn với nhau. Hơn nữa, vài quá trình có một mức độ phi tuyến nào đấy khiến các thông số làm việc tốt ở điều kiện đầy tải sẽ không làm việc khi quá trình khởi động từ không tải; điều này có thể khắc phục bằng chương trình độ lợi (sử dụng các thông số khác nhau cho những khu vực hoạt động khác nhau). Các bộ điều khiển PID thường cung cấp các điều khiển có thể chấp nhận được thậm chí không cần điều chỉnh, nhưng kết quả nói chung có thể được cải thiện bằng cách điều chỉnh kỹ lưỡng, và kết quả có thể không chấp nhận được nếu điều chỉnh kém.
Điều chỉnh PID là một bài toán khó, ngay cả khi chỉ có 3 thông số và về nguyên tắc là dễ miêu tả, bởi vì nó phải thỏa mãn các tiêu chuẩn phức tạp nằm trong Những hạn chế của điều khiển PID. Vì vậy có nhiều phương pháp khác nhau để điều chỉnh vòng lặp, và các kỹ thuật phức tạp hơn là đề tài cho nhiều phát minh sáng chế; phần này miêu tả vài phương pháp thủ công truyền thống để điều chỉnh vòng lặp.

Độ ổn định

Nếu các thông số của bộ điều khiển PID (độ lợi của khâu tỉ lệ, tích phân và vi phân) được chọn sai, đầu vào quá trình điều khiển có thể mất ổn định, vì các khác biệt đầu ra của nó, có hoặc không có dao động, và được giới hạn chỉ bởi sự bảo hòa hoặc đứt gãy cơ khí. Sự không ổn định được gây ra bởi sự dư thừa độ lợi, nhất là khi xuất hiện độ trễ lớn.
Nói chung, độ ổn định của đáp ứng (ngược với độ bất định) phải thỏa mãn và quá trình phải không được dao động vì bất kỳ sự kết hợp nào giữa các điều khiện quá trình và điểm đặt, mặc dù đôi khi ổn định biên có thể được chấp nhận hoặc yêu cầu.

Tối ưu hóa hành vi

Tối ưu hóa hành vi trong thay đổi quá trình hoặc thay đổi điểm đặt khác nhau tùy thuộc vào ứng dụng.
Hai yêu cầu cơ bản là ổn định (triệt tiêu nhiễu-ổn định tại một điểm đặt cho trước) và tự hiệu chỉnh lệnh (thực hiện các thay đổi điểm đặt)-hai yêu cầu đó tùy thuộc vào việc các biến điều khiển theo dõi giá trị mong muốn có tốt hay không. Các tiêu chuẩn đặc biệt về tự hiệu chỉnh lệnh bào gồm thời gian khởi động và thời gian xác lập. Một vài quá trình phải ngăn không cho phép các biến quá trình vọt lố quá điểm đặt nếu, thí dụ, điều này có thể mất an toàn. Các quá trình khác phải tối thiểu hóa năng lượng tiêu hao khi tiến tới một điểm đặt mới.

Phần mềm điều chỉnh PID

Hầu hết các ứng dụng công nghiệp hiện đại không còn điều chỉnh vòng điều khiển sử dụng các phương pháp tính toán thủ công như trên nữa. Thay vào đó, phần mềm điều chỉnh PID và tối ưu hóa vòng lặp được dùng để đảm báo kết quả chắc chắn. Những gói phần mềm này sẽ tập hợp dữ liệu, phát triển các mô hình xử lý, và đề xuất phương pháp điều chỉnh tối ưu. Vài gói phần mềm thậm chí còn có thể phát triển việc điều chỉnh bằng cách thu thập dữ liệu từ các thay đổi tham khảo.
Điều chỉnh PID bằng toán học tạo ra một xung trong hệ thống, và sau đó sử dụng đáp ứng tần số của hệ thống điều khiển để thiết kế các giá trị của vòng điều khiển PID. Trong những vòng lặp có thời gian đáp ứng kéo dài nhiều phút, nên chọn điều chỉnh bằng toán học, bởi vì việc thử sai thực tế có thể kéo dài nhiều ngày để tìm điểm ổn định cho vòng lặp. Giá trị tối ưu thì khó tìm hơn. Vài bộ điều khiển số còn có chức năng tự điều chỉnh, trong đó những thay đổi rất nhỏ của điểm đặt cũng được gửi tới quá trình, cho phép bộ điều khiển tự mình tính toán giá trị điều chỉnh tối ưu.
Các dạng điều chỉnh khác cũng được dùng tùy theo tiêu chuẩn đánh giá kết quả khác nhau. Nhiều phát minh hiện nay đã được nhúng sẵn vào trong các module phần mềm và phần cứng để điều chỉnh PID.

Lịch sử

Các bộ điều khiển PID trong các thiết kế bộ điều tốc xuất hiện từ những năm 1890. Các bộ điều khiển PID sau đó được phát triển trong hệ thống lái tàu (thủy) tự động. Một trong những ví dụ sớm nhất của bộ điều khiển kiểu PID được phát triển bởi Elmer Sperry năm 1911, trong khi tác phẩm phân tích lý thuyết đầu tiên về bộ điều khiển PID được kỹ sư người Mỹ gốc Nga Nicolas Minorsky xuất bản, vào năm Minorsky 1922. Minorsky đã thiết kế các hệ thống lái tàu tự động cho Hải quân Mỹ, và dựa trên các phân tích của ông khi quan sát người lái tàu, ông nhận thấy rằng người lái tàu điều khiển con tàu không chỉ dựa trên sai số hiện tại, mà còn dựa vào sai số quá khứ và tốc độ thay đổi hiện tại; điều này sau đó đã được ông toán học hóa. Hải quân Mỹ cuối cùng đã không chấp nhận hệ thống, do sự phản đối từ nhân viên. Nghiên cứu tương tự được tiến hành và xuất bản bởi nhiều người khác vào thập niên 1930.
Những bộ điều khiển đầu tiên là khí nén, thủy lực, hoặc cơ khí, các hệ thống điện phát triển sau Chiến tranh Thế giới thứ II.

Công trình của Minorsky

Về chi tiết,công trình của Minorsky xử lý các vấn đề sau. Mục đích của ông là độ ổn định, không phải điều khiển tổng quát, giúp đơn giản hóa đáng kể vấn để. Trong khi điều khiển tỉ lệ cung cấp độ ổn định chống lại các biến động nhỏ, nó không đủ để giải quyết nhiễu lớn, đặc biệt là do gió mạnh (gây ra bởi droop), nên yêu cầu phải thêm khâu tích phân. Cuối cùng, khâu vi phân được thêm vào để cải thiện điều khiển. Các thử nghiệm đã được tiến hành trên tàu USS New Mexico, với bộ điều khiển điều chỉnh vận tốc gốc (không phải gốc) của bánh lái. Điều khiển PI tạo ra độ lệch liên tục (sai số góc) trong khoảng ±2°, trong khi thêm D tạo ra độ nghiêng trong khoảng ±1/6°, tốt hơn hầu hết người lái tàu có thể làm.

Các hạn chế của điều khiển PID

Trong khi các bộ điều khiển PID có thể được dùng cho nhiều bài toán điều khiển, và thường đạt kết quả như ý mà không cần bất kỳ cải tiến hay thậm chí điều chỉnh nào, chúng có thể rất yếu trong vài ứng dụng, và thường không cho ta điều khiển tối ưu. Khó khăn cơ bản của điều khiển PID là nó là một hệ thống phản hồi, với các thông số không đổi, và không có tin tức trực tiếp về quá trình, và do đó tất cả kết quả là phản ứng và thỏa hiệp - trong khi điều khiển PID là bộ điều khiển tốt nhất mà không cần mô hình điều khiển, kết quả tốt hơn có thể đạt được bằng cách kết hợp với một mô hình điều khiển.
Cải tiến quan trọng nhất là kết hợp điều khiển nuôi-tiến với kiến thức về hệ thống, và sử dụng PID chỉ để điều khiển sai số. Thay vào đó, PID có thể được cải tiến bằng nhiều cách, như thay đổi các thông số (hoặc là lập chương trình độ lợi trong nhiều trường hợp sử dụng khác nhau hoặc cải tiến thích nghi chúng dựa trên kết quả), cải tiến đo lường (tốc độ lấy mẫu cao hơn, và chính xác, và lọc thông thấp nếu cần thiết) hoặc nối tầng nhiều bộ điều khiển PID với nhau.
Các bộ điều khiển PID, khi sử dụng độc lập, có thể cho kết quả xấu khi độ lợi vòng PID buộc phải giảm vì thế hệ điều khiển không xảy ra vọt lố, dao động hoặc rung quanh giá trị điểm đặt điều khiển. Chúng cũng khó khăn khi xuất hiện phi tuyến, có thể cân bằng sự điều tiết chống lại đáp ứng thời gian, không phản ứng lại việc thay đổi hành vi điều khiển (do đó, quá trình thay đổi sau khi nó được hâm nóng), và bị trễ trong đáp ứng với các nhiễu lớn.

Tuyến tính

Một vấn đề khác xảy ra đối với các bộ điều khiển PID đó là chúng tuyến tính, và đối xứng từng phần. Do đó, kết quả của các bộ điều khiển PID trong các hệ phi tuyến (nhử hệ điều khiển HVAC) thì khác nhau. Thí dụ, trong điều khiển nhiệt độ, một trường hợp sử dụng phổ biến là nung nóng chủ động (qua một bộ nung) nhưng làm lạnh bị động (ngưng làm nóng, nhưng không làm lạnh) vì vậy chỉ có thể loại trừ quá độ một cách chậm chạp - không thể ép xuống cưỡng bức. Trong trường hợp này bộ điều khiển PID có thể được chuyển sang giảm lố, để ngăn cản hoặc giảm sự vọt lố, mặc dù điều này làm giảm hiệu suất (nó tăng thời gian xác lập)..

Nhiễu trong khâu vi phân

Một vấn đề với khâu Vi phân là một lượng nhỏ đại lượng đo lường hoặc xử lý nhiễu có thể gây ra các thay đổi lớn ở đầu ra. Thường sẽ rất cần thiết khi lọc các đại lượng đo lường với một bộ lọc thông thấp để loại trừ các thành phần nhiễu sóng hài bậc cao. Tuy nhiên, lọc thông thấp và điều khiển vi phân có thể loại trừ lẫn nhau, vì vậy giảm nhiễu bằng các linh kiện là lựa chọn tốt hơn. Như vậy, một bộ lọc trung vị phi tuyến có thể được sử dụng, sẽ giúp cải tiến hiệu suất lọc và kết quả thực tế . Trong vài trường hợp, dãi vi phân có thể bị 'tắt' trong nhiều hệ thống với một chút suy giảm điều khiển. Khi đó bộ điều khiển PID sẽ giống như một bộ điều khiển PI.

Nuôi tiến

Kết quả của hệ điều khiển có thể được cải thiện bằng cách liên kết điều khiển phản hồi (hay vòng kín) của một bộ điều khiển PID với điều khiển nuôi tiến (hay vòng hở). Thông tin về hệ thống (như gia tốc và quán tín mong muốn) có thể được cung cấp về phía trước và liên kết với đầu ra PID để cải thiện toàn bộ kết quả hệ thống. Giá trị nuôi tiến một mình có thể thường cung cấp phần chính trong đầu ra bộ điều khiển. Bộ điều khiển PID có thể được sử dụng chính cho bất kỳ hiệu số hoặc sai số duy trì nào giữa điểm đặt (SP) và giá trị thực của biến quá trình (PV). Do đầu ra nuôi tiến không bị tác động bởi tín hiệu phản hồi của quá trình, nó có thể không bao giờ làm cho hệ điều khiển dao động, do đó cải thiện đáp ứng và độ ổn định của hệ thống.
Lấy thí dụ, trong hầu hết hệ thống điều khiển chuyển động, để tăng tốc một tải cơ khí được điều khiển, cần phải tăng thêm lực hoặc momen từ nguồn động lực chính, động cơ, hay bộ truyền động. Nếu một bộ điều khiển PID điều khiển vận tốc được sử dụng để điều khiển tốc độ của tải và điều khiển lực và momen trong nguồn động lực chính, thì nó cũng có lợi khi điều khiển gia tốc tức thời theo mong muốn theo tải, tỉ lệ, theo giá trị thích hợp và cộng nó với đầu ra của bộ điều khiển PID tốc độ. Có nghĩa là bất kỳ khi nào tải được tăng tốc hoặc giảm tốc, một lực tương xứng được yêu cầu từ nguồn động lực chính mà không quan tâm đến giá trị phản hồi. Vòng điều khiển PID trong trường hợp này sử dụng thông tin phản hồi để tác động tăng hay giảm hỗn hợp đầu ra để giảm hiệu số còn lại giữa điểu đặt quá trình và giá trị phản hồi. Cùng với nhau, bộ điều khiển nuôi tiến vòng hở và bộ điều khiển PID vòng kín có thể tạo ra một hệ thống điều khiển nhạy hơn, ổn định hơn và tin cậy hơn.

Các cải tiến khác

Bên cạnh nuôi tiến, bộ điều khiển PID còn được tăng cường bằng các phương pháp khác như lập chương trình chỉnh độ lợi PID (thay đổi các thông số trong các điều kiện làm việc khác nhau), logic mờ hoặc logic động từ máy tính hóa 

. Các sản phẩm ứng dụng thực tế khác có thể được phát triển lên bằng cách kết nối các thiết bị với bộ điều khiển. Một tốc độ lấy mẫu đủ cao, việc đo lường chính xác, là các yêu cầu cần có để đạt được kết quả điều khiển như ý.

Điều khiển ghép tầng

Một ưu điểm đặc trưng của các bộ điều khiển PID là hai bộ điều khiển PID có thể được sử dụng cùng nhau để đạt được kết quả động học tốt hơn. Đây được gọi là điều khiển PID ghép tầng. Trong điều khiển ghép tầng, có hai bộ PID được sắp xếp với một bộ PID điều khiển điểm đặt của bộ kia. Một bộ điều khiển làm việc như bộ điều khiển vòng ngoài, nó sẽ điều khiển các thông số vật lý chính, như mức chất lỏng hoặc vận tốc. Bộ điều khiển kia lầm việc như bộ điều khiển vòng trong, nó sẽ đọc đầu ra của bộ điều khiển vòng ngoài như là điểm đặt, thường các thông số điều khiển,tốc độ chảy hoặc gia tốc thay đổi nhanh hơn. Ta có thể chứng minh bằng toán học rằng tần số làm việc của bộ điều khiển được tăng và hằng số thời gian của đối tượng được giảm bởi việc sử dụng bộ điều khiển PID ghép tầng..

Thực thi vật lý của điều khiển PID

Thời kỳ đầu của điểu khiển quá trình tự động bộ điều khiển PID đã được thực thi bởi một thiết bị cơ khí. Các bộ điều khiển cơ khí này sử dụng một đòn bẩy, lò xo và một khối chất và thường được kích thích bằng khí nén. Những bộ điều khiển bằng khí này đã từng là tiêu chuẩn trong công nghiệp.
Các bộ điều khiển điện tử tương tự có thể được làm từ một bộ khuếch đại dùng ống chân không hoặc từ transistor bán dẫn, một tụ điện và một điện trở. Các vòng điều khiển PID điện tử tương tự thường được tìm thấy bên trong các hệ thống điện tử phức tạp hơn, thí dụ, việc định vị đầu từ của một ổ dĩa, việc điều hòa công suất của một bộ nguồn, hoặc thậm chí trong mạch phát hiện chuyển động của một máy đo địa chấn hiện đại. Ngày nay, các bộ điều khiển điện tử hầu như được thay thế phần lớn bởi các bộ điều khiển kỹ thuật số thực hiện với các bộ vi điều khiển hay FPGA.
Các bộ điều khiển PID hiện đại nhất trong công nghiệp được thực thi trong các bộ điều khiển logic khả lập trình (PLC) hoặc một bộ điều khiển kỹ thuật số được gắn cố định trên một bảng. Các phần mềm thực thi có ưu điểm là chúng tương đối rẻ và khá linh hoạt với đáp ứng thực thi của thuật toán PID.
Điện áp thay đổi có thể được áp dụng bởi dạng phân phối thời giam của điều rộng xung(Pulse Width modulation-PWM) - một chu kỳ thời gian cố định, và các biến đổi đạt được bằng cách kiểm tra phân phối thời gian trong suốt chu kỳ này khi đầu ra bộ điều khiển +1 (hay -1) thay vì 0. Trong một hệ thống kỹ thuật số các phân bố có thể là rời rạc - thí dụ tăng 0.1 giây trong vòng một chu kỳ 2 giây để đạt 20 bước: tỉ lệ tăng là 5% - vì vậy có một sai số rời rạc hóa, để có độ phân giải thời gian đủ cao để đạt được kết quả mong muốn.

Mã chương trình mẫu

Sau đây là một chương trình vòng lặp đơn giản thực hiện giải thuật PID dưới dạng 'lý tưởng, song song':
previous_error = 0 
integral = 0 
start: 
error = setpoint - actual_position 
integral = integral + (error*dt) 
derivative = (error - previous_error)/dt 
output = (Kp*error) + (Ki*integral) + (Kd*derivative) 

previous_error = error 
wait(dt) 
goto start