TÓM TẮT
Sự tích hợp của Bộ công cụ EPANET và MATLAB mở ra khả năng can thiệp vào mã nguồn của phần mềm tính toán thủy lực, cung cấp nền tảng cho việc phát triển các ứng dụng đa dạng. Điều này trở thành khả thi nhờ tính mở của mã nguồn và khả năng kết hợp với nhiều ngôn ngữ lập trình khác nhau như Python, C, giúp tối ưu hóa hiệu suất và mở rộng tính năng. Các phần mềm thương mại như WaterGEMS thường giới hạn quyền truy cập vào các giải thuật, không cho phép người dùng tùy chỉnh theo nhu cầu cụ thể. Trong khi đó, sự kết hợp giữa MATLAB và EPANET Toolkit không chỉ mang lại sức mạnh tính toán mạnh mẽ từ MATLAB mà còn giải quyết các bài toán thủy lực một cách linh hoạt, giúp người dùng tận dụng đầy đủ khả năng của hệ thống mà không bị giới hạn, từ đó phục vụ các nhu cầu cụ thể của đơn vị quản lý cấp nước và tạo ra cơ hội cho việc phát triển các ứng dụng chuyên sâu. Các ứng dụng này có thể bao gồm việc dự đoán tiêu thụ nước, tối ưu hóa hệ thống phân phối, và giảm thiểu tổn thất nước. Bài báo này cũng giới thiệu một ứng dụng hỗ trợ tối ưu vị trí lắp đặt cảm biến áp suất, được xây dựng dựa trên nền tảng của EPANET Toolkit và MATLAB.
Từ khóa: EPANET Toolkit,MATLAB, cấp nước, ứng dụng, phần mềm
1. ĐẶT VẤN ĐỀ
Cùng với cuộc cách mạng công nghiệp 4.0, việc ứng dụng công nghệ thông tin trong quản lý cấp nước đô thị là xu hướng tất yếu và là công cụ hỗ trợ đắc lực cho mọi hoạt động của các doanh nghiệp cấp nước đô thị, đảm bảo cấp nước an toàn, sẵn sàng ứng phó với các rủi ro có thể xảy ra, giảm tỷ lệ nước không doanh thu và cải thiện dịch vụ khách hàng. Hầu hết các công ty cung cấp nước hiện nay đều đã có thể triển khai sử dụng các ứng dụng máy tính hay phần mềm quản lý nước (miễn phí hoặc thương mại) nhằm phục vụ cho các mục đích khác nhau, bao gồm quản lý dữ liệu và bản đồ (AutoCAD, MapInfo, ArcGIS, QGIS…), tính toán thủy lực (EPANET, WaterGems, MIKE Urban, …), điều khiển giám sát và thu thập dữ liệu (SCADA) thông qua công nghệ di động và điện toán đám mây. Tuy nhiên, trong khi các phần mềm thương mại có thể cung cấp các chức năng tính toán ổn định, thì khả năng can thiệp vào mã nguồn và tùy chỉnh chúng thường bị hạn chế. Điều này tạo ra một rào cản đối với các đơn vị quản lý muốn đáp ứng đầy đủ các yêu cầu cụ thể của hệ thống cấp nước của mình. Các yếu tố có thể ảnh hưởng đến sự chọn lựa giữa phần mềm mã nguồn mở và phần mềm thương mại có tính phí thường phụ thuộc vào yêu cầu cụ thể của dự án, nguồn lực tài chính, và sự linh hoạt mong muốn của người sử dụng. Nội dung bài báo này đề cập đến khả năng sử dụng kết hợp giữa công cụ tính toán thủy lực EPANET với môi trường lập trình của MATLAB để phát triển các ứng dụng chuyên sâu phục vụ hiệu quả và linh hoạt các yêu cầu thực tế của các đơn vị cấp nước hiện nay, đồng thời giúp giảm chi phí đầu tư ban đầu vào các phần mềm quản lý đắt đỏ cho các doanh nghiệp vừa và nhỏ.
2. PHƯƠNG PHÁP NGHIÊN CỨU
2.1 EPANET và Bộ công cụ (EPANET Toolkit)
Phần mềm EPANET đã trở thành công cụ được sử dụng rộng rãi nhất trên toàn thế giới để mô phỏng mạng lưới cấp nước. Thành công của phần mềm là do việc phân phối miễn phí, cho phép người sử dụng tiếp cận mã nguồn của giao diện đồ họa và tính toán thủy lực nhằm phục vụ cho mục đích đa dạng của các đối tượng sử dụng khác nhau. Theo đó, ngoài việc đáp ứng nhu cầu mô phỏng hệ thống cấp nước như một ứng dụng độc lập có giao diện đồ họa riêng để xây dựng mô hình mạng và phân tích kết quả, phần mềm này cho phép kết nối bộ công cụ của nó (EPANET Toolkit) với bất kỳ giao diện đồ họa nào khác, mở ra một tiềm năng rộng lớn cho bất kỳ lập trình viên hoặc nhà nghiên cứu nào muốn vượt ra khỏi những gì ứng dụng hiện tại cung cấp.
Bộ công cụ EPANET có thể được tích hợp vào bất kỳ môi trường lập trình riêng biệt nào hoặc các phần mềm bản quyền (Excel, AutoCAD, ArcGIS, …) hoặc các phiên bản miễn phí tương tự (OpenOffice, gvSIG, QSIG, …). Người sử dụng có thể tải xuống từ trang web chính thức của EPA, bao gồm các tệp trợ giúp trực tuyến, tệp văn bản, thư viện động và bốn tệp tiêu đề cho phép các chức năng trong thư viện động được liên kết với môi trường lập trình đang sử dụng. Bằng cách này, chúng ta có thể truy cập kết quả mô phỏng và thông tin được chứa trong tệp dữ liệu đầu vào của EPANET (định dạng INP). Thư viện động của bộ công cụ EPANET có các mô-đun mã riêng biệt cho xử lý dữ liệu đầu vào, phân tích thủy lực, phân tích chất lượng nước, giải hệ phương trình tuyến tính với ma trận thưa, tạo báo cáo và giúp kiểm soát từng bước quá trình mô phỏng. Bộ công cụ này có 55 chức năng và 104 biến được sử dụng với các chức năng như các tham số đầu vào. Giao diện lập trình ứng dụng gồm một tệp mở rộng .dll đi kèm với phần còn lại của các tệp chứa đựng một loạt các chức năng cho phép lập trình viên cá nhân hóa mô-đun tính toán của EPANET theo nhu cầu riêng của họ. Nhờ đó, bộ công cụ rất hữu ích để phát triển các ứng dụng tùy chỉnh như tối ưu hóa hoặc hiệu chỉnh tự động các tham số đầu vào của các mô hình, thực hiện đa phân tích hoặc theo các quá trình lặp lại. Hơn nữa, thư viện động (epanet2.dll) cho phép các chức năng của nó được thêm vào các môi trường tích hợp khác dựa trên CAD, GIS hoặc cơ sở dữ liệu.
Mặc dù vậy, thông tin về cách sử dụng tất cả các chức năng này trong các môi trường lập trình phổ biến vẫn còn hạn chế. Một số hỗ trợ có thể được tìm thấy trong tệp trợ giúp trực tuyến, được bao gồm trong Bộ công cụ, nơi cung cấp một chuỗi các bước để sử dụng các chức năng, nhưng đối với người dùng có kiến thức lập trình máy tính ít, việc sử dụng thư viện động sẽ phức tạp vì không có tất cả các dòng mã cần thiết cho hoạt động đúng.
2.2 MATLAB
Phiên bản đầu tiên của MATLAB được xây dựng vào những năm 70 bởi nhà toán học Cleve Moler như một công cụ hỗ trợ cho các bài giảng của ông về Lý thuyết Ma trận, Đại số Tuyến tính và Phân tích Số. Phần mềm toán học này sử dụng ngôn ngữ lập trình riêng (ngôn ngữ M) rất giống với các ngôn ngữ cao cấp như BASIC hoặc C, cho phép thực hiện các tính toán với vector, ma trận, hàm số, … và lập trình hướng đối tượng, cũng như giao tiếp với các chương trình được viết bằng ngôn ngữ khác, với các thiết bị phần cứng khác. Thế mạnh của MATLAB là khả năng tích hợp phân tích số học, tính toán ma trận, xử lý tín hiệu, đồ thị, … trong một môi trường dễ sử dụng và các dữ liệu được biểu diễn theo hình thức toán học, giảm đáng kể các thao tác, thủ tục khai báo so với các ngôn ngữ lập trình khác như Visual Basic, Visual Studio, Python, C#, C++ vốn đều có thể liên kết với Bộ công cụ EPANET.
MATLAB có thư viện chuyên biệt (toolbox) bao gồm một lượng lớn các hàm được xác định trước giúp thực hiện các phép tính điển hình, cũng như để xem dữ liệu và kết quả. Các dòng mã được viết trong một tệp ASCII (có phần mở rộng *.m) có thể được chạy. Người sử dụng cũng có thể nhóm các câu lệnh thường xuyên sử dụng trong chương trình con và có thể gọi chúng lại sau này. Bằng cách này, thời gian và công sức được tiết kiệm trong các thao tác tính toán liên tiếp vì không cần viết lại tất cả các câu lệnh từ đầu.
2.3 Kết nối giao diện lập trình ứng dụng của EPANET với môi trường lập trình MATLAB
Các nhà khoa học Marios Kyriakou và Demetrios Eliades đã xây dựng Bộ công cụ EPANET-MATLAB (EMT) để sử dụng công cụ tính toán thủy lực của EPANET trong môi trường lập trình MATLAB [1]. Bộ công cụ EMT được chia sẻ miễn phí và lưu trữ trong kho kỹ thuật số quản lý bởi Hiệp hội OpenWaterAnalytics trên cổng thông tin miễn phí Github. Đây cũng là công cụ được sử dụng trong nghiên cứu hiện tại. Trong tệp được tải về, người sử dụng sẽ tìm thấy một tập tin có tên là Epanet.m, trong đó chứa một loạt các thuộc tính và phương thức được thiết lập sẽ cho phép sử dụng các chức năng của thư viện EPANET. Trong phiên bản gần nhất của Bộ công cụ (2.2.2, tháng 12/2023), tất cả các chức năng đã phát triển cho đến phiên bản EPANET mới nhất (2.2, tháng 07/2020) đã được đưa vào. Một số các chức năng cơ bản của Bộ công cụ được sử dụng trong nghiên cứu này được liệt kê ở bảng 1.
Bảng 1: Một số lệnh cơ bản trong Bộ công cụ EPANET
STT |
Chức năng |
Lệnh hoặc Cấu trúc lệnh |
---|---|---|
1 |
Kích hoạt Bộ công cụ EPANET trên MATLAB |
start_toolkit |
2 |
Tải dữ liệu từ tập tin mở rộng .INP và gán dữ liệu mạng lưới dưới tên biến d |
d = epanet(‘Taptin.inp’) |
3 |
Tính toán thuỷ lực mạng lưới cấp nước và gán kết quả vào biến res |
res = d.getComputedTimeSeries |
4 |
Truy xuất kết quả tính toán áp suất tại một nút cụ thể và vào một giờ cụ thể |
res.Pressure (giờ, số thứ tự nút) |
5 |
Khai báo (thêm) lưu lượng sử dụng vào một nút cụ thể theo Pattern đã có |
d.addNodeJunctionDemand (số thứ tự nút, lưu lượng, Pattern, tên nhóm lưu lượng) |
6 |
Truy xuất các lưu lượng khai báo tại nút cụ thể |
d.getNodeBaseDemands (Thứ tự nút) |
7 |
Gỡ bỏ lưu lượng sử dụng tại một nút cụ thể |
d.setNodeBaseDemands (thứ tự nút, length (d.getNodeBaseDemands (thứ tự nút)), 0) |
8 |
Vẽ bố trí mạng lưới đường ống |
d.plot; |
9 |
Vẽ kết quả áp suất tại nút cụ thể theo thời gian |
plot(res.Time/3600, res.Pressure(: , thứ tự nút)); |
10 |
Xóa dữ liệu mạng lưới để giải phóng bộ nhớ |
d.unload |
3. PHÁT TRIỂN ỨNG DỤNG TỐI ƯU VỊ TRÍ LẮP ĐẶT CẢM BIẾN
Nội dung phần này mô tả ứng dụng “BK Water” do nhóm tác giả phát triển nhằm xác định các vị trí tối ưu cho lắp đặt cảm biến áp suất trong một mạng lưới cấp nước. Ứng dụng này được xây dựng dựa trên Bộ công cụ EMT kết hợp với Công cụ thiết kế giao diện người dùng (MATLAB APP DESIGNER) tích hợp sẵn trong MATLAB. Quy trình tính toán tối ưu cảm biến đã được nhóm tác giả miêu tả trong nghiên cứu trước đây [2], dựa trên Lý thuyết thông tin của Shannon (1948). Tóm tắt quy trình gồm 23 bước này bao gồm việc tính toán thủy lực mạng lưới cấp nước ở kịch bản không rò rỉ (vào giờ dùng nước thấp điểm) để xác định độ sụt giảm áp suất của hệ thống ứng với hàng loạt các kịch bản rò rỉ tại các vị trí khác nhau. Lý thuyết thông tin sẽ được áp dụng để tính toán Entropy và Thông tin chung của dải giá trị áp suất tại các vị trí khác nhau và tương quan giữa chúng, tạo cơ sở để xác định vị trí cảm biến tối ưu nhất (vị trí có tỷ lệ “Entropy / Thông tin chung” là lớn nhất). Giao diện của ứng dụng được mô tả ở hình 1.
(a)(b)
(c)(d)
Hình 1: Giao diện của ứng dụng “BK Water” trong tối ưu vị trí đặt cảm biến áp suất, bao gồm các trang (a): giao diện chính để nhập tên tập tin dữ liệu, lưu lượng rò rỉ và khởi động tính toán, (b): Sơ đồ khu vực, (c): Sơ đồ vị trí sensor và bảng thứ tự ưu tiên, (d): phiên bản cập nhật.
Nhận xét rằng số lượng các nút xem xét kịch bản rò rỉ các nhiều thì việc xác định vị trí tối ưu của cảm biến càng đáng tin cậy. Tuy nhiên, với một mạng lưới có diện tích lớn và số lượng nút đáng kể, thì thời gian tính toán và thu thập kết quả từ phần mềm EPANET sẽ nhanh chóng tăng lên. Cụ thể với hệ thống cấp nước tại khu đô thị SALA, được mô phỏng với 122 nút tính toán, sẽ có 122 kịch bản rò rỉ cho một cấp lưu lượng rò rỉ xác định. Tổng thời gian thực hiện tính toán các kịch bản và thu thập dữ liệu áp suất của hệ thống trung bình là 1 phút / kịch bản. Theo đó, sẽ cần khoảng hơn 2 giờ đồng hồ để xây dựng ma trận suy giảm áp suất trong hệ thống. Trong trường hợp sử dụng ứng dụng “BK Water”, toàn bộ các thao tác mô phỏng trên EPANET cho toàn bộ kịch bản xem xét cũng như thu thập kết quả áp suất, tính toán bằng Lý thuyết thông tin và xác định thứ tự ưu tiên của cảm biến được thực hiện hoàn toàn tự động và nhanh chóng, nhờ vào Bộ công cụ EMT và đoạn mã lập trình do nhóm nghiên cứu thực hiện. Thời gian tính toán được rút ngắn xuống chỉ còn khoảng 5 phút (hình 2). Điều này cho thấy việc phát triển các ứng dụng trong quản lý hệ thống cấp nước bằng Bộ công cụ EPANET và ngôn ngữ lập trình MATLAB, mà “BK Water” là một ví dụ, sẽ là một hướng đi đầy tiềm năng, giúp các doanh nghiệp và công ty cấp nước quản lý hiệu quả mạng lưới của mình, tùy theo các nhu cầu đặt hàng riêng với các lập trình viên hoặc đơn vị nghiên cứu. Lưu ý rằng việc can thiệp vào mã nguồn của phần mềm tính toán thủy lực (như EPANET) cũng như kết hợp với các ngôn ngữ lập trình (MATLAB, Python, C, … ) chỉ có thể thực hiện được với các phần mềm có mã nguồn mở và gần như không khả thi với các phần mềm thương mại (như WaterGEMS), vốn áp đặt giới hạn về quyền truy cập và điều chỉnh, hạn chế sự linh hoạt của người dùng.
Hình 2: So sánh giữa thời gian mô phỏng thông thường (hơn 2h với 122 kịch bản) với thời gian tính toán dựa trên Bộ công cụ EPANET-MATLAB Toolkit (5 phút).
4. KẾT LUẬN
Sự phát triển nhanh chóng của khoa học và công nghệ, đặc biệt là trong bối cảnh Cuộc cách mạng công nghiệp 4.0, đã mang lại nhiều cơ hội và thách thức cho việc quản lý hệ thống cấp nước. Các nhà quản lý ngày càng có nhiều sự lựa chọn đa dạng về các công cụ hỗ trợ giám sát, vận hành, và quản lý hệ thống. Đây vừa là một thuận lợi, nhưng cũng là một thách thức khi cần tìm ra một mô hình quản trị nước mang tính ổn định, bền vững và có khả năng đáp ứng linh hoạt những yêu cầu đa dạng của lĩnh vực cấp nước. Việc lựa chọn công cụ phù hợp đòi hỏi sự cân nhắc kỹ lưỡng với nhiều yếu tố ảnh hưởng như chi phí bản quyền, năng lực chuyên gia, và tính kết nối với các công cụ khác trong hệ sinh thái quản lý nước.
Một trong những yếu tố quan trọng nhất đối với các đơn vị quản lý nước, đặc biệt là những đơn vị tư nhân nhỏ lẻ, là chi phí bản quyền của các phần mềm quản lý nước. Các phần mềm thương mại thường yêu cầu chi trả lớn cho việc sử dụng, điều này có thể tạo ra rào cản với các tổ chức có tài chính hạn chế. Ngược lại, việc sử dụng mã nguồn mở của EPANET kết hợp với MATLAB mang lại cơ hội cho các đơn vị tài chính nhỏ có khả năng tiếp cận công nghệ mà không gặp phải áp lực tài chính không đáng có.
Bên cạnh đó, trong một môi trường quản lý nước hiện đại, tính kết nối giữa các công cụ là quan trọng để đảm bảo thông tin được chia sẻ một cách hiệu quả giữa các hệ thống. Sự kết hợp giữa EPANET và MATLAB mở rộng khả năng tích hợp với các công cụ khác trong hệ sinh thái quản lý nước. Điều này tạo điều kiện cho việc chia sẻ dữ liệu một cách hiệu quả và tối ưu hóa quy trình làm việc.
Cuối cùng, trong khi các phần mềm thương mại có thể cung cấp các chức năng tính toán ổn định, nhưng khả năng can thiệp vào mã nguồn và tùy chỉnh chúng thường bị hạn chế thì việc can thiệp vào mã nguồn tính toán của EPANET kết hợp với môi trường lập trình của MATLAB mở ra khả năng xây dựng ứng dụng chuyên sâu, phục vụ hiệu quả và linh hoạt các yêu cầu thực tế của các đơn vị cấp nước. Các ứng dụng này có thể bao gồm việc dự đoán tiêu thụ nước, tối ưu hóa hệ thống phân phối, và giảm thiểu tổn thất nước, … đáp ứng đầy đủ các yêu cầu cụ thể của các đơn vị quản lý.
Lời cảm ơn: Chúng tôi xin cảm ơn Trường Đại học Bách khoa, ĐHQG-HCM đã hỗ trợ cho nghiên cứu này.
Tài liệu tham khảo
[1] D.G. Eliades, M. Kyriakou, S. Vrachimis, M.M. Polycarpou, “EPANET-MATLAB Toolkit: An Open-Source Software for Interfacing EPANET with MATLAB”, Tạp chí 14th International Conference on Computing and Control for the Water Industry (CCWI), Hà Lan, 11/2016, trang 8. (doi:10.5281/zenodo.831493).
[2] Nguyễn Quốc Duy, Trần Minh Đức, Hoàng Quốc Tâm, Nguyễn Hoàng Nhật Sang, Hồ Tuấn Đức, “Tối ưu hóa vị trí cảm biến áp suất: sử dụng Entropy và Thông tin chung trong phát hiện rò rỉ nước của hệ thống cấp nước tại khu đô thị SALA, Thành phố Thủ Đức”, Tạp chí Cấp thoát nước, số 158, 11/2023, trang 58.
Tác giả: Hồ Tuấn Đức1,2,*, Nguyễn Quốc Duy1,3, Trần Minh Đức1,3, Hoàng Quốc Tâm1,3,
Nguyễn Hoàng Nhật Sang1,3
1 Đại học Quốc gia Thành phố Hồ Chí Minh, Phường Linh Trung, Quận Thủ Đức, Thành phố Hồ Chí Minh, Việt Nam
2 Trung tâm châu Á nghiên cứu về nước (CARE), 268 Lý Thường Kiệt, Quận 10, Thành phố Hồ Chí Minh, Việt Nam
3 Khoa Xây dựng, Trường Đại học Bách Khoa Thành phố Hồ Chí Minh (HCMUT), 268 Lý Thường Kiệt, Quận 10, Thành phố Hồ Chí Minh, Việt Nam