Unable to create a exponential graph

조회 수: 5 (최근 30일)
Rohan
Rohan 2024년 9월 10일
댓글: Sam Chak 2024년 9월 11일
I am trying to make a basic tyre degredation model and I am not able to get an increasing exponential graph. I have four input block representing vital variables reagrding tyre degredation. The current model is down below. The code inside the MATLAB function block is
function y = exp_temp(u)
2 % Exponential function for temperature degradation
3 a = 0.1; % adjust this value to fit the data
4 b = 0.02; % adjust this value to fit the data
5 y = a * exp(b * u);
6 end
The graph should look like something In the second picture. What am I doing wrong.

답변 (2개)

Les Beckham
Les Beckham 2024년 9월 10일
I guess I don't really see what the problem is. Follow your own comments and adjust a and b to match the expected curve.
Can you explain more clearly what the issue is?
u = 0:5;
y = exp_temp(u);
plot(u, y, 'o-')
grid on
function y = exp_temp(u)
% Exponential function for temperature degradation
a = 0.1; % adjust this value to fit the data
b = 0.2; % adjust this value to fit the data <<< I increased this by 10x
y = a * exp(b * u);
end
  댓글 수: 3
VBBV
VBBV 2024년 9월 11일
@Rohan, Use a closely space intervals for range of values, along with coefficient adjustment as mentioned by @Les Beckham
u = 0:0.001:5;% use a closely spaced intervals for the range of values
y = exp_temp(u);
plot(u, y)
grid on
function y = exp_temp(u)
% Exponential function for temperature degradation
a = 0.1; % adjust this value to fit the data
b = 1; % adjust this value to fit the data <<< I increased this by 10x
y = a * exp(b * u);
end
Sam Chak
Sam Chak 2024년 9월 11일
Hi Rohan,
The solution for the differential equation of
dx/dt = k·x, with initial value x(0)
is given by
x(t) = x(0)·exp(k·t),
where k·x is a straight line.
From the response of the Integrator in the Scope in the image "Screenshot 2024-09-10 143401.png", you were simulating a dynamic system in Simulink. Best to share the Simulink slx file for evaluation.

댓글을 달려면 로그인하십시오.


Image Analyst
Image Analyst 2024년 9월 10일
I don't know how to do it in Simulink, but this seems to work fine in MATLAB:
uTemperatureRange = linspace(10, 200, 1000);
yDegradation = exp_temp(uTemperatureRange);
plot(uTemperatureRange, yDegradation, 'b-', 'LineWidth', 2);
xlabel('Temperature');
ylabel('Degradation');
title('Degradation vs. Temperature');
grid on;
ylim([0,6])
%==========================================================
function y = exp_temp(u)
% Exponential function for temperature degradation
a = 0.1; % adjust this value to fit the data
b = 0.02; % adjust this value to fit the data
y = a * exp(b * u);
end
It looks (and is) exponential.

카테고리

Help CenterFile Exchange에서 String에 대해 자세히 알아보기

제품


릴리스

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by