How to plot a math function with a vector

Hello everbody,
I have a problem with a task. I've read an excel data into matlab and worked with this data. As i made an integral with the values of my excel data, i now have to take those values and make a math function as following : Zth = (Tmax - T_j) / P. I dont know how to implimate that vector of T_j into the function and generate a plot out of it.
Best regards
David
clear all;
close all;
clc;
values = xlsread('Beispiel-Kurven', 'Fit 0');
cooling_time = values(:,1)';
R_F = values(:,4);
R_F = R_F(~isnan(R_F))';
C_F = values(:,5);
C_F = C_F(~isnan(C_F))';
dZ_th = @(t) 0;
for v = 1:length(R_F)
dZ_th = @(t) dZ_th(t) + exp(-t / (R_F(v) * C_F(v))) / C_F(v);
end
P = @(t) 10;
T_j_scalar_t = @(t) integral(@(tau) P(tau) * dZ_th(t - tau), 0, t);
T_j = @(t) arrayfun(T_j_scalar_t, t);
Tmax = values(1,2)
Zth = (Tmax - T_j_scalar_t) / P
semilogx(cooling_time, Zth(cooling_time))
%semilogx(cooling_time, T_j(cooling_time))

2 comentarios

Is it really correct that you want dZ_th to be defined as
dZ_th(t) = sum_{v=1}^{v=N} exp( -t*( R_F(v) * C_F(v) ) ) / C_F(v);
where N = length(R_F) ?
David Sicic
David Sicic el 19 de Oct. de 2022
yes

Iniciar sesión para comentar.

 Respuesta aceptada

Torsten
Torsten el 19 de Oct. de 2022
Editada: Torsten el 19 de Oct. de 2022
Then maybe
T_j_scalar_t = @(t) integral(@(tau) P(tau) .* dZ_th(t - tau), 0, t);
T_j = arrayfun(@(t)T_j_scalar_t(t), cooling_time);
Tmax = values(1,2);
Zth = (Tmax - T_j) ./ P(cooling_time);
semilogx(cooling_time, Zth)

4 comentarios

David Sicic
David Sicic el 19 de Oct. de 2022
omg, you made my day!!
Thank you so much, i lost a lot of hair trouble shooting that!!
David Sicic
David Sicic el 19 de Oct. de 2022
Why did you exactly used ./ in the 4th line?
Could you explain that quickly?
Torsten
Torsten el 19 de Oct. de 2022
Editada: Torsten el 19 de Oct. de 2022
T_j and P(cooling_time) are vectors with the length of the array "cooling_time".
You want to divide them elementwise, thus ./ instead of /
Since P is a constant function, you could alternatively have used
Zth = (Tmax - T_j) / P(cooling_time(1));
David Sicic
David Sicic el 19 de Oct. de 2022
Great, thank you for your time and explanation!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2022b

Etiquetas

Preguntada:

el 19 de Oct. de 2022

Comentada:

el 19 de Oct. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by