Ứng dụng Matlab trong việc xây dựng mô hìnhvề sự phát triển của tảo

Một phần của tài liệu (LUẬN văn THẠC sĩ) mô hình hóa mô phỏng hệ thống xử lý nước thải giàu dinh dưỡng bằng tảo chlorella vulgaris (Trang 69 - 75)

Phần 4 Kết quả và thảo luận

4.3. Ứng dụng mô hình toán mô phỏng khả năng xử lý của hệ thống Hraps

4.3.2. Ứng dụng Matlab trong việc xây dựng mô hìnhvề sự phát triển của tảo

tảo trong môi trường

Mô hình về sự phát triển của tảo trong môi trường giàu dinh dưỡng được mô phỏng thông qua một thân mô hình chính và các hộp dữ liệu. Mô hình được tạo lập ở mức cơ bản, nhằm dễ dàng áp dụng ở rất nhiều trường hợp và có tính phổ biến cao. Mô hình làm việc trong một số điều kiện cụ thể:

-Bể phản ứng được đảm bảo có sự hòa trộn hoàn toàn, dinh dưỡng và tảo được phân bố đều

-Cường độ ánh sáng cố định từ đèn huỳnh quang, dao động trong khoảng 5800 µmol/m2/s

-Mô hình cơ bản không tính đến yếu tố nhiệt độ, pH, độ mặn, P, chất hữu cơ, vi khuẩn và sự chuyển hóa các dạng của chất dinh dưỡng N trong bể phản ứng.

Mô hình được xây dựng dựa trên các thông số, phép toán đã được chọn lọc từ mô hình lý thuyết.Về cơ bản, mô hình là sự mô phỏng sự sinh trưởng của tảo trong điều kiện nhất định, với những yếu tố đầu vào xác định, hiệu quả quang hợp, sinh khối, năng suất của tảo được tính toán.

Mô hình gồm một thân mô hình chính và 3 mô hình dữ liệu bao gồm: -Mô hình về tảo;

-Mô hìnhvềthờigianchiếusáng; -Mô hình về dinh dưỡng.

58

Sử dụng các thuật toán chạy mô hình để tái hiện quá trình trong thực tế chính là công việc chính trong việc sử dụng phần mềm MATLAB.

4.3.2.1. Thân mô hình chính

Thân mô hình chính: đây như một dàn ý, diễn tả toàn bộ quá trình chạy mô hình, gọi các biến, thông số từ các mô hình dữ liệu để chạy theo hoạt động đã được lập trình tại đây.

Tại mỗi yếu tố, nhiều quá trình cũng như điều kiện được thực hiện đồng thời, việc đưa hết các phép tính, thuật toán vào cùng một màn hình sẽ trở nên phức tạp, khó kiểm soát lỗi và thiếu tính logic. Do đó, thân mô hình chính được tạo ra để đưa mọi hoạt động trở nên rõ ràng, dễ dàng theo dõi, sửa lỗi, như thân chính của cây, trong đó các mô hình dữ liệu là các nhánh.

Thân mô hình chính được lập trình như sau:

% Mô hình chính

• clc

• clear all

• close all

%Gọi biến cho mô hình ánh sáng

• global I V Timestep I_in

%Gọi biến cho mô hình tảo

• global mumax mumin Ki Ks

%Gọi biến cho mô hình thiết kế

• global Slabs Volume

%Gọi biến cho mô hình dinh dưỡng

• global c_CO2lmol c_CO2lmass c_Nmol c_Nmass t Timestep_s P_Ts B gamma_CO2 gamma_N

%Đọc dữ liệu ánh sáng từ kết quả theo dõi

• LightArray = xlsread('Book2.xlsx', 1, 'A1:B84');

%Khởi tạo các thông số ban đầu

• p_CO2_bub = 0.05; %[bar] áp suất riêng phần của khí CO2

• p_CO2_air = 0.0004; %[bar] áp suất riêng phần CO2 trong không khí

• c_CO2lmol(1) = 0.01; %[mMol/dm3]

• c_CO2lmass(1) = c_CO2lmol(1)*44; %[mg/dm3]

• c_Nmol(1) = 41/(14+16*3); %[mMol/dm3]

• c_Nmass(1) = 41; %[mg/dm3] số liệu thí nghiệm

• V_dot_gas = 85/(1000*3600); %[m3/s]

% Điều kiện hoạt động

• B_init = 16/1000; %[g/dm3] nồng độ tảo ban đầu

• Total_time_d = 7 ; %[day] tổng số ngày mô phỏng

• Timestep = 0.01; %[day] bước tính (ngày)

• Timestep_s = Total_time_d*Timestep*24*3600; %[s] bước tính (s)

• Total_Timesteps = Total_time_d/Timestep; %[-] tổng các bước tính

%Nhập thông só liên quan đến tảo

