Filter löschen
Filter löschen

integral of a piece wise function

15 Ansichten (letzte 30 Tage)
Giorgio Buoncristiano
Giorgio Buoncristiano am 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 Kommentar
Walter Roberson
Walter Roberson am 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"

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Prabhan Purwar
Prabhan Purwar am 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 Kommentar
Giorgio Buoncristiano
Giorgio Buoncristiano am 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by