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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

` 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á

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:

TP Hồ Chí Minh - 2014

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 toá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

http://www.algarcia.org/fishbane/fishbane.html

Dién dan Mathworks: http://www.mathworks.com

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

¡ : số bậc tự do(i=3:khí đơn nguyên tử,i=5:khí lưỡng nguyên tử)

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:

W = | pÄV =nRT | —=nRTIn~2

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

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,)

y-1 y-l y-l

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

W = PV — PV,

y-l

Trang 5

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 = —

R | 800 The tich VỊL) 1 1

700 Nhiet do T(K) 72.1631 12.0272 ai !

; 500 L - |

a

® Don nguyen tu R ©;Luong nghe tu | 300

200

Reset all

¬Y 100 _ -Ä :

| 0 l | | | l | l l

0 1 2 3 4 5 8 8 9 10

VỊL

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)

9.Gian dé (p,V).

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 OutputFcn', @Nhiethoc 2 OutputFcn,

"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

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'));

R = 8.3145;

g1 = 5/3;

g2 = 7/5;

Cvl = R/(g1-1);

)7

r

Trang 7

Cv2 = R/(g2-1);

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

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

else

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

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

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

t2 = (pl*v2)/(n*R);

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

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

set (handles.apsuat2,'string',pl);

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

( ( (

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

t (handles.congquatrinh, 'string',wl);

set (handles.congtoanphan, 'string',wltw);

x = linspace(vl,v2,100);

y = pl † 0*x;

axes (handles.axes1);

plot (x,y, 'linewidth',4,'color','r');

axis([0 ov 0 op]);

grid on;

xlabel ('V(L) ')

end case 'Qua trinh dang tich'

if isempty (p2) msgbox('Vui long nhap ap suat P2', 'Warning', 'warn')j;

elseif p2 == pl msgbox('Vui long nhap lai P2 <>

Pl', 'Warning', 'warn')

else

wl = 0;

)7

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);

plot (x,y, 'linewidth',4,'color','r');

axis([0 ov 0 op]);

grid on;

xlabel ('V(L)');

end

case 'Qua trinh dang nhiet'

syms x

t1 = (pi*vil)/(n*R);

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

set (handles.congquatrinh, 'string',wl);

set (handles.congtoanphan, 'string',wltw);

axes (handles.axesl1);

x = linspace(vl,v2,100);

y = (pl*vl)./x;

plot(x,y,'linewidth',4,'color','r');

axis([0 ov O op]);

grid on;

xlabel('V(L)');

ylabel('P(kPa)');

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;

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

set (handles.congquatrinh, 'string',wl);

set (handles.congtoanphan, 'string',wltw) ;

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)

msgbox('Vui long nhap lai V2 <>

V1', 'Warning', 'warn');

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

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

t2 = (pl*v2)/(n*R);

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);

set (handles.congquatrinh, 'string',wl);

set (handles.congtoanphan, 'string',wl+tw) ;

x = Llinspace(vl,v2,100);

y = pl + O*x;

axes (handles.axes1);

plot (x,y, 'linewidth',4,'color','r');

axis([0 ov 0 op]);

grid on;

xlabel('V(L)');

ylabel('P(kPa)');

end case 'Qua trinh dang tich'

if isempty (p2) msgbox('Vui long nhap ap suat

P2', 'Warning', 'warn');

elseif p2 == pl msgbox('Vui long nhap lai P2 <>

Pl', 'Warning', 'warn')

Trang 11

else

wl = QO;

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

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

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);

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) p2 = (pl*vl)/v2;

set (handles.apsuat2, 'string',p2);

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

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

set (handles.congquatrinh, 'string',wl);

set (handles.congtoanphan, 'string',wltw) ;

x = linspace (vi,v2,100);

Vy = (pl*vi)./x;

(

set (handles.nh1ettoanphan, 'string';w1+Q);

( (

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) 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

set (handles.congquatrinh, 'string',wl);

set (handles.congtoanphan, 'string',wltw);

x = linspace(vl,v2,100);

Y = Pp2*(v2./x).^g2;

plot (x,y, 'linewidth',4,'color','r');

axis([0 ov 0 op]);

grid on;

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;

set(handles.apsuatl, 'String',; p2);

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

)7

nợ)

( )

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

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

Trang 14

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

(

(

(

set (handles.nhietdol, 'String', }');

(

(

(

(

~—"

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

set (handles.congtoanphan, 'String',0);

set (handles.congquatrinh, 'string',g0);

set (handles.nhiettoanphan, 'String',Q);

set (handles.nhietgquatrinh, 'string',0O);

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'))

end

function apsuat2 Callback (hObject, eventdata, handles)

function apsuat2 CreateFcn (hObject, eventdata, handles)

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

get (0, 'defaultUicontrolBackgroundColor'))

end

function nhietdo2 Callback (hObject, eventdata, handles)

function nhietdo2 CreateFcn (hObject, eventdata, handles)

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

🧩 Sản phẩm bạn có thể quan tâm

w