330 likes | 466 Views
ME451 Kinematics and Dynamics of Machine Systems. Driving Constraints 3.5 September 30, 2013. Radu Serban University of Wisconsin-Madison. Before we get started…. Last Time: Gears, Cam – Followers, Point – Follower This completes the derivation of Kinematic ( scleronomic ) Constraints
E N D
ME451 Kinematics and Dynamics of Machine Systems Driving Constraints 3.5 September 30, 2013 Radu Serban University of Wisconsin-Madison
Before we get started… • Last Time: • Gears, Cam – Followers, Point – Follower • This completes the derivation of Kinematic (scleronomic) Constraints • Today: • Driving (rheonomic) Constraints • Assignments: • HW 6 – due October 4, in class (12:00pm) • 3.5.1 • 3.5.4 (hint: model using only body 1) • 3.5.5 • 3.5.6 (note: change driving constraint to be ) • Matlab 3 – due October 2, Learn@UW (11:59pm)
3.5 Driving Constraints
Driving Constraints • The context • Up until now, we only discussed time invariant kinematic constraints • Normally the mechanism has a certain number of DOFs • Some additional time dependent constraints (“drivers”) are added to control these “unoccupied” DOFs • Physically, these represent actuators whose inputs describe time history of some coordinates or relative positions • You thus control the motion of the mechanism • For Kinematics Analysis, you need NDOF=0
Driving Constraints: Types Absolute Drivers • Absolute x-coordinate driver • Absolute y-coordinate driver • Absolute angle driver • Absolute distance driver Relative Drivers • Relative x-coordinate driver • Relative y-coordinate driver • Relative angle driver • Relative distance driver • Revolute-rotational driver • Translational-distance driver
3.5.1 Absolute Drivers
Absolute Coordinate Drivers (1) • Indicate that the coordinate of a point expressed in the global reference frame assumes a certain value that changes with time
Absolute Coordinate Drivers (2) • Straightforward calculation, starting from the corresponding kinematic constraint: • Jacobian stays the same • Add to expression of • Add to expression of
Absolute Distance Driver • Step 2: Identify (see Eq. 3.2.1 on page 57) • Step 3: (see Eq. 3.2.2 on page 58) • Step 4: (see page 58) • Step 5: (see page 58)
3.5.2 Relative Drivers
Relative Coordinate Drivers • Indicate that the difference in a certain coordinate of points on the two bodies, expressed in the global reference frame, has a specified time evolution.
Relative Distance Driver (1) • The distance between Pi and Pj is a prescribed function of time:
Relative Distance Driver (2) • Identify (see Eq. 3.3.7 on page 63) • Step 3: (see Eq. 3.3.8 on page 63) • Step 4: (see page 63) • Step 5: (see page 63)
Revolute-Rotational Driver • Setup • Two bodies connected by a revolute joint at point • We prescribe the time evolution of the angle in the revolute joint • Constraint equation: • Notes • and are attributes of the constraint • with an appropriate choice of the LRFsand/or modifying C(t), they can be madeequal to zero.
Translational-Distance Driver (1) • Setup • Two bodies connected by a translational joint • We prescribe the displacement in the translational joint • Model • Direction of translational joint on body is defined by the vector • This driver says that the distance between point on body and point on body , measured along the direction of , changes in time according to a user prescribed function :
Translational Distance Driver (2) • The book complicates the formulation for no good reason • There is nothing to prevent us from specifying the direction using a unit vector (that is making ) • The mathematical representation of this driver is then simply:resulting in: • Important: the direction of translation is indicated now through a unit vector (you are going to get the wrong motion if you work with a vi that is not unit length) • Keep this in mind when working on HW problem 3.5.6
Driver Constraints: Conclusions (1) • What is after all a driving constraint? • We start with a kinematic constraint, which indicates that a certain kinematic quantity should stay equal to zero • Rather than equating this kinematic quantity to zero, we allow it to change with time:or equivalently:
Driver Constraints: Conclusions(2) • Notation used: • Kinematic Constraints: • Driver Constraints: • Note the arguments: for Kinematic Constraints, there is no explicit time dependency • Correcting the RHS… • Computing the right hand sides of the velocity and acceleration equations for driver constraints is straightforward • Once we know how to compute these quantities for , converting to is just a matter of correcting… • … (RHS of velocity equation) with the first derivative of • … (RHS of acceleration equation) with second derivative of • Section 3.5.3 discusses these issues
[handout]Example: Relative Distance Drivers • Generalized coordinates: • Prescribed motions: • Derive the constraints acting on the system • Derive the linear system whose solution provides the generalized velocities
MATLAB: How to Handle Arbitrary Motions Problem: Given a string that represents the expression of some function of time t, how do you evaluate the function, as well as its first two derivatives? % Assume the string ‘str’ contains the expression of the function % (e.g. as read from the ‘fun’ property of a driver constraint in the ADM file) fun_str = ‘(1.5 * sin(t) + 3 * t^2)^2’; % Declare a symbolic variable for time symst; % Evaluate the given string as a symbolic expression. % NOTE: we must play a trick here to deal with the case where ‘fun_str’ % represents a constant function; i.e. there is no explicit dependency % on t. In this case, ‘eval’ by itself would return a double, not a sym! fun_sym = sym(eval(fun_str)); % Symbolically differentiate the function. funD_sym = diff(fun_sym); funDD_sym = diff(fnuD_sym); % Create Matlab function handles from the three symbolic functions above fun_handle = matlabFunction(fun_sym, ‘vars’, t) funD_handle = matlabFunction(funD_sym, ‘vars’, t); fundDD_handle = matlabFunction(funDD_sym, ‘vars’, t);
Carl Gustav Jacob Jacobi (1804 – 1851) 3.6 Position, Velocity, and Acceleration Analysis
Kinematic Analysis: Steps • Step A: Identify all physical joints and drivers present in the system • Step B: Identify the corresponding set of constraint equations • Step C: Position AnalysisFind the Generalized Coordinates as functions of timeNeeded: and • Step D: Velocity AnalysisFind the Generalized Velocities as functions of timeNeeded: and • Step E: Acceleration AnalysisFind the Generalized Accelerations as functions of timeNeeded: and
Kinematic Analysis • The position analysis [Step C]: • The most difficult of the three • Requires the solution of a system of nonlinear equations • What we are after is determining the location and orientation of each component (body) of the mechanism at any given time • The velocity analysis [Step D]: • Requires the solution of a linear system of equations • Relatively simple • Carried out after completing position analysis • The acceleration analysis [Step E]: • Requires the solution of a linear system of equations • Challenge: generating the RHS of acceleration equation, • Carried out after completing velocity analysis
Position Analysis (1) • Framework: • Somebody presents you with a mechanism and you select the set of nc generalized coordinates to position and orient each body of the mechanism: • You inspect the mechanism and identify a set of nk kinematic constraints that must be satisfied by your coordinates: • Next, you identify the set of nd driver constraints that move the mechanism: • NOTE: You must end up with nc = nk + nd
Position Analysis (2) • We end up with this problem: given a time value t, find that set of generalized coordinates q that satisfy the equations: • What’s the idea here? • Set time t=0, and find a solution q by solving above equations • Then advance the time to t=0.001 and find a solution q by solving above equations • Then advance the time to t=0.002 and find a solution q by solving above equations • Then advance the time to t=0.003 and find a solution q by solving above equations • … • Stop when you reach the end of the interval in which you are interested in the position • What you do is find the time evolution on a time grid with step size t=0.001 (in this example) • You can then plot the solution as a function of time and get the time evolution of your mechanism
Position Analysis (3) • Two issues associated with the methodology described on previous slide: • The first issue: related to the fact that you are solving nonlinear equations. • Does a solution exist? Example: x2+4=0 (no real number x will do here) • Is the solution unique? Example: x2-4=0x (both 2 and -2 are solutions) • The second issue: The equations that we have to solve at each time t are nonlinear. How do you actually solve them? • For instance, how do you find the solution (x=-1.2) of this nonlinear equation: • Deal with this issue next week (discuss Newton-Raphson method)
IFT: Implications for Position Analysis • Informally, this is what the Implicit Function Theorem says: • Assume that, at some time tk we just found asolution q(tk)of . • If the constraint Jacobian is nonsingularin this configuration, that isthen, we can conclude that the solution is unique, and not only at tk, but in a small interval around time tk. • Additionally, in this small time interval, there is an explicit functional dependency of q on t; that is, there is a function f such that: • Practically, this means that the mechanism is guaranteed to be well behaved in the time interval . That is, the constraint equations are well defined and the mechanism assumes a unique configuration at each time.
Velocity Analysis (1) • This is simple. What is the framework? • You just found q at time t, that is, the location and orientation of each component of the mechanism at time t, and now you want to find the velocity of each component (body) of the mechanism • Taking one time derivative of the constraints leads to the velocity equation: • In other words, once you have you can find at time by solving the linear system
Velocity Analysis (2) • Observations: • Note that as long as the constraint Jacobian is nonsingular, you can solve this linear system and recover the velocity • The reason velocity analysis is easy is that, unlike for position analysis where you have to solve a nonlinear system, now you are dealing with a linear system, which is easy to solve • Note that the velocity analysis comes after the position analysis is completed, and you are in a new configuration of the mechanism in which you are about to find out its velocity
Acceleration Analysis (1) • This is also fairly simple. What is the framework? • We just founda at time , that is, where the mechanism is and what its velocity is at that time • Wenow want to know the acceleration of each component of the model • Taking two time derivatives of the constraints leads to the acceleration equation:
Acceleration Analysis (2) • In other words, you find the acceleration (second time derivative of q at time tk) as the solution of a linear system: • Observations: • The equation above illustrates why we have been interested in the expression of , the RHS of the acceleration equation: • Note that you again want the constraint Jacobian to be nonsingular, since then you can solve the acceleration linear system and obtained the acceleration