我怎么能最好地代表沉重的减速带?

时间:2018-12-03 18:30:02

标签: matlab

%% numerical values
% speed & time
v = 5;     % m/s
t_end =10; % s

% Runge Kutta
dt = 0.001;
n = t_end/dt;

% suspended mass
ms = 300*0.7; % mass (70% of the mass moto + rider)
ks = 85000;   % spring N/m
mus = 4000;   % damping

% wheel
mw = 50; % mass
kw = 180000;  % spring N/m

% frame
L = 0.55; % m
l = 0.15; % m

%% Bump
hs = 0.1   %height m side walk
hb = 0.05; %height m speed bump
w = 0.20;  %width m

如何添加c?

How to add the c?

%a) side walk
%r = @(t) hs*(v*t>0);
%b) speed bump
r = @(t) -4*hb/w^2*v*t.*(v*t-w).*(v*t>0 & v*t<w);

%% variables
% x(0)= position suspended mass (x_s)
% x(1) = position non-suspended mass (x_u)
% x(2) = velocity suspended mass (dx_s/dt)
% x(3) = velocity non-suspended mass  (dx_u/dt)

%% differential equation
dx = @(t, x) [  x(3);
    x(4);
    1/ms*(-ks*(x(1)-l/L*x(2)) - mus*(x(3)-l/L*x(4)));
    1/mw*(-kw*(x(2)-r(t)) - ks*(x(2)-L/l*x(1))-mus*(x(4)-L/l*x(3)))];

%% ode 45
[tt, y] = ode45(dx, [0 t_end], x0);

%% Runge-Kutta
x = zeros(n+1,4);
t = 0 : dt : t_end;
for i=1:n
    k1 = dx(t(i), x(i,:))';
    k2 = dx(t(i)+dt/2, x(i,:)+0.5*k1*dt)';
    k3 = dx(t(i)+dt/2, x(i,:)+0.5*k2*dt)';
    k4 = dx(t(i+1),x(i,:)+k3*dt)';
    x(i+1,:) = x(i,:) + (0.5*k1+k2+k3+0.5*k4)/3.*dt;
end

0 个答案:

没有答案