REAL-TIME IMPLEMENTATION OF ADAPTIVE CONTROL OFINDUSTRIAL ROBOTSByYUCHEN ZHOUB.A.Sc. Jiangsu Institute of Technology, 1982M.A.Sc. Beijing University of Aeronautics and Astronautics, 1987A THESIS SUBMITTED IN PARTIAL FULFILLMENT OFTHE REQUIREMENTS FOR THE DEGREE OFMASTER OF APPLIED SCIENCEinTHE FACULTY OF GRADUATE STUDIESDEPARTMENT OF MECHANICAL ENGINEERINGWe accept this thesis as conforming to the required standardi.,.THE UNIVERSITY OF BRITISH COLUMBIAJuly 1994© YUCHEN ZHOU, 1994In presenting this thesis in partial fulfilment of the requirements for an advanced degree at theUniversity of British Columbia, I agree that the Library shall make it freely available for reference and study. I further agree that permission for extensive copying of this thesis for scholarlypurposes may be granted by the head of my department or by his or her representatives. Itis understood that copying or publication of this thesis for financial gain shall not be allowedwithout my written permission.SignatureDepartment of Mechanical EngineeringThe University of British ColumbiaVancouver, CanadaDateAbstractA robot working in an industrial environment has some uncertainties in its dynamics and issubject to some external disturbances. Application of adaptive control to the robot is intendedto tolerate these uncertainties and disturbances by letting the robot system learn and improveits performance as it operates.Usually, adaptive control algorithms assume that the control torque can be generated asdesired. Since most of industrial robots are actuated by electrical DC motors, this assumptionneglects actuator dynamics. In fact, the behavior of the actuators (DC motors) is governedby a third order differential equation, and sometimes the actuator dynamics will dominate therobot dynamics. Very few experiments have been reported on the adaptive control of robotsincorporating actuator dynamics. Development, stability analysis and implementation of anadaptive control scheme that incorporates actuator dynamics is the core of this thesis research.To evaluate adaptive control and to compare its performance with other control schemesthrough real-time implementation, a robot testbed is developed by retrofitting an industrialrobot with a custom-built controller. The testbed features an open hardware architecture, highcomputational capacity and good software programmability. The development of the testbedis also an essential part of the thesis research.The adaptive control scheme incorporating actuator dynamics is implemented on this testbed.The effects of the actuator dynamics are studied. Experiments show that the performance ofthe robot, with the adaptive control scheme, is significantly improved when compensated forthe actuator dynamics. The comparison between the proposed control scheme and the conventional joint PD controller shows that application of adaptive control to an industrial robot cansignificantly improve the performance of the robot with minimal extra cost.11Table of ContentsAbstract iiList of Tables VList of Figures viAcknowledgement vii1 Introduction 11.1 Background 11.2 Scope of the Work 31.3 Thesis Organization 52 Robot Control 62.1 PD Control 72.2 PD Controller with Partial Compensation 92.3 Fixed Nonlinear Compensator 102.4 Variable Structure Control 112.5 Adaptive Control via Linear Parameterization 132.6 Learning Control 152.7 Inteffigent Control 163 Adaptive Control Incorporating Actuator Dynamics 183.1 Actuator Dynamics 191113.2 . 203.3 . 223.4 243.5 294An 334.1 334.2 344.3 354.4 375 Experiments5.1 Estimation of Actuator Parameters5.2 Implementation of Adaptive Control5.3 Comparison of Adaptive Control to PD Control6 Conclusion 59Bibliography 60Appendices 62.1 List of C Functions.2 A Template Test FileRobot-actuator DynamicsAdaptive Control Incorporating Actuator DynamicsStability of Proposed SchemeActuator Parameter EstimationOpen Architecture Robot TestbedMotivations and Design ConsiderationsPUMA Robot and VAL ControllerHardware Description of the TestbedSoftware Support to the Testbed404047566270ivList of Tables5.1 Experiment Parameters for Actuator Parameter Estimation 415.2 Inertia Parameters of PUMA Shoulder-Elbow Dynamics 475.3 Experiment Parameters for Implementing Adaptive Control 48VList of Figures3.1 Experiment of Actuator Parameters Estimation on PUMA Robot 294.1 PUMA robot system . 354.2 Block diagram of PUMA controller 364.3 The block diagram of the control system 385.1 Tracking of the Joint 425.2 Estimation of the Equivalent Inertia 435.3 Estimation of the Equivalent Electro-Mechanical Damping Constant 445.4 Estimation of the Equivalent External Torque 455.5 Control Signal for Parameter Estimation 465.6 Adaptive Control Experiment of PUMA Robot Arm 475.7 Joint 2 Trajectories under the Adaptive Controller 505.8 Joint 3 Trajectories under the Adaptive Controller 515.9 Joint 2 Control Signal 525.10 Joint 3 Control Signal 535.11 Joint 2 Tracking with under Compensation of Damping Effect 545.12 Joint 2 Tracking with over Compensation of Damping Effect 555.13 Joint 2 Trajectories under PD Controller 575.14 Joint 3 Trajectories under PD Controller 58viAcknowledgementI would like to thank my supervisor, Dr. Clarence W. de Silva, NSERC Professor of IndustrialAutomation, for his advice and encouragement during the course of this research.I express my gratitude to Dr. Dale Cherchas and Dr. Ming Q. Wu for their careful examination of this thesis.This research is supported by the grants from the Advanced Systems Institute of BritishColumbia, and from the National Science and Engineering Research Council of Canada for afellowship and an NSERC Research Chair in Industrial Automation.Y.z.viiChapter 1Introduction1.1 BackgroundThe dynamics of a robot can be represented by a set of coupled second order differentialequations:M(q)j+N(q,i)4+g(q)= r (1.1)where q is the position vector of the joints of the robot, r is the input torque or force acting onthe joints, M is the inertia matrix, N is a matrix representing nonlinear cntrifugal and Coriolisforces, and g denotes the gravitational effect. When the robot is actuated by permanent magnetDC motors with gear reduction and operates at low speed, the coupling effects among the jointsare largely reduced and the nonlinearity of dynamics due to the Coriolis and centrifugal forcesis not significant. In this case, the robot with independent joint PD feedback control treatingcoupling effects as unknown disturbances, may provide satisfactory performance. This may bethe justification for many industrial robots today using such simple linear control method.When robots are actuated by direct-driving motors and/or moving at high speed, the coupling effects among the joints and the nonlinearity of the dynamics become significant. Toachieve satisfactory performance from this type of robot, more complicated control strategies1Chapter 1. Introduction 2using either feedforward compensation or feedback linearization techniques are needed. Examples of these control strategies are “Computed torque method” by Markiewicz [1], and “Resolvedacceleration algorithm” by Luh, Walker and Paul [2]. The global asymptotic stability of thefirst strategy compensating only gravity terms was given by Arimoto and Miyazaki in [41. Robustness of the model-based control which compensates for the complete dynamics of a robotis given by Craig in [6].The dynamics given by equation (1.1) is not necessarily a complete mathematical representation of a real robot. There are two main reasons for the inaccuracy of the model. First, thedynamics of a physical system like robot depend on some parameters which practically cannotbe measured with sufficient accuracy. In addition, these parameters may vary in some unknownor unpredicted manner. A typical case is a robot that picks up a payload or changes tools duringits operation. This will cause the mass and inertia of its last link to change. Secondly, somephysical phenomena are not easily modeled because of the lack of understanding of their truecharacters. For example, friction at the joints [81 and link flexibility [7] are not accounted forin the above dynamics.Some advanced control schemes have been developed for controlling robots without usingtheir exact dynamics. Among them are “variable structure control” [9] [10] and “adaptivecontrol” [13] [5] [3] [11]. Both methods are effective in dealing with dynamic uncertainties. Animportant feature of adaptive control is its adaptive mechanism, which explicitly or implicitlyidentifies unknown parameters of the system and makes use of this information to updategains or other parameters in the control law. The early adaptive control algorithms relied onthe assumption of “slow variation” of the parameters, or “slow motion” of the robot. Thisis to ensure that the adaptation procedure is fast enough, with respect to the speed of theparameter changes. This assumption is removed by a so-called regressor-based adaptive controlChapter 1. Introduction 3algorithm, in which the unknown parameters of the system are linearly extracted from thedynamic equations of the robot [11].The convergence of the parameter estimation in adaptive control relies on the condition of“persistent excitation”. Even with persistent excitation, the transients may not be uniform,and the convergence of the control error to zero may be very slow. Variable structure control,as a robust approach, is very effective in dealing with system uncertainties. It differs from mostadaptive control techniques in that no explicit dynamics of robot are required, and no learningmechanism appears in the control algorithm. Only the bounds of uncertainties must be known.It has the advantage of a prescribed transient response in the sliding mode. There are severalother advanced control approaches, such as learning control [16] and knowledge based intelligentcontrol [20], which do not require exact dynamic model of robots either.Most control schemes available to date exclude actuator dynamics by assuming that thecontrol torque can be generated as desired. However it is not the case for most industrialrobots driven by electrical DC motors. Usually a voltage signal is generated and applied to thearmature of a motor. The behavior of these actuators is governed by a third order differentialequation [22] [21]. In fact, often the actuator dynamics will dominate the robot dynamics [23],especially when the gear reduction is large. Very few experiments have been reported on thecontrol of a robot system that incorporates actuator dynamics [24].1.2 Scope of the WorkThe adaptive control of robots with significant actuator dynamics is studied in this thesis.The complete robot-actuator dynamics are derived. A fixed feedforward compensation plusChapter 1. Introduction 4modified regressor based adaptive feedback control scheme is proposed. The implementationof the scheme is simple, stable and flexible. Actuator parameters are identified and the crucialterm in the actuator dynamics is compensated for in the control signal. The stability is provedthrough Lyapunov like analysis. Although in this thesis the adaptive control is obtained throughlinear parameterization, it is not limited to that scheme. Since the parameters of the actuatorshave been identified and compensated for, various adaptive control schemes can be implementedin their original form with minimal modifications.To test the proposed control scheme and possibly other control schemes, it is necessary todevelop a robotic testbed which provides users with accesses to the actuators and sensors of therobot. The development of an open-architecture robot testbed, around a PUMA 560 industrialrobot is an essential part of the thesis research. The the hardware architecture of the testbedis modular, and it can easily be reconfigured or upgraded. Therefore, it is referred to have an“open architecture”. The testbed is supported by a set of well designed C functions. Using thesefunctions, various control laws may be implemented, and the post processing of experimentaldata can easily be conducted.The experiments on the testbed would be intended to evaluate different control schemesby comparing their performances. Specifically, the proposed adaptive control scheme is implemented on the testbed. The effect of actuator dynamics is studied. The results show goodperformance improvement when actuator dynamics are compensated for. The performanceof adaptive control scheme is also compared to that of a conventional joint proportional andderivative controller.Chapter 1. Introduction 51.3 Thesis OrganizationThe rest of the thesis will consist of two major parts: a brief review of robot control, and thedevelopment and implementation of the adaptive control scheme that incorporates actuatordynamics.Chapter 2 will give a brief review of robot control. The emphasis will be on the conventionalPD control and the adaptive control through linear parameterization. The former method iswidely used for controlling current generation of industrial robots. The latter method is knownas an effective way of dealing with uncertainties in robot dynamics. Chapter 3 will introducethe theoretical development and stability analysis of the proposed adaptive control scheme thatincorporates actuator dynamics. In particular, the control scheme will be demonstrated usinglinear parameterization algorithm. Chapter 4 will be devoted to the development of the testbed.The motivation for developing an open architecture testbed will be presented and the designconsiderations underlying the method will be discussed. The hardware architecture and softwarestructure of the new controller will be described. Implementation of the adaptive control schemewill be presented in Chapter 5. The effect of actuator dynamics will be discussed. Comparisonbetween conventional PD control and the adaptive control schemes will also be given in thischapter. In Chapter 6 the main contributions of the present work will be reviewed and someconcluding remarks will be given. Possible future extensions of the work will be indicated.Chapter 2Robot ControlA robot system can be modeled by a set of coupled, nonlinear second order differential equationswhen effects like link flexibility and joint friction are not represented. Control of systems of thistype has been a challenging research topic for over 50 years. Although most industrial robotsin using are still controlled by simple linear servo controllers, various advanced control schemeshave been proposed, as found in the published literature. In view of the large number of suchpublications, the present review will be confined to a few selected papers only. Specifically, ourattention will be directed to an issue of primary concern in this work - the comparison betweena conventional proportional plus derivative controller and a specific advanced control scheme.At the risk of being nonrigorous, various control schemes may be put into two categories:model based schemes, and performance based schemes. The first group includes feedbackcontrol with a partial compensator; fixed nonlinear compensation; variable structure control;and adaptive control. A common feature of the control schemes in the first group is therequirement of some degree of knowledge of the dynamic model of the robot. The secondgroup is represented by conventional PD control, learning control, and intelligent control. Thecontrol schemes in the second group do not require an explicit dynamic model of the robot.Instead, information on robot performance is used to generate the control signal, and, in case6Chapter 2. Robot Control 7of intelligent control, to adjust controller parameters and make supervisory decisions as well.2.1 PD ControlProportional plus derivative controllers are usually implemented independently at each joint ofa robot. Assuming that the electric time constant is much smaller than the mechanical timeconstant, the dynamics of the j-th actuator (permanent magnet DC motor) can be written ina reduced order form as (see Chapter 3 for detailed derivation)[Im,j + rIr,j(q)]m,j + (Bm,j +1Am,j)m,j = Va,j — rjTr,j(O) (2.2)where8m,j the actuator angular position;r3 the gear reduction, r3 << 1 typically;the sum of actuator and gear inertias;r,Ir,j(O) the robot inertia reflected on the actuator shaft;Bm,j the equivalent mechanical damping constant at the actuator shaft;I( the back emf constant of the actuator;Ra,j the armature resistance;r,rr,j(8) the external load torque acting on the actuator axis;Km,j the motor torque constant;Va,j the armature voltage.Note that the actuator dynamics given by (2.2) are linear in actuator angular position 0m,j.The PD controller is given byVa,j = Kp,j(8m,j— Om,j,d) — I(d,jm,j (2.3)Chapter 2. Robot Control 8where9m,.i,d is the desired angular position; and Kr,, and Ad, are the proportional and derivative gains, respectively. The closed ioop system is obtained by applying PD control to theactuator dynamics, which yields[Im,j + rIr,j(0)]m,j +(Bm,j + +Kd,j)m,j +Kp,j(Om,j —0m,j,d) + rr,j(8) = 0 (2.4)We note that the nonlinear and coupling effects are reduced by the mechanical gear reductionr3. Hence by assuming large gear reduction, the change in magnitude of the configuration-dependent terms rI,.,j and rjr,.,j may be neglected. Assuming that the TIr,j and rjTr,j areconstant and taking Laplace transforms of (2.4) we obtain{ [Irn,j+ rIr,j)] 2 + (Bm,j + lib1(rn,j + m1(d,)5 +—‘ Kp,jOm,j,a(S) + rjrr,j = 0 (2.5)-LUa,JThe characteristic polynomial of the closed ioop system is given byF(s). = (Im,j + rIr,j)s2 + (Bm,j +m,j+ Kd,)s + (2.6)from which we find that any positive K,3 and Kd, will yield a stable closed loop system.The response of the closed ioop system can be designed by properly placing the zeros ofthe characteristic polynomial on the complex plane. However, since rIr,j and rjrr,j are actually configuration dependent, the zeros will drift on the complex plane as the robot moves.Therefore, it is difficult to obtain a satisfactory performance of the closed ioop system for allrobot configurations if PD gains are fixed. On the other hand, because the system is of “typeone”, it even cannot achieve zero tracking to a desired step input, which is the simplest taskin robot control - the point to point control. The tracking error can only be reduced by usingChapter 2. Robot Control 9sufficiently large gains. However, high gains may cause robot system to possess poor stabilitycharacteristics when the controller is implemented by a digital computer. Furthermore, thelinear, time invariant analysis given here does not held strictly because the system parametersvary with the robot configuration.2.2 PD Controller with Partial CompensationAlthough a PD controller is believed to be very simple and robust, it suffers from the curseof “high gain”. A way to achieve zero tracking error without using infinitely high gains is tocompensate for the external torque Tr,j in equation (3.32). Arimoto et ul. [4] proved that aPD controller with exact gravity compensation is asymptotically stable at the zero equilibriumpoint for point to point control. Their work can be briefly stated as follows:Suppose that the robot system (1.1) be controlled with the control lawr = g(8) — K(O— 0d) — Kd6 (2.7)where K and Kd are two positive-definite gain matrices. The closed loop system is obtain asM(8)0 = —N(9,8)0 — K(8— Od) — KdÔ (2.8)Defining the position error ase=6—d (2.9)a Lyapunov function candidateV(t) = .OTM(0)O + eTKpe (2.10)Chapter 2. Robot Control 10is used for stability analysis. Differentiation of V(t) along the closed loop system dynamicsyields1’(t) = OTM(0)0 + —eTK9= eT[r— g(9) — N(9, Ô)à] + —eTK8= — N(8, Ô)à] += _ÔTKdÔ (2.11)where skew-symmetry of J1(O) — 2N(8, Ô) and identity é = 0 have been substituted.Expression (2.11) is negative for all 9 0. Therefore 9 will reduce in magnitude until 9 0which implies that 8 = 0. In this case, the closed ioop system (2.8) yields e = 0.2.3 Fixed Nonlinear CompensatorThe PD controller plus gravity compensation is asymptotically stable only for point to pointcontrol. Many practical applications of robots require continuous path tracking capability ofthe robots. A fixed nonlinear compensator is proposed to meet this latter requirement. Itassumes the complete and exact knowledge of robot dynamics (1.1). All nonlinear and couplingeffects are compensated by the the follwoing control lawT = M(8)(9d + Kdé + Kpe) + N(O, Ô)Ô + g(O) (2.12)where Od(t) is the desired trajectory and e = 0(t) — Od(t) the tracking error.Substituting the control law into the robot dynamics yields a simple closed ioop systemM(0)(ë + Kdé + Ke) = 0 (2.13)Chapter 2. Robot Control 11Since M(9) is nonsingular for all robot configurations, it follows thatè+Kdé+Ke=O (2.14)which is a stable second order linear system for positive definite gain matrices Kd and K.If these gain matrices are chosen to be diagonal, the closed ioop dynamics of robots becomedecoupled. The tracking performance can be specified by choosing the gain matrices properly.2.4 Variable Structure ControlBoth PD controller plus partial compensation and fixed nonlinear compensator rely on thecomplete and exact knowledge of robot dynamis. However, in reality, such knowledge cannotbe acquied due to two main reasons. Firstly, the robot dynamics depend on some physicalparameters which practically cannot be measured with perfect accuracy. In many applications,in addition, these parameters may vary in some unknown or unpredictable ways. A typicalcase is a robot that picks up a payload or changes tools during its operation. This will causethe mass and the inertia of its last link to change. Secondly, some physical phenomena are notmodeled for the sake of simplicity of dynamic model. Some physical effects are not modeledbecause of the lack of understanding their physical nature. For example, friction at the jointsand link flexibility are not accounted for ill robot dynamics (1.1).While the exact knowledge of the dynamic parameters can never be obtained, their boundsare always available. Variable structure control makes use of this knowledge by incorporatingthe bounds in the control law.Defining the sliding surface ass=è+Ae=O (2.15)Chapter 2. Robot Control 12where e = 6— 6d, the robot dynamics can be expressed asM(8) + N(6, 8)s = r — [M(6)d + N(8, 8)8 + g(O)j (2.16)The control objective is to force the robot state variables 8 and 6 to move towards the slidingsurface, and to ensure them to stay on the sliding surface once they arrive on the surface. Onthe sliding surface, the tracking performance can be pre-specified as suggested by the definition(2.15).The control law can be designed asr = —Ks — bmjJtS — b I9II S — bgjj1s (2.17)where bm, b and bg are positive constant, such thatmaxe IIM(0)xII <bmIIXIImax IIN(0,8)xII < b8x , XE R’2 (2.18)max IIg(0) I b9The closed ioop dynamics of the robot are govened byM(8) = —Ks — N(6,8)s— [bmS + M(8)d]—[ IIèIIIèII S + N(O, Ô)Ôd]— [bgjj-j1s+ g(O)j (2.19)Consider a Lyapunov function candidate given byV(t) = sTM(8)s (2.20)Chapter 2. Robot Control 13whose derivative is evaluated along the closed ioop dynamics(t) = sTM(0)ê + sTI\1(8)s= _STKS— [bmIIdIIIISII + sTM(0)odl — +sTN(8, Ô)Ôdj — [bgIIsII + sTg(0)]—S’KS (2.21)Hence the system is forced onto the sliding surface. It is not difficult to verify that in presentcase there exists a sliding regime, hence the system will remain on the sliding surface once itarrives on it.2.5 Adaptive Control via Linear ParameterizationIn practice the implementation of variable structure controllers results in control chattering. Theideal behavior of sliding mode controllers is rendered in the theoretical limit as the switchingfrequency becomes infinite. However, no real controller can provide such switching frequency.In this section, we discuss an alternative control scheme, adaptive control, which does notrequire exact robot dynamics either.The early work in adaptive control of robots was focused on the model reference adaptivecontrol (MRAC) which was more performance oriented [12]. The approach relies on the assumption of slow motion of the robots, or slow varying of the dynamics such that the matchingcondition [13] is satisfied. There were some work trying to remove this assumption for MRAC,but asmptotical stability could not be proven [14].Recently, adaptive control via linear parameterization has drawn great attention. Using thisChapter 2. Robot Control 14method, the slow varying assumption is removed and zero tracking error is achieved. It also hasmuch potential for control of robots other than trajectory following, such as impedance control,control of robots subject to nonholonomic constraints, etc.The most notable work in this area is that of Slotine and Li [11]. The control law wasproposed asT = —Ks + + IT(8, Ô) + g(8)= —Ks + Y(8, 0, w,f (2.22)wheres = è+Ae (2.23)= Ô—s (2.24)e = (2.25)and A is an arbitrary positive definite matrix. j is the estimate of the parameter vector, andthe linear parameterization property of robots has been used in rewriting the control law.The closed ioop system is described byM(6) + N(6, 0)s = —Ks + Y(O, 0, s, (2.26)wherep=p—p (2.27)is the parameter error vector.The following Lyapunov function candidate is consideredV(t) = sTM(o)s + (2.28)Chapter 2. Robot Control 15Evaluating V(t) along closed ioop dynamics, one obtains= _STKS + [sTY(e, 8,w,) + 1T p (2.29)where the skew symmetric property of matrix ?t(0) — 2N(9, ) has been used to eliminate thetime derivative of the mass matrix and the nonlinear force effect.The adaptive law is chosen in such way that the second term in the above expression vanishes= _yT(9,à,L,,,) (2.30)so as to guarantee asymptotic stability. Indeed, substituting (2.30) into (2.29) leads to= _STKS< 0 (2.31)A further discuss in [15] shows that s must converge to zero. Due to the fact that the outputof a stable linear filter, whose input converges to zero, must also converge to zero, one canconclude that the tracking error e will converge to zero.A favorable feature of Slotine and Li’s algorithm is that rio acceleration feedback is required.This is crucial for most of robot applications.2.6 Learning ControlAs we have mentioned before, model based control shemes cannot be implemented when thesystem structure is unknown, or when there exist unmodeled effects which may play a significantrole in robot dynamics. An example of such effects is the friction acting at the joints. FrictionChapter 2. Robot Control 16has a nonlinear dependence on joint velocity and may depend on joint position as well. Attemptsat modeling the friction are further complicated by changes as the device ages, as well asvariations with changes in temperature.Learning control was proposed by Uchiyama to deal with such unmodeled effect [16], andlater was improved by Craig [17], et al. The scheme consists of a control law and a learning law.The control law has two components. The first component is a nonlinear compensator with a PDregulator. It intends to linearize and decouple robot dynamics. As a result, a linear, decouplederror dynamics are obtained. The second component is the feedforward torque intended tocancel the unmodeled dynamics. This feedforward torque is considered as a disturbance in theerror dynamics, and updated after each trial by the learning law. The form of the learning lawis often that of linear filter, with the input being the tracking error. The convergence of thelearning process is guaranteed by properly designing the filter such that its frequency responseis less than one for all frequency. This design criterion usually results in a low-pass characterof the learning filter.2.7 Intelligent ControlA more sophisticated performance based scheme may be the intelligent control. Motivatedby capturing and utilizing past experience and applying human expertise, knowledge basedintelligent control is proposed for robot control by de Silva and MacFarlane [18] [20] [19]. Ingeneral, the intelligent control has a hierarchical structure, and the knowledge based control isimplemented on the high level of the structure. At the low level, a high-bandwidth servo loopis tuned by the high level knowledge based controller. The knowledge base is enhanced duringthe operation of the robot through some learning and self-organization mechanism.Chapter 2. Robot Control 17Specifically, inteffigent controller proposed by de Silva and MacFarlane has three levels.The highest level is the fuzzy knowledge base with the inputs being variety of knowledges(experience, heuristics and expertise) and robot information from sensors. The knowledge baseis improved through learning and self-organization. The decision made by the first level is fedto the inteffigent preprocessor, the second level of the structure. This level consists of servoexperts and response preprocessors. Each servo expert is implemented as a forward predictionsystem. The response preprocessor evaluates robot performance and provide this performanceinformation to servo experts. The lowest level is called hard control, which may be any type offeedback or feedforward controllers discussed in the previous sections.Chapter 3Adaptive Control Incorporating Actuator DynamicsIn robot dynamic equations (1.1), the actuator dynamics are excluded. As we can see fromChapter 2, the theoretical development of most advanced control schemes assumes that the control torque can be generated as desired. However, it is not the case for most industrial robotsdriven by permanent magnet DC motors. Usually a voltage signal is generated and appliedto these actuators. The behavior of these actuators is governed by a third order differentialequation in terms the control voltage signal and the motor rotor angular position [21]. Dealingwith this third order differential equation is further plagued by the presence of a time derivative of force (torque), because to measure and to control this force derivative is not realistic.On the other hand, however, often the actuator dynamics will dominate the robot dynamics[23], especially when the gear reduction is large. Exclusion of actuator dynamics results in aquestionable system model. Any control scheme based on such an inaccurate model cannotbe expected to achieve ideal performance as given by theoretical analysis, when implementedon a real robot system. The robot performance may even be altogether unsatisfactory. Thisproblem has been studied by some researchers, and a few control schemes have been proposed[25] [26]. However, usually joint acceleration and jerk (or joint acceleration and motor current)feedback is required. This requirement brings difficulty to practical applications. And becauseof this reason, few algorithms have ever been implemented on real robots.18Chapter 3. Adaptive Control Incorporating Actuator Dynamics 19In this chapter, we introduce a simple, stable and flexible control strategy for implementingadaptive control of robots that incorporates actuator dynamics. First, actuator dynamics areintegrated into robot dynamics so as to obtain a complete model of a robot-actuator system.Based on this model, a modified linear-parameterization adaptive control scheme with fixedfeedforward compensation is proposed. The robot dynamics and part of the actuator dynamicsare compensated for by using augmented regressor so as to obtain a linearized error dynamics.The feedforward compensation intends to cancel the electro-mechanical damping effect of theactuator. The actuator parameters are estimated through experiments, and hence the goodcompensation for damping effect can be expected. The stability of the system under the proposed control scheme is studied through Lyapunov like analysis. It is shown that the trackingerror is ultimately bounded by some computable constant bound which depends on the estimation error. In the ideal case of perfect estimation, the tracking error will asymptoticallyconverge to zero.3.1 Actuator DynamicsIt is assumed that the robot is actuated by permanent magnet DC motors. The dynamics ofsuch an actuator at joint j are given by [25] [22]dja dOmLa,j2 + Ra,jZa,j + ‘b,j di= Va,j (3.32)where La,, is the armature leakage inductance, Ra,j is the armature resistance, i,j is thearmature current, Kb, is the back emf constant, 0m,j is the rotor angular position, and Va,jis the armature voltage. The torque generated by the motor is proportional to the armaturecurrent; thusTm,j = ‘m,ja,j (3.33)Chapter 3. Adaptive Control Incorporating Actuator Dynamics 20where Km,j is the torque constant. Equation (3.32) is in fact a third order differential equationin terms of rotor angular position 6m,j. This can be seen by substituting it into the torquebalance equation on the motor rotor:d2Om d9m‘m,jd2t+ Bm,jdt= Am,jZa,j — (3.34)where -tm,j is the rotor inertia, Bm,, is the mechanical damping constant, rn,, is the gearreduction ratio, and rj, is the external torque (load) due to the robot that is driven by theactuator. Indeed, substitution of (3.32) into (3.34) yields the third order equationLa,jIm,jd3 + (La,jBm,j + Ra,jlm,j)d 3 + (Ra,jBm,j += Km,jVa,j — Ra,jr La,j (3.35)with T = rg,2TL,j. It is further complicated by the presence of the derivative of the torque.It is often assumed that the electrical time constant La,j/Ra,j is much smaller than themechanical time constant Im,j/Bm,j. This leads to a reduced order model of the actuatordynamics, which is adequate for most industrial applications [21]‘m,jd2Orn,j+ (Bm3 +‘uu1m) =Vaj — TgjTlj (3.36)3.2 Robot-actuator DynamicsThe complete dynamic model of the robot incorporating actuator dynamics is then obtainedfrom (1.1) and (3.36), asM(q)+ N(q,+ g(q) =ImOm + BmOm + igTl = KmVa (3.37)Chapter 3. Adaptive Control Incorporating Actuator Dynamics 21or, written as a single equation:M(q)j + N(q, 4)q + g(q) + Imi’6m + Bm’0m = Kmrg’va (3.38)where= diag(rg,j)Km = diag(Km,j) = diag(Krn,j/Ra,j)Bm = diag(Bm,,) = diag(Bm,j + Kb,jKm,j/Ra,j)Im = diag(Im,j) (3.39)and 6m, r and Va are motor rotor position vector, load torque on the rotor and armature voltagevector, respectively. If joint flexibility is not considered, we have the relationship between robotjoint position and rotor position:q = ig8m (3.40)Therefore, the robot-actuator dynamics are simplified toM(q)i + N(q, 4)4 + g(q) + m24 + migE24= Kmrg’Va (3.41)The motor inertia ‘m is constant, therefore can be included in the robot inertia matrix:M(q) = M(q) + 2Im (3.42)The crucial term is the electro-mechanical damping vector Bm0m. Most adaptive control algorithms make use of skew-symetric property of matrix [M(q) — 2N(q, ij)]. But it does not makesense to include electro-mechanical damping vector in the combined centrifugal and Coriolisterm of the robot to obtain N(q, 4) = N(q, 4) +12Bm, because the skew-symmetric property does not hold for matrix [I’I(q) — 2N(q, 4)]. Consequently, stability of the actuator-robotsystem cannot be established directly as in the case where actuator dynamics are neglected [11].Chapter 3. Adaptive Control Incorporating Actuator Dynamics 22It is worth noting that the term m6m is passive. Control design neglecting this term fromthe actuator-robot system (3.41) is equivalent to preserving a negative velocity feedback to thesystem, hence by intuition the stability of the overall system will not be deteriorated. But onthe other hand, the theoretic closed loop system performance may not be achieved because ofthis damping effect. We shall not, however, neglect this term in our experiments. Instead,we will experimentally estimate the parameters in Bm, and compensate for that in the controlsignal Va. To this end, the robot-actuator dynamic equation is written as(i9fc;’) [(M(q) + 2Im) q + N(q,i1)4 + g(q)]--1U-1ñ— Va — rg ‘-m i.Jmqor using regressor(igfC;’) Y(q,ij)p = Va — ‘K’Bm4 (3.44)where Y is the regressor matrix and p is the robot inertial parameter vector.To be conservative, the lower bounds of the estimates should be used in compensation. Thisis equivalent to preserving a weak velocity feedback in the system. In the following sections, theadaptive control of above robot-actuator system is introduced, and the stability of the proposedstrategy is proved through Lyapunov like analysis. It is shown that the stability can be provenfor the case when the upper bound of the estimation is used, as long as the PD feedback gainis large enough.3.3 Adaptive Control Incorporating Actuator DynamicsDenotingyT = [Y1 Y2 ... Y] (3.45)Chapter 3. Adaptive Control Incorporating Actuator Dynamics 23where Y is the k-th row of the regressor matrix and n is the number of the joints of the robot,the robot-actuator dynamics can be rewritten asYa(q, 4,4, 4)pa = Va — K4 (3.46)whereY? o ... oo Y ... 0Ya = (3.47)0is the augmented regressor matrix,r1 Ra,i Pr2KrnRa,2pPa = ‘ (3.48)is the corresponding augmented parameter vector, and= (3.49)is the new electro-mechanical damping matrix.The control law is a modified version of that of Slotine and Li plus an feedforward compensation term:va(q, 4,4r, 4r) = Ya(q, 4, 4r, 4r)a — (Kd — 1)4 — (Kd —= Ya(q, 4, 4,., 4,.) — Kds + K4 + K,.4,. (3.50)where= — Ae (3.51)Chapter 3. Adaptive Control Incorporating Actuator Dynamics 24is the reference velocity; A is a positive definite diagonal matrix;e = q—qd (3.52)is the position error;S (3.53)is the velocity error between the joint velocity and the reference velocity. Note that fa isparameter estimation vector; K is the estimated K; and Kd and Kr are two control gainmatrices which are positive definite, and have to be designed.From (3.50) we can see that the control law consists of two parts. The first part is analogousto the control law given by Slotine and Li. The second part intends to compensate for theelectro-mechanical damping effect for better performance of the closed ioop system.The adaptive law is designed to befa = —1’1Y’s (3.54)which is an integral type adaptation. Here 1’2 is a positive-definite gain matrix.3.4 Stability of Proposed SchemeConsider the Lyapunov function candidateV(t) = sTi.9IC;1Ms + Irilr + I3F2ja (3.55)where M is given by equation (3.42); ja = Pa — ia is the parameter estimation error; and 1’and r2 are two constant positive-definite matrices. The time derivative of V(t) subject to theChapter 3. Adaptive Control Incorporating Actuator Dynamics 25system dynamics given by equation (3.43) is(t) = sTi.9i;lMe + sTg;1Is + 4’rir + PaTT2a= sT9fc;1(I— II) + sTi.Jc;hIls + q’riqr + ‘r2pa= sTigf(;l(f(mva— Mr — N4r — g — Bm1E24)+ qrl’iqr + par2f= ST[Va— g;’(Mir + Nq,. + g) — K4] + qrri4r + jar2 (3.56)where the skew-symmetry of (II — 2N) has been used to eliminate the term 1/2sTM whichreflects the time-varying nature of the inertia matrix. The following fact is used for handlingthe matrix19K;’(M—2N): If matrix A is diagonal and matrix B is skew-symmetric, then thematrix AB is skew-symmetric. By using the regressor and substituting the control law (3.50)into the equation (3.56), one obtains= ST(_Yaa— Kds + K4 + Kr4r) + lrrijr + ijaTT2’a= _sTKds + sTfc4 + STKr4r +1rrj— ‘(Y’s +r2a) (3.57)where iL = — K is the estimation error of the electro-mechanical damping constant. Theidentity ia = f’a has been used to obtain equation (3.57). Substitution of the adaptive law(3.54) will remove the forth term from the right-hand side of equation (3.57). This yields= _STKdS + sTKv4 + STKrr + l’Flir (3.58)= _sTKds + sTI4+ STKrir + ul’1’1(d — Ãé)= _sTKds + sT1t,4+ STKrIr + l1’1[id — A(4— ‘Id)]= _sTKds + sTI,4+ STKr47.+4r1[—As — A4r + (kid + A4d)]= _STKdS + sT(Kq + Kr4r — ATr4r) — 4’riA4r +4r1’rl(id + A4d)= _sTKds + sT[l,(4— 4r) + (Kr + Cv — ATr)r1 — riA4r + 11’1(jd + A4d)Chapter 3. Adaptive Control Incorporating Actuator Dynamics 26It is noted that for a given compensation matrix K, the matrix K is constant with boundedeigenvalues. Consequently, it is possible to design K,. such that (Kr + ICE) > 0. Now setA_T(Kr + It,,) > 0 (3.59)Then, the previous result may be expressed as(t) = —sT(Kd — IL)s — 41’iA4r + q’T1(qd + Aqd)Ts Kd—K 0 s— 4,. —A1(+ A4d) 0 f1A 4r — ‘(d + Ad)+ A4d)TFlA_l(jd + A4d)_UIU + + A4d)TTlA_d + A4d) (3.60)whereS Su = = (3.61)4,. —A1(jej + A4d)andKd—K 0 Kd—K 0‘P = = (3.62)0 I’1A 0The matrix ‘P is block diagonal. The necessary and sufficient condition for it to be positivedefinite is that all of its diagonal sub-matrices are positive definite. Since I’1A is positivedefinite as indicated by equation (3.59), a positive-definite matrix (Kd — K) will ensure that‘P is positive definite. Since K is a constant matrix with bounded eigenvalues, a matrix Kdwith sufficiently large eigenvalues will make (Kd—positive definite. In that case, the firstterm in equation (3.60) will be nonpositive. In summary, the matrices Kd and Kr are chosenChapter 3. Adaptive Control Incorporating Actuator Dynamics 27to satisfyKd — > 0 and Kr + K > 0 (3.63)Now let‘d,min = mm eigen(Kd — f{) (3.64)and‘Ir,min = mm eigen(K,. + f) (3.65)It follows that_uTWu I’d,minhISII2— ,br,minhIWII2 (3.66)Also, since both jj and q are bounded for a properly planned robot trajectory, the followingconditions hold:maxIqdI <C2 (3.67)maxllqdll <Cl (3.68)where, c1 and c2 are two positive constants. Consequently, the positive term in equation (3.60)is bounded by a constant ; thus+ A4d)TrlA_l(id + A4d)= + A4d)T(Kr + IV)TA_2(iid+ A4d)X(c2+ AmaxCi)2mm(3.69)Chapter 3. Adaptive Control Incorporating Actuator Dynamics 28where, the following notations have been used:= mm eigen(A) (3.70).Xmax = max eigen(A) (3.71),br,max = max eigen(K,. + 1) (3.72)Then, using the inequalities (3.66) and (3.69), one can write1’(t) ‘iId,minhISII2— ‘br,minIIWII2+ 6cd,min (11s112 + r,min mm 1w112 — ) (373)d,min ‘Id,minAccordingly, the vector s will asymptotically converge in the norm to a small value which isa function of 6 and the eigenvalues of ‘I’:= 0 f Ir,min mitt IIw(t)112 > &IIs(t —+ 00)11 (3.74)<II3c_1rmn1nlhIIw(t)II2II/3c if br,min mitt IIw(t)112 < 6where w is given by equation (3.61). From equation (3.74) it is seen that, when s does notconverge to zero, its norm can be reduced by enlarge the eigenvalues of the design matrix Kd.Furthermore, the bound /3 can be made smaller through better compensation. For example,K,, — 0 in the case of perfect compensation. Since V’r,mav = max eigen(K,. — IC,,), by settingKr = 0, one obtains 1lJr,mav —p 0. Hence, 1 —+ 0 and consequently s will converge to zero.Using the analysis method well documented by other researchers, equation (3.53) can bethought of as a stable filter with the error e as the input and s as the output, because A isChapter 3. Adaptive Control Incorporating Actuator Dynamics 29Figure 3.1: Experiment of Actuator Parameters Estimation on PUMA Robotpositive definite. Since the output converges to zero (is bounded), its input must also convergeto zero (be bounded). Thus the zero convergence (boundedness) of the tracking error can beestablished.3.5 Actuator Parameter EstimationParameters in equation (3.35) are estimated independently for each joint of the PUMA robot.Take the example of shoulder joint. Define the angle q2 as the position of the arm with respectto the horizontal plane, as depicted in Fig.3.1.The motor rotor position 0m,2 is related to the angle q through the gear ratio as indicatedby equation (3.40). The external torque Tj,2 caused by the gravity effect is a function of q.Chapter 3. Adaptive Control Incorporating Actuator Dynamics 30Specifically, when robot hand, forearm and arm are streched to a straight line,= rn’2l’,g cos(q2) (3.75)where rn’2 is combined mass of links after the shoulder joint, and l2 is the distance from thecenter of the mass of these links to the shoulder joint axis. Substitution of equations (3.40) and(3.75) into (3.35) yieldsI,2rg,q+ (Bm2 +K&Km2)rgjq2 + Tg,2rn’1’gCOS(q2)= Em2K2V (3.76)where I,2 includes the reflected inertias of the gears and the link on the actuator shaft, K,2 15the power amplifier voltage gain, and v,2 is the input of the power amplifier. The constants inequation (3.76) do not need to be estimated one by one. Instead, they can be grouped togetherand denoted by three other constants. This leads to a simplified model for actuator dynamics:Ie,2q2 + Be,22 +Ge,2cos(q)= v,2 (3.77)whereIj,2Ra,2 —1‘e,2 = rg2Ikm,2Kp,2, —1— Bm,2Ra,2 +-1b,2’m,2 —1 — Ila,2rg2— Tg 2 — ‘-‘m,2‘m,2’p,2 ‘ ‘m,2’p,2—_______________— 3.78‘m,2’p,2The excitation signal is designed to beVi,2 = _I((ê + Ae) + Jm4 (3.79)where e = q — q2,d is the joint position error, q2,d is the command joint trajectory, K and )are two positive gains, 73m is the estimate of the parameter vector Pm (Ie,2, Be,2,Ge,)T andChapter 3. Adaptive Control Incorporating Actuator Dynamics 314. = (cos(q2),q, q2,d — Ae)T. The parameter estimation algorithm is derived using Lyapunovtheory. Consider the Lyapunov function candidateL = r1(e + Ae)2 + jjT2j (3.80)where I is a positive constant, F2 is an arbitrary positive definite matrix, and = p — j3 is theparameter error. The time derivative of L along the actuator dynamics (3.77) is given byL = 2Fi(è + Ae)(ë + Aê) +2jjTpj (3.81)= 2T’iIej( + Ae)(v,2 — Be,22 —Ge,2cos(q)—‘e,2q2,d + Ie,2A)—2pTp= 2FiI(ê + Ae)(v,2 —T4)) —2jjTp3= 2FiI(é + Ae)[K(è + Ae) + —2Tfj5 (3.82)where identity ji = 0 has been substituted. By choosing the parameter estimation law as= —F1(ê+ Ae)4) (3.83)we getL = 2FiIe,Ik’( + Ac)2 0 (3.84)It is clear the joint cannot get stuck with (e + Ac) 0, unless è = e 0. Hence the positionand the velocity errors will converge to zero [11]. If we augment the parameter estimationalgorithm with reset conditions, and follow the same argument as that in [6], we can see thatthe persistent - excitation conditiont+6a< j 4)T4)dt 3 (3.85)is satisfied for t > t0, where to, a, /3 and 6 are some positive constants. This is because4)(q, ) — 4)(q, q) as è — 0 and e —* 0. Therefore, inequality (3.85) will be met if we properlyChapter 3. Adaptive Control Incorporating Actuator Dynamics 32plan the command trajectory. Hence according to [27], the parameters will converge to theirtrue values after a sufficient learning interval.After Be,j is estimated, the electro-mechanical damping effect in the actuator-robot dynamics(3.46) can be compensated for through equations (3.39) and (3.50). The parameters Ie,j andGe,j are not directly used in the controller. Instead, their dynamic effects are accounted forthrough the augmented regressor matrix Ya and the augmented parameter vector Pa.Chapter 4An Open Architecture Robot Testbed4.1 Motivations and Design ConsiderationsTo implement adaptive control schemes on an industrial robot, it is necessary to have directand quick accesses to the sensors and the actuators of the robot. Although there are severalmodels of industrial robots available in the market, their controllers do not generally providethis capability. The main reason for this is that the hardware architecture of these controllersis closed to the user, and the programming language is meant for the task level. These robotsare controlled for desired kinematic motion without considering dynamics explicitly.An open hardware architecture is key to the development of the testbed. Such an architecturewill allow direct and quick access to the sensors and actuators of the robot. It also helps tospeed up data transfer and processing. The idea of an open-architecture controller also refersto the modular design of both hardware and software of the system. These modules providebasic functionalities, and are flexible to be customized to meet diverse requirements. Sincemost advanced control schemes compute at least part of the dynamics of a robot in real time,high computational capacity is desired for the testbed. A strong software support is a key tothe design of the testbed, through which testbed users are provided with a convenient means33Chapter 4. An Open Architecture Robot Testbed 34of conducting experiments and of post-processing experimental data.Although the testbed is setup at an educational and research institution, the research is oriented towards industrial applications. For this reason, the testbed is developed by retrofittinga widely-used industrial robot - the PUMA 560 - with a custom built controller that is centered around a popular, low-cost 486-based computer supported by an optional digital signalprocessing board for high-speed computation. Although the multi-processor architecture seemsto have more potential for controlling a complicated plant like a robot, it is estimated that thiscentral computer controlled system has sufficient control capacity for our purposes.4.2 PUMA Robot and VAL ControllerThe controller and operating system of PUMA 560 is VAL II from Unimation Inc., USA. ThePUMA robot system is designed to adapt to a wide range of industrial applications. The basicunits of the system are: a 6-dof robotic arm, a VAL-Il controller with LSI-11/33 microprocessorand supported by VAL multi-tasking operating system, peripherals (terminal, disk driver, teachpendant, etc.), as shown in Fig.4.1.As a commercial product, PUMA system is well designed for various industrial applications.The PUMA operating system consists of a complete robot control language, which providesconvenient means of programming kinematic motion of the robotic arm. It also contains functions like file editing and manipulation. However, like many other commercial industrial robots,PUMA 560 can only be programmed at the task level, with no robot dynamics involved explicitly. In other words, users are isolated from the low level components, such as actuatorsand sensors, because of its closed hardware configuration and operating system. This makes itChapter 4. An Open Architecture Robot Testbed 35Disk Driver PUMA Armimpossible to test various advanced control schemes intended for robots, which requires directand quick access to the sensors and the actuators.The block diagram of PUMA controller is shown in Fig.4.2.4.3 Hardware Description of the TestbedThe testbed is retrofitted from a widely used industrial robot - PUMA 560 - with a custombuilt controller centered around a popular, low cost 486 PC supported by an optional digitalsignal processing board for high - speed computation. Other modules of the controller include:TerminalFigure 4.1: PUMA robot system. Joint position and velocity loop: which senses joint positions and estimates joint velocity;C -t CD C n c C C-) C C -t C CD -tChapter 4. An Open Architecture Robot Test bed 37• Current loop: which measures DC motor currents;• Control signal output channel: which converts digital control signals into analog ones;• Interrupt control circuits: which cascades interrupt controller on custom boards to thecontrol computer;• Power amplifiers: which amplifies control signal and drives DC motors;• Safety device: which checks safety signals to ensure a correct operation of the testbed;• Power supply module: which provides servo power and control logic power for the system.It also controls the joint breaks.The block diagram of the control system is shown in Fig.4.3.The key advantage of this testbed comparing to the original PUMA system is its open architecture, which provides researchers with full access to the sensors of the system for obtainingfeedback information and to the actuators of the system for direct control.4.4 Software Support to the TestbedThe software on the testbed is specifically designed for experimentation, and the developmentis focused on providing convenient means of conducting experiments and post processing ofexperimental data. It has several levels:• System initialization and self-diagnosis: which initializes custom boards, configures thetestbed, and diagnoses each block of the system;Chapter 4. An Open Architecture Robot Test bed 38Customized BoardsPC 80486Safety DeviceFigure 4.3: The block diagram of the control systemChapter 4. An Open Architecture Robot Testbed 39• System coordination and safety check: which works with the safety device to monitortestbed status and to stop operation in case of errors or emergency;• Basic I/O routines for feedback information and output control signals: which reads jointencoders, filters position signals, estimates velocities, and converts digital control signalsinto analog ones;• Kinematic routines: which includes forward and inverse kinematics for path planning;• Dynamic routines: which computes regressor, etc;• High level user interface: which provides researchers with convenient means of planningexperiments and post-processing experimental data, including data I/O control, graphicdisplay of experiment data.A set of C functions have be written for each level, which are readily accessed by the user.Using these functions, a testbed user can easily construct his or her own test program. Toshow users how to construct such a test program, an experiment template file is provided. Thefile tests step response of the waist of the PUMA robot under a PID controller and a PIVcontroller respectively. The template file is a relatively complete test program with modules ofdata input, system configuration, experiment execution, and test data processing and display.Most of experiments on the testbed can be done by changing the input data and substitutingPID/PIV control law with a new control law.Some of the C functions and the template file are listed in the appendices A and B respectively.Chapter 5ExperimentsIn this chapter, real-time implementation of proposed adaptive control strategy is introduced.The experiment is done in two steps. First, the parameters of the actuator dynamics areestimated. The estimation is carried out independently for each joint. In the second step,these estimated parameters are used in generating control signals to compensate for actuatordynamics; hence various control schemes can be implemented in their original form. Specifically,the proposed control algorithm is implemented because of its advantage that no accelerationfeedback is needed. This is crucial for our experiments as well as for most practical applications.5.1 Estimation of Actuator ParametersTake the example of joint 2 (shoulder). The experimental parameters for joint 2 are given inthe Table 5.1, with appropriate dimensions for controller gains such that the generated controlsignal will be in voltage.The motion trajectory is designed to beq2,d(t) = sin(1.Ot) + -sin(2.Ot) + . (rad) (5.86)40Chapter 5. Experiments 41Ra,2 (ohm) 1.6Km,2 (kg cm/A) 2.58Tg,2 0.0092749Ikp,2 6.0K 20.0A 0.5F2 diag(0.2,O.1,O.3)Table 5.1: Experiment Parameters for Actuator Parameter EstimationThe estimation results are given below: Figure 5.1 shows the command trajectory, theactual trajectory and the error between them; the parameter estimation results are shown inFigures 5.2, 5.3 and 5.4, respectively; and the control signal is shown in Figure 5.5. The goodparameter convergence is observed. The values estimated come close to those approximatelyknown a priori by PUMA [28].Chapter 5. Experiments 42trajectories [rad * ij4 A A800.00700.00600.00500.00400.00300.00200.00100.00-0.00-100.00-200.00-300.00-400.00-500.0011 Il Iic____4s’___- ---v__trj_desiredtrj_actualtn_errort [sec]0.00 10.00 20.00 30.00 40.00Figure 5.1: Tracking of the JointChapter 5. Experiments 43Ie[vol * * 10]650.00 —____________600.00 —___550.00500.00450.00400.00350.00300.00250.00200.00150.00100.0050.000.000.00Vlet [sec]10.00 20.00 30.00 40.00Figure 5.2: Estimation of the Equivalent InertiaChapter 5. Experiments 44Be [vol *2.20 — -2.102.00 — -1.901.801.701.601.501.401.301.201.101.000.900.800.700.600.50Bet [sec]0.00 10.00 20.00 30.00 40.00Figure 5.3: Estimation of the Equivalent Electro-Mechanical Damping ConstantChapter 5. Experiments 454.204.003.803.603.403.203.002.802.602.402.202.001.801.601.401.201.000.80Ge [you__________Get [sec]0.00 10.00 20.00 30.00 40.00Figure 5.4: Estimation of the Equivalent External TorqueChapter 5. Experiments 46Vi [you10.5010.009.509.008.508.007.507.006.506.005.505.004.504.003.503.002.502.001.501.000.500.00cntrlt [sec]_____0.00 10.00 20.00 30.00 40.00Figure 5.5: Control Signal for Parameter EstimationChapter 5. Experiments 475.2 Implementation of Adaptive ControlThe experimental procedure is applied to the shoulder (joint 2) and elbow (joint 3) of thePUMA 560 robot as shown in Fig.5.6.Figure 5.6: Adaptive Control Experiment of PUMA Robot ArmIt is believed that these two joints have the most significant coupling effects and gravityeffects. There are totally nine inertia parameters to be identified for these two joints whileimplement Slotine and Li’s algorithm. They are:12Pi P2 P3 P4 P5 P6 P7 P8 P9m2l m3l m3l m3l2l3 ‘2 13 m2lc2g m312g m3l3gTable 5.2: Inertia Parameters of PUMA Shoulder-Elbow DynamicsChapter 5. Experiments 48The regressor is a 2 x 9 matrix given by8r2 0r2 06r2 + 8r3 8r2 + 6r3(20r2 + 8r3) cos63 — (Ô2 °r3 + 82 6r3 + 62 6T2) SZfl63 C0363 r2 + .9fl63yT= r2 0 (5.87)0r2 + 0r3 0r2 + 9r3cosO2 0cos62 0cos(62 + 63) cos(62 + 63)The parameters used in the experiments are given in Table 5.3.B6,2 (v sec) 1.7B6,3 (v sec) 1.3rg,2 0.0092749rg,3 0.0186202Kd diag(40,20)Kr diag(0,0)A diag(0.5,0.4)F2 diag(0.05,0.03,0.02,0.01,0.03,0.02,1.5,2.0,1.5)f (Hz) 500Table 5.3: Experiment Parameters for Implementing Adaptive Controlwhere f is the sampling frequency, Kd and A are PD gains, F2 is the parameter adaptationgain matrix. Actuator parameters and power amplifier gains are the same as those in Table5.1. Since good compensation for the damping effect can be expected, Kr is chosen to be azero matrix for simplicity.Chapter 5. Experiments 49The trajectories are planned in joint space for the reason of less kinematic computation,which is not the major issue of out experiments. The trajectory for each joint consists of twosinusoidal components with different frequencies:q2,d() = sin(1.2t) + sin(2.4t) + (rad)q3,d(t) = sin(2, Ot) + .j!jsin(4.0t) + - (rad) (5.88)The design of this type of trajectory is based on the fact that any smooth curve can bedecomposed into a series sinusoidal waves of different frequencies. It is also a common experimental trajectory used in adaptive control experiments such as [6]. The trajectories given byequation (5.88) are characterized by high end-point speed and acceleration. It is observed in ourexperiments that these trajectories have almost reached the fastest maneuvers that a PUMA560 robot can possibly provide without saturating its motors.The tracking of the joint 2 and joint 3 trajectories under adaptive control is shown in figures5.7 and 5.8, respectively. The control signals are shown in Fig.5.9 and Fig.5.l0, respectively.To study how the actuator dynamics will affect the performance of a robot under adaptivecontrol, the experiments are also carried out for the cases of under-compensation of actuatordynamics and over-compensation of actuator dynamics. Figure 5.11 shows the trajectories andthe tracking error of joint 3 with under-compensation of the electro-mechanical damping effect(Be = 0.1), while Figure 5.12 shows the trajectories and the tracking error of joint 3 withover-compensation of that effect (Be = 3.0). In both cases, slow convergence of tracking errorwith oscillation, is observed.The experimental results confirm that the actuator dynamics playsa very significant role in a robot system, and it should be accounted for in controller design.Chapter 5. Experiments 50[rad * io-jtrajectories900.00800.00700.00600.00500.00400.00300.00200.00100.00-0.00-100.00-200.00-300.00-400.00——\ I —.4— — — —.- • ———• ._.g -——_ ——: z__trj2_desiredtrj2_actualtrj2_errort [sec]0.00 10.00 20.00 30.00 40.00Figure 5.7: Joint 2 Trajectories under the Adaptive ControllerChapter 5. Experiments 51[rad * io-jtrajectries900.00800.00700.00600.00500.00400.00300.00200.00100.00-0.00-100.00-200.00-300.00-400.00zJ:L*i**fJ 1:J:*:——— * 7 -.-,-,-.. .- — — .—*.--h-•,— — —I•_t’trj 3_desiredtrj3_actualtrj 3_errort [see]i0.00 10.00 20.00 30.00 40.00Figure 5.8: Joint 3 Trajectories under the Adaptive ControllerChapter 5. Experiments 52Va2 [vol]11.0010.009.008.007.006.005.004.003.002.001.000.00-1.00cntrl2t [see]0.00 10.00 20.00 3000 40.00Figure 5.9: Joint 2 Control SignalChapter 5. Experiments 53Va3 [you10.009.008.007.006.005.004.003.002.001.000.00-1.00-2.00-3.00:Lcntrl3t [see]0.00 10.00 20.00 30.00 40.00Figure 5.10: Joint 3 Control SignalChapter 5. Experiments 54[rad *trajectories900.00800.00700.00600.00500.00400.00300.00200.00100.00-0.00-100.00-200.00-300.00-400.00::fH I*JJ:1: :J:h:j. 7, 7 * 7 * i —trj3_desiredtrj 3_actualtrj 3_error[sec]0.00 10.00 20.00 30.00 40.00Figure 5.11: Joint 2 Tracking with under Compensation of Damping EffectChapter 5. Experimentstrajectories [rad * 10]900.00800.00700.00600.00500.00400.00300.00200.00100.00-0.00-100.00-200.00-300.00-400.00-500.0055, .tJJ If f1:J:zI’II — • 1% It I I •I g I—- — - ,— ,-- :-‘ - -‘• -Is I IS — I ,I•S_ I I—------.-- —-— — — -trj3_desiredtrj3_actualtrj3_errort [sec]0.00 10.00 20.00 30.00 40.00Figure 5.12: Joint 2 Tracking with over Compensation of Damping EffectChapter 5. Experiments 565.3 Comparison of Adaptive Control to PD ControlConventional PD controller is also implemented independently on each joint of the robot tocompare their performance to that of adaptive controller. To have a fair comparison, the PDgains in the two controllers are chosen to be the same. The trajectories and the tracking errorsfor joint 2 and joint 3 with PD controller are given in Fig.5.13 and Fig.5.14, respectively. Theaverage tracking errors of joint 2 and joint 3 are approximately 0.14 and 0.13, respectively,which are much larger than those under adaptive controller and they do not converge.The experiments are also done for the case of attaching a load to the third link of therobot during the robot operation. The results show good tracking of the robot with desiredtrajectories when the adaptive control algorithm is implemented. In such case, the robot underPD controller has even larger tracking errors and obviously is not able to provide a convergenttracking error.Chapter 5. Experiments 57trajectories [rad * 10]600.00500.00400.00300.00200.00100.00-0.00-100.00-200.00-300.00-400.00-500.00.z±:’bz:’t::tz—---—--—. -—:--—:--—:--4--—-i4---—.. ..S.-../S I — Strj2_desiredtrj2_actualtrj2_errort [seci0.00 10.00 20.00 30.00 40.00Figure 5.13: Joint 2 Trajectories under PD ControllerChapter 5. Experiments 58[rad * i0-3jtrajectories900.00800.00700.00600.00500.00400.00300.00200.00100.00-0.00-100.00-200.00-300.00-400.00-500.00I g3g—S I g 51 — 4$:.trj 3_desiredtrj3_actualtrj3_errort [sec]0.00 10.00 20.00 30.00 40.00Figure 5.14: Joint 3 Trajectories under PD ControllerChapter 6ConclusionIn this thesis, adaptive control of industrial robots incorporating actuator dynamics is studied. A linear parameterization adaptive control plus fixed feedforward compensation scheme isproposed. The stability of such a scheme is proven through Lyapnuov like analysis. The experiments on a robot testbed show that the proposed adaptive control scheme can improve thetracking performance of a robot in a significant way, while the same robot under a conventionalPD controller provides a relatively larger and unconvergent tracking error.A robot testbed retrofitted from an industrial robot with an open architecture controlleris developed in this thesis research for implementing proposed adaptive control scheme. Thecontroller provides direct and quick accesses to the sensors and actuators of the robot so asto allow the implementation of various advanced control schemes on the testbed. The testbedis supported by a set of pre-written C functions which provide testbed users with convenientmeans of conducting experiments and post-processing experiment data. In fact, intelligenttuning of robot actuators has been implemented on the testbed by another fellow researcher ofthe lab and the author.It has been noticed that an adaptive control scheme may be designed such that the completeactuator dynamics can be adaptively compensated for. The future research in this project maycontinue on this direction, or search and test other control schemes for better performance andfor diverse applications.59Bibliography[1] B.R.Markiewicz, “Analysis of the Computed Torque Drive Method and Comparisonwith Conventional Position Servo for a Computer-Controlled Manipulator,” JPL Technical Memo, 33-601, Mar, 1973[2] J.Y.S.Luh, M.W.Walker and R.P.Paul, “Resolved-Acceleration Control of MechanicalManipulators,” IEEE Transactions on Automatic Control, AC-25(3), 1980[3] C.W.de Silva, and J.C.Van Winssen, “Least Squares Adaptive Control for TrajectoryFollowing Robots,” Journal of Dynamic Systems, measurement and Control, Transactions of ASME, Vol.109, No.2, June 1987[4] S.Arimoto and F.Miyazaki, “Stability and Robustness of PID Feedback Controlfor Robot Manipulators of Sensory Capability,” Third International Symposium ofRobotics Research, Gouvieux, France, 1985[5] J.J.Craig, P.Hsu, and S.S.Sastry, “Adaptive control of mechanical manipulators,” IEEEInternational Conference on Robotics and Automation, San Francisco, March 1986[6] J.J.Craig, Adaptive Control of Mechanical Manipulators, Addison-Wesley, 1988[7] W.J.Book, “Recursive Lagrangian dynamics of flexible manipulator arms,” The International Journal of Robotics Research, Vol.3, No.3, ppWl-lOl, Fall 1984[8] C.W.de Silva, and H.Shibly, “Modeling of Friction in Robot Dynamics,” Modeling andSimulation, Vol.2, Part 4, Industrial Society of America Publication, May 1991[9] K.D.Young, “Controller design for a manipulator using theory of variable structuresystem,” IEEE Transactions on System, Man and Cybernetics, No.8, 1978[10] J.J.E.Slotine, and S.S.Sastry, “Tracking control of nonlinear system using sliding surface, with application to robot manipulators,” International Journal of Control, Vol.38,1983[11] J.J.E.Slotine and W.Li, “On the Adaptive Control of Robot Manipulators,” International Journal of Robotics Research, vol.6, pp49-57, 1987[12] K.J.Astrom and B.Wittenmark, Adaptive Control, Addison-Wesley, 1989[13] Y.D.Landau, Adaptive Control: The Model Reference Approach, Marcel Dekker, N.Y.,197960Bibliography 61[14] Y.Stepaneko, and J.Yuan, “Model reference control of nonlinear plants with uncertainand unbounded terms,” lEE Proceedings-D, Vol.138, No.6, pp535-5’12, November 1991[15] J.J.E.Slotine, and W.Li, “On the adaptive control of robot manipulators,” International Journal of Robotics Research, Vol.6, No.3, 1987[16] M.Uchiyama, “Formation of high speed motion patern of mechanical arm by trial,”Transactions on Soc. Instr. Contr. Eng., Vol.19, No.5, 1978[17] J.J.Craig, “Adaptive control of manipulators through repeated trials,” General MotorsResearch Report, GMR-4530, December, 1983[18] C.W.de Silva, and A.G.J.MacFarlane, “A hierarchièal control structure for roboticmanipulators,” Procedings of the IFAC Workshop in Artificial Intelligence in Real-timeControl, Swansea, Wales, 1988[19] C.W.de Silva, and A.G.J.MacFarlane, “Knowledge-based control approach for robotmanipulators,” International Journal of Control, Vol.50, No.1, 1989[20] C.W.de Silva, and A.G.J.MacFarlane, Knowledge-Based Control with Application toRobots, Springer-Verlag, Berlin, 1989[21] M.W.Spong and M.Vidyasagar, Robot Dynamics and Control, John Wiley & Sons,1989[22] C.W.de Silva, Control Sensors and Actuators, Prentice Hall, Inc., Englewood Cliffs,NJ, 1989[23] R.M.Goor, “A new approach to minimum time robot control,” General Motor ResearchLabs., Warren, MI, Res.Piib.GMR-4869[24] Tzyh-Jong Tarn, Antal K. Bejczy, Xiaoping Yun, and Zoufeng Li, “Effect of MotorDynamics on Nonlinear Feedback Robot Arm Control,” IEEE Transactions on Roboticsand Automation, Vol.7, No.1, February 1991[25] D.M.Dawson, Z.Qu, and J.J.Carrol, “Tracking Control of Rigid-Link Electrically-Driven Robot Manipulator,” International Journal of Control, Vol.56, 1992[26] Ge, S.S., and Postlethwaite, I., 1993, “Nonlinear Adaptive Control of Robots IncludingMotor Dynamics”, Proceedings of the American Control Conference,pp1423-1427.[27] C.G. Goodwin, and K.S. Sin, Adaptive Filtering Prediction and Control, Prentice-Hall,1984[28] B.Armstrong, O.Khatib, and J.Burdick, “The Explicit Dynamic Model and Inertial Parameters of the PUMA 560 Arm,” Proceedings of 1986 IEEE international Conferenceon Robotics and Automation, April, 198662Appendices.1 List of C Functionsclear_flag()Description: clear all control flagsType: voidInput parameters: noneReturn values: nonecomputeControlLaw()Type: voidDescription: compute default control lawInput parameters: PID gainsReturn values: control signalsOther functions called:read_cntrO;readJointPosition0;flndJoint Velocity().dot()Description: plot a point on the CRTType: voidInput parameters: integer x, integer y, integer c(x,y): coordinates of the point;63C: color of the point.Return values: noneemg_stop()Type: voidDescription: stop the robot in case of emergencyInput parameters: noneReturn values: noneend_test()Type: voidDescription: end experimentInput parameters: noneReturn values: nonefindJointVelocity()Type: longDescription: find joint velocityInput parameter: joint numberReturn values: joint velocity in pulsesinit_encoder()Type: voidDescription: initialize encoder boardsInput parameters: integer ip, integer mcr, integer icr, integer occr, integer b_addr64Return values: noneOther functions called:write_ipO;dlyO.init_pic()Type: voidDescription: initialize the PIGInput parameters: integer ip, integer icwl, integer icw2, integer icw4, integer ocwl, shortb_addrReturn values: noneOther functions called:write_ipO;read_ip(}.init_vect()Type: voidDescription: initialize interrupt handlerInput parameters: pointer func_ptr, unsigned inirReturn values: noneOther function called: _dos_setvect 0.int_handler()Type: voidDescription: interrupt handler65Input parameters: noneReturn values: control flagsOther function called:setCntrlUpdateFreq;set TimerO;write_ip(};setSamplingFreq;findJoint VelocityQ.moveJoint0Type: integerDescription: apply a voltage signal on a DC motorInput parameters: integer joint number; float voltageReturn values: statusstatus=1: OKstatus—0: erroroutputCntrlSgnl()Type: voidDescription: send control signals to power amplifiersInput parameters: noneReturn values: error code O1power_on()Type: integer66Description: allow to turn on the high voltage powerInput parameters: noneReturn values: statusstatus=1: OKstatus=0: errorOther function called:send..ssron (}.preprocessing()Type: integerDescription: preprocess timing dataInput parameters: float tF, integer freqtF: final experimental timefreq: sampling frequencyReturn values: integer statusstatus=1: OKstatus=0: errorreadJointPosition()Type: longDescription: read joint position from encodersInput parameters: joint numberReturn values: joint position in pulsesOther functions called:read_cntrO.67readManualCntrol()type: integerDescription: read custom teach pendantInput parameters: noneReturn values: number of pulsessysJnit()type: integerDescription: system initializationInput parameters: ip, mcr, icr, occr, qr, bsae addresses, etc.Return values: statusstatus=1: OKstatus_—O: errorOther functions called:init_encoder(};write_readO;read_enread_olO;load_cu trO;load_prQ;write_ip(};init_pic(};init_vect(’,);interrupt_handlerQ.68setSamplingFreq( )Type: voidDescription: set sampling frequencyInput parameters: integer ip, integer samplingSetNum, integer bAddrM2Return values: noneOther function called:load_cntrO.setTimer()Type: voidDescription: set experiment clockInput parameters: integer ip7, integer set TimerNum, integer bAddrM2Other function called:load_cntrQ.send_ssron()Type: integerDescription: send ssron signalInput parameters: nonereturn values: statusstatus=1: OKstatus=0: errorvidset()Description: set video modeType: voidInput parameters: noneReturn values: none6970.2 A Template Test FileA test template file is listed below. It tests the step response of the waist of the PUMA robot. Ithas been succesfully adopted to implement intelligent tuning for PUMA robot and to implementadaptive control of the PUMA robot./*********************************************************************Industrial Automation Laboratory,Department of Mechanical Engineering,University of British Columbia.IMPORTANT!For the safety of the users and of the property of theforementioned laboratory, read the following before youcarry on any experiment:This is a template file to demonstrate the structure requiredby a real-time control application on PUMA new testbed. Thefile is developed for a particular test and provided “AS IS”.Any implied warranties of fitness for any other tests are herebydisclaimed.Users are assumed to possess a good knowledge of real-timecontrol of industrial robots. Even so, they are encouraged to71gain a good understanding of this template file as well as thetest facilities before carrying on any experiment.Description:Prototype for testing dynamic step response of the waist ofPUMA 560 robot under a PID controller.Developed byYuchen Zhouunder the supervision ofDr.de SilvaFeb.28, 1993UpdatedMarch 26, 1993Input: gains of the PID controller.Output: Step response of the waist of PUMA 560 robot.*include <stdio.h>72*include <dos.h>Sinclude <math.h>*include <ctype .h>#include <io.h>*include <float .h>*include “puma.h”#include “cnfig .h”extern unsigned short enc_base;extern mt un_mask;extern long intNuxn;extern float cntrlSgnl[6);extern mt samplingFreq;extern long samplingSetNuin;extern mt errorFlag,errorCode;extern mt initialFlag, cntrlcomputeFlag;ext em mt custoinLawFlagl , customLawFlag2;extern long keyTimes;extern mt displayCntrl;extern mt recDataCntrl, recDatalntvl, recDataPointer;extern float tFinal;extern mt timeOver ,timerRepeatNum;extern long timerSetNum,timerSetNumLast;73extern long jointPositionDes[6] ,jointPosition[6] ,jointpositionLast[6];extern long jointPositionErr,jointPositionErrLast [6] ,dErr;extern long jointVelocityDes [6] ,jointVelocity[6] ,jointVelocityErr[6];void main(){static float kp[6] ,kdC6] ,kv[6] ,ki[6];static char *ch,w[132];static float outputDatal £800] ,outputData2 [800] ,outputData3 [800],outputData4 [800] , outputDataS [800] , outputData6 [800];float maxDatal ,maxData2,maxData3 ,maxData4 ,maxDataS ,maxData6;float tmpl ,tmp2 ,tmp3 ,tmp4;float tlnitial,tFinal,t,dt;void read_test_dataO;void clear_flagO;mt sys_initO;mt power_onO;void begin...testO;void end_testO;void emg_stopO;long readJomntPositionO;long fmndJomntVelocityO;74void computeControlLawO;void computeCustoniLawlO;void computeCustomLav2Q;void outputCntrlSgnlO;void record_dataO;void data_outputO;ch=w;clear_f lag0;read_test_data(kp ,kd ,kv ,ki);printf (“Initialize system.\n”);if(!sys_init0) {printf (“System initialization failed. \n”);exit (1)} else initialFlag=1;tFinal25.O;samplingFreq= 1000;if C ! preprocessing (tFinal, samplingFreq)) {printf(”Error Y.d\n’, errorCode);75exit (1)}/* begin test */begin..testO;printf(”Turn on the PUMA arm power with caution.\n”);if(!pover_onO) {printf(”Hardware error! Unable to turn on the power.\n”);exit (1)}cntrlComputeFlag=1;timeOver=O;recDataCntrl=O;recDataPointer=O;vhile(!timeOver & !errorFlag) {if (cntrlComputeFlag) {/* press key UpH to implement control law 1 */if (customLawFlagl)computeCustomLawl(cntrlSgnl ,kp ,kd);/* press key to implement control law 2 */else if(customLawFlag2)76computeCustomLaw2(cntrlSgnl kp ,kv);else computeControlLaw(cntrlSgnl);outputCntrlSgnl0;/* IcutrlSgnll < 5.0 v *1if C (recDataCntrlrecDatalntvl) & (recDatapointer<800)) {tmp(float)j ointPosition[0];record_data(tmp ,outputData2 ,recDataPointer);tmp=(float)jointPositionDes [0];record_data(tmpoutputData1 ,recDataPointer);recDataPointer++;recDataCntrl=0;}recDataCntrl++;cntrlComputeFlag=0;}}end_test 0;/* data output */data_output (outputDatal ,outputData2,800);}
- Library Home /
- Search Collections /
- Open Collections /
- Browse Collections /
- UBC Theses and Dissertations /
- Real-time implementation of adaptive control of industrial...
Open Collections
UBC Theses and Dissertations
Featured Collection
UBC Theses and Dissertations
Real-time implementation of adaptive control of industrial robots Zhou, Yuchen 1994
pdf
Page Metadata
Item Metadata
Title | Real-time implementation of adaptive control of industrial robots |
Creator |
Zhou, Yuchen |
Date Issued | 1994 |
Description | A robot working in an industrial environment has some uncertainties in its dynamics and is subject to some external disturbances. Application of adaptive control to the robot is intended to tolerate these uncertainties and disturbances by letting the robot system learn and improve its performance as it operates. Usually, adaptive control algorithms assume that the control torque can be generated as desired. Since most of industrial robots are actuated by electrical DC motors, this assumption neglects actuator dynamics. In fact, the behavior of the actuators (DC motors) is governed by a third order differential equation, and sometimes the actuator dynamics will dominate the robot dynamics. Very few experiments have been reported on the adaptive control of robots incorporating actuator dynamics. Development, stability analysis and implementation of an adaptive control scheme that incorporates actuator dynamics is the core of this thesis research. To evaluate adaptive control and to compare its performance with other control schemes through real-time implementation, a robot testbed is developed by retrofitting an industrial robot with a custom-built controller. The testbed features an open hardware architecture, high computational capacity and good software programmability. The development of the testbed is also an essential part of the thesis research. The adaptive control scheme incorporating actuator dynamics is implemented on this testbed. The effects of the actuator dynamics are studied. Experiments show that the performance of the robot, with the adaptive control scheme, is significantly improved when compensated for the actuator dynamics. The comparison between the proposed control scheme and the conven tional joint PD controller shows that application of adaptive control to an industrial robot can significantly improve the performance of the robot with minimal extra cost. |
Extent | 1487842 bytes |
Genre |
Thesis/Dissertation |
Type |
Text |
FileFormat | application/pdf |
Language | eng |
Date Available | 2009-03-06 |
Provider | Vancouver : University of British Columbia Library |
Rights | For non-commercial purposes only, such as research, private study and education. Additional conditions apply, see Terms of Use https://open.library.ubc.ca/terms_of_use. |
DOI | 10.14288/1.0081033 |
URI | http://hdl.handle.net/2429/5618 |
Degree |
Master of Applied Science - MASc |
Program |
Mechanical Engineering |
Affiliation |
Applied Science, Faculty of Mechanical Engineering, Department of |
Degree Grantor | University of British Columbia |
GraduationDate | 1994-11 |
Campus |
UBCV |
Scholarly Level | Graduate |
AggregatedSourceRepository | DSpace |
Download
- Media
- 831-ubc_1994-0669.pdf [ 1.42MB ]
- Metadata
- JSON: 831-1.0081033.json
- JSON-LD: 831-1.0081033-ld.json
- RDF/XML (Pretty): 831-1.0081033-rdf.xml
- RDF/JSON: 831-1.0081033-rdf.json
- Turtle: 831-1.0081033-turtle.txt
- N-Triples: 831-1.0081033-rdf-ntriples.txt
- Original Record: 831-1.0081033-source.json
- Full Text
- 831-1.0081033-fulltext.txt
- Citation
- 831-1.0081033.ris
Full Text
Cite
Citation Scheme:
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>
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-0081033/manifest