How can i solve this function below ?

To solve a second order differential equation : dx/dt = Ax + Bu(t) I use this function but i haven't obtain any result :
function xdot = msd(t,x)
% Function file for mass with spring and damping.
% Position is first variable, velocity is second variable.
u = 10;
m = 1;c = 2;k = 5;
A = [0, 1;-k/m, -c/m];
B = [0; 1/m];
xdot = A*x+B*u;
[t, x] = ode45(@msd, [0,5], [0,0];

 采纳的回答

Save the function below as msd.m
function xdot = msd(t,x)
% Function file for mass with spring and damping.
% Position is first variable, velocity is second variable.
u = 10;
m = 1;c = 2;k = 5;
A = [0, 1;-k/m, -c/m];
B = [0; 1/m];
xdot = A*x+B*u;
then in Matlab Windows Command write
[t, x] = ode45(@msd, [0,5], [0,0]);
plot(t,x)

3 个评论

But there is an error in this line : xdot = A*x+B*u;
Use
[t, x] = ode45(@msd, [0,5], [0;0]);
Best wishes
Torsten.
it was very useful Mr. Torsten. Can you please explain
[t, x] = ode45(@msd, [0,5], [0;0]);
I want to understand the reason behind using this code.
Kindly help.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Numerical Integration and Differential Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by