Random exponential function between two values
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Nicola De Noni
am 18 Mai 2022
Kommentiert: Sam Chak
am 18 Mai 2022
Hello everyone! I’m trying to create a random vector with a maximum value of xmax_out = 65 and a minimum value of xmin_out = 16. This vector. However, I would like this vector to have an exponential shape, as shown, because I want to simulate the temperature that decreases in contact with a hot fluid to be cooled.
As you can see: I would like the temperature at time 0 (therefore origin of the x axis) to be equal xmax_out while at time t the temperature reaches the xmin_out value. In the project the cooling time is about 50 min.
I tried to use the following code to generate a decreasing random vector, but unfortunately it is linear.
% Temperature range
n = 50; % Length of time [min]
xmin_out = 16 + 273.15; % Minimum outlet temperature [K]
xmax_out = 65 + 273.15; % Maximum outlet temperature [K]
% Random Vector of temperature:
T_out = sort((xmax_out-xmin_out)*rand(n,1)+xmin_out, "descend");
Thanks!
0 Kommentare
Akzeptierte Antwort
Sam Chak
am 18 Mai 2022
Bearbeitet: Sam Chak
am 18 Mai 2022
Are you looking for an exponential decay like this?
t = linspace(0, 3000, 30001);
tmin = 50;
xmin = 16;
xmax = 65;
k = -log(xmin/65)/(60*tmin);
T = xmax*exp(-k*t);
plot(t/60, T, 'linewidth', 1.5)
grid on
xlabel('Time, t [min]')
ylabel('Temperature, T')
6 Kommentare
Sam Chak
am 18 Mai 2022
Since the absolute Kelvin is just an additive reference, you can do this way:
t = linspace(0, 36000); % 3000 seconds == 50 min; plot up to 600 min
tmin = 50;
xmin = 20; % Temperature [Kelvin]
xmax = 45; % Temperature [Kelvin]
k = -log((xmin)/(xmax))/(60*tmin);
Temp = (xmax)*exp(-k*t) + 273.15;
plot(t/60, Temp, 'linewidth', 1.5)
grid on
xlabel('Time, t [min]')
ylabel('Temperature, T [K]')
It actually behaves exponentially. Just that the 50 min duration is relatively short to see the effect.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Linear and Nonlinear Regression finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!