Chi tiết thuật tốn được diễn giải như sau:
- Đầu vào của thuật tốn:
+ ε: sai số cho phép.
+ N: số lần lặp. - Đầu ra của thuật tốn:
+ Vector nghiệm xn tìm được. - Mã giả (pseudocode) của thuật tốn:
+ Bước 1: Khởi tạo ngẫu nhiên x0 và n = 1
+ Bước 2: Nếu n ≤ N thì thực hiện bước 3 đến bước 7.
Bước 3: Tính giá trị F(xn−1) và J(x𝑛−1), trong đĩ J(x)ij = (∂fi(x)
∂xj ), với 1 ≤ i, j ≤ n.
Bước 4: Giải hệ phương trình tuyến tính J(x𝑛−1)y𝑛−1 = F(x𝑛−1) , với y là vector cần tìm.
Bước 5: Cập nhật nghiệm bằng cơng thức: xn = xn−1− yn−1
Bước 6: Nếu ‖𝑦𝑛−1‖ ≤ ε : Trả về giá trị nghiệm thu được x // Thành cơng.
Bước 7: Nếu ‖𝑦𝑛−1‖ > ε thì n = n + 1 và thực hiện từ Bước 2.
+ Bước 8: Nếu n ≥ N : Trả về Bước 1 (khởi tạo nghiệm ngẫu nhiên x0).
2.4.2 Ngơn ngữ lập trình giải hệ phương trình theo Newton - Raphson
Với sự phát triển của các ngơn ngữ lập trình và tốc độ tính tốn nhanh của máy tính, nhiều ngơn ngữ lập trình như: MatLab, Python, R,… cĩ thể được sử dụng để xây dựng chương trình tính tốn và giải hệ theo phương pháp Newton – Raphson. Trong nghiên cứu này, ngơn ngữ lập trình Python được sử dụng để xây dựng chương trình tính tốn và giải hệ phương trình theo phương pháp Newton – Raphson.
Python là một ngơn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế với ưu điểm là cấu trúc câu lệnh đơn giản và thư viện dữ liệu lớn. Trong 3 năm liền, từ 2019 đến 6 tháng đầu năm 2021, trong bảng xếp hạng ngơn ngữ lập trình tốt nhất cho khoa học dữ liệu và tính tốn thì ngơn ngữ lập trình Python đứng hàng thứ nhất, tiếp theo là ngơn ngữ lập trình R và thứ 3 là ngơn ngữ lập trình Matlab.
2.4.3 Cấu trúc mã nguồn bằng ngơn ngữ lập trình Python
Với một hệ phương trình phi tuyến tính gồm 6 ẩn số n1, n2, n3, n4, n5, n6. Khi áp dụng thuật tốn Newton-Raphson để cài đặt lời giải cho bài tốn với 2 giá trị đầu vào là 𝐸𝑅 𝑣à 𝑇2 cần thiết kế giải pháp cho bài tốn sao cho dễ dàng cài đặt, dễ dàng quản lý và
kiểm sốt. Quá trình cài đặt đã chia chương trình thành nhiều modules, cụ thể như sau:
Hình 2.5 Cấu trúc mã nguồn (sourcecode structure)
- Module hằng số (constants.py) chứa tất cả các hằng số, ví dụ: a, b, w, … mà bài tốn cung cấp. Các giá trị hằng số này sẽ dùng để cập nhật các tham số cần tính khi đã nhập hai giá trị ER và T2.
- Module tham số (parameters.py) chứa các tham số, ví dụ: q, K1, K2, … được lập luận từ bài tốn. Các giá trị tham số này sẽ được xác định khi nhập ER, T2.
- Module xử lý chính (main.py) là nơi chương trình được thực thi, cho phép nhập vào giá trị ER, T2 và gửi giá trị ER, T2 này cho module paremeters.py (đã đề cập bên trên), quá trình cập nhật diễn ra.
2.5 Phương pháp điều khiển thơng số cơng nghệ và thu thập số liệu thực nghiệm
2.5.1 Điều khiển lưu lượng khơng khí cấp
Căn cứ vào lưu lượng khơng khí lý thuyết và hệ số khơng khí cấp ER để tính lưu lượng khơng khí thực cần thiết cho q trình hĩa khí.
Lưu lượng khơng khí lý thuyết cung cấp cho hệ thống hĩa khí được xác định bằng cơng thức [33]:
Mlt = mlt*Gtr (m3/h) (2.15)
Gtr: lượng trấu tiêu thụ trong 1 giờ của hệ thống hĩa khí (kg/h). Hệ số khơng khí cấp là tỷ số giữa lưu lượng khơng khí thực tế với lưu lượng khơng khí lý thuyết, được xác định theo cơng thức:
ER = Mtt /Mlt (2.16)
Trong đĩ: ER: hệ số khơng khí cấp.
Mtt: lưu lượng khơng khí thực tế (m3/h). Mlt: lưu lượng khơng khí lý thuyết (m3/h). Theo [33]:
0 ≤ ER ≤ 0,2 Quá trình nhiệt phân, phản ứng với oxy bắt đầu xảy ra. 0,2 ≤ ER ≤ 0,4 Q trình hĩa khí.
0,4 ≤ ER ≤ 1,0 Q trình đốt cháy.
Như vậy, để hĩa khí phải xác định lưu lượng khơng khí thực cần cung cấp sao cho ER = 0,2 ÷ 0,4.