DOUBLE SPRING MASS SYSTEMS & MATLAB’S ODE 45

조회 수: 5 (최근 30일)
Luiz Fernando Vieira dos Santos
답변: Sulaymon Eshkabilov 2021년 9월 5일
Hello I'm having difficulties running this program. I would like to move I don't know if any other command line is missing. To run the values and graph.
function [xDot] = doubleSpringMass(t,X,args)
%State space fucntion of Double Spring Mass System
%Made for insert link to gereshes here %Ari Rubinsztejn
%2018.12.22
x1=X(1);
x2=X(2);
k1=args(1);
m1=args(2);
k2=args(3);
m2=args(4);
F1=(-k1*x1)+(k2*(x2-x1));
F2=(-k2*x2)+(k2*x1);
x1DD=F1/m1;
x2DD=F2/m2;
xDot=[X(3),X(4),x1DD,x2DD];
end

답변 (1개)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021년 9월 5일
There are a few errs in your code. Here is the corrected and complete code:
t=[0, 3];
X0 = [1; 3; 0 ;0];
OPTs =odeset('OutputFcn', @odeplot, 'reltol', 1e-3, 'abstol', 1e-5);
ode45(@doubleSpringMass, t, X0, OPTs)
legend('Mass 1: x_1(t)', 'Mass 2: x_2(t)', 'Mass 1: dx_1(t)', 'Mass 2: dx_2(t)')
function DX = doubleSpringMass(t,X)
args = [10, 2, 20, 3];
k1=args(1);
m1=args(2);
k2=args(3);
m2=args(4);
dx(1)=X(2);
dx(2)=(1/m1)*(-k1*X(1))+(k2*(X(3)-X(1)));
dx(3)=X(4);
dx(4)=(1/m2)*(k1*X(1))-(k2*X(3));
DX=[dx(1); dx(2); dx(3); dx(4)];
end

카테고리

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

제품

Community Treasure Hunt

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

Start Hunting!

Translated by