Random exponential function between two values

5 ビュー (過去 30 日間)
Nicola De Noni
Nicola De Noni 2022 年 5 月 18 日
コメント済み: Sam Chak 2022 年 5 月 18 日
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!

採用された回答

Sam Chak
Sam Chak 2022 年 5 月 18 日
編集済み: Sam Chak 2022 年 5 月 18 日
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 件のコメント
Torsten
Torsten 2022 年 5 月 18 日
編集済み: Torsten 2022 年 5 月 18 日
The shape comes from an exponential, but it's not visible in the interval [0:50].
If you plot for
t = linspace(0,3000*10,3000)
, you'll see the exponential behaviour.
Sam Chak
Sam Chak 2022 年 5 月 18 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLinear and Nonlinear Regression についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by