【问题标题】:Area under curve cyclic voltammetry within specific bound特定范围内的曲线循环伏安法下面积
【发布时间】:2019-05-28 10:33:47
【问题描述】:

我想计算I>0和V

我已经尝试过积分和trapz函数但没有用!我无法附加文本文件,所以如果您需要它进行调试,请告诉我该怎么做。

close all
clear all
clc
c=Constants;
F = dir('*.txt');  
nF = length(F) ;
count = 0 ;
for ii = 1:nF
fname = F(ii).name ;
end
filename = fullfile(fname);
fileID = fopen(filename);
formatSpec = '%s';
N = 1;
c_text = textscan(fileID,formatSpec,N,'Delimiter',' ');
c_data = textscan(fileID,'%f %f');
v=c_data{1};
i=c_data{2};

idi = i>0;
idv=v<0.4;
v_pos = v(idv);
i_pos= i(idi); 
% v_limit=v_pos(idv)

inty = trapz(v_pos, i_pos)


setvalue = 0.06;
[~,closestIndex] = min(abs(setvalue-v_pos));
vm= v_pos(closestIndex)

setvalue = 0.4;
[~,closestIndex] = min(abs(setvalue-v_pos));
vf= v_pos(closestIndex)
ifinal=i_pos(closestIndex)

figure(1)
plot(v,i)
hold on
hold off
grid
area=inty-[(vf-vm)*ifinal]
yline(0);

cvarea=area/1000;
qh=cvarea/c.cvscanrate;
active_area=qh/(c.qpt*c.A);
fprintf('Active surface area of catalyst %g cm^2 Pt/ cm^2 electrode \n', active_area);

使用 trapz 时出错(第 66 行) 点间距必须是指定均匀间距的标量或每个数据点的 x 坐标向量。

【问题讨论】:

  • 请包含文本文件

标签: matlab


【解决方案1】:

有几种方法可以计算离散积分。

这里是黎曼和近似

这是trapz使用的梯形规则

黎曼和是最容易计算的。

您只需要每个矩形的宽度和高度(这样我们就可以计算面积)。

%Dummy data:
x = 0:0.1:10;
y = x.^2;  
%Width
X = diff(x)
%Height
Y = conv(y,ones(2,1),'valid')/2
%Integral:
I = sum(X.*Y)

即使点间距不均匀,这种方法也可以工作。

【讨论】:

    猜你喜欢
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 2011-06-24
    • 1970-01-01
    • 2021-04-18
    相关资源
    最近更新 更多