ode45 , order arguments
18 ビュー (過去 30 日間)
古いコメントを表示
Darron Muzavazi
2020 年 11 月 11 日
コメント済み: Darron Muzavazi
2020 年 11 月 11 日
I am getting these two errors when i run my code. I rececntly used the code for a different problem with no questions. How can i get it to run.
Error in ode45 (line 115)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
Error in quartercar (line 37)
[time, state_values] = ode45(sdot,tspan,IC);
This is my code,
function quartercar
k1 = 80000; %N/m
k2 = 500000;%N/m
m1 = 2500; %kg
m2 = 320; %kg
b1 = 350; %Ns/m
b2 = 15020; %Ns/m
rd = @(time) 0.15*sin(time)^2;
rdprime = @(time) 0.15*sin(2*time);
%Initial Conditions
xone0 = 0; vone0 = 0;
xtwo0 = 0; vtwo0 = 0;
IC = [xone0, vone0, xtwo0, vtwo0];
%Time Span
t0 = 0; tf = 10;
tspan = [t0,tf];
%sdot = g(t,s) state variable
sdot = @(t,s) ...
[s(2);
(-1/m1)*((k1*(s(1)-s(3))) + (b1*(s(2)-s(4))));
s(4);
((k1*(s(1)-s(3)) + b1*(s(2)-s(4)) -k2*(s(3)-rd) -b2*(s(4)-rdprime))/m2)];
i am guessing the problem is here
%Numerical Intergration
[time, state_values] = ode45(sdot,tspan,IC);
xone = state_values(:,1);
vone = state_values(:,2);
xtwo = state_values(:,3);
vtwo = state_values(:,4);
%Plots
plot(time,xone)
xlabel('time (s)')
ylabel('displacement (m)')
title('Displacement vs Time')
grid on
end
0 件のコメント
採用された回答
Walter Roberson
2020 年 11 月 11 日
quartercar
function quartercar
k1 = 80000; %N/m
k2 = 500000;%N/m
m1 = 2500; %kg
m2 = 320; %kg
b1 = 350; %Ns/m
b2 = 15020; %Ns/m
rd = @(time) 0.15*sin(time)^2;
rdprime = @(time) 0.15*sin(2*time);
%Initial Conditions
xone0 = 0; vone0 = 0;
xtwo0 = 0; vtwo0 = 0;
IC = [xone0, vone0, xtwo0, vtwo0];
%Time Span
t0 = 0; tf = 10;
tspan = [t0,tf];
%sdot = g(t,s) state variable
sdot = @(t,s) ...
[s(2);
(-1/m1)*((k1*(s(1)-s(3))) + (b1*(s(2)-s(4))));
s(4);
((k1*(s(1)-s(3)) + b1*(s(2)-s(4)) -k2*(s(3)-rd(t)) -b2*(s(4)-rdprime(t)))/m2)]; %CHANGED
%Numerical Intergration
[time, state_values] = ode45(sdot,tspan,IC);
xone = state_values(:,1);
vone = state_values(:,2);
xtwo = state_values(:,3);
vtwo = state_values(:,4);
%Plots
plot(time,xone)
xlabel('time (s)')
ylabel('displacement (m)')
title('Displacement vs Time')
grid on
end
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
