How to use ODE45 to solve 2nd order differential equation with random variables in it?
2 ビュー (過去 30 日間)
古いコメントを表示
In Quarter car model equations, (see above attached file for skematic model)


where









how could i apply this random variables to the equations by using ode45 ?
I have done for one sample, any hint to simulate for 100 samples.
dt = 0.01;
tf = 30;
tspan = dt:dt:tf;
y0 = [0;100;0;10];
[t,y] = ode45('eqsystem',tspan,y0);
plot(y(:,1))
grid
xlabel('X-Displacement')
ylabel('y-Displacement')
title('X vs Y Displacement')
hold on;
function dydt = eqsystem(t,y)
ks = 1000; % N/m^3 - Gaussian
ku = 1000; % N/m - Gaussian
ms = 10; % kg - Gaussian
mu = 20; % kg - Gaussian
c = 300; % Ns/m - Gaussian
A = 0.10; % m -
omega = 2*pi; % rad/s -
dydt = zeros(4,1);
dydt(1,:) = y(2);
dydt(2,:) = ((-ks/ms)* (y(1)-y(3))^3 - (c/ms)*(y(2)-y(4)));
dydt(3,:) = y(4);
dydt(4,:) = ((ks/mu)*(y(1)-y(3))^3 + (y(2)-y(4)) + ku*(A*sin(omega*t) - y(3)));
end
2 件のコメント
採用された回答
Jan
2021 年 6 月 6 日
dt = 0.01;
tf = 30;
tspan = dt:dt:tf;
y0 = [0;100;0;10];
for k = 1:100
ms = 10 + randn;
mu = 20 + randn * 2;
...
fcn = @(t, y) eqsystem(t, y, ms, mu, ...)
[t, y] = ode45('eqsystem',tspan,y0);
end
function dydt = eqsystem(t, y, ms, mu, ...)
dydt = zeros(4,1);
dydt(1) = y(2);
dydt(2) = (-ks / ms) * (y(1) - y(3))^3 - (c/ms) * (y(2) - y(4));
dydt(3) = y(4);
dydt(4) = (ks / mu) * (y(1) - y(3))^3 + (y(2) - y(4)) + ...
ku * (A * sin(omega * t) - y(3));
end
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!