Spindle - full linear modeling (Netwon's method)
> restart: libname := "C:/MBSymba",libname: with(MBSymba_r6):
> PDEtools[declare]({alpha(t),beta(t)} ,prime=t, quiet):
> linear_modeling({alpha(t),beta(t)});
Warning, Linear Modeling option has been choosen for the following variables:
Spindle frame
> Omega; constant spin velocity
> T1 := rotate('Y',alpha(t)) . rotate ('X',beta(t)) ;
Spindle inertia properties
> TG1 := T1 . rotate('Z',Omega*t). translate(0,0,-H); #set_frame_name(TG1,'TG1'):
> spindle := make_BODY(TG1, m, It,It,Ia): show(%);
> _gravity := make_VECTOR(ground,0,0,g): show(_gravity);
> eqnsE := euler_equations({spindle},origin(ground)): show(eqnsE);
Spindle - non linear modeling
> restart: libname := "C:/MBSymba",libname: with(MBSymba_r6):
> PDEtools[declare]({alpha(t),beta(t)} ,prime=t, quiet):
> alias(S=sin, C=cos);
Spindle frame
> Omega; constant spin velocity
> T1 := rotate('Y',alpha(t)) . rotate ('X',beta(t));
Spindle inertia properties
> TG1 := T1 . rotate('Z',Omega*t) . translate(0,0,-H): #set_frame_name(TG1,'TG1'):
> spindle := make_BODY(TG1, m, It,It,Ia): show(spindle);
> _gravity := make_VECTOR(ground,0,0,g): show(_gravity);
Euler's equations
> eqnsE := project(euler_equations({spindle},origin(ground)),T1):set_frame_name(T1,'T1'):
show(eqnsE);
Energy
> KE := kinetic_energy(spindle):
KE := collect(simplify(KE),[m,H,Ia,It]);
> KE2 := taylorF(KE,[alpha(t),beta(t), diff(alpha(t),t),diff(beta(t),t)],3);
> PE := gravitational_energy(spindle);
> PE2 := taylorF(PE,[alpha(t),beta(t)],3);
Lagrange's equations
> lagrange(KE-PE, alpha(t) ,t);
> lagrange(KE-PE, beta(t) ,t);
> lagrange(KE2-PE2, alpha(t) ,t);
> lagrange(KE2-PE2, beta(t) ,t);
>
>
>