GIỚI THIỆU VỀ HỆ THỐNG
Mô tả hệ thống nhiều vào nhiều ra
Hệ thống nước nóng và lạnh bao gồm hai nguồn nước chảy vào bình chứa qua các van điều khiển, với một van xả bằng tay ở đáy bình Hệ thống được trang bị cảm biến để đo nhiệt độ và mức nước, bao gồm một cảm biến đo mức nước và ba cảm biến PT100 đo nhiệt độ của nước nóng, nước lạnh và nước xả Hai thông tin quan trọng cần điều khiển trong hệ thống là nhiệt độ và chiều cao mức nước trong bình chứa.
Hình 1 1 - Mô tả hệ thống
Bình chứa điều khiển có hình dạng hộp chữ nhật với kích thước đáy 18x18cm và chiều cao 35cm, được làm từ vật liệu kim loại Tại độ cao 30cm, bình được trang bị một van chống tràn để ngăn ngừa tràn nước Ngoài ra, dưới đáy bình còn có một van xả tay, cho phép lưu lượng nước chảy ra đạt tối đa khoảng 4,7 x 10 m/s.
Nguồn nước nóng, lạnh o Nước nóng được cấp từ một bình nóng lạnh, có nhiệt độ có thể lên tới
75 𝐶, lưu lượng vào cực đại khoảng 4,28.10 𝑚 /𝑠
Nhiệt độ của nước lạnh phụ thuộc vào nhiệt độ môi trường, đặc biệt trong mùa hè, nhiệt độ nước lạnh thường dao động từ 32 đến 35 độ C Lưu lượng tối đa của nước lạnh có thể đạt khoảng 2,28 x 10 m/s.
Van (cơ cấu chấp hành)
Van khí nén thường mở (NO) được điều khiển bằng khí nén từ bộ chuyển đổi I/P Samson 6102, với lưu lượng qua van tỉ lệ thuận với độ mở van từ 0-100% Hệ thống còn trang bị hai van tay để điều chỉnh lượng nước cung cấp vào bình chứa.
Bộ chuyển đổi dòng điện - áp suất có chức năng chuyển đổi tín hiệu dòng điện thành tín hiệu khí nén Thiết bị nhận tín hiệu đầu vào trong dải từ 4-20mA và cung cấp tín hiệu khí nén đầu ra có thể điều chỉnh liên tục trong khoảng 0,05-6,0 bar hoặc 0,7-90 psi.
6 o Nguồn cấp khí có áp suất 0,4 bar hoặc 6 psi trên dải điều khiển nêu trên o Đặc tính tuyến tính (đầu ra là một hàm tuyến tính với đầu vào)
Cảm biến đo mức (thiết bị đo)
Cảm biến KL76 được sử dụng trong hệ thống đo mức, hoạt động dựa trên nguyên lý chênh lệch áp suất giữa chất lỏng ở đáy bình và khí quyển Thiết bị này yêu cầu nguồn cấp 24VDC±10% và cung cấp tín hiệu đầu ra 4-20mA Cảm biến được kết nối theo kiểu 2 dây, với mối quan hệ giữa chiều cao chất lỏng và dòng điện là tuyến tính.
Cảm biến đo nhiệt độ Pt100 là thiết bị đo sử dụng que đo bằng Platinum, hoạt động dựa trên nguyên lý điện trở suất của kim loại thay đổi theo nhiệt độ Thiết bị có dải đo từ -200 đến 850°C, trong đó dải đo từ 0 đến 100°C có đường đặc tính tuyến tính được xác định bằng công thức: R = R0 (1 + 3,9083 × 10^(-3) × t).
Nhiệm vụ của bài toán điều khiển
Để một hệ thống điều khiển quá trình hoạt động tốt thì cần phải thỏa mãn những yêu cầu sau:
Hoạt động ổn định, bền vừng với nhiễu hệ thống
Các thiết bị hoạt động êm ái, bền đẹp với thời gian
Hệ thống hoạt động tin cậy, an toàn với người sử dụng
Từ đó, chúng em đưa ra những tiêu chí cho hệ thống này như sau:
Tín hiệu ra bám ổn định theo giá trị đặt
Độ quá điều chỉnh nhỏ (khoảng 10%), sai lệch tĩnh nhỏ
Thời gian đáp ứng nhanh
Tín hiệu điều khiển ổn định, trong phạm vi làm việc của cơ cấu chấp hành
Phần cứng hoạt động ổn định, tin cậy, an toàn cho người dùng
Yêu cầu công việc
Hình 1 5 - Tổng quan hệ thống
Mục tiêu của đồ án này là phát triển mô hình thí nghiệm hệ thống MIMO, cụ thể là hệ thống hai vào hai ra để điều khiển nhiệt độ và mức nước Hiện tại, hệ thống đã được thiết lập nhưng chưa có mạch điều khiển và phần mềm điều khiển Vì vậy, công việc sẽ được chia thành hai phần chính.
Hệ thống bình mức được thiết kế với ba cảm biến RTD để đo nhiệt độ của nước nóng, nước lạnh và nước trong bình, cùng với một cảm biến áp suất để đo mức nước Ngoài ra, hệ thống còn bao gồm hai van lưu lượng vào, trong đó có van khí nén có thể điều khiển được.
Mạch phần cứng cần thiết để đọc tín hiệu cảm biến và xuất tín hiệu điều khiển bao gồm bốn ADC cho việc đọc cảm biến, vi điều khiển, một DAC để xuất tín hiệu điều khiển dạng điện áp và một mạch chuyển đổi áp sang dòng Tín hiệu cảm biến được chuẩn hóa về điện áp và đưa vào module ADC để xử lý, từ đó trả về giá trị ADC tương ứng Vi điều khiển sẽ truyền giá trị này đến Matlab để tính toán tín hiệu điều khiển, sau đó xuất ra dưới dạng điện áp và chuyển đổi thành dòng để điều khiển van Phần mềm thực hiện việc đọc cảm biến và xuất tín hiệu điều khiển trên Arduino, trong khi Matlab xử lý tính toán bộ điều khiển Matlab nhận giá trị ADC từ Arduino, tính toán bộ điều khiển và chuyển đổi sang giá trị DAC để điều khiển từng van, từ đó gửi giá trị DAC này đến vi điều khiển để thực thi trên thiết bị thực tế.
Các bước tiến hành
Dựa trên phân tích hệ thống và nhiệm vụ của bài toán điều khiển, chúng tôi đề xuất các bước cần thiết để xây dựng một hệ thống điều khiển bình mức hoàn chỉnh.
Mô hình hóa là quá trình xây dựng các phương trình toán học để mô tả đối tượng, sử dụng phương trình động học của hệ thống hai bình mức dưới dạng phi tuyến trong không gian trạng thái Từ mô hình này, các phương pháp điều khiển có thể được áp dụng Bên cạnh việc sử dụng các phương trình động học, phương pháp nhận dạng cũng rất quan trọng để điều chỉnh đầu vào và đo lường đáp ứng đầu ra của hệ thống Thông tin thu được có thể được sử dụng với công cụ nhận dạng trong Matlab để nhận diện đối tượng một cách chính xác.
Tuyến tính hóa là quá trình chuyển đổi phương trình động học của hệ thống hai bình mức từ dạng phi tuyến sang dạng tuyến tính, nhằm thuận lợi cho việc thiết kế bộ điều khiển sau này Hai phương pháp tuyến tính hóa phổ biến là tuyến tính hóa quanh điểm làm việc và tuyến tính hóa chính xác Đối với bài toán hai bình mức có điểm làm việc ổn định trong thực tế, phương pháp tuyến tính hóa quanh điểm làm việc được coi là phù hợp nhất và thường được áp dụng Đây cũng là phương pháp mà chúng tôi sẽ tập trung nghiên cứu trong đề tài này.
Bộ điều khiển thiết kế cần duy trì mức nước ổn định trong khoảng thời gian xác định với độ sai lệch nhỏ Nó bao gồm cả bộ điều khiển phi tuyến cho hệ thống ban đầu và bộ điều khiển tuyến tính cho hệ thống đã được tuyến tính hóa.
Để cài đặt thuật toán điều khiển cho hệ thống, cần thiết kế phần cứng và phần mềm với một mạch điều khiển Mạch này có các chức năng quan trọng như đọc tín hiệu từ cảm biến, gửi dữ liệu đến vi điều khiển để tính toán, và xuất tín hiệu điều khiển cho van.
9 cạnh đó, cần thiết kế một phần mềm điều khiển cài đặt trên Arduino và tương tác với người dùng qua giao diện trên Matlab.
XÂY DỰNG MÔ HÌNH CỦA ĐỐI TƯỢNG
Phân tích bài toán
2.1.1 Lựa chọn phương pháp xây dựng mô hình toán học
Chúng tôi đã chọn phương pháp mô hình hóa lý thuyết để phân tích và xây dựng mô hình, do các tham số hệ thống như diện tích đáy bình (A), nhiệt độ nguồn nước nóng (Th) và nhiệt độ nguồn nước lạnh (Tc) dễ dàng xác định qua đo đạc Phương pháp này dựa trên các định luật vật lý và hóa học cơ bản, rất phù hợp để phân tích và kiểm chứng mô hình, đồng thời giúp hiểu sâu các mối quan hệ bên trong của quá trình liên quan đến các hiện tượng vật lý, hóa học hoặc sinh học Ngoài ra, nó còn cho phép xác định cấu trúc của mô hình một cách tương đối chính xác.
Hệ thống nhiều vào nhiều ra được mô tả là một bình chứa với hai dòng nước chảy vào có thể điều chỉnh lưu lượng, mỗi dòng có nhiệt độ khác nhau Ở đáy bình, có vòi nước chảy ra và bộ điều khiển không can thiệp trong quá trình vận hành Nhiệm vụ chính là điều khiển mức nước và nhiệt độ trong bình sao cho phù hợp với giá trị đã được đặt trước.
Hình 2 1 - Mô tả các biến quá trình
Biến cần điều khiển: o Nhiệt độ T ( 𝐶) o Mức nước trong bình h (m)
Biến điều khiển: o Lưu lượng dòng nước lạnh: 𝑤 (𝑚 /𝑠) o Lưu lượng dòng nước nóng: 𝑤 (𝑚 /𝑠)
Lưu lượng nước chảy ra (𝑑(𝑚/𝑠)) là giá trị thụ động, phụ thuộc vào độ mở van và mức nước trong bình Giá trị này được xác định theo công thức Bernoulli.
2 g 0 d C A h k h (2.1) o Trong đó C là hệ số van xả (discharge coefficient), 𝐴 là tiết diện van, g là gia tốc trọng trường o Nhiệt độ nguồn nước nóng: 𝑇ℎ( 𝐶) o Nhiệt độ nguồn nước lạnh: 𝑇𝑐( 𝐶)
2.1.3 Xây dựng phương trình mô hình
Phương trình cân bằng vật chất
Trong một đơn vị thời gian, lượng nước chảy vào bình bằng tổng lượng nước trong bình và lượng nước chảy ra khỏi bình in b靚h out
Hay có thể viết lại thành
Phương trình cân bằng năng lượng
Trong một hệ thống bình, tổng năng lượng vào bình bằng tổng năng lượng thoát ra và sự thay đổi năng lượng trong bình Trong đồ án này, chúng ta có thể bỏ qua cơ năng của nước chảy và trao đổi nhiệt với môi trường Do đó, tổng nhiệt lượng từ nước chảy vào bình sẽ bằng tổng nhiệt lượng của nước chảy ra và nhiệt lượng gia tăng trong bình.
1 2 dh dT w Tc w Th d T T A dt h A dt
(2.7) Như vậy từ (2.4) và (2.7) ta có:
w w k h dh dt A w Tc T w Th T dT dt A h
(2.8) Đặt 𝑥 = (ℎ 𝑇) , 𝑢 = (𝑤 𝑤 ) và 𝑦 = 𝑥, khi đó ta sẽ được hệ phương trình mô tả hệ thống bình mức này như sau:
Kiểm chứng mô hình
Ta tiến hành mô phỏng đối tượng với lưu lượng vào của van lạnh là 1,65.10
𝑚 /𝑠 , van nóng là 3,05.10 𝑚 /𝑠 và van ra là 2,77.10 𝑚 /𝑠
Hình 2 2 - Kiểm chứng mô hình 2.2.2 Thực tế
Hình 2 3 - Kiểm chứng đáp ứng độ cao
Hình 2 4 - Kiểm chứng đáp ứng nhiệt độ
So sánh kết quả mô phỏng với kết quả thực tế cho thấy mô hình toán học của đối tượng tương đồng với mô hình thực Việc thiết kế bộ điều khiển trên mô hình mô phỏng không chỉ giúp kiểm tra độ chính xác và tin cậy của bộ điều khiển mà còn nâng cao hiệu quả triển khai bộ điều khiển vào thực tế.
THIẾT KẾ BỘ ĐIỀU KHIỂN CHO HỆ THỐNG
Phân tích điều khiển
3.1.1 Tuyến tính hóa quanh điểm làm việc
Lý thuyết điều khiển tuyến tính đã đạt đến mức độ hoàn thiện cao, cung cấp đầy đủ công cụ để phân tích và xây dựng hệ thống điều khiển tuyến tính đạt yêu cầu chất lượng Để áp dụng kiến thức này cho các hệ thống phi tuyến, người ta thường xấp xỉ mô hình phi tuyến thành mô hình tuyến tính quanh các điểm trạng thái làm việc quan trọng, từ đó chuyển đổi bài toán điều khiển phi tuyến thành bài toán điều khiển tuyến tính Việc tuyến tính hóa quanh điểm làm việc được thực hiện theo các tài liệu chuyên ngành.
Chọn các điểm làm việc khi hệ hoạt động ổn định như sau:
Nhiệt độ nước trong bình 𝑇
Phương trình cân bằng tại điểm làm việc:
(3.1) Xét một điểm nằm lân cận điểm làm việc:
Thay (3.2) vào hệ phương trình (2.9) ta được:
Và bỏ qua số hạng w 1 w 2 T
Do dó hệ (3.3) sẽ trở thành:
Tc Th w d T k T T T dt A h Ah Ah
Hệ thống tuyến tính, liên tục được coi là điều khiển được nếu có ít nhất một tín hiệu điều khiển có khả năng đưa nó từ trạng thái ban đầu 𝑥 về gốc tọa độ 0 trong khoảng thời gian hữu hạn.
Từ [2], theo Hautus điều kiện cần và đủ để hệ tuyến tính không có trạng thái thừa (3.4) điều khiển được là:
Cũng từ [2], theo Kalman, điều kiện cần và đủ để hệ tuyến tính không có trạng thái thừa (3.4) điều khiển được là:
Với điểm cân bằng ℎ = 0.07 và 𝑇 = 57 thì:
B Áp dụng tiêu chuẩn Kalman cho hệ (3.4) với điểm cân bằng như trên, ta được:
Như vậy hệ (3.4) là điều khiển được.
Điều khiển tách kênh cho hệ tuyến tính
Như ở 3.1.15 đã trình bày, mô hình toán của hệ thống bình nóng lạnh sau khi tuyến tính hóa quanh điểm cân bằng là:
Mô hình trạng thái này có dạng x Ax Bu y Cx Du
Mô hình hệ thống được biểu diễn trên miền không gian trạng thái Để thiết kế bộ điều khiển tách kênh, cần chuyển đổi mô hình sang miền tần số và xác định hàm truyền.
Trong đó, H s F ( ) được tính dựa theo mô hình trên miền không gian trạng thái như sau:
Thay các tham số A,B,C,D ở trên vào ta có H s F ( ) là ma trận hàm truyền của đối tượng có dạng ma trận 2x2:
Hình 3 1 - Sơ đồ cấu trúc hệ MIMO hai vào hai ra
Theo các nguồn tài liệu, nguyên lý điều khiển yêu cầu thiết kế một bộ điều khiển tương ứng cho mỗi cặp đầu vào và đầu ra khác nhau Đối với hệ thống hai đầu vào và hai đầu ra, sẽ có tổng cộng 4 bộ điều khiển, được cấu trúc theo sơ đồ như đã nêu.
Hình 3 2 - Sơ đồ nguyên lý điều khiển từng kênh
Bộ điều khiển tách kênh hoạt động dựa trên nguyên lý tương tự như các bộ điều khiển khác, nhưng đặc biệt hơn ở chỗ nó phân tách một hệ kín thành hai hệ SISO độc lập Chính vì lý do này mà nó được gọi là bộ điều khiển tách kênh.
Khi đó hàm truyền hệ kín được chọn sẽ có dạng:
Bộ điều khiển tách kênh sẽ được tính theo công thức sau:
Trong đó, H s 0 ( ) là hàm truyền hệ kín mong muốn, H s F ( ) là hàm truyền của hệ thống, H s C ( ) là bộ điều khiển tách kênh
Sau khi tách hệ MIMO thành dạng SISO bằng phương pháp tách kênh, người dùng có thể áp dụng các bộ điều khiển P, PI, PID để lựa chọn tham số cho bộ điều khiển Việc này có thể thực hiện thông qua các phương pháp thực nghiệm, tối ưu module hoặc tuning trên Matlab.
Hình 3 3 - Điều khiển hệ sau khi tách kênh
Thực hiện mô phỏng trên MatLab với bộ điều khiển tách kênh và mô hình phi tuyến của hệ thống bình nóng lạnh
Với mô hình hệ thống bình nóng lạnh, các tham số đã thu thập được sẽ được thay vào công thức (3.5) để xác định hàm truyền của hệ thống.
Như đã trình bày ở phần lý thuyết về bộ điều khiển tách kênh hàm truyền hệ kín được chọn có dạng đường chéo như sau:
Theo công thức (3.6) ta có thể tính được bộ điều khiển tách kênh
Sau khi hệ MIMO thành hai hệ SISO, ta tiến hành điều khiển bằng bộ PID Điều khiển h dùng PI và điều khiển T dùng P:
Kết quả đáp ứng của hệ thống được mô phỏng như hình dưới đây:
Hình 3 4 - Đáp ứng nhiệt độ khi thay đổi giá trị đặt
THIẾT KẾ MẠCH ĐIỀU KHIỂN NHÚNG
Thiết kế phần cứng
4.1.1 Sơ đồ tổng thể và nguyên lý hoạt động a) Sơ đồ phần cứng
Hình 4 1 - Sơ đồ tổng quát thiết kế phần cứng b) Nguyên lý hoạt động
Nguyên lý hoạt động cơ bản của mạch phần cứng như sau:
Hệ thống bình nóng lạnh sử dụng cảm biến nhiệt điện trở Pt100 và cảm biến áp suất để đo tín hiệu nhiệt độ và mức nước.
Các tín hiệu này sau đó sẽ được xử lý và mã hóa về dạng thông tin số mà vi điều khiển có thể đọc được
Mạch điều khiển sẽ thực hiện tính toán và cung cấp các giá trị điều khiển dưới dạng điện áp, dựa trên giá trị đặt và các dữ liệu trả về từ cảm biến.
Cuối cùng, điện áp điều khiển sẽ được chuyển sang dòng điều khiển 4-20 mA đưa vào điều khiển các van khí nén
4.1.2 Các thành phần của phần cứng và nhiệm vụ của chúng
Phần cứng có nhiệm vụ là cầu nối trung gian giữa phần mềm điều khiển và hệ thống thực tế
Về cơ bản thì phần cứng hệ thống gồm nhứng thành phần với nhiệm vụ cụ thể như sau:
Mạch nguồn đóng vai trò quan trọng trong việc cung cấp điện áp hoạt động cho các thành phần trong hệ thống Giống như trái tim của hệ thống, nguồn điện phải ổn định để các thành phần khác hoạt động bền bỉ Để đảm bảo hiệu suất tối ưu, nguồn thiết kế cần đáp ứng đủ công suất, lý tưởng là cao hơn 50% so với nhu cầu toàn bộ hệ thống, đồng thời điện áp đầu ra phải luôn ổn định.
Mạch điều khiển được xem như bộ não của hệ thống, thu thập thông tin từ các cảm biến và thực hiện tính toán theo các thuật toán đã được cài đặt Sau đó, nó phát tín hiệu điều khiển đến các thiết bị chấp hành Ngoài khả năng tính toán, tốc độ tính toán của mạch điều khiển cũng rất quan trọng để đảm bảo hệ thống hoạt động hiệu quả nhất.
Cảm biến Pt100 là một loại nhiệt điện trở, có khả năng thay đổi điện trở theo nhiệt độ Để vi điều khiển có thể đọc được giá trị điện trở này, cần sử dụng mạch giao tiếp với Pt100, có chức năng mã hóa thông tin điện trở thành giá trị số nguyên và gửi đến vi điều khiển để xử lý.
Mạch giao tiếp cho cảm biến áp suất đo độ cao đóng vai trò quan trọng trong việc chuyển đổi tín hiệu dòng 4-20 mA, tương tự như Pt100, để vi điều khiển có thể đọc và xử lý thông tin.
Mạch tín hiệu dòng đầu ra cho valve khí nén trong hệ thống bình nóng lạnh sử dụng tín hiệu dòng 4-20mA Mạch này hoạt động như một mạch chuyển đổi tín hiệu áp thành dòng, với nhiệm vụ nhận tín hiệu điều khiển dạng điện áp 0-5V và chuyển đổi chúng sang tín hiệu dòng 0-20mA.
Phần cứng thiết kế cần đáp ứng các yêu cầu cơ bản như thực hiện đúng chức năng đã được xác định, có kích thước nhỏ gọn và dễ lắp đặt Ngoài ra, nó phải thuận tiện cho quá trình kiểm tra, bảo trì và bảo dưỡng, đồng thời đảm bảo độ tin cậy cao và khả năng hoạt động liên tục trong thời gian dài.
4.1.3 Lựa chọn thiết bị a) Mạch giao tiếp với Pt100
Pt100 là một loại cảm biến nhiệt độ, hoạt động dựa trên nguyên lý điện trở thay đổi theo nhiệt độ Để xác định giá trị điện trở của Pt100, người ta thường đo trực tiếp thông qua giá trị điện áp.
Khi giá trị điện trở thay đổi, giá trị điện áp cũng sẽ thay đổi, cho phép chúng ta đo điện áp và tính ngược lại giá trị điện trở ADC là thiết bị phổ biến để đo điện áp, và module AD7705 hoàn toàn đáp ứng yêu cầu với các thông số cơ bản như độ phân giải 16 bit, giao tiếp số SPI, điện áp hoạt động 5V và khả năng khuếch đại.
Phần mạch đo, có 2 phương áp có thể lựa chọn:
Phương án 1: Sử dụng dạng phân áp với 1 điện trở cố định
Hình 4 2 - Mạch đo RTD dạng phân áp
Phương án 2: Sử dụng mạch cầu Wheastone
Hình 4 3 - Mạch đo RTD dạng mạch cầu Wheatstone
Qua thử nghiệm, phương án 1 đơn giản hóa quá trình tính toán nhưng dễ bị ảnh hưởng bởi nhiễu điện từ do điện áp tham chiếu của ADC thay đổi Trong khi đó, phương án 2, mặc dù phức tạp hơn, lại cho kết quả đo ổn định hơn Do đó, chúng tôi quyết định chọn phương án 2, sử dụng mạch cầu Wheatstone cho mạch giao tiếp với cảm biến Pt100.
Với phương án đã lựa chọn là phương án 2, ta có công thức biến đổi như sau:
V ADC V (4.1) o Với mạch cầu Wheatstone:
3 nhánh cầu lắp điện trở hằng R như nhau,nhánh còn lại lắp RTD như hình dưới
Hình 4 4 - Mạch cầu đo điện trở Như vậy:
(4.2) b) Mạch giao tiếp với cảm biến áp suất (đo mức nước)
Cảm biến áp suất, giống như nhiệt điện trở, cung cấp tín hiệu dòng 4-20 mA, nhưng không thể đo trực tiếp mà cần phải đo gián tiếp thông qua giá trị điện áp.
Sơ đồ thiết kế mạch giao tiếp với cảm biến áp suất như sau:
Hình 4 5 - Mạch nguyên lý giao tiếp với cảm biến áp suất
Cảm biến áp suất hoạt động với nguồn 24V và cho ra đầu ra dòng điện từ 4-20 mA tùy thuộc vào mức nước trong bình Để chuyển đổi giá trị dòng 4-20 mA sang áp suất tương ứng từ 0.88 – 4.4 V, cần kết nối một điện trở 220 ôm với cảm biến áp suất.
Giá trị điện áp này được nối qua một mạch phối hợp trở kháng sử dụng Opamp LM358 để tăng trở kháng vào cho ADC
ADC được sử dụng trong bài viết này là module AD7705, với đầu ra được truyền đến vi điều khiển qua giao tiếp SPI Bên cạnh đó, mạch tín hiệu dòng ra được thiết kế dành cho valve khí nén.
Dựa trên nhiệm vụ của mạch tín hiệu dòng, bộ biến đổi tín hiệu từ dạng áp sang dạng dòng được thiết kế như sau:
Hình 4 6 - Mạch chuyển đổi tín hiệu áp sang dòng
Xử lý tín hiệu đo và tín hiệu điều khiển
4.2.1 Đo và xử lý tín hiệu đo
Tín hiệu từ cảm biến được chuyển đổi thành điện áp và gửi đến kênh hai của bộ chuyển đổi tương tự số AD7705, nơi tín hiệu được xử lý và truyền đến Arduino qua giao thức SPI AD7705 bao gồm các thanh ghi quan trọng: Thanh ghi giao tiếp (Communication Register) giúp chọn thanh ghi và phương thức đọc/ghi, Thanh ghi cài đặt (Setup Register) cho phép cài đặt chế độ làm việc và độ khuếch đại, Thanh ghi xung (Clock Register) để thiết lập xung clock cho ADC, và Thanh ghi dữ liệu (Data Register) để truy cập dữ liệu đầu ra.
Để đọc giá trị từ ADC, trước tiên cần khởi tạo ADC bằng cách reset và cài đặt pin mode, chọn kênh 2 cho mỗi ADC Tiếp theo, trong thanh ghi Clock, bật bit CLKDIV để chia Clock nội và chọn gain là 8 cho 3 cổng đo nhiệt độ, trong khi cổng đo độ cao sử dụng gain bằng 1 Tần số cập nhật được thiết lập là 50Hz Sau đó, chọn chế độ self-calibration và bipolar với gain tương ứng Cuối cùng, chờ dữ liệu để đọc và thực hiện việc đọc dữ liệu.
Dữ liệu được thu thập từ 4 ADC liên tục trong 20 lần đo gần nhất và tính trung bình để giảm thiểu sai số so với giá trị thực Phương pháp này không chỉ đảm bảo độ chính xác cao mà còn rút ngắn thời gian đo và xử lý tín hiệu, từ đó giảm thiểu ảnh hưởng của nhiễu đến kết quả đo.
Sau khi đọc giá trị từ 4 ADC, các giá trị này được lưu trữ thành 2 byte và truyền qua giao thức UART từ Arduino đến Matlab để xử lý Khi nhận được giá trị ADC, chúng ta sẽ tính toán giá trị thực của nhiệt độ và độ cao mà cảm biến đo được.
Xác định giá trị nhiệt độ:
Từ mục thiết kế phần cứng với công thức (4.2), ta xác định được giá trị nhiệt độ đo được từ cảm biến như sau:
Giá trị nhiệt điện trở (RTD) được xác định với R = 100 Ôm, trong khi giá trị ADC đọc về được tính với Vref = 2,5V Hệ số của ADC là K1 = 8*65536, và điện áp cấp cho mạch cầu là Vcc = 5V Đặc biệt, R0 = 101,34 Ôm là điện trở của RTD tại nhiệt độ 33 độ C.
Để xác định giá trị nhiệt độ chính xác với độ sai lệch nhỏ nhất, cần hiệu chỉnh công thức bằng cách tính trung bình của hiệu giữa 10 lần đo nhiệt độ quanh điểm xác định và giá trị nhiệt độ tính toán Sau khi thực hiện hiệu chỉnh, công thức tính nhiệt độ xác định sẽ được cập nhật.
Xác định giá trị chiều cao
Vì cảm biến đo mức trả về tín hiệu dòng điện cỡ mA nên ta xác định được dòng điện này theo giá trị ADC như sau:
Trong đó: o Iout là giá trị dòng điện trả về từ cảm biến o ADC4 là giá trị ADC o Vref = 2,5V o Rrefh = 220 Ôm, là điện trở tham chiếu
Tiến hành đo thực nghiệm để xác định sự phụ thuộc của chiều cao vào dòng điện và được bảng kết quả sau:
Bảng 1 - Quan hệ giữ độ cao và dòng điện của cảm biến đo mức
Hình 4 12 - Thực nghiệm xác định quan hệ h(I)
Trong đó: o 𝑖 là dòng điện trả về từ cảm biến (mA) o h là chiều cao của mức nước trong bình (cm)
Tóm tắt lại các bước đo và xử lý số liệu như sau:
Hình 4 13 - Trình tự xử lý kết quả đo
4.2.2 Tính toán tín hiệu điều khiển
Giá trị từ cảm biến bao gồm nhiệt độ nước nóng, nhiệt độ nước lạnh, nhiệt độ nước trong bình và chiều cao nước trong bình Nhiệt độ nước nóng và nước lạnh được sử dụng làm tham số cho hệ thống, trong khi nhiệt độ nước trong bình và chiều cao nước trong bình đóng vai trò là giá trị phản hồi.
Mô hình hệ thống bình nóng lạnh được xây dựng dựa trên các tham số đã thu thập, từ đó áp dụng vào công thức (3.5) để xác định hàm truyền, cụ thể là y = 12,987x - 48,986.
Như đã trình bày ở phần lý thuyết về bộ điều khiển tách kênh hàm truyền hệ kín được chọn có dạng đường chéo như sau:
Theo công thức (3.6) ta có thể tính được bộ điều khiển tách kênh
Dễ thấy bộ điều khiển tách kênh ở trên có hàm truyền dạng của khâu khuếch đại và tích phân nên ta dễ dàng cài đặt được trên Matlab
Sau khi hệ MIMO thành hai hệ SISO, ta tiến hành điều khiển hệ thống bằng bộ PID Điều khiển h dùng PI và điều khiển T dùng P:
Thiết kế phần mềm
Một hệ thống hoàn chỉnh cần phần mềm để tính toán bộ điều khiển và tương tác với người dùng Vì vậy, phần mềm cho hệ thống bình mức sẽ được thiết kế với các chức năng cần thiết.
Tiếp nhận và xử lý tín hiệu đo từ cảm biến
Tính toán bộ điều khiển và xuất ra tín hiệu dòng điện tương ứng
Giao diện với người dùng, giao tiếp giữa Arduino và Matlab
Ngoài những nhiệm vụ trên, một phần mềm tốt còn cần phải dễ dàng quản lý và mở rộng, không tốn nhiều thời gian thực thi
Trong đồ án này, chúng tôi sử dụng hai bộ điều khiển là tách kênh và trượt, do đó sẽ chia thành hai phần mềm phục vụ cho các mục đích khác nhau.
4.3.1 Phần mềm điều khiển tách kênh
Phần mềm hoạt động hoàn toàn trên nền tảng Arduino, nơi Arduino nhận tín hiệu đo, thực hiện tính toán và xuất ra tín hiệu điều khiển để điều chỉnh van tương ứng.
Hình 4 14 - Sơ đồ chương trình thực hiện điều khiển tách kênh
Khi chạy chương trình, phần mềm thực thi lần lượt qua từng tác vụ Chức năng cụ thể của các tác vụ như sau:
Hàm Get feedback sẽ liên tục đọc tín hiệu từ ADC và chuyển đổi chúng thành giá trị thực của cảm biến Quá trình này sẽ tiếp tục diễn ra cho đến khi có một ngắt xảy ra, lúc đó chương trình sẽ chuyển sang xử lý ngắt.
Calculate control signal: ở bước này chúng ta sẽ tính toán tín hiệu điều khiển dựa vào giá trị cảm biến đo được được gửi từ hàm Get feedback- mục 4.2.2.1
Sau khi tính toán tín hiệu điều khiển, cần xuất tín hiệu dưới dạng điện áp để điều chỉnh van Arduino sẽ điều khiển DAC MCP4922 nhằm tạo ra điện áp mong muốn Giao diện điều khiển và quan sát sẽ giúp theo dõi quá trình này.
Chương trình trên Matlab sử dụng giá trị cảm biến và tín hiệu điều khiển van để hiển thị trên giao diện, giúp việc theo dõi và điều khiển hệ thống từ khi cài đặt điểm làm việc cho đến khi hệ thống hoạt động ổn định trở nên dễ dàng Giao diện Matlab được trình bày như hình dưới đây.
Giao diện này bao gồm các tính năng nổi bật như thanh trượt để điều chỉnh giá trị đặt, hình minh họa thể hiện sự thay đổi của cột nước và nhiệt độ khi tăng hoặc giảm, cùng với việc hiển thị giá trị cảm biến một cách rõ ràng.
KẾT QUẢ THỰC NGHIỆM
Kết quả điều khiển tách kênh
Khi chạy thực nghiệm với bộ điều khiển tách kênh sẽ cho ra kết quả như sau:
Hình 5 1 - Đáp ứng độ cao khi thay đổi giá trị đặt
Hình 5 2 - Đáp ứng nhiệt độ khi thay đổi giá trị đặt
Sau khi tách kênh hệ MIMO thành hai hệ SISO, ta hoàn toàn có thể điều khiển hệ thống bằng cách sử dụng thêm bộ P, PI hoặc PID
Sử dụng bộ điều khiển tách kênh cho thấy chất lượng điều khiển đạt hiệu quả cao, với sai lệch tĩnh tương đối nhỏ, chỉ khoảng 1 cm cho h và từ 1 đến 1,5 độ C cho T.
Khi thay đổi giá trị đặt, hệ thống phản ứng nhanh nhưng xuất hiện những khoảng gợn trên đồ thị, cho thấy bộ điều khiển chưa tách kênh hoàn toàn Nguyên nhân là do giới hạn lưu lượng nước nóng và nước lạnh vào bình nhỏ hơn tín hiệu điều khiển tính toán.
Khi tiếp tục tăng h khi đó điểm làm việc cách xa điểm cân bằng do vậy chất lượng điều khiển không còn tốt như trước nữa