Unable to create a exponential graph
4 次查看(过去 30 天)
显示 更早的评论
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.
0 个评论
回答(2 个)
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
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
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
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.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 String 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!