Clear Filters
Clear Filters

ODE45 for Equations of Motion

6 views (last 30 days)
Sam Butler
Sam Butler on 21 Mar 2023
Commented: Shree Charan on 4 May 2023
Hi, I am hoping someone can help me with the following issue. I have tried this problem multiple times and still can't seem to write the correct code (I am new to MATLAB).
The following three equations of motion are to be solved:
theta dot out is the input velocity into the system, it is time dependant and is characterised by the equation:
All other variables are constant (e.g. theta_dot_zero,J1,c1,k1,f (this is not frequency) etc.).
I believe you can use ode45 to solve this however I have had no luck.
Initial conditions can be taken as zero, a timespan of 0-20seconds can be used as an example.
The aim is to then plot velocity, acceleration and displacement graphs for the unknown theta variables of subscript 1,2,n and out.
I hope someone can help with this! I would really appreciate a draft of some code.
Thanks!
  8 Comments
Torsten
Torsten on 22 Mar 2023
Edited: Torsten on 22 Mar 2023
Do you see the problem why the integration takes so long and is almost impossible to perform ?
param.vin = 600*(2*pi/60); %% 600 is the input velocity in rpm
param.f_mech = param.vin/(2*pi);
theta_out_dot = @(t)param.vin+(0.02*param.vin*cos(72*pi*param.f_mech*t))+(0.005*param.vin*cos(144*pi*param.f_mech*t));
t=0:0.000001:0.1;
plot(t,theta_out_dot(t))
Shree Charan
Shree Charan on 4 May 2023
@Sam Butler In the question you mention that "theta_dot_out" is the input velocity into the system and "theta_dot_zero" is a constant.
However in the line
theta_out_dot = param.vin+(0.02*param.vin*cos(72*pi*param.f_mech*t))+(0.005*param.vin*cos(144*pi*param.f_mech*t));
theta_dot_zero is replaced with vin which is the input velocity.
Can you please clarify if theta_out_dot = vin as mentioned in the question or if theta_dot_zero = vin.

Sign in to comment.

Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!