Advertisement
rreeddwine

Untitled

Feb 7th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.92 KB | None | 0 0
  1. %main
  2. clear all;
  3. clc;
  4. fun = @sol_func;
  5. x0 = [-0.1 -0.08 -0.05];
  6. %x0 = [0,0,0];
  7. P = fsolve(fun,x0);
  8.  
  9.  
  10.  
  11. function func = sol_func(P)
  12.  
  13. %Variable values
  14. C1 = 1.07;                                              %F/m^2
  15. C2 = 0.2;                                               %F/m^2
  16. F = 96487;                                              %C/mol
  17. R = 8.314;                                              %J/(K*mol)
  18. T = 298;                                                %K
  19. Ep = 80*8.854*10^-12;                                   %F/m
  20. Ka1 = 1000*10^1.9;                                      %mol/m^3
  21. Ka2 = 1000*10^-6.73;                                    %mol/m^3
  22. Km = 0.001*10^-0.25;                                    %mol/m^3
  23. Ntot = 8.3056*exp(-6);                                  %mol/m^2
  24. pH = 6.5;
  25. Ckci = .1;
  26.                                                         %Equations
  27.  
  28. Hpb = 10^(-pH+3);                                       %(19)
  29.  
  30.     if(pH<=7)
  31.         Kpb=Ckci;                                       %(20)
  32.     else
  33.         Kpb=Ckci-10^(-pH+3)+10^(-(14-pH)+3);            %(20)
  34.     end
  35.  
  36. C0 = Hpb+Kpb;                                           %(18)
  37.  
  38. Kp = (Kpb*exp((-F/(R*T))*P(2)));                          %(4)
  39. Hp = (Hpb*exp((-F/(R*T))*P(1)));                          %(5)
  40.  
  41.  
  42. SiOH = (Ntot/(1+(Ka2/Hp)+(Hp/Ka1)+Km*Ka2*(Kp/Hp)));     %(11)
  43.  
  44. SiOHp2=(SiOH*Hp/Ka1);                                   %(7)
  45. SiOm=(Ka2*SiOH/Hp);                                     %(8)
  46. SiOK=(Km*(Ka2*Kp/Hp)*SiOH);                             %(9)
  47.  
  48. sig0 = F*(SiOHp2-SiOm-SiOK);                            %(15)
  49. sigB = F*(SiOK);                                        %(16)
  50. sigD = (-sign(P(3))*sqrt(2*R*T*Ep*C0*(exp(-F*...
  51.     (P(3)/(R*T)))+exp(F*(P(3))/(R*T))-2)));             %(17)
  52.  
  53. % P(1) is psi0
  54. % P(2) is psiB
  55. % P(3) is psiD
  56.  
  57. func(1)= sig0 + sigB + sigD;
  58. func(2)= sig0 - C1*(P(1) - P(2));
  59. func(3)= sigD + C2*(P(2) - P(3));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement