UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Modeling, simulation, and control of a Stewart platform Li, Daming 1996

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata

Download

Media
831-ubc_1997-0255.pdf [ 4.2MB ]
Metadata
JSON: 831-1.0065196.json
JSON-LD: 831-1.0065196-ld.json
RDF/XML (Pretty): 831-1.0065196-rdf.xml
RDF/JSON: 831-1.0065196-rdf.json
Turtle: 831-1.0065196-turtle.txt
N-Triples: 831-1.0065196-rdf-ntriples.txt
Original Record: 831-1.0065196-source.json
Full Text
831-1.0065196-fulltext.txt
Citation
831-1.0065196.ris

Full Text

MODELING, SIMULATION, AND CONTROL OF A STEWART P L A T F O R M By Darning Li B. Eng., Tsinghua University, China, 1991 A T H E S I S S U B M I T T E D IN P A R T I A L F U L F I L L M E N T O F T H E R E Q U I R E M E N T S F O R T H E D E G R E E O F M A S T E R O F A P P L I E D S C I E N C E in T H E F A C U L T Y O F G R A D U A T E S T U D I E S D E P A R T M E N T O F E L E C T R I C A L E N G I N E E R I N G We accept this thesis as conforming to tfyeyJequired standard T H E U N I V E R S I T Y O F BRITISH C O L U M B I A November 1996 © Darning Li , 1996 In p r e s e n t i n g , this thesis in partial fu l f i lment of the requ i remen ts fo r an advanced degree at the Universi ty of British C o l u m b i a , I. agree that t h e Library shall make it f reely available f o r re ference and study. I fu r ther agree that permiss ion f o r extensive c o p y i n g of this thesis f o r scholar ly pu rposes may be g ran ted by the head o f m y d e p a r t m e n t or by his o r her representat ives. It is u n d e r s t o o d that c o p y i n g o r pub l i ca t i on o f this thesis fo r f inancial gain shall n o t be a l l o w e d w i t h o u t my w r i t t e n permiss ion . D e p a r t m e n t of E UctricU g ^ W n j The Univers i ty o f Brit ish C o l u m b i a Vancouver , Canada Date AfrU.29. m 7 . DE-6 (2/88) Abstract This thesis describes the modeling, simulation, and control of an inverted, ceiling-mounted Stewart platform, which is designed to be a motion simulator. This hydraulically actuated Stewart platform is capable of providing 10 m/s2, 400 degree/s2 accelerations and 1 m/s, 30 degree/s speeds to a 250 kg payload. The issues of modeling and control of such a platform are addressed here. The inverse kinematics and forward kinematics are studied first. The platform rigid-body dynamics are derived based'on the virtual work principle and then combined with the actuator dynamics to simulate the response of the Stewart platform given a pre-planned motion path. Design and implementation of the link-space controller are discussed and also validated using experimen-tal data. Cartesian-space controllers are also addressed. Motion drive algorithms are finally addressed to complete the system's function as a motion simulator. When the controller is well tuned, the bandwidth of the system can reach about 9Hz along the vertical axis for a payload of about 140 kg. ii Table of Contents Abstract 1 1 List of Tables vi List of Figures vii Acknowledgments x 1 Introduction 1 1.1 Literature Review 2 1.2 System Description . . 5 2 Platform Kinematics 8 2.1 Inverse Kinematics 8 2.2 Platform Jacobian 11 2.3 Workspace and Singularities 13 2.3.1 Reachable workspace 13 2.3.2 Mechanical constraints 15 2.3.3 Singularities 17 2.4 Forward Kinematics 20 3 Platform Dynamics 24 3.1 Complete Model 24 3.2 Simplified Model 28 4 Actuator Dynamics 32 iii 4.1 Deriving the Model 32 4.2 Linearizing the Model 36 4.3 Validating the Model 37 5 Control Implementation 41 5.1 Control Layout 41 5.2 Basic Link-space Control 42 5.2.1 PID controller 43 5.2.2 Pre-filter controller 49 5.3 Pressure-feedback Link-space Control 52 5.3.1 Description of the controller 53 5.3.2 Simulation results and discussions 55 5.3.3 Experimental verification 59 5.4 Cartesian-space Controller 62 5.5 Motion Drive Algorithm 63 6 Simulation of Combined Dynamics 65 6.1 Combined Dynamics 65 6.2 Case Studies 67 7 Conclusion and Future works 73 Bibliography 75 A Derivatives of Jacobian 78 B Spectral Analysis 81 C Transformations between Cartesian-space variables and link-space variables 83 D Matlab Source Code 85 iv D.l InvKinematics.m 85 D.2 FwdKinematics.m 86 D.3 Singularities.m 88 D.4 Dynamics.m 90 v List of Tables 1.1 Simulator Dimensions 6 1.2 Simulator Performance 7 2.3 Platform and Base Actuator End Point Angles 10 4.4 Actuator System Parameters 39 vi List of Figures 1.1 Stewart platform motion simulator 2 1.2 Inverted simulator geometry 6 2.3 Vector definitions for inverse kinematics 9 2.4 Translational workspace of the Stewart platform when tyv = 9P = (f>p = 0° 14 2.5 Translational workspace of the Stewart platform with arbitrary angles from —20° to 20° 15 2.6 Projection of the safe workspace on the y — z plane when there is no rotation. . . 16 2.7 Projection of the safe workspace when ipp, 9P, and c/>p are from —20° to 20°. . . . 16 2.8 Singular configuration for the 2D parallel manipulator 17 2.9 Condition number of the platform Jacobian versus pitch & roll angle 18 2.10 Inverse of U-joint angle versus roll angle and z 19 2.11 Maximum possible estimation error in actuator length after two iterations of Newton's method 23 3.12 Diagram of leg i 24 3.13 Motion from the home position with an acceleration of x = g 29 3.14 Sinusoidal motion along x axis 30 3.15 Motion with constant acceleration along y axis and a sinusoidal pitch angle . . . 31 4.16 Definition of three-way connection parameters 33 4.17 Simulation result and experimental result of the cylinder dynamics 38 4.18 Simulation result and experimental result of the valve dynamics 39 5.19 Diagram of the Stewart platform based motion simulator 42 vii 5.20 Linearized open-loop transfer function of the electrohydraulic actuator 43 5.21 Effects of variations in Vo from 0.5 to 2 times of its original value 44 5.22 Effects of variations in B from 0.5 to 2 times of its original value 44 5.23 Effects of variations in M from 0.5 to 2 times of its original value 45 5.24 Effects of variations in Vo, B, and M 45 5.25 Comparison of the simulation curve and some experimental points 46 5.26 Link-space response of a sinusoidal wave input along the z axis 47 5.27 Cartesian-space response of a sinusoidal wave input along the z axis 48 5.28 Cartesian-space response of a sinusoidal wave input along the y axis 48 5.29 Block diagram of the tracking control system 49 5.30 Closed-loop response of single actuator system with pre-filter controller 51 5.31 Closed-loop response of system with pre-filter controller 52 5.32 Equivalent spring-damper system 55 5.33 Single actuator system with proportional controller 56 5.34 The sine wave response of P controller, high loop gain 56 5.35 Single actuator system with pressure-feedback controller 57 5.36 Response of single actuator system with pressure-feedback controller 58 5.37 Response of single actuator system with pressure-feedback controller 58 5.38 Step response of single actuator system with pressure-feedback controller 59 5.39 Valve step response when the pressure-feedback controller is used 60 5.40 Sine response when the pressure-feedback controller is used 61 5.41 Step response when the pressure-feedback controller is used 61 5.42 Simple Cartesian-space control block diagram 62 5.43 Cartesian-space controller 63 5.44 A classical wash-out filter configuration 64 6.45 Case 1: Sine wave response along x axis, simulation 68 6.46 Case 1: Sine wave response along x axis, experiment 68 viii 6.47 Case 1: Cartesian-space response 69 6.48 Case 2: Sine wave response along z axis, simulation 69 6.49 Case 2: Sine wave response along z axis, experiment 70 6.50 Case 2: Cartesian-space response 70 6.51 Case 3: Step response of x, simulation 71 6.52 Case 3: Step response of x, experiment 71 6.53 Case 4: Step response of roll angle, simulation 72 6.54 Case 4: Step response of roll angle, experiment 72 ix Acknowledgments My greatest debt of gratitude goes to my supervisor, Dr. Tim Salcudean, who has introduced and guided me into this exciting project, and provided sound advice and invaluable critical feedback. Without his help and encouragement, this thesis could not have been written. Thanks are also to Alison Taylor, Simon Bachmann, and Icarus Chau, research engineers in the Robotics and Control Laboratory at UBC, for their contributions to the project. I would also thank professor Peter Lawrenece, Professor Farrokh Sassani, and my colleagues in the lab for their advice and discussions. I would like to acknowledge that this project was supported by the Canadian IRIS/PRECARN Network of Centers of Excellence. I dedicate this work to my parents. x Chapter 1 Introduction The Stewart platform is a type of parallel manipulator, which consists of a mobile platform and a stationary base, connected to each other by six linear actuators (legs). A photo of the Stewart platform developed in the Robotics and Control Laboratory at UBC is presented in Figure 1.1. Since proposed by D. Stewart [1] in 1965, the platform has been used in many applications such as aircraft simulators, assembly workstations, mills, and robot wrists; it has also attracted considerable attention of researchers in different areas. In this project, an inverted, ceiling-mounted Stewart platform design was employed to build a one-person motion simulator. This Stewart platform is used to simulate the motion of heavy hydraulic equipment for the purpose of human factors and teleoperation work for the forest industry [2]. In addition, it can also be used to study virtual reality, motion algorithm, and control of parallel manipulators. The initial design of this project was described in [3]. It is our goal to study the kinematics and dynamics of the Stewart platform in details and successfully accomplish the control basing on a effective understanding of the actuator dynamics. With a successful control, we hope to achieve a good high-frequency response and high stability margin, so that this Stewart platform can have similar performance to that of commercial systems costing much more. In this first chapter we present a literature review of current research on Stewart platforms, and then we give a general description of the design and performance of our Stewart platform. 1 Chapter 1. Introduction 2 Fixed Base Actuator Mobile Platform Figure 1.1: Stewart platform motion simulator 1.1 Literature Review To the author's best knowledge, the 6 degrees-of-freedom (DOF) parallel manipulator was first described and built by Gough [4, 5] as part of a tire-testing machine. Stewart proposed a similar parallel architecture for use as a flight simulator, and 6 DOF parallel manipulators are generally called Stewart platforms. Several companies, including Canadian Aerospace Electronics (CAE) Ltd. and Moog Inc., have been using Stewart's design for flight simulators and entertaining motion simulators. However, there was no significant progress on the research of Stewart platform and other types of parallel manipulators until 1980's. A number of papers have been published on the kinematics, dynamics, and control of parallel manipulators since then. Chapter 1. Introduction 3 The inverse kinematic equations (to determine the leg lengths given the position and ori-entation of the mobile platform) of the Stewart platform are relatively easy to derive. There are several different approachs to this problem, according to the different selections of the co-ordinate systems. Nguyen et al [6], Cleary et al [7], Fichter [8], Do and Yang [9, 10] have all derived the inverse kinematics based on their particular coordinate systems. Hence, the reachable workspace of the Stewart platform was studied by many researchers. The workspace of the platform was mapped out through methods based on a complete discretiza-tion of the Cartesian-space [7, 9, 11]. A geometric approach for this problem was proposed by Gosselin et al [12]. This approach was extended by Merlet [13] to take into account all the constraints (i.e., the legs lengths range, mechanical limits on the joints, and legs interference) limiting the workspace. Merlet also showed how to perform a trajectory verification to check if the desired trajectory was inside the workspace [13]. However, if we consider the problem of singularities, which will be discussed later, the actual allowable workspace may be even smaller. When the Jacobian matrix of a manipulator loses ranks, the manipulator is said to be in a singular configuration. To determine these singular configurations, the classical method is to monitor the condition number of the Jacobian matrix. In contrast, several researchers tried to locate the singular configurations geometrically. Hunt described a singular configuration, in which case all the six lines associated to the robot links intersected one Une [14]. Fichter [11] described another singular configuration which is obtained by rotating the mobile platform around the vertical axis by an angle of ± | . Finally, this problem was successfully solved by Merlet in 1989 [15]. A new method based on Grassmann line geometry was proposed and it was shown that a singular configuration is obtained when the variety spanned by the lines associated to the robot links has a rank less than 6. Then, a set of geometric rules were used to establish the constraints on the position and orientation parameters that must be satisfied to obtain the various singular configurations [15]. The forward kinematic equations (to determine the position and orientation of the mobile platform given the legs lengths) of the Stewart platform have no known closed-form solution. Chapter 1. Introduction 4 Several researchers found that solving the forward kinematics problem is equivalent to solving a 16i/i-order polynomial in one variable [16, 17, 18, 19, 20]. Merlet also presented a geomet-ric proof to show that the number of assembly modes is at most 16 [20]. The order of the polynomial can be reduced to 8 if the mobile platform is restricted to be either above or be-low the base. Unfortunately, because the numerical resolution of the equivalent polynomials requires significant computing time and yields many solutions, it seems that this approach is neither useful for finding the analytical solution of forward kinematics problem nor useful for the real-time control. In addition, this method can only be applied to parallel manipulators with triangular mobile platforms, and can not be extended to the more general case of parallel manipulators in which the mobile platform and the stationary base are both hexagons or other shapes. Cleary was able to avoid the forward kinematics problem of the Stewart platform by mount-ing a passive serial linkage between the centers of mobile platform and stationary base and then monitoring the position and orientation of their prototype platform through sensors on the pas-sive serial linkage [7]. But the achievable accuracy of this method is quite questionable. Another method of computing the forward kinematics is the iterative numerical method. Nguyen et al applied Powell's Direction Set Method to solve the nonlinear equations [6], while Dieudonne et al used Newton's method to converge to a solution [21]. Newton's method makes use of the platform's Jacobian matrix to update the estimations of the platform's Cartesian-space parameters, and the result can converge to the required accuracy in a couple of iterations when a good starting point is given. We will apply Newton's method to solve the forward kinematics problem in this thesis. Do and Yang used Newton-Euler equations of motion to solve the inverse dynamics of the Stewart platform [10]. They also ran a simulation to compute the required actuating forces for given trajectories. Kai Liu et al used Lagrangian approach to derive the dynamic equations of the Stewart platform in Cartesian-space and then used Jacobian transformation to obtain the actuating forces in link-space [22]. Zhang and Song proposed a more efficient method for Chapter 1. Introduction 5 manipulator inverse dynamics based on the virtual work principle [23]. We will apply the virtual work principle method to derive the inverse dynamics of the Stewart platform in our coordinate system. Although the inverse dynamics problem for the Stewart platform has been solved, it has not been used practically in the Cartesian-space controller design yet. A standard computed-torque control law in Cartesian-space was briefly discussed by Kai Liu et al in [22], but no further details were given. No other published paper on the Cartesian-space control of the Stewart platform has been found. In order to produce accurate motion cues, the motion simulator must be able to reproduce accelerations as much as possible within its limited motion range. This is done by applying the motion drive algorithm, commonly known as wash-out filter, to the original trajectory. Initially the motion drive algorithms employed linear filter elements with fixed parameters. In an attempt to overcome the limitations of linear formulations, nonlinear adaptive wash-out algorithms were developed. The performances of different motion drive algorithms were investigated by Reid and Nahon et al [24]. 1.2 System Description The geometry design of our motion simulator follows a standard 6-6 Stewart platform (both the mobile platform and the stationary base are hexagons), however, this simulator is inverted and suspended from the ceiling. The electrohydraulic actuators are under tension, so they are less likely to have buckling problems, allowing us to use narrower actuators. This inverted design also provides operators the easy entrance and exit, without the need for an access ramp. How-ever, this inverted design makes the maintenance of ceiling-mounted hydraulic equipment more difficult, and there is a requirement for the ceiling's height and rigidity. The simulator uses six 1.5 inch bore, 54 inch stroke electrohydraulic actuators controlled by three-stage, proportional valves. The hydraulic fluid for the actuators is supplied by a 30 gallon per minute (GPM), 2500 pounds per square inch (PSI) power unit and two 10 gallon accumulators. Each actuator can Chapter 1. Introduction 6 <T~5 Base T~~T> Figure 1.2: Inverted simulator geometry. provide as much as 4000 N force and 1.5 m/s velocity. The position sensor of each actuator is a Temposonic magnetostrictive wire transducer. The geometry of the simulator is shown in Figure 1.2. While the dimensions of the simulator are shown in Table 1.1. The notations used here are the same as those used in [3]. Table 1.1: Simulator Dimensions. Platform Radius, rp 0.668 m Platform Actuator Angle, *yp 53.45° Base Radius, T\> 1.133 m Base Actuator Angle, 7(, 7.75° Platform Nominal Height, hp 0.203 m As will be shown later, the simulator has the performance specified in Table 1.2. Chapter 1. Introduction 7 Table 1.2: Simulator Performance. Displacement Velocity Acceleration x-axis ±0.2 m ± 1 m/s ±10 m/s2 y-axis ±0.2 m ± 1 m/s ±10 m/s2 z-axis ±0.2 m ± 1 m/s ±10 m/s2 Roll ±20° ±30° / s ± 4 0 0 ° / s 2 Pitch ±20° ±30° / s ± 4 0 0 ° / s 2 Yaw ±20° ±30° / s ± 4 0 0 ° / s 2 The remainder of this thesis is organized as follows. Chapter 2 discusses the kinematics of the Stewart platform, including the inverse kinematics and the forward kinematics. The inverse kinematics part is the same as derived in [3]. The forward kinemetics part revises the error in [3]. The singularity issues have been briefly discussed in [3] and are further discussed in this chapter; the issue of workspace is addressed as well. Chapter 3 gives the equations of the rigid body dynamics, where the dynamics of legs are included to give a complete model. A model of the electrohydraulic actuator is given in Chapter 4, where the valve dynamics are also included to give a more precise model. This model is validated using experimental data. The control approach, its implementation, and experimental results are discussed in Chapter 5. Path planning issues are discussed in this chapter as well. The software simulation based on the model derived before is introduced in Chapter 6, the simulation code was initially written by P. Drexel [3] and was further modified by the author. Several case studies are performed to further compare software simulation results and experimental results. In Chapter 7, conclusion and plans for future works are presented. Chapter 2 Platform Kinematics In this chapter we derive the inverse kinematic equations of the Stewart platform, and then give the definition and derivation of the Jacobian matrix based on our coordinate frames. Singularities of the platform and joints are also discussed. At last, the platform's forward kinematics are solved numerically, and the computing time is discussed. The notations used in this chapter and the following chapters are mainly taken from P. Drexel's thesis, for the purpose of consistency. 2.1 Inverse Kinematics In this section we will use vector algebra to attain closed-form equations of the inverse kinematics of the Stewart platform, which map the position and orientation of the mobile platform to the lengths of the six actuators. This part has been done similarly in [3] and some other references. We just follow their derivations here. Figure 2.3 shows that two coordinate frames {P} and {B} are assigned to the mobile platform and the stationary base, respectively. The origin of the frame {P} is located at the centroid P of the mobile platform, the zp axis is pointing upward, and the xv axis is perpendicular to the Une connecting the centers of the two platform attached joints PA and Pp. Similarly, frame {B} has its origin at the centroid B of the base, the z axis is pointing upward, and the x axis is perpendicular to the Une connecting the centers of the two base attached joints BA and Bp. The configuration of the platform is specified by the position of the origin of frame {P} with respect to frame {B} and the orientation of frame {P} with respect to frame {B}. The position of frame {P} is represented by vector bdp = [x y z]T, which contains the Cartesian 8 Chapter 2. Platform Kinematics 9 Figure 2.3: Vector definitions for inverse kinematics. coordinates x,y,z of the origin of frame {P} with respect to frame {B}. The orientation of frame {P} with respect to frame {B} can be described by the orientation matrix 6 R P , whose columns are the coordinates of basis axes of frame {P} in frame {B}. We define the position Chapter 2. Platform Kinematics 10 of the center of ith platform attached joint P, with respect to frame {P} to be pp;, which is a fixed vector. Similarly, we define the position of the center of ith base attached joint Bi with respect to frame {B} to be bb;, which is also a fixed vector. Then, the ith actuator vector 6a;, which is the vector from the center of ith base attached joint Bi to the center of ith platform attached joint P,, can be expressed as, 6a, = b R / P i + bdp - % (2.1) Since the centers of joints are arranged in pairs at 120 degree intervals around a circle, as shown in Figure 2.3, we then have, hp 2 and (2.2) and (2.3) rh cos rb sin 7 ^ 0 where rp is the radius of the mobile platform circle, rb is the radius of the base circle, 7 p t - and 7 b i are defined for each actuator as shown in Table 2.3, and hp is the nominal height of the platform. Note that (2.2) assumes that centroid P of the platform is vertically centered and that centers of the joints are at the top of the platform. Table 2.3: Platform and Base Actuator End Point Angles. i Ipi Ibi A 7 P = 53.45° lb = 7.75° B 120° - 7p 120° - 7 6 C 120° + 7 p 120° + 7 b D -120° - l p -120° - 7 b E -120° + 7 p - 1 2 0 ° + 7 6 F -1P - 7 6 The platform's orientation matrix, R p , is defined using roll-pitch-yaw angles <f>p, 9p, and tpp. We specify the order of rotation as x — y — z: first yaw about the x axis through an angle ij;p, then pitch about the y axis through an angle 6P, and finally roll about the z axis Chapter 2. Platform Kinematics 11 through an angle <f>p. Since the successive rotations are relative to the fixed frame, the resulted transformation matrix is given by, hRp(il>p,0p,<f>p) = c(f>p —s4>p 0 s<f>p c<f)p 0 0 0 1 c6p 0 s0p 0 0 —s9p 0 c0p 1 0 0 0 cipp —stpp 0 sipp ctpp cOpc<j)p sipps6pC(j)p — cipps4>p cippS0pc(f)p + sipps<fip c8pS<f>p sifipsOpScfip + c<ppc4>p ct})ps6pS(j)p — st/jpc(j)p —s9p sijjpc8p cippcOp (2.4) where c^p = cos ij}p, stpp = sin ipp, etc. We choose roll-pitch-yaw angles because they can easily reflect the platform's actual physical orientation and make things easier when we specify trajectories in the Cartesian-space. The length of actuator i can be easily obtained from (2.1), u /feo.r6o. (2.5) For each actuator, i — A...F, (2.5) expresses its length, given the platform's position and orientation. 2.2 Platform Jacobian The velocity kinematics of parallel manipulators are also given by Jacobian transformations, as in the case of serial manipulators. However, unlike those of serial manipulators, the Jacobian matrices of parallel manipulators are generally defined as transformations from the velocities of platforms in the Cartesian-space to the velocities of actuators in the link-space. We define the Jacobian matrix of Stewart platform as, (2.6) where 1 is the six vector of actuator velocities, J is the platform's six by six Jacobian matrix, b \ p = bdp is the platform translational velocity and bu>p is the platform angular velocity. Note 1 = J Chapter 2. Platform Kinematics 12 that bup is written in terms of the derivatives of the platform's rotation angles as V = B 4>P (2.7) where for the roll-pitch-yaw angle rotation matrix 6 R P defined above B = c9pc(f>p — sc/>p 0 c6ps(f>p c(f)p 0 -s6p 0 1 (2.8) Each row of the Jacobian matrix corresponds to one of the platform's six actuators. We can obtain the ith row of the Jacobian matrix by differentiating both sides of (2.5), and substituting (2.1) into the result, 1 2 b&.% b&-i b<*-i u ( 6 R / P l + 6 d p - 6 b t ) T ((6u,p x bRp)ppi + 6 v p ) k ( 6 R / p ; + bdp - b b i ) T ( 6v p) + ( 6Rp pP» + bdP ~ 6 b i ) T x (6Rppp,-)) U ( 6R/p< + b d p - b b i ) T ( 6v p) + ( ( 6 R / P i ) x ( b R / P i + 6 d p - %))T (bup) U r 6„ ( 6 R / P i + 6 d p - bbt) ((bHppPi) x ( 6d p - 6bi)) where 6 R P = bu>p X 6 R P and a • (b X c) = (c X a) • b have been applied. (2.9) (2.10) (2.11) (2.12) (2.13) Chapter 2. Platform Kinematics 13 Then, we can get the Jacobian matrix by putting together the velocities of six actuators, U IB ic ID IE IF ( 6 R / P A + 6 d p - bbA) ((bR/PA) x (bdp - bbA)) (bR/pB + bdp - bbB)T ( ( 6 R P P P B ) x (bdp - bbB)) (bR/PF + bdp -bbF)T ( ( 6 R / P F ) x (bdp - V ) ) : (2.14) or, 1 = J ( 6 d p , 6 R p ) (2.15) where the Jacobian matrix depends on the platform's position bdp and orientation b R p . This result is the same as in [3]. 2.3 Workspace and Singularities In this section we discuss the reachable workspace, mechanical constraints, and singularities in our system. We obtain a reachable workspace where the system is free of mechanical constraints and singularities that can be used for control system development. 2.3.1 Reachable workspace Because of the length limits of the actuators, the Stewart platform has a limited reachable workspace. The boundary of this workspace is hard to describe, because it has 6 dimensions (x, y, z, ipp, 9P, (j>p). The positioning workspace (i.e., the region of the three-dimensional Cartesian-space that can be attained by a manipulator with a given orientation) has been described through methods based on complete discretization of the Cartesian-space [7, 9, 11]. For a given orientation, we can calculate the inverse kinematics of the Stewart platform at a certain position, and check if the resulted actuator lengths are within the limits so as to determine if that position is inside the reachable positioning workspace. Because the workspace Chapter 2. Platform Kinematics 14 is continuous, we can map it out by discretizing the Cartesian-space by small enough steps. Figure 2.4 shows the positioning workspace of our Stewart platform when ipp = 6p = <f>p = 0°. But the actual reachable workspace is much smaller because we have to allow rotational Workspace of the Stewart Platform when psi=the=phi=0 2 2 Position X (m) Position Y (m) Figure 2.4: Translational workspace of the Stewart platform when ifip = 0P = <f>p = 0°. movements. To search the boundary of the workspace, we first discretize the Cartesian-space by small enough steps and then we rotate the Stewart platform at each position to check if the actuator lengths derived from the inverse kinematics are still within the limits. The workspace becomes smaller when we allow larger rotational movements. Figure 2.5 shows the actual workspace of our Stewart platform when we set a range limit of —20° to 20° for ipp, 6P, and (f>p. For the purpose of a general usage, we only considered the limits of actuator lengths in the above definition of the reachable workspace. But the motion range of our system is also limited by other mechanical constraints. Chapter 2. Platform Kinematics 15 Reachable workspace of Stewart platform when angles are from -20 to 20 Position Y (m) Position X (m) Figure 2.5: Translational workspace of the Stewart platform with arbitrary angles from —20° to 20° 2.3.2 Mechanical constraints Our Stewart platform is ceiling mounted, so its motion along the z axis is limited by the height of the room. Another constraint is the interference between actuators and the chair top, which is used to protect the operator. We have to consider these two types of constraints when we search the boundary of the safe workspace. Figure 2.6 shows the projection of the safe workspace on the y — z plane when there is no rotation. And Figure 2.7 shows the projection of the safe workspace on the y — z plane when ipp, 9p, and <f>p are from —20° to 20°. We can see that the safe workspace becomes much smaller when we allow rotations. We can achieve larger displacement and larger rotation in a pre-planned trajectory, if the displacement and the rotation are combined such that the pre-planned trajectory does not violate the mechanical Chapter 2. Platform Kinematics 16 Projection of the workspace when there is no rotation -1.5 -2 I I I I 1 1 1 1 1 1 ! ! i i ! ! i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i I I i i i i i i i i i i i i I I I i i 1 i i i i i n i i_limTtebrB\rcv'rincIerlenqtTis l i l i 1 1- i v ' ! 1 ^ 1 \ ! ! Is ! ! i \ i i / \ i i i \ i i / i i i i \ i i / i i i T i n i i i i rr r v ~i r T -i \ i i i i i limited bv the heiqht of ceilimq i i i i i i i i i i i i \ \ 1 1 1 1 1 1 \ 1 1 1 1 1 ] l i m i t e d by th^ chair safety j ] i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i ; l I I I I I I I I I I 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 y (m) Figure 2.6: Projection of the safe workspace on the y — z plane when there is no rotation. Projection of the workspace when rotation angles are from -20 to 20 -3 ! L j i i i i i i i i i i i i i i i i i i i i i i i i i i i _ l l_ L J _j ! 1 1 1 limited by cylinder lengths i i ' — • — ^ 1 i i i ~p* 1 1 1 i i i i i i i i ' / / V ' / / / ^ I i i 1 1 n r T i I I I I I ! i i i i ! \ i \ | limitec ! i i i limited by the height pf ceilinc i i i i i i i i i i i i by the chair safety i i i i i i i i i i i i i i i i i i i i i i 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 y (m) Figure 2.7: Projection of the safe workspace when ipp, 0P, and <j>p are from —20° to 20°. constraints. But when the platform is manipulated by a joy-stick, we would like to set the Chapter 2. Platform Kinematics 17 translational and rotational limits to prevent mechanical damage We can define a cylindrical volume where the system is reachable and free of mechanical constraints. However, we have to check if there is any singularity inside that cylindrical volume. 2.3.3 Singularities The singularities in the design of our Stewart platform include platform singularity and TJ-joints singularities. The platform singularity has been analyzed successfully by Merlet through Grassmann ge-ometry [15]. The idea is that a parallel manipulator will be in a singular configuration if, and only if, there is a subset spanned by n of its lines which has a rank less than n . For exam-ple, subset of rank 1 is a Une in the 3D space; subsets of rank 2 are either a pair of skew fines in the 3D space or lines lying in a 2D plane and passing through the same point on that plane. For a 2D parallel manipulator in Figure 2.8, the singular configuration is obtained when / \ / \ / \ / \ / \ Mobile Platform Joint Base Figure 2.8: Singular configuration for the 2D parallel manipulator the three fines (actuators) intersect. If the mobile platform and the base are symmetric as shown in Figure 2.8, we get a singular configuration when the mobile platform and the base Chapter 2. Platform Kinematics 18 are parallel. When a parallel manipulator reaches a singular configuration, it gains one or more uncontrollable degrees of freedom and will rotate and/or translate without a change in the ac-tuator lengths. Merlet uses a set of geometric rules to establish the constraints on the position and orientation parameters that must be satisfied to obtain the various singular configurations. However, the calculation of such geometric rules is more complicated than that of the condition number of platform Jacobian, which is used in the classical method to determine these singular configurations numerically. By plotting the ratios of the largest to smallest condition number of platform Jacobian while varying two of the platform's six position and orientation parameters, we can obtain a graphical description of the platform's singular configurations. For example, Figure 2.9 shows a plot of the condition number ratios versus varying pitch angle 0P and roll angle <j)p for the platform at its nominal position (x = 0 m, y = 0 m, z = —2.5 m and ipp = 0°). (See Appendix D.3 for MATLAB source code). The "singularity boundary" is actually six-pitch angle (degree) Figure 2.9: Condition number of the platform Jacobian versus pitch & roll angle dimensional, and thus hard to describe. However, by plotting condition number ratios versus two parameters while varying the other four parameters up to their limits, we can confirm that the cylindrical volume defined in the last section is free of singularity. So, we don't need to Chapter 2. Platform Kinematics 19 monitor the condition number of the Jacobian as long as the motion of the Stewart platform is within that cylindrical volume. We use U-joints in the design of our Stewart platform, because U-joints provide a large range of motion and are relatively easy to manufacture [3]. However, there are singularities when the base of the U-joint and the attached actuator share a common axis. To prevent singularities, we should monitor the angle between axis of the U-joint base and axis of the attached cylinder, and prepare to stop the platform before it enters a singular configuration. We use the method of discretization again to study the singularities of the U-joints; a small enough interval is used to make sure that any possible singular point will be tested. Figure 2.10: Inverse of U-joint angle versus roll angle and z We come to the conclusion that there is no singularity for the U-joints attached to the base Chapter 2. Platform Kinematics 20 within the whole possible workspace, and that there is no singularity for the U-joints attached to the mobile platform within the cylindrical volume we defined before. So, we do not need to monitor the angle of the U-joints as long as the motion of the Stewart platform is within that cylindrical volume. A plot of the inverse of U-joint angle of joint PA versus roll angle and z is shown in Figure 2.10. Thus, we obtain a cylindrical workspace that is safe and reachable. This workspace is when the chair is mounted; 2.4 Forward Kinematics In this section we will study the forward kinematics of the Stewart platform, which map lengths of the six actuator to the position and orientation of the mobile platform. As mentioned before, there is no known closed-form solution to the forward kinematics of the Stewart platform. Dieudonne et al used Newton's method to solve the forward kinematics problem numerically [21]. The mathematics of this method is relatively straightforward, and the convergence is quadratic. It makes use of the platform's Jacobian matrix to update the estimations of the platform's Cartesian-space parameters, and the result can converge to the required accuracy in a couple of iterations when a good starting point is given. Here we use Newton's method for multiple equations and variables to calculate the platform's forward kinematics iteratively. For multiple equations and variables, Newton's method is where X is a vector of the variables we wish to estimate, g is a vector function which approaches zero as the estimation of X improves and j is the iteration count. For the Stewart platform described in this thesis, we select described by, -2.7m < Zp < -2.3m, -0.2m < yjxj + Yp 2 < 0.2m, and - 2 0 ° < i/)p,0p,<j>p < 20° (2.16) bdT ipp 9P 4>p (2.17) Chapter 2. Platform Kinematics 21 and || ( b R p (v>p, ep, <t>v) pPA + bdp - bbA) || - 1 A \ \ B * A \ \ -U g(X) = || ( f tR p f>p, c9p, <rip) P P F + bdp - bbF) || - lF — _ WWW-IF _ (2.18) where ba; is the estimated length of actuator i and Z; is the actual length of actuator i. By differentiating (2.18), we can obtain, r = J v p = J I 0 p . 0 B 6p 4>v (2.19) So, the partial derivative of g with respect to X is given by, flg(X) ax — "1 (xp, J/p, Zp, tpp, dp, (f)p) I 0 0 B (2.20) Substituting (2.17), (2.18), and (2.20) into (2.16) gives the following iteration Xp Xp yP yP Zp tip ^p dp dp i+i I 0 0 B - 1 J - 1 b*A\\-U B & F \ \ — IF (2.21) Given 1, we can obtain X = [xp, yp, zv, ifip, dp, <pp]T, provided that J and B are non-singular. Note that we can use the LU decomposition rather than compute the inverses of B and J explicitly. We should mention that there was an error in the forward kinematics derivation in [3], I 0 where 0 B _ 1 is better than claimed in [3]. was not included in the equation of iteration. Actually, the converging rate Chapter 2. Platform Kinematics 22 Now, we look into the computing time of the forward kinematics. For our system, we use 16 bits A / D converters to convert the signals of actuator lengths, which range about 1.5 m. The resolution is about m, which is about 0.023 mm. The maximum velocity of each actuator is about 1.4 m/s. When the sampling frequency is 200 Hz, which is the one we are using, the maximum difference in actuator length between two adjacent sampling points is about ±7 mm. So, assuming that Newton's method converges along the trajectory, we can always have an estimated starting point within ± 7 mm in actuator length from the actual point. For a current platform configuration and corresponding actuator lengths, we add a dis-placement of ± 7 mm to the length of each actuator to represent the worst case of actuator lengths at the next sampling point, and we use current platform configuration as the starting point to calculate the next platform configuration, which is according to the actuator lengths with additional displacement of ±7 mm, through the forward kinematics. Notice that we are calculating for 64 possible worst cases here. We record the largest estimation error in actuator length after two iterations, and then plot it versus x position and pitch angle in Figure (2.11). We can see that the estimation error after two iterations is far smaller than the resolutions of actuator length sensors. The results are similar for the trajectory near the boundary of the cylindrical volume defined before. We should say that the result after two iterations is accurate enough for the real-time control of our system. We can finish the computation of forward kinematics within 1 ms in our VME-based real-time system. We derived the kinematics of the Stewart platform in this chapter. The workspace issue was studied in details and the result was used in the control program to ensure that the Stewart platform is always in the safe workspace. The numerical solution of the forward kinematics was evaluated using simulation, and it was concluded that result would reach the desired value after two iterations in the real-time control. Chapter 2. Platform Kinematics 23 max leg length estimation error vs. positions pitch angle (radian) 0 0 x position (meter) Figure 2.11: Maximum possible estimation error in actuator length after two iterations of Newton's method Chapter 3 Platform Dynamics In this chapter, we discuss the dynamic equations of the Stewart platform. A complete model of the inverse dynamics including the leg dynamics and the mobile platform dynamics is derived first, and a simplified model which only includes the mobile platform dynamics is given for the purpose of simulation and controller design. 3.1 Complete Model We use the virtual work principle to formulate the dynamic equations of rigid body motion of the Stewart platform. A complete model of the inverse dynamics includes both the mobile platform dynamics and the leg dynamics. The diagram of a leg is shown in Figure 3.12. mobile platform Figure 3.12: Diagram of leg i 24 Chapter 3. Platform Dynamics 25 Each leg consists of two parts: the upper fixed part with mass mu, and the lower moving part with mass mi. The distance from the base connection (the center of base attached joint) to the mass center of upper part is /„ while the distance from the platform connection (the center of platform attached joint) to the mass center of lower part is In the following dynamics analysis, the frictions in the actuators and U-joints are neglected to simplify the problem. Also we assume that the moment of inertia of leg i about the axis 6 a; is negligible and then each leg can be modeled as a slender rod. The virtual work 8w, done in translating the platform by the virtual distance bvp6t, rotating the platform by the virtual angle bu?v8t, and rotating the legs by the virtual angles bu>i6t, is 6 Sw = mpbgT\St + J2(mlbSTb^u + rnubgTbviu)6t + i=l T fT\6t- | | | " | 6t-J2bnTbuiSt (3.22) »'=i where g is the gravity acceleration, 1 = [IAJB-,IC^DiIE,IF]T is the six vector of the actuator lengths, f is the six vector of the actuator forces, mp is the mass of the platform, 6 v p is the translational velocity of the platform, 6v;/ is the translational velocity of the lower part of leg i, 6 V j U is the translational velocity of the upper part of leg i, bfp is the force acting on the center of mass of the platform, brp is the total torque acting about the center of mass of the platform, buip is the angular velocity of the platform, 6r,- is the torque acting about the base connection of each leg, and bu>i is the angular velocity of each leg around its base connection. Please notice that the effect of gravity is considered separately here. Now we derive the expressions of bvu and b v;„. Referring to Figure 3.12, we have h li, *u b (3.23) and a«7 = bai||-/;. a, (3.24) where ba z u is the vector from the center of ith base attached joint B{ to the mass center of ith Chapter 3. Platform Dynamics 26 upper leg, and 6a;/ is the vector from the center of ith base attached joint Bi to the mass center of ith lower leg. Taking derivatives of the above equations and considering the derivatives of (2.1), I,s(bK/Pi)' (3.25) we then have Z ^ a ^ a ; 6 , | | 6 a i | | - / / | C l 2 | | C t j <X% a, - V a ^ [/,-S ( b R/p 2 )] + I , -S (b R p p P t ) ' = h, and V | | 6 a i | | f , a i X 6 a ( a, • a^  az' / , -S ( 6 R / P i ) + l 6 ail (6 R / P * ) where S ^ R p p p i j is the skew symmetric matrix of ^ 6 R p p p i^ . The angular velocity of each leg around its base connection is given by, / , - S ( b R / P i ) ] 6 a i X 6 a i _ ai x ba.Tb ~ (3.26) (3.27) ti (3.28) Chapter 3. Platform Dynamics 27 And the torque about the base connection of each leg can be expressed as, bTi = (Iii + Iui) bUi + ilibU>i (3.29) where In is the inertia variable of the lower part of leg i, Iui is the inertia constant of the upper part of leg i, and 6a t- is given by taking derivatives of (3.28), ct% — t>i dp + ii 6 V V p 6 b dp (3.30) When the effect of gravity is considered separately, the force acting on the platform can be expressed as, 6fp = mpba.p (3.31) where mp is the mass of the platform and 6a p (three vector) is the translational acceleration of the platform's center of mass. The angular momentum of the platform with respect to the base frame is, by definition, blLp — bIpbup — bTLpplpRTbup (3.32) where pIp is the platform's inertia matrix expressed with respect to the platform frame and has the form P T -o 0 o n P y y o o 0 pl Vzz (3.33) Taking the derivative of (3.32) gives the torque on the platform as bT p = bIpbap + bup x ( V ^ p ) (3.34) where bap (three vector) is the angular acceleration of the platform about its center of mass and we assume that the inertia of the platform does not change with time in the platform frame. The principle of virtual work states that the work done by external forces (f; bfp,brp) cor-responding to any virtual displacements (61;6d,6ip,86,64>) is zero (Sw = 0) [29]. Substituting Chapter 3. Platform Dynamics 28 (2.6), (3.26), (3.27), and (3.28) into (3.22) and applying the principle of virtual work, we then have VL I o mpbS + J2 ( h * / V g + hiuTmubg) + JTf-\ i=i - E ( * . - f ^ i=l St = 0 We can ehminate the arbitrary time interval 6t and the arbitrary vector non-singular, we can express the actuator forces as, (3.35) If J is lP mbg - £ ( h a V g + hiuTmubg) (3.36) where the expressions of h;/, h,-u, tt-, 6r,-, bfp, and brp, can be found in (3.26), (3.27), (3.28), (3.29), (3.31), and (3.34), respectively. We now have obtained an expression of the actuator forces in the link-space in terms of the position, velocity, and acceleration of the platform in the Cartesian-space. This is the complete model of the inverse dynamics of the Stewart platform. The presented derivation is more straightforward, compared with the derivations in [10], [22], and [23]. The expression of final result is also simpler. However, the complete dynamic model is still a complicated one. We simplify the model in the next section by neglecting the leg dynamics. 3.2 Simplified Model For our Stewart platform, the mass of the six legs is considerablly smaller than that of the mobile platform. In the rigid body dynamic equations, the leg dynamics part is more complicated and less important than the mobile platform dynamics part. If we neglect the leg dynamics, equation (3.36) becomes = (JT) - l 6 f I TP 0 \ mpg = ( J T ) - l mpbSLp - mpbg [ bIpbap + bujp X (bIpbup) (3.37) Chapter 3. Platform Dynamics 29 We now check how much the leg dynamics affect the calculation of forces. Each leg weights about 15 kg. We assume that the payload weights 250 kg and is evenly distributed in a cylindrical volume with height of 1.0 meter and radius of 0.6 meter. We run the simulation with and without considering the leg dynamics, and plot the required forces for several trajectories. Figure 3.13 shows the actuator forces when the motion trajectory is from the home position with an acceleration of x — g. Figure 3.14 shows the actuator forces when the motion trajectory is a sinusoidal wave along the x axis with amplitude of 0.01 meter. Figure 3.15 shows the actuator forces when the motion trajectory is from the home position with an acceleration of y = g and also a sinusoidal pitch angle. We can see that the leg dynamics count less than 10%. So, we 3000 2000 1000 The force of each actuator, with and without leg dynamics 2 o LL -1000 -2000 -3000 i - e - o - e e > - o - o - & e J L X Actuator A Actuator B Actuator C - - Actuator D - Actuator E - - Actuator F L©=Q=<2> "0 0.05 0.1 0.15 0.2 Time (second) 0.25 0.3 Figure 3.13: Motion from the home position with an acceleration of x = g Chapter 3. Platform Dynamics 30 The force of each actuator, with and without leg dynamics -4000 -5000 o Actuator A — Actuator B x Actuator C Actuator D • Actuator E Actuator F 0.05 0.1 0.15 0.2 0.25 Time (second) 0.3 Figure 3.14: Sinusoidal motion along x axis neglect the leg dynamics to avoid the huge computation in the simulation and real-time control. See Appendix D.4 for more details. If we define the matrices D and E as in [3], the simplified dynamic model can be expressed as the same as in [3], = ( ' T ) - l D ar \ + E (3.38) where D mp 0 0 0 mp 0 0 0 m 0 (3.39) Chapter 3. Platform Dynamics 31 3000 r The force of each actuator, with and without leg dynamics 2000 1000© cr- 0 CD (J . O L L -1000 -2000 -3000$ -4000 ..Oo.?.°°.?.9 xx xx x : x 8 x x x b X ^ x x x x : x x x x x ••xx • X X X s, x x X X X X X x * x x £ X x X : 0.05 0.1 0.15 0.2 Time (second) 0.25 0.3 o Actuator A — Actuator B x Actuator C Actuator D Actuator E Actuator F Figure 3.15: Motion with constant acceleration along y axis and a sinusoidal pitch angle and E 0 0 (3.40) mpg bup x (%bup) We discussed the dynamics of Stewart platform in this chapter. The platform dynamic equations were derived in a simpler way than previously reported ([10], [23] and [22]). The dynamic simulations were then employed to show empirically that the platform leg dynamics could be neglected in predicting system trajectories. This simplified the simulation work and real-time control. Chapter 4 Actuator Dynamics The dynamics of electrohydraulic actuators are important in the control of the Stewart platform. In this chapter, we will derive the dynamic model of the electrohydraulic actuator, then linearize the model for the purpose of control and simulation, and in the last section we will validate the model using experimental data. 4.1 Deriving the Model Each electrohydraulic actuator in our Stewart platform consists of an asymmetrical cylinder controlled by a proportional valve in a three-way configuration. Due to the financial limits, standard industrial cylinders with low-friction seals rather than the hydrostatic cylinders were used. The size of each cylinder is 1.5 inch bore, 60 inch stroke. The valves used are small size Rexroth 4WRDE three-stage proportional valves. Please refer to [3] for the details of the selection of these components. Sensors in the system include the magnetostrictive wire length transducer for the length of each actuator, the linear variable differential transducer (LVDT) for the main stage spool position of each valve, and the single port pressure transducer for the pressure of each cylinder's blind end. The detailed description of the sensors can be found in [3]. Electrohydraulic servo systems are difficult to model because of the presence of nonlineari-ties. These nonlinearities include: nonlinear servo valve flow/pressure characteristics, variations in the trapped fluid volume in the system, the effects of nonlinear viscous and coulomb friction between the cylinder and the piston, and the effect of flow forces on the valve spool positions. 32 Chapter 4. Actuator Dynamics 33 We follow the standard mathematical approach presented in [30] and [31] to model the elec-trohydraulic actuator. To analyze electrohydraulic servo systems, we should consider the effects of the following factors: the fluid flows through variable valve openings, the compressibility of fluid, the load forces and viscous frictions, and the dynamic responses from valve opening com-mand values to actual valve spool positions. Here we study the hydraulic part first. Figure 4.16 shows a typical three-way valve/cylinder connection. Valve Figure 4.16: Definition of three-way connection parameters. For the valve, assuming that there is no leakage, we can write the flow rate Qc from the valve to the blind end of the cylinder as Qc = Qi-Q2 (4.41) where Q\ is the flow rate from the supply pressure port to the cylinder and Q2 is the flow rate Chapter 4. Actuator Dynamics 34 from the cylinder to the tank. Using the orifice equation for turbulent flow [31], which is only valid for sharp edged orifices with adequately large flows, we can write expressions for Q\ and Qi as { Cdw(U + Xv)Jj(Ps-Pc), Xv>-U Qi = < V (4.42) 0, Xv < -77 and Q 2 Cdw(U-Xv)^p(Pc-Pt), XV<U 0, xv > u where Cd is the discharge coefficient, w is the port width of the valve, U is the valve's underlap, Xv is the spool position of the valve with respect to the center, p is the density of fluid, Ps is the supply pressure, Pc is the controlled pressure at the blind end of the cylinder and Pt « 0 is the tank pressure. The compressibility of the fluid can be expressed as V = V u ~ J P ( 4 - 4 4 ) where /? is the bulk modulus of the fluid, P is the pressure in the container, Vu is the volume of the fluid before compression (equivalent uncompressed volume), and V is the compressed (measured) fluid volume. In our system, P = Pc is the pressure at the blind end of the cylinder, V is the total volume contained between the piston and the blind end of the cylinder, and Vu is the equivalent uncompressed volume. The transient flow rates associated with fluid compressibility are proportional to rates of change of pressure and may be expressed as Q* = J~dt ( 4 ' 4 5 ) where Qp is the transient flow rates associated with fluid compressibility, and /?, P and Vu are defined as before. The flow through the valve is the sum of the flow associated with the movement of piston (change in volume) and the flow associated with fluid compressibility. So we can express the Chapter 4. Actuator Dynamics 35 flow rate Qc from the valve to the blind end of the cylinder as, Qc = V + Qp = V + ^jPc Considering the load forces and viscous frictions, we have, (4.46) PCA - Psa = Ml + Bl + KI + f (4.47) where a is the annulus area between the piston rod and the cylinder wall, M is the mass of the load, B is the load's viscous damping coefficient, K is the spring constant of the load and / is an external force. We assume K — 0 in the modeling. We can solve the above equations for / by differentiating equation (4.47) and substituting (4.41), (4.42), (4.43), and (4.46) into the result. The derived equation is, 1 I M ^ (cdwJh(xv,pc)-v) -Bi'-f where Vu V Pc. Ai, Ml + Bi + f + Psa h(Xv,Pc) = { -(U -Xv)y/P~^Tt, and L is the stroke length of the cylinder. The above equations can also be written as Xv < -U J = fo(i,i,ijJ,s) (4.48) (4.49) (4.50) (4.51) (U + XV)^P.-PC, XV>U {U + Xv) V-Ps -PC-(U- Xv) VPC - Pt, -U<XV<U (4.52) (4.53) where S represents the system parameters. Chapter 4. Actuator Dynamics 36 In addition to the dynamic response in the hydraulic part, we have a dynamic response in the electrical part. The valve spool position Xv is controlled through a D / A board, and is supposed to be proportional to the command value of VDA, which is the output of D /A board. However, the actual valve response is a dynamic one. The valve response can be approximately modeled as a second order closed-loop system with the transfer function where ue is the electrical undamped natural frequency and £ e is the electrical damping ratio. Parameters in this model can be estimated from the specification of the valve and then verified through the experiment. Combining the electrical part model with the hydraulic part model, we can finally obtain a fifth-order nonlinear model of the electrohydraulic system. 4.2 L i n e a r i z i n g t h e M o d e l The above nonlinear model of the electrohydraulic system gives us a relatively complete de-scription of the actuator dynamics. The hydraulic part of the model can be seen roughly as the combination of an integrator and a spring-damper system, while the electrical part is a second order closed-loop system. The natural frequency and damping ratio of the equivalent linear system determine most characteristics of the actuator dynamics. We now linearize the model to get a basic idea about the dynamic response of the actuator. We first linearize the function of Qc. The underlap U of the valve, which is 55.4 X 10 - 6 m, can be neglected in the calculation of flow rates. The controlled pressure Pc at the blind end of the cylinder is fast varying but within a small range for general maneuvers, so we can use the average value of Pc, which is about \PS, to represent Pc, where we assume APC < \PS. Then, the equation (4.41) becomes Xv(s) = 1 VDA(S) (4.54) Ul 2 UJe ' (4.55) where Kq is the defined flow gain. Chapter 4. Actuator Dynamics 37 We then define the initial value of Vu to be Vo and linearize the model about this particular operating point. From equation (4.55), (4.46), and (4.47), it is clear that, KgXv = ^ l + ^ i + A i (4.56) where Kq,Vo, M, A, (3, and B are all constant parameters. By taking Laplace transform of the above equation, we can get the transfer function where ut\ = A ^ J i s the hydraulic undamped natural frequency and ^ = Y A \ J - ^ J is the hy-drauhc damping ratio. We validate this linearized model in the next section using experimental data and also identify the undetermined parameters in the model. 4.3 Validating the Model We use spectral analysis on the single actuator system to validate its dynamic model. By using white noise as input signal and analyzing the cross spectral density between the output signal and input signal of the system, we can get an experimentally estimated transfer function of the system. This method has been mentioned in [32] and some other books. For the detailed derivation, please see Appendix B. In the experiment, the supply pressure is 400 PSI and the sampling frequency is 500 Hz. The cylinder rod weights about 5.5 kg, and a mass of 15.2 kg is attached to it as the additional load, so the total mass M as used in equation (4.57) is 20.7 kg. We first generate a band-limited digital white noise signal using the Matlab software package, and then low-pass filter the white noise signal using a discrete second-order Butterworth filter with cut-off frequency of 200 Hz. The processed white noise signal is then applied to the input of the system, i.e., the signal is used as the command value of the valve opening. The input signal and output signals are sampled at the frequency of 500 Hz for a long enough duration. At last, we perform the spectral analysis of the recorded input and output sequences in Matlab to obtain the estimated transfer function of the system. Chapter 4. Actuator Dynamics 38 We have two transfer functions in serial: one is from the command value of valve opening to the actual valve spool position, the other is from the valve spool position to the actuator length. The comparisons of simulation results (linearized models in the previous section) and experimental results are shown in Figure 4.17 and Figure 4.18. We can see that experimentally estimated transfer functions match theoretically derived transfer functions. The experiment is done around the operating point where the actuator length is lo = 2.47 m. In Figure 4.17, the length unit is meter, while the valve opening unit is voltage, which is from the valve spool position sensor signal and equals to 0.00035 meter. Bode Plot of the Cylinder Dynamics (from valve opening to cylinder length) and the Experimental Validation (by spectral analysis) -50 .£ -100 CO O -150 I I I I I I i i i i I—r- i — i i i i i i i i i i i i I i i i i i i i i i i i i i i i i i i — J I I i i i I i i i i i 1 i i i i i i i i i r v i i i i i i i 1 1 I i 1 1 1 1 1 ! I I I i ^ l ' Experiment r i i i i i i i I i t -I i i i i i i i I I I I I i I I i i i i i i i i i i i i _1 ! ! ( r __jx^- r r T V i I I I ^-I'^T r s i i i V . | i Sirjiulatiorj j W J J W M i i i i i i i V ill 1 \ Vj i i i i i i i i i< i ^^ur i i i i i i i i i i i i i i i i i i i i i i I I I 1rf Frequency (Hz) 10" g>-180 T 3 o- -360 -540 ! i i i i i i i i i i i i i i i i i i i i i i i i ' 1 I I I i i i i i i i i i i i i i i i i i i i i i i i — ! -i i i i — i — i = f c t - — _ i i i i t — ^ ^ ^ ^ i i 1 1 1 1— I—I — I— 1 - — s ^ ^ C - - 1 - -1 1 1 1 1 1 1 1 l \ \ 1 i i i i i i i i i \ \ i i i i i i i i i \ i \ i i i i i i i i i i i i i i - i r - 1 - r - i - 1 - - t i i i i i i i i i Simuldtiani 1 1 1 "A 1 1 1 — ! -i i i i i i i i i i \ i i i i i i i i i i \ r 1 — T ~ T - r n ~ r i 1 r:± i i i i i i i i i \ j r i i i i 1 ^ — 0 ^ 1 1 1 1 1 • v r ~ i ^ K i i ~ r r T l\ 1 1 1 T—1 ! i i i i i i i i r \ . i i i i i i i i Experiment i i i i i i i i i i i i i i i i i i i i 1 \ 1 1 1 1 1 1 i T N I I I I 1 1 1 \ 1 1 1 1 1 1 1 \ 1 IKI 1 w Frequency (Hz) 102 Figure 4.17: Simulation result and experimental result of the cylinder dynamics The system parameters that give the above simulation results are shown in Table 4.4. Please note that values of f3 and B are not easy to measure, and we identify their values by matching the simaltion results with experimental results. And the corresponding uy\ and ^ are given by, 13 VoM (l0 - L) x A M 30Hz (4.58) Chapter 4. Actuator Dynamics 39 Bode Plot of the Valve Dynamics (from D/A command value to valve opening) and the Experimental Validation (by spectral analysis) -1 i i a i 1 1 1 T-t-*—_ 1 1 1 1 1 1 1 1 1 1 1 1 i i ~ • i i i i 111 i i i i i i 11 i i i i i i 11 ^ - J 1 L J - L l i J 1 1 1 1 1 1 1 1~-i i ~1~ 1  I 1 1 1 1 1 1 T T T T H 1 1 1 1 1 1 i i — r _ _ i I ^ S S v l 1 1 1 1 1 1 - - r - H * ^ r "1 ~ Slrnutatiarr~ 1 1 KSI 1 1 J 1 _ _ _ ! _ _ 1 --t-1 1 i 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 i i i i ! Experiment ! M V J U I i i i i i i i 10' 10* -50 •8-100 a °- -150 -200 F r e q u e n c y ( H z ) Figure 4.18: Simulation result and experimental result of the valve dynamics Table 4.4: Actuator System Parameters. Parameter Value Definition P 700 MPa Effective Fluid Bulk Modulus A 1.14 x I O - 3 m 2 Area of the Piston a 6.33 X 10~4 m 2 Annulus Area cd 0.432 Effective Discharge Coefficient w 5.7 mm Port Width of the Valve P 858.2 kg/m 3 Density of the Fluid L 1.37 m Stroke Length of the Cylinder B 2500 N s/m Viscous Damping Coefficient Ps 400 PSI Current Supply Pressure Pt 0 PSI Tank Pressure U 55.4 x 10~6 m Underlap of the Valve and Parameters of the valve dynamics are given by ue « 40iTz and fe « 0.6. They are also obtained by matching the simaltion results with experimental results. The effective discharge coefficient Cd is identified to be 0.432. And the flow gain Kq is then Chapter 4. Actuator Dynamics 40 given by, Kq = CdW « 0.14 m2/s (4.60) while KqlA m 122.8 /s is the gain from valve spool position (in meter) to the actuator velocity (in m/s). The equivalent gain from the command value of valve opening (in voltage) to the actuator velocity (in m/s) is given by 122.8 X 0.00035 = 0.043 m/s/volt. We derived the dynamic model of the electrohydraulic actuator in this chapter. We then linearized the model and validated it experimentally. Results showed that the linearized actu-ator model and the experimental data fit each other well. This model is the base of the design of link-space controllers. Chapter 5 Control Implementation Chapter 5 gives an overview of the control implementation on the Stewart platform. We in-troduce the layout of our control system first, and then study the design and performance of different types of basic link-space controllers. The pressure-feedback link-space controller is then proposed to ensure the stability of the system, and its performance is studied via both sim-ulation and experiment. The Cartesian-space control of the Stewart platform is also discussed. In the final section, we address the motion drive algorithm. 5.1 Control Layout Our Stewart platform based motion simulator is hydraulically actuated. The hydraulic ac-tuation system includes a hydraulic power supply unit, a fluid distribution system, and six electrohydraulic actuators. The electrical system includes an electrical signal distribution box, a VME-based real-time system running VxWorks, and a workstation serving as user interface. Figure 5.19 shows the whole motion simulator system. To ensure the safety of the motion simulator, a safety system is established, which includes "home" valves, isolation valves, pressure relief valves, motion limit switches, fluid temperature and level switches, a supply pressure transducer, and panic buttons. The safety system does not affect the performance of the simulator. Details of its design can be found in [3]. To simulate a motion using the Stewart platform, we should generate the motion trajectory in the Cartesian-space first. This trajectory can be a pre-planned one from the computer or a real-time one following the signal from the hand-control. The actual lengths of actuators are obtained from sensors through analog to digital converters. Then the control algorithm is 41 Chapter 5. Control Implementation 42 Actuator Chair Hand Controls Distribution System Electrical Box V J Hydraulic Power Supply VME Cage A A A < f ) ( Workstation) - Sparc 5 Board running VxWorks - A/D Converter - D/A Converter - Digital I/O Figure 5.19: Diagram of the Stewart platform based motion simulator performed either in Cartesian-space or link-space, and the command value of valve opening is derived for each actuator. By applying the derived command value to each valve through digital to analog converter, we can control the main-stage spool position of each valve, and hence the flow rate and the actuator length. In the control of Stewart platforms, link-space controllers are generally used because they are relatively easy to design. 5.2 Basic Link-space Control In the link-space control, we should perform the inverse kinematics to convert the Cartesian-space trajectory to the desired lengths of actuators, and then control each actuator individually to follow its desired length. In practice, most commonly used link-space controllers in the Chapter 5. Control Implementation 43 control of hydraulically actuated Stewart platforms are Proportional-Integral-Derivative (PID) controllers and pre-filter controllers. Descriptions of various controllers can be found in [31], [30], and other books on the control of electrohydraulic actuators. 5.2.1 PID controller Proportional gain (P) controller is the simplest approach to the control of electrohydraulic actuator. As we can see in Figure 5.20, the open-loop transfer function of the electrohydraulic actuator is nearly an integrator at low frequencies, i.e. the velocity of the actuator is nearly proportional to the control command value. So, a proportional gain controller with proper loop gain can make the closed-loop system stable. Open-loop frequency response of the actuator. Simulation result. 0 T3 — 1 1 • 1 1 1 1 1 1 1 1 1 1 I I 1 1 1 1 i i i 1 1 1 1 1 i i i i i i 1 1 1 1 1 r - t - 4 - ± J M 1 1 1 1 1 1 1 1 1 1 i i i 1 1 1 1 1 i i I I i i 1 1 1 1 1 1 1 1 1 T T l — 1 1 1 1 1 1 111 1 i i 1 1 1 1 1 1 i i i i i i 1 1 1 1 1 1 1 1 1 1 1 1 1 1 t — L I I 1 1 1 1 i i 1 1 1 1 1 1 i i i i i i 1 1 1 1 1 1 1 1 1 1 1 1 I i i i TTTH—__i i i 1 1 1 1 1 1 I I I I I I 1 1 1 - T _ - | _ T n m T n 1 - - n - | - m n - _ ^ ~ T ~ • - w j T n T r i n r r r r r r i i i i i i 1 1 1 i i i i i i 1 1 1 i i i i n-M-i i i i i i i 1 1 1 i i i i i i 1 1 1 i i i i i i 1 1 1 i i ! i i i 1 1 ! T——k 1 1 1 1 1 1 1 i i i i i i 1 1 1 i i i i i i 1 1 1 i i i i i i i I I i i I \ J i i 1 1 1 i i i i 1 1 1 i i i i i i 1 1 1 i i i i\i i 1 1 1 i i i i i i 1 1 1 i i i i i i 1 1 1 i i i i i i 111 i i i i I X I 1 1 i i i i i i 1 1 1 i i i i i i 1 1 1 i i i i i i 111 1 1 1 1 1 I N I i i i i i i 1 1 1 i i i i i i 1 1 1 i i I I I I 1 1 1 i i i i i i i P K I I I I I I 1 1 1 i i i i i i 1 1 1 i I I I i I 1 1 1 i i i i i i 1 1 1 \ i i i i i i 1 1 1 i i i i i i 1 1 1 i i i i i i 1 1 1 1 1 1 1 1 1 1 1 1 N i 1 1 1 i i i i i i 1 1 1 i i t i i i 1 1 1 i<r1 io° 10' 102 Frequency (Hz) 1 1 ! H 1 1 1 1 1 1 1 1 1 1 1 1 1 ! ; ; 1 1 1 1 1 ! | | 1 1 1 1 1 1 I I I i i 1 1 1 1 1 1 1 1 1 1 1 1 1 i i i 1 1 1 1 1 i i i 1 1 1 1 1 1 I I I i i 1 1 1 1 1 1 1 1 1 1 1 1 i i i 1 1 1 1 1 i — | - 1 1 -LLI I I I i i 1 1 1 1 1 1 1 1 1 1 1 1 1 i i i 1 1 1 1 1 i i i i i iTir*>s, I I I i i 1 1 1 1 - 4 - - 4 - 4 - J - I 4 4 I 4 - - - - i - - 1 - 4 - - M 4 H - - - - i - — 1 — 1 — 1 — 1 -l-l 1 - ( - 1 - 1 4 1 1 1 1 1 1 1 1 1 1 i I | 1 I I 1 1 i i 1 1 1 1 1 1 I \ I 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 i I | 1 1 1 1 1 i i 1 1 1 1 1 1 1 \ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 i I | 1 1 1 1 1 i i 1 1 1 1 1 1 1 l \ l 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 • I | 1 I I 1 1 i i 1 1 1 1 1 1 i i \ . 1 1 1 1 1 1 _ J . _ _ l _ 1 J J J 1 U _ j _ _ l _ J _ _ U - 1 U _ _ _ J _ _ L J _I_LUJLI _ I _ _ L _ I _ V J - U J . I 1 1 1 1 1 1 1 1 1 i I | 1 1 1 1 1 i 1 | 1 1 1 1 1 1 1 1 1 i i r - t j j i 1 1 1 1 1 1 1 1 1 i I | 1 1 1 1 1 1 | 1 1 1 1 1 1 1 1 1 1 1 1 I T T ^ - -1 1 1 1 1 1 1 1 1 i I | 1 1 1 1 1 i 1 | 1 1 1 1 1 1 1 1 1 i i i 1 1 1 1 1 1 1 1 1 1 1 1 i I | 1 1 1 1 1 i | j 1 1 1 1 1 1 1 1 1 i i i 1 1 1 1 1 1 1 1 1 1 1 1 i | | 1 1 1 1 1 i 1 | 1 1 1 1 1 1 1 1 1 i i i 1 1 1 ~ T ~ ~ l ~ T i m T n — — i - - l 1 - ~ r n n — — r ~ l — 1 " r n i T i - i — r _ r r r n T i — 1 1 i i i I I I . i 1 1 i i i • i i • i i I I i 10' 10° 10' 102 Frequency (Hz) Figure 5.20: Linearized open-loop transfer function of the electrohydraulic actuator But variations in the volume of trapped fluid Vo, in the viscous damping coefficient B, and in the effective load inertia M introduce uncertainties in the natural frequency and damping ratio of the hydraulic resonant mode, which is caused by the fluid compressibility. Figure 5.21, Chapter 5. Control Implementation 44 Figure 5.22, and Figure 5.23 show the effects of these uncertainties on open-loop transfer func-tions of the electrohydraulic actuator when Vo, B, and M are varying from 0.5 to 2 times of their original values, respectively. Open-loop frequency response of the actuator, when VO changes Figure 5.21: Effects of variations in VQ from 0.5 to 2 times of its original value Open-loop frequency response of the actuator, when B changes 103 101 Frequency (Hz) 102 j 1 1 1 1 1 I I I i ! ! I 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 _ 1 __ 1 1 _ 1 _l 1 1 1 1 1 1 1 1 1 1 1 1 1 I I ! ! ! |Large B Small B ^ § ^ \ 1 1 i i i i i i r ^ i ^ i i i i i i i i 1 T 1 i r i r n i i i i i i i i i i i i i i i i i i i i i i i i r i r r i i i r l v^^ L 1 1 1 l l 1 1 1 VSS^fc^J 1 1 1 1 1 1 XC^^ ^^ a^LL 1 1 1 t 1 I 1 1 r ~*™m 10* 101 Frequency (Hz) 102 g> -90 Figure 5.22: Effects of variations in B from 0.5 to 2 times of its original value Chapter 5. Control Implementation 45 Open-loop frequency response of the actuator, when M changes o- -180 10 Frequency (Hz) Figure 5.23: Effects of variations in M from 0.5 to 2 times of its original value In addition, we have to consider the nonlinearity and uncertainty of the flow gain which is assumed to be a constant Kq in the simulation. Figure 5.24 shows effects of variations in Vb, B, and M , when they are combined together. Open-loop frequency response of the actuator, when VO, B, and M change -50 Figure 5.24: Effects of variations in Vb, B, and M Chapter 5. Control Implementation 46 All these uncertainties influence the system response and then limit the achievable perfor-mance. To guarantee robustness, we have to design the controller for the worst case condition, that is for the system with the highest flow gain and the highest resonant peak value. This design strategy sacrifices the performance at the low frequencies to provide robustness at high frequencies. The closed-loop system has a slow response due to the conservative loop gain. The loop gain in our design is 200 volt/meter, which means the computer system outputs a control command value of 1 volt for an length error of 1/200 meter. The closed-loop system is stable. Simulation curve of the closed-loop response and some experimental points are compared and shown in Figure 5.25. Closed-loop response of single actuator system with P controller (K=200) 1—i— i —1 IWI i— 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 O 1 1 1 H . 1 1 1 1 I I 1 1 1 1 1 1 1 1 1 1 1 1 L 1 1 1 1 1 1 1 1 1 1 I I I V — 1 1 1 1 1 1 1 1 1 1 1 i i r T - H j j i i i i i i 1111 11  1111 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 i i i i 11 m — — i i i 1 1 1 1 1 1 1 11 1 T \ 1 1 1 1 1 1 1 I I 1 1 1 1 1 N i l 1 1111 1111 1111 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 l\l 1 1111 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \ 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1     1 1 1 1 I I II 1 1 1 1 l \ 1111 T _ r T T r n T ~ i i i i II 11 ] ~ ~ [ ~ [ T r r r _ _ " T ' T T n u n i _ _ n ~ r > i i i i i 1111 i i i i i q~rn t\i 11 i i i i 1111 i i i i 1111 i i i i 1111 i i i i 1111 ! I ! ! ! ! ! ! ! i i i i 11111 i i i i 11111 i i i i i 1111 i i i i i i i i i i 1111 i i i i i i i i i i 1111 i i i i i 1 1 Nl i 11 \ i I I i \ i i i i 1111 i i i i 1 1 1 1 i i i i 11111 i i i i i 1111 i i i i i i i t i i i i i i 111 N i M i m -o S -50 CC (3 -100 10" 10" Frequency (Hz) 10' 10' i i i i - + . i i i i - i _ i i i i i "T" C D •o C O . c • C L -180 •360 -540 1 _ J_1LU1__ 1 1 1 1 1 1 1 1 1 1 1 - 4 -i 1 1 1 1 i 1111 i 1111 i 1111 i 1111 - M 4 t 4 \ 1 1 \ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 l_ _L_ 1 1 1 1 1 1 1 1 1 \ J J i U r s j j i i i m 1 1 1 1 1 1 r i ~ i i 111 i i 111 i i 111 _mn i i i 1 1 1 1 10" 10" Frequency (Hz) 10' 10' Figure 5.25: Comparison of the simulation curve and some experimental points In the ideal case, we assume that all the six actuators have the same dynamic characteristics and move simultaneously. But in the practice, each actuator has slightly different parameters. Also the volume of trapped fluid Vb and the effective load inertia M are different for each Chapter 5. Control Implementation 47 actuator, when actuator lengths are not equal to each other. So the six actuators do not have the same frequency response. Figure 5.26 shows the system response of a 0.5 Hz sinusoidal wave input along the z axis. We plot the the desired actuator lengths and the actual actuator lengths in the link-space. As we can see, there are slight differences in the actual actuator lengths, even though the desired actuator lengths are the same. System response of a 0.5 Hz sine wave along z axis. L ink-space plot 2 521 1 1 i i ' ' i I 0 0.5 1 1.5 2 2.5 3 3.5 4 Time (sec) Figure 5.26: Link-space response of a sinusoidal wave input along the z axis. To check how this differences affect the motion trajectory, we perform the forward kinematics to convert the actuator lengths to the trajectory in the Cartesian-space. Figure 5.27 shows the same system response in the Cartesian-space, where only the translational displacements are plotted. We can see that levels of disturbances in x and y axis are acceptable. But when input frequency increases, the performance becomes worse. Chapter 5. Control Implementation 48 System response in the Cartesian-space (input 0.5Hz, z) ' JS" 1 \ " \ 1 ' 7 ^ ~t S \ ., [_ / / ] \ \ Actual displacement i / / ] « \ \A if j \ \ A t / / 1 \ \ 1 / 1 \ \ f / i v \ l ^- ' i — ^ ;—\r / I \! \ 1 M \ ! \ \ / / / / 1 x \ Desired displacement in z \ \ / 7 / / r L > < / / jl , , 1 1 1 0 0.5 1 1.5 2 2.5 Time (s) Figure 5.27: Cartesian-space response of a sinusoidal wave input along the z axis. The system response in Cartesian-space of a 0.2 Hz sinusoidal wave input along the y axis is shown in Figure 5.28 Figure 5.28: Cartesian-space response of a sinusoidal wave input along the y axis. A proportional derivative (PD) controller KpTjs + Kp can be used to improve the system Chapter 5. Control Implementation 49 response at high frequencies. In the case where the valve response is very fast, i.e. u>e is much larger than u^, we can select the crossing frequency to be near the hydraulic undamped nat-ural frequency LOH and apply the PD controller to introduce a nearly 90 degrees phase lead at that frequency so as to have enough phase margin and to stablize the closed-loop system. Unfortunately, our valve response is not fast enough, compared with hydraulic undamped nat-ural frequency (ue « 1.40;^). The valve dynamics would introduce a substantial phase lag at the crossing frequency and make the closed-loop system unstable. So the PD controller is not applied. For some applications of electrohydraulic actuators, a proportional integrative (PI) con-troller  Kp r>^+ Kp c a n b e u s e d to increase the open-loop gain at low frequencies and to improve the system response. However, the PI controller should be tuned carefully, because the open-loop transfer function then contains a double integrator and can cause serious stability problems. Because the controller stability is critical for the motion simulator system, we prefer only to use a P controller to avoid risks with regard to stability. 5.2.2 Pre-filter controller We now look at a feed-forward compensation controller which is generally used in tracking sys-tems. Figure 5.29 shows a tracking control system with this type of feed-forward compensation controller. m~ B(s) — t O - A Figure 5.29: Block diagram of the tracking control system Chapter 5. Control Implementation 50 The control law is u { s ) = i { s j l d { s ) + C M I M - ^ The steady state closed-loop response can be easily found to be l(s) = ld(s), when C(s) is not equal to — gj^- The feed-forward part of the controller helps to reduce and eliminate the tracking error, while the feedback part keeps the system stable and reduces disturbances. For the high order plant like our electrohydraulic system, which has a 5th order linearized model, it is not reasonable to fully realize the feed-forward controller, i.e. calculate up to 5th order derivatives of the desired trajectories. We can just omit the high order derivatives from the feed-forward, and this will only cause bounded error in tracking [33]. And we select the C(s) to be a constant C equal to the proportional loop gain. Without considering external force, we can rewrite the plant model Equation (4.57) as, L { s ) = ,(v + ^ K V + ^ + i ) ( 5 ' 6 2 ) So B(s) as in Figure 5.29 becomes while A(s) = s(^s2 + ^s + l)(\s2 + + 1) (5.63) Omitting the 3rd, 4th, and 5th order derivatives, we can obtain the control law of the simplified feed-forward compensation controller as •"•9 - 2 6, , 2 e^^  2 ( 1 )S + S k(s) + C(ld(s)-l(s)) (5.64) That is the same as the 2nd order pre-filter controller introduced in [2], which is VDA(s) = Kas2 + Kvs + Kp(ld(s) - l(s)) (5.65) Substituting the values of w^ , £ e , and ue into the above equation and considering the open loop gain of 200, we can obtain the parameters of the pre-filter in Equation(5.65) as Ka = 0.19, Kv = 23.3, and Kp = 200. The stability margins remain the same as of the P controller with loop gain of 200. A simulation curve and some experiment points of the closed-loop frequency response are plotted in Figure 5.30. Comparing the plot to Figure 5.25, we can Chapter 5. Control Implementation 51 50 Comparison of simulation and experiments m •o CD -50 -100 11 11 11 11 11 r r n r i T 11 11 11 11 -e—r rnrr 11 i n 11111 11111 11 i n Ol M I O I I I I I I I III I 1111 I I III I 1111 I T l T l - ' I I 111 I I I I I I I 111 I I 111 i i i I I - © -r r r u i T i " T " 1 M i l l ] i i i II111 I I I I I i i i i I I 1 1 1 I I 1 11 i i i i I I 1 1 1 I I 1 I I t i i i I I 1 1 1 I I 1 I I i i i I I i n r t r m - — r -rrrr - iTrr — T S J I I i i i i I I 111 i i m . i i i i I I 111 i 11 n i i i I I 111 I I i n i i i i 1111 I I i n 1 I I I 1111 ~ r r i " r r — r ~ r i ^ r r i T i T ~ ~ 11111 i 1 1 TH. 1 111 11111 i i i i M S J i I I i I I i 1 1 1 1 11 F N . M i l l i i i i 11111 ^ i i i i 11111 10 10 10 Frequency (Hz) 10' 10° . 1 J J J 1 U I l _ l cu "D CD CO CO JZ -CL -90 •180 -270 i I I 111 i I I 111 i I I 111 i I I 111 - L L U J J J . -I I I I I I I M i l l I I I I I I I I I I I I . L L U L I l . I I I 111 I I I 111 I I I 111 I I I 111 I I I 111 " ~ i - r r n n T " i i i i i i I I 1 1 1 i i i i I I i n i i i i I I i n i i i i I I i n i • n n r m — n I I i _ i n i i r i i I I i i i i I I i i L L L U 1 J . . I I I I I I I I I I I I I I I I I I I I I I I I 1 L U 1 1 . I I I I I I I I I I I I I I I I I I I I I I I I I I r r r i T T i 111 i i i i i 11 i 1 ! i i i i III 1 i i i i 1 iii S I i i i I I i n 1 1 1 1 1 1 I I I | \ j i i I I i n 1 1 1 1 1 1 111 _1_ \ - l - l - l - L U I _ L - L L 1 U J . U . | 1 \ 1 1 I I 1 11 1 \ l I I 1 I I 1 1 1 1 I I I I I | 1 l \ I I 1 1 1 J 1 1 1 I I 1 11 | 1 1 l \ l 1 I I | 1 1 1 1 1 1 11 1 J J J \ U J _ 1 1 1 1 I H I _ _ L J-LLUIU !    I I 1 I N 1 1 1 I I 1 I I | ! ! j ! 111 i 1 1 1 I I 1 I I v L | | | | | | | i 1 1 1 1 1 111 1 lT~r-H-44-U " ~ i - T ~ i ~ n r r r i _ i i 10" 10" 10' Frequency (Hz) 10' 10* Figure 5.30: Closed-loop response of single actuator system with pre-filter controller see that the closed-loop response is much improved. When the desired trajectory is pre-planned, the desired velocity and the desired acceleration are generally available, and we can apply the pre-filter off-line to save the in-loop computation time. The closed-loop response in the time domain is plotted in Figure 5.31, for the input frequency of 1.0 Hz. The response in time domain is not a perfect sinusoidal wave, because there are uncertainty and nonlinearity in the system. The system response changes dramatically when the system parameters change. The appli-cation of such a controller requires a good identification of the system parameters. KA and KV should be finely tuned according to the system parameters. Unfortunately, this is not always the case when we apply the control algorithm. Chapter 5. Control Implementation 52 -2.46 -2.47 -2.48 -2.49 Response of the pre-filter controller (1.0 Hz input) E. N o 0. -2.5 -2.51 -2.52 -2.53 -2.54 I 1 ' '/— i/ 1 / / / ^ ~ * \ : l/ : i/ if i l II il ll if ll ll ll V— 7 II // 1/ II // i 1 i 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 Time (sec) Figure 5.31: Closed-loop response of system with pre-filter controller In the following section, we introduce the pressure-feedback control of electrohydraulic ac-tuators which is an approach similar to the motor-shaft position control of elastic joints. 5.3 Pressure-feedback Link-space Control To achieve better performance, one should be able to increase the loop gain and thus decrease the phase lag while still ensuring stability. As analyzed in the last section, the simple proportional gain controller becomes unstable if the loop gain is too high, because of the hydraulic resonant mode caused by the fluid compressibility. In this section, we introduce a new type of pressure-feedback controller, which can ensure the stability of the system. The performance of such type of controller is studied via simulations and experiments. Chapter 5. Control Implementation 53 5.3.1 Description of the controller It is known that end-point position control of a mass actuated by a motor through a flexible transmission has poor stability robustness, but motor-shaft position control has much better stability robustness. When the motor-shaft position is not directly available, it can be computed by measuring the end-point position and the stress on the motor shaft. A similar approach can be applied to the control of electrohydraulic actuators, where the compressibility of fluid is analogous to the flexibility of transmission, the actuator length is analogous to the end-point position, and cylinder pressure measurement is analogous to the stress measurement on the motor shaft. The measurement of uncompressed fluid trapped in the cylinder rather than the end-point position of the cylinder is used as the feedback signal. It turns out that such a control method is equivalent to a P/PD controller with negative pressure feedback. Its performance is much better as it allows for a much larger position loop gain while keeping the system stable. We revise the actuator model presented in Section 4.1 to provide the access to this new type of controller design. In this approach, Vu, the equivalent uncompressed volume of the fluid trapped between the valve opening and the blind end of the cylinder, is used as an intermediate variable. We rewrite the compressibility equation as in (4.44), (5.66) (5.67) Qc = K( i - (5.68) and when pressure P is a constant value, we have Qc = V. Considering the load forces and viscous frictions, we have, PCA - Psa = Ml + Bl + f (5.69) Chapter 5. Control Implementation 54 Substituting (.5.69) into (5.66) and considering V = A(l-L) (5.70) we can get That is, V = Vu(l - Pc/0) = Vu (l - jj(Psa + Ml + Bl + f)j = A(l - L) (5.71) (V„M_uV£i_(l_L)]+ V^f = K ( , 7 2 ) 1- Psa/A(3 \A2P ' A2f3 v ') 1 A(l - Psa When Vu is constant, i.e. Qc = 0, the actuator behaves like a spring-damper system. When Vu is relatively large and slowly varying, we can consider the actuator model as a spring-damper model with time varying parameters. The uncompressed fluid volume Vu and the external force / are the inputs, while the length (I — L) is the output. The linearized time varying transfer function is L ( S ) ~ - i ^ + ^ + i ( 5 ' 7 3 ) where u>n = A y J i s the undamped natural frequency, £ = \j~$M 1S ^ E damping ratio, Kv = 1~Ps^lAf} is the volume gain, and Kj = is the force gain. This is equivalent to the following spring-damper system: where k = and the other parameters are the same as above. KVVU is the position input and kKjf is the force input to the system. To achieve the performance similar to that of the motor-shaft position control, the mea-surement of uncompressed fluid trapped in the cylinder, Vu, rather than the end-point position of the cylinder, /, is used as the feedback signal. So the hydraulic resonance is avoided. The desired value of Vu is given by, Vud = A(ld - L) (5.74) where ld is the desired actuator length. Chapter 5. Control Implementation 55 I - L Figure 5.32: Equivalent spring-damper system A simple pressure-feedback controller is given by, Xy — I\\ new {Viid Vy) (5.75) Substituting (5.66), (5.70), and (5.3.1) into the above equation and assuming /3 >> Pc, we can then further simplify the control law to be Xv — KnewA.{Jd /) p Pc (5.76) a proportional gain controller with negative pressure feedback. For certain fluid, the range of (5 is generally given. To get the accurate value of /?, one can use parameter identification scheme. In the following sections, we study the performance of this new type of pressure-feedback controller via simulations and experiments. 5.3.2 Simulation results and discussions We use Simulink to do the simulation. The diagram of single actuator system with proportional gain controller is shown in Figure 5.33. When the controller loop gain Kp is too high, the system starts to oscillate. Figure 5.34 shows the oscillation when Kp = 800. Chapter 5. Control Implementation intial length periodical signal »| desired | To Workspace Sum3 © • ! time Clock time Mux1 Mux3 Sum5 \ ^ - ^ Saturation . , Gain3 2-order response " o w r a t e 1/s Ps*a (A'beta - Ps*a) / M Constant2 \ - * \ »(u) Mux F c n Constant3 \-L+\^-1/S1 Sum' < ^ B / M ^ ^ - I Mux f(u) PC Fcn1 Mux1 1/s2 Gain4 actual To Workspace4 Figure 5.33: Single actuator system with proportional controller 1.86 1.84 1.82 1.8 i 1.78 1.76 1.74 1.72 Sine response of the simple proportional gain controller, K = 800 A r\ 1 \\( \ \ h- \ A /1 / J W \ \ tf If / l_J t 1. / / l l \ \ \\ if I / \ \ \\ / f \ \ j \ s j \I 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 Time (sec) Figure 5.34: The sine wave response of P controller, high loop gain Chapter 5. Control Implementation 57 Figure 5.35 shows the diagram of the single actuator system with the pressure-feedback controller. 0—• intial length - • periodical signal desired S u m 3 a/A/fbe^ To Workspace ~~ Vu_d Sum2 G a i n 3 Compensat ion -W t ime Clock t ime f(u) | Fcn7 Vu Sum5 Gains Saturation Mux Mux3 1 / s H 1/s 2 -o rder response f low rate Ps*a (A 'be ta - Ps*a) / M Mux Constant2 f(u) Mux Fen Constant3 1/s 1/S1 S u m ' J 3 / M Gain4 Mux f(u) Pc Fcn1 Mux1 1/s 1/S2 MuxL actual Mux4 To Workspace4 Figure 5.35: Single actuator system with pressure-feedback controller The system response of the pressure feedback controller is similar to that of the proportional gain controller, if the loop gains are the same and are small enough to keep system stable. One of the simulation results is shown in Figure 5.36, when the input is 2.0 Hz, and the loop gain is 200. We can see the significant phase lag. To improve the system performance, we should increase the loop gain. For the proportional gain controller, if we increase the loop gain to 600, the system response will become unstable. But for the pressure-feedback controller, when the loop gain is 1200, the system response is still stable, and the system performance is much improved. See Figure 5.37 for the simulation result. The performance of the proposed pressure-feedback controller is much better than that of a simple proportional gain controller as it allows for a much larger loop gain while keeping the system stable. Chapter 5. Control Implementation 58 Sine response of pressure feedback controller, loop gain is 200 T 1 1 1 1 1 1 r Time (sec) Figure 5.36: Response of single actuator system with pressure-feedback controller Sine response of pressure feedback controller, loop gain is 2000 l 1 1 1 1 1 1 r Time (sec) Figure 5.37: Response of single actuator system with pressure-feedback controller The step responses for different step sizes are plotted in Figure 5.38. For the larger step Chapter 5. Control Implementation 59 Step response ot the simplified pressure feedback controller 1 74 I 1 I I I I I I I I I 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 Time (sec) Figure 5.38: Step response of single actuator system with pressure-feedback controller size, the system reachs the steady state with a slightly larger overshot and a longer time. This is similar to the result when the proportional gain controller is applied. In Figure 5.39, we can observe a small oscillation in the valve opening, which is due to the second order valve dynamics. The frequency of the valve oscillation is according to the natural frequency of the valve dynamics. In our system, the natural frequency of valve dynamics is about 1.4 times of the hydraulic resonant frequency. We can achieve a better performance if a valve with higher natural frequency is used. The pressure-feedback would generate a steady-state tracking error due to the variance in the load/pressure. This effect of load could be compensated using the rigid body dynamic model of the Stewart platform. 5.3.3 Experimental verification The pressure-feedback controller can stabilize the actuator system. Chapter 5. Control Implementation 60 The valve opening in a step response / V 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 Time (sec) Figure 5.39: Valve step response when the pressure-feedback controller is used We have observed dramatic oscillation when we increased the loop gain of the proportional gain controller by 3 times to be 600. But for the pressure-feedback controller, we can increase the loop gain to 1200 while keeping the system stable. The experimental results of a single actuator are shown in Figure 5.40 and Figure 5.41 for the sinusoid input and step input, respectively. The loop-gain selected is 2000, and the closed-loop system has a cut-off frequency of about 15 Hz. Through experiments, we successfully proved that this new type of pressure-feedback con-troller is practically useful. This approach of the pressure-feedback controller design can be applied to the general electrohydraulic actuator control to improve the performance and guar-antee the stability. Chapter 5. Control Implementation 61 Figure 5.40: Sine response when the pressure-feedback controller is used Figure 5.41: Step response when the pressure-feedback controller is used Chapter 5. Control Implementation 62 5.4 Cartesian-space Controller In this section, we discuss the design of Cartesian-space controller. The desired trajectories of the Stewart platform are generally given in Cartesian-space. The feedback signals of the Stewart platform are generally obtained in link-space as actuator lengths/velocities. We can apply the inverse kinematics to derive the desired trajectories in link-space, which can be done off-line in some cases, and use the link-space controller. Or, we can apply the forward kinematics to derive the actual position/orientation of the Stewart platform in Cartesian-space, and use the Cartesian-space controller. The Cartesian-based control schemes perform more computations in the loop and may run at a lower sampling frequency, this is a drawback of using the Cartesian-based methods. Block diagram of a simple Cartesian-space controller is shown in Figure 5.42. The error 5X J 81 Compensator VbA Stewart Platform Dynamics I A Forward < < | Kinematics Figure 5.42: Simple Cartesian-space control block diagram signal in Cartesian-space is transformed to link-space through the Jacobian matrix. When the compensator is the same as that in a link-space controller, the performance of this type of Cartesian-space controller is exactly the same as that of the link-space controller. For the control of the Stewart platform, where forward kinematics require more computation, this type of Cartesian-space controller is not recommended. Another type of Cartesian-space controller makes use of the error signal in Cartesian-space to compute the desired force F in Cartesian-space and then transforms it to r in link-space through the Jacobian matrix, see Figure 5.43. We can also apply the standard computed-torque control laws in Cartesian-space. But this type of controller requires actuators with force output, Chapter 5. Control Implementation 63 8X Compensator F ( J ' ) 1 Stewart Platform Dynamics I A Forward ^ | Kinematics Figure 5.43: Cartesian-space controller such as torque motors. For the electrohydraulic actuators we are using, the actuator dynamics can not be neglected, and the output force can not be controlled directly. So we were not able to apply the Cartesian-space controllers to our Stewart platform. 5.5 Mot ion Drive Algori thm The ability of a motion simulator to produce accurate motion cues is determined by two fac-tors, the physical constraints of the motion system and the characteristics of the motion drive algorithm [24]. As discussed in Section 2.3, our platform has a small motion envelope compared to the real excavator maneuvers being simulated, so it is necessary to modify the data from real excavator maneuvers by using a motion drive algorithm, which is commonly known as wash-out filter. Wash-out filters attempt to generate the most accurate motion cue possible within the phys-ical constraints of the motion system. The inputs to the wash-out filters should be translational accelerations and angular velocities. It is generally agreed that these signals are the elements of motion that are sensed by humans [24]. Classical wash-out filters are presently used by most aircraft simulator manufacturers and are relatively straightforward. Classical wash-out filters employ linear high-pass and low-pass filters along with input scaling and limiting to constrain the simulator motions to be within the capabilities of the motion system hardware. The scaling and filter parameters are fixed and are selected so that the simulator response to a worst case input is adequately constrained. Chapter 5. Control Implementation 64 Diagram of a simple classical wash-out filter is presented in Figure 5.44. • • • • o o Translational acceleration • • D D o o | F1 (s) scaling F2(s) Angular velocity scaling 2+2s+4 HP filter 16 s2+8s+16 LP filter s2+2s+4 HP filter Saturation2 S 2 Tilt Transfer Fen Saturationl rate limit TF1 Sum -H X.Y.Z | Position W psi.the.phi Orientation Figure 5.44: A classical wash-out filter configuration The translational acceleration signal and the angular velocity signal are both scaled and high-pass filtered to make the motion cue remain in the safe workspace of the motion simulator. There is a tilt-coordination channel passing the low-pass filtered translational acceleration to the rotation angles. The low frequency acceleration signals in X and Y direction are simulated by tilting the mobile platform and making use of the gravity to generate similar senses. The above classical wash-out filter only gives a basic idea about the motion cue genera-tion. There are other types of motion drive algorithms, which are more complex and have better performances. There is still considerable opportunity for the improvement of motion cue generation. In this chapter, a high-performance controller using pressure feedback was developed. This controller was studied via both simulation and experiment. It was shown that the pressure-feedback controller can ensure the stability of the system. Experimental results indicated that the frequency response of the Stewart platform using pressure-feedback controller was very good. This intuitive and simple approach could be useful in a wide range of hydraulic applications. Chapter 6 Simulation of Combined Dynamics The purpose of the software simulation is to simulate the response of the Stewart platform on the computer for given controller parameters and a pre-planned trajectory. This can help us study the performances of different types of controllers. To simulate the motion of Stewart platform on the computer, we should combine the actuator dynamics with the rigid body dynamics. 6.1 Combined Dynamics To simplify the derivation, we will not consider the leg dynamics, because the leg dynamics part is more complicated and less important than the mobile platform dynamics part, as discussed in Section 3.2. Then the derivation is basically the same as that in [3]. We rewrite the rigid body dynamics (3.38) as, f=( j* ) D V "Ctr. + E (6.77) where D and E are defined as in (3.39) and (3.40). The actuator dynamics are described by (4.48). We rewrite it for all the six actuators in a single vector, M l M(Cdw^h(Xv6,Pc6)-Ve) _ Bl - f (6.78) where 1 is a six vector of the actuator lengths and f is a six vector of the actuator forces. 65 Chapter 6. Simulation of Combined Dynamics 66 The derivative of (6.77) is given by, f = - ( j T ) _ 1 j r ( j r y - i / b \ / b b' \ D B.p b + E + ( J T) _ 1 D b + D b' + E V ) I OLp bctp / where and D 0 0 o s(V) E = D + D 0 0 0 0 0 I° s T N) J (6.79) (6.80) (6.8i; bap x (bIpbuP) + bcjp x [bup x (V^P) + %baP) The Cartesian-space variables can be expressed in terms of the link-space variables, and vice versa. Detailed derivations can be found in Appendix C. If we express f in terms of link-space variables and substitute it into (6.78), the combined dynamics in link-space can be expressed as 1 = MI + ( J T ) " 1 ^ - 1 ) " ^(Ctw^hiX^P^-V,) + ^(cdWsfih{XV&,PC&)-V&) (_ B + (J R) - 1 J T (J T) _ 1 D - (J T) _ 1 D + 2 (J R) _ 1 DJ" 1 j) J " 1 ! + • ( (J T ) - 1 D - (J T ) _ 1 JT (J T ) _ 1 D - 2 ( J r ) _ 1 DJ" 1 j) J" 1 JJ-M + ( j ^ ^ D J ^ J J -n - f ( J T ) - 1 J T ( J T ) _ 1 E - (J T ) _ 1 E} (6.82) where I is a six by six identity matrix. The combined dynamics are expressed as a set of six coupled, third order differential equations where the inputs are the six valve spool positions Xvi.. .XVQ. The valve position of each actuator is controlled by the command value VDA, and the valve response can be approximately modeled as a second order closed-loop system. So the model of the Stewart platform is a fifth order nonlinear system. Chapter 6. Simulation of Combined Dynamics 67 It is also possible to model the Stewart platform in Cartesian-space, if we express f, 1, and 1 in terms of Cartesian-space variables in (6.78). That model would be useful for the simulation when applying the Cartesian-space controller. We ran some simulations of the closed-loop system using link-space pressure-feedback con-troller. The simulation code was original written by Drexel in the C language [3], and was further modified by the author for the new control structure. The simulation results and the experiment data are compared in the next section. 6.2 Case Studies We compare the simulation results and the experimental results through case studies in this section. The pressure-feedback controller with the loop gain of 1200 is used. Lengths of the six actuators (link-space response) are plotted for each case, with both simulation results and experimental results. The responses in the Cartesian-space are also plotted for the first two cases. In the first case, we oscillate the platform along the x axis with an amplitude of 0.05 meter at 1.0 Hz. The simulation result is shown in Figure 6.45, while the experiment result is shown in Figure 6.46. We also plot the Cartesian-space in Figure 6.47. In the second case, we oscillate the platform about the z axis with an amplitude of 0.02 meter at 1.0 Hz. The simulation result and experiment result are plotted in Figure 6.48 and Figure 6.49, respectively. And the Cartesian-space tracking is shown in Figure 6.50. Please notice that Figure 6.50 shows the displacement along the z axis rather than the actual position variable zp. In the third case, we apply a 0.005 meter step input to the platform's xv coordinate. The results are plotted in Figure 6.51 and Figure 6.52. In the fourth case, we apply a 0.005 radian step input to the platform's <j) coordinate. The results are plotted in Figure 6.53 and Figure 6.54. Chapter 6. Simulation of Combined Dynamics 68 Simulation of an oscillation along x axis 0.4 0.6 0.8 Time (second) Figure 6.45: Case 1: Sine wave response along x axis, simulation Closed- loop response of an oscillation along x axis 2.595 h 2.59 "c 2.585 2.58 2.575 k 2.57 h 2.565 0.4 0.6 0.8 Time (second) Figure 6.46: Case 1: Sine wave response along x axis, experiment Chapter 6. Simulation of Combined Dynamics 69 0.06 0.04 to 0.02 3 E System response in Cartesian space (1.0 hz sine wave along x axis) -0 .04 - 0 . 0 6 '/ N \ if \ \ 1 x \ / x \ \ \ \ \ / / / •'"/ x \ 1 \ \ / v \ \V \\ A A, 1 i l l l <y \\ \\ \\ \\ \\ 1 l l 1 1 A A A A. \\ 11 \ 1 / \ ' \ \ ' \\ \ ' \ .'J 0.5 1 Time (second) 1.5 Figure 6.47: Case 1: Cartesian-space response 2.605 2.6 2.595 2.59 % 2.585 j | 2.58 2.575 2.57 2.565 2.56 Simulation of an oscillation along z axis .'\\ / / // if \\ \\ \\ // /'/ • 1 / 1 / \\ \\ A / / ' il if \\ \\ \' if-11 \ 1 \\ \\ i if if \\ \\ \\ 1 f I 1 \\ \\ \\ '/ // \V \\ / // . // i 0.2 0.4 0.6 0.8 Time (second) Figure 6.48: Case 2: Sine wave response along z axis, simulation Chapter 6. Simulation of Combined Dynamics 70 Closed- loop response of an oscillation along z axis 2.6051 1 1 1 1 S l 1 1 1 1 L 0 0.2 0.4 0.6 0.8 1 Time (second) Figure 6.49: Case 2: Sine wave response along z axis, experiment System response in the Car tes ian-space (sine wave along z axis) 0.0251 1 1 1 Time (second) Figure 6.50: Case 2: Cartesian-space response Chapter 6. Simulation of Combined Dynamics 71 2.605 Simulation of a step along x axis 2.565 Time (second) Figure 6.51: Case 3: Step response of x, simulation 2.605 Closed- loop response of a step along x axis 2.565 Time (second) Figure 6.52: Case 3: Step response of x, experiment Chapter 6. Simulation of Combined Dynamics 72 Simulation of a step on phi angle 2.6, 1 r— 0 0.5 1 1.5 Time (second) Figure 6.53: Case 4: Step response of roll angle, simulation Closed- loop response of a step on phi angle 2.61 1 1 0 0.5 1 1.5 Time (second) Figure 6.54: Case 4: Step response of roll angle, experiment Chapter 7 Conclusion and Future works In this thesis we have presented the modeling, simulation, and control of a hydraulically actu-ated, ceiling-mounted Stewart platform, which is designed to be a motion simulator. The mechanical constraints, singularities, and the length limits of the actuators were studied. A cylindrical workspace where the system is free of mechanical constraints and singularities was obtained for control system development. We applied Newton's method to solve the platform's forward kinematics and concluded that the result would reach the desired value after two iterations in the real-time control. We also presented a derivation of the Stewart platform's complete rigid body dynamics. The derivation was straightforward and the result was relatively simple. We then showed through simulations that the leg dynamics can be neglected in this particular platform design. This simplified the simulation work and real-time control. A model of the electrohydraulic actuator was derived and then linearized for the purpose of simulation and control. The model was validated using experimental data. Results showed that the linearized actuator model and the experimental data fit each other well. This model is the base of the design of link-space controllers. Performance of the proportional gain controller was studied. The system response could be improved by pre-filtering the desired trajectory. To ensure the stability of the system, a pressure-feedback controller was proposed. The study showed that this pressure-feedback controller could stabilize the system, and it improved the system performance by allowing a higher loop gain. This intuitive and simple approach could be useful in a wide range of hydraulics applications. The preliminary experimental results indicated that the frequency 73 Chapter 7. Conclusion and Future works 74 response of our Stewart platform using pressure-feedback control is very good. Some suggestions for further work include the following: • Improve the valve response by applying the closed-loop control based on the valve spool position • Investigate the use of on-line identification to determine the bulk modulus value and therefore the pressure gain • Study the robustness of the proposed pressure-feedback control to measurement errors and experimentally determine the system stability margins • Examine analytically and experimentaUy the effects of leg flexibility and platform rigid-body dynamics on the link-space controllers • Further investigate the possibility of applying Cartesian-space controllers • Develop code for motion drive algorithms and simulate the excavator motion Bibliography [I] D. Stewart,"A Platform with Six Degrees of Freedom," Proceedings of the Institution of Mechanical Engineers, 180(15), 371-386, 1965-1966. [2] S.E. Salcudean et al, "A Six Degree-of-Freedom, Hydraulic, One Person Motion Simulator," Proceedings of the 1994 IEEE International Conference on Robotics and Automation, 2437-2443,1994. [3] P.A. Drexel, "A Six Degree-of-Freedom, Hydraulic, One Person Motion Simulator," Master's thesis, The University of British Columbia, 1992. [4] V.E. Gough, "Contribution to discussion to papers on research in automobile stability and control in tyre performance, by Cornell staff," Proc. Auto. Div. Inst. mech. Engineers, 171, 392-394, 1956-1957. [5] V.E . Gough and S. G. Whitehall, "Universal Tyre Test Machine," Proceedings, Ninth In-ternational Technical Congress FISITA, 117-137, 1962. [6] C C . Nguyen, S.S. Antrazi, Z-L. Zhou, and C.E. Campbell, Jr., "Experimental Study of Mo-tion Control and Trajectory Planning for a Stewart Platform Robot Manipulator," Proceed-ings of the 1991 IEEE International Conference on Robotics and Automation , 1873-1878, 1991. [7] Kevin Cleary and Tatsuo Arai, "A Prototype Parallel Manipulator: Kinematics, Construc-tion, Software, Workspace Results, and Singularity Analysis," Proceedings of the 1991 IEEE International Conference on Robotics and Automation , 566-571, 1991. [8] E.F. Fichter, "Kinematics of a Parallel Connection Manipulator," ASME Design Engineer-ing Technical Conference , Paper Number 84-DET-45, 1984. [9] W.Q.D. Do and D.C.H. Yang, "Inverse Dynamic Analysis and Simulation of a Platform Type of Robot", ASME Design Engineering Technical Conference, Paper Number 86-DET-94, 1986. [10] W.Q.D. Do and D.C.H. Yang, "Inverse Dynamic Analysis and Simulation of a Platform Type of Robot", Journal of Robotic Systems, 5(3), 209-227, 1988. [II] E.F. Fichter, "A Stewart Platform Based Manipulator: General Theory and Practical Construction," International Journal of Robotics Research , 5(2), 157-181, 1986. [12] C. Gosselin, "Determination of the workspace of 6-dof parallel manipulators," Journal of Mechanical Design , 112(3), 331-336, 1990. 75 Bibliography 76 [13] J-P. Merlet, "Trajectory Verification in the Workspace for Parallel Manipulators," The International Journal of Robotics Research, 13(4), 326-333, 1994. [14] K.H. Hunt, Kinematics geometry of mechanisms, Clarendon Press, Oxford, 1978. [15] J-P. Merlet, "Singular Configurations of Parallel Manipulators and Grassmann Geometry" The International Journal of Robotics Research, 8(5), 45-56, 1989. [16] Prabjot Nanua and Kenneth J. Waldron, "Direct Kinematic Solution of a Stewart Plat-form," IEEE Transactions on Robotics and Automation , 431-436, 1989. [17] M. Griffis and J. Duffy, "A Forward Displacement Analysis of a Class of Stewart Plat-forms," Journal of Robotic Systems , 6(6), 703-720, 1989. [18] Carlo Innocenti and Vincenzo Parenti-CasteUi, "Direct Position Analysis of the Stewart Platform Mechanism," Journal of Mechanisms and Machine Theory , 25(6), 611-621, 1990. [19] Zheng Geng, Leonard S. Haynes and Robert L. Carroll, "Direct Forward Kinematic So-lution for General Stewart Platforms," ASME Press Series Robotics and Manufacturing: Recent Trends in Research, Education, and Applications, 3, 11-16, 1990. [20] J.-P. Merlet, "Direct Kinematics and Assembly Modes of Parallel Manipulators," Interna-tional Journal of Robotics Research , 11(2), 150-162, 1992. [21] J.E. Dieudonne et al, "An Actuator Extension Transformation for a Motion Simulator and an Inverse Transformation applying Newton-Raphson's Method," Technical Report D-7067, NASA, 1972. [22] K. Liu, Mick Fitzgerald, Darren M. Dawson, Frank L. Lewis, "Modeling and Control of a Stewart Platform Manipulator," American Society of Mechanical Engineers, Dynamic Systems and Control Division (Publication) DSC v 33, 83-89, 1991. [23] C D . Zhang and S.M. Song, "An Efficient Method for Inverse Dynamics of Manipulators Based on the Virtual Work Principle," Journal of Robotic Systems, 10(5), 605-627, 1993. [24] L.D. Reid and M.A. Nahon, "Response of Airline Pilots to Variations in Flight Simulator Motion Algorithms," Journal of Aircraft, 25(7), 639-646, 1988. [25] K. Liu, F. Lewis, G. Lebret, and D. Taylor, "The Singularities and Dynamics of a Stewart Platform Manipulator," Journal of Intelligent and Robotic Systems, 8, 287-308, 1993. [26] L.C.T. Wang and C C . Chen, "On the Numerical Kinematic Analysis of General Parallel Robotic Manipulators," IEEE Transactions on Robotics and Automation, 9(3), 272-285, 1993 [27] Z. Ji, "Workspace Analysis of Stewrat Platforms via Vertex Space," Journal of Robotic Systems, 11(7), 631-639, 1994. Bibliography 77 [28] H. Pang and M. Shahinpoor, "Inverse Dynamics of a Parallel Manipulator," Journal of Robotic Systems, 11(8), 693-702, 1994. [29] Mark W. Spong and M. Vidyasagar, Robot Dynamics and Control, John Wiley & Sons, New York, 1989. [30] T.J. Viersma, Analysis, Synthesis, and Design of Hydraulic Servo Systems and Pipelines, Elsevier Pubhshing Company, Amsterdam, New York, 1980. [31] H.E. Merritt, Hydraulic Control Systems, Wiley and Sons, New York, 1967. [32] Athanasios Papoulis, Probability, Random Variables, and Stochastic Processes, McGraw-Hill Book Company, New York, 1965. [33] J.-J. E. Slotine and Weiping Li, Applied Nonlinear Control, Prentice-Hall Inc., New Jersey, 1991. Appendix A Derivatives of Jacobian We define the Jacobian matrix of Stewart platform as, 1 = J (A.83) where 1 is the six vector of actuator velocities, J is the platform's six by six Jacobian matrix, 6 v p = bdp is the three vector of the platform's translational velocity and bup is the three vector of the platform's angular velocity. Then, we can get the Jacobian matrix as in Section 2.2 I'A " ( b R / P A + bdp - bbAy (( 6R/p,0 x (bdp - bbA))' 1 = IB l'c I'D I'E lF or, ( 6 R / P F L + bdp - bbB) ((bR/PB) x (bdp - bbB))' ( 6 R / P F + bdp- bbF) T ( ( 6 R / P F ) X ( 6dp - bbFj) : i = j ( 6 d p , 6 R p ) (A.84) (A.85) where the Jacobian matrix depends on the platform's position 6 d p and orientation 6 R P . The first and second derivatives of the Jacobian matrix are also useful for analyzing the platform's overall dynamics. The following are derivations of these derivatives. From (A.84), we can get U 6 R / P i + bdp - hb{ [% - bdp) x ( 6 R/p 8 ) (A.86) 78 Appendix A. Derivatives of Jacobian 79 Using the quotient rule, we take the derivative of (A.86) with respect to time, and get b, u p x ( 6 R / P i ) + 6 V p v p x ( b R / P i ) + - 6 d p ) x (bup x ( 6 R / P i ) ) _ 6 R / P i + 6 d p - 6 b i [ ( b b , - "dp) x ( 6 R / P i ) J h Equation (A.87) can be simplified using (A.86) to give b u p x ( b R / P i ) + bwp b v p x ( 6 R / P t ) + ( b b i - 6 d p ) x (bup x ( 6 R / P i ) ) (A.87) JTii (A.88) Finally, taking the transpose of (A.88), we have an expression for each row of the first derivative of the platform's Jacobian matrix, -i T J i l{ b u v x ( 6 R P P P I ) + 6 v p -bwp x ( 6 R / P j ) + (6b,- - bdp) x (bup x ( 6 R P P P I ) ) J JT = j j ^ d p , R p , v p , &p,i{J — (A.89) To derive the second derivative of the Jacobian matrix we start with (A.88) and use the quotient rule as before, giving b a p x (bRppPi) + b u p x ( 6 C J p x ( 6 R p p P i ) ) + 6 a p -bap x ( 6 R p p P i ) - 2 6 v p x (bwp x ( 6 R p p P i ) ) + [% - bdp) x ( 6 a p x ( 6 R p p P i ) + V x ( 6w px ( b R / P i ) ) ) bcop x ( 6 R p p P i ) + 6 v p bvp x ( b R / P i ) + ( 6b 8- - b d p ) x (bup x ( b R / P i ) ) where 6 a p (three vector) is the translational acceleration of the platform's center of mass, bcxp (three vector) is the angular acceleration of the platform about its center of mass and /; is the acceleration of actuator i. - < (A.90) Appendix A. Derivatives of Jacobian 80 Equation (A.90) is simplified using (A.88) to give J7 = bap x ( 6 R / P i ) + bojp x (bup x ( 6 R p p P l ) ) + 6 a p - 6 a p x ( b R / P i ) - 2 6v p x ( 6 y p x ( 6 R p p P ; ) ) + [ ( bbi - 6d p) x ( 6a p x ( f c R / p , ) + bup x (6wp x ( 6 R / P i ) ) ) 2J • /» J / j (A.91) Finally, taking the transpose of (A.91), we have an expression for each row of the second derivative of the platform's Jacobian matrix J ib j b-rt b b b b j 'f\ i I t i p , - ^ p ? V p , ojp, a p , o j p , t 2 ' , t t ' i — -I T bap x ( b R / p i ) + 6 w p x ( 6 u ; p x (bRpPp8)) + % - 6 a p x ( 6 R p p P i ) - 26Vp x (6u;p x ( 6 R / P ; ) ) + - 2Jt-/,- - J j i (6bt- - bd p) x (6a„ x ( 6 R p p P i ) +  bu;p x ( bup x ( 6 R p P P t ) ) ) - - - - J J J - ^ (A.92) Appendix B Spectral Analysis For a stationary stochastic process x(/), we can write the mean E{x(t)} and autocorrelation R(T) = RXX(T) = E{x(t + r)x*(t)} (B.93) The cross-correlation of two jointly stationary processes is Rxy{r) = E{x(t + r)y*(*)} = R*yx(-r) (B.94) The power spectral density (also called power spectrum) S(u>) or Sxx(u>) of a process x(t) is the Fourier transform of its autocorrelation: /oo R(T)e-juJTdr (B.95) -co Since R(—T) = R*(T), we easily conclude from the above that S(u) is a real function. The cross spectral density Sxy(u) of two process x(t) and y(t) is the Fourier transform of their cross-correlation: /oo Rxy(r)e-^dr = S*yx(u) (B.96) -oo We now study a given linear system with impulse response function h(t). When a process x(t) is applied to the input of this system, the resulting output y(i) is given by, /oo poo x(t - a)h(a)da = / x(a)h(t - a)da (B.97) -oo J—eo The cross-correlation between y(i) and x(i) can then be expressed as Ryx(r) = E{y(t)x*(t — r)}, assuming stationariness /oo x(t - a)x*(t - T)h(a)da} -oo 81 Appendix B. Spectral Analysis 82 /oo E{x(t - a)x*(i - r)}h(a)da -oo /oo - a) - (< - T)]h(a)da -oo /oo Rxx(i~ — a)h(a)da -oo = i M r ) * fc(r) (B.98) Similarly, we can obtain, Ryy(T) = Ryx(r) * h*(-T) (B.99) If x(i) is white noise, i.e. if Rxx{r) = <5(r), and = 0 for t < 0 (real causal system), then, Ryx{r) = h[r) (B.100) and transfer function of the system when s = jto can be expressed as 1 h(t)e-^dt = / Ryx(t)e-jwtdt = Syx(u>) (B.101) 0 J-oo Similarly, we can also obtain, l# O)! 2 = Syy(u) (B.102) By using white noise, which has a evenly distributed power spectral density, as input signal and analyzing the cross spectral density between output signal and input signal of the system, we can get an experimentally estimated transfer function of the system. Appendix C Transformations between Cartesian-space variables and link-space variables In the simulation and control of the Stewart platform, transformations between Cartesian-space variables and link-space variables are generaUy needed. We just summarize these transforma-tions here. The transformation between the platform configuration X and the actuator lengths 1 can be done through inverse/forward kinematics. X = forwardJcinematics(l) (C.103) and 1 = inverse-kinematics^X.) (C.104) And Jacobian matrix J can be derived from the platform configuration. The velocity level transformations are p (C.105) b, P and 1 = J (C.106) And J can be derived as in the previous section. The acceleration level transformations are = J - 1 ! - J - 1 jji (C.107) 83 Appendix C. Transformations between Cartesian-space variables and link-space variables 84 and b 6 1 = 3 + J bup bap (C.108) And J can also be derived as in the previous section. Appendix D Matlab Source Code .1 InvKinematics.m f u n c t i o n [ l e n g t h ] = i n v k i n e m a t i c s ( x , y , z , p s i , t h e , p h . i ) '/, D e f i n e t h e sys tem p a r a m e t e r s gammapl = 5 3 . 4 5 ; */, u n i t i n d e g r e e gammap = [gammapl ,120-gammapl , 120+gammapl, - 1 2 0 - g a m m a p l , - 1 2 0 + g a m m a p l , - g a m m a p l ] ; gammabl = 7 . 7 5 ; '/, u n i t i n degree gammab = [gammabl ,120-gammabl , 120+gammabl, - 1 2 0 - g a m m a b l , - 1 2 0 + g a m m a b l , - g a m m a b l ] ; r p = 0 . 6 6 8 r b = 1.133 hp = 0 . 2 0 3 '/, r a d i u s o f p l a t f o r m , i n m e t e r '/, r a d i u s o f b a s e , i n m e t e r '/, p l a t f o r m n o m i n a l h e i g h t , i n m e t e r s p s i = s i n ( p s i * p i / 1 8 0 ) c p s i = c o s ( p s i * p i / 1 8 0 ) s t h e = s i n ( t h e * p i / 1 8 0 ) c t h e = c o s ( t h e * p i / 1 8 0 ) s p h i = s i n ( p h i * p i / 1 8 0 ) c p h i = c o s ( p h i * p i / 1 8 0 ) '/, r o t a t i o n m a t r i x R b R p ( l . l ) = c p h i * c t h e ; b R p ( l , 2 ) = - s p h i * c p s i + c p h i * s t h e * s p s i ; b R p ( l , 3 ) = s p h i * s p s i + c p h i * s t h e * c p s i ; b R p ( 2 , l ) = s p h i * c t h e ; b R p ( 2 , 2 ) = c p h i * c p s i + s p h i * s t h e * s p s i ; b R p ( 2 , 3 ) = - c p h i * s p s i + s p h i * s t h e * c p s i ; b R p ( 3 , l ) = - s t h e ; b R p ( 3 , 2 ) = c t h e * s p s i ; b R p ( 3 , 3 ) = c t h e * c p s i ; '/. f i x e d v e c t o r o f pp p p ( l , : ) = r p * c o s ( g a m m a p * p i / 1 8 0 ) ; p p ( 2 , : ) = r p * s i n ( g a m m a p * p i / 1 8 0 ) ; p p ( 3 , : ) = [ h p / 2 , h p / 2 , h p / 2 , h p / 2 , h p / 2 , h p / 2 ] ; 85 Appendix D. Matlab Source Code 86 '/, f i x e d v e c t o r o f bb b b ( l , : ) = r b * c o s ( g a m m a b * p i / 1 8 0 ) ; b b ( 2 , : ) = r b * s i n ( g a m m a b * p i / 1 8 0 ) ; b b ( 3 , : ) = CO, 0 , 0 , 0 , 0 , 0 ] ; */. bdp bdp = [ x , y , z ] ' ; bDp = [ b d p , b d p , b d p , b d p , b d p , b d p ] ; '/, a c t u a t o r v e c t o r bA = bRp*pp +bDp - b b ; f o r i = 1 : 6 , l e n g t h ( i ) = n o r m ( b A ( : , i ) ) ; end D.2 F w d K i n e m a t i c s . m '/, System p a r a m e t e r s gammapl = 5 3 . 4 5 ; gammap = [gammapl ,120-gammapi , 120+gammapl, - 1 2 0 - g a m m a p l , - 1 2 0 + g a m m a p l , - g a m m a p l ] ; gammabl = 7 . 7 5 ; gammab = [gammabl ,120-gammabl , 120+gammabl, -120-gammab l , -120+gammab l , -gammab l ] ; r p = 0 . 6 6 8 ; r b = 1 .133 ; hp = 0 . 2 0 3 ; p p ( l , : ) = r p * c o s ( g a m m a p * p i / 1 8 0 ) ; p p ( 2 , : ) = r p * s i n ( g a m m a p * p i / 1 8 0 ) ; p p ( 3 , : ) = [ h p / 2 , h p / 2 , h p / 2 , h p / 2 , h p / 2 , h p / 2 ] ; b b ( l , : ) = r b * c o s ( g a m m a b * p i / 1 8 0 ) ; b b ( 2 , : ) = r b * s i n ( g a m m a b * p i / 1 8 0 ) ; b b ( 3 , : ) = [ 0 , 0 , 0 , 0 , 0 , 0 ] ; '/, E s t i m a t e d v a l u e o f C a r t e s i a n space v a r i a b l e s Assumed = [ 0 0 - 2 . 5 0 0 0 ] ; Assumedp = A s s u m e d ' ; '/, Number o f measured p o i n t s e n d i i = 8 0 ; F i n a l p = z e r o s ( e n d i i , 6 ) ; f o r i i = l : e n d i i , '/, Measured a c t u a t o r l e n g t h s G i v e n l = [ c u r r L e n g t h A ( i i , 1 ) , c u r r L e n g t h B ( i i , 1 ) , c u r r L e n g t h C ( i i , 1 ) , Appendix D. Matlab Source Code 87 currLengthD(ii,1), currLengthE(ii,1), currLengthF(ii,1) ] ; '/.Givenl = [ desLengthA(ii,1), desLengthB(ii, 1), desLengthC(ii, 1), '/. desLengthD(ii, 1), desLengthE(ii, 1), desLengthF(ii, 1) ]; fo r i r r =1:2, x = Assumedp(l); y = Assumedp(2); z = Assumedp(3); p s i = Assumedp(4); the = Assumedp(5); phi = Assumedp(6); sp s i = s i n ( p s i ) ; c p s i = cos(psi); sthe = sin(the); cthe = cos(the); sphi = s i n ( p h i ) ; cphi = cos(phi); '/, Rotation matrix bRp(l.l) = cphi * cthe; bRp(l,2) = -sphi * cpsi + cphi * sthe * sp s i ; bRp(l,3) = sphi * s p s i + cphi * sthe * cpsi ; bRp(2,l) = sphi * cthe; bRp(2,2) = cphi * cp s i + sphi * sthe * sp s i ; bRp(2,3) = -cphi * s p s i + sphi * sthe * cpsi ; bRp(3,l) = -sthe; bRp(3,2) = cthe * sp s i ; bRp(3,3) = cthe * cp s i ; bdp = [x,y,z] '; bDp = [bdp,bdp,bdp,bdp,bdp,bdp]; '/, Inverse kinematics of estimated Cartesian space variables bA = bRp*pp + bDp - bb; fo r i = 1:6, length( i ) = norm(bA(:,i)); end B ( l , l ) = cthe * B(l,2) = -sphi; B(l,3) = 0; B(2,l) = cthe * B(2,2) = cphi; B(2,3) = 0; B(3,l) = -sthe; B(3,2) = 0; B(3,3) = i ; '/, Jacobian f o r i = 1:6, J ( i , : ) = [ ( bRp*pp(:,i) + bdp - bb(:,i) )' ... (cross( bRp*pp(:,i), bdp-bb(:,i) ) ) ' ] / length ( i ) end; Appendix D. Matlab Source Code 88 '/, Forward kinematics Assumedp = Assumedp - inv( J * [eye(3) zeros(3,3) ; zeros(3,3) B ] ) * ... (length' - Givenl'); end '/. Result of one measured point F i n a l p ( i i , : ) = Assumedp'; end f i g u r e ; t=0:0.005:endii*0.005-0.005; p l o t ( t ' , F i n a l p ) ; D.3 Singularities.m function [SVRb,SVRp] = singu(x,y,z,psi,the,phi) '/. System parameters gammapl = 53.45; gammap = [gammapl,120-gammapl, 120+gammapl, -120-gammapl,-120+gammapl,-gammapl] ; gammabl = 7.75; gammab = [gammabl,120-gammabl, 120+gammabl, -120-gammabl,-120+gammabl,-gammabl] ; alphap = [0, 120, 120, -120, -120, 0]; betab = [60,60,180,180,-60,-60]; '/. U-joint angles j o i n t b = -45; Jointb = [ j o i n t b , j o i n t b , j o i n t b , j o i n t b , j o i n t b , j o i n t b ] ; j o i n t p = 45; */,45 f o r chair, 30 f o r t r i a n g l e . Jointp = [ j o i n t p , j o i n t p , j o i n t p , j o i n t p , j o i n t p , j o i n t p ] ; rp = 0.668; rb = 1.133; hp = 0.203; sp s i = sin(psi*pi/180); cpsi = cos(psi*pi/180); sthe = sin(the*pi/180); cthe = cos(the*pi/180); sphi = sin(phi*pi/180); cphi = cos(phi*pi/180); bRp(l,l) = cphi * cthe; bRp(l,2) = -sphi * cp s i + cphi * sthe * sp s i ; bRp(l,3) = sphi * spsi + cphi * sthe * cpsi ; bRp(2,l) = sphi * cthe; Appendix D. Matlab Source Code 89 bRp(2,2) = cphi * cpsi + sphi * sthe * spsi; bRp(2,3) = -cphi * spsi + sphi * sthe * cpsi; bRp(3,l) = -sthe; bRp(3,2) = cthe * spsi; bRp(3,3) = cthe * cpsi; ) = rp*cos(gammap*pi/180); ) = rp*sin(gammap*pi/180); ) = [hp/2,hp/2,hp/2,hp/2,hp/2,hp/2] ; ) = rb*cos(gammab*pi/180); ) = rb*sin(gammab*pi/180); ) = [0, 0, 0, 0, 0, 0]; pp(l, pp(2, pp(3, bb(l, bb(2, bb(3, bdp = bDp = [x, y, z] ' ; [bdp,bdp,bdp,bdp,bdp,bdp]; bA = bRp*pp +bDp - bb; '/, axis vectors of the upper U-joints bU(l, bU(2, bU(3, ) = rb*cos(betab*pi/180); ) = rb*sin(betab*pi/180); ) = rb*tan(Jointb*pi/180); '/, axis vectors of the lower U-joints pL(l, pL(2, pL(3, ) = rp*cos(alphap*pi/180) ) = rp*sin(alphap*pi/180) ) = rp*tan(Jointp*pi/180) bL = bRp*pL; '/, Singularity Value Ratios, unit in 1/rad. '/, SVR > 5 is according to angle < 11.5 degree. SVRb(l) = 1 / acos ( ( bU( ,l)/norm(bU( ,D) : > * < bA( , l)/norm(bA( ,D) ) SVRb(2) = 1 / acos ( ( bU( ,2)/norm(bU( ,2)) : > * < bA( ,2)/norm(bA( ,2)) ) SVRb(3) = 1 / acos ( ( bU( ,3)/norm(bU( ,3)) : > * [ bA( ,3)/norm(bA( ,3)) ) SVRb(4) = 1 / acos ( ( bU( ,4)/norm(bU( ,4)) : > * [ bA( ,4)/norm(bA( ,4)) ) SVRb(5) = 1 / acos ( ( bU( ,5)/norm(bU( ,5)) : > * [ bA( ,5)/norm(bA( ,5)) ) SVRb(6) = 1 / acos( ( bU( ,6)/norm(bU( ,6)) ; > * < bA( ,6)/norm(bA( ,6)) ) SVRp(l) = 1 / acos( ( bL(:,l)/norm(bL(:,1) SVRp(2) = 1 / acos( ( bL(:,2)/norm(bL(:,2) SVRp(3) = 1 / acos( ( bL(:,3)/norm(bL(:,3) SVRp(4) = 1 / acos( ( bL(:,4)/norm(bL(:,4) SVRp(5) = 1 / acos( ( bL(:,5)/norm(bL(:,5) SVRp(6) = 1 / acos( ( bL(:,6)/norm(bL(:,6) -bA(:,l)/norm(bA(:,1)) -bA(:,2)/norm(bA(:,2)) -bA(:,3)/norm(bA(: ,3)) -bA(:,4)/norm(bA(:,4)) -bA(:,5)/norm(bA(:,5)) -bA(:,6)/norm(bA(:,6)) Appendix D. Matlab Source Code 90 D.4 Dynamics.m '/, C a r t e s i a n space v a r i a b l e s x = 0 ; y = 0 ; z = - 2 . 5 ; d o t x = 0 ; d o t y = 0 ; d o t z = 0 ; d d o t x = 0 ; d d o t y = 0 ; d d o t z = 0 ; p s i = 0 ; t h e = 0 ; p h i = 0 ; d o t p s i = 0 ; d o t t h e = 0 ; d o t p h i = 0 ; d d o t p s i = 0 ; d d o t t h e = 0 ; d d o t p h i = 0 ; f o r j j = 0 : 0 . 0 1 : 0 . 3 ; */, a c c e l e r a t i o n i n y d i r e c t i o n ' / .ddoty = 9 . 8 ; ' / .doty = j j * 9 . 8 ; */.y = 0 . 5 * j j ~ 2 * 9 . 8 ; '/, a c c e l e r a t i o n i n x d i r e c t i o n ' / .ddotx = 9 . 8 ; ' / .dotx = j j * 9 . 8 ; */.x = 0 . 5 * j j ~ 2 * 9 . 8 ; www=40; a a a = 0 . 0 1 ; x = a a a * s i n ( j j * w w w ) ; d o t x = a a a * w w w * c o s ( j j * w w w ) ; d d o t x = - a a a * w w w * w w w * s i n ( j j * w w w ) ; '/. s i n u s o i d a l t h e a n g l e * / , t he=aaa*s in ( j j * w w w ) ; ' / ,dot the= a a a * w w w * c o s ( j j * w w w ) ; ' / ,ddotthe=-aaa*www*www*s i n ( j j *www); s w i t c h = 0 ; '/, C a l l t h e Dynamics f u n c t i o n w i t h o u t c o n s i d e r i n g l e g dynamics F = D y n a m i c s ( d d o t x , d d o t y , d d o t z , d d o t p s i , d d o t t h e , d d o t p h i , . . . d o t x , d o t y , d o t z , d o t p s i , d o t t h e , d o t p h i , x , y , z , p s i , t h e , p h i , s w i t c h ) ; f o r c e d , j j * 1 0 0 + l ) = F ( l ) ; f o r c e ( 2 , j j * 1 0 0 + l ) = F ( 2 ) ; f o r c e ( 3 , j j * 1 0 0 + l ) = F ( 3 ) ; f o r c e ( 4 , j j * 1 0 0 + l ) = F ( 4 ) ; Appendix D. M&tlab Source Code 91 f o r c e ( 5 , j j * 1 0 0 + l ) = F ( 5 ) ; f o r c e ( 6 , j j * 1 0 0 + l ) = F ( 6 ) ; s w i t c h = l ; '/, C a l l t h e Dynamics f u n c t i o n w i t h c o n s i d e r i n g l e g dynamics F = D y n a m i c s ( d d o t x , d d o t y , d d o t z , d d o t p s i . d d o t t h e . d d o t p h i , . . . d o t x , d o t y , d o t z , d o t p s i , d o t t h e , d o t p h i , x , y , z , p s i , t h e , p h i . s w i t c h ) ; f o r c e l e g d , j j * 1 0 0 + l ) = F ( l ) ; f o r c e l e g ( 2 , j j * 1 0 0 + l ) = F ( 2 ) ; f o r c e l e g ( 3 , j j * 1 0 0 + l ) = F ( 3 ) ; f o r c e l e g ( 4 , j j * 1 0 0 + l ) = F ( 4 ) ; f o r c e l e g ( 5 , j j * 1 0 0 + l ) = F ( 5 ) ; f o r c e l e g ( 6 , j j * 1 0 0 + l ) = F ( 6 ) ; end ; '/, P l o t t h e r e q u i r e d a c t u a t o r f o r c e s f o r b o t h cases f i g u r e ; h o l d o n ; p l o t ( 0 : 0 . 0 i : 0 . 3 , f o r c e ( l , : ) , ' y o ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e ( 2 , : ) , ' w — ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e ( 3 , : ) , ' g x ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e ( 4 , : ) , ' r : ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e ( 5 , : ) , ' c - ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e ( 6 , : ) , ' m - . ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e l e g ( l , : ) , ' y o ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e l e g ( 2 , : ) , ' w — ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e l e g ( 3 , : ) , ' g x ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e l e g ( 4 , : ) , ' r : ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e l e g ( 5 , : ) , ' c - ' ) ; p l o t ( 0 : 0 . 0 1 : 0 . 3 , f o r c e l e g ( 6 , : ) , ' m - . ' ) ; l e g e n d ( ' A c t u a t o r A ' , ' A c t u a t o r B ' , ' A c t u a t o r C , ' A c t u a t o r D ' , . . . ' A c t u a t o r E ' , ' A c t u a t o r F ' , - 1 ) f u n c t i o n [ F ] = D y n a m i c s ( d d o t x , d d o t y , d d o t z , d d o t p s i , d d o t t h e , d d o t p h i , . . . d o t x , d o t y , d o t z , d o t p s i , d o t t h e , d o t p h i , x , y , z , p s i , t h e , p h i , s w i t ch) '/. System p a r a m e t e r s gammapl = 5 3 . 4 5 ; gammap = [gammapl ,120-gammapl , 120+gammapl, - 1 2 0 - g a m m a p l , - 1 2 0 + g a m m a p l , - g a m m a p l ] ; gammabl = 7 . 7 5 ; gammab = [gammabl ,120-gammabl , 120+gammabl, - 1 2 0 - g a m m a b l , - 1 2 0 + g a m m a b l , - g a m m a b l ] ; a l p h a p = [ 0 , 120 , 120, - 1 2 0 , - 1 2 0 , 0 ] ; b e t a b = [ 6 0 , 6 0 , 1 8 0 , 1 8 0 , - 6 0 , - 6 0 ] ; Appendix D. Matlab Source Code 92 r p = 0 . 6 6 8 r b = 1.133 hp = 0 . 2 0 3 g = 9 . 8 ; '/, g a c c e l e r a t i o n '/, s w i t c h =1 o r =0 l o r w i t h o r w i t h o u t c o n s i d e r i n g l e g s ; m l e g = 1 5 * s w i t c h ; m l = m l e g * 0 . 2 ; */. mass o f l o w e r p a r t o f l e g mu = m l e g * 0 . 8 ; '/, mass o f u p p e r p a r t o f l e g l u = 0 . 4 ; '/, d i s t a n c e be tween u p p e r c e n t e r and c o n n e c t i o n 11 = 0 . 8 ; '/, d i s t a n c e be tween l o w e r c e n t e r and c o n n e c t i o n 7, assume t h e l o a d t o be 250 k g m p l a t f o r m = 2 5 0 . 0 ; p i p = m p l a t f o r m * [ 0 . 6 * 2 / 4 + 1 . 0 - 2 / 1 2 0 0 ; 0 0 . 6 * 2 / 4 + 1 . 0 - 2 / 1 2 0 ; 0 0 0 . 6 " 2 / 2 ] ; '/, v e l o c i t y bVp = [ d o t x ; d o t y ; d o t z ] ; '/, a c c e l e r a t i o n bACCp = [ d d o t x ; d d o t y ; d d o t z ] ; s p s i = s i n ( p s i * p i / 1 8 0 ) c p s i = c o s ( p s i * p i / 1 8 0 ) s t h e = s i n ( t h e * p i / 1 8 0 ) c t h e = c o s ( t h e * p i / 1 8 0 ) s p h i = s i n ( p h i * p i / 1 8 0 ) c p h i = c o s ( p h i * p i / 1 8 0 ) b R p ( l . l ) = c p h i * c t h e ; b R p ( l , 2 ) = - s p h i * c p s i + c p h i * s t h e * s p s i ; b R p ( l , 3 ) = s p h i * s p s i + c p h i * s t h e * c p s i ; b R p ( 2 , l ) = s p h i * c t h e ; b R p ( 2 , 2 ) = c p h i * c p s i + s p h i * s t h e * s p s i ; b R p ( 2 , 3 ) = - c p h i * s p s i + s p h i * s t h e * c p s i ; b R p ( 3 , l ) = - s t h e ; b R p ( 3 , 2 ) = c t h e * s p s i ; b R p ( 3 , 3 ) = c t h e * c p s i ; p p ( l , : ) = r p * c o s ( g a m m a p * p i / 1 8 0 ) ; p p ( 2 , : ) = r p * s i n ( g a m m a p * p i / 1 8 0 ) ; p p ( 3 , : ) = [ h p / 2 , h p / 2 , h p / 2 , h p / 2 , h p / 2 , h p / 2 ] ; b b ( l , : ) = r b * c o s ( g a m m a b * p i / 1 8 0 ) ; b b ( 2 , : ) = r b * s i n ( g a m m a b * p i / 1 8 0 ) ; Appendix D. Matlab Source Code 93 b b ( 3 , : ) = [ 0 , 0 , 0 , 0 , 0 , 0 ] ; bdp = [ x , y , z ] ' ; bDp = [ b d p , b d p , b d p , b d p , b d p , b d p ] ; bA = bRp*pp + bDp - b b ; '/, i n e r t i a I u i = m u * ( 2 * l u ) ~ 2 / 3 ; B ( i . i ) = c t h e * c p h i B ( l , 2 ) = - s p h i ; B ( l , 3 ) = 0 ; B ( 2 , l ) = c t h e * s p h i B ( 2 , 2 ) = c p h i ; B ( 2 , 3 ) = 0 ; B ( 3 , l ) = - s t h e ; B ( 3 , 2 ) = 0 ; B ( 3 , 3 ) = l ; '/. a n g u l a r v e l o c i t y bWp = B * [ d o t p s i ; d o t t h e ; d o t p h i ] ; d o t B ( l . l ) = - s t h e * c p h i * d o t t h e - c t h e * s p h i * d o t p h i ; d o t B ( l , 2 ) = - c p h i * d o t p h i ; d o t B ( l , 3 ) = 0 ; d o t B ( 2 , l ) = - s t h e * s p h i * d o t t h e + c t h e * c p h i * d o t p h i ; d o t B ( 2 , 2 ) = - s p h i * d o t p h i ; d o t B ( 2 , 3 ) = 0 ; d o t B ( 3 , l ) = - c t h e * d o t t h e ; d o t B ( 3 , 2 ) = 0 ; d o t B ( 3 , 3 ) = 0 ; '/, a n g u l a r a c c e l e r a t i o n b a l p h a p = d o t B * [ d o t p s i ; d o t t h e ; d o t p h i ] + B * [ d d o t p s i ; d d o t t h e ; d d o t p h i ] ; l o r i = l : 6 , '/, l e n g t h o f l e g s l l e g = n o r m ( b A ( : , i ) ) ; '/, C a l c u l a t i o n s o f v a r i a b l e s as shown i n dynamic e q u a t i o n s d o t b A ( : , i ) = c r o s s ( bWp, b R p * p p ( : , i ) ) + bVp; d d o t b A ( : , i ) = c r o s s ( b a l p h a p , b R p * p p ( : , i ) ) + . . . c r o s s ( b W p , c r o s s ( b W p , b R p * p p ( : , i ) ) ) + bACCp; d o t l l e g = ( b A ( : , i ) ' * d o t b A ( : , i ) ) / l l e g ; Appendix D. Matlab Source Code '/.Ili(i) = ml*( lleg-2 + (ll e g - 2 * l l ) * l l e g + (lleg-2*ll) ' 2 )/3; I l i ( i ) = ml*( 3*lleg*2 + (2*11)*2 - 3*(2*ll)*lleg )/3; d o t l l i ( i ) = ml * (2*lleg-(2*ll)) * dotlleg; bWi(:,i) = cross( bA(:,i), dotbA(:,i) ) / (norm(bA(:,i))*norm(bA(:,i))); t i = cross( bA(:,i), [eye(3), cross(eye(3), bRp*pp(:,i)) ] ) ... / (norm(bA(:,i))*norm(bA(:,i))); balphai =( ( bA(:,i)'*bA(:,i) )*( cross(bA(:,i), ddotbA(:,i)) ) ... - 2*( bA(:,i)'*dotbA(:,i) )*( cross(bA(:,i), dotbA(:,i)) ) )... / norm(bA(:,i))*4; bTAUi = ( I l i ( i ) + Iui) * balphai + d o t l l i ( i ) * bWi(:,i); titimesbTAUi(:,i) = ti'*bTAUi; h i l = (ll/norm(bA(:,i))~3)*bA(:,i)*bA(:,i)'*[eye(3), cross(eye(3), ... bRp*pp(:,i))] + ( (norm(bA(:,i)) - ll)/norm(bA(:,i)) )* ... [eye(3), cross(eye(3), bRp*pp(:,i)) ]; hiu = (-lu/norm(bA(:,i))~3)*bA(:,i)*bA(:,i)'*[eye(3), cross(eye(3) , ... bRp*pp(:,i)) ] + ( (lu)/norm(bA(:,i)) )* ... [eye(3), cross(eye(3), bRp*pp(:,i)) ]; hmg(:,i) = hil'*ml*[0, 0, -g]' + hiu'*mu*[0, 0, -g] '; end; blp = bRp * pip * bRp'; bFp = mplatform * bACCp; bFp = bFp - mplatform * [0, 0, -g] '; bTAUp = blp * balphap + cross(bWp, (bIp*bWp)); */, Platform dynamics for i=l:6, Jt(:,i) = [ ( bRp*pp(:,i) + bdp - bb(:,i) ); cross( bRp*pp(:,i), ... bdp-bb(:,i) ) ] / norm(bA(:,i)) ; end; '/. The required actuator forces for certain trajectory F = inv(Jt)*([bFp; bTAUp]+titimesbTAUi*[1;1;1;1;1;1] - hmg*[1;i;1;1;1;1]); 

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.831.1-0065196/manifest

Comment

Related Items