Area under the curve
    9 次查看(过去 30 天)
  
       显示 更早的评论
    
I have follwing curve resulting from plotting current in capacitor versus time. (Matlab code is attached).
I want to calculate the charge stored in the capacitor. For that I need to calculate the positive area of the curve. As you can see in the zoomed in image, the current plotted has pulses (switching frequency = 20kHz), and I would like to calculate the charge stored in one fundamental cycle (fundamental frequency = 60Hz). 
So theoretically, the capacitor is getting charged when the current flows into it. For the curve it means the value of current that is above zero(positive). 
I tried calculating the area of the curve by simplifying the curve into traingles and trapezoids, and then taking the coordinate points values (x,y). But I am pretty sure it is not correct since it does not take into account the presence of pulses. 
I also tried the trapz(x,y) in matlab but the calculation does not seem right. 
And the expression of the current is not a straightforward function, it is defined in terms of switching functions and duty ratios so I am not sure how to use the integral function in Matlab.

Please help.

7 个评论
  Dimitris Kalogiros
      
 2019-10-25
				
      编辑:Dimitris Kalogiros
      
 2019-10-25
  
			At the figures you have posted you have depicted current versus time e.g. I(t) . How do you have stored the values of current ?    Do you have a vector (lets say) I, which contains dense samples of  the signal I(t) ?  
采纳的回答
  Dimitris Kalogiros
      
 2019-10-25
        
      编辑:Dimitris Kalogiros
      
 2019-10-25
  
      Change the last section of your program to this:
%% Sizing Capacitor Cf;
%capacitor fundamental current for "a" phase is all the ripple current of ia, considering
%the fundamental compnent of ia, i.e. ia1 flows into converter;
%similar expression for other phases;
icfa = ia-ia1;
icfb = ib-ib1;
icfc = ic-ic1;
% integral of current
Qcfa=zeros(size(t));
for n=2:length(t)
    Qcfa(n)=Qcfa(n-1)+icfa(n)*(t(n)-t(n-1));
end
figure(7);
subplot(2,1,1); plot(t,icfa,'-k.'),grid on
xlabel('Time(s)','fontsize',12);
ylabel('Capacitor Current(Amps)','fontsize',12);
xlim([0,T])
figure(7);
subplot(2,1,2); plot(t,Qcfa,'-r.'); zoom on; grid on;
xlabel('Time(s)','fontsize',12);
ylabel('Capacitor charge(Coulomb)','fontsize',12);
xlim([0,T])
Qcfa(n) is the value of capacitor's electric charge at every moment t(n).  
3 个评论
  Dimitris Kalogiros
      
 2019-10-29
				%% Sizing Capacitor Cf;
%capacitor fundamental current for "a" phase is all the ripple current of ia, considering
%the fundamental compnent of ia, i.e. ia1 flows into converter;
%similar expression for other phases;
icfa = ia-ia1;
icfb = ib-ib1;
icfc = ic-ic1;
% integral of current
Qcfa=zeros(size(t));
for n=2:length(t)
    Qcfa(n)=Qcfa(n-1)+icfa(n)*(t(n)-t(n-1));
end
% integral of current, using Trapezoidal numerical integration
Qcfa2=zeros(size(t));
for n=2:length(t)
    Qcfa2(n)=trapz(t(1:n), icfa(1:n));
end
figure(7);
subplot(3,1,1); plot(t,icfa,'-k.'),grid on
xlabel('Time(s)','fontsize',12);
ylabel('Capacitor Current(Amps)','fontsize',12);
xlim([0,T]);
figure(7);
subplot(3,1,2); plot(t,Qcfa,'-r.'); zoom on; grid on;
xlabel('Time(s)','fontsize',12);
ylabel('Capacitor charge(Coulomb)','fontsize',12);
xlim([0,T]);
figure(7)
subplot(3,1,3); plot(t,Qcfa2,'-k.');grid on; zoom on;
xlabel('Time(s)','fontsize',12);
ylabel('Capacitor charge(Coulomb), using trapz()','fontsize',12);
xlim([0,T]);
I have include it. You can compare  Qcfa and Qcfa2 and find out the differences. 
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Spline Postprocessing 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




