MATLAB Answers

Dynamic system using ode45

36 views (last 30 days)
Michelle Westin
Michelle Westin on 20 Apr 2020
Commented: Michelle Westin on 21 Apr 2020
Hi,
I need to solve the following function:
function X2d = dynamics(h,theta,beta,hd,thetad,betad,Mt,Ct,Kt,hdd,thetadd,betadd)
X = [h;theta;beta;hd;thetad;betad;hdd;thetadd;betadd];
h = X(1);
theta = X(2);
beta = X(3);
hd = X(4);
thetad = X(5);
betad = X(6);
hdd = X(7);
thetadd = X(8);
betadd = X(9);
X1 = [X(1);X(2);X(3)];
X2 = [X(4);X(5);X(6)];
X2d = [X(7);X(8);X(9)];
X2d = inv(Mt)*(-Ct*X2-Kt*X1);
end
Where d are dot, so it is a system of differential equations.
How can I solve this? May I use ode45?
Thanks

  0 Comments

Sign in to comment.

Accepted Answer

Muthu
Muthu on 20 Apr 2020
Edited: Muthu on 20 Apr 2020
You first need to convert this function into a form, which can be passed in ode45
To solve using ode45, you need to have three important inputs -> @equation, timerange, initial condition, options
hence your equation should begin like:
function X2d = dynamics(t, Y, options):
Y contains all the initial conditions of the variables.
options contain the arguements that you might need to pass in.
define the constants inside the function.
Then proceed with your code.
Good luck.

  1 Comment

Michelle Westin
Michelle Westin on 21 Apr 2020
Muthu, thank you for yoour answer. Actually I sumarize the problem to post here. There are other functions to generate the matrices I am using.
I will try to implement like you suggested and if I have another problem, I will post here. Also, I will study a bit more about ode45.
Thank you again and regards

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!