HCBBS Forum (Deutsch)
Submit Chemical Projects / Find Solutions
Amplify Your Requirements on a Broader Chemical Platform *Engineering · Technology · Equipment · Solutions*
Submit Request

Ich bitte jemanden, der mit MATLAB umgehen kann und aus dem Bereich Chemie ist, mir zu helfen, zu überprüfen, ob mit diesem Dynamikmodell etwas nicht in Ordnung ist

2020-03-16View Original

Thread Content

function nihe_0316 % Parameterabschätzung für Differentialgleichungen % clear all; clc; format long; global t0; % k10,E,Ka entsprechen k(1), k(2), k(3) k0 =; % Anfangswerte der Parameter, wichtig! Die Ergebnisse können wiederholt in die iterative Berechnung eingesetzt werden! ! x0 = 0,63713; % Anfangswert – falls nicht vorhanden, werden die Daten der ersten Zeile verwendet.
lb = ; % Untergrenze der Parameter; muss anhand der Ergebnisse der Anpassung angepasst werden.
ub = ; % Obergrenze der Parameter.
% Experimentelle Daten: expdata= … ; t0=expdata(:,1); yexp = expdata(:,2); % yexp: Entspricht den experimentellen Daten.
% ------------------------------------------------------------------
% Nutzung der Funktion lsqnonlin() zur Schätzung der Parameter:
k = lsqnonlin(@ObjFunc4LNL, k0, lb, ub, x0, yexp);
fprintf(“\n\nDie durch die Funktion lsqnonlin() ermittelten Parameterwerte sind:\n”)
fprintf(“\tk10 = %.8f\n”, k(1))
fprintf(“\tE = %.8f\n”, k(2))
fprintf(“\tKa = %.8f\n”, k(3))
% ----------------------------------------------------
tspan = ;
x = ode45(@KineticEqs, tspan, x0, k);
x = spline(t, xx, t0); % Interpolation, damit die Anzahl der theoretischen und experimentellen Werte übereinstimmt.
% Berechnung des Korrelationskoeffizienten:
A = corrcoef(yexp, x(:,1));
fprintf(“\nDer Korrelationskoeffizient von Xb beträgt:\n”)
fprintf(“\tR = %.8f\n”, A(1,2))
% Berechnung des Determinationskoeffizienten:
r(1) = 1 – sum((yexp – x(:,1))^2) / sum((yexp – mean(yexp))^2);
% ******************************** Determinationskoeffizient
fprintf(“\nDer Determinationskoeffizient R^2 von Xb beträgt:\n”)
fprintf(“\tR^2 = %.8f\n”, r(1))
% Berechnung des quadratischen Mittelwerts der Fehler:
rmse(1) = sqrt(sum((yexp – x(:,1))^2) / length(t0));
fprintf(“\nDer quadratische Mittelwert der Fehler RMSE von Xb beträgt:\n”)
fprintf(“\tRMSE = %.8f\n”, rmse(1))
% Berechnung der Summe der Quadraten der Fehler:
ssr(1) = sum((yexp(:,1) – x(:,1))^2);
fprintf(“\nDie Summe der Quadraten der Fehler SSE von Xb beträgt:\n”)
fprintf(“\tSSE = %.8f\n”, ssr(1))
% ----------------------------------------------------
figure(1); plot(t, xx(:,1), ‘b-’, t0, yexp, ‘ro’); legend(‘Theoretische Werte’, ‘Experimentelle Werte’, ‘Location’, ‘best’); xlabel(‘Zeit’); ylabel(‘Experimentelle Werte N’);
% ------------------------------------------------------------------
function f = ObjFunc4LNL(k, x0, yexp)
tspan = ;
x = ode45(@KineticEqs, tspan, x0, k);
x = spline(t, xx, t0);
f = x – yexp; % Differenz zwischen theoretischen und experimentellen Werten, also der Fehler.
end
% ------------------------------------------------------------------
function dXbdt = KineticEqs(t, Xb, k)
% Differentialgleichung; k10, E, Ka entsprechen k(1), k(2), k(3).
T = 358,15; m = 3; N0 = 0,1467; Cb0 = 0,5564;
Ca = Cb0 * (3 – Xb); Cb = Cb0 * (1 – Xb); Cc = Cb0 * Xb;
Keq = exp(4873/T – 13,813); Kb = 5,2112 * k(3); Kc = 2,2695 * k(3);
dXbdt = (m * k(1) * exp(-k(2)/8,314*T) * (Ca * Cb – Cc/Keq)) / (N0 * (1 + k(3)*Ca + Kb*Cb + Kc*Cc)^2);
end
% ------------------------------------------------------------------
Ende.
Die berechneten Werte für X ändern sich mit der Zeit nicht. Theoretisch handelt es sich dabei um eine Gleichung der Form dx/dt = f(x). In den Büchern wird gesagt, dass man für Gleichungen der Form dc/dt = f(c) die RK-Methode verwenden kann, um Lösungen zu finden. Ich verstehe nicht, warum das bei mir nicht funktioniert. Bitte helft mir dabei!
Reply #22020-03-22
Oh, Gott – ich habe seit über zehn Jahren nichts mehr damit zu tun gehabt, kann nur zusehen.

Submit a Project

**Looking for Chemical Technology, Equipment & Solutions?** No Registration Required Broader Platform Exposure | Global Chemical Service Provider Connections

Submit Request — Free Consultation

Disclaimer

This is an automated machine translation of the original thread. Some technical terms may have inaccuracies; the original text shall prevail. Click "View Original" at the top right to access the source page, which supports IP-based automatic real-time language translation. Please watch out for contact details and sales inducements to prevent fraud. All content and translations are for reference only, representing solely the poster's personal views. For enquiries, email service@hcbbs.com.