Energy calculation via current signal integration with limits

조회 수: 34 (최근 30일)
Akhtar Rind
Akhtar Rind 2020년 7월 2일
댓글: Star Strider 2020년 7월 2일
I want to calculate Energy during applied voltage and recieved current pulse signal at given time
data=load('data.txt'); % Pulse data
T=data(:,1); % Time vector
V=data(:,2); % Voltage in volts
I=data(:,3); %Current in Amp
iVs= find(T>=0,1,'first'); % Voltage/Pulse Signal start index
Vmx=V(iVs); % Value of voltage at signal/pulse start time
iVe=find(T>0 & V<=(Vmx/4),1,'last'); % End of signal/voltage index
w=round((T(iVe)-T(iVs))*1E6); % Pulse width or duration in micro sec
P=I.*V; % Power pulse
% Now we have time, Voltage, Current, start and end time of pulse/signal
% What is enegry delivered in pulse duration (Zero to 43 micro-sec)
% Formula =
Somehow I struglling to apply intergration with time limits ?

채택된 답변

Star Strider
Star Strider 2020년 7월 2일
Add this after your posted code:
idxrng = iVs:iVe;
IntP = cumtrapz(T(idxrng), P(idxrng));
figure
subplot(3,1,1)
yyaxis left
plot(T, V)
ylabel('V')
yyaxis right
plot(T, I)
ylabel('I')
grid
subplot(3,1,2)
plot(T, P)
ylabel('P')
grid
subplot(3,1,3)
plot(T(idxrng), IntP)
text(T(iVe), IntP(end), sprintf('Total Power = %7.3f \n \\downarrow', IntP(end)), 'HorizontalAlignment','right', 'VerticalAlignment','bottom')
ylabel('$\int{P}dt$', 'Interpreter','latex')
grid
producing:
.Add appropriate units (such a ‘VA’) for power.
  댓글 수: 4
Akhtar Rind
Akhtar Rind 2020년 7월 2일
Fantastic. It worked. Many thanks.
Star Strider
Star Strider 2020년 7월 2일
As always, my pleasure!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by