42 views (last 30 days)

Show older comments

I would like to plot the tangent of the curve I (V) and find the slope and then the intersection of the tangent with the x axis (V0).

I am attaching the curve data (I, U) and a summary image of what I am looking for. Thank you in advance for your help

Star Strider
on 29 Jun 2021

Try this —

T1 = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/668953/Tan.xlsx')

I = T1.I;

V = T1.V;

dI = gradient(I);

dV = gradient(V);

Vi = 1.3; % Choose Voltage Value To Calculate Slope

Ii = interp1(V, I, Vi);

dVi = interp1(V, dV, Vi)

dIi = interp1(V, dI, Vi)

Slope = dIi/dVi

YIntercept = Ii - Slope * Vi

XIntercept = -YIntercept / Slope

figure

plot(V,I)

hold on

plot(Vi, Ii, 'p')

plot(xlim, xlim*Slope+YIntercept, '-r')

plot(XIntercept, 0, 'sr')

hold off

grid

xlabel('V')

ylabel('I')

text(Vi, Ii, sprintf('$I = %.3f \\times V %+.3f \\rightarrow \\ $', Slope, YIntercept), 'Horiz','right', 'Vert','middle', 'Interpreter','latex')

text(XIntercept, 0, sprintf('$%.4f V \\downarrow $', XIntercept), 'Horiz','right', 'Vert','bottom', 'Interpreter','latex')

ylim([0 max(ylim)])

.

Star Strider
on 30 Jun 2021

As always, my pleasure!

I am slightly lost, however. If the objective is to find values of ‘I’ and ‘V’ to produice an x-axis intercept within those limits, a simple search using a for loop would likely work. If the intent is different, a somewhat more sophisticated approach would be necessary.

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

Start Hunting!