ODE solver for second Order ODE with Stiffness and Mass Matrices

Click For Summary
The discussion focuses on solving a second-order differential equation in matrix form using MATLAB's ODE45 function. The equation involves mass and stiffness matrices, with a specified force vector F(t) defined as F(t)=[F0*sin(w*t), 0, 0, 0]. Participants highlight the need for initial conditions and suggest organizing the code by separating the function into a different script for better execution. A sample code snippet is provided, demonstrating how to set up the matrices and call the ODE solver. The conversation emphasizes the challenges of coding and the importance of proper function organization in MATLAB.
ihebmtir
Messages
3
Reaction score
0
TL;DR
i have encoutered this Problem where i need to solve an ordinary differential Equation using ODE45 for M*u''+K*u=f(t)
i am new to MATLAB and and as shown below I have a second order differential equation M*u''+K*u=F(t) where M is the mass matrix and K is the stifness matrix and u is the displacement.
and i have to write a code for MATLAB using ODE45 to get a solution for u. there was not so much information on how to solve an ODE that´'s written on Matrix form, i would be really thankful for you help
 

Attachments

  • frage.png
    frage.png
    4.5 KB · Views: 186
Engineering news on Phys.org
Do you have a definition for the vector {f(t)}?
 
yes F(t)=[F0*sin(w*t), 0, 0, 0]
and Both M and K are 4X4 Matrices
 
Obviously you will need some initial conditions as well. I will attach a similar example problem and solution code.

It can be a little tricky getting the code to run. You should save the lower function in a separate script (called "f" in this case - since that's what the ode45 function calls) in the working folder. The upper part is what you will run and it calls the other function. There's probably a more elegant way of doing it, but I don't know it.
1624567411995.png

1624567424651.png

xo=[0; 0.1; 1; 0];
ts=[0 20];
[t,x]=ode45('f',ts,xo);
plot(t,x(:,1),t,x(:,2),'--')
%------------------------------------------
function v=f(t,x)
M=[2 0; 0 1];
C=[3 -0.5; -0.5 0.5];
K=[3 -1; -1 1];
B=[1; 1];
w=2;
A1=[zeros(2) eye(2); -inv(M)*K -inv(M)*C];
f=inv(M)*B;
v=A1*x+[0;0; f]*sin(w*t);
 
Hi all, I've looked through design manuals (SDP/SI, Gates, Naismith) and textbooks like Shigley's, but haven't found an equation linking initial belt tension to pulley center-to-center distance for a timing belt. I understand initial tension is typically based on the applied load, but I'm curious: A) Is there a known equation relating tension to C-C distance? B) If not, how might one go about deriving it? Thanks in advance!