integral of a piece wise function

15 vues (au cours des 30 derniers jours)
Giorgio Buoncristiano
Giorgio Buoncristiano le 14 Sep 2019
Hello
I have just started using matlab and I'm blocked in calculating the integral of a simple piece wise fct , need this integral to calculate the variation of the state of charge of a battery . I tried to use cumsum in a for cycle but it doesn't really work. Can someone please help me or give me some ideas ?
  1 commentaire
Walter Roberson
Walter Roberson le 14 Sep 2019
I recommend that you clean up your code by using elseif
To do an integral use integral() with the waypoints option . But be careful, as that passes vectors of x values and you have to return something the same size. Suggest that you read about "logical indexing"

Connectez-vous pour commenter.

Réponse acceptée

Prabhan Purwar
Prabhan Purwar le 17 Sep 2019
Hi,
Integral of a function can be calculated either by making use of integral() function or trapz() function, which is more suited for calculating integral of a piecewise function.
Please have a look at the following code:
clc
close all
C=10;
dt=0.1;
t=0:dt:35;
for j=1:length(t)
if t(j)<=7
i(j)=20;
else
if t(j)<=10
i(j)=(t(j)-7)/3*(-35)+20;
else
if t(j)<=25
i(j)=-15;
else if t(j)<=35
i(j)=-7.5;
end
end
end
end
end
for j=1:length(t)
I(j)=trapz(t(1:j),i(1:j)); %trapz() function
SoC(j)=((C-I(j))./C).*100;
end
Please refer to the following links for further information
Hope this helps.
  1 commentaire
Giorgio Buoncristiano
Giorgio Buoncristiano le 17 Sep 2019
I tried using trapz() but I was not able to correctly use it, thank you! Anyway I did it using cumsum() without a for cycle.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Numerical Integration and Differentiation dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by