电源技术网|技术阅读
登录|注册

您现在的位置是:电源技术网 > 技术阅读 > 通过代码辨识RC参数(二)

通过代码辨识RC参数(二)

我们知道在RC参数辨识过程中,不同RC阶数对参数的准确度存在很大的影响,如果我们对比1RC和2RC的区别,会发现2RC的参数精度比1RC的要好很多。

得到的2RC参数与SOC的关系也是比较明确且有规律的

SOCr0r1c1r2c2
1000.0456140.89439173.39150.00325980.2758
900.0227920.0278121011.7560.00471456.4282
800.0236680.036059967.71840.005224420.7934
700.0242390.028395962.90030.005453355.4462
600.0246990.006119321.05370.031105935.5144
500.0247650.031517887.07370.006686271.7164
400.0253280.037325863.25670.007849238.1184
300.0257010.040193836.13230.009352210.5516
200.0267990.053891834.8260.011849202.015
100.0287130.104662754.42870.016396214.5108

附上相关的过程代码

currentLimit = 0.5;

iniPar = [0.06;0.03;1000];

xIni = 0;

[m,n] = size(dataHPPC{1});

outputPar = zeros(3,n);

modelError = zeros(m,n);

vModel = zeros(m,n);

for i = 1:n

   time = dataHPPC{1}(:,i);

   current = dataHPPC{2}(:,i);

   vExp = dataHPPC{3}(:,i);  

   index = find(current>currentLimit);

   ocvVoltage = vExp(index(1)-1);

   fun = @(beta,x)RC1_fitting_model(beta,x,ocvVoltage,xIni);

   outputPar(:,i) = nlinfit([time,current],vExp,fun,iniPar);

   vModel(:,i) = RC1_fitting_model(outputPar(:,i),[time,current],ocvVoltage,xIni);

   modelError(:,i) =  abs((vModel(:,i) - vExp)./vExp)*100;

   figure

   plot(vModel(:,i))

   hold on

   plot(vExp)

end

如果需要原始代码和文件,请付费下载