integral of a piece wise function

8 visualizaciones (últimos 30 días)
Giorgio Buoncristiano
Giorgio Buoncristiano el 14 de Sept. de 2019
Comentada: Giorgio Buoncristiano el 17 de Sept. de 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 comentario
Walter Roberson
Walter Roberson el 14 de Sept. de 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"

Iniciar sesión para comentar.

Respuesta aceptada

Prabhan Purwar
Prabhan Purwar el 17 de Sept. de 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 comentario
Giorgio Buoncristiano
Giorgio Buoncristiano el 17 de Sept. de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Numerical Integration and Differentiation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by