Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
1,22 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Nghiên cứu, thiết kế điều khiển dự báo (MPC) tối ưu hóa thiết bị tách khí Nitơ chu trình hấp phụ thay đổi áp suất (PSA) NGUYỄN TUẤN ANH Anh.NTCB190099@sis.hust.edu.vn Ngành Kỹ thuật Điều khiển Tự động hóa Giảng viên hướng dẫn: TS Nguyễn Thu Hà Trường: Điện – Điện tử, Trường Đại học Bách Khoa Hà Nội HÀ NỘI, 11/2021 Chữ ký GVHD Lời cảm ơn Qua thời gian nghiên cứu thực hiện, đến đồ án tốt nghiệp với đề tài: “Nghiên cứu, thiết kế điều khiển dự báo (MPC) tối ưu hóa thiết bị tách khí Nitơ chu trình hấp phụ thay đổi áp suất (PSA)” TS Nguyễn Thu Hà, Bộ môn Điều Khiển Tự Động, Trường Điện – Điện tử, Đại học Bách Khoa Hà Nội hướng dẫn hoàn thiện Để đạt thành này, em xin gửi lời cảm ơn sâu sắc tới TS Nguyễn Thu Hà, trưởng môn Điều khiển tự động, người tin tưởng giao đề tài, đạo hướng dẫn tận tình cho em suốt thời gian theo đuổi đề tài Em xin bày tỏ lòng cảm ơn chân thành tới TS Vũ Đình Tiến, trưởng mơn Máy Thiết bị cơng nghiệp Hóa chất, ThS Đinh Thị Lan Anh, môn Điều khiển tự động, Đại học Bách Khoa Hà Nội tạo điều kiện cung cấp cho kiến thức, ý kiến q báu quy trình cơng nghệ hệ thống thiết bị để em hồn thiện đề tài Tóm tắt nội dung luận văn Mơ hình mơ chu trình PSA xây dựng từ phương trình lý thuyết tham khảo thông số từ hệ thống thực thiết bị tách khí Ni-tơ sử dụng cơng cụ mơ q trình hóa học phổ biến gPROMS [1], Aspen Adsorption [2] để có liệu nhận dạng Dữ liệu nhận dạng xử lý System Identification Toolbox [3] MATLAB để thu mơ hình xấp xỉ Hammerstein-Wiener [4] Bộ điều khiển xây dựng lý thuyết kết hợp phương pháp điều khiển dự báo Bộ điều khiển sau mô Matlab Simulink kết hợp với Aspen Adsorption để kiểm tra đánh giá chất lượng, so sánh với điều khiển mờ PD+I Mối quan hệ độ tinh khiết độ thu hồi dịng khí sản phẩm với đánh giá chất lượng hệ thống xấp xỉ mơ hình mạng nơron nhân tạo Mơ hìn tiếp tục khai thác để tối ưu hóa tham số hoạt động hệ thống áp suất hấp phụ thời gian hấp phụ Hà Nội, ngày 29 tháng 11 năm 2021 Học viên thực Nguyễn Tuấn Anh MỤC LỤC CHƯƠNG MỞ ĐẦU 1.1 Nhu cầu thực tế 1.2 Mục đích đề tài 1.3 Đối tượng phạm vi nghiên cứu đề tài 1.4 Ý nghĩa khoa học đề tài 1.5 Nội dung đề tài CHƯƠNG TỔNG QUAN VỀ CHU TRÌNH HẤP PHỤ THAY ĐỔI ÁP SUẤT 2.1 Giới thiệu 2.2 Hiên tượng hấp phụ 2.2.1 Hấp phụ 2.2.2 Nhả hấp phụ 2.2.3 Vật liệu hấp phụ 2.3 Phân loại trình phân tách khí 2.4 Chu trình hấp phụ thay đổi áp suất (PSA) CHƯƠNG MƠ HÌNH HĨA HỆ THỐNG PSA 10 3.1 Giới thiệu 10 3.2 Mơ hình hóa mơ hệ PSA 10 3.3 Nhận dạng hệ thống 13 3.3.1 Thiết lập Aspen Adsorption MATLAB Simulink 14 3.3.2 Mơ hình 18 CHƯƠNG THIẾT KẾ BỘ ĐIỀU KHIỂN CHO HỆ THỐNG PSA 20 4.1 4.2 Điều khiển dự báo theo mơ hình MPC 20 4.1.1 Tổng quát điều khiển dự báo MPC 20 4.1.2 Nguyên tắc chung điều khiển dự báo theo mơ hình 20 4.1.3 Điều kiện ràng buộc 21 Bộ điều khiển dự báo MPC cho hệ PSA 21 4.2.1 Phân tích, thiết kế điều khiển MPC 21 4.2.2 đầu Bộ điều khiển MPC kết hợp với phản hồi trạng thái phản hồi 23 4.2.3 PSA Mô điều khiển MPC kết hợp phản hồi trạng thái cho hệ 24 CHƯƠNG TỐI ƯU HÓA THAM SỐ HOẠT ĐỘNG CỦA HỆ THỐNG PSA 29 5.1 PSA 5.2 Mơ hình mạng nơron nhân tạo dự đoán hiệu suất hoạt động hệ thống 29 5.1.1 Các thông số đánh giá chất lượng 29 5.1.2 Mơ hình mạng nơron nhân tạo 30 Tối ưu hóa tham số hoạt động hệ thống PSA 32 CHƯƠNG KẾT LUẬN 34 6.1 Kết luận 34 6.2 Hướng phát triển đồ án tương lai 34 TÀI LIỆU THAM KHẢO 35 PHỤ LỤC 37 DANH MỤC HÌNH VẼ Hình 1.1: Các nội dung nhiệm vụ phân tích, thiết kế đồ án Hình 2.1: Chu trình hấp phụ thay đổi áp suất, hai cột hấp phụ (v – van, A – cột hấp phụ) [7] Hình 2.2: Chu trình hấp phụ thay đổi áp suất, hai cột hấp phụ Hình 3.1: Nồng độ khí Nitơ thu giải phương trình PDAE 13 Hình 3.2: Sơ đồ chu trình PSA cấu hình Aspen Adsorption 15 Hình 3.3: Mơ hình Simulink để thu thập liệu vào-ra hệ thống 16 Hình 3.4: Cấu hình khối AMSimulation 17 Hình 3.5: Đáp ứng vào (lưu lượng cấp -kmol/s) -ra (độ tinh khiết) 17 Hình 3.6: Phóng to cục đáp ứng đầu hệ thống đạt trạng thái xác lập 18 Hình 3.7: Mơ hình Hammerstein – Wiener [4] 18 Hình 3.8: Đáp ứng mơ hình xấp xỉ so với mơ hình gốc ban đầu 19 Hình 4.1: Nguyên tắc điều khiển dự báo theo mơ hình 20 Hình 4.2: Cấu trúc điều khiển áp dụng cho mơ hình Hammerstein – Wiener 22 Hình 4.3: Cấu trúc điều khiển MPC kết hợp phản hồi trạng thái phản hồi đầu cho mơ hình Hammerstein – Wiener 22 Hình 4.4: Áp dụng điều khiển MPC trường hợp mô kết hợp Simulink Aspen Adsorption 23 Hình 4.5: Sơ đồ thiết kế điều khiển MPC cho đối tượng hàm Hammerstein Wiener Simulink 25 Hình 4.6: Cấu trúc điều khiển MPC 25 Hình 4.7: Cấu trúc điều khiển mờ PD+I 26 Hình 4.8: Cấu trúc điều khiển vịng kín mờ PD+I 27 Hình 4.9: Đáp ứng đầu bám theo giá trị đặt 27 Hình 4.10: Tín hiệu điều khiển 28 Hình 5.1: Cấu trúc mơ hình ANN 30 Hình 5.2: Giao diện nftool MATLAB kết huấn luyện mạng nơron 31 Hình 5.3: So sánh mơ hình xấp xỉ ANN với mơ hình Aspen Adsorption 32 DANH MỤC BẢNG Bảng 2.1: Thông số vật liệu hấp phụ CMS240 [6] Bảng 3.1: Các thơng số q trình nạp vào Aspen Adsorption 16 Bảng 4.1: Luật hợp thành điều khiển mờ 26 Bảng 5.1: Kết tối ưu hóa tham số hệ thống PSA 33 DANH MỤC TỪ VIẾT TẮT PSA CMS Pressure swing adsorption Carbon molecular sieves Hấp phụ thay đổi áp suất Sàng phân tử Cacbon MPC Model predictive control Điều khiển dự báo dựa mơ hình SISO Single Input - Single Output Hệ vào- MISO Multi Input - Single Output FPD+I Fuzzy PD and I Hệ nhiều vào – Điều khiển vi phân tỉ lệ mờ kết hợp tích phân ANN Artificial Neural Network Mạng nơron nhân tạo CHƯƠNG MỞ ĐẦU 1.1 Nhu cầu thực tế Công nghệ hấp phụ thay đổi áp suất (PSA) phát triển nghiên cứu Mỹ tác giả C W Skarstrom, ông cấp sáng chế năm 1960, từ đến có 600 sáng chế cơng bố liên quan đến PSA có tới 800 báo liên quan tới PSA từ năm 1970 – 2000 Hiện PSA công nghệ trọng điểm để tách tinh chế loại khí cơng nghiệp Oxy, Nitơ, H2, Isoprafin, CH4, CO2 [5] Khí N2 cơng nghệ, q trình, thiết bị sản xuất khí N2 Việt Nam chưa quan tâm nghiên cứu, chủ yếu nhập đồng thiết bị - dây chuyền để sản xuất cung cấp sản phẩm cho thị trường Công nghệ chủ yếu sử dụng Việt Nam chưng cất phân đoạn hỗn hợp khơng khí hóa lỏng Việc nghiên cứu mơ tối ưu hóa thiết bị tạo khí N2 sử dụng chu trình hấp phụ thay đổi áp suất (PSA) Việt Nam Thiết bị tạo khí N2 sử dụng chu trình hấp phụ thay đổi áp suất vật liệu hấp phụ, rây phân tử CMS (nhập khẩu) nghiên cứu, thiết kế chế tạo Bộ mơn Máy hóa Đại học Bách khoa Hà Nội, bước đầu nghiên cứu chạy thử đạt kết thành công ban đầu, sản phẩm khí N2 đạt độ tinh khiết 95,5% Tuy nhiên, hệ thống chưa làm việc ổn định, độ tinh khiết sản phẩm khí N2 cịn thấp chưa có thiết bị đo lưu lượng, áp suất có độ xác cao để nghiên cứu, khảo sát yếu tố ảnh hưởng đến tính ổn định độ tinh khiết sản phẩm; đặc biệt chưa nghiên cứu mơ hình hóa tối ưu toàn hệ thống thiết bị, thời gian làm việc hệ thống Dựa phân tích nêu trên, hướng dẫn TS Nguyễn Thu Hà, em định lựa chọn đề tài: “NGHIÊN CỨU, THIẾT KẾ BỘ ĐIỀU KHIỂN DỰ BÁO (MPC) VÀ TỐI ƯU HĨA THIẾT BỊ TÁCH KHÍ NITƠ BẰNG CHU TRÌNH HẤP PHỤ THAY ĐỔI ÁP SUẤT (PSA)” đề tài tốt nghiệp Thạc sĩ 1.2 Mục đích đề tài Đề tài thực để đạt mục đích sau: - Tìm hiểu tổng quan thiết bị tách khí Nitơ chu trình hấp phụ thay đổi áp suất (PSA) - Thu thập liệu mơ hình hóa hệ thống PSA - Thiết kế điều khiển dự báo MPC - Tiến hành mô đánh giá chất lượng điều khiển - Thu thập liệu vào - đánh giá hiệu suất hoạt động hệ thống PSA - Xây dựng huân luyện mạng nơron xấp xỉ mối quan hệ vào -ra - Tối ưu hóa chất lượng hệ thống PSA 1.3 Đối tượng phạm vi nghiên cứu đề tài Đối tượng nghiên cứu cụ thể đề tài thiết bị tạo khí N2 sử dụng chu trình hấp phụ thay đổi áp suất vật liệu hấp phụ, rây phân tử CMS Để thuận tiện cho việc lấy số liệu thiết kế điều khiển, mơ hình máy tách N2 từ khơng khí xây dựng khai thác dựa phần mềm mô q trình hóa học Aspen Plus [2] Thiết bị tách N2 sử dụng mô bao gồm cột hấp phụ cố định làm việc theo bước Mỗi cột hoạt động luân phiên hai nửa chu kỳ thời gian Quan hệ hấp phụ cân tuân theo đẳng nhiệt hấp phụ Langmuir, với giá trị số hấp phụ cân N2 O2 có sẵn 1.4 Ý nghĩa khoa học đề tài Các kết nghiên cứu mơ hình hóa tối ưu hóa thiết bị tạo khí N2 sử dụng chu trình thay đổi áp suất ứng dụng vào việc thiết kế, chế tạo cài đặt tham số làm việc thiết bị tạo khí N2 với hiệu suất độ tinh khiết cao nhất, ổn định Vì thiết bị tạo khí N2 hoạt động theo bước chu trình, nên việc áp dụng lý thuyết điều khiển dành cho hệ rời rạc, hệ lai định hướng phát triển hợp lý để cải thiện tích hợp kết thu phục vụ cho chủ động thiết kế, chế tạo cung cấp thiết bị tạo khí N2 cho đơn vị, thị trường nước 1.5 Nội dung đề tài Nội dung đề tài trình bày chương: Chương 1: Mở đầu Chương 2: Tổng quan chu trình hấp phụ thay đổi áp suất Chương đưa số định nghĩa liên quan đến trình PSA như; hấp phụ, nhả hấp phụ, vật liệu hấp phụ Sau đó, bước hoạt động chu trình PSA mơ tả chi tiết, thông số đánh giá chất lượng hoạt động hệ trình bày Chương 3: Mơ hình hóa hệ thống PSA Phương trình vi phân đạo hàm riêng (PDAE) mơ tả mơ hình động học đối tượng xây dựng từ phương trình bảo tồn vật lý, hóa học, biểu thị phụ thuộc nồng độ dịng khí sản phầm vào tọa độ dọc trục thời gian Vì đặc tính phức tạp u cầu khối lượng tính tốn lớn phương trình PDAE không phù hợp để thiết kế điều khiển, mô hình xấp xỉ dạng Hammerstein-Wiener xây dựng, đánh giá công cụ System Identification Toolbox MATLAB [3] Dữ liệu cung cấp để nhận dạng hệ thống lấy từ số liệu chạy mô nhiều lần phần mềm mơ q trình Aspen Adsorption [2] Chương 4: Thiết kế điều khiển cho hệ thống PSA Từ mô hình xấp xỉ dạng Hammerstein-Wiener thu được, phân tích đưa phương án thiết kế điều khiển nhằm loại bỏ khâu phi tuyến đầu đầu mơ hình Bộ điều khiển MPC thiết kế dựa hệ phương trình khơng gian trạng thái tuyến tính Tiến hành chạy mơ Simulink kết hợp với phần mềm Aspen Adsorption để đánh giá chất lượng điều khiển Chương 5: Tối ưu hóa tham số hoạt động hệ thống PSA Mối liên hệ độ tinh khiết độ thu hồi sản phẩm xây dựng dưa mơ hình mạng nơron nhân tạo (Artificial Neural Network – ANN) Mối liên hệ sau khai thác làm điều kiện ràng buộc để tối ưu hóa hiệu suất hoạt động hệ thống PSA Hiệu mơ hình mạng nơron nhận tạo đánh giá dựa so sánh với kết chạy mô Aspen Adsorption Chương 6: Kết luận Các nội dung nhiệm vụ nghiên cứu, thiết kế đồ án thể sơ đồ khối Hình 1.1 Hình 1.1: Các nội dung nhiệm vụ phân tích, thiết kế đồ án CHƯƠNG TỔNG QUAN VỀ CHU TRÌNH HẤP PHỤ THAY ĐỔI ÁP SUẤT 2.1 Giới thiệu Chu trình hấp phụ thay đổi áp suất (PSA) chu trình sử dụng để tách một vài loại khí khỏi hỗn hợp, dựa đặc tính vật liệu hấp phụ hấp phụ một/một vài loại khí áp suất cho trước nhả hấp phụ khí áp suất thấp định Chu trình bao gồm bước tuần hoàn liên tục thay đổi qua lại hai trình hấp phụ áp suất cao giải hấp áp suất thấp hơn, mà tên gọi chu trình có cụm từ “thay đổi áp suất” Trong đồ án này, đối tượng nghiên cứu thiết bị tách khí Nitơ sử dụng chu trình hấp phụ thay đổi áp suất, gồm hai cột hấp phụ, thể Hình 2.1: Hình 2.1: Chu trình hấp phụ thay đổi áp suất, hai cột hấp phụ (v – van, A – cột hấp phụ) [7] chế) Quá trình tăng áp (với đầu vào sản phẩm tinh chế) Quá trình hấp phụ (giữ đầu vào áp suất cao đồng thời lấy sản phẩm tinh Q trình hạ áp (có thể xi dịng ngược dịng đầu vào) Q trình nhả hấp phụ áp suất nhỏ áp suất làm việc: thực phương pháp hút chân không, tái sinh cột sản phẩm tinh khiết Hình 5.3: So sánh mơ hình xấp xỉ ANN với mơ hình Aspen Adsorption 5.2 Tối ưu hóa tham số hoạt động hệ thống PSA Mơ hình mạng nơron sau huấn luyện kiểm thử so sánh phần mềm Aspen Adsorption sử dụng để tính tốn hiệu suất hoạt động hệ thống PSA, đồng thời hàm sinh mơ hình kết hợp với hàm tối ưu fmincon MATLAB Hàm mục tiêu để đánh giá hiệu suất hoạt động hệ thống PSA liên quan đến cặp giá trị đầu độ tinh khiết (Pur) độ thu hồi (Rec) Hàm mục tiêu J mơ tả phương trình 5.4 PT 𝐽𝐽 = −[𝛼𝛼 ∗ 𝑅𝑅𝑅𝑅𝑅𝑅 + (1 − 𝛼𝛼 ) ∗ 𝑃𝑃𝑃𝑃𝑃𝑃] ; ≤ 𝛼𝛼 ≤ 𝑠𝑠 𝑡𝑡 : > 𝑃𝑃𝑃𝑃𝑃𝑃 > 0.94, 100 > 𝑅𝑅𝑅𝑅𝑅𝑅 > 80 𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏 : [2.6,100] 𝑣𝑣à 𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏: [3.5,150] 5.4 Hàm fmincon MATLAB thường dùng để tìm cực tiểu hàm mục tiêu với điều kiện ràng buộc điều kiện biên cho trước Điều kiện biên cặp biến đầu vào là: 2.6 ≤ 𝑝𝑝 ≤ 3.5 (𝑏𝑏𝑏𝑏𝑏𝑏) 𝑣𝑣à 100 ≤ 𝑡𝑡 ≤ 150 (𝑠𝑠) PT 5.5 32 Điều kiện ràng buộc bao gồm thành phần trì độ tinh khiết Pur ≥ 0.94, độ thu hồi Rec ≥ 80% ràng buộc phi tuyến hàm thu từ mơ hình xấp xỉ mạng nơron Trọng số α thể ràng buộc mục tiêu điều khiển tối ưu hóa độ tinh khiết độ thu hồi sản phẩm Một cách tổng quát, cần tăng độ thu hồi cần tăng trọng số α ngược lại, giảm trọng số α để tăng độ tinh khiết Kết thu chọn α = 0.5, 0.1 0.9 với sai số nhỏ mơ hình xấp xỉ mạng nơron ANN mô Aspen Adsorption Hệ số α Giá trị tối ưu ANN xấp xỉ Sai số (%) Kiểm tra Aspen 0.5 [2.6877,132.7302] [0.9494, 92.3284] [0.9489, 92.324] [0.052,0.0048] 0.1 [3.3506,120.0096] [0.9585,87.6663] [0.9576,87.6678] [0.093,0.0017] 0.9 [2.6512,138.5226] [0.9450,94.6523] [0.9458,94.6501] [0.084,0.0023] Bảng 5.1: Kết tối ưu hóa tham số hệ thống PSA 33 CHƯƠNG KẾT LUẬN 6.1 Kết luận Sau thời gian tích cực nghiên cứu thực đề tài: “Nghiên cứu, thiết kế điều khiển dự báo (MPC) tối ưu hóa thiết bị tách khí Nitơ chu trình hấp phụ thay đổi áp suất (PSA)”, đề tài thu kết sau: - Nắm bắt thiết kế, cấu tạo nguyên lý làm việc thiết bị tách khí Nitơ chu trình hấp phụ thay đổi áp suất - Hiểu phức tạp đặc tính động học chu trình PSA, giải phương trình PDAE mơ tả động học đối tượng - Đưa đánh giá hướng giải để xấp xỉ mơ hình gốc mơ hình đơn giản hơn, phục vụ cho mục đích thiết kế điều khiển - Tìm hiểu ứng dụng phần mềm mơ q trình hóa học Aspen Adsorption để thu thập liệu vào-ra Ứng dụng công cụ MATLAB System Identification, Simulink, Neural net fitting tool - Thiết kế đánh giá chất lượng hệ kín với điều khiển MPC kết hợp phản hồi trạng thái, so sánh kết mô với điều khiển FPD+I - Xây dựng mơ hình mạng noron (ANN) xấp xỉ để đánh giá hiệu hoạt động hệ PSA, từ tìm điểm tối ưu độ thu hồi độ tinh khiết toàn thiết kế 6.2 Hướng phát triển đồ án tương lai - Nghiên cứu, cải thiện chất lượng điều khiển trước tác động nhiễu đo - Sử dụng mạng nơron để xấp xỉ mơ hình chu trình PSA, so sánh với kết sử dụng System Identification Toolbox - Sử dụng giải thuật di truyền (GA) hay giải thuật bầy đàn (PSO) để tìm giá trị tối ưu thay sử dụng hàm fmincon - Vì chu trình PSA hoạt động mang tính chu kì động học hệ thống diễn biễn theo kiện thời điểm đóng mở van, nghiên cứu mở rộng với hệ rời rạc, hệ lai 34 TÀI LIỆU THAM KHẢO [1] PSE, “gPROMS - Home - Process Systems Enterprise” [Online] Đường dẫn: https://www.psenterprise.com/products/gproms [2] AspenTech, “Aspen Adsorption” [Online] Đường dẫn: https://www.aspentech.com/en/products/pages/aspen-adsorption [3] Lennart Ljung, “System Identification Toolbox™ User's Guide”, MathWork, March 2018 [4] MATLAB, “Identifying Hammerstein-Wiener Models” [Online] Đường dẫn: https://www.mathworks.com/help/ident/ug/identifying-hammersteinwiener-models.html [5] Victor H B Teles, Jornandes, Danilo Silva; “Pressure Swing Adsorption Technology using 5A Zeolite for the Removal of H2S in Fixed Bed Reactor”, Allen Institute for Artificial Intelligence, 2015 [6] ETH Zurich, “Multiparametric Toolbox 3.0 Function Reference”, December 9, 2013 [7] TS Vũ Đình Tiến, “Thiết bị tạo khí Nitơ theo chu trình hấp phụ thay đổi áp suất” [Poster], Viện Kĩ thuật hóa học, Đại học Bách Khoa Hà Nội [8] Hà Văn Hảo, Vũ Đình Tiến, “Mơ q trình làm việc thiết bị tạo khí nitơ chu trình hấp phụ thay đổi áp suất”, Tạp chí Xúc tác Hấp phụ, No.3 (2015) 165-169 [9] Vũ Đình Tiến, Bài giảng hấp phụ chu trình hấp phụ, 2017 [10] Bitzer, M., “Model-based nonlinear tracking control of pressure swing adsorption plants.” In: Meurer, T., Graichen, K., Gilles, E.-D (Eds.), Control and Observer Design for Nonlinear Finite and Infinite Dimensional Systems Vol 322/2005 of Lecture Notes in Control and Information Sciences, Springer Berlin / Heidelberg, pp 403–418 [11] Bitzer, M., Zeitz, M., “Design of a nonlinear distributed parameter observer for a pressure swing adsorption plant”, Journal of Process Control 12 (4), 2002, 533 – 543 [12] Torre, V D L., Fox, V G., Bandoni, J A., Biegler, L T., “Modelpredictive controller for periodic adsorption processes” In: ENPROMER,2nd Mercosur Congress on Chemical Engineering 2005 [13] Harish Khajuria, Efstratios N Pistikopoulos, “Dynamic modeling and explicit/multi-parametric MPC control of pressure swing adsorption systems”, Journal of Process Control 21 (2011) 151–163 [14] Nguyễn Doãn Phước, “Điều khiển dự báo theo mơ hình”, Slide giảng, [Online] 35 [15] Jesse Y Rumbo Morales, Guadalupe López López, Víctor M Alvarado Martínez, Felipe de J Sorcia Vázquez, Jorge A Brizuela Mendoza, Mario Martínez García, “Parametric study and control of a pressure swing adsorption process to separate the water-ethanol mixture under disturbances”, Separation and Purification Technology 2020, 236 , 116214 [16] Dan Simon, “Optimal State Estimation: Kalman, H∞, and Nonlinear Approaches”, Wiley-Interscience; 1st edition (June 23, 2006) [17] Hoàng Minh Sơn, “Bài giảng Điều khiển trình nâng cao, Chương 4: Điều khiển dự báo (Model-based Predictive Control)", 2009 [18] Eisa Bashier M Tayeb and A Taifour Ali, “Comparison of some Classical PID and Fuzzy Logic Controllers”, International Journal of Scientific & Engineering Research, Volume 3, Issue 9, September-2012 [19] Phạm Văn Chính, Vũ Đình Tiến, Lê Quang Tuấn, “Nghiên cứu mơ thiết bị tách khí ni tơ theo chu trình hấp phụ áp suất thay đổi (PSA) phần mềm Aspen Adsorption”, Tạp chí Cơng Thương số + tháng 4/2018 [20] Liang Tong, Pierre Bénard, Yi Zong, Richard Chahine, Kun Liu, Jinsheng Xiao, “Artificial neural network based optimization of a six-step two-bed pressure swing adsorption system for hydrogen purification”, Energy and AI 2021, , 100075 36 PHỤ LỤC A1 Các phương trình đặc trưng mơ hình động học hệ thống PSA Các phương trình đặc trưng mơ hình động học hệ thống PSA sử dụng để lập trình chương trình gPROMS, liệt kê Phương trình cân khối lượng: 𝜕𝜕𝑞𝑞𝑖𝑖 𝜕𝜕 𝐶𝐶𝑖𝑖 𝜕𝜕𝐶𝐶𝑖𝑖 𝜕𝜕𝜕𝜕𝐶𝐶𝑖𝑖 �𝜀𝜀 + (1 − 𝜀𝜀)𝜀𝜀𝑝𝑝 � + + 𝜌𝜌𝑝𝑝 (1 − 𝜀𝜀) = 𝜀𝜀𝐷𝐷𝑎𝑎𝑎𝑎 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕 𝜕𝜕𝑧𝑧 Phương trình cân lượng: 𝑁𝑁𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝜕𝜕�𝑇𝑇 ∑𝑖𝑖=1 𝜆𝜆 𝜕𝜕2 𝑇𝑇 𝜕𝜕𝑧𝑧 𝐶𝐶𝑖𝑖 �𝐶𝐶𝑝𝑝𝑝𝑝 −𝑅𝑅�� 𝜕𝜕𝜕𝜕 + 𝑁𝑁𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝜕𝜕�𝑈𝑈𝑈𝑈 ∑𝑖𝑖=1 𝜕𝜕𝜕𝜕 𝐶𝐶𝑖𝑖 𝐶𝐶𝑝𝑝𝑝𝑝 � + 𝜌𝜌𝑝𝑝 𝐶𝐶𝑝𝑝𝑠𝑠 1−𝜀𝜀 𝜕𝜕𝜕𝜕 𝜀𝜀 𝜕𝜕𝜕𝜕 1−𝜀𝜀 + 𝜌𝜌𝑝𝑝 𝜀𝜀 𝑁𝑁 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 ∑𝑖𝑖=1 𝜕𝜕𝑞𝑞𝑖𝑖 𝜕𝜕𝜕𝜕 ∆𝐻𝐻𝑖𝑖 = Trong đó, 𝐶𝐶𝑝𝑝 nhiệt dung đẳng áp pha khí [J/mol.K] 𝐶𝐶𝑝𝑝 nhiệt dung riêng chất hấp phụ [J/kg.K] 𝑅𝑅 số khí lý tưởng [J/mol.K] 𝜆𝜆 hệ số phân tán nhiệt dọc trục [W/m.K] ∆𝐻𝐻 nhiệt trình hấp phụ [J/mol] Phương trình cân động lượng: 𝑁𝑁𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 1.75(1 − 𝜀𝜀) ∑𝑖𝑖=1 𝜕𝜕𝜕𝜕 150𝜇𝜇(1 − 𝜀𝜀)2 = 𝑈𝑈 + − 𝜀𝜀 𝐷𝐷𝑝𝑝3 𝜀𝜀 𝐷𝐷𝑝𝑝 𝜕𝜕𝜕𝜕 Phương trình tốc độ hấp phụ: 𝜕𝜕𝑞𝑞𝑖𝑖 = 𝐾𝐾𝐿𝐿𝐿𝐿𝐹𝐹𝑖𝑖 (𝑞𝑞𝑖𝑖∗ − 𝑞𝑞𝑖𝑖 ) 𝜕𝜕𝜕𝜕 Với 𝐾𝐾𝐿𝐿𝐿𝐿𝐿𝐿 = 𝐾𝐾 số tỷ lệ LDF 𝐶𝐶𝑖𝑖 𝑀𝑀𝑊𝑊𝑖𝑖 |𝑈𝑈|𝑈𝑈 Phương trình đẳng nhiệt hấp phụ Langmuir: 𝑞𝑞𝑖𝑖∗ 𝑞𝑞𝑖𝑖𝑚𝑚𝑚𝑚𝑚𝑚 = 𝑎𝑎𝑖𝑖 𝐾𝐾𝑖𝑖 𝐶𝐶𝑖𝑖 𝑅𝑅𝑅𝑅 �1 − 𝑁𝑁𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑞𝑞𝑖𝑖∗ � � 𝑚𝑚𝑚𝑚𝑚𝑚 𝑞𝑞𝑖𝑖 𝑖𝑖=1 𝑎𝑎𝑖𝑖 �� Với 𝑞𝑞𝑖𝑖𝑚𝑚𝑚𝑚𝑚𝑚 tải lượng hấp phụ cân lớn [mol/kg] A2 Bộ liệu chạy Aspen Adosorption để huấn luyện mạng nơron ANN xấp xỉ Áp suất hấp Thời gian hấp Độ tinh khiết Độ thu hồi (Rec phụ (p – bar) phụ (t - s) (Pur) %) 3.045 120 0.949470788 82.4645 3.045 110 0.9503 80.8887 3.045 130 0.948542083 84.1332 3.045 135 0.948041475 85.0099 3.045 105 0.950675028 80.1324 3.145 120 0.949336749 80.712 37 3.245 120 0.949172203 79.1436 3.345 120 0.948982181 77.7346 3.445 120 0.948760442 76.4643 2.945 120 0.949593795 84.4313 2.845 120 0.949682595 86.6744 2.745 120 0.94973753 89.0329 2.645 120 0.949765994 91.662 2.645 110 0.950394109 90.372 2.745 110 0.950416756 87.6557 2.845 110 0.950412564 85.2182 2.945 110 0.950373893 82.9096 3.145 110 0.950212681 79.0892 3.245 110 0.950093038 77.4789 3.345 110 0.949945833 76.0325 3.445 110 0.949765482 74.7286 3.445 130 0.947644609 78.2999 3.345 130 0.947909791 79.5346 3.245 130 0.948145094 80.9044 3.145 130 0.94835747 82.4293 2.945 130 0.948717702 86.0449 2.845 130 0.948861027 88.2227 2.745 130 0.948971507 90.503 2.645 130 0.949056211 93.046 2.645 135 0.948671822 93.781 2.745 135 0.948557491 91.28 2.845 135 0.948417506 89.0381 2.945 135 0.948245124 86.8935 3.145 135 0.947830001 83.3311 3.245 135 0.947592 81.8288 3.345 135 0.947333747 80.4796 3.445 135 0.947046339 79.2636 3.445 105 0.950224241 73.8945 3.345 105 0.950384846 75.2145 3.245 105 0.950511744 76.679 3.145 105 0.950610201 78.3098 2.945 105 0.950726556 82.1801 38 2.845 105 0.95074194 84.5217 2.745 105 0.950722664 87.0004 2.645 105 0.95067647 89.761 A3 AMSimulation để kết nối Aspen Adsorption với MATLAB function AMSimulation(block) %% %% Block parameters are: %% Input file name (string wrapped in single quotes) i.e 'SumDyn.acmf' %% %% AM application type (string wrapped in single quotes): %% Aspen Custom Modeler = 'ACM Application' %% Aspen Dynamics = 'AD Application' %% Aspen Adsim = 'ADS Application' %% Aspen Chromatography = 'CHM Application' %% %% Number of inputs to block (integer) i.e %% %% Backslash \ separated list of AM variable names in input port number %% order (string wrapped in single quotes) i.e 'B1.T,B3.SubBlock.Flow' %% The variable must exist or the run will be terminated %% If in a specific unit of measurement use the pipe symbol to append %% the units i.e 'B1.T|K,B3.SubBlock.Flow|kmol/hr' %% The units of measurement must exists or the run will be terminated %% %% Number of outputs from block (integer) i.e %% %% Backslash \ separated list of AM variable names in output port %% number order (string wrapped in single quotes) i.e 'B3.OutFlow' %% If in a specific unit of measurement use the pipe symbol to append %% the units i.e 'B3.OutFlow|lbmol/min' %% %% Make AM application visible during run (logical) i.e true %% %% Filter for variables marked as inputs/outputs (logical) i.e true %% %% Always open Aspen Modeler on simulink model open (logical) i.e true %% setup(block); %endfunction %% Function: setup =================================================== %% Abstract: %% Set up the S-function block's basic characteristics such as: %% - Input ports %% - Output ports %% - Dialog parameters %% - Options %% %% C-Mex S-function counterpart: mdlInitializeSizes %% function setup(block) 39 %disp('AMSimulation: Setup called '); %global AMObjects[10] % Setup port properties to be inherited or dynamic block.SetPreCompInpPortInfoToDynamic; block.SetPreCompOutPortInfoToDynamic; % Do not persist UserData in input file %set_param ( gcb, 'UserDataPersistent', 'off' ); % Register parameters block.NumDialogPrms = 9; % Input file, Application type, #Inputs, InputVarList, #Outputs, OutputVarList, VisibleAM, FilterVars, OpenAMOnOpen block.DialogPrmsTunable = {'Nontunable','Nontunable','Nontunable','Nontunable','Nontunable','Non tunable','Nontunable','Nontunable','Nontunable'}; % Register number of ports block.NumInputPorts = fix(block.DialogPrm(3).Data); block.NumOutputPorts = fix(block.DialogPrm(5).Data); % Override input port properties for ii = 1:fix(block.DialogPrm(3).Data) block.InputPort(ii).DatatypeID = 0; %double block.InputPort(ii).Complexity = 'Real'; block.InputPort(ii).SamplingMode = 0; block.InputPort(ii).Dimensions = 1; end % Override output port properties for ii = 1:fix(block.DialogPrm(5).Data) block.OutputPort(ii).DatatypeID = 0; %double block.OutputPort(ii).Complexity = 'Real'; block.OutputPort(ii).SamplingMode = 0; block.OutputPort(ii).Dimensions = 1; end %% %% Register sample times %% % [0 offset] : Continuous sample time % [positive_num offset] : Discrete sample time % % [-1, 0] : Port-based sample time % [-2, 0] : Variable sample time block.SampleTimes = [-1, 0]; %% %% Options %% % Specify if Accelerator should use TLC or call back into % M-file block.SetAccelRunOnTLC(false); %% %% Register methods called during update diagram/compilation %% block.RegBlockMethod('CheckParameters', @CheckUserParameters); %% %% Register methods called at run-time %% %block.RegBlockMethod('InitializeConditions', @InitializeConditions); block.RegBlockMethod('Start', @Start); block.RegBlockMethod('Outputs', @Outputs); block.RegBlockMethod('SimStatusChange', @SimStatusChange); block.RegBlockMethod('Terminate', @Terminate); 40 %endfunction %% %% Local functions %% function CheckUserParameters(block) %% %% CheckParameters: %% Required : No %% Functionality : Called in order to allow validation of %% block's dialog parameters User is %% responsible for calling this method %% explicitly at the start of the setup method %% C-Mex counterpart: mdlCheckParameters %% %endfunction function Start(block) %% %% Start: %% Required : No %% Functionality : Called in order to initalize state and work %% area values %% C-Mex counterpart: mdlStart %% %disp('AMSimulation: Start called '); %last check % if strcmp( get_param(gcb,'Parameters'), '' ) % error( 'AMSimulation: Blank block parameters, open configure form!' ); % end if strcmp( block.DialogPrm(1).Data, '' ) error( 'AMSimulation: Aspen Modeler input file not defined!' ); end if strcmp( block.DialogPrm(4).Data, '[Undefined]' ) error( 'AMSimulation: Aspen Modeler input variables not defined!' ); end if strcmp( block.DialogPrm(6).Data, '[Undefined]' ) error( 'AMSimulation: Aspen Modeler output variables not defined!' ); end % Create instance of Aspen Modeler controller if not already loaded global AMControl if ~strcmp( class(AMControl), 'COM.AMSimulation_Control' ) AMControl = actxserver ( 'AMSimulation.Control' ); end % Persist the AM controller for other calls %(why does UserData get changed when you open another block?) %set_param( gcb, 'UserData', AMControl ); %AMObjects(block.DialogPrm(8).Data) = AMControl; % Start up the AM application and set up input/output variables %disp('AMSimulation: Loading model '); try bRet = invoke( AMControl, 'StartRun', pwd, block.DialogPrm(1).Data, block.DialogPrm(2).Data, block.DialogPrm(3).Data, block.DialogPrm(4).Data, block.DialogPrm(5).Data, block.DialogPrm(6).Data, block.DialogPrm(7).Data ); catch 41 error( lasterr ); end %disp('AMSimulation: Loaded model '); %endfunction function Outputs(block) %% %% Outputs: %% Required : Yes %% Functionality : Called to generate block outputs in %% simulation step %% C-Mex counterpart: mdlOutputs %% %disp(strcat('AMSimulation: Output called ',num2str(block.CurrentTime))); % Get persisted AM controller global AMControl %global AMObjects[10] %(why does UserData get changed when you open another block?) %AMControl = get_param( gcb, 'UserData' ); %AMControl = AMObjects(block.DialogPrm(8).Data); %do we have a valid block stored if strcmp(class(AMControl),'COM.AMSimulation_Control') try % Send new input values invoke( AMControl, 'UpdateInputs', block.DialogPrm(1).Data ); for ii = 1:fix(block.DialogPrm(3).Data) if invoke( AMControl, 'SetInputValue', ii, block.InputPort(ii).Data, block.DialogPrm(1).Data ) == false error( 'AMSimulation: Could not send new inputs!' ); end end % Execute run if invoke( AMControl, 'Run', block.CurrentTime, block.DialogPrm(1).Data ) == false error( 'AMSimulation: Could not execute run!' ); end % Get new output values for ii = 1:fix(block.DialogPrm(5).Data) block.OutputPort(ii).Data = invoke( AMControl, 'GetOutputValue', ii, block.DialogPrm(1).Data ); end catch error( lasterr ); end else error( 'AMSimulation: Invalid object in store!' ); end %endfunction function SimStatusChange(block, s) %% %% SimStatusChange: %% Required : No %% Functionality : Called when simulation goes to pause mode %% or continnues from pause mode %% C-Mex counterpart: mdlSimStatusChange %% % if s == % disp('AMSimulation: Pause has been called '); % elseif s == % disp('AMSimulation: Continue has been called '); % end 42 %endfunction function Terminate(block) %% %% Terminate: %% Required : Yes %% Functionality : Called at the end of simulation for cleanup %% C-Mex counterpart: mdlTerminate %% %disp('AMSimulation: Terminate called '); % Get persisted AM controller global AMControl %global AMObjects[10] %(why does UserData get changed when you open another block?) %AMControl = get_param( gcb, 'UserData' ); %AMObjects(block.DialogPrm(8).Data) = AMControl; if strcmp(class(AMControl),'COM.AMSimulation_Control') % Shutdown AM instance invoke( AMControl, 'Terminate', block.DialogPrm(1).Data ); % Delete control object if no other sessions are loaded if invoke( AMControl, 'SessionCount' ) == AMControl.delete end end %endfunction A4 Chương trình điều khiển MPC MATLAB Chương trình chính: clear; clc; close all; global LinearParams; load('LinearParamsData.mat'); global PSA_Ident InputNonLinear OutputNonLinear; load('PSA_Model.mat'); PSA_Ident = PSA.PSA_Ident; InputNonLinear = PSA.InputNonLinear; OutputNonLinear= PSA.OutputNonLinear; global MPC KF ref_line; MPC = MPC_Parameters; KF = KF_Params; ref_line = 0.955; Ts = 1; Tend = 20; global xk uk ukm1 y0_linear uk_NonLinear ref_lin; xk = 0; x_hat_km1 = KF.xhat0; P_km1 = KF.P0; ukm1 = 0; uk = 0; uk_NonLinear = InverseInputNonLinear(uk); num = cell2mat(PSA_Ident.B); den = cell2mat(PSA_Ident.F); y0_linear = 0; y_store = []; u_store = [uk_NonLinear]; sys = 'test01_2015b'; 43 load_system(sys); ref = 0.955; ref_lin = InverseOutputNonLinear(ref); for (k = : Tend) sim(sys); y_lin_k = InverseOutputNonLinear(y_linear(end)); MPC.y_lin_store = [MPC.y_lin_store, y_lin_k]; [x_hat_k, P_k] = KalmanFilter(x_hat_km1, P_km1); MPC.x_new = [x_hat_k-x_hat_km1; y_lin_k(end)]; uk = MPC_Controller; MPC.u_store = [MPC.u_store, uk]; uk_NonLinear = InverseInputNonLinear(uk); u_store = [u_store, uk_NonLinear]; x_hat_km1 = x_hat_k; P_km1 = P_k; y0_linear = y_linear(end); y_store = [y_store, y_real(end)]; end sim(sys); y_store = [y_store, y_real(end)]; figure; time_k = [0, 1:Tend]; plot(time_k, ref*ones(size(y_store)), ' ','linewidth', 2); hold on; plot(time_k, y_store, 'linewidth', 2); grid on; title('Purity') legend('Setpoint', 'Actual'); figure; stairs(time_k, u_store, 'linewidth', 2); title('Control input') grid on; Thống số lọc Kalman function KF = KF_Params() Q = diag([0.01 0.01 0.01]); R = 1e-4; xhat0 = [1e-3; 1e-3; 1e-3]; P0 = diag([1e-4 1e-4 1e-4]); KF.Q = Q; KF.R = R; KF.xhat0 = xhat0; KF.P0 = P0; end Tính toán lọc Kalman function [x_hat_k, P_k] = KalmanFilter(x_hat_km1, P_km1) global KF MPC LinearParams; Q = KF.Q; R = KF.R; u_km1 = MPC.u_store(end); y_lin_k = MPC.y_lin_store(end); nx = LinearParams.nx; A_lin = LinearParams.A_lin; B_lin = LinearParams.B_lin; C_lin = LinearParams.C_lin; 44 % time update x_hat_k_minus = A_lin * x_hat_km1 + B_lin * u_km1; P_k_minus = A_lin * P_km1 * A_lin' + Q; % measurement update Kk = P_k_minus * C_lin' * inv(C_lin*P_k_minus*C_lin' + R); x_hat_k = x_hat_k_minus + Kk * (y_lin_k - C_lin*x_hat_k_minus); P_k = (eye(nx) - Kk * C_lin)*P_k_minus; end Bộ điều khiển MPC function uk = MPC_Controller() global MPC LinearParams; Ny = MPC.Ny; Nu = MPC.Nu; nx = LinearParams.nx; ny = LinearParams.ny; nu = LinearParams.nu; u_km1 = MPC.u_store(end); % cost function CostFunc = @MPC_CostFunc; % solve cost function % Delta_U_vec = fminsearch(CostFunc, repmat(u_km1, Nu, 1)); nonlcon = @MPC_Contranints; Delta_U_vec = fmincon(CostFunc, zeros(nu*Nu, 1), [], [], [], [], [], [], nonlcon); delta_u_k = Delta_U_vec(1:nu); uk = u_km1 + delta_u_k; end function [c, ceq] = MPC_Contranints(Delta_U_vec) Delta_U_vec = Delta_U_vec(:); global MPC LinearParams; Nu = MPC.Nu; u_km1 = MPC.u_store(end); nu = LinearParams.nu; U_vec = [u_km1; Delta_U_vec(1:(Nu-1)*nu)]; U_new_vec = U_vec + Delta_U_vec; ceq = []; c = [U_new_vec-0.0556*ones(size(Delta_U_vec)); -U_new_vec]; end function J = MPC_CostFunc(Delta_U_vec) global MPC LinearParams ref_lin; lambda = MPC.lambda; H = MPC.H; P = MPC.P; x_new = MPC.x_new; ny = LinearParams.ny; Delta_U_vec = Delta_U_vec(:); 45 Ref_lin = repmat(ref_lin, ny, 1); J1 = Ref_lin - H * Delta_U_vec - P * x_new; J = J1'*J1 + Delta_U_vec' * lambda * Delta_U_vec; end function MPC = MPC_Parameters() global LinearParams; A_lin = LinearParams.A_lin; B_lin = LinearParams.B_lin; C_lin = LinearParams.C_lin; nx = LinearParams.nx; ny = LinearParams.ny; A = [A_lin, zeros(nx, ny); C_lin*A_lin, eye(ny)]; B = [B_lin; C_lin * B_lin]; C = [zeros(ny, nx), eye(ny)]; Ny = 5; Nu = 5; Pcell = cell(Ny, 1); for (i = : Ny) Pcell{i, 1} = C * A ^ i; end P = cell2mat(Pcell); Hcell = cell(Ny, Nu); for (i = : Ny) for (j = : Nu) Hcell{i, j} = zeros(size(C*B)); end end for (i = : Ny) if (i < Nu) NumCol = i; else NumCol = Nu; end for (j = : NumCol) Hcell{i, j} = C * A^(i-1) * B; end end H = cell2mat(Hcell); MPC.Ny = Ny; MPC.Nu = Nu; % MPC.lambda = 1e-6; MPC.lambda = 1e-2; MPC.P = P; MPC.H = H; MPC.u_store = [0]; MPC.y_lin_store = [0]; end 46 ... khơng khí hóa lỏng Việc nghiên cứu mơ tối ưu hóa thiết bị tạo khí N2 sử dụng chu trình hấp phụ thay đổi áp suất (PSA) Việt Nam Thiết bị tạo khí N2 sử dụng chu trình hấp phụ thay đổi áp suất vật... thời gian nghiên cứu thực hiện, đến đồ án tốt nghiệp với đề tài: ? ?Nghiên cứu, thiết kế điều khiển dự báo (MPC) tối ưu hóa thiết bị tách khí Nitơ chu trình hấp phụ thay đổi áp suất (PSA)? ?? TS Nguyễn... hấp phụ hấp phụ một/một vài loại khí áp suất cho trước nhả hấp phụ khí áp suất thấp định Chu trình bao gồm bước tuần hoàn liên tục thay đổi qua lại hai trình hấp phụ áp suất cao giải hấp áp suất