% File: template.al [ http://www.autolev.com ] % Date: April 1, 2005 % Author: Author's name % Problem: Description of the problem %-------------------------------------------------------------------- % Default settings AutoEpsilon 1.0E-14 % Rounds off to nearest integer AutoZ OFF % Turn ON for large problems Digits 7 % Number of digits displayed for numbers %-------------------------------------------------------------------- % Newtonian, bodies, frames, particles, points Newtonian N Bodies A Frames B Particles Q Points O %-------------------------------------------------------------------- % Variables, constants, and specified Variables q{3}' % Configuration variables; derivatives Variables Fx, Fy % Reaction forces Constants g=9.81 % Local gravitational acceleration Specified TA % Torque on A Zee_Not = [Fx; Fy] % Quantities to be left explicit when AutoZ is ON %-------------------------------------------------------------------- % Motion variables for static/dynamic analysis MotionVariables' u{5}' % Motion variables; derivatives %-------------------------------------------------------------------- % Mass and inertia properties Mass A=mA, Q=mQ Inertia A, IA11, IA22, IA33, IA12, IA23, IA31 %-------------------------------------------------------------------- % Geometry relating unit vectors Simprot(N, A, 1, q1) %-------------------------------------------------------------------- % Angular velocities W_B_N> = %-------------------------------------------------------------------- % Position vectors P_No_Q> = %-------------------------------------------------------------------- % Velocities V_Q_N> = Dt( P_No_Q>, N ) V2pts(N, A, O, Q) %-------------------------------------------------------------------- % Kinematical differential equations (if any) q1' = ( w1*cos(q3) - w2*sin(q3) ) / cos(q2) q2' = w1*sin(q3) + w2*cos(q3) %-------------------------------------------------------------------- % Configuration constraints (if any) ZeroConfig[1] = L1*cos(q1) + L2*cos(q2) + L3*cos(q3) - L4 ZeroConfig[2] = L1*sin(q1) + L2*sin(q2) + L3*sin(q3) %-------------------------------------------------------------------- % Motion constraints Dependent[1] = u2 - u1 Dependent[2] = u5 - 3*u3 + u1 Auxiliary[1] = Dot( V_Q_N>, a1> ) Auxiliary[2] = Dot( V_Q_N>, a2> ) Constrain( Dependent[u2,u3], Auxiliary[u4,u5] ) %-------------------------------------------------------------------- % Angular accelerations ALF_B_N> = Dt( W_B_N>, N ) %-------------------------------------------------------------------- % Accelerations A_O_N> = Dt( V_O_N>, N ) A2pts(N, A, O, Q) A1pt(N, A, AQ, Q) %-------------------------------------------------------------------- % Forces Gravity( -g*n2> ) Force_O> += 5*n1> Force_Q> -= 5*n1> %-------------------------------------------------------------------- % Torques Torque_A> += TB*n1> Torque_B> -= TB*n1> %-------------------------------------------------------------------- % Equations of motion Zero = Fr() + FrStar() Kane(Fx, Fy) % Simplify and/or solve %-------------------------------------------------------------------- % Kinetic energy, work function, angular momentum, etc. KE = KE() % Kinetic energy WF = Dot( Mass(B)*g*P_O_Bo>, a1>) % Work function MechanicalEnergy = WF + KE H> = Momentum(Angular, Point) L> = Momentum(Linear) P = Momentum(Generalized) %-------------------------------------------------------------------- % Expressions for specified functions for CODE %-------------------------------------------------------------------- % Expressions for quantities to be output from CODE x1 = Dot(P_O_Q>, n1>) %-------------------------------------------------------------------- % Units system for CODE input/output conversions UnitSystem kg,meter,sec %-------------------------------------------------------------------- % Integration parameters and values for constants and variables Input tFinal=10, integStp=0.1, absErr=1.0E-08, relErr=1.0E-08 Input mA=10 kg, mQ=2 kg % Input constants Input q1=30 deg, q2=90 deg % Initial values %-------------------------------------------------------------------- % Quantities to be output from CODE Output t sec, X1 m, FX newton, FY newton %-------------------------------------------------------------------- % Matlab, C, or Fortran code generation for numerical solution Code ODE( Zero, MotionVariables'(Independent) ) [A=0,3,1; B=2,0,-.5] filename.c %-------------------------------------------------------------------- % Numerical analysis Answer = Evaluate(FX, q1=1, q2=2) %******************************************************************** % LINEARIZATION AND CONTROL SYSTEM / STABILITY ANALYSIS %******************************************************************** % Perturbation and nominal solution parameters Variables du{5}' % Perturbations of u1, ... u5 Variables dq{3}' % Perturbations of q1, ... q3 Variables nq{3}' % Nominal solutions for q1, ... q3 Variables nTA % Nominal solution for TA Constants Omega % Nominal solution for u4 %-------------------------------------------------------------------- % Find nominal solution for TA Nominal = Evaluate(Zero, q1=nq1, q1'=0, u1=0, u1'=0, TA=nTA) Solve( Nominal, nTA) %-------------------------------------------------------------------- % Linearize kinematical equations about nominal solution dq1' = Taylor(q1', 1, q1=0:dq1, q2=0:dq2, ...) %-------------------------------------------------------------------- % Linearize equations of motion about nominal solution Perturb = Taylor(Zero, 1, q1=nq1:dq1, u1=0:du1, u1'=0:du1' ) Solve( Perturb, du{1:5}' ) %-------------------------------------------------------------------- % Form, x, x', u, A, B, matrices in equation x'=A*x + B*u Xm = [ dq1; du1; ... ] Xp = [ dq1'; du1'; ... ] um = [dTCA, dTCB] Am = D( Xp, Transpose(Xm) ) Bm = D( Xp, um ) %-------------------------------------------------------------------- % Record Autolev responses Save someFileName.all