• Box_Algae_Nannochloropsis

%Nhập thông số liên quan đến bể phản ứng

• Box_Geometry_Greenhouse

%Mô hình chính bắt đầu từ đây

• t=1; %t là bộ đếm các bước tính

• B(1)=B_init; %Thiết lập nồng độ sinh khối ban đầu

• while t < Total_Timesteps

%Nhập dữ liệu ánh sáng

• Box_Light_Time(LightArray)

• Box_Light_LambertBeer(I_in(t),B(t))

%Tính toán nồng độ dinh dưỡng trong bể phản ứng

• Box_Nutrients(p_CO2_bub, p_CO2_air, V_dot_gas);

%Tính toán tốc độ sinh trưởng và năng suất sinh trưởng của tảo

• j=1;

• while j < (Slabs+1)

• %Tính toán yếu tố giới hạn cho sự phát triển của tảo

• gamma_light(j) = I(j)./(Ks+I(j)+I(j).^2./Ki);

• %Tính toán tốc độ sinh trưởng của tảo

• mu(j) = mumax.*gamma_light(j)*gamma_CO2(t)*gamma_N(t)- mumin;

• %Tính toán nồng độ sinh khối của tảo(g/dm3)

• Bs(j) = B(t)*exp(mu(j)*Timestep);

• %Tính toán năng suất sinh trưởng của tảo(g)

• P(j) = Bs(j)*V(j);

60 • end

• Time(t) = t*Timestep;

• Time2(t+1)= t*Timestep;

• B(t+1) = sum(P)/Volume; %Tínhtoánsinhkhốimới(g/dm3)

• P_Ts(t+1) = B(t+1)-B(t); %Tính toán năng suất mới

• Prod(t)=(B(t)-B(1))*Volume; % Tính toán tốc độ tăng trưởng

• t=t+1; % Thiết lập bước thời gian mới

• end

%Tải dữ liệu từ kết quả thí nghiệm

• load GreenhouseBiomassAIR.mat;

• load GreenhouseBiomassCO2.mat;

%Vẽ hình từ kết quả dữ liệu

• figure

• plot(Time,gamma_CO2, Time,gamma_N)

• legend('CO2 limiting factor','Nitrogen limiting factor')

• xlabel('Time [day]') • ylabel('Limiting factor [-]') • axis( [0 7 0 1.1] ) • figure • plot(Time2,c_CO2lmass) • xlabel('Time [day]') • ylabel('Mass Concentrations [mg/dm3]') • legend('CO2 concentration in [mg/dm^3]') • figure

• plot( Time2, c_Nmass);

• legend( 'NO3 concentration in [mg/dm^3]')

• xlabel('Time [day]')

• ylabel('Mass Concentrations [mg/dm3]')

4.3.2.2 Mô hình về tảo

Đây là mô hình cung cấp các thông số liên quan đến tảo. Các thông số mô phỏng sự sinh trưởng và phát triển được xác định dựa trên điều kiện cường độ ánh sáng và điều kiện dinh dưỡng. Đây là các thông số được sử dụng lại hệ số

thực nghiệm từ thí nghiệm đã được tiến hành và chứng minh trước đó đối với đối tượng là tảo Chlorella bao gồm: tốc độ sinh trưởng tối đa, tốc độ hao hụt của tảo, cường độ ánh sáng mà tốc độ tăng trưởng đạt một nửa, cường độ ánh sáng mà tại đó gây ra ức chế quang hợp...

• function Box_Algae_Chlorella;

• global mumax mumin Ki Ks k_abs K_CO2 K_N;

• mumax = 5.3; %[d^-1] Chlorella SP tốc độ tăng trưởng cực đại;

• mumin = 1.09; %[d^-1] Chlorella SP tốc độ hao hụt hô hấp;

• Ks = 28; %[mu mol/m2s] Chlorella SPcường độ ánh sáng tại điểm tốc độ tăng trưởng cực đại đạt một nửa;

• Ki = 9000; %[mu mol/m2s] Chlorella SP cường độ ánh sáng mà tại đó gây ra ức chế quang hợp;

• k_abs = 0.157; %[m2/g] Gharagozloo2014;

• K_CO2 = 0.028; %[g/m3] [mg/dm3] Gharagozloo2014 cường độ bão hòa của CO2;

• K_N = 19.4; %[mg/dm3] 20150504kN;

• end.

4.3.2.3. Mô hình thời gian chiếu sáng

Đây là mô hình mô phỏng cường độ ánh sáng trong môi trường với thời gian chiếu sáng được quy định.

• function Box_Light_Time(LightArray);

• global I_in t Timestep;

• Day_data = LightArray(:,1); • I_data = LightArray(:,2); • Day_actual = t*Timestep; • Lower_boundary = abs(1-Day_data./Day_actual); • [Lowest_Value,G] = min(Lower_boundary); • if G >1; • G=G-1; • else; • end; • if G >80; • G=80;

62 • else;

• end;

• Vect1 = [Day_data(G) Day_data(G+1) Day_data(G+2)];

• Vect2 = [I_data(G) I_data(G+1) I_data(G+2)];

• I_in(t) = interp1(Vect1,Vect2,Day_actual);

• end.

4.3.2.4. Mô hình dinh dưỡng

Đây là mô hình tính toán các quá trình diễn ra đối với dinh dưỡng, N và CO2. Hai nguồn dinh dưỡng chính cho tảo đến từ hợp chất Nito và Cacbon vô cơ. Nito có thể thêm vào môi trường dưới dạng Nitrat. Cacbon vô cơ từ khí CO2, khí hòa tan trong nước.

• function Box_Nutrients(p_CO2_bub, p_CO2_air, V_dot_gas);

• global c_CO2lmol c_CO2lmass c_Nmol c_Nmass t Timestep_s P_Ts B Area_air;

• global dPdt c_CO2lDF_air c_CO2lDF_bub kla_sur kla_bub gamma_CO2 gamma_N CheckB K_CO2 K_N D.

% Điều kiện bắt đầu

• P = 1; %[bar] áp suất khí ở điều kiện lý tưởng;

• T = 300; %[K] nhiệt độ khí Kelvin ở điều kiện lý tưởng;

• MW_CO2 = 44; %[g/mol];

• rho_CO2= (MW_CO2*P*100)/(T*8.314*1e-3); %[g/m3] khối lượng riêng của khí ở điều kiện lý tưởng;

• K_henry = 0.8317; % hệ số Henry;

• rho_H2O = 1000; %[kg/m3] khối lượng riêng của nước;

• sigma = 0.07275; %[N/m]sức căng bề mặt;

• mu = 0.00089; %[Pa s] độ nhớt động lực học H20;

• v_l = mu/rho_H2O; %[m2/s] độ nhớt động học;

• D_L = 1.92e-9; %[m2/s] độ khuếch tán của CO2 trong nước;

• D_LO2 = 2.1e-9; %[m2/s] độ khuếch tán của O2 trong nước;

• V_s = V_dot_gas/Area_air; %[m/s] tốc độ bề mặt;

• m_CO2_bub = p_CO2_bub*rho_CO2; %[g/m3] nồng độ CO2 bổ sung;

• m_CO2_air = p_CO2_air*rho_CO2; %[g/m3] nồng độ CO2 từ không khí

• c_CO2lDF_bub = m_CO2_bub*K_henry; %[mg/dm3];

• c_CO2lDF_air = m_CO2_air*K_henry; %[mg/dm3].

%Xác định giá trị kla

• Sc = mu/(D_L*rho_H2O); %Smith number

• Bo = (9.81*D^2*rho_H2O)/sigma; %Bond number

• Ga = (9.81*D^3*rho_H2O^2)/mu^2; %Gallileo number

• Fr = V_s/sqrt(9.81*D); %Froude number

%Hệ số chuyển khối

• kla_bub=0.09*Sc^0.5*Bo^0.75*Ga^0.39*Fr^1*(D_L/D^2)*(D_L/D_LO2);

• kla_sur = 1.18*10^-5;

%Yếu tố giới hạn CO2 và N

• gamma_CO2(t) = c_CO2lmass(t)/(K_CO2+c_CO2lmass(t));

• gamma_N(t) = c_Nmass(t)/(K_N+c_Nmass(t));

• P_Ts(1) = 0; %[g/dm3/dt] Năng suất tại thời điểm ban đầu

• dPdt(t) = P_Ts(t)./Timestep_s;

% Tính toán phương trình vi phân

• BC = [B(t) c_CO2lmass(t) c_Nmass(t)]; %Điều kiện biên

• TR = [0 Timestep_s]; %Khoảng thời gian

• [tfcn,y] = ode23s('Box_Nutrients_fcn',TR,BC);

• Algae = y(:,1);

• CO2 = y(:,2);

• N = y(:,3);

• c_CO2lmass(t+1)= CO2(length(CO2)); %Xác định nồng độ CO2

• c_CO2lmol(t+1) = c_CO2lmass(t+1)./44;

• c_Nmass(t+1) = N(length(N)); %Xác định nồng độ N

• c_Nmol(t+1) = c_Nmass(t+1)/(14+16*3);

• CheckB(t) = Algae(length(Algae)); %Kiểm tra thông số

• End

Một phần của tài liệu (LUẬN văn THẠC sĩ) mô hình hóa mô phỏng hệ thống xử lý nước thải giàu dinh dưỡng bằng tảo chlorella vulgaris (Trang 69 - 75)

Tải bản đầy đủ (PDF)

(91 trang)