Mark the knee point on a graph

8 Ansichten (letzte 30 Tage)
AHMED FAKHRI
AHMED FAKHRI am 26 Feb. 2021
Kommentiert: Adam Danz am 26 Feb. 2021
Hi
I want to mark the knee point on the graph like the picture attached.
This point is the maximum power meaning ( a certain value of voltage * value of current ) gives the maximum power possible. However, it is not maximum voltage with maximum current.
In the graph 15.981 * 6.40876 gives the maximum power of this curve.
Any help regarding this?
Thanks

Akzeptierte Antwort

Alan Stevens
Alan Stevens am 26 Feb. 2021
Calculate a vector of values of P = V.*I then choose the maximum. Something like:
P = V.*I;
indx = find(P==max(P));
Vp = V(indx);
Ip = I(indx);
then plot(Ip,Vp,'s')
  1 Kommentar
Adam Danz
Adam Danz am 26 Feb. 2021
I was writing a demo based on these data while you were getting two great answers. I'll include it here.
data = [ 0 0.124
0.624 0.122
1.248 0.12
1.872 0.118
2.497 0.116
3.121 0.114
3.745 0.112
4.369 0.11
4.7 0.103
4.934 0.1
5.165 0.091
5.336 0.085
5.566 0.078
5.927 0.057
6.07 0.045
6.113 0.037
6.137 0.034
6.21 0.025
6.294 0.02
6.373 0.004
6.389 0.002
6.407 0];
T = array2table(data, 'VariableNames', {'Volts','Amps'});
yyaxis left
plot(T.Volts,T.Amps)
xlabel('Volts (V)')
ylabel('Current (Amps)')
T.Power = T.Volts .* T.Amps;
yyaxis right
plot(T.Volts, T.Power)
ylim([0,1])
ylabel('Power (W)')
[~, maxPowerIdx] = max(T.Power);
xline(T.Volts(maxPowerIdx), 'k-','Max power point')
yyaxis left
hold on
plot(T.Volts(maxPowerIdx), T.Amps(maxPowerIdx), 'ko')

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Yu Lu
Yu Lu am 26 Feb. 2021
Hello,
As my understanding you have two arrays v and c
v = [<Your Data>]; % voltage
c = [<Your Data>]; % current
and you want to find the place that has the maximum dot product of these two arrays, in MATLAB you can do:
[maxPower, maxIndices] = max(v.*c);
to get the maximum power value and the indices of voltage and current that product maximum power.
With the indices you can set marker at the position or create data tip on the position use the datatip function.

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by