WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Modellierung einer Adsorption/Desorption- Hilfe

 

BastiT
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 20.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2017, 15:07     Titel: Modellierung einer Adsorption/Desorption- Hilfe
  Antworten mit Zitat      
Hallo miteinander,
ich möchte wie der Titel bereits sagt eine Adsorptions -und Desorptionsreaktion eines Sondenmoleküls (Ammoniak) an einem Feststoffkatalysator (Zirconium) modellieren. Ich habe verschiedene Quellen dies bezüglich gefunden. Die Mathematik sollte also eher nicht das Problem sein da ich auf die gleichen math. Formeln komme. Nun habe ich aber folgendes Problem: Ich komme einfach auf keine sinnvolle Lösung (wenn ich auf eine Lösung komme) und verstehe ehrlich gesagt nicht warum. Daher dachte ich ich frag einfach mal die Experten.

Folgendes Gleichungssystem ergibt sich:
 gamma*beta*\frac{dThetaZr}{dT}= A_(ads)*exp(-\frac{E_(A1)}{RT})*cNH3*(1-ThetaZr)-A_(des)*ThetaZr*exp(-\frac{E_(A2)*(1-eps_2*ThetaZr-eps_(4,s)*ThetaOH}{RT})

 gamma*beta*\frac{dThetaOH}{dT}= A_(ads)*exp(-\frac{E_(A3)}{RT})*cNH3*(1-ThetaOH)-A_(des)*ThetaOH*exp(-\frac{E_(A4)*(1-eps_(2,s)*ThetaZr-eps_4*ThetaOH}{RT})

 cNH3= A_(akt)*A_(des)*exp(\frac{-E_(A2)*(1-eps_2*ThetaZr-eps_(4,s)*ThetaOH)}{RT})*ThetaZr+A_(akt)*A_(des)*exp(\frac{-E_(A4)*(1-eps_(2,s)*ThetaZr-eps_4*ThetaOH)} {RT})*ThetaOH)
*(Vp+A_(akt)*A_(ads)*exp(\frac{_E_(A1)}{RT})*(1-ThetaZr)+A_(akt)*A_(ads)*exp(\frac{-E_(A3)}{RT})*(1-ThetaOH))^{-1}
Das erhaltene Gleichungssystem aus 2 Differentialgleichungen und einer algebraischen Gleichung möchte ich nun mit Hilfe des ode15s-Befehls lösen.
Zur kurzen Erklärung: thetaZr und thetaOh stellen die Bedeckungsgrade der unterschiedlichen aciden Zentren auf dem Katalysator dar. Dazu habe ich folgenden Code formuliert:
Code:


clc
format long

global gamma beta A_akt A_des A_ads eps_2theta_s eps_4theta_s R Vp theta_OH theta_Zr E_A1 E_A2 E_A3 E_A4 eps_2theta eps_4theta

A_akt       = 0.55;         % [m^2]         aktive Oberflaeche [m^2]
A_des       = 1e13;         % [mol/s/m^2]   praeexponent. Arrheniusfaktor Desorption
A_ads       = 0.87;         % [m^3/m^2/s]   praeexponent. Arrheniusfaktor Adsorption
eps_2theta_s= 0.005;        % [-]           Proportionalitaetsfaktor
eps_4theta_s= 0.005;        % [-]           Proportionalitaetsfaktor
R           = 8.3144598;    % [J/mol/K]     ideale Gaskonstante
Vp          = 1/1000/60 ;   % [m^3/s]       Volumenstrom
E_A1        = 0;            % [J/mol]       Aktivierungsenergie Reaktion 1
E_A2        = 150000;       % [J/mol]      Aktivierungsenergie Reaktion 2
E_A3        = 0;            % [J/mol]      Aktivierungsenergie Reaktion 3
E_A4        = 100000;       % [J/mol]      Aktivierungsenergie Reaktion 4
gamma       = 2e-5;         % [mol/m^2]     Oberflaechenpllatzdichte
beta        = 1/60;         % Heizrate
eps_2theta  = 0.3;          % [-]           Proportionalitaetsfaktor
eps_4theta  = 0.05;         % [-]           Proportionalitïaesfaktor
% Use an inconsistent initial condition to test initialization.
y0 = [1 0.75 3.6524e-5];             %[BedeckungsgradLewis BedeckungsgradBroensted cNH3]
T = [373.15:0.01:823.15];            %Temperaturverlauf während der Desorption

% Use the example tolerances.  
M = [1 0 0
     0 1 0
     0 0 0];
options=odeset('Mass',M,'RelTol',10e-3,'AbsTol',10e-3);

[t,y] = ode15s(@out,T,y0,options)
 

mit dem Gleichungssystem
Code:

function out = f(T,y)
global gamma beta A_akt A_des A_ads eps_2theta_s eps_4theta_s R Vp E_A2 E_A4 eps_2theta eps_4theta

out = [ (A_ads*y(3)*(1-y(1)) - A_des*exp(-E_A2*(1-eps_2theta*y(1)-eps_4theta_s*y(2))/(R*T))*y(1))/(gamma*beta)
        (A_ads*y(3)*(1-y(2)) - A_des*exp(-E_A4*(1-eps_2theta_s*y(1)-eps_4theta*y(2))/(R*T))*y(2))/(gamma*beta)
        y(3)-((A_akt*A_des*exp((-E_A2*(1-eps_2theta*y(1)-eps_4theta_s*y(2))/(R*T)))*y(1)+ A_akt*A_des*exp((-E_A4*(1-eps_2theta_s*y(1)-eps_4theta*y(2))/(R*T)))*y(2))/(Vp+A_akt*A_ads*(1-y(1))+A_akt*A_ads*(1-y(2))))];
   
end
 

Leider erhalte ich Werte die völlig Praxisfern sind und weiß wie gesagt nicht ob das Problem an meinen Matlab und/oder Mathematik Kenntnissen liegt. Variiere ich die Werte bricht er in manchen Fällen noch vor dem ersten Berechnungsschritt mit der Fehlermeldung "Warning: Failure at t=3.731500e+02. Unable to meet integration tolerances without reducing the step size below the smallest value allowed
(9.094947e-13) at time t." ab und gibt meinen Startvektor als Ergebnis aus. Falls Bedarf besteht kann ich auch gern mein Komplettes Skript hochladen. Könnt Ihr mir evtl. einen Tipp geben was ich noch versuchen kann? Vielen Dank

MfG Basti
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.