Problem with syms and symfun
Afficher commentaires plus anciens
Hi guys,
I had my first code run which gives me the equations of motion.
eqx1 = M1*y1dd - F + K*(s0 + y1 - y2 - r*sin(ph))
eqx2 = F + M2*y2dd - K*(s0 + y1 - y2 - r*sin(ph))
eqx3 = I*phdd + F*r*cos(ph) - K*r*cos(ph)*(s0 + y1 - y2 - r*sin(ph))
where all the variables were defined as symm
syms M1 M2 I K;
syms t y1 y1d y1dd y2 y2d y2dd ph phd phdd;
Now, I tried replacing the y1d, y1dd, y2d, y2dd etc with diff(y1,t), diff(y1,t,2) respectively.
fx1=subs(eqx1,{y1,y1d,y1dd,y2,y2d,y2dd,ph,phd,phdd},{y1(t),diff(y1,t),diff(y1,t,2),y2(t),diff(y2,t),diff(y2,t,2),ph(t),diff(ph,t),diff(ph,t,2)})==0
Output:
fx1=M1*D(D(y1))(t) - F + K*(s0 + y1 - y2 - r*sin(ph)) == 0
now when I run
diff(fx1), i get
>> diff(fx1)
ans =
K == 0
>> diff(fx1,t)
ans =
M1*diff(D(D(y1))(t), t) == 0
Now, I tried directly defining f (same as fx1)
>> f = M1*diff(y1,t,2) - F + K*(s0 + y1(t) - y2(t) - r*sin(ph(t))) == 0
f(t) =
M1*D(D(y1))(t) - F + K*(s0 + y1(t) - y2(t) - r*sin(ph(t))) == 0
>> diff(f)
ans(t) =
M1*D(D(D(y1)))(t) - K*(D(y2)(t) - D(y1)(t) + r*D(ph)(t)*cos(ph(t))) == 0
how do I get the above for fx1.
How do I come from fx1 to f
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Get Started with MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!