1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo thực hành matlab -xác định công của hệ trong các quá tình cân bằng từ giản đồ

16 2 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 3,96 MB

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA s3LElœa

BÁO CÁO THỰC HÀNH MATLAB

GVAD: Tran Phước Duy

Để tài: Xác định công của hệ trong các quá trình cân bằng từ giản đồ (p, V) Nhóm sinh viên thực hiện: Tên thành viên Mã số sinh viên Lê Trọng Nghĩa 41302522 Nguyễn Trọng Nhân 41302722 Phạm Chí Kha 41301717 Trương Ngọc Trác 41304256

Nguyễn Duy Khoa 41301854

Trang 2

`

Loi not dau

Đề tài: Xác định công của hệ trong các quá trình cân bằng từ giản đồ (p,V)

1 Yêu cầu:

Bài tập này yêu câu sinh viên sử dụng Matlab đề biểu diễn giãn đồ (p, V) của các quá trình cần băng trên từ các giá trị p, V cho trước và từ các giá trị đó tính tốn tơng cơng của các quá trình đã được biêu diễn

2 Điểu kiện:

e Sinh vién can có kiên thức về lập trinh co ban trong MATLAB e Tim hiéu cac lénh Matlab liên quan symbolic va do hoa

3 Nhiém vu:

Xây dựng chương trình Matlab:

e Nhập dữ liệu về số mol n, áp suất ban đầu D, thé tich ban dau V

e Tao nut nhan chon qua trinh nao (dang tich, dang 4p, dang nhiét hoặc thoát ra) và nhập dữ liệu áp suất mới p hoặc thê tích mới V cho quá trình đó

e Vẽ đồ thị biểu diễn các quá trình trên trên giãn đô (P,V)

e Dùng các phép toán hình thức (symbolic) dé tính tông công của các quá trình trên

Chú ý: Sinh viên có thể dùng các cách tiếp cận khác không dùng

symbolic

4.Tai liéu tham khao:

A L Garcia and C Penland, MATLAB Projects for Scientists and

Engineers, Prentice Hall, Upper Saddle River, NJ, 1996

Trang 3

A.CO SO LY THUYET

DNguyên lý 1 nhiệt động lực học:

e Nội năng gồm:

— Động năng (tịnh tiễn, quay, dao động) của các phân tử — Thế năng tương tác trong các phân tử

— Thế năng tương tác giữa các phân tử

e Nhiệt lượng mà khí nhận bằng tổng độ biến thiên nội năng và

công mà hệ sinh ra O =AU +W Với: Vy W = | pảV : Công mà khí sinh ra yy AU =nC,AT : Độ biến thiên nội năng Q : nhiệt lượng mà khí nhận Quy ước: W>0(W<0): hệ sinh(nhận) công Q > 0(Q<0): hệ nhận(tỏa) nhiệt ID Ap dụng nguyên lý I cho các đăng quả trình: * Quá trình đẳng áp: Ở biến đôi này áp suất của hệ là không đôi P = const Đối với khí lý tưởng, ta có: V —=const T Công trong quá trình đẳng áp: Vy W =| pdV = pAV = p(V,-V,) h Nhiệt trong quá trình đẳng áp Q=AU+W =nC, AT + pAV => Q=nC, AT+nRAT =nC,AT Với:

C,= = : nhiệt dung mol đăng tích C,=C,+R : nhiét dung mol dang ap

Trang 4

+ Quá trình đăng tích: Ở biến đôi này thể tích không thay đôi V=const Đối với hệ một khi lý tưởng, ta co: P —=const T Céng trong qua trinh dang tich: W =| pdv =0 Nhiét trong qua trinh dang tich: O=AU=nCAT=nC(L—T) * Quá trình đẳng nhiệt:

Ở biến đối này nhiệt độ là không đổi T = const Đối với khí lý tưởng, định luật Boyle-Mariotte cho ta: PV = consf Công trong quá trình đắng nhiệt: 4 4 dV L4 W = | pÄV =nRT | —=nRTIn~2 i P V V, Nhiệt trong quá trình đẳng nhiệt: AU =0 1 => Q=W =nRTIn V,

s% Quá trình đoan nhiệt:

Ở biên đôi này áp suât p và thê tích V có môi liên hệ: pV’ =const

re Cp 2 A "A

VớI7 = Cc! chỉ sô đoạn nhiệt

Trong quá trình này hệ không trao đổi nhiệt với bên ngoài nên Q = 0 Do đó công của hệ trong quá trình này là:

W =—-AU =-nC, AT =nC (TF, — 1,)

R nRT, V

Với C, =1 6h _ AKA _ Pi ;nC T, — pV,

y-1 y-l y-l

Công thức tính công sinh ra sẽ là:

W = PV — PV,

Trang 5

B.CHƯƠNG TRÌNH : CONG CUA HE TRONG CAC QUA TRINH CAN BANG | OK

—Cac thong so trang thei khi Tong Cong va Nhiet Luong(kJ) V

So mol n 1 \ Wtong= -0.57505 Qtong = —

Ap suat P(kPa) 800 100 Wquatrinh = 0 Qquatrinh = -0.75 R | 800 The tich VỊL) 1 1 700 Nhiet do T(K) 72.1631 12.0272 ai ! ; 500 L - | Qua trinh dang tich N vị ị Loai khi % 400 | a ® Don nguyen tu R ©;Luong nghe tu | 300 200 Reset all ¬Y 100 _ -Ä : Start Next Clase | 0 l | | | l | l l 0 1 2 3 4 5 8 8 9 10 VỊL 6 7 8 9 Chu thich:

1.Gidi han do cho 2 truc p va V 2.Các thông số của khí lúc đầu

3.Các thông số của khí lúc sau

4.Công và nhiệt của quá trình đang thực hiện

5.Tổng công và nhiệt của hệ trong tất cả các quá trình đã vẽ

6.Các nút điều khiển

— Nút Start: Chạy, vẽ đồ thị, tính công và nhiệt sau khi nhập dữ liệu — Nút Next: chuyển sang quá trình tiếp theo

— Nút Close: đóng chương trình

— Nut Reset all: dat lai cac gia tri

7.Loại khí lý tưởng (đơn nguyên tử, lưỡng nguyên tử)

8.Quá trình biến đổi(đẳng áp, đăng tích, đăng nhiệt, đoạn nhiệt)

Trang 6

CODE CHẠY CHƯƠNG TRÌNH

function varargout = Nhiethoc 2(varargin)

gui Singleton = 1;

gui State = struct('gui Name', mfilename,

"gui Singleton', gui Singleton,

'gui OpeningFcn', @Nhiethoc 2 OpeningFcn,

‘gui OutputFcn', @Nhiethoc 2 OutputFcn,

"gui_LayoutFcn', [] ,

"gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_ Callback = str2func(varargin{1}); end if nargout [varargout{l:nargout}] = gui_mainfcn(gui State, varargin{:}); else gui_mainfcn(gui_ State, varargin{:}); end function Nhiethoc 2 OpeningFcn (hObject, eventdata, handles, varargin) handles.output = hObject; guidata (hObject, handles);

function varargout = Nhiethoc 2 OutputFcn (hObject, eventdata,

handles)

varargout{l} = handles.output;

h = msgbox('HELLO! Welcome to my applet :)','HELLO');

function start Callback (hObject, eventdata, handles) op = str2num(get (handles.GHDP, 'string'));

ov = str2num(get (handles.GHDV, 'string'));

if isempty(op) & isempty (ov) op = 1000;

ov = 10; end

n = str2num(get(handles.somol, 'string'));

pl = str2num(get (handles.apsuatl, 'string'))

vl = str2num(get (handles.thetichl, 'string') p2 = str2num(get (handles.apsuat2,'string')) v2 = str2num(get (handles.thetich2,'string'));

w = str2num(get (handles.congtoanphan, 'string"'));

Trang 7

Cv2 = R/(g2-1);

if (n < 0) | (pl < 0) | (vi < 0) | (p2< 0) | (v2 < 0)

msgbox('Du lieu sai','Warning', 'warn') else

contents = tí handles.quatrinh, 'String');

quat rinhvalue = contents{get (handles.quatrinh, 'Value')}; loaikhil = get (handles.donnguyentu, 'Value');

loaikhi2 = get (handles luongnguyentu, ‘Value’);

if loaikhil == get (handles.donnguyentu, 'Max') Switch quatrinhvalue case 'Qua trinh dang ap' if isempty (v2) msgbox('Vui long nhap the tich V2', 'Warning', 'warn'); elseif v2 == vl msgbox('"Vui long nhap lai V2 <> V1l', 'Warning', 'warn') else t1 (p1*v1)/(n*R); t2 = (pl*v2)/(n*R); Ql = n*(Cv1l + R)*(t2 - t1)/1000;

set (handles.nhietguatrinh, 'string',Q1);

Trang 8

t1 = (p1*v1)/(n*R);

t2 = (p2*v1l)/(n*R);

Q1 = n*Cv1*(t2 - t1) /1000;

set (handles.nh1etquatrinh, 'string',Q1);

set (handles.nhiettoanphan, 'string',Q1+Q); set (handles.nhietdol, 'string',tl);

set (handles.nhietdo2, 'string',t2);

set (handles.thetich2, 'string',vl);

set (handles.congquatrinh, 'string',wl); set (handles.congtoanphan, 'string',wl+tw) ; axes (handles.axes1l); x = vl*ones(2,1); y = linspace(pl,p2, length (x)); plot (x,y, 'linewidth',4,'color','r'); axis([0 ov 0 op]); grid on; xlabel ('V(L)'); viabel('P(kPa) ' end case 'Qua trinh dang nhiet' syms x t1 = (pi*vil)/(n*R);

set (handles.nhietdol, 'string',tl);

set (handles.nhietdo2, 'string',tl); A isempty (p2) ; B isempty (v2); if (A==1 & B==0 & v2~=vl1) | (A==0 & B==1 & p2~=pl1) if (A==1) & (B==0) p2 = (pl*vl)/v2;

set (handles.apsuat2, 'string',p2); else (A==0) & (B==1)

v2 = (pl*vl1)/p2;

set (handles.thetich2, 'string',v2);

end

wi = n*R*t1*log(v2/v1) /1000;

set (handles.nhietquatrinh, 'string',wl); set (handles.nhiettoanphan, 'string',wl+Q); ( ( )7 et et

Trang 9

elseif (A==l) & (B==0) & (v2==v]l) msgbox('"Vui long nhap lai V2 <> V1l', 'Warning','warn');

elseif (A==0) & (B==1) & (P2==pl)

msgbox('"Vui long nhap lai P2 <> Pl', 'Warning', 'warn');

elseif (A==1) & (B==1)

msgbox ('Error', 'Warning', ‘error'); else msgbox('Chi nhap mot trong hai thong so P2 hoac V2', 'Warning', 'warn'); end case 'Qua trinh doan nhiet' syms x tl = (pi*v1)/(n*R); Ql = 0;

set (handles.nhietquatrinh, 'string',Q1);

set (handles.nhiettoanphan, 'string',Q1+Q);

set (handles.nhietdol, 'string',tl); A 1sempty (p2) ; B 1semEty (v2); if (A==l & B==0 & v2~x=vi) | (A==0 & B==l & P2~x=pl) if (A==1) & (B==0) P2 = pl* (vl/v2)%g1; set (handles.apsuat2,'string',p2); et et et t2 = (p2*v2)/(n*R); set (handles.nhietdo2,'string',t2); else (A==0) & (B==1) v2 = ((pl*v1^g1)/p2)^(1/gl); set (handles.thetich2, 'string',v2); t2 = (p2*v2)/(n*R); set (handles.nhietdo2, 'string',t2); end wl = (pl*vl - p2*v2)/(1000* (gl - 1));

set (handles.congquatrinh, 'string',wl); set (handles.congtoanphan, 'string',wltw) ; axes (handles.axes1) ; x = linspace(vl,v2,100); yY = p2*(v2./x) *g1; plot (x,y, 'linewidth',4,'color','r'); axis([0 ov 0 op]); grid on; xlabel ('V(L)'); ylabel('P(kPa)');

elseif (A==1) & (B==0) & (v2==v1)

Trang 10

elseif (A==0) & (B==l) & (P2==pl) msgbox('"Vui long nhap lai P2 <> P1','Warning', 'warn'); elseif (A==1) & (B==1) msgbox('Error', 'Warning','error'); else msgbox('Chi nhap mot trong hai thong so P2 hoac V2', 'Warning', 'warn'); end end elseif loaikhi2 == get (handles.luongnguyentu, 'Max') Switch quatrinhvalue case 'Qua trinh dang ap' if isempty (v2) msgbox('Vui long nhap the tich V2', 'Warning', 'warn'); elseif v2 == vl msgbox('"Vui long nhap lai V2 <> V1', 'Warning', 'warn') else t1 (p1*v1)/(n*R); t2 = (pl*v2)/(n*R); Ql = n*(Cv2 + R)*(t2 - t1)/1000;

set (handles.nhietquatrinh, 'string',Q1); set (handles.nhiettoanphan, 'string',Q1+Q); set (handles.apsuat2,'string',pl); set (handles.nhietdol, 'string',t1); ( ( ( set (handles.nhietdo2,'string',t2); wl b1* (v2-v1) /1000;

Trang 11

else wl = QO; t1 = (p1*v1l)/(n*R); t2 = (p2*v1)/(n*R); Ql n*Cv2* (t2 - t1)/1000;

set (handles.nhietguatrinh, 'string',Q1); set (handles.nhiettoanphan, 'string',Q1+Q); set (handles.nhietdo2,'string',t2);

set (handles.thetich2, 'string',vl); set (handles.congquatrinh, 'string',wl); set (handles.congtoanphan, 'string',wl+tw) ; axes (handles.axes1); x = vl*ones(2,1); y = linspace(pl,p2, length (x)); plot (x,y, 'linewidth',4,'color','r'); axis([0 ov 0 op]); grid on; xlabel('V(L)'); ylabel ('P(kPa) ' ( ( set (handles.nhietdol, 'string',tl1); ( ( ( )7 end case 'Qua trinh dang nhiet' syms x tl = (pl*v1)/(n*R);

set (handles.nhietdol, 'string',tl);

set (handles.nhietdo2, 'string',tl); A = isempty (p2); B = isempty(v2); if (A==1 & B==0 & v2~=vl1) | (A==0 & B==1 & p2~=pl1) if (A==1) & (B==0) p2 = (pl*vl)/v2; set (handles.apsuat2, 'string',p2); elseif (A ) & (B==1) v2 = (p1*v1) /p2} t(handles.thetich2, 'string',v2)j; else msgbox('Chi nhap mot trong hai thong so P2 hoac V2', 'Warning', 'warn'); end wl n*R*t1*1og (v2/v1)/1000;

Trang 12

plot(x,y, 'linewidth',4,'color','r'); axis([0 ov 0 op]); grid on; xlabel ('V(L)'); ylabel('P(kPa)');

elseif (A==1) & (B==0) &§ (v2==vl)

msgbox('"Vui long nhap lai V2 <> V1', 'Warning', 'warn');

elseif (A==0) & (B==1) & (P2==pl) msgbox('Vui long nhap lai P2 <> P1', 'Warning', 'warn');

elseif (A==1) & (B==1)

msgbox('Error', 'Warning', 'error'); else msgbox('Chi nhap mot trong hai thong so P2 hoac V2', 'Warning', 'warn'); end case 'Qua trinh doan nhiet' syms x t1 = (p1*v1)/(n*R); = 0;

set (handles.nhietquatrinh, 'string',Q1);

set (handles nhiettoanphan, | string',Q1+Q); et (handles.nhietdol, 'string',tl); = isempty(p2); = isempty(v2); if (A==1 & B==0 & v2~=vl1) | (A==0 & B==1 & p2~=pl1) if (A==1) & (B==0) p2 = P1*(v1/v2)^g2; set (handles.apsuat2, 'string',p2); t2 = (p2*v2)/(n*R);

set (handles.nhietdo2, 'string',t2);

else (A==0) & (B==1) v2 = ((pl*v1%g2)/p2)* (1/g2); set (handles.thetich2, 'string',v2); t2 = (p2*v2)/(n*R); t(handles.nhietdo2, 'string',t2); end wl = (pl*vl - p2*v2)/(1000* (g2 - 1));

Trang 13

xlabel('V(T) '); ylabel('P(kPa)');

elseif (A==1) & (B==0) & (v2==v1) msgbox('"Vui long nhap lai V2 <> V1', 'Warning', 'warn');

elseif (A==0) & (B==1) & (p2==pl1) msgbox('Vuil long nhap lai P2 <> P1l', 'Warning', 'warn');

elseif (A==1) & (B==1)

msgbox('Error', 'Warning', ‘error'); else msgbox('Chi nhap mot trong hai thong so P2 hoac V2', 'Warning','warn'); end end else end hold on; end

function next Callback (hObject, eventdata, handles) n = str2num(get (handles.somol, 'string')); p2 = str2num(get (handles.apsuat2,'string')); v2 = str2num(get (handles.thetich2,'string')); R = 8.3145; ta (p2*v2) / (n*R); set(handles.apsuatl, 'String',; p2); set (handles.apsuat2, 'String', '' )7

set (handles.thetich2, 'String', '');

set (handles.nhietdol, 'String', t2); nợ) set (handles.nhietdo2, 'String", ( ) ( ) set (handles.thetichli, 'String', v2 ( M ( ( ;

function close Callback(hObject, eventdata, handles)

button = questdlg('Do you want to continue?', ‘Continue

Operation', 'Yes','No', 'No'); if stremp (button, 'Yes")

close;

elseif strcmp (button, 'No') end

function reset Callback (hObject, eventdata, handles) resetbutton = questdlg('Are you sure ?!', 'Continue

Operation','Yes','No', 'No');

if strcmp (resetbutton, 'Yes')

set (handles.somol, 'String', '');

Trang 14

set (handles.apsuat2, 'String', '')

set (handles.thetichl, 'String', ''

set (handles.thetich2, 'String', '' ( ( ( set (handles.nhietdol, 'String', }'); ( ( ( ( e “ese — ~—" “ee `

set (handles.nhietdo2, 'String', ''); set (handles.congtoanphan, 'String',0); set (handles.congquatrinh, 'string',g0); set (handles.nhiettoanphan, 'String',Q);

set (handles.nhietgquatrinh, 'string',0O); axes (handles.axes1) ; cla reset; axis([0 10 0 1000]); grid on; xlabel('V(L)'); ylabel('P(kPa)'); elseif strcmp (resetbutton, 'No') end

function ok Callback(hObject, eventdata, handles) op = str2num(get (handles.GHDP, 'string'));

ov = str2num(get (handles.GHDV, 'string')); xlabel ('V(L)'); vlabel ('P(kPa) ') if 1sempty(op) = axis([0 ov 0 end & isempty(ov) == 0 )

function somol Callback (hObject, eventdata, handles) function somol CreateFcn (hObject, eventdata, handles)

if ispe && isequal (get (hObject, 'BackgroundColor'), get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor','white'); end

function apsuatl Callback(hObject, eventdata, handles)

function apsuatl CreateFcn (hObject, eventdata, handles) if ispc && isequal (get (hObject, 'BackgroundColor'),

get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor', 'white');

end

function apsuat2 Callback (hObject, eventdata, handles)

function apsuat2 CreateFcn (hObject, eventdata, handles)

if ispe && isequal (get (hObject, 'BackgroundColor'), get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor', 'white');

end

function nhietdo2 Callback (hObject, eventdata, handles)

Trang 15

if ispe && isequal (get (hObject, 'BackgroundColor'),

get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor','white');

end

function nhietdol Callback (hObject, eventdata, handles) function nhietdol CreateFcn (hObject, eventdata, handles) if ispe && isequal (get (hObject, 'BackgroundColor'),

get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor','white'); end

function thetich2 Callback (hObject, eventdata, handles)

function thetich2 CreateFcn (hObject, eventdata, handles)

if ispe && isequal (get (hObject, 'BackgroundColor'),

get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor','white');

end

function thetichl Callback (hObject, eventdata, handles) function thetichl CreateFcn (hObject, eventdata, handles)

if ispe && isequal (get (hObject, 'BackgroundColor'), get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor','white');

end

function congtoanphan Callback (hObject, eventdata, handles) function congtoanphan CreateFcn (hObject, eventdata, handles) if ispe && isequal (get (hObject, 'BackgroundColor'),

get (0, 'defaultUicontrolBackgroundColor')) set (hObject, 'BackgroundColor','white');

end

function quatrinh Callback (hObject, eventdata, handles) function quatrinh CreateFcn (hObject, eventdata, handles)

if ispe && isequal (get (hObject, 'BackgroundColor'),

get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor', 'white');

end

function congquatrinh Callback (hObject, eventdata, handles) function congquatrinh CreateFcn (hObject, eventdata, handles) if ispe && isequal (get (hObject, 'BackgroundColor'),

get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor','white'); end

function editl0 Callback (hObject, eventdata, handles)

Trang 16

function loaikhi CreateFcn (hObject, eventdata, handles)

if ispe && isequal (get (hObject, 'BackgroundColor'), get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor', 'white');

end

function loaikhil Callback (hObject, eventdata, handles) function loaikhi2 Callback (hObject, eventdata, handles)

function GHDP Callback(hObject, eventdata, handles)

function GHDP CreateFcn (hObject, eventdata, handles) if ispe && isequal (get (hObject, 'BackgroundColor'),

get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor', 'white');

end

function GHDV Callback (hObject, eventdata, handles) function GHDV CreateFcn (hObject, eventdata, handles)

if 1SPpC && isequal (get (hObject, 'BackgroundColor'), get (0, 'defaultUicontrolBackgroundColor'))

set (hObject, 'BackgroundColor', 'white');

Ngày đăng: 18/08/2022, 16:07

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w