Bài thực hành môn Mô hình hóa, mô phỏng và tối ưu hóa các quá trình hóa học - Bài thực hành số 01: Làm quen với phần mềm Matlab

Bài thc hành môn hc Mô hình hóa, mô phng và ti ưu hóa các quá trình hóa hc  
BÀI THC HÀNH S0  
LÀM QUEN VI PHN MM MATLAB  
Mc đích ca bài thc hành này là :  
1. Gii thiu tng quan cho sinh viên phn mm tính toán sMatlab.  
2. Thc hành thao tác dùng Matlab để gii quyết các bài toán hóa hc đơn gin.  
1 Gii thiu :  
MATLAB là mt phn mm tính toán svà ma trn, được sdng rng rãi cho các khi  
ngành kthut (cơ, đin-đin t, xây dng và kthut hóa hc…). Matlab được to thành từ  
mt mô-đun tng quát cha các hàm cơ bn và các hp công criêng (Toolbox)+Simulink.  
Trong bài thc hành này, phn mm Matlab được cài đặt trên máy tính vi hệ điu hành thông  
thường (Microsoft Windows XP…).  
2 Môi trường làm vic  
Để xác nhn cu hình Matlab cài đặt, cn khi động Matlab bng mt trong các cách sau  
Nhp chut vào biu tượng  
Hoc tmenu khi đng START ca Windows.  
Tca slàm vic (Command Window) va khi đng, nhp vào  
>> help  
Các hp công ccó sn shin thtrên màn hình. Tiếp theo chn mc mà ta cn sgiúp đở.  
Ngoài ra, Matlab còn cung cp strgiúp trưc tuyến (online). Để truy xut vào các thông tin  
trgiúp ca mt hàm/lnh nào đó, chcn nhp vào:  
>> help TÊN_CA_HÀM  
Để nhn biết thư mc làm vic hin hành (nơi mà chúng ta slưu gicác file làm vic to ra),  
cn nhp vào:  
>> pwd  
Để thay đi thư mc làm vic, nhp vào dòng lnh sau  
>> cd('directory')  
hoc thay đổi tthanh công cngay bên dưới menu (xem hình minh ha bên dưới).  
Để nhn biết vtrí thư mc ca mt hàm nào đó, nhp vào  
>> which TÊN_CA_HÀM  
3 Các hàm cơ sở  
3.1 Qun lý dliêu  
Copyright © by Hoàng Ngc Hà  
Bài thc hành môn hc Mô hình hóa, mô phng và ti ưu hóa các quá trình hóa hc  
Nhìn chung, mi dliu cơ bn được lưu trdưới dng ma trn.  
Thông thường, tiếp sau mt skhai báo ma trn hoc thc thi mt hàm, kết qusẽ được hin  
thnếu không có du chm phy “;” cui câu lnh.  
Mt ma trn được khai báo gia hai du ngoc vuông “[…]”, các khong trng phân chia các  
ct và du chm phy “;” phân chia các dòng. Ví d:  
>> A=[1 2 3;4 5 6;7 8 9];  
>> A=[1 2 3;4 5 6;7 8 9]  
A =  
1
4
7
2
5
8
3
6
9
Mt vector có thể được định nghĩa bi phn tử đầu tiên, bước tăng và phn tcui cùng ca  
nó. Ví d:  
>> v=1:0.5:2.5  
v =  
1.0000 1.5000 2.0000 2.5000  
Chú ý: nếu không chrõ bước tăng, Matlab ly giá trmc định là 1.  
Có thchn mt phn ca ma trn bng cách chra gia hai du ngoc đơn “(…)” ta độ vị  
trí ca các phn tcn ly. Ví d:  
>> matrancon=A(2:3,2:3)  
matrancon =  
5
8
6
9
Lnh trên cho phép lưu gitrong matrancon ma trn được to thành tcác phn tử ở các vtrí  
(2,2), (2,3), (3,2) và (3,3) ca ma trn A.  
Các hàm cơ bn cho tính toán ma trn là có sn trong thư vin matfun. Ví dcác giá trriêng  
ca mt ma trn vuông được tính bng cách sdng hàm eig(…):  
>> eig(A)  
ans =  
16.1168  
-1.1168  
-0.0000  
Chúng ta scó thbng cách tương t, tính định thc, chun, kernel, vết, vector riêng… ca  
mt ma trn.  
Copyright © by Hoàng Ngc Hà  
Bài thc hành môn hc Mô hình hóa, mô phng và ti ưu hóa các quá trình hóa hc  
Để nhn biết kích thước ca mt ma trn, nhp vào :  
>> dim=size(A)  
dim =  
3
3
Lênh size trên strvkích thước ca ma trn A và lưu gikết qutrong biến vector dim.  
Để chuyn vmt ma trn dùng kí hiu «’», ví dnhp vào :  
>> transpose=A'  
transpose =  
1
2
3
4
5
6
7
8
9
Chú ý : «’» strvma trn chuyn vliên hơp phúc trong trường hp các ma trn cha các  
hsphc.  
Biến vector ans mc định ca Matlab sghi nhkết qutính toán cui cùng không được lưu  
li.  
3.2 Thao tác vi đa thc :  
3.2.1 Biu din đa thc vi Matlab :  
Mt đa thc được biu din vi Matlab dưới dng vector. Điu đó có nghĩa rng chúng ta kết  
hp đa thc cn biu din vi mt vector chcha các hstheo chiu gim ca smũ.  
Ví dchúng ta có đa thc P(x) như sau :  
P(x) = x5 + 4x4 2x3 + x + 7  
Khai báo P(x) vi Matlab chỉ đơn gin khai báo mt vector cha các hsca P(x) theo  
chiu gim ca smũ :  
>> P=[1 4 -2 0 1 7]  
P =  
1
4 -2  
0
1
7
Mt cách khác để biu din đa thc là định nghĩa tcác nghim ca nó. Như vy, chúng ta sử  
dng hàm poly. Ví dmt đa thc Q(x) có các nghim -1 và 2, được định nghĩa  
Q(x) = (x +1)(x 2) = x2 x 2 . Vi Matlab, chúng ta khai báo :  
>> Q=poly([-1,2])  
Q =  
Copyright © by Hoàng Ngc Hà  
Bài thc hành môn hc Mô hình hóa, mô phng và ti ưu hóa các quá trình hóa hc  
1 -1 -2  
Chú ý : đa thc cho bi Matlab vi lnh poly đa thc mà hsca smũ cao nht là đơn  
v.  
3.2.2 Nghim ca mt đa thc :  
Nghim ca mt đa thc nhn được nhhàm roots. Chng hn nghim ca đa thc Q(x) bên  
trên được tính :  
>> solutions=roots(Q)  
solutions =  
2
-1  
Chú ý : hàm fsolve cho phép tìm nghim ca mt phương trình phi tuyến.  
3.2.3 Phép nhân và nhân thóa các đa thc  
Phép nhân và nhân thóa các đa thc được thc hin bng các hàm conv (convolution) và  
deconv (deconvolution). Nếu chúng ta mun nhân hai đa thc P (x) = x2 + 4x 12 và  
1
P (x) = x3 8, chúng ta viết :  
2
>> P1=[1 4 -12];  
>> P2=[1 0 0 -8];  
>> P=conv(P1,P2)  
P =  
1
4 -12 -8 -32 96  
Như vây, đa thc kết qusP(x) = x5 + 4x4 12x3 8x2 32x + 96. Mt cách tương t,  
nếu chúng ta mun nhân thóa P(x) bng P (x) , chúng ta sdng các lnh sau đây :  
1
>> P2p=deconv(P,P1);  
P2p =  
1
0
0
-8  
Rõ ràng rng P2p = P (x)  
2
3.3. Thao tác vi ma trn  
Các hàm xlý ma trn là nm trong thư vin matfun. Chúng ta chỉ đề cp ở đây nhng hàm  
được sdng phbiến.  
3.3.1 Hàm norm, rank, det  
Copyright © by Hoàng Ngc Hà  
Bài thc hành môn hc Mô hình hóa, mô phng và ti ưu hóa các quá trình hóa hc  
Các hàm norm, rank, det cho phép mt cách tương ng tính chun, hng và định thc ca mt  
ma trn.  
3.3.2 Hàm inv, pinv, cond  
Hàm inv (pinv) cho phép nghch đảo các ma trn vuông (các ma trn không vuông).  
Hàm cond cho phép xác định điu kin ca mt ma trn. Số điu kin phn ánh độ “khó  
khăn” khi nghch đảo ma trn. Đó là tsgia “giá trsuy gim” (singular value) ln nht và  
nhnht.  
3.3.3 Hàm eig, svd  
Các hàm này cho phép tính giá trriêng và giá trsuy gim ca mt ma trn vuông.  
3.4 Hin th- đồ ha  
MATLAB có các hàm cho phép biu din đồ th1D, 2D và 3D các kết qu.  
Chúng ta có thbiu din hàm exp theo thi gian gia 0 và 10 giây. Chúng ta làm theo các  
bước:  
B1: Định nghĩa môt vector thi gian  
>> t=0:0.1:1;  
Vector thi gian t có 11 thành phn.  
B2: Tính giá trca hàm exp ti các thành phn thi gian t  
>> y=exp(t);  
Vector y có 11 thành phn.  
B3: Vhàm y phthuc vào t theo lnh  
>> plot(t,y);  
Khi thc hin lnh v, MATLAB sto ra mt khung hình (figure). Để làm vic vi các  
khung hình, chúng ta có thsdng các lnh sau:  
>> grid;  
% To lưới  
>> xlabel(‘thoi gian (s)’); % Tên trc x  
>> ylabel(‘exp(t)’);  
>> title(‘Ham e mu’);  
% Tên trc y  
% Tên đồ thị  
Copyright © by Hoàng Ngc Hà  
Bài thc hành môn hc Mô hình hóa, mô phng và ti ưu hóa các quá trình hóa hc  
Các khung hình được đánh sln lượt. Tuy nhiên chúng ta có thchn la mt khung hình  
bng cách nhp vào :  
>> figure(1);  
Tương t, nếu chúng ta mun làm vic trên mt khung hình đã m, phi sdng lnh hold  
on. Lnh này cho phép gili hình nh đã có khi thc hin môt lnh vmi trên đó. Ngược  
li ta có lnh hold off. Mt shàm sau đây cũng có thể được sdng :  
>> clf;  
% Xóa khung hình  
>> close all;  
% Đóng các khung hình  
>> subplot(221);  
3.5 Các lnh xlý dliu:  
3.5.1 Hàm polyfit  
Cho phép « xp x» mt tp dliu/mt hàm theo nghĩa bình phương cc tiu.  
Ví dchúng ta có mt tp dliêu sau :  
x
y
1
1
2
3.5  
3
2.5  
4
4
5
7
6
10.5  
7
12.5  
8
11  
9
15  
10  
18  
Khai báo tp dliu trên vi Matlab :  
>> x = (1: 1: 10)’;  
>> y = [1 3.5 2.5 4 7 10.5 12.5 11 15 18]’;  
>> result = polyfit(x,y,1); %tính các hsa, b ca đường thng xp xỉ  
Ví dxp xmt hàm sin:  
>> x = (0: 0.1: 2*pi)';% to vector x  
>> y = sin(x);  
% tính giá trhàm sin ti các đim ca vector x  
>> p = polyfit(x,y,3);% cho đa thc xp xbc 3 ca y theo nghĩa bình phương cc tiu  
>> f = polyval(p,x); % tính giá trca đa thc xp xti các đim x  
>> plot(x,y,'r',x,f,'b')% biu din đồ thso sánh  
Copyright © by Hoàng Ngc Hà  
Bài thc hành môn hc Mô hình hóa, mô phng và ti ưu hóa các quá trình hóa hc  
3.5.2 Hàm interp1  
Cho phép ni suy các giá trttp mt dliu (xdata,ydata) bng các phương pháp tuyến  
tính, Spline... Gisvi tp dliu (x,y) trên đây, làm thnào để tính giá trca y ti x=5.5?  
>> xi = 5.5;  
>> yi = interp1(x,y,xi); % phương pháp tuyến tính mc định được chn  
>> plot(x,y,'o',xi,yi,'r*') ;  
3.6 Hàm gii phương trình vi phân thường  
Các hàm ode45, ode23,… cho phép gii (h) phương trình vi phân thường ODE.  
Xem chi tiết cu trúc ca lnh và các ví dtrong phn help ca matlab bng cách nhp vào >>  
help ode45  
3.7 Lp trình vi MATLAB  
Trong phn này chúng ta slàm quen vi các câu lnh lp trình cơ bn vi MATLAB. Chú ý,  
cho các vòng lp các chsố được sdng không nên trùng vi các biến ni được định nghĩa  
trước bi Matlab: ví dbiến “i” tương ng vi căn bc hai ca -1.  
3.7.1 Lnh if  
Trong vòng “if” mt điu kin sẽ được kim tra. Nếu điu kin này đúng (giá trlogic 1 hoc  
TRUE), chương trình sẽ đi vào và thc thi lnh trong vòng “if”. Ngược li skhông thc  
hin.  
Cú pháp chung ca mt vòng lnh “if” là:  
IF expression  
statements  
ELSEIF expression  
statements  
ELSE  
Copyright © by Hoàng Ngc Hà  
Bài thc hành môn hc Mô hình hóa, mô phng và ti ưu hóa các quá trình hóa hc  
statements  
END  
3.7.2 Vòng lp for  
Thc hin các lnh vi svòng lp xác định. Cú pháp ca vòng lp for:  
for variable = expression  
statements  
end  
3.7.3 Vòng lp while  
Thc hin các lnh trong khi điu kin là còn đúng. Cú pháp ca vòng lp while:  
while expression  
statements  
end  
3.7.4 Lnh break, return và keyboard  
Lnh break cho phép kết thúc mt vòng lp while hoc for. Lnh return cho phép thoát ra từ  
mt hàm. Khi chúng ta mun kim tra chương trình (gli), chúng ta sdng hàm keyboard.  
3.8 Bài tp thc hành  
Bài tp 1: Gii phương trình tuyến tính/phi tuyến sau vi độ chính xác tương đối 10-4  
dùng Matlab (Trang 62, sách ng Dng Tin Hc Trong CNHH-Thc Phm, Trnh Văn  
Dũng):  
a) x5 + 5x 2 = 0 , x  
b) ln(8x) x 0.5 = 0  
dy  
[
0, 1  
]
c)  
= sin(t)(2y(t)t 1) + 3, y(t = 0) = 0  
dt  
Bài tp 2: (Bài tp 2.5, trang 58, sách KThut Phn ng, Tâp 4, Vũ Bá Minh)  
D.F Smith đã nghiên cu phn ng phân hy pha khí ca clorur sulfuryl, SO2Cl2 thành khí  
Clor và SO2 ti 279,2°C:  
SO2Cl2ÆCl2+SO2  
Ở điu kiên thtích ca hn hp không đổi, theo dõi áp sut tng cng theo thi gian phn  
ng được kết qusau:  
t, ph  
Pt, mmHg  
3,4 15,7 28,1 41,1 54,5 68,3 82,4 96,3  
325 335 345 355 365 375 385 395  
Dùng Matlab, biu din các cp đim (t,Pt) trên đồ th. Quan hnày là tuyến tính ? Kết lun  
vbc ca phn ng ?  
Xác định phương trình vn tc phn ng bng đồ th? Từ đây, có thnói gì về độ chuyn hóa  
thi đim vô cc.  
Copyright © by Hoàng Ngc Hà  
Bài thc hành môn hc Mô hình hóa, mô phng và ti ưu hóa các quá trình hóa hc  
Ni suy giá trca Pt ti t=20 ph, 48 ph và 70 ph ?  
Bài tp 3: Lp trình vi Matlab  
To các tp file.m (vào memu, chn File, chn New File, chn File.m) để gii các yêu cu  
sau dùng Matlab (mi yêu cu to mt file và lưu nó vi tên exo1.m, exo2.m...)  
n
Yêu cu 1 : Viết chương trình tính S = k vi n=5, 20 và 50;  
k=0  
n
1
Yêu cu 2 : Viết chương trình tính S =  
vi n=5, 20 và 50; (so sánh kết quvi e1 )  
k=0 k!  
Yêu cu 3 : Viết chương trình cho phép hin thị đồ ha hàm ssau :  
1 if x < 0  
f (x) = sign(x) = 1 if x > 0  
0 if x = 0  
Bài tp 4: Lp trình gii htuyến tính (Khuyến khích)  
Áp dng các lnh được gii thiu trong bài thc hành để gii quyết các bài tp sau:  
To mt hàm cho phép tìm nghim ca mt htuyến tính Ax = b bng phương pháp  
Gauss. Đầu vào là các ma trn A b , đầu ra là các nghim cn tìm. Hãy hin thc  
chương trình bng Matlab.  
So sánh vi nghim tìm được bng lnh x=inv(A)*b (gisA khnghch)  
Bài tp 5: (Khuyến khích) Sinh viên ttham kho các tài liu khác để có các bài tp và  
dùng Matlab để gii quyết.  
Copyright © by Hoàng Ngc Hà  
pdf 9 trang baolam 29/04/2022 4340
Bạn đang xem tài liệu "Bài thực hành môn Mô hình hóa, mô phỏng và tối ưu hóa các quá trình hóa học - Bài thực hành số 01: Làm quen với phần mềm Matlab", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_thuc_hanh_mon_mo_hinh_hoa_mo_phong_va_toi_uu_hoa_cac_qua.pdf