Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 180 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
180
Dung lượng
23,77 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG MAI ĐỨC NGHĨA NGHIÊN CỨU ẢNH HƯỞNG CỦA THÔNG SỐ PHUN HỖN HỢP NHIÊN LIỆU DẦU DIESEL - DẦU DỪA ĐẾN CÁC CHỈ TIÊU KINH TẾ VÀ MÔI TRƯỜNG CỦA ĐỘNG CƠ DIESEL CAO TỐC LUẬN ÁN TIẾN SĨ KHÁNH HÒA – 2017 i BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG MAI ĐỨC NGHĨA NGHIÊN CỨU ẢNH HƯỞNG CỦA THÔNG SỐ PHUN HỖN HỢP NHIÊN LIỆU DẦU DIESEL - DẦU DỪA ĐẾN CÁC CHỈ TIÊU KINH TẾ VÀ MÔI TRƯỜNG CỦA ĐỘNG CƠ DIESEL CAO TỐC Ngành đào tạo: Kỹ thuật khí động lực Mã số: 62520116 LUẬN ÁN TIẾN SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS PHẠM HÙNG THẮNG KHÁNH HÒA – 2017 ii Cơng trình hồn thành Trường Đại học Nha Trang Người hướng dẫn khoa học: PGS.TS Phạm Hùng Thắng Phản biện 1: PGS.TS Nguyễn Lê Duy Khải Phản biện 2: PGS.TS Trần Thanh Hải Tùng Phản biện 3: PGS.TS Phan Văn Quân iii LỜI CAM ĐOAN Tôi xin cam đoan kết nghiên cứu đề tài: “Nghiên cứu ảnh hưởng thông số phun hỗn hợp nhiên liệu dầu diesel – dầu dừa đến tiêu kinh tế môi trường động diesel cao tốc” cơng trình nghiên cứu cá nhân chưa công bố cơng trình khoa học khác thời điểm Khành Hòa, ngày tháng năm 2017 Tác giả luận án Mai Đức Nghĩa iv LỜI CẢM ƠN Trong suốt thời gian thực luận án, nhận giúp đỡ Ban giám hiệu, quý Phòng, Khoa Trường Đại học Nha Trang Đặc biệt hướng dẫn tận tình PGS TS Phạm Hùng Thắng, truyền thụ kiến thức tạo điều kiện để tơi hồn thành cơng trình nghiên cứu Qua đây, xin gửi lời cảm ơn sâu sắc đến giúp đỡ Tôi xin chân thành cảm ơn quý Thầy Khoa kỹ thuật giao thông Trường Đại học Nha Trang Trường Đại học Bách Khoa Thành Phố Hồ Chí Minh, cung cấp thơng tin, tài liệu đóng góp nhiều ý kiến quý báu cho luận án Xin chân thành cảm ơn cán nhân viên Trung tâm thí nghiệm thực hành Trường Đại học Nha Trang, đồng nghiệp công tác Trung tâm đăng kiểm xe giới tỉnh Khánh Hòa, hỗ trợ nhân lực trang thiết bị để trình thực nghiệm hồn thành Tơi xin gửi lời cảm ơn đến gia đình, đơn vị đồng nghiệp giúp đỡ, động viên suốt trình học tập nghiên cứu thực luận án Xin chân thành cảm ơn! Khánh Hòa, ngày tháng năm 2017 Tác giả luận án Mai Đức Nghĩa v MỤC LỤC Trang DANH MỤC KÝ HIỆU…………………………………………………………………… x DANH MỤC CHỮ VIẾT TẮT xiii DANH MỤC CÁC BẢNG xiv DANH MỤC CÁC HÌNH xvi MỞ ĐẦU 1 LÝ DO THỰC HIỆN ĐỀ TÀI MỤC TIÊU NGHIÊN CỨU 3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 3.1 Đối tượng nghiên cứu 3.2 Phạm vi nghiên cứu 4 NỘI DUNG NGHIÊN CỨU PHƯƠNG PHÁP NGHIÊN CỨU Ý NGHĨA KHOA HỌC VÀ TÍNH THỰC TIỄN CỦA ĐỀ TÀI LUẬN ÁN 6.1 Ý nghĩa khoa học 6.2 Tính thực tiễn đề tài KẾT CẤU LUẬN ÁN HẠN CHẾ CỦA LUẬN ÁN Chương 1: TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU 1.1 Xu hướng phát triển giải pháp nâng cao tiêu kinh tế, môi trường động diesel 1.2 Nhiên liệu sinh học dùng cho động diesel 11 1.3 Tình hình nghiên cứu giới nước sử dụng hỗn hợp dầu diesel dầu thực vật làm nhiên liệu cho động diesel 12 1.3.1 Trên Thế giới 12 1.3.2 Tại Việt Nam 15 1.4 Những yếu tố ảnh hưởng đến trình tạo hỗn hợp cháy cháy nhiên liệu dầu diesel – dầu dừa động diesel 17 1.5 Kết luận chương 18 Chương CƠ SỞ LÝ THUYẾT VỀ ẢNH HƯỞNG CỦA THÔNG SỐ PHUN HỖN HỢP DẦU DIESEL - DẦU DỪA ĐẾN CÁC CHỈ TIÊU KINH TẾ VÀ MÔI TRƯỜNG CỦA ĐỘNG CƠ DIESEL 19 vi 2.1 Ảnh hưởng thông số phun hỗn hợp nhiên liệu dầu diesel – dầu dừa đến tiêu kinh tế động diesel 19 2.1.1 Quá trình phun hình thành tia phun nhiên liệu 19 2.1.2 Cấu trúc tia phun nhiên liệu 22 2.1.2.1 Chiều dài phân rã tia phun lb 22 2.1.2.2 Độ xuyên sâu tia phun S 23 2.1.2.3 Góc nón tia phun θs 25 2.1.2.4 Đường kính trung bình hạt nhiên liệu tia phun 28 2.1.3 Quá trình phân rã tia phun hình thành hỗn hợp cháy 29 2.1.3.1 Phân rã sơ cấp 29 2.1.3.2 Quá trình phân rã thứ cấp phân rã khí động hạt nhiên liệu 32 2.1.4 Quá trình cháy hỗn hợp nhiên liệu động diesel 36 2.1.4.1 Cơ sở trình bắt lửa 36 2.1.4.2 Quá trình cháy 41 2.2 Ảnh hưởng thông số phun hỗn hợp nhiên liệu dầu diesel – dầu dừa đến tiêu môi trường động diesel 45 2.2.1 Ảnh hưởng thông số phun hỗn hợp nhiên liệu đến phát thải bồ hóng 46 2.2.2 Ảnh hưởng thông số phun hỗn hợp nhiên liệu đến phát thải NOx 49 2.3 Phương pháp xác định thông số phun hỗn hợp nhiên liệu theo tiêu kinh tế môi trường 51 2.4 Kết luận chương 54 Chương NGHIÊN CỨU ẢNH HƯỞNG CỦA ÁP SUẤT PHUN VÀ GÓC PHUN SỚM HỖN HỢP DẦU DIESEL - DẦU DỪA ĐẾN CÁC CHỈ TIÊU KINH TẾ VÀ MÔI TRƯỜNG CỦA ĐỘNG CƠ DIESEL BẰNG LÝ THUYẾT CFD 55 3.1 Lý thuyết CFD mơ q trình cháy 56 3.2 Xây dựng mơ hình mơ động phun nhiên liệu trực tiếp kiểu khí 4CHE Yanmar 57 3.2.1 Xây dựng mơ hình hình học buồng cháy rời rạc hóa mơ hình hình học 57 3.2.2 Phân tích xác định phương trình vi phân chủ đạo 58 3.2.3 Xác định điều kiện để hiệu chỉnh mơ hình 62 3.2.4 Phân tích chọn mơ hình tốn mơ 66 3.3 Xây dựng mơ hình mơ động phun nhiên liệu điện tử AVL - 5402 67 3.4 Kết nghiên cứu mô CFD 67 vii 3.4.1 Ảnh hưởng áp suất phun góc phun sớm đến cấu trúc tia phun hỗn hợp nhiên liệu B15 buồng cháy động diesel 67 3.4.2 Ảnh hưởng áp suất phun góc phun sớm hỗn hợp nhiên liệu B15 đến tiêu kinh tế môi trường động diesel phun nhiên liệu điện tử AVL 70 3.4.2.1 Ảnh hưởng áp suất phun góc phun sớm hỗn hợp nhiên liệu B15 đến tiêu kinh tế động diesel AVL - 5402 70 3.4.2.2 Ảnh hưởng áp suất phun góc phun sớm hỗn hợp nhiên liệu B15 đến tiêu môi trường động diesel AVL - 5402 73 3.4.3 Ảnh hưởng áp suất phun góc phun sớm hỗn hợp nhiên liệu B15 đến tiêu kinh tế môi trường động diesel phun nhiên liệu khí 4CHE 80 3.4.3.1 Ảnh hưởng áp suất phun góc phun sớm hỗn hợp nhiên liệu B15 đến tiêu kinh tế động diesel 4CHE Yanmar 80 3.4.3.2 Ảnh hưởng áp suất phun góc phun sớm hỗn hợp nhiên liệu B15 đến tiêu môi trường động diesel 4CHE Yanmar 85 3.5 Kết luận chương 92 Chương 4: NGHIÊN CỨU THỰC NGHIỆM 93 4.1 Bố trí thực nghiệm 93 4.1.1 Bố trí thiết bị thực nghiệm 93 4.1.2 Thông số kỹ thuật động thiết bị thực nghiệm 94 4.2 Quy hoạch thực nghiệm 95 4.2.1 Nhiên liệu thực nghiệm 95 4.2.2 Quy trình thực nghiệm 95 4.2.2.1 Điều kiện môi trường thực nghiệm 95 4.2.2.2 Quy trình đo xử lý số liệu thực nghiệm 96 4.3 Kết nghiên cứu thực nghiệm 99 4.3.1 Ảnh hưởng áp suất phun góc phun sớm đến tiêu kinh tế ge 99 4.3.2 Ảnh hưởng áp suất phun góc phun sớm đến tiêu mơi trường 103 4.3.2.1 Ảnh hưởng áp suất phun góc phun sớm đến phát thải bồ hóng 103 4.3.2.2 Ảnh hưởng áp suất phun góc phun sớm đến phát thải NOx 106 4.4 Đánh giá kết mô thực nghiệm 111 4.5 Kết luận chương 114 KẾT LUẬN VÀ KHUYẾN NGHỊ 115 KẾT LUẬN 115 viii KHUYẾN NGHỊ 116 DANH MỤC CƠNG TRÌNH NGHIÊN CỨU CỦA TÁC GIẢ 117 TÀI LIỆU THAM KHẢO 118 PHỤ LỤC ix DANH MỤC KÝ HIỆU CHỮ LA TINH Ah : Diện tích mặt cắt lỗ phun, mm au : Hệ số dịng xốy tia phun, - b : Khoảng cách hạt mơ hình williams, - Cd : Hệ số giãn dòng vòi phun, - cm : Vận tốc trung bình piston, m/s cm2 : Hệ số hiệu chỉnh thời gian chảy rối, - cp : Nhiệt dung riêng đẳng áp, kJ/kg K cv : Nhiệt dung riêng đẳng tích, kJ/kg K D : Đường kính hạt nhiên liệu, mm Dc : Đường kính xy lanh, mm Dh : Đường kính khoang phun, mm D0 : Đường kính ban đầu hạt nhiên liệu, mm den : Hệ số hiệu chỉnh thời gian chảy tầng, - dh : Đường kính lỗ phun, mm dp : Đường kính hạt bồ hóng, mm : Gia tốc, m/s2 Fh,j : Thông lượng khuếch tán theo phương j, W/m2 f : Số hạt đơn vị thể tích tia phun, - g : Gia tốc trọng trường, m/s2 h : Enthalpy, kJ/kg K : Hệ số xâm thực lỗ phun, - k : Động rối, kJ/kg kA : Hằng số tốc độ phản ứng xy hóa bồ hóng, g/cm2s Pa kB : Hằng số tốc độ phản ứng xy hóa bồ hóng, g/cm2s Pa ki : Hằng số tốc độ phản ứng i mô hình hình thành NOx, kg/m3s kT : Hằng số tốc độ phản ứng xy hóa bồ hóng, g/cm2s kZ : Hằng số tốc độ phản ứng xy hóa bồ hóng, 1/Pa lb : Chiều dài phân rã tia phun, m lh : Chiều dài lỗ phun, mm md : Khối lượng hạt nhiên liệu, g F x 147 148 149 PHỤ LỤC CODE LẬP TRÌNH TRONG Mà NGUỒN MỞ KIVA – 3V *deck kiva program kiva use dflib c +++ KIVA-3V: A Block-Structured Computer Program for 3-D Fluid Flows c +++ with Valves, Chemical Reactions, and Fuel Sprays c c c ********************************************************************** c ********************************************************************** c ********************************************************************** c ********************************************************************** c ********************************************************************** c ********************************************************************** c c kiva (kee'-vah) n [Hopi]: a Pueblo Indian ceremonial structure c that is usually round and partly underground c +++ kiva-3 notation: i4 refers both to vertex #4 and the cell shown: c +++ c +++ c +++ 7/ /|6 c +++ / /| c +++ /| / | c +++ / / | c +++ 8/ /5 | c +++ | | | | c +++ | | | c +++ | 3|- -| - |2 c +++ | / | / c +++ | | / c +++ |/ |/ c +++ | |/ c +++ c +++ top=i8tab(i4) c +++ | c +++ | derriere=i3tab(i4) c +++ | / c +++ |/ c +++ |/ c +++ left=imtab(i4) -right=i1tab(i4) c +++ /| c +++ /| c +++ / | c +++ front=jmtab(i4) | c +++ | c +++ bottom=kmtab(i4) c c ====================================================================== c c kiva is the main driver the cyclic loop begins at statement 10 c c ====================================================================== include 'comkiva.f' external fuelib logical(4) status cranko=0 intrplte=0.0 ignited=0 c c c c +++ c +++ if lospeed=1.0, rinput sets perrmx = 1.0e-2 and epsp = 1.0e-5 c +++ if pmplict = 1.0 or 2.0, rinput sets maxpit = 50 c result = LOADIMAGE ('c:\windows\1stboot.bmp',0, 0) perrmx = 0.10 nbigtst = 50 iok=0 !To debug the subroutines, make it equal to unity call qstart call begin if(irest.gt.0) call taperd if(iok.eq.1) write(*,*) 'Sub taperd is ok!' 150 C C +++ SOOT DATA OUTPUT C status=changedirqq('results') C C +++ C cguowei call ERC_Input cguowei call rinput if(iok.eq.1) write(*,*) 'Sub rinput is ok!' if(irest.eq.0) call setup call kivaini if(irest.gt.0) call second (tbegin) if(irest.gt.0) go to 20 10 call second (tbegin) if(nohydro.eq.1) go to 15 call visc if(iok.eq.1) write(*,*) 'Sub visc is ok!' 15 if(irecyc.eq.1) call timenrest call timstp if(iok.eq.1) write(*,*) 'Sub timstp is ok!' dtold=dt !s 20 call newcyc spdold=0 isp=1,lnsp i4=ifirst,ncells spdold(isp)=spdold(isp)+spd(i4,isp)*vol(i4) !!!sangsu enddo enddo if(crevice.ge.0.5) call crvblow if(iok.eq.1) write(*,*) 'Sub newcyc is ok!' if(rpm.gt.0.0) call piston if(iok.eq.1) write(*,*) 'Sub piston is ok!' if(nohydro.eq.1) go to 55 if(numinj.gt.0) then 30 n=1,numinj if(t.ge.t1inj(n) and t.le.t2inj(n))then call inject(n) endif if(iok.eq.1) write(*,*) 'Sub inject is ok!' 30 continue endif C -C If you want to calculate the wall inpingement of droplets with a Park's model C turn on the impinge switch (impinge_model=1) C -! if(np.gt.0 and breakup.ge.1.0) call break ! impinge_model=0 ! if(np.gt.0.and.impinge_model.ne.1) call pmovtv !original KIVA-3V-r2 model ! if(np.gt.0.and.impinge_model.eq.1) call pmovtv_old ! if(iok.eq.1) write(*,*) 'Sub pmovtv is ok!' C -C ATOMIZATION MODEL CALL C -! if(np.gt.0 and breakup.ge.1.0) call break ! if(np.gt.0 and.(breakup.eq.2.0.or.breakup.eq.3.0)) call breakkhrt ! if(np.gt.0.and.breakup.eq.4.0) call atomizety !atomize_erc !atomize ! MODELING BY KHS 2000.11.30 ! if(iok.eq.1) write(*,*) 'Sub break is ok!' C -C Droplet Collision model C -! if(np.gt.0 and kolide.eq.1) call colide ! if(np.gt.0 and kolide.eq.2) call colidenn ! Suggested by JUMPSTATION ! if(iok.eq.1) write(*,*) 'Sub colide is ok!' C -C Droplet evaporation model C -! evapflg=0.0 ! if(np.gt.0 and evapp.eq.1.0) call evap ! original model ! if(np.gt.0 and evapp.eq.2.0) call evap2 ! Hongsuk's model(haptane-N2) ! if(iok.eq.1) write(*,*) 'Sub evap is ok!' 151 ! if(lwall.eq.+1) call lawall ! if(iok.eq.1) write(*,*) 'Sub lawall is ok!' C C If Park's impinge model is used, the original wall film model is skipped C The IMPINGE MODEL based on Park's theory is called at PMOVTV_old F C -cguowei if(np.gt.0) call tab cguowei if(np.gt.0) call pmovtv cguowei c if(np.gt.0 and breakup.eq.1.0) call break if(np.gt.0.and.breakup.eq.1.0) then call break call repack end if cguowei if(np.gt.0 and kolide.eq.1) call colide evapflg=0.0 if(np.gt.0 and evapp.eq.1.0) call evap if(lwall.eq.+1) call KIVA_lawall if(lwall.eq.+1 and np.gt.0) call wallfilm if(anc4o2.gt.0.0) call nodcpl C -C COMBUSTION MODEL C -if(t.gt.t1inj(1)) call chem i4=ifirst,ncells if(t.gt.t1inj(1).and.temp(i4).ge.800.)then C -C SOOT MODEL C -call soot_SDH_euler(i4) !soot_foster3(i4) ! Foster model endif enddo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ C 31 if(gx.ne.0.0 or gy.ne.0.0 or gz.ne.0.0) call gravity if(np.gt.0) call pmom if(np.gt.0 or evapflg.eq.1.0) call pcoupl if(irecyc.eq.1) go to 15 if(np.gt.0) call repack call ysolve if(irecyc.eq.1) go to 15 call exdif call pinit if(phidmx.gt.0.0) call pgrad (one) ibigit=0 40 ibigit=ibigit+1 call vsolve if(irecyc.eq.1) go to 15 call tsolve if(irecyc.eq.1) go to 15 call psolve if(perr.lt.perrmx and numpit.lt.maxpit) go to 50 if(ibigit.eq.nbigtst) then irecyc=1 go to 15 endif if(phidmx.gt.0.0) call pgrad (three) go to 40 50 call pgrad (one) call phaseb if(tkesw.eq.1.0) call kesolv if(irecyc.eq.1) go to 15 if(np.gt.0) call paccel 55 call rezone if(nohydro.eq.1) call convex if(irez.gt.0) call volume if(nohydro.eq.1) go to 65 if(irez.gt.0) call aproj i4=1,ncells pnnum(i4)=pnnum(i4)/avogad enddo 60 nsub=1,nfluxs call ccflux_hongsuk(nsub) call momflx(nsub) 60 continue 152 i4=1,ncells pnnum(i4)=pnnum(i4)*avogad enddo 65 if(rpm*snapper.gt.0.0) then if(nvfaceb(0).gt.0) call snapb if(twopiston.eq.1.0) then if(nvfacet(1).gt.0) call snapt else if(nvfaceb(2).gt.0) call snapvtop if(nvfacet(1).gt.0) call snapvfce endif endif if(nohydro.eq.0) call state if(irecyc.eq.1) go to 15 call second (tcycle) timetotal=timetotal + (tcycle-tbegin) if(nohydro.eq.0) go to 10 call second (tbegin) go to 20 888 format(13(2x,a8,3x)) End………………………………………………… *deck inject subroutine inject (ninj) c c ====================================================================== c c spray injection - as coded here, the options provided are c 1) continuous spray injection (pulse = 0.0), where c tspmas*facsec = mass injected per unit time and c tnparc = number of parcels per unit time, or c 2) pulsed spray injection (pulse > 0.0), where c tspmas*facsec = total mass to be injected and c tnparc = total number of parcels to be injected c c pulse = 1.0 for half sine wave, or pulse = 2.0 for a square c wave pulsed injector, with constant injection velocity c velinj(1); pulse = 3.0 for the general case, with velocity c profile given by the velinj table c c split injection option was added 112398, where: c c ninj identifies the discrete fuel injection event being c considered in the current injection time window, and c numinj specifies how many discrete fuel injections are to c take place in one engine cycle although numinj is c nearly always 1, fuel may be injected more than once c in a cycle, e.g., during the intake >> and = c in file itape5, and each discrete injection has its own c tspmas, tnparc, t1inj and t2inj (ca1inj and cadinj) c inject is called by: kiva c c inject calls the following subroutines and functions: fran,pfind c c ====================================================================== c include 'comkiva.f' c c c c +++ pminj = parcel mass when injected, =tspmas/tnparc (=avg pm) c +++ nppts = no of computational particles injected at one time c +++ tm1inj = total spray mass that should be injected through c +++ nozzle by time t c +++ tm2inj = total spray mass actually injected through nozzle c +++ by time t c +++ rdinj(m) = fraction of injected mass associated with drops c +++ whose radius is less than m*.04*smr, when a size c +++ distribution is used c +++ partn = no of physical particles represented by a single c +++ computational particle c +++ totvol=0.0 totmass=0.0 i4=ifirst,ncells totvol=totvol+vol(i4) totmass=totmass+ro(i4)*vol(i4) 153 enddo i=1,numnoz rogas=totmass/totvol Afactor=3.0+0.28*(4.1) !N-14 tantho2=1./Afactor*4.*pi*dsqrt(rogas/rhop)*dsqrt(3.)/6 cone(i)=2*datan(tantho2) ! dcone(i)=cone(i) enddo if(mod(ncyc,ncmon).eq.0)THEN write(*,*) '@CA=',crank,'Cone angle=',cone(1)/pio180 write(12,*) '@CA=',crank,'Cone angle=',cone(1)/pio180 ENDIF if(tm2inj(ninj).eq.0.0) then c +++ c +++ compute location of each fuel spray nozzle: c +++ i=1,numnoz xinj(i)=x0 + drnoz(i)*cos(dthnoz(i)) if(thsect/pio180.gt.359.) xinj(i)=xinj(i)-0.3 yinj(i)=y0 + drnoz(i)*sin(dthnoz(i)) c +++ c +++ note that dznoz is now more general: it is the absolute location c +++ of the injector above true z = 0.0, and is no longer relative to c +++ zhead: c +++ zinj(i)=dznoz(i) c +++ c +++ call pfind to identify injection cell: c +++ npn=np+1 xp(npn)=xinj(i) if(xinj(i).eq.0.0) xp(npn)=1.0e-6 yp(npn)=yinj(i) if(yinj(i).eq.0.0) yp(npn)=1.0e-6 zp(npn)=zinj(i) i4p(npn)=i4guess i4mom(npn)=i4guess call pfind i4=i4p(npn) zcentr=0.50*(z(i8tab(i4))+z(i4)) zeps =0.01*(z(i8tab(i4))-z(i4)) if(zinj(i).gt.zcentr and f(i8tab(i4)).eq.0.0) & zinj(i)=zcentr - zeps if(zinj(i).lt.zcentr and f(kmtab(i4)).eq.0.0) & zinj(i)=zcentr + zeps continue endif if(pulse.eq.0.0) then tm1inj=tspmas(ninj)*(t-t1inj(ninj)) vinj=velinj(1) elseif(pulse.eq.1.0) then ratio=pi*(t-t1inj(ninj))/(t2inj(ninj)-t1inj(ninj)) tm1inj=tspmas(ninj)*0.5*(1.0-cos(ratio)) vinj=velinj(1) c +++ c +++ or set: vinj=pio2*velinj(1)*sin(ratio) for half-sine wave c +++ velocity profile also c +++ elseif(pulse.eq.2.0) then tm1inj=tspmas(ninj)*(t-t1inj(ninj))/(t2inj(ninj)-t1inj(ninj)) vinj=velinj(1) else ilo=(t-t1inj(ninj))/dtinj + frac=(t - (ilo-1)*dtinj - t1inj(ninj))/dtinj tm1inj=tfmass(ilo) + frac*(tfmass(ilo+1)-tfmass(ilo)) vinj = velinj(ilo) + frac*(velinj(ilo+1)-velinj(ilo)) endif nppts=(tm1inj-tm2inj(ninj))/pminj(ninj) if(nppts.lt.1) return if(np + numnoz*nppts.gt.npar) go to 50 tm2inj(ninj)=tm2inj(ninj) + nppts*pminj(ninj) 40 n=1,nppts frans1=fran(0.0) frans2=fran(0.0) frand =fran(0.0) ranbak=fran(0.0)*dt 30 i=1,numnoz np=np+1 154 i4p(np)=i4guess i4mom(np)=i4guess if(cone(i).eq.dcone(i)) then c +++ c +++ > > > > > > > > solid cone spray: < < < < < < < < c +++ c +++ tiltxz is the mean spray angle in x-z space, tiltxy (embodied c +++ in the unit vectors) is the mean spray angle in x-y space, and the c +++ angle phi ensures a circular cross-section through the spray jet, c +++ whose thickness is given by the angle dcone: c +++ C Aerodynamic based spray angle if(sector2d.eq.1.0) then sprang=tiltxz(i) + dcone(i)*(frans1-0.5) up(np)=vinj*dsin(sprang)*dcos(0.5*thsect) vp(np)=vinj*dsin(sprang)*dsin(0.5*thsect) wp(np)=-vinj*dcos(sprang) else sprang=dcone(i)*abs(frans1-0.5) phi=pi2*frans2 vaxi =vinj*dcos(sprang) vnorm=vinj*dsin(sprang)*dcos(phi) vothr=vinj*dsin(sprang)*dsin(phi) up(np)=vaxi*eavec(i,1) + vnorm*envec(i,1) + vothr*eovec(i,1) vp(np)=vaxi*eavec(i,2) + vnorm*envec(i,2) + vothr*eovec(i,2) wp(np)=vaxi*eavec(i,3) + vnorm*envec(i,3) + vothr*eovec(i,3) endif cguowei xdropn(np)=0 tbreak(np)=dt distort(np)=1 walhit(np)=0 shedms(np)=0 tbreakrt(np)=0 cguowei else c +++ c +++ > > > > > > > > hollow cone spray: < < < < < < < < c +++ c +++ here, cone is the mean spray cone angle; again, dcone is the c +++ thickness of the spray in degrees phi ensures that particles c +++ are injected out radially in all directions from the spray axis: c +++ sprang=0.5*cone(i)+dcone(i)*(frans1-0.5) phi=pi2*frans2 vaxi =vinj*dcos(sprang) vnorm=vinj*dsin(sprang)*dcos(phi) vothr=vinj*dsin(sprang)*dsin(phi) up(np)=vaxi*eavec(i,1) + vnorm*envec(i,1) + vothr*eovec(i,1) vp(np)=vaxi*eavec(i,2) + vnorm*envec(i,2) + vothr*eovec(i,2) wp(np)=vaxi*eavec(i,3) + vnorm*envec(i,3) + vothr*eovec(i,3) endif c +++ c +++ initialize xp,yp,zp at a random point along the parcel c +++ trajectory > behind < the injector, as parcel will c +++ be immediately moved in subr pmovtv, where real location c +++ will be found, and relvel calculated c +++ xp(np)=xinj(i)-ranbak*up(np) yp(np)=yinj(i)-ranbak*vp(np) zp(np)=zinj(i)-ranbak*wp(np) tp(np)=tpi utrb(np)=0.0 vtrb(np)=0.0 wtrb(np)=0.0 turbt(np)=1.0e+10 spdrag(np)=1.0 radp(np)=smr(i) CROLF cguowei xdropn(np)=0 tbreak(np)=dt distort(np)=1 walhit(np)=0 shedms(np)=0 tbreakrt(np)=0 cguowei call pfind 155 C C +++ kiva jump station C +++ DROP SIZES ARE DETERMINED BY A DISTRIBUTION FUNTION C if(injdist.eq.1) then 10 m=1,100 if(rdinj(m).gt.frand) go to 20 10 continue 20 radp(np)=0.04*m*smr(i) endif c radpp(np)=radp(np) partn(np)=pminj(ninj)*anoz(i)/(anoz(1)*pi4o3r*radp(np)**3) if(breakup.LE.4.0) then phiosc=1.5*pi y0p(np) =+amp0(i)*dcos(phiosc) y0pdot(np)=-amp0(i)*dsin(phiosc)*oscil0(i) endif C C +++ DETERMINATION OF BREAK TIME 30 continue 40 continue return 50 write( *,900) t,ncyc,crank write(12,900) t,ncyc,crank call exitk(8) c 900 format(' particle storage exceeded at t=',1pe12.5,' cycle',i5, & ' crank=',0pf7.2) End……………………………………………………… *deck chem subroutine chemspray c c ====================================================================== c c spray combustion model for using in a diesel engine c made by Hongsuk Kim c This sub consists of three parts C Low temperature reaction phase : Shell autoignition model by Halstead C Diffusion combustion phase : Characteristic time model c NO kinetics c c chemspray is called by: kiva c chemspray calls the following subroutines and functions: ignition, larflame c c ====================================================================== c include 'comkiva.f' common /ignition1/ tchem_ig dimension domega(lnrk) real kf,kb data tchop /1050./ c tchem=1.0e-10 iir=16 iib=17 iiq=18 c 100 i4=ifirst,ncells tijk=temp(i4) if(tijk.lt.tcut) go to 100 rtijk=1.0/tijk talog=dlog(tijk) c c +++ Autoignition (Shell model by Halstead et al.) c if(igni_delay.ne.1)then if(tijk.gt.tchop) goto 120 tchem_ig=tchem call ignition(i4) tchem=tchem_ig goto 100 c c +++ If ignition process is terminated, all the generic species disappear 156 c 120 spd(i4,iir)=0 spd(i4,iib)=0 spd(i4,iiq)=0 endif c c +++ Oxidation for fuel, H2, CO, C2H2 c 200 ir=9,12 c if(ir.eq.9.and.spd(i4,1).eq.0.) goto 200 if(ir.eq.9.and.spd(i4,2).eq.0.) goto 200 c c +++2-1 reaction rate calculated with Arrhenius model c rp=1.0 pp=1.0 ne=nelem(ir) 220 kk=1,ne isp=cm(kk,ir) rom=spd(i4,isp)*rmw(isp) if(am(isp,ir).eq.0) go to 210 if(rom.le.0.0) rp=0.0 if(rom.gt.0.0) rp=rp*rom**ae(isp,ir) 210 if(bm(isp,ir).eq.0) go to 220 if(rom.le.0.0) pp=0.0 if(rom.gt.0.0) pp=pp*rom**be(isp,ir) 220 continue kb=0.0 kf=0.0 if(cb(ir).le.0.0) go to 230 kb=cb(ir)*dexp(zetab(ir)*talog - eb(ir)*rtijk) ! backward reaction coef 230 if(cf(ir).le.0.0) go to 240 kf=cf(ir)*dexp(zetaf(ir)*talog - ef(ir)*rtijk) ! forward reaction coef 240 omeg=kf*rp-kb*pp !mol/cm3 s if(omeg.eq.0.)goto 200 c if(ir.ne.9)goto 260 c c +++ 2-2 Diffusion combustion model: Mixing-controlled chemistry c REACTION RATE BASED ON REITZ's THEORY c spdcho=0 250 isp=1,12 spdcho=spdcho+cho(isp)*spd(i4,isp) 250 continue ycho=spdcho/ro(i4) yn2=spd(i4,3)/ro(i4) rdiff=ycho/(1.0-yn2) fdiff=(1.0-DEXP(-rdiff))/0.632 romfuel=spd(i4,1)/mw(1) romo2=spd(i4,2)/mw(2) romref=dmin1(romfuel,romo2*fam(1,ir)/fam(2,ir)) TIMESCALE1=1.0/omeg*romfuel TIMESCALE2=0.1*tke(i4)/eps(i4) ctime=TIMESCALE1+FDIFF*TIMESCALE2 omeg=romref/ctime !mol/cm^3 s c c +++ 2-3 Find reference species c 260 rmin=0.0 ne=nelem(ir) iref=cm(1,ir) 270 kk=1,ne isp=cm(kk,ir) if(fbmam(isp,ir).ge.0.0) goto 270 !This is a product It isn't dangerous if(spd(i4,isp).le.0.0)goto 270 rom=omeg*fbmam(isp,ir)*mw(isp)/spd(i4,isp) ! oder of time with neg sign if(rom.lt.rmin) iref=isp rmin=min(rmin,rom) 270 continue rom=spd(i4,iref)*rmw(iref) if(rom+dt*omeg*fbmam(iref,ir).le.0.)then domega(ir)=-rom/fbmam(iref,ir) else 157 domega(ir)=omeg*dt endif 280 isp=1,nsp spd(i4,isp)=spd(i4,isp)+mw(isp)*fbmam(isp,ir)*domega(ir) 280 continue dechem=0 dechem=qr(ir)*domega(ir)/ro(i4) wchem=wchem+dechem*ro(i4)*vol(i4)*facsec dechk=dabs(dechem/sie(i4)) sie(i4)=sie(i4)+dechem tchem=dmax1(tchem,dechk) 200 continue 100 continue c c +++ write ignition data (R, B, & Q) mole/cm3 c totvol=0 totr=0 totb=0 totq=0 500 i4=ifirst,ncells totvol=totvol+vol(i4) totr=totr+spd(i4,16)*vol(i4)/mw(iir) totb=totb+spd(i4,17)*vol(i4)/mw(iib) totq=totq+spd(i4,18)*vol(i4)/mw(iiq) 500 continue totr=totr/totvol totb=totb/totvol totq=totq/totvol IF(MOD(NCYC,ncmon).EQ.0)THEN write(26,999)crank, totr,totb, totq ENDIF 888 format(i5,2x,5(2x,e13.5)) 999 format(4(4x,f20.15)) c return end………………………………… subroutine soot_SDH_euler(i4) include 'comkiva.f' C************************************************************************************ C This program was made to calculate soot in a diesel engine using foster model C (SAE 982463) C Species index of C2H2 is 13, its enthalpy data were added at BDCOMD.F, C check it please before use C (SurovikináàăĂẳưĂằúẩưầéắáđáƯĐầỉ13ạứầÊằầầáƯ 0áÃẻốằờầẽỳẩƠàÃầẽửáằ.) C Precursor species and soot are assumed to be graphite(C), C their enthalpy data were added in BDCOMD.F C Enthalpy of formation for precursor & soot should be set as kcal/mol in itape5 C Sungkyunkwan Univ., 2003.3.6 c c soot_foster3 is called by: kiva c c soot_foster3 calls the following subroutines and functions: termphi.f c Dvode.f C math.f c C************************************************************************************* EXTERNAL FEX4 parameter(NEQ=8) real phis(NEQ), phin(NEQ), phim(NEQ),phidot(NEQ),phimdot(NEQ) DIMENSION RWORK(10000), IWORK(678), ATOL(NEQ) real oldsoot(nv),oldfuel(nv) rho=2.0 dcpnmin=1.e-7 fuelbefore=0.0 fuelafter=0.0 fuelbefore = fuelbefore + spd(i4,1)*vol(i4)*facsec oldfuel(i4)=spd(i4,1) dtc=dt !/5 !(dt-1.e-30)/20 niter=1 fmass=ro(i4)*vol(i4) phis(1) = spd(i4, 1)*vol(i4)/fmass ! Fuel mass fraction 158 phis(2) = spd(i4, 2)*vol(i4)/fmass ! O2 mass fraction phis(3) = spd(i4, 7)*vol(i4)/fmass ! H2 mass fraction phis(4) = spd(i4,11)*vol(i4)/fmass ! CO mass fraction phis(5) = spd(i4,13)*vol(i4)/fmass ! C2H2 mass fraction phis(6) = spd(i4,14)*vol(i4)/fmass ! rn(radical) mass fraction phis(7) = spd(i4,15)*vol(i4)/fmass ! pn(particle) mass fraction phis(8) = pnnum(i4)/avogad phin=phis 10 continue call FEX4 (phis, phidot, i4, NEQ, dtneed) dtc=dmin1(dt,dmax1(1.e-10,dtneed/2.)) niter=max(1,int(dt/dtc)) niter=min(30,niter) dtc=dt/niter 20 continue iter=1,niter call FEX4 (phis, phidot, i4, NEQ, dtneed) phim=phis+phidot*dtc call FEX4 (phim, phimdot, i4, NEQ, dtneed) !phimdot=(phim-phis)/dtc phis=phis+phimdot*dtc enddo ii=1,neq if(phis(ii).lt.0.0) then write(12,*)'At crank',crank,'phis.lt.0',ii,phis(ii) phis=phin dtneed=dtc/2 niter=dt/dtneed dtc=dt/niter write(12,*)'Restarting iteration=',niter if(niter.gt.500) then write(12,*)'Too much iteration at CA=',crank exit endif goto 20 endif enddo pnnum(i4)=phis(8)*avogad sieold=sie(i4) third=1./3 pnmassmin=1.0472e-21 phis8vol =dmax1(0.,pnnum(i4)*vol(i4)) phis7fmass=dmax1(0.,phis(7)*fmass) 280 isp=1,15 if(isp.le 2) spdnew=phis(isp)*fmass/vol(i4) if(isp.eq 7) spdnew=phis(3)*fmass/vol(i4) if(isp.eq.11) spdnew=phis(4)*fmass/vol(i4) if(isp.gt.12) spdnew=phis(isp-8)*fmass/vol(i4) if((isp.gt.2 and isp.lt.7).or.(isp.gt.7 and isp.lt.11) &.or (isp.eq.12)) spdnew=spd(i4,isp) if(isp.ne.15)then sie(i4)=sie(i4)-htform(isp)*(spdnew-spd(i4,isp))*rmw(isp)/ro(i4) else if(pnnum(i4)*vol(i4).gt.1.)then rmwsi4=dmax1(600.,spd(i4,isp)*avogad/pnnum(i4)) else rmwsi4=600 endif sie(i4)=sie(i4)-htform(isp)*(spdnew-spd(i4,isp))/rmwsi4/ro(i4) endif spd(i4,isp)=spdnew 280 continue i=1,10 rratei4(i4,i)=rrate(i) enddo sootform=sootform+sootformrate*fmass*dt*facsec sootoxid=sootoxid+sootoxidrate*fmass*dt*facsec c2h2form=c2h2form+c2h2formrate*fmass*dt*facsec c2h2oxid=c2h2oxid+c2h2oxidrate*fmass*dt*facsec c2h2grow=c2h2grow+c2h2growrate*fmass*dt*facsec rnform=rnform+rnformrate*fmass*dt*facsec rnnucr=rnnucr+rnnucrrate*fmass*dt*facsec rnoxid=rnoxid+rnoxidrate*fmass*dt*facsec rndeps=rndeps+rndepsrate*fmass*dt*facsec dennuc=dennuc+dennucrate*dt*facsec dencoa=dencoa+dencoarate*dt*facsec ysootdt=sootformrate-sootoxidrate dpn=(6.*spd(i4,15)/(pi*2.*pnnum(i4)))**0.3333 159 roxid(i4)=rtot/12.0 ! Khai 12/28 c+++++write output data, Khai's modification 2007/12/04 rate1=rate1+rrate(1) rate2=rate2+rrate(2) rate3=rate3+rrate(3) rate4=rate4+rrate(4) rate5=rate5+rrate(5) rate6=rate6+rrate(6) rate7=rate7+rrate(7) rate8=rate8+rrate(8) rate9=rate9+rrate(9) c+++++end of modification if(ysootdt.lt.0 .and dpn lt dcpnmin) then pnnumold=pnnum(i4) pnnum(i4)=pnnum(i4)*(dpn/dcpnmin)**3 write(12,*)'dp is minimum.reducing N at i4=',i4,pnnumold,pnnum(i4) endif dechem=sie(i4)-sieold dechk=dabs(dechem/sieold) tchem=dmax1(tchem,dechk) totsoot=0 dsootdt(i4)=(spd(i4,15)-oldsoot(i4))/dt/ro(i4) fuelafter=fuelafter+spd(i4,1)*vol(i4)*facsec oldburnt=oldburnt+fuelbefore-fuelafter burntfuel(4)=burntfuel(4)+ &(oldfuel(i4)-spd(i4,1))*vol(i4) 100 continue 90 FORMAT(///' Error halt ISTATE =',I3, i6) 91 FORMAT(6e15.5) 92 FORMAT(16e15.5) 60 FORMAT(/' No steps =',I4,' No f-s =',I4, ' No J-s =',I4,' No LU-s =',I4/ ' No nonlinear iterations =',I4/ ' No nonlinear convergence failures =',I4/ ' No error test failures =',I4/) return end 160 MỘT SỐ HÌNH ẢNH QUÁ TRÌNH THỰC NGHIỆM TẠI TRUNG TÂM THÍ NGHIỆM THỰC HÀNH- TĐHNT Hình Kiểm tra nước vào thiết bị gây tải Hình Kiểm tra động Hình Kiểm tra hệ thống cấp nhiên liệu Hình Kiểm tra đồng hồ đo động Hình Lắp cảm biến đo nhiệt độ áp suất nén Hình Đo nhiệt độ áp suất nén Hình Kiểm tra thiết bị đo Hình Ghi nhận liệu 161 ... HỢP DẦU DIESEL - DẦU DỪA ĐẾN CÁC CHỈ TIÊU KINH TẾ VÀ MÔI TRƯỜNG CỦA ĐỘNG CƠ DIESEL 19 vi 2.1 Ảnh hưởng thông số phun hỗn hợp nhiên liệu dầu diesel – dầu dừa đến tiêu kinh tế động diesel. .. kết nghiên cứu đề tài: ? ?Nghiên cứu ảnh hưởng thông số phun hỗn hợp nhiên liệu dầu diesel – dầu dừa đến tiêu kinh tế môi trường động diesel cao tốc? ?? cơng trình nghiên cứu cá nhân chưa cơng bố cơng... hỗn hợp nhiên liệu dầu diesel – dầu dừa đến tiêu môi trường động diesel 45 2.2.1 Ảnh hưởng thông số phun hỗn hợp nhiên liệu đến phát thải bồ hóng 46 2.2.2 Ảnh hưởng thông số phun hỗn