Parameter Estimation of a model
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Atharva Bhomle
il 3 Lug 2023
Risposto: Star Strider
il 3 Lug 2023
I have experimental data of application of current profile to a battery and have quantiies like time, current, voltage, temperature. From this data I calculate SoC based on Coloumb counting.
I have created a model that calculates terminal voltage but have some parameters i want to determine. Equation is in the picture attached.
Parameters are E0, r, k0, k1, k2, k3.
How can i estimate these parameters so that th voltage output of the equation matches with the expermiental data.
0 Commenti
Risposta accettata
Star Strider
il 3 Lug 2023
I would do something like this —
Data = [(0:10).' rand(11, 3)]; % Data = [Time Current Voltage Temperature
SOC = rand(11,1);
fcn = @(E0, r, k0, k1, k2, k3, Iin, Vm, SOC) E0 + Iin.*r - k0./SOC - k1.*SOC + k2.*log(SOC) + k3.*log(1-SOC) - Vm;
objfcn = @(b) norm(fcn(b(1),b(2),b(3),b(4),b(5),b(6),Data(:,2),Data(:,3),SOC));
B0 = rand(1,6);
Parms = fminunc(objfcn, B0)
fprintf(1,'E0 = %6.3f\nr = %6.3f\nk0 = %6.3f\nk1 = %6.3f\nk2 = %6.3f\nk3 = %6.3f\n',Parms)
Make appropriate changes for your data.
.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Propulsion and Power Systems in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!