Kỹ thuật tính toán trong công nghệ hóa học
Mục Lục
Lời nói đầu......................................................................................................................................................................2
Phần I: Cơ sở về Matlab................................................................................................................................................3
Chương I:Bắt đầu với Matlab......................................................................................................................................4
1.1 Nhập dữ liệu qua dòng lệnh............................................................................................................................4
1.2 Sử dụng help trực tuyến..................................................................................................................................6
1.3 Đường dẫn......................................................................................................................................................6
1.4 Lưu và tải dữ liệu............................................................................................................................................6
Chương 2: Các cấu trúc cơ bản và biến......................................................................................................................7
2.1 Tính toán với Matlab .....................................................................................................................................7
2.2 Giới thiệu dạng dữ liệu...................................................................................................................................8
Chương 3: Tính toán với ma trận và vec tơ................................................................................................................9
3.1 Vec tơ.............................................................................................................................................................9
3.1.1 Kí tự hai chấm và trích các phần tử của vec tơ.....................................................................................10
3.1.2 Vec tơ cột và sự chuyển vị.....................................................................................................................11
3.1.3 Nhân, chia và mũ của vec tơ.................................................................................................................12
3.2 Ma trận..........................................................................................................................................................13
3.2.1 Các ma trận đặc biệt.............................................................................................................................14
3.2.2 Xây dựng ma trận và cách trích các phần tử của ma trận.....................................................................16
3.2.3 Các phép toán với ma trận....................................................................................................................19
Chương 4: Đồ họa........................................................................................................................................................21
4.1 Đồ thị đơn giản ............................................................................................................................................21
4.2 Vẽ đường .....................................................................................................................................................22
4.3 Vẽ mặt..........................................................................................................................................................26
Chương 5: Các luồng điều khiển................................................................................................................................29
5.1 Các toán tử logic...........................................................................................................................................29
5.2 Lệnh find......................................................................................................................................................29
5.3 Câu lệnh if....................................................................................................................................................31
5.4 Cấu trúc lặp...................................................................................................................................................33
Chương 6: Phương pháp số........................................................................................................................................34
2.1. Trao đổi nhiệt bức xạ giữa các vật.............................................................................................................63
2.1.1. Tóm tắt lí thuyết................................................................................................................................63
2.1.2. Ví dụ ....................................................................................................................................................64
2.2. Truyền nhiệt và thiết bị trao đổi nhiệt.........................................................................................................66
2.2.1 Tóm tắt lí thuyết ...............................................................................................................................66
2.1.2. Ví dụ ....................................................................................................................................................67
Chương 3: Kỹ thuật tách chất....................................................................................................................................73
3.1 Cân bằng lỏng hơi.........................................................................................................................................73
3.1.1 Tóm tắt lý thuyết..............................................................................................................................73
3.1.2 Ví dụ......................................................................................................................................................75
3.1.3. Bài tập..................................................................................................................................................79
3.2 Phương pháp McCabe Thiele.......................................................................................................................80
3.2.1 Tóm tắt lý thuyết....................................................................................................................................80
3.2.2 Ví dụ......................................................................................................................................................82
Chương 4: Kỹ thuật phản ứng...................................................................................................................................89
4.1 Nhiệt động học.............................................................................................................................................89
4.1.1 Tóm tắt lý thuyết..............................................................................................................................89
4.1.2 Ví dụ......................................................................................................................................................91
4.2 Các kỹ thuật tiến hành phản ứng..................................................................................................................94
4.2.1 Tóm tắt lý thuyết................................................................................................................................94
4.2.2 Ví dụ .....................................................................................................................................................95
4.2.3Bài tập....................................................................................................................................................99
Phụ lục...........................................................................................................................................................................99
Tìm hiểu về các hàm xây dựng.................................................................................................................................100
Tài liệu tham khảo.....................................................................................................................................................125
Lời nói đầu
Các bài toán công nghệ hóa học trong thực tế là rất phức tạp, chúng ta cần có công
cụ hỗ trợ để giải nó. Thực tế có rất nhiều phần mền, tuy nhiên, trong cuốn sách này,
chúng tôi muốn giới thiệu đến các sinh viên nghành công nghệ hóa một công cụ rất
mạnh, đó là matlab .
*) Các lệnh sẽ được thực hiện ngay sau khi ấn phím Enter. Kết quả sẽ được hiển thị
trên màn hình nếu muốn. Tuy nhiên, nó chỉ thực hiện khi các dòng lệnh là hợp lệ. Có thể
tìm hiểu thêm từ menu Help.
Ví dụ :
>> 3 + 7.5
>> 18/4
4
Kỹ thuật tính toán trong công nghệ hóa học
>> 3 * 7
Chú ý : các dấu cách không quan trọng trong Matlab
*) Kết quả tính toán sẽ được tự động lưu vào biến ans
Ví dụ :
>> 14/4
ans =
3.5000
>> ans^(-6)
ans =
5.4399e-04
Chúng ta có thể định nghĩa biến cho riêng mình. Ví dụ:
>> a = 14/4
a =
3.5000
>> b = a^(-6)
b =
5.4399e-04
Dữ liệu sẽ được lưu vào biến a và b.
*) Khi kết thúc dòng lệnh kết thúc bằng dấu “;” thì sẽ không hiển thị kết quả ra
màn hình, có thể kiểm chứng bằng hai biểu thức sau :
>> 3 + 7.5
>> 3 + 7.5;
>> help <câu lệnh>
Vd: help ops
Hoặc
>> lookfor <câu lệnh>
Vd : lookfor inverse
1.3 Đường dẫn
Trong Matlab, các lệnh hay các chương trình được chứa trong m-file, cái mà được
biên soạn từ file văn bản nhưng khi lưu với đuôi mở rộng là “.m”. M-file chỉ chạy được
khi nó nằm ở thư mục current working directory
1.4 Lưu và tải dữ liệu
Rất dễ dàng lưu hoặc gọi 1 biến nào đó, ta chỉ cần click vào File- menu sau đó
chọn Save Workspace as... hoặc Load Workspace...
Vd : khi save
>> s1 = sin(pi/4);
>> c1 = cos(pi/4); c2 = cos(pi/2);
>> str = ’hello world’; % đây là 1 chuỗi
>> save % lưu toàn bộ biến với định dạng matlab.mat
>> save data % lưu các biến với định dạng nhị phân data.mat
6
Kỹ thuật tính toán trong công nghệ hóa học
>> save numdata s1, c1 % lưu các biến số s1 và c1 tới numdata.mat
>> save strdata str % lưu biến chuỗi str vào strdata.mat
>> save allcos.dat c* -ascii % saves c1,c2 in 8-digit ascii format to allcos.dat
Còn khi load
>> load % tải tất cả các biến từ file matlab.mat
>> load data s1 c1 % chỉ tải riêng từng biến trong file data.mat
>> load str data % tải tất cả các biến từ file strdata.mat
Chương 2: Các cấu trúc cơ bản và biến
2.1 Tính toán với Matlab
Có 3 loại biến số học: Số nguyên, số thực, số phức. Matlab còn hỗ trợ thêm những
• 10/2\5 − 3 + 2 - 4
• 3^2/4
• 3^2^3
• 2 + round (6/9 + 3 - 2)/2
• 2 + floor (6/9 + 3 - 2)/2
• 2 + ceil (6/9 + 3 - 2)/2
• x = pi/3, x = x − 1, x = x + 5, x = abs(x)/x
2.2 Giới thiệu dạng dữ liệu
Mặc dù tất cả các tính toán số trong Matlab đều được tính toán với độ chính xác
kép (double precision), nhưng khuôn dạng của dữ liệu đưa ra có thể định dạng lại nhờ
các lệnh định dạng của Matlab. Các biến ngầm định cũng như các biến của người sử
dụng định nghĩa đều có thể đưa ra nhiều định dạng khác nhau. Định dạng được chọn
nhờ sử dụng lệnh format tiếp đến là chỉ định long hay short và cuối cùng có thể là dạng
biểu diễn của dữ liệu, cụ thể là e đối với dạng hàm mũ, f đối dạng dấu phẩy động(ngầm
định là f). Một khuôn dạng ít dùng hơn là rat để đưa dữ liệu ra dưới dạng phân số (chính
xác hoặc gần đúng ).
8
Kỹ thuật tính toán trong công nghệ hóa học
Ví dụ:
>> 4*atan(1)
ans =
3.1416
>> format long e
>> ans
ans =
3.141592653589793e+000
>> format long f
>> ans
ans =
3.14159265358979
>> v = [-1 2 7]; w = [2 3 4];
>> z = v + w % cộng từng phần tử
z =
1 5 11
>> vv = v + 2 % cộng 2 vào tất cả các phần tử vào vec tơ
vv =
1 4 9
>> t = [2*v, -w]
ans =
-2 4 14 -2 -3 -4
Đồng thời 1 phần tử có thể được trích dẫn ra, hoặc chỉnh sửa:
>> v(2) = -1 % sửa phần tử thứ 2 của v
v =
-1 -1 7
>> w(2) % hiển thị phần tử thứ 2 của w
ans =
3
3.1.1 Kí tự hai chấm và trích các phần tử của vec tơ
Dấu hai chấm là phím tắt quan trọng dùng để tạo ra vec tơ hàng:
>> 2:5
ans =
2 3 4 5
>> -2:3
ans =
-2 -1 0 1 2 3
Dạng tổng quát “first:step:last”, khởi tạo vec tơ dòng bắt đầu từ phần tử first, kết
thúc tại phần tử last và với độ dài bước là step. Nếu không chỉ ra step, thì giá trị mặc
định nó là bằng một.
10
Kỹ thuật tính toán trong công nghệ hóa học
7
>> u = [-1; 3; 5]
u =
-1
11
Kỹ thuật tính toán trong công nghệ hóa học
3
5
Các phép toán cũng được thực hiện 1 cách tương tự, và cũng có thể chuyển dạng
thành vec tơ hàng:
>> u’ % u là vec tơ hàng còn u’ là vec tơ cột
ans =
-1 3 5
3.1.3 Nhân, chia và mũ của vec tơ
Chúng ta có thể tính tích vô hướng của 2 vec tơ có cùng độ dài:
>> u = [-1; 3; 5] % 1 vec tơ cột
>> v = [-1; 2; 7] % 1 vec tơ cột
>> u * v % chúng ta không thể nhân vec tơ cột với vecto cột
??? Error using ==> *
Inner matrix dimensions must agree.
>> u’ * v % đây mới là tích vô hướng
ans =
42
Một cách khác để tính tích vô hướng là sử dụng dấu “.*”:
>> u .* v %nhân từng phần tử cho nhau
1
6
35
>> sum(u.*v) % cách lấy tích vô hướng
ans =
Toán tử “./” có thể thực hiện bởi 1 đại lượng vô hướng với 1 vector:
>> x=1:5; 2/x % không thể thực hiện
??? Error using ==> /
Matrix dimensions must agree.
>> 2./x % nhưng thế này thì được!
ans =
2.0000 1.0000 0.6667 0.5000 0.4000
3.2 Ma trận
Một ma trận
A =
987
654
321
Được định nghĩa trong Matlab như sau:
>> A = [1 2 3; 4 5 6; 7 8 9] % nhập theo hàng
A =
13
Kỹ thuật tính toán trong công nghệ hóa học
1 2 3
4 5 6
E =
14
Kỹ thuật tính toán trong công nghệ hóa học
[]
>> size(E)
ans =
0 0
>> I = eye(3); % ma trận đơn vị 3
×
3
I =
16
1 0 0
0 1 0
0 0 1
>> x = [2; -1; 7]; I*x % I is such that for any 3-by-1 x holds I*x = x
ans =
2
-1
7
>> r = [1 3 -2]; R = diag(r) % tạo lập 1 ma trận chéo với r nằm trên đường
chéo
R =
1 0 0
0 3 0
0 0 -2
>> A = [1 2 3; 4 5 6; 7 8 9];
>> diag(A) % trích dẫn đường chéo của ma trận A
ans =
1
X =
4 -1
-1 3
>> T = [ -1 3 4; 4 5 6]; t = 1:3;
>> T = [T; t] % thêm hàng cho T, hàng đó là vec tơ t
T =
-1 3 4
4 5 6
1 2 3
>> G = [1 5; 4 5; 0 2]; % G là ma trận 2*3
>> T2 = [T G] % ghép 2 ma trận
T2 =
-1 3 4 1 5
16
Kỹ thuật tính toán trong công nghệ hóa học
4 5 6 4 5
1 2 3 0 2
>> T3 = [T; G ones(3,1)] % G là 3*2, T là 3*3
T3 =
-1 3 4
4 5 6
1 2 3
1 5 1
4 5 1
0 2 1
>> T3 = [T; G’];
>> [G’ diag(5:6); ones(3,2) T] % chúng ta cso thể nối nhiều ma trận
ans =
1 4 0 5 0
5 5 2 0 6
4 5 8
7 8 9
0 0 0
0 5 0
>> A(4,:) = [2, 1, 2]; % gán vec tơ [2, 1, 2] cho hàng thứ 4 của A
>> A(5,[1,3]) = [4, 4]; % gán : A(5,1) = 4 và A(5,3) = 4
>> A
Lấy các phần tử khác của A:
>> A(3,:) % trích ra hàng thứ 3 của A
ans =
7 8 9
>> A(:,2) % trích ra cột thứ 2 của A
ans =
2
5
8
1
5
>> A(1:2,:) % trích ra hàng 1 và 2 của A
ans =
1 2 3
4 5 8
>> A([2,5],1:2) % trích ra các phần của A
ans =
4 5
18
Kỹ thuật tính toán trong công nghệ hóa học
4 5
Khái niệm về ma trận rỗng [] rất hữu ích trong Matlab. 1 số hàng hoặc cột của ma
trận có thể được loại bỏ bằng cách gán nó bằng 1 ma trận rỗng:
19
Kỹ thuật tính toán trong công nghệ hóa học
>> B .* C % nhân từng phần tử
ans =
2 -4 32
42 0 -13
>> ans.^3 – 2 % thực hiện cho tất cả các phần tử
ans =
6 -66 327 66
74086 -2 -2199 20
>> ans ./ B.^2
ans =
0.7500 -1.0312 63.9961
342.9907 -2.0000 -1.0009
>> r = [1 3 -2]; r * B2
ans =
6 -7
Khi thực hiện nhân ma trận:
>> b = [1 3 -2];
>> B = [1 -1 3; 4 0 7]
B =
1 -1 3
4 0 7
>> b * B % không thể thực hiện: b là ma trận 1*3 và B là 2*3
??? Error using ==> *
Inner matrix dimensions must agree.
>> b * B’
ans =
-8 -10
>> B’ *ones(2,1)
>> plot(x,y) % vẽ
>> semilogy(x,y)
Để đưa nhiều đồ thị lên cùng một cửa sổ ta dùng lệnh subpot, chính xác hơn,
subplot(m,n,i) tạo mn bản vẽ, được sắp xếp trong mảng với m dòng và n cột. Lệnh này
cũng bắt plot tiếp theo phải chuyển đến hệ tọa độ thứ i (đếm theo số dòng). Ví dụ:
>> t=(0:.1:2*pi);
>> subplot(2,2,1)
>> plot(t,sin(t))
>> subplot(2,2,2)
21
Kỹ thuật tính toán trong công nghệ hóa học
>> plot(t,cos(t))
>> subplot(2,2,3)
>> plot(t,exp(t))
>> subplot(2,2,4)
>> plot(t,1./(1+t.^2))
4.2 Vẽ đường
Hàm plot được sử dụng để vẽ dữ liệu trên mặt phẳng. Cho vec tơ x gồm các hoành
độ x1,…,xn và vec tơ y gồm các tung độ y1,…yn, lệnh plot(x,y) sẽ vẽ các điểm từ
(x1,y1) đến (xn,yn). Theo mặc định, các điểm này sẽ được nối theo thứ tự bởi các đoạn
thẳng.
Câu lệnh tổng quát:
Mầu của đường vẽ Ký tự hiển thị Nét vẽ
y yellow
m magenta
c cyan
r red
g green
b blue
w white
>> x=[0 1 4 5 0];
>> y=[0 1 2 -1 0];
>> plot(x,y)
Ta cũng có thể gần đúng đồ thị hàm số bằng cách lấy nhiều điểm. Ví dụ vẽ đồ thị
hàm số
3
xy
=
/ [-2;2]. Trước hết, ta lấy vec tơ dòng với các thành phần biến thiên từ -2
đến 2 với độ dài bước chia là 0.05
>> x=-2:.05:2;
Tiếp đó là xác định các giá trị của y bằng cách lấy lũy thừa từng phần tử của x.
>> y=x.^3;
Cuối cùng:
>> Plot(x,y)
Ta đặt tên cho hình vẽ nhờ đánh lệnh
>>title(‘Do thi cua ham f(x)=x^3’)
23
Kỹ thuật tính toán trong công nghệ hóa học
Hình 1: Đồ thị hàm số
3
)( xxf
=
Vẽ các đường cong tham số cũng tương tự:
))1/(sin2),1/(cos2()(
++=
tttttttr
với
]4,0[
π
tttr
=
và
)sin1,cos1()(
2
tttr
++=
với
]2,0[
π
∈
t
.
>> t=0:pi/20:2*pi;
>> plot(2*cos(t),2*sin(t))
>> hold on
>> plot(1+cos(t),1+sin(t))
>> axis equal
>> title('Cac duong tron x^2+y^2=4 va (x-1)^2+(y-1)^2=1')
Hình 3: vẽ đồ thị nhiều hàm trên cùng một hình
Trong không gian 3 chiều thì thay lệnh plot bằng plot3. Ví dụ:
Để vẽ đường tham số
)),sin(),(cos()( ttttr
=
với
]8,0[
π
∈
t
ta có thể làm như sau: