matlab怎么绘制电池的增量容量曲线
比如利用NASA 电池数据中的B0005电池,怎么样用matlab绘制它的增量容量曲线
我也不懂啥叫单点衰减曲线,但是只要有表达式,就能给你整出来
x(t)=Cτ∑n=1+∞exp(−n2tτ) x(t) =\frac{C}{\tau} \sum_{n=1}^{+\infty} exp(-\frac{n^2t}{\tau}) x(t)=τCn=1∑+∞exp(−τn2t)
我们注意到这里的求和符号直接拉满,干到+∞+\infty+∞,这……
由于数学功底不行,不知道怎么搞,只能想到如下方法
我们画出 f(x)=exp(−x)f(x) = exp(-x)f(x)=exp(−x) 的曲线,发现 x<−10x<-10x<−10 基本都等于0了,所以我们加到 x=−10x=-10x=−10 就行了。
由 −n2t/τ=x>−10-n^2t/\tau =x>-10−n2t/τ=x>−10 ,得 n<10τ/tn <\sqrt{10\tau/t}n<10τ/t
那么我们用for循环来完成求和部分,如下
function out = kernel(t,tao)
N = floor(sqrt(10*tao/t));
out = 0;
for n = 1:N
out = out+exp(-n^2*t/tao);
end
end
当然循环可以用矩阵运算替换
function out = kernel(t,tao)
N = floor(sqrt(10*tao/t));
n = 1:N;
out = exp(-n.^2/t/tao)
end
接下来就可以生成单点衰减曲线了
%% 生成衰减信号
% 设置参数
iter = 0.1;
T = iter:iter:10;
C = 10;
tao = 1;
% 生成
signalLen = length(T);
signal = zeros(signalLen,1);
for n = 1:signalLen
signal(n) = C/tao*kernel(T(n),tao);
end
figure
plot(signal),title('衰减信号')
原来就长这个样