Tải bản đầy đủ (.pdf) (370 trang)

Phương pháp số trong công nghệ hóa học TS NGUYỄN ĐẶNG BÌNH THÀNH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.18 MB, 370 trang )

PHƯƠNG PHÁP SỐ
TRONG CÔNG NGHỆ HÓA HỌC
Mã học phần: CH3454
Mã học phần: CH3454
TS. Nguyễn Đặng Bình Thành
BM:Máy & TBCN Hóa chất
Numerical Methods in Chemical Engineering
MỞ ĐẦU
Phương pháp số được dùng để phân tích và
giải gần đúng các bài toán với sai số nằm
trong giới hạn cho phép.
…bởi vì hầu hết các bài toán khoa học kỹ
thuật đều không có các lời giải chính xác.
Phương pháp số thường được bắt đầu từ việc
xây dựng mô hình, lựa chọn thuật toán, và
đưa ra các đáp số gần đúng.
MỞ ĐẦU
Phương pháp số có vai trò quan trọng
trong nhiều lĩnh vực như: Thiên văn
học, nông nghiệp, kiến trúc, …
Và tất nhiên rất quan trọng trong kỹ
thuật.
MỞ ĐẦU
Phương pháp số trong Kỹ thuật hóa học:
Mô tả bằng toán học các quá trình và và thiết
bị trong công nghệ hóa học.
Tính toán thiết kế các quá trình và thiết bị
Tính toán thiết kế các quá trình và thiết bị
hoạt động trong lĩnh vực kỹ thuật hóa học.
Tính toán tối ưu hóa các điều kiện làm việc
và kết cấu các thiết bị hóa chất.


Xác định các hằng số thực nghiệm bằng
phương pháp hồi quy.

NỘI DUNG
Chương 1. Các phương pháp giải phương
trình và hệ phương trình.
Chương 2. Phương pháp tính tích phân
Chương 3. Phương trình và hệ phương trình
Chương 3. Phương trình và hệ phương trình
vi phân
Chương 4. Tối ưu hóa
NỘI DUNG
Chương 1. Các phương pháp giải phương
trình và hệ phương trình
1.1 Phương pháp giải hệ phương trình tuyến tính
1.1 Phương pháp giải hệ phương trình tuyến tính
và ứng dụng
1.1.1 Giải hệ phương trình tuyến tính bằng phương
pháp Gauss và phương pháp nghịch đảo ma trận
1.1.2 Ứng dụng để tính toán cân bằng vật chất của hệ
thống CNHH
NỘI DUNG
Chương 1. Các phương pháp giải phương
trình và hệ phương trình
1.2 Phương pháp giải phương trình và hệ phương
1.2 Phương pháp giải phương trình và hệ phương
trình phi tuyến
1.2.1 Giải phương trình phi tuyến bằng phương pháp
lặp đơn giản và phương pháp Newton-Raphson
1.2.2 Giải hệ phương trình phi tuyến bằng phương pháp

lặp đơn giản và phương pháp Newton-Raphson
1.3 Ứng dụng
NỘI DUNG
Chương 2. Phương pháp tính tích phân
2.1 Tính tích phân xác định bằng phương pháp
hình thang
hình thang
2.2 Tính tích phân xác định bằng phương pháp
Simpson
2.3 Ứng dụng
2.3.1 Tính toán tháp chưng luyện
2.3.2 Tính toán tháp hấp thụ
NỘI DUNG
Chương 3. Phương trình và hệ phương
trình vi phân
3.1 Giải phương trình vi phân bằng phương pháp
3.1 Giải phương trình vi phân bằng phương pháp
Euler
3.2 Giải phương trình vi phân bằng phương pháp
Runge-Kutta
3.3 Giải hệ phương trình vi phân bằng phương
pháp Euler
3.4 Giải hệ phương trình phi phân bằng phương
pháp Runge-Kutta
3.5 Ứng dụng tính toán hệ phản ứng hóa học
NỘI DUNG
Chương 4. Tối ưu hóa
4.1 Tìm cực trị hàm một biến: phương pháp điểm
vàng, phương pháp gradien
vàng, phương pháp gradien

4.2 Tìm cực trị hàm nhiều biến: phương pháp
gradien, phương pháp đơn hình
4.3 Cực trị có ràng buộc: phương pháp hàm phạt
TÀI LIỆU THAM KHẢO
[1] Sổ tay quá trình và công nghệ hóa chất T1, 2, NXB
KHKT, 2004.
[2] Nguyễn Bin. Các quá trình và thiết bị công nghệ hóa
chất T1, 2, 3, NXB KHKT, 2001.
chất T1, 2, 3, NXB KHKT, 2001.
[3] R. Perry. Chemical Engineers’ Handbook, 7
th
Ed.,
Mc. Graw Hill, 2007.
[4] K. Johnson. Numerical Methods in Chemistry, Mc.
Graw Hill, 1978.
[5] Nguyễn Minh Tuyển, Phạm Văn Thiêm. Kỹ thuật hệ
thống trong CN Hóa học, T2, NXB KHKT, 2001.
Ngôn ngữ lập trình
Có nhiều ngôn ngữ lập trình có thể
ứng dụng để tính toán các quá
trình công nghệ hóa học:
Matlab; C; C
++
; Visual Basic; Delphi;
Matlab; C; C
++
; Visual Basic; Delphi;
Pascal; …
Các phầm mềm ứng dụng khác trong
công nghệ hóa học: Aspen Plus;

gProms; …
Ngôn ngữ lập trình
Tìm hiểu bản chất của quá trình và
các ứng dụng các thuật toán
Do đó: Pascal được sử dụng chính
trong môn học này!
Nhắc lại các kiến thức về lập trình Pascal
Cấu trúc chương trình
Nhắc lại các kiến thức về lập trình Pascal
Tên chương trình
Sử dụng các thư viện: CRT, GRAPH,

Khai báo nhãn (khi dùng lệnh goto)
Khai báo các hằng số (một giá trị cụ thể)
Khai báo các kiểu dữ liệu đặc biệt như ma trận, …
Khai báo các kiểu dữ liệu đặc biệt như ma trận, …
Khai báo các biến số cùng với các kiểu tương ứng
Chương trình chính (Begin …End.)
Chú ý: Cần phải tuân thủ nghiêm ngặt trình tự!
Nhắc lại kiến thức về lập trình Pascal
Khai báo theo kiểu
Số thực: “real”
Var
Var
a,b,c: real;
Số nguyên: “integer”
Var
i,j,k,n: integer;
Nhắc lại kiến thức về lập trình Pascal
Khai báo theo kiểu

Mảng hay ma trận: “array”
Đối với kiểu này, trước hết phải khai báo kiểu trước!
Đối với kiểu này, trước hết phải khai báo kiểu trước!
Type
mx = array [1 50] of real;
ma = array [1 50, 1 100] of real;
Var
x: mx;
a: ma;
Nhắc lại kiến thức về lập trình Pascal
Khai báo theo kiểu
Mảng hay ma trận: “array”
Tuy nhiên cũng có thể khai báo trực tiếp
Tuy nhiên cũng có thể khai báo trực tiếp
Var
x: array [1 50] of real;
a: array [1 50, 1 100] of real;
Nhắc lại kiến thức về lập trình Pascal
Các loại chương trình con
Dùng chương trình con khi cần thực hiện một đoạn
chương trình lặp đi lặp lại nhiều lần.
Do đó: khi cần đến những đoạn chương trình như
Do đó: khi cần đến những đoạn chương trình như
vậy thì chỉ cần gọi tên chương trình con đó.
Thuận lợi:
-Chương trình chính đơn giản
-Mức độ khái quát hóa chương trình cao
-Dễ kiểm tra lỗi cho toàn bộ chương trình
-Thuận lợi cho người sử dụng
Nhắc lại kiến thức về lập trình Pascal

Các loại chương trình con
Trong Pascal có hai loại chương trình con:
-Hàm (function)
Hàm chỉ trả lại một kiểu dữ liệu và một giá trị duy
Hàm chỉ trả lại một kiểu dữ liệu và một giá trị duy
nhất
-Thủ tục (procedure)
Thủ tục có thể trả lại nhiều kiểu dữ liệu khác nhau và
có thể trả lại nhiều giá trị
Nhắc lại kiến thức về lập trình Pascal
Các loại chương trình con
-Hàm (function)
Ví dụ: xác định giá trị của hàm số y = 2x
2
+ 3x – 5
Function F(x: real): real;
Nhược điểm:
Khi tính toán cho nhiều biểu thức, ví dụ:
Function F(x: real): real;
Begin
F:=2*x*x + 3*x – 5;
End;
Khi gọi hàm trong chương trình chính:
y:= F(x1);
Chú ý:
Đằng sau “End” của chương trình con dùng dấu
“;” thay vì dấu “.” trong chương trình chính.
Khi tính toán cho nhiều biểu thức, ví dụ:
y
1

= 2x
2
+ 3x – 5
y
2
= 5x
3
– 2x – 6
Cần phải dùng:
2 chương trình con kiểu hàm
Nhắc lại kiến thức về lập trình Pascal
Các loại chương trình con
-Thủ tục (procedure)
Ví dụ: xác định giá trị của 2 hàm số y
1
= 2x
2
+ 3x – 5;
y
2
= 5x
3

2x

6.
y
2
= 5x


2x

6.
Procedure HAM;
Begin
y1:=2*sqr(x) + 3*x – 5;
y1:=5*x*sqr(x) – 2*x – 6;
End;
Khi gọi thủ tục:
{Tính giá trị tại x:=x1}
x:=x1;
HAM;
{Có thể gán giá trị cho y
3
, y
4
}
y3:=y1; y4:=y2;
Nhắc lại kiến thức về lập trình Pascal
Các loại chương trình con
-Thủ tục (procedure) có tham trị và tham biến hình thức
Ví dụ:
Procedure HAM(x: real; Var y1,y2:real)
Procedure HAM(x: real; Var y1,y2:real)
Begin
y1:=2*sqr(x) + 3*x – 5;
y1:=5*x*sqr(x) – 2*x – 6;
End;
Khi gọi thủ tục:
{Tính giá trị tại x:=x1}

HAM(x1,y1,y2);
{Có thể gán giá trị cho y
3
, y
4
}
HAM(x1,y3,y4)
Ví dụ áp dụng
Ví dụ 1
Cho dãy số thực x
1
, x
2
,…,x
n
a) Hãy tính tổng S của dãy số trên
b)
Tìm giá trị nhỏ nhất của dãy
Thuật toán?
a) Tính tổng
i:=0;S:=0;
i:=i + 1; S:=S + x[i];
b) Tìm giá trị nhỏ nhất
Có cần chương trình con???
b)
Tìm giá trị nhỏ nhất của dãy
b) Tìm giá trị nhỏ nhất
i:=1;
xmin:= một số rất lớn???
Nếu x[i] <= xmin thì xmin:=x[i];

i:=i+1;
Hoặc cách khác???

×