Aansturen en afregelen van een robot met 6 vrijheidsgraden Laurent Merlevede Promotoren: dhr. Stijn Derammelaere, dhr. Simon Houwen Masterproef ingediend tot het behalen van de academische graad van Master of Science in de Industriële Wetenschappen: Elektromechanica Vakgroep Industrieel Systeem- en Productontwerp Voorzitter: prof. Kurt Stockman Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2013-2014 Aansturen en afregelen van een robot met 6 vrijheidsgraden Laurent Merlevede Promotoren: dhr. Stijn Derammelaere, dhr. Simon Houwen Masterproef ingediend tot het behalen van de academische graad van Master of Science in de Industriële Wetenschappen: Elektromechanica Vakgroep Industrieel Systeem- en Productontwerp Voorzitter: prof. Kurt Stockman Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2013-2014 Voorwoord Na deze aangename en leerrijke periode als student ben ik trots om de voorbije vier jaar te kunnen bekronen met deze masterproef. Het schrijven van deze thesis was voor mij zowel een uitdaging als een kans om mijn grote interesse voor regeltechniek en mechatronica naar voren te brengen. Daarnaast schiep het niet alleen de mogelijkheid om de kennis die ik jdens mijn opleiding verwierf ten volste te benu en, maar deze ook op vele vlakken uit te breiden. Het feit dat deze masterproef niet louter zuiver theore sche kennis vereiste, maar ook een groot deel prak sche kennis, sloot perfect aan bij mijn visie op een uitdagend project. De mogelijkheid om een zes-assige robotarm aan te sturen en hierbij de controller volledig eigenhandig te ontwerpen kon ik dan ook niet aan me laten voorbijgaan. De vereiste begeleiding kon natuurlijk niet ontbreken om het uiteindelijke werk tot stand te brengen. Eerst en vooral zou ik graag mijn promotoren dhr. S jn Derammelaere en dhr. Simon Houwen willen bedanken voor hun inzet en de nodige steun doorheen mijn masterproef. Ik kon op elk moment bij jullie terecht voor vragen of opmerkingen die met veel plezier werden beantwoord. Hierdoor kon ik dan ook steevast met hernieuwd enthousiasme verder werken. Het was een genoegen om met jullie samen te werken. Ook zou ik graag dhr. S jn Huysentruyt willen bedanken voor zijn grote bijdrage aan mijn masterproef. Dankzij de inspanningen in het kader van zijn eindwerk, dat aan de basis lag van het mijne, kreeg ik de kans om dit project tot een goed einde te brengen. Verder wil ik dhr. José Vangheluwe bedanken die mij telkens bijstond bij het technische aspect van het project. De samenwerking met u was een aangename ervaring. Ten slo e wil ik mijn ouders en vrienden bedanken voor hun ondersteuning en advies jdens deze boeiende periode. Merlevede Laurent Juni 2014 i Abstract The University of Ghent Campus Kortrijk has a KUKA KR15/2 industrial robot at its disposal. However, its controller is outdated and can be defined as a black box, which means there is no knowledge of its internal func onality. Therefore the opportunity was given to master students to design and implement every aspect of an en rely new controller based on modern technology. In the first place, an open architecture subs tutes the black box which gives a be er apprehension of the controller's internal func onality. Secondly, abundant knowledge on several theore cal and prac cal aspects can be obtained throughout the process. This thesis is the follow-up of the master project wri en by S jn Huysentruyt en tled Drive and Control of a 6-axis Robot. The project in ques on describes a selec on of standard components which are indispensable to build a real- me robot controller, such as several drives and an industrial PC. The choice was made to build the controller by using Beckhoff components as their automa on pla orm TwinCAT®3 provides a MATLAB®/Simulink integra on. In this way, it is possible to design a control algorithm in MATLAB®/Simulink and compile it into a TwinCAT®object which can be run in real- me in the industrial PC. This creates the opportunity to develop every aspect of the posi on regula on for each axis of the robot using the MATLAB®/Simulink Engineering Environment. This first thesis also provides the incen ve for tuning the axes of the robot by designing a closed loop regula on for the last three axes. These axes are necessary to control the orienta on of the end of the arm (i.e. the wrist). In addi on, the forward and inverse kinema c transforma ons were examined. This thesis, on the other hand, handles the tuning of the first three axes. These axes mainly control the posi on of the end effector. By execu ng a system iden fica on, the necessary bode characteris cs of the axis can be acquired. A erwards, considering the bode stability criterion, a phase margin can be premised to obtain a robust and dynamic PI velocity controller. Once the desired closed-loop characteris cs have been achieved, a suitable propor onal gain for the posi on controller can be found. However, the dynamic proper es of the first and the second axis in par cular, vary in func on of the other axes' posi on. Accordingly, a posi on controller of which the propor onal gain adjusts to these varying proper es, has been developed. In this way, all the axes of the industrial robot have been equipped with a stable closed-loop posi on regula on. In order for the end effector to reach a desired pose (posi on and orienta on), both the forward and inverse kinema c transforma on need to be implemented. The first is necessary to calculate the actual pose in func on of the actual axes' posi on, while the la er provides the desired posi on for every axis in func on of the desired pose. The transforma ons as well as the closed-loop regula ons for each axis have been implemented in a MATLAB®/Simulink algorithm, compiled into a TwinCAT®object and run in real- me in the industrial PC. By doing so, the end effector of the robot can now accurately achieve the desired posi on and orienta on. For numerous applica ons, it is requisite that the end effector delineates a certain defined path. Dependent on the final applica on of the robot, there are two different ways in which a desired trajectory can be described. As for a pick and place unit, the only concern is that the desired end posi on is a ained fast and accurately. This is called a point-to-point mo on. In applica ons with welding robots on the other hand, every discrete point of the trajectory needs to be reached as precise as possible. This is called a trajectory mo on. Both mo ons are described in this thesis as well as the applied modifica ons to the closed-loop posi on regula ons for op mizing the behaviour of every axis during the mo on. Finally, a trajectory generator has to be developed as to provide the kinema c algorithm with the required pose coordinates to calculate the posi on of the axes. In this way, the end effector is able to execute a user-defined path. ii Lijst met a or ngen A AC Alterna ng Current C Cascade Parallel E EtherCAT Ethernet for Control Automa on Technology F FFT FM Fast Fourier Transform Fasemarge I I-ac e IEC IGBT iPC Integrerende ac e Interna onal Electrotechnical Commission Insulated Gate Bipolar Transistor industriële PC N NVRAM Non-vola le random-access memory P P-ac e Propor onele ac e iii P-regelaar PI-regelaar PID-regelaar PC PLC Pose Propor onele regelaar Propor oneel integrerende regelaar Propor oneel, integrerend en differen ërende regelaar Personal Computer Programmable Logic Controller Posi e en oriënta e T es mate TwinCAT Transfer func on es mate The Windows Control and Automa on Technology X XAE XAR XAT eXtended Automa on Engineering eXtended Automa on Run me eXtended Automa on Technology iv Inhoudsopgave 1 Inleiding 1 2 KUKA KR15/2 industriële robot 2.1 Mechanische opbouw . . . . . . . . . . . . . 2.2 Hardware van de nieuwe sturing . . . . . . . 2.2.1 AX5000-serie servo drives . . . . . . 2.2.2 CX2030 Industriële PC . . . . . . . . 2.2.3 EtherCAT® . . . . . . . . . . . . . . . 2.2.4 Overzicht hardwarema ge opstelling . . . . . . 4 4 5 5 6 7 7 . . . . . . . . . . 8 8 11 14 15 16 16 16 23 26 29 . . . . . 30 32 32 34 36 38 . . . . 39 39 41 41 43 6 Conclusies 6.1 Behaalde resultaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Sugges es voor verder onderzoek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 45 46 A KUKA KR15/2 A.1 Mechanische gegevens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Elektrische gegevens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 48 50 3 Posi 3.1 3.2 3.3 3.4 3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eregeling van de robot-assen Cascaderegeling . . . . . . . . . . . . . . . . . . . . . . . . . . Systeemiden fica e . . . . . . . . . . . . . . . . . . . . . . . . Ontwerpen van regelaars aan de hand van bodekarakteris eken 3.3.1 Instellen snelheidsregelaar . . . . . . . . . . . . . . . . 3.3.2 Instellen posi eregelaar . . . . . . . . . . . . . . . . . Afregelen van de assen . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Afregelen van As 1 . . . . . . . . . . . . . . . . . . . . 3.4.2 Afregelen van As 2 . . . . . . . . . . . . . . . . . . . . 3.4.3 Afregelen van As 3 . . . . . . . . . . . . . . . . . . . . Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Kinema sche transforma e 4.1 Berekenen van de ashoeken in func e van de gewenste posi 4.1.1 Berekenen van de hoeken θ1 , θ2 en θ3 . . . . . . . . 4.1.2 Berekenen van de hoeken θ4 , θ5 en θ6 . . . . . . . . 4.2 Implementa e kinema sche transforma e . . . . . . . . . 4.3 Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Traject 5.1 Punt-tot-punt-beweging . . . . . . . 5.2 Baanbeweging . . . . . . . . . . . . 5.2.1 Opbouw trajectgenerator . 5.2.2 Performan e baanbeweging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e en oriënta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e van de eindeffector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v B MATLAB Code B.1 Systeemiden fica e: opstellen bodekarakteris ek . . . . . . . . B.2 As 1: berekening afstand R . . . . . . . . . . . . . . . . . . . . B.3 As 2: berekening afstand R . . . . . . . . . . . . . . . . . . . . B.4 Trajectgenerator: baanbeweging X-coördinaat . . . . . . . . . . B.5 Trajectgenerator: baanbeweging Y-coördinaat . . . . . . . . . . B.6 Trajectgenerator: baanbeweging Z-coördinaat . . . . . . . . . . B.7 Trajectgenerator: baanbeweging roll-, pitch-, en yaw-coördinaat B.8 Het kinema sch model voor de KUKA KR15/2 industriële robot . B.9 Snelheidsfeedforward . . . . . . . . . . . . . . . . . . . . . . . B.10 Volledig MATLAB®/Simulink model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 51 51 52 53 54 54 55 56 58 59 vi Lijst van figuren 1.1 1.2 1.3 KUKA KR15/2 industriële robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cascaderegeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cascaderegeling, torque mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 3 2.1 2.2 2.3 2.4 2.5 Standaard zes-assige robotarm . . . . . . . . . . . . . De geselecteerde Beckhoff servo drives en remchopper CX2030 Industriële iPC van Beckhoff . . . . . . . . . . Overzicht eXtended Automa on Technology (XAT) . . . Overzicht hardwarema ge opstelling . . . . . . . . . . 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27 3.28 3.29 3.30 4.1 4.2 4.3 4.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 6 6 7 Een algemeen gesloten regelsysteem . . . . . . . . . . . . . . . . . . . . . . . . . . . Cascaderegeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Situering regelaars in posi on mode . . . . . . . . . . . . . . . . . . . . . . . . . . . Situering regelaars in velocity mode . . . . . . . . . . . . . . . . . . . . . . . . . . . Situering regelaars in torque mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stroomgeregeld en mechanisch proces als onbekend systeem . . . . . . . . . . . . . Opmeten van een onbekend systeem via de niet-parametrische methode . . . . . . . Bodekarakteris ek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sweep ingangssignaal (koppel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Systeemresponsie (snelheid) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bodekarakteris ek: fasemarge (FM) . . . . . . . . . . . . . . . . . . . . . . . . . . . Snelheidsregelkring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Posi eregelkring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . As 1: bodekarakteris ek (In = koppel, uit = snelheid) . . . . . . . . . . . . . . . . . . Toestand met een klein (links) en groot (rechts) massatraagheidsmoment t.o.v. de rota As 1: stapresponsie van de snelheidsregelkring . . . . . . . . . . . . . . . . . . . . . As 1: stapresponsies van de posi eregelkring (minimum iner e) . . . . . . . . . . . . As 1: stapresponsie van de posi eregelkring (minimum iner e, Kp = 12) . . . . . . . . As 1: stapresponsies van de posi eregelkring (maximum iner e) . . . . . . . . . . . . As 1: stapresponsie van de posi eregelkring (maximum iner e, Kp = 5) . . . . . . . . . As 1: afstand R in func e van θ2 , θ3 en θ5 . . . . . . . . . . . . . . . . . . . . . . . . As 2: bodekarakteris ek (In = koppel, uit = snelheid) . . . . . . . . . . . . . . . . . . As 2: stapresponsie van de snelheidsregelkring . . . . . . . . . . . . . . . . . . . . . As 2: stapresponsie van de posi eregelkring (minimum iner e, Kp = 13) . . . . . . . . As 2: stapresponsie van de posi eregelkring (maximum iner e, Kp = 9) . . . . . . . . . As 2: afstand R in func e van θ3 en θ5 . . . . . . . . . . . . . . . . . . . . . . . . . . As 3: bodekarakteris ek (in = koppel, uit = snelheid) . . . . . . . . . . . . . . . . . . . As 3: stapresponsie van de snelheidsregelkring . . . . . . . . . . . . . . . . . . . . . As 3: stapresponsie van de posi eregelkring . . . . . . . . . . . . . . . . . . . . . . . Het posi eregelalgoritme opgebouwd in MATLAB®/Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e-as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 9 10 10 11 11 12 13 13 14 16 16 17 18 18 19 20 21 21 22 23 24 24 25 26 27 27 28 29 Posi e en oriënta e van de eindeffector {b} ten opzichte van de basis {a} . . . De mogelijke rota es van het assenstelsel {b} t.o.v. het referen estelsel {a} . . De KUKA KR15/2 in rustposi e met de gedefiniëerde assenstelsels en afstanden Zijaanzicht robotarm, berekening θ1 en θ2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 31 31 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii 4.5 4.6 4.7 4.8 4.9 4.10 4.11 Bovenaanzicht robotarm, berekening θ1 . . . . . . . . . . . . . . . . . . . . Oriënta e assenstelsel {g} t.o.v. assenstelsel {e} . . . . . . . . . . . . . . . . Voorwaartse kinema ca: {e} t.o.v. {a} . . . . . . . . . . . . . . . . . . . . . Kinema ca: robotarm in rustposi e . . . . . . . . . . . . . . . . . . . . . . Kinema ca: aanpassen Z-coördinaat, oriënta e {g} ongewijzigd . . . . . . . . Kinema ca: aanpassen Y-coördinaat, oriënta e {g} ongewijzigd . . . . . . . . Kinema ca: aanpassen oriënta e van de eindeffector, posi e {g} ongewijzigd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 34 34 37 37 37 37 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 Punt-tot-punt-beweging . . . . . . . . . . . . . . . . . . . . . . . Posi eregelkring met prefilter . . . . . . . . . . . . . . . . . . . As 3: stapresponsie van de posi eregelkring . . . . . . . . . . . . As 3: stapresponsie van de posi eregelkring met 2e orde prefilter Baanbeweging . . . . . . . . . . . . . . . . . . . . . . . . . . . . Traject: posi es i.f.v. de jd . . . . . . . . . . . . . . . . . . . . . Trajectgenerator in MATLAB®/Simulink . . . . . . . . . . . . . . . As 1: posi eresponsie baanbeweging . . . . . . . . . . . . . . . Posi eregelkring met snelheidsfeedforward . . . . . . . . . . . . As 1: posi eresponsie baanbeweging met snelheidsfeedforward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 39 40 40 41 41 42 43 44 44 A.1 A.2 A.3 A.4 KUKA KR15/2 industriële robot Zijaanzicht KUKA KR15/2 . . . Bovenaanzicht KUKA KR15/2 . Motorbeschrijving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 49 49 50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii 1 Inleiding Deze masterproef beschrij het ontwerp van een controle-algoritme voor een zes-assige industriële robot (Figuur 1.1). In dit inleidend hoofdstuk wordt eerst en vooral kort het probleem geschetst, waarna de doelstellingen van het project aan bod komen. Steeds zal voor elke doelstelling de werkwijze en methodiek toegelicht worden. A5 + A4 + -+ A6 + -- -- -A2 A3 + -- -- + A1 Figuur 1.1: KUKA KR15/2 industriële robot In het kader van de vorige masterproef [1] werd de robotarm reeds voorzien van een open controller. Dit maakt het mogelijk om de interne werking van de controller te doorgronden en deze te op maliseren met behulp van hedendaagse technologie. Deze masterproef tracht dit veelomva end project verder uit te werken en behandelt meer specifiek het vraagstuk over hoe de volledige zes-assige robot op een efficiënte manier op maal kan worden afgeregeld. Eenmaal elke as voorzien is van een performante posi eregeling wordt nagegaan op welke manier de eindeffector van de robot kan worden geposi oneerd en georiënteerd met behulp van alle assen. Bovendien moet geverifieerd worden hoe de eindeffector in func e van de jd een gewenst traject kan uitvoeren en op welke manier het gedrag van de robot-assen jdens deze bewegingen kan worden geop maliseerd. Met andere woorden is het algemeen doel van deze masterproef het adequaat afregelen en aansturen van een zes-assige robot zodat deze in staat is om snel en nauwkeurig een gewenst traject uit te voeren. Om dit te verwezenlijken kan deze masterproef in een vij al stappen worden ingedeeld: 1. Verzamelen van informa e over de KUKA robot: Alvorens de controller op een doeltreffende manier te kunnen opbouwen, moeten allerlei gegevens over de robot opgezocht worden. Dit betre zowel de elektrische en mechanische informa e van de robotarm als de hardwarema ge opbouw van de sturing. Om dit te verwezenlijken, kunnen eenvoudigweg enkele datasheets geraadpleegd worden. Voor technische data zoals de afme ngen en het haalbaar bereik van de robot, kan worden verwezen naar [2]. Vooraleer de robot in gebruik te nemen, kan eveneens de informa e over het noodzakelijke onderhoud van de robot doorgenomen worden [3]. Voor allerlei elektrische en mechanische data van de verschillende AC 1 servomotoren zoals technische data, koppel-toerental-karakteris eken, etc... kan hoofdzakelijk gerefereerd worden naar [4] en [5]. De voornaamste gegevens kunnen eveneens worden teruggevonden in bijlage A. Daarnaast moet een beter inzicht verkregen worden in de hardwarema ge opstelling van de controller. Hiervoor kan voornamelijk de voorgaande masterproef geraadpleegd worden. In hoofdstuk 2 wordt echter de volledige hardwarema ge opstelling bondig toegelicht. 2. Vertrouwd geraken met het automa seringspla orm TwinCAT®3 van Beckhoff: De robotarm beschikt over zes assen die elk door een servomotor worden aangedreven (Figuur 1.1). Om ervoor te zorgen dat de motoren het gewenste koppel leveren aan het mechanische systeem, worden deze in gesloten-lus aan enkele servo drives gekoppeld. Om de robotarm in gebruik te nemen is het uiterst belangrijk dat deze drives op een correcte wijze geparametreerd, geconfigureerd en in gebruik genomen worden. Om de fundamentele vaardigheden en kennis te verwerven om het systeem te configureren en in werking te stellen, kan hoofdzakelijk het Beckhoff Informa on System [6] geraadpleegd worden. Tijdens dit leerproces wordt ook een gebruikershandleiding opgesteld met concrete richtlijnen over het aansturen van de KUKA KR15/2 industriële robot met behulp van het automa seringspla orm TwinCAT®3 [7]. 3. Afregelen van de volledige robotarm: Vervolgens moet iedere robot-as van een performante posi eregelkring voorzien worden zodat elke as steeds nauwkeurig kan worden geposi oneerd. θ* + - * Positie ω + Regelaar - * Snelheid T T i Regelaar i* + - Stroom Regelaar IGBT’s i Motor T Proces ω int θ Figuur 1.2: Cascaderegeling Omdat iedere as over een servomotor met feedback beschikt, kan de cascaderegeling gebruikt worden zoals geïllustreerd in figuur 1.2. Er wordt gekozen om de servo drives in torque mode te plaatsen (Figuur 1.3). Op die manier zijn de snelheids- en posi eregelaar werkzaam in de industriële PC (iPC) waardoor ze eigenhandig kunnen worden ontworpen. De cascaderegelkring wordt van binnen naar buiten uit opgebouwd waarbij drie grote onderdelen kunnen worden herkend; de stroomregelkring (werkzaam in de drive), de snelheidsregelkring en de posi eregelkring (werkzaam in de iPC). Met behulp van een systeemiden fica e kunnen de nodige bodekarakteris eken van het onbekende mechanisch proces worden opgesteld om aan de hand hiervan de op male parameters van de snelheidsregelaars te achterhalen. Na het gedrag van de snelheidsregelkring te verifiëren, kan via een stapresponsie van de posi eregelkring de posi eregelaar ingesteld worden. Hierbij moeten alle assen snel, vloeiend en nauwkeurig hun wensposi e bereiken. Voor het op maal afregelen van de posi eregelkring moet de invloed van de variërende massatraagheidsmomenten ten opzichte van de rota e-assen onderzocht worden. Aan de hand hiervan kan een adap eve regelstrategie worden opgezet. 4. Implementeren van een kinema sch algoritme: Eenmaal elke as afgeregeld is, moet de volledige robotarm aangestuurd worden. Om dit te verwezenlijken zal een kinema sch algoritme met behulp van de noodzakelijke kinema sche transforma es opgebouwd en geïmplementeerd moeten worden. Hierbij zal gebruik gemaakt worden van de voorwaartse en de inverse kinema sche transforma es [1]. Na het bestuderen en begrijpen van deze transforma es kan het algoritme 2 worden geïmplementeerd en geop maliseerd in MATLAB®/Simulink zodat de eindeffector door het geschikt aansturen van elke as de gewenste posi e en oriënta e bereikt. 5. Ontwikkelen van een trajectgenerator: Nadat het mogelijk is om de eindeffector van de robotarm op een adequate wijze te posi oneren en te oriënteren, moet een algoritme worden ontwikkeld dat een gewenst traject voor de eindeffector vertaalt naar concrete posi e-setpoints voor de robot-assen in func e van de jd. Om dit te realiseren zal een trajectgenerator worden opgebouwd en geïmplementeerd in MATLAB®/Simulink. Deze generator moet op elk moment zorgen voor het genereren van de gewenste pose coördinaten (posi e en oriënta e). Vervolgens kunnen deze coördinaten met behulp van het geïmplementeerde kinema sch model omgerekend worden naar de gewenste hoekverdraaiingen voor elke as. Hierdoor zal de eindeffector van de robot na een bepaalde jd het gewenste traject hebben afgelegd. Daarnaast is ook een analyse van de wijze waarop een traject kan uitgevoerd worden een vereiste. A ankelijk van de toepassing kan een parcours op twee verschillende manieren afgelegd worden, namelijk door middel van een punt-tot-punt- of een baanbeweging. In beide gevallen kan worden nagegaan in welke mate de robot het aangelegde traject volgt en hoe het gedrag indien nodig kan worden geop maliseerd door de nodige modifica es aan de posi eregelkring aan te brengen. AX5000DDrivesDenDremchopper ResolverDaansluitingen IndustriëleDPC ω-DθD θ’ + Positie Regelaar - θD ω’+ T’ Snelheid Regelaar - T’ T’ ω i’ + T i Stroom Regelaar - i IGBT’s MotorDaansluitingen Ext.DremDR MATLAB/Simulink θ’ + - Positie Regelaar ω’+ - Snelheid Regelaar MechanischDproces T’ i’ + T i - Stroom Regelaar IGBT’s i Motor T Proces ω int θD Figuur 1.3: Cascaderegeling, torque mode 3 2 KUKA KR15/2 industriële robot 2.1 Mechanische opbouw De voor dit project beschikbare robot is een standaard zes-assige KUKA KR15/2 industriële robot. Mechanisch is een industriële robot een geheel van starre lichamen gekoppeld met behulp van verstelbare verbindingen. Binnen de mechanica wordt er echter niet gesproken over een star lichaam of een verbinding, maar veeleer over links en joints. De posi e van een bepaalde link kan op ieder moment aangeduid worden met X-, Y- en Z-coördinaten ten opzichte van een referen epunt. Bovendien hee een link niet alleen een posi e maar ook een oriënta e, die wordt bepaald door een hoekverdraaiing ϕr , ϕp , ϕy . De posi e en oriënta e coördinaten vormen samen de pose coördinaten. Indien een structuur zoals een industriële robot opgebouwd is uit meerdere links, kan het aantal vrijheidsgraden snel oplopen. Maar de joints van de robot zullen echter zorgen voor het beperken van het aantal vrijheidsgraden. Het minimum aantal coördinaten dat nodig is om een structuur te beschrijven bepaalt het aantal vrijheidsgraden [8]. Gezien de KUKA KR15/2 beschikt over zes assen die elk door een aparte servomotor worden aangedreven, kan de pose (posi e en oriënta e) van het eindpunt of de eindeffector van de robot ten opzichte van een referen epunt volledig beschreven worden met behulp van de ashoekverdraaiingen θ1 , θ2 , θ3 , θ4 , θ5 en θ6 . Eveneens kan de posi e en oriënta e beschreven worden aan de hand van de pose coördinaten van de eindeffector X, Y, Z, roll, pitch en yaw. Met andere woorden zijn er telkens minimum zes coördinaten nodig om het systeem te beschrijven. Hieruit volgt dat de robot beschikt over zes vrijheidsgraden. Doorgaans komt het aantal vrijheidsgraden van een robot overeen met het aantal beschikbare assen. Op basis van figuur 2.1 kan de func onaliteit van Yeind Pols elke as van de standaard zes-assige robot verduidelijkt {b} Bovenarm worden. Algemeen geldt dat indien een robot beschikt + A4 A5 + over twee assen, om het even welk punt in één vlak -kan worden bereikt. Wordt hieraan een derde as Elleboog + + toegevoegd, dan kan de pols van de robot theore sch Xeind -voor eender welk punt in het areaal van de volledige A6 --A3 Zeind arm in een ruimte (X, Y en Z) worden geposi oneerd. Zbasis Vervolgens kan dit toegepast en verduidelijkt worden + Eindeffector A2 + A1 -met behulp van de eerste drie assen of joints van {a} -de KUKA robot (As 1, As 2 en As 3). De eerste as (As 1) zorgt voor het rotoren rond de basis, terwijl de tweede as (As 2) wordt gebruikt om de robotarm Schouder verder of dichter te laten reiken. De derde as (As 3) Basis daarentegen laat toe om de eindeffector omhoog of omlaag te bewegen. Zo kan geconcludeerd worden dat met behulp van de schouder-joint (As 2) en de Ybasis Xbasis elleboog-joint (As 3) de eindeffector voor elk punt in het XZ-vlak kan worden geposi oneerd. Wordt de Figuur 2.1: Standaard zes-assige robotarm robot uitgebreid met een derde as, die een rota e rond de basis toelaat (As 1), dan kan de eindeffector in drie dimensies geposi oneerd worden. Hieruit kan worden gededuceerd dat de eerste drie assen van de robot hoofdzakelijk zorgen voor het posi oneren van de eindeffector (X, Y en Z) of een transla e in drie dimensies van de oorsprong van het assenstelsel {b} ten opzichte van de oorsprong van het referen estelsel {a}. Hiernaast kan de eindeffector van de zes-assige robot eveneens een oriënta e opgelegd worden of een rota e van het assenstelsel {b} ten opzichte van het referen estelsel {a}. 4 In het vakjargon worden de mogelijke rota es roll, pitch en yaw genoemd. Het oriënteren van de eindeffector kan verwezenlijkt worden met behulp van de laatste drie assen As 4, As 5 en As 6. 2.2 Hardware van de nieuwe sturing Het dimensioneren van een controller door het uitdenken en selecteren van de nodige hardware is reeds gerealiseerd [1]. De gekozen componenten voor de controller worden hier echter nog even aangehaald en kort besproken. Ten slo e volgt een volledig overzicht van de hardwarema ge opstelling. 2.2.1 AX5000-serie servo drives Om alle motoren van de robot op een correcte manier in gesloten-lus aan te drijven, zijn servo drives nodig. Deze moeten de motoren op een gepaste wijze aansturen zodat het gewenste koppel steeds aan het mechanische systeem geleverd wordt. Om die reden moet eveneens de hoekposi e van elke robot-as in de drives binnengelezen worden. Zo werd in het productengamma van Beckhoff gekozen uit de AX5000-serie drives. AX5112 As 2 AX5203 As 3 & As 4 AX5203 AX5021 As 5 & As 6 Remchopper AX-Bridge AX5112 As 1 Figuur 2.2: De geselecteerde Beckhoff servo drives en remchopper Zoals in figuur 2.2 [1] weergegeven is, bestaat de selec e uit vier drives, een AX-Bridge en een remchopper. De servomotoren van de laatste vier assen (As 3 t.e.m. As 6) kunnen door hun klein vermogen (0,5 kW - 0,79 kW) en bijgevolg hun geringe nominale stroom (1,50 A - 2,10 A) per twee op één servo drive gekoppeld worden. Op die manier worden twee drives uitgespaard. De servomotoren van de eerste twee assen (As 1 en As 2) daarentegen, kunnen door hun groter vermogen (2,83 kW - 6,60 A) niet aangestuurd worden door een drive met twee servo kanalen. Daarom worden deze assen voorzien van een eigen servo drive. De AX-Bridge zorgt voor het met elkaar verbinden van de stuurspanning, de vermogenkringspanning en de tussenkringspanning van de verschillende servo drives. Tenslo e is het geheel uitgerust met een remchopper. Indien de tussenkringspanning door remenergie een bepaalde grens overschrijdt, kan dit extra vermogen met behulp van deze externe weerstanden worden gedissipeerd. 5 Figuur 2.3: CX2030 Industriële iPC van Beckhoff 2.2.2 CX2030 Industriële PC Om de servo drives aan te sturen is er een bovenliggende intelligen e nodig. Deze func e wordt ingenomen door een industriële PC (iPC) van Beckhoff (Figuur 2.3 [1]). Een iPC kan beschouwd worden als een Programmable Logic Controller (PLC) die gebaseerd is op PC technologie en Windows als besturingssysteem hee . Beckhoff biedt de mogelijkheid om PC systemen uit te breiden met een TwinCAT®3 automa seringspla orm, ook wel eXtended Automa on Technology of kortweg XAT genoemd. Zoals figuur 2.4 illustreert, is de programmeeromgeving eXtended Automa on Engineering of kortweg XAE - van dit automa seringspla orm volledig geïntegreerd in Microso Visual Studio®. Dit maakt het mogelijk om via een System Manager binnen deze ontwerpomgeving verschillende onderdelen van het gehele TwinCAT®3 project te configureren, bijvoorbeeld de I/O-apparaten, het PLC gebeuren, enz. Hiernaast kunnen objecten voor real- me toepassingen zoals het aansturen van een zes-assige robotarm, zowel volgens de IEC 61131 norm, als in C of C++ worden geprogrammeerd. Bovendien biedt het automa seringspla orm TwinCAT®3 de mogelijkheid om MATLAB®/Simulink algoritmes te integreren binnen de programmeeromgeving. Eenmaal de geprogrammeerde of gemodelleerde objecten met behulp van een geschikte compiler gecompileerd zijn, kunnen ze ona ankelijk van hun programmeertaal data met elkaar uitwisselen. PC System TwinCAT 3 Matlab® / Simulink® TwinCAT 3 Engineering Environment based on Visual Studio ® System Manager Configuration of: – I/O – PLC – C/C++ – MC – NC – CNC – Safety – others Programming NonReal-time real-time C#/.NET IEC 61131 Objectoriented extensions C/C++ Simulink Coder™ Third-party programming tool C/C++ Microsoft C Compiler IEC Compiler TwinCAT Transport Layer – ADS TwinCAT 3 Runtime PLC Object CNC Object Safety Object C Object C++ Object NC Object Simulink Object Fieldbus Figuur 2.4: Overzicht eXtended Automa on Technology (XAT) 6 Vervolgens zal het TwinCAT®3 Run me systeem - eXtended Automa on Run me of kortweg XAR - binnen het PC systeem (iPC) aan de hand van een base clock de Windows taken onderbreken en de gegenereerde objecten behandelen om deze real- me uit te voeren. Ten slo e wordt de nodige informa e via de veldbus doorgestuurd naar de drives zodat de gewenste ac es worden uitgevoerd. Verder beschikt de iPC over een Non-vola le random-access memory of kortweg NVRAM geheugen. Met behulp van dit geheugen kan data behouden worden indien de voedingsspanning wegvalt. Zo kan de posi e van iedere robot-as steeds onthouden worden indien het systeem wordt herstart. 2.2.3 EtherCAT® Om de communica e tussen de bovenliggende intelligen e (iPC) en de servo drives te voorzien, wordt een veldbus gekozen. Om ervoor te zorgen dat de robotarm vloeiende bewegingen uitvoert, moet de iPC elke 250 µs de geprogrammeerde objecten uitvoeren en data uitwisselen met de drives. Het is echter belangrijk dat de data langs beide zijden perfect kan worden gereconstrueerd. Hierdoor moet de updatefrequen e van de veldbus minstens twee keer zo groot zijn dan de frequen e van de data (bemonsteringstheorema van Nyquist-Shannon). Hieruit kan worden afgeleid dat de cyclus jd van de veldbus maximaal 125 µs mag bedragen. Zo werd geopteerd voor het gebruik van een EtherCAT®veldbus (updatefrequen e tot 10 kHz). Hoe de frames van de berichten zijn samengesteld en volgens welk protocol deze over de veldbus worden verzonden, wordt uitgebreid toegelicht in [1]. 2.2.4 Overzicht hardwarema ge opstelling In figuur 2.5 is de opstelling van de geselecteerde hardware weergegeven. Bovenaan de servo drives kunnen de resolvers worden aangesloten, terwijl onderaan aanslui ngen zijn voorzien voor de servomotoren. Op die manier kunnen de verschillende assen van de robot in gesloten-lus met de sturing worden gekoppeld. AX5000 Drives en remchopper: Resolver aansluitingen CX 2030 Industriële PC: Motor aansluitingen Ext. rem R Figuur 2.5: Overzicht hardwarema ge opstelling 7 3 Posi eregeling van de robot-assen Om de robot op een snelle en accurate wijze te kunnen posi oneren, wordt elke as voorzien van een eigenhandig ontworpen posi eregelkring. Een algemeen gesloten regelsysteem zoals in figuur 3.1 weergegeven is, bestaat hoofdzakelijk uit een regelaar, een systeem (of proces) met een actuator en een sensor. De actuator en de storingen kunnen de toestand van het systeem beïnvloeden, terwijl de sensor de werkelijk toestand van het systeem opmeet. Deze sensorwaarde wordt vervolgens teruggekoppeld om zo een gesloten-lus regelsysteem te vormen. De regelaar zorgt ervoor dat de werkelijke toestand van het systeem wordt bijgestuurd indien de wenswaarde niet langer overeenkomt met de teruggekoppelde sensorwaarde. Meestal wordt een PID-regelaar gebruikt als regelalgoritme van de regelaar. storingen wenswaarde + foutsignaal - regelaar regelwaarde actuator ingang uitgang systeem sensor Figuur 3.1: Een algemeen gesloten regelsysteem Indien het algemeen regelschema uit figuur 3.1 wordt toegepast op de beschikbare KUKA robot, kan het systeem in de figuur vervangen worden door een as van de robot met een permanent magneet motor als actuator. De resolver op de motoras kan echter de taak als sensor vervullen. Hierdoor kan vervolgens gededuceerd worden dat de assen van de robotarm gesloten-lus of servosystemen zijn. Dit stelt ons in staat om per as een cascaderegeling toe te passen. 3.1 Cascaderegeling Een cascaderegeling (Figuur 3.2) kan beschouwd worden als drie algemeen gesloten-lus regelsystemen waarbij de ene regelkring telkens vervat zit in het proces van de bovenliggende regelkring: θ* + - * Positie ω + Regelaar - * Snelheid T T i Regelaar i* + - Stroom Regelaar IGBT’s i Motor T Proces ω int θ Figuur 3.2: Cascaderegeling Hieronder wordt de func onaliteit van elke regelkring bondig toegelicht: 1. Stroomregelkring: De stroomregelaar zorgt samen met de IGBT's in de vermogensmodule van de servo drive voor de gewenste stroom in de motor. Door deze stroom zal de motor een koppel leveren dat de robot-as doet versnellen of vertragen. De werkelijke stroom in de motor wordt via een stroomme ng teruggekoppeld om een gesloten-lus systeem te bekomen. 8 De regelaar van deze kring staat in voor de stroom in de statorwikkelingen van de motor. Indien een spanning aan deze spoelen wordt aangelegd, zal de stroom in de statorwikkelingen s jgen volgens een eerste orde systeem. Indien de spanning wegvalt, zal de stroom opnieuw naar nul zakken. Daarom wordt een PI-regelaar gebruikt als stroomregelaar voor de stroomregelkring. Deze bestaat uit een propor onele en een integrerende ac e. De propor onele ac e zorgt voor het versterken van de fout tussen de gewenste en de werkelijke stroom in de motor. De integrerende ac e zal zorgen voor het integreren van de fout, waardoor er spanning over de statorwikkelingen blij staan wanneer de fout tussen de gewenste en de werkelijke stroom wegvalt. 2. Snelheidsregelkring: Met behulp van een resolver op de motoras kan op elk moment de werkelijke snelheid als feedback worden teruggekoppeld. Samen met de snelheidsregelaar wordt dan een gesloten-lus systeem gevormd. Deze regelaar zal een gewenst koppel uitsturen naar de stroomregelkring zodat de gewenste snelheid wordt bereikt. Ook voor deze regelaar wordt een PI-regelaar gebruikt. De propor onele ac e zal zorgen voor het versterken van de fout tussen de gewenste en de werkelijke snelheid, terwijl de integrerende ac e zorgt voor het integreren van de fout. Ook bij de snelheidsregelaar is deze integrerende factor van belang. Wanneer de fout tussen de werkelijke en de gewenste snelheid wegvalt, moet de snelheidsregelaar nog steeds een wenswaarde voor het motorkoppel uitsturen zodat de werkelijke snelheid niet naar nul zakt. 3. Posi eregelkring: De posi eregelkring zorgt er telkens voor dat de robot-as een gewenste posi e bereikt. Via de resolver wordt de werkelijke posi e opgemeten en teruggekoppeld. Wanneer een fout optreedt tussen de gewenste en de werkelijke posi e, zal de posi eregelaar een gewenste snelheid uitsturen naar de snelheidsregelkring. Hierdoor wordt de gewenste posi e steeds bereikt. Als posi eregelaar wordt een P-regelaar gebruikt. Hier is het voldoende om enkel een propor onele ac e te gebruiken. Eenmaal de gewenste posi e bereikt wordt, moet er geen wenswaarde voor de snelheid meer worden uitgestuurd naar de snelheidsregelaar. Drive control modes Vooraleer de nodige stappen worden uitgevoerd om de parameters van de verschillende regelaars te achterhalen, moet gekend zijn welke regelaars in de industriële PC ac ef kunnen zijn. Omdat de stroomregelaar zorgt voor het sturen van de schakelpulsen naar de IGBT's in de vermogensmodule van de drive, is deze regelaar steeds werkzaam in de drive. Naast de stroomregelaar bevat de drive ook een snelheids- en posi eregelaar, die al dan niet gebruikt worden. Het is duidelijk dat de drive in drie verschillende opera on modes kan werken. Hieronder worden de mogelijkheden nog even verduidelijkt. 1. Posi on mode: Deze werkingsmodus zorgt ervoor dat alle regelaars werkzaam zijn in de drive. Hierdoor hoe enkel een wenswaarde voor de posi e vanuit de iPC naar de drive te worden verstuurd (Figuur 3.3). Vervolgens zal de cascaderegeling, die nu volledig ac ef is binnen de drive, ervoor zorgen dat de gewenste posi e van de robot-as bereikt wordt. Het eigenhandig ontwerpen van de regelaars is in deze werkingsmodus beperkt. iPC θ* Drive + - * Positie ω + Regelaar - * Snelheid T T i Regelaar i* + - Stroom Regelaar IGBT’s i Motor T Proces ω int θ Figuur 3.3: Situering regelaars in posi on mode 9 2. Velocity mode: Nu is de posi eregelaar werkzaam binnen de iPC. Hierdoor wordt een wenswaarde voor de snelheid vanuit de iPC naar de drive gestuurd (Figuur 3.4). Met behulp van de snelheids- en stroomregelaar zorgt de drive ervoor dat deze gewenste snelheid bereikt wordt. Door de werkelijke posi e van de motoras vanuit de drive terug te koppelen naar de iPC, wordt een gesloten-lus posi eregeling gevormd. Met behulp van deze werkingsmodus kan echter enkel de posi eregelaar volledig eigenhandig worden ontworpen. iPC θ* + - Drive * Positie ω Regelaar + - * Snelheid T T i Regelaar i* + Stroom Regelaar - IGBT’s i Motor T Proces ω int θ Figuur 3.4: Situering regelaars in velocity mode 3. Torque mode: Enkel de stroomregelaar is werkzaam binnen de drive. De posi e- en snelheidsregelaar bevinden zich in de iPC waardoor nu een wenswaarde voor het motorkoppel moet worden verstuurd naar de drive (Figuur 3.5). Daar zal de stroomregelaar samen met de IGBT's zorgen voor de gepaste stroom in de wikkelingen van de motor zodat op elk moment het gewenste koppel wordt verkregen. Door een terugkoppeling van de werkelijke posi e en snelheid naar de iPC, wordt een gesloten regelkring bekomen. Gezien in deze werkingsmodus zowel de posi e- en snelheidsregelaar ac ef zijn in de iPC, is het logisch dat jdens de uitvoer van dit project gekozen wordt om de drives in torque mode te plaatsen. Dit laat toe om zelf de posi e- en snelheidsregelaar op te stellen. iPC θ* + - * Positie ω + Regelaar - Drive * Snelheid T Regelaar i* + T i - Stroom Regelaar IGBT’s i Motor T Proces ω int θ Figuur 3.5: Situering regelaars in torque mode 10 3.2 Systeemiden fica e Zoals in sec e 3.1 al werd aangehaald, zullen de servo drives in torque mode geplaatst worden. Hierdoor kan de volledige stroomregelkring, samen met het proces, als onbekend systeem worden beschouwd (Figuur 3.6). θ* + Positie Regelaar - * ω+ Snelheid Regelaar - θ* + - T* i* T i * Positie ω + Regelaar - + - Snelheid Regelaar T* T i Stroom Regelaar IGBT’s Onbekend Systeem ω Motor integrator θ ω Proces int θ Figuur 3.6: Stroomgeregeld en mechanisch proces als onbekend systeem Om de snelheidsregelaar op een correcte wijze te kunnen instellen, dient een wiskundig model van het systeem te worden opgebouwd. Om dit te verwezenlijken zijn drie verschillende methodes mogelijk. Ten eerste kan een model ontworpen worden op basis van theore sche inzichten. Door onbekende parameters, zoals wrijving, demping en niet-lineariteiten, kan het opstellen van zo'n wiskundig model echter een las ge taak worden. Daarnaast kan een systeemiden fica e worden uitgevoerd door testsignalen doordacht aan het systeem aan te leggen. Met behulp van deze methode kan zowel een parametrisch (zoals een transfer unc e) als een niet-parametrisch model (typisch een frequen eresponsie) opgebouwd worden. Het opstellen van een parametrisch model uit een systeemiden fica e lijkt interessant maar is niet eenvoudig omdat hiervoor de vorm van de transfer unc e, vooral qua orde en storingen (die op het systeem inwerken), goed moet gekend zijn. Gezien de regelaars perfect kunnen worden ingesteld op basis van een frequen eresponsie, afgebeeld in een Nichols of bodekarakteris ek, wordt geopteerd om een model voor het onbekende systeem op te bouwen via de niet-parametrische methode. ingang y(t) responsie Onbekend proces fft A in ϕ in t M(dB) A in (ω1) ω1 ϕ in (ω1) ω1 ω ω ϕ [°] A in (ω1) A uit (ω1) ω1 ω1 ϕ uit (ω1)-ϕ in (ω1) fft A uit ωlog ωlog ϕuit t A uit (ω1) ω1 ω ϕ uit (ω1) ω1 ω Figuur 3.7: Opmeten van een onbekend systeem via de niet-parametrische methode 11 Het model wordt opgemeten door de ingang van het onbekende systeem te exciteren met behulp van een frequen erijk signaal. Dit hee een responsie van de uitgang als gevolg. Na het opmeten van de ingang en de systeemresponsie wordt het onbekende systeem geïden ficeerd door een bodekarakteris ek op te stellen met behulp van een spectraalanalyse. Door middel van figuur 3.7 kan aangetoond worden op welke manier het iden ficeren van een proces in zijn werk gaat. Om per frequen e te achterhalen hoe het systeem reageert, wordt een Fast Fourier Trasform (FFT) uitgevoerd op zowel het ingangs- als uitgangssignaal. Daarna kan worden nagegaan op welke manier het proces elke frequen ecomponent zal versterken of verzwakken en eventueel in fase zal verschuiven. De resultaten kunnen vervolgens eenvoudig weergegeven worden met behulp van een bodekarakteris ek. Een bodekarakteris ek is verdeeld in twee aparte karakteris eken, namelijk een amplitude en fasekarakteris ek (Figuur 3.8). De amplitudekarakteris ek gee de verhouding van de amplitudes weer terwijl de fasekarakteris ek het verschil in fase illustreert. BodetDiagram 10 Auit(ω1) Ain (ω1) Magnitudet(dB) 0 −10 −20 −30 Phaset(deg) −40 0 −45 φuit(ω1) - φin(ω1) −90 −2 10 −1 10 0 10 Frequencyt (rad/s) ω1 1 10 2 10 Figuur 3.8: Bodekarakteris ek Indien het gedrag van een systeem in een bepaald frequen edomein via een bodekarakteris ek dient te worden achterhaald, moet dit systeem ook gevoed worden door een signaal dat dit frequen edomein bevat. Met behulp van de gekozen hardware voor de nieuwe robotcontroller is het mogelijk om een minimum cyclus jd te behalen van 250 µs. Om deze reden kan slechts iedere 250 µs een sample of een signaalwaarde aan de ingang van het systeem aangeboden worden. De sampleperiode is dus gelijk aan 250 µs of de samplefrequen e bedraagt 4000 Hz. Bijgevolg biedt dit de mogelijkheid om aan het systeem een ingangssignaal met een maximum frequen e van 4000 Hz aan te leggen. Dezelfde frequen e-inhoud zal terug te vinden zijn in de uitgang van het systeem. Indien het in- en uitgangssignaal wordt opgemeten om via de verkregen meetdata een bodekarakteris ek op te stellen, moet hierbij rekening gehouden worden met het bemonsteringstheorema van Nyquist-Shannon. Deze gee aan dat de maximaal bruikbare frequen e van een signaal de hel van de samplefrequen e moet bedragen. Op basis van de voorgaande informa e is het duidelijk dat de bodekarakteris eken van de robot-assen een maximum bruikbaar frequen edomein van nul tot 2000 Hz zullen bezi en. 12 De beste resultaten voor het iden ficeren van het systeem worden bekomen door het ingangssignaal van het proces te exciteren met behulp van een sweep, startend bij de minimum frequen e en con nu oplopend tot 2000 Hz (Figuur 3.9 [1]). Sweep 2.5 2 Amplitude (Nm) 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2.5 0 2 4 6 8 10 12 Tijd (s) Figuur 3.9: Sweep ingangssignaal (koppel) Indien deze sweep aan de ingang van het systeem als wenswaarde voor het koppel wordt aangelegd, kan de snelheid van het systeem opgemeten worden. In de snelheidsresponsie (Figuur 3.10 [1]) zal dezelfde frequen e inhoud terug te vinden zijn als in het ingangssignaal. Snelheidsresponsie 200 Amplitude (rad/s) 150 100 50 0 -50 -100 -150 -200 0 2 4 6 8 10 12 Tijd (s) Figuur 3.10: Systeemresponsie (snelheid) Aan de hand van de dalende amplitude van de snelheidsresponsie kan onmiddellijk de verzwakking door het systeem bij s jgende frequen es worden opgemerkt aangezien de amplitude van de ingang constant blij . Door het opmeten van beide signalen kan met de verkregen meetdata via de es mate func e in MATLAB®een bodekarakteris ek van het onbekende systeem opgesteld worden. Het MATLAB®-script dat wordt gebruikt om een bodekarakteris ek op te stellen, kan teruggevonden worden in bijlage B.1. 13 3.3 Ontwerpen van regelaars aan de hand van bodekarakteris eken Na de bespreking van het principe van een cascaderegeling en systeemiden fica e, wordt aangetoond hoe de snelheidsregelaar door middel van een bodekarakteris ek kan worden ontworpen. Daarna wordt deze methode toegepast op de assen van de robot. De bodekarakteris eken worden opgemaakt met behulp van een systeemiden fica e. In dit onderdeel wordt het instellen van de snelheidsregelaar via deze karakteris ek besproken [9]. Aan de hand van een bodekarakteris ek moet de regelaar ontworpen worden met het bode-stabiliteitscriterium in het achterhoofd. Deze stelt dat een gesloten-lus systeem stabiel is als in de open-lus frequen eresponsie de versterking kleiner is dan 1 of 0 dB daar waar de fase-naijling ± 180 ◦ bedraagt. Een systeem moet stabiel zijn maar op zich is de stabiliteit niet voldoende om van een goed geregeld systeem te kunnen spreken. Naast de stabiliteit zijn ook de overgangsverschijnselen belangrijk. Bij een versterking van 0 dB moet de fase-naijling voldoende boven −180 ◦ liggen. Dit wordt omschreven met behulp van de fasemarge (FM). Dit is de marge tussen de fase van het systeem en −180 ◦ bij een versterking van 0 dB en gee dus weer hoeveel de fase mag toenemen opdat het systeem nog stabiel zou zijn. Hoe groter de fasemarge, hoe stabieler het systeem. Door de fasemarge te groot te kiezen, zal het systeem wel robuust zijn, maar zal het traag reageren en voor een grote instel jd (Ts) zorgen. Het is dus belangrijk om de gulden middenweg te kiezen. De fasemarge kan afgelezen worden op de bodekarakteris ek van het open-lus systeem (Figuur 3.11). Deze informa e gee een beter inzicht in de responsie van het systeem in gesloten-lus. M dB ωPM 0dB φ -180° log ω log ω FM Figuur 3.11: Bodekarakteris ek: fasemarge (FM) De snijfrequen e of pulsa e (ω)P M is de pulsa e waar het systeem een versterking van 0 dB hee . 14 3.3.1 Instellen snelheidsregelaar Aan de hand van de voorgaande informa e blijkt de fasemarge een geschikte parameter te zijn voor het instellen van de snelheidsregelaar. Via trial-and-error worden verschillende waarden voor de fasemarge vooropgesteld om een stabiele en dynamische regelaar te ontwerpen. Typische waarden voor de fasemarge liggen tussen 45 ◦ en 75 ◦ [9]. Eenmaal het gedrag van het onbekende proces via systeemiden fica e achterhaald is, kan hieraan een regelaar worden toegevoegd. Dit zal een effect hebben op de bodekarakteris ek van het systeem. Voor de snelheidsregelaar wordt een PI-regelaar gebruikt waarvan de algemene formule er als volgt uitziet (Formule 3.1): ( ) 1 Kp · 1 + Ti s (3.1) Deze formule kan herschreven worden als: Kp · Ti ( Ti s + 1 s ) (3.2) In formule 3.2 kan een integrator en een nulpunt waargenomen worden. De integrerende ac e zal de fase 90 ◦ naar beneden trekken. Hierdoor zal de kri sche pulsa e, de pulsa e waarbij de fase-naijling van het systeem −180 ◦ bedraagt (Figuur 3.11), sneller bereikt worden. Het nulpunt kan nu worden gebruikt om de fasemarge op te krikken. Bij zeer hoge frequen es zal een nulpunt een fasevoorsprong van 90 ◦ opleveren. Het is echter niet realis sch om met deze 90 ◦ te werken omdat de zeer hoge frequen es niet door het systeem kunnen. Een fase voorsprong van 60 ◦ is wel realis sch [9]. De fase van het originele systeem ̸ G(jω) wordt door de integrator dus met 90 ◦ verlaagd en door het nulpunt met 60 ◦ verhoogd bij ω = ωP M . Als een gewenste fasemarge ϕP M wordt vooropgesteld, kan de pulsa e ωP M bepaald worden met behulp van formule 3.3: ̸ G(jω)|ω=ωP M − 90◦ + 60◦ = −180◦ + ϕP M (3.3) Indien de bodekarakteris ek van het te regelen systeem beschikbaar is, kan de snijpulsa e ωP M eenvoudig afgelezen worden. Bij de pulsa e ωP M moet het nulpunt de fase 60 ◦ omhoog trekken. Met behulp van formule 3.4 kan de integra e jdsconstante Ti van de PI-regelaar bepaald worden: ̸ (1 + Ti jω)|ω=ωP M = 60◦ Hieruit volgt: Ti = (3.4) tan(60◦ ) ωP M (3.5) Bij ωP M zal het verschil tussen de werkelijke fase en −180 ◦ dus gelijk zijn aan de fasemarge. Dit is de pulsa e waarbij de amplitudekarakteris ek de 0 dB lijn moet snijden. Op deze manier kan de versterking of verzwakking Kp bepaald worden zodat de volledige versterking van het systeem bij de vooropgestelde fasemarge 0 dB bedraagt: 20log|Kp |ω=ωP M T jω + 1 i + 20log Ti jω + 20log|G(jω)|ω=ωP M = 0 dB (3.6) ω=ωP M Hieruit volgt: 20log|Kp |ω=ωP M = −20log|G(jω)|ω=ωP M T jω + 1 i − 20log Ti jω (3.7) ω=ωP M 15 Na het invullen van de berekende waarden voor de versterkingsfactor Kp en de integra e jdsconstante Ti , kan de regelaar samen met de gekozen fasemarge gecontroleerd worden door de stapresponsie van de snelheidsregelkring (Figuur 3.12) te bestuderen. ω* + Snelheidsregelaar - T* Proces ω Figuur 3.12: Snelheidsregelkring Wanneer bij aanleg van een stap voor de wenssnelheid het systeem teveel doorschot vertoont, kunnen de versterkingsfactor Kp en de integra e jdsconstante Ti van de PI-regelaar opnieuw worden berekend met behulp van een grotere fasemarge. Indien het systeem traag reageert en een grote instel jd hee , kan de fasemarge kleiner gekozen worden. 3.3.2 Instellen posi eregelaar θ* + - * Positie ω + Regelaar - Snelheid Regelaar T* Proces ω Int θ Figuur 3.13: Posi eregelkring Eenmaal een dynamische en robuuste snelheidsresponsie verkregen is, kan nu een posi eregelaar opgesteld worden om de posi eregelkring te vervolledigen. Als posi eregelaar wordt een P-regelaar gebruikt. Eerst wordt een versterkingsfactor Kp gelijk aan één gebruikt, waarna deze stapsgewijs wordt opgevoerd tot het systeem net geen doorschot vertoont. Om de posi eresponsie te kunnen opmeten wordt steeds aan de ingang van de posi eregeling een stap aangelegd. 3.4 Afregelen van de assen Nu de werkwijze voor het instellen van een regelaar met behulp van een bodekarakteris ek gekend is, kunnen alle assen van de robot worden afgeregeld. In deze sec e zal meer specifiek het afregelen van de eerste drie assen (As 1, As 2 en As 3) besproken worden. Er moet echter, voornamelijk bij de eerste 2 assen, rekening gehouden worden met het wijzigend massatraagheidsmoment ten opzichte van de rota e-as. Dit zorgt ervoor dat het afregelen van deze robot-assen een grotere uitdaging vormt. De laatste drie assen (As 4, As 5 en As 6) worden niet verder besproken omdat deze dezelfde methodiek volgen als As 3. 3.4.1 Afregelen van As 1 Instellen van de snelheidsregelaar Eerst en vooral wordt een systeemiden fica e uitgevoerd zoals werd verduidelijkt in sec e 3.2. Voor het resultaat van de me ngen wordt doorverwezen naar figuur 3.14. Aan de hand van deze bodekarakteris ek kan de snelheidsregelaar ingesteld worden. Eerst wordt een fasemarge van 80 ◦ vooropgesteld, waaruit ̸ G(jω)|ω=ω P M kan gehaald worden (Formule 3.8). ̸ G(jω)|ω=ωP M = −180◦ + 80◦ + 90◦ − 60◦ = −70◦ (3.8) 16 Vervolgens kan de pulsa e ωP M worden afgelezen uit de bodekarakteris ek. bekend is, kan hieruit de integra e jdsconstante Ti worden berekend. Ti = Eenmaal de pulsa e ωP M tan(60◦ ) = 0, 0163s ωP M (3.9) |H| [dB] 50 5,26 dB 0 ωPM=106,3 rad/s −50 0 10 1 10 2 10 Frequentie [Rad/s] 150 H [°] 100 50 0 −50 −100 φ = -70° −150 0 10 1 10 2 10 Frequentie [Rad/s] Figuur 3.14: As 1: bodekarakteris ek (In = koppel, uit = snelheid) Om de versterkingsfactor Kp te kunnen bepalen moeten de versterking van het systeem en de versterking van de integrerende ac e gekend zijn. De versterking van het systeem kan rechtstreeks worden afgelezen van de bodekarakteris ek (Figuur 3.14) en bedraagt 5,26 dB. De versterking van integrerende ac e kan met behulp van MATLAB®achterhaald worden. Hierbij wordt de integra e jdsconstante Ti in onderstaande transfer unc e (Formule 3.10) ingevuld, waarna de versterking van dit systeem bij de pulsa e ωP M kan worden afgelezen. ( Ti s + 1 Ti s ) (3.10) De versterking van de I-ac e bedraagt 1,26 dB. Nu kan met behulp van formule 3.7 de versterkingsfactor Kp van de PI-regelaar berekend worden. Kp = 10( −5,26−1,26 20 ) = 0, 4719 N m ◦ /s (3.11) Indien de gevonden waarden voor de versterkingsfactor Kp en de integra e jdsconstante Ti in formule 3.1 worden ingevuld, wordt de onderstaande PI-regelaar bekomen (Formule 3.12). ( 0, 4719 · 1 + 1 0, 0163s ) (3.12) Nu een snelheidsregelaar ontworpen is, kan het gedrag van het snelheidsgeregeld systeem worden nagegaan. Hiervoor wordt aan de wenssnelheid (Figuur 3.12) een stap aangelegd waarbij de snelheidsresponsie 17 wordt opgemeten. Zoals reeds werd vermeld, moet er rekening gehouden worden met het wijzigend massatraagheidsmoment ten opzichte van de rota e-as (As 1). Deze is hoofdzakelijk a ankelijk van de hoekposi e van As 2 en As 3. Daarom wordt de snelheidsresponsie opgemeten voor de uiterste gevallen. Beide toestanden zijn weergegeven in figuur 3.15. Z Z As 1 As 1 XY XY Figuur 3.15: Toestand met een klein (links) en groot (rechts) massatraagheidsmoment t.o.v. de rota e-as De resultaten van beide snelheidsresponsies worden weergegeven op figuur 3.16. 30 Wenssnelheid Werkelijke snelheid min. inertie Werkelijke snelheid max. inertie 25 Snelheid [°/s] 20 15 Ts = 420 ms 10 Ts = 620 ms 5 0 −5 0 0.2 0.4 0.6 Tijd [s] 0.8 1 1.2 Figuur 3.16: As 1: stapresponsie van de snelheidsregelkring Aan de hand van de stapresponsie van de snelheidsregelkring kunnen een aantal zaken besloten worden. Ten eerste kan worden vastgesteld dat beide toestanden een verschillende stapresponsie vertonen. Bij een klein bereikt massatraagheidsmoment ten opzichte van de rota e-as wordt de gewenste stapsnelheid van 20 graden s na ongeveer 420 milliseconden [ms]. Hierbij treedt een doorschot op van circa 20 procent. Daarentegen wordt bij 18 het grootst mogelijke traagheidsmoment de wenssnelheid bereikt in 620 ms met een doorschot van ongeveer 40 procent. Hoe groter het massatraagheidsmoment, hoe meer het systeem met een zekere massa een verandering van draaisnelheid zal tegengaan. Een groter traagheidsmoment zorgt dus voor meer doorschot en een grotere instel jd. Desondanks kan toch besloten worden dat de gesloten-lus snelheidsregeling voor beide toestanden stabiel is. Bovendien zal de wenssnelheid in de prak jk nooit een stapfunc e zijn. Dit zou betekenen dat de overgang tussen de twee verschillende snelheden met een oneindig grote versnelling moet plaatsvinden, wat niet realis sch is gezien dit een oneindig groot koppel van de servomotor zou vragen. In hoofdstuk 5 zal het gedrag van de regelkring worden nagegaan waarbij de wensposi e een traject beschrij in plaats van een stapfunc e (Figuur 5.4). Om die reden zal het doorschot van de werkelijke snelheid eveneens minder uitgesproken zijn. Dientengevolge is het niet meteen nodig extra maatregelen te treffen om dit gedrag te voorkomen. Ten tweede kan een rimpel waargenomen worden op de werkelijke snelheid. Een resolver levert enkel posi e-informa e waardoor de snelheid so warema g moet worden bekomen door de posi e-informa e af te leiden. Indien een signaal afgeleid wordt, zal dit zorgen voor ruis waarmee het rimpeleffect op figuur 3.16 kan worden verklaard. Een mogelijke oplossing ligt in de toepassing van een filter om zo het snelheidssignaal af te vlakken. Deze kan wel een faseachterstand veroorzaken. Vermits het rimpeleffect op dit ogenblik niet voor problemen zorgt, wordt hier momenteel niet verder op ingegaan. Instellen van de posi eregelaar Voor het instellen van de posi eregelaar wordt het snelheidsgeregeld systeem beschouwd waaraan een zuivere propor onele regelaar toegevoegd wordt en de werkelijke posi e teruggekoppeld wordt (Figuur 3.13). De performan e van de regelkring wordt nagegaan door aan de ingang een stap voor de wensposi e aan te leggen. Omdat het systeem de eindposi e zo snel en minu eus mogelijk moet bereiken, wordt de propor onele ac e van de posi eregelaar langzamerhand opgetrokken tot er net geen doorschot optreedt. Opnieuw kan de stapresponsie opgemeten worden voor de toestand van de robot met het kleinst en het grootst mogelijke massatraagheidsmoment. 20 18 16 14 Positie [°] 12 10 8 6 Wenspositie Werkelijke positie KP = 2 Werkelijke positie KP = 3 Werkelijke positie KP = 5 Werkelijke positie KP = 8 Werkelijke positie KP = 12 4 2 0 0 0.5 Tijd [s] 1 1.5 Figuur 3.17: As 1: stapresponsies van de posi eregelkring (minimum iner e) 19 In figuur 3.17 zijn stapresponsies met verschillende propor onele versterkingen weergegeven voor de toestand met het kleinst mogelijke traagheidsmoment ten opzichte van de rota e-as (As 1). Met behulp van deze resultaten kan een geschikte versterkingsfactor voor de posi eregelaar gevonden worden zodat de wensposi e zonder doorschot, zo snel en nauwkeurig mogelijk wordt bereikt. Rekening houdend met deze eisen voor het ontwerpen van de posi eregelaar wordt geopteerd voor een propor onele ac e van 12 graden/s graden . Grotere versterkingen blijken voor doorschot te zorgen wat bij een posi eregeling niet gewenst is. Indien de stapresponsie van de gekozen versterking van naderbij bekeken wordt (Figuur 3.18), kan waargenomen worden dat de instel jd ongeveer 400 ms bedraagt. Met behulp van de responsie kan eveneens de invloed van een snelheidslimiet geconstateerd worden (lineair gedrag van de posi eresponsie). Indien een kleinere instel jd gewenst is, kan de begrenzing gecorrigeerd worden. Daarnaast kan worden opgemerkt dat de motoras na overgangsverschijnselen geposi oneerd kan worden met een nauwkeurigheid van 0,0001 graden. 20 18 16 14 Positie [°] 12 Ts = 400 ms 10 8 6 4 2 Wenspositie Werkelijke positie 0 0 0.5 Tijd [s] 1 1.5 Figuur 3.18: As 1: stapresponsie van de posi eregelkring (minimum iner e, Kp = 12) Vervolgens kunnen enkele stapresponsies voor de toestand van de robot met het grootst mogelijke massatraagheidsmoment ten opzichte van de draai-as opgemeten worden. De resultaten zijn weergegeven in figuur 3.19. Na het bestuderen van de stapresponsies van verschillende propor onele ac es kan op het eerste ogenblik gekozen worden voor een versterkingsfactor van 8 graden/s graden . Grotere versterkingen blijken doorschot te vertonen waardoor deze niet meer voldoen aan de voorwaarden van een goed ontworpen posi eregelaar. Een P-ac e van 8 graden/s graden vertoont echter een schokkende beweging jdens de overgangsfase. Daarom wordt geopteerd voor een propor onele versterking die minder hevig reageert, namelijk een P-ac e van 5 graden/s graden waarbij het schokkend gedrag minder uitgesproken is (Figuur 3.20). Met behulp van deze versterking hee de stapresponsie een instel jd van 800 ms. Daarnaast kan de motoras geposi oneerd worden met een nauwkeurigheid van 0,0006 graden. Meteen kan hiermee de invloed van een kleinere propor onele versterking op de sta sche fout waargenomen worden (0,0006 graden ten opzicht van 0,0001 graden bij een grotere versterkingsfactor). Indien de posi eregelaar van de cascaderegeling wordt uitgerust met een propor onele versterking van 12 graden/s Een graden zal dit voor doorschot en schokkende bewegingen zorgen bij grote traagheidsmomenten. propor onele versterking van 5 graden/s graden daarentegen, zal bij kleine traagheidsmomenten samengaan met een grote instel jd en een verminderde accuraatheid (grotere sta sche fout). Om het posi egeregeld systeem te 20 20 18 16 14 Positie [°] 12 10 8 6 Wenspositie Werkelijke positie KP = 2 Werkelijke positie KP = 3 Werkelijke positie KP = 5 Werkelijke positie KP = 8 Werkelijke positie KP = 10 4 2 0 0 0.5 1 Tijd [s] 1.5 Figuur 3.19: As 1: stapresponsies van de posi eregelkring (maximum iner e) 20 18 16 Positie [°] 14 Ts = 800 ms 12 10 8 6 4 2 0 0 0.5 1 Tijd [s] 1.5 2 2.5 Figuur 3.20: As 1: stapresponsie van de posi eregelkring (maximum iner e, Kp = 5) op maliseren is er bijgevolg nood aan een adap eve regelaar. Dit is een regelaar waarvan de propor onele versterking wordt aangepast naargelang de posi e van de robot. De versterkingsfactor Kp van de posi eregelaar graden/s zal dus moeten variëren tussen 5 graden/s graden en 12 graden in func e van de hoekposi e van As 2, As 3 en As 5. Het variërend traagheidsmoment ten opzichte van de rota e-as kan worden benaderd door een afstand R in func e van de hoeken θ2 , θ3 en θ5 (Figuur 3.21). 21 Z θ2 θ3 D C γ θ2 E B F A θ5 XY R Figuur 3.21: As 1: afstand R in func e van θ2 , θ3 en θ5 B = 0, 3 m, C = 0, 65 m, D = 0, 155 m, E = 0, 6 m, F = 0, 14 m RC = C · sin(θ2 ) (3.13) RD = D · sin(θ2 + θ3 ) (3.14) = 90 − (θ2 + θ3 ) (3.15) RE = E · sin(γ) (3.16) RF = F · sin(γ − θ5 ) (3.17) = B + RC + RD + RE + RF (3.18) γ R Met behulp van figuur 3.21 en de bovenstaande formules kan besloten worden dat de afstand R variëert tussen een minimum lengte van 0,3 meter (lengte B) en een maximum lengte van 1,69 meter. Vervolgens kan met behulp van MATLAB®een lineair verband opgesteld worden tussen de afstand R en de propor onele versterking voor de posi eregelaar. Op die manier zal steeds een gepaste versterkingsfactor Kp voor de posi eregelaar verkregen worden. Het opgestelde MATLAB®-script kan teruggevonden worden in bijlage B.2. 22 3.4.2 Afregelen van As 2 Instellen van de snelheidsregelaar Het afregelen van deze as wordt op iden eke wijze gerealiseerd als het afregelen van As 1 (Sec e 3.4.1). Eerst en vooral wordt een systeemiden fica e uitgevoerd. Op figuur 3.22 is de opgemeten bodekarakteris ek weergegeven. Door een fasemarge van 70 ◦ voorop te stellen, kan uit de karakteris ek vervolgens de nodige informa e gehaald worden om de versterkingsfactor Kp en de integra e jdsconstante Ti van de snelheidsregelaar te bepalen. Hieronder worden de resultaten van de berekeningen weergegeven. ωP M = 204, 2 rad s m Kp = 1, 26 N ◦ /s Ti = 0, 0085s (3.19) |H| [dB] 0 -3,3 dB −10 −20 ωPM = 204,2 rad/s −30 1 10 2 10 Frequentie [Rad/s] 200 H [°] 100 0 −100 −200 1 10 φ = - 80° 2 10 Frequentie [Rad/s] Figuur 3.22: As 2: bodekarakteris ek (In = koppel, uit = snelheid) Na het instellen van de PI-regelaar kan het gedrag van de snelheidsregeling worden nagegaan. Hiervoor wordt aan de wenssnelheid (Figuur 3.12) een stap aangelegd waarbij de snelheidsresponsie wordt opgemeten. Tijdens het aansturen is het massatraagheidsmoment ten opzichte van de draai-as (As 2) hoofdzakelijk a ankelijk van de hoekposi e van As 3. Ook hier wordt de snelheidsresponsie van beide uitersten opgemeten. In figuur 3.23 zijn de resultaten van de stapresponsie weergegeven. Opnieuw kunnen enkele zaken besloten worden. Ten eerste kan worden opgemerkt dat het wisselend traagheidsmoment prak sch geen invloed meer hee op de snelheidsresponsie. De instel jd bedraagt in beide gevallen ruwweg 440 ms met een doorschot van 13,1 procent. Door de niet te verwaarlozen groo e van het massatraagheidsmoment ten opzicht van de rota e-as, het stabiel karakter en het feit dat de snelheid-setpoint in de prak jk nooit stappen zal vertonen, kan het gedrag (de uitslingering en het doorschot) van beide snelheidsresponsie aanvaard worden. Ten tweede kan ook hier een rimpeleffect op de werkelijke snelheid waargenomen worden. Deze kan opnieuw verklaard worden door het afleiden van de posi e-informa e. 23 25 20 Snelheid [°/s] 15 Ts = 440 ms 10 5 0 −5 0 Wenssnelheid Werkelijke snelheid min. inertie Werkelijke snelheid max. inertie 0.2 0.4 0.6 Tijd [s] 0.8 1 1.2 1.4 Figuur 3.23: As 2: stapresponsie van de snelheidsregelkring Instellen van de posi eregelaar Voor het instellen van de posi eregelaar wordt de volledige posi eregelkring toegepast (Figuur 3.13). De performan e van de regelkring wordt gecontroleerd door aan de ingang een stap voor de wensposi e aan te leggen waarbij de propor onele ac e van de posi eregelaar telkens stapsgewijs wordt opgetrokken tot er net geen doorschot optreedt. Opnieuw wordt de invloed van het wisselend traagheidsmoment ten opzicht van de draai-as nagegaan. Deze wordt grotendeels bepaald door de posi e van As 3. Zoals bij de eerste as kan de stapresponsie voor beide uiterste gevallen opgemeten worden. In figuren 3.24 en 3.25 zijn de responsies van het posi egeregeld systeem weergegeven waarbij in beide gevallen reeds een op male versterkingsfactor gekozen is. 20 18 16 Ts = 350 ms Positie [°] 14 12 10 8 6 4 2 Wenspositie Werkelijke positie 0 0 0.2 0.4 0.6 Tijd [s] 0.8 1 1.2 Figuur 3.24: As 2: stapresponsie van de posi eregelkring (minimum iner e, Kp = 13) Eerst en vooral kan worden opgemerkt dat bij het kleinst mogelijke massatraagheidsmoment ten opzichte van rota e-as de stapresponsie met een propor onele versterking van 13 graden/s graden een instel jd hee van 350 ms en er hierbij geen doorschot optreedt. Ook hier kan de instel jd eventueel verkleind worden door de snelheidslimiet aan te passen. Hier mag echter niet in overdreven worden zodat de maximale rotorsnelheid van 24 de servomotor, rekening houdend met de doorschot van de snelheidsregelkring, niet kan worden overschreden. De snelheid-setpoint moet dus begrensd worden zodat de werkelijke snelheid met doorschot onder de maximale toegelaten rotorsnelheid blij . Met behulp van deze propor onele versterking kan de motoras op 0,0001 graden nauwkeurig geposi oneerd worden. Indien dezelfde versterkingsfactor wordt benut bij grote traagheidsmomenten blijkt dat de responsie wel doorschot vertoont. Om die reden moet de versterkingsfactor worden verkleind tot het doorschot geëlimineerd is. Zo wordt een propor onele versterking van 9 graden/s graden bekomen. Door middel van deze P-ac e wordt de wenswaarde bereikt na circa 500 ms (Figuur 3.25). Hierbij kan de motoras op 0,0002 graden nauwkeurig geposi oneerd worden. 20 18 16 Ts = 500 ms Positie [°] 14 12 10 8 6 4 2 Wenspositie Werkelijke positie 0 0 0.2 0.4 0.6 Tijd [s] 0.8 1 1.2 Figuur 3.25: As 2: stapresponsie van de posi eregelkring (maximum iner e, Kp = 9) Om de regelkring te op maliseren zal opnieuw een adap eve posi eregelaar moeten worden opgesteld. Aan de hand van de onderstaande formules en figuur 3.26 kan het wijzigend massatraagheidsmoment in func e van de hoekposi e As 3 en As 5 benaderd worden om zo de propor onele versterking van de posi eregelaar aan te passen. C = 0, 65 m, D = 0, 155 m, E = 0, 6 m, F = 0, 14 m (3.20) = 180° − θ3 √ C 2 + D2 − 2 · C · D · cos(γ) sin(γ) sin-1 ( · C) RCD 90° − α √ RCD 2 + E 2 − 2 · RCD · E · cos(ψ) sin(β) sin-1 ( · RCD ) RCE ° γ − 90 = θ5 − λ (3.27) γ = RCD = α = β = RCE = ψ = λ ϵ ϕ = RCF = ° 180 − λ − ψ − ϵ √ RCE 2 + F 2 − 2 · RCE · F · cos(ϕ) (3.21) (3.22) (3.23) (3.24) (3.25) (3.26) (3.28) (3.29) Indien RCF ≤ C: RCF = 0, 65 m (3.30) 25 Z θ3 D α E β γ E ψ C γ ψ RCD F RCE φ ε F RCE RCF RCF λ θ5 XY Figuur 3.26: As 2: afstand R in func e van θ3 en θ5 Deze berekeningen worden vervolgens in MATLAB®ingegeven waarna op basis van het resultaat steeds een geschikte propor onele versterking kan worden gevonden. Zo komt een P-ac e van 13 graden/s graden overeen met een afstand R van 0,65 meter (minimum), terwijl een versterking van 9 graden/s graden overeenstemt met een afstand R van 1,399 meter (maximum). Met behulp van een lineair verband tussen de R-waarde en de propor onele versterking kan voor iedere stand van de robot een keurige versterkingsfactor Kp voor de posi eregelaar gegenereerd worden. Het MATLAB®-script voor deze berekening kan teruggevonden worden in bijlage B.3. 3.4.3 Afregelen van As 3 Instellen van de snelheidsregelaar Het afregelen van deze as gaat op een iden eke wijze in zijn werk als het afregelen van de vorige twee assen. Ten eerste wordt een systeemiden fica e uitgevoerd waarvan de resultaten zijn weergegeven met behulp van de bodekarakteris ek in figuur 3.27. Door een fasemarge van 70 ◦ te kiezen, kunnen de nodige gegevens uit de bodekarakteris ek afgelezen worden om de versterkingsfactor Kp en de integra e jdsconstante Ti van de snelheidsregelaar te bepalen. Hieronder zijn de resultaten van deze berekeningen weergegeven: ωP M = 247, 7 rad s Ti = 0, 007s m Kp = 0, 0517 N ◦ /s Nu de snelheidsregelaar van As 3 ontworpen is, kan het gedrag van de snelheidsregelkring worden nagegaan door middel van de stapresponsie (Figuur 3.28). 26 50 |H| [dB] 40 ωPM = 247,7 rad/s 24,58 dB 30 20 10 0 0 10 1 10 2 10 Frequentie [Rad/s] 150 H [°] 100 50 0 −50 φ = - 80° −100 −150 0 1 10 10 2 10 Frequentie [Rad/s] Figuur 3.27: As 3: bodekarakteris ek (in = koppel, uit = snelheid) 30 25 Snelheid [°/s] 20 15 Ts = 300 ms 10 5 0 −5 0 0.5 1 1.5 Tijd [s] 2 2.5 3 Figuur 3.28: As 3: stapresponsie van de snelheidsregelkring Uit het resultaat van de stapresponsie kan gededuceerd worden dat de gewenste snelheid van 20 graden wordt s bereikt na ongeveer 300 ms met een doorschot van 50 procent. Om het doorschot te verminderen kan worden geopteerd voor een grotere fasemarge. Hierdoor zal de snelheidsregelkring robuuster zijn, maar ook trager reageren. Omdat een stapfunc e in de prak jk niet realis sch is, wordt momenteel met de huidige PI-regelaar verder gewerkt aangezien eerder wordt geopteerd voor een systeem dat snel reageert. Opnieuw kan het rimpeleffect op de werkelijke snelheid waargenomen worden. 27 Instellen van de posi eregelaar Voor het instellen van de posi eregelaar wordt, net zoals bij de vorige assen, de performan e van de volledige posi eregelkring nagegaan met behulp van een stapresponsie. Ook nu wordt de propor onele ac e omhoog getrokken tot er net geen doorschot optreedt. De resultaten van de stapresponsie zijn weergegeven in figuur 3.29. 20 18 16 Ts = 430 ms Positie [°] 14 12 10 8 6 4 2 Wenspositie Werkelijke positie 0 0 0.2 0.4 0.6 Tijd [s] 0.8 1 1.2 1.4 Figuur 3.29: As 3: stapresponsie van de posi eregelkring Hierbij kan geconcludeerd worden dat met behulp van een propor onele versterking van 12 graden/s graden de stapresponsie een instel jd hee van ongeveer 430 ms en geen doorschot vertoont. De invloed van de ingestelde snelheidslimiet kan nogmaals worden aangetoond door middel van het lineair karakter van de posi eresponsie. Indien een kleinere instel jd gewenst is, kan de begrenzing minder nauw gekozen worden. Hierbij moet echter rekening gehouden worden met het doorschot van de snelheidsregeling (Figuur 3.28). Hoewel de snelheid-setpoint begrensd is, kan de werkelijke rotorsnelheid van de servomotor toch de maximum toegelaten rotorsnelheid overschrijden als gevolg van het doorschot. Om die reden moet de snelheidswenswaarde voldoende begrensd worden. In hoofdstuk 5 wordt de performan e van de posi eregeling nagegaan waarbij de aangelegde wensposi e in plaats van een stapfunc e een baanbeweging beschrij . Dit zorgt voor minder doorschot van de werkelijke snelheid waardoor de begrenzing opnieuw kan worden gecorrigeerd. Verder kan besloten worden dat de motoras met een nauwkeurigheid van 0,0002 graden kan worden geposi oneerd. 28 3.5 Besluit Aan de hand van de resultaten van de verschillende stapresponsies kunnen een aantal zaken geconcludeerd worden. Eerst en vooral kan worden vastgesteld dat voor elke as het gesloten-lus systeem stabiel is. Voor het ontwerpen van de snelheidsregelaar werd geopteerd voor fasemarges tussen 70 ◦ en 80 ◦ waardoor het gesloten-lus systeem snel en robuust is. Het is mogelijk om de fasemarge kleiner te kiezen om zo de instel jd te verkleinen, maar dit zal leiden tot een groter doorschot en een te hevige uitslingering waardoor het risico op instabiliteit wordt vergroot. Vervolgens kan besloten worden dat op basis van een systeemiden fica e met behulp van het bode-stabiliteitscriterium een performante snelheidsregeling kan worden ontworpen. Tot dusver werd de posi eregelaar ingesteld door de propor onele versterking stapsgewijs te vergroten tot de posi estapresponsie net geen doorschot vertoont. In de toekomst kan hiervoor eventueel ook een systeemiden fica e worden uitgevoerd om de posi eregelaar op een nog efficiëntere manier te ontwerpen. Het gedrag van het systeem kan dan door middel van een bodekarakteris ek met de wenssnelheid als ingangssignaal en de werkelijke posi e als uitgangssignaal weergegeven en gebruikt worden om de posi eregelaar op te stellen. Het posi eregelalgoritme werd opgebouwd in MATLAB®/Simulink waarvan de snelheids- en posi eregelaar een gesloten kring vormen en in real- me werkzaam zijn in de iPC. Het volledig ontworpen MATLAB®/Simulink model van één as is weergegeven in figuur 3.30. du/dt Derivative S peed limit 4 R value 2 P(s) Prefilter Position command Postion limit Adaptive Position Controller 3 double Actual position int32->double -K- PI(s) S peed limit int16 Torque limit Nm -> Torque double -> int16 1 Torque command S peed Controller -K- 1 double Actual velocity int32->double inc->grad -Kinc/1024ms->grad/s Figuur 3.30: Het posi eregelalgoritme opgebouwd in MATLAB®/Simulink In dit model zijn hoofdzakelijk twee delen te onderscheiden, namelijk de posi eregelkring en de snelheidsregelkring. Daarnaast is er nog een snelheidsfeedforward en een prefilter waar te nemen. Deze laatste twee worden verduidelijkt in hoofdstuk 5. Na het uitvoeren van enkele conversies wordt aan de linkerkant van het model eerst en vooral de fout tussen de werkelijke posi e en de wensposi e bepaald. De posi eregelaar, al dan niet adap ef, versterkt deze fout met behulp van een zuivere P-ac e naar een gewenste snelheid. De juiste instelling voor de P-ac e is a ankelijk van het massatraagheidsmoment ten opzichte van de rota e-as en wordt berekend met behulp van de Rvalue (Figuur 3.30). Om de uitgestuurde snelheid te begrenzen, wordt een snelheidslimiet ingesteld. Nadien wordt in de snelheidsregelkring de fout tussen de uitgestuurde en de werkelijke snelheid bepaald, opnieuw na het verrichten van enkele conversies. De fout wordt aangeboden aan de ingang van de snelheidsregelaar. Deze regelaar is een PI-regelaar en bepaalt het gewenste koppel. Vervolgens wordt de wenswaarde begrensd door middel van een koppelbegrenzing. Deze beperkt het uitgestuurde koppel tot het maximale koppel dat de motor kan leveren. Hierbij moet eveneens rekening gehouden worden met an -windup. Wanneer de integrerende ac e van de PI-regelaar niet op dezelfde manier wordt begrensd als de koppelbegrenzing, ontstaat wind-up. Daarom moet de I-ac e op dezelfde waarde begrensd worden als het maximale koppel. Ten slo e kan opnieuw na enkele omze ngen het gewenste koppel naar de drive gestuurd worden om zo een gesloten-lus te vormen. 29 4 Kinema sche transforma e Nu alle assen afgeregeld zijn, kan de volledige robotarm aangestuurd worden. Om deze in een gewenste posi e te brengen, moeten de hoeken van alle robot-assen berekend worden in func e van de gewenste coördinaten van het eindpunt of de eindeffector van de robot. Om dit te realiseren kan gebruik gemaakt worden van twee kinema sche transforma es, namelijk de voorwaartse en de inverse kinema sche transforma e. In dit hoofdstuk wordt toegelicht hoe beide transforma es worden aangewend om het wiskundig model van de robot op te stellen. Het kinema sch model werd reeds uitgewerkt in het kader van de vorige masterproef [1], maar werd in deze masterproef geop maliseerd door enkele aanpassingen aan te brengen. Verder wordt binnen dit hoofdstuk de implementa e van deze kinema ca toegelicht. Vooraleer de uitwerking van het kinema sch model verduidelijkt wordt, moeten enkele essen ële zaken worden aangehaald. Het is belangrijk om te weten dat de beschikbare robot een standaard zes-assige robot is. Dit betekent dat de eerste drie assen voornamelijk zorgen voor de posi e van de eindeffector, terwijl de laatste drie assen deze een gewenste oriënta e geven. In figuur 4.1 wordt de pose (posi e en oriënta e) van de eindeffector van de robot ten opzichte van de basis gedefiniëerd met behulp van een assenstelsel. De pose van het assenstelsel {b} met betrekking tot de basis, assenstelsel {a}, kan worden bepaald aan de hand van de pose coördinaten (X, Y, Z, y, p, r). Hierbij beschrijven de coördinaten (X, Y, Z) de posi e van de oorsprong van het assenstelsel {b} ten opzichte van de oorsprong van het referen estelsel {a}. De oriënta e van het assenstelsel {b} ten opzichte van het referen estelsel {a} wordt beschreven met behulp van de hoekverdraaiingen (r, p, y). {b} θ5 + y zb Eindeffector + + θ6 x b θ4 -- -- p r + (X,Y,Z,r,p,y) θ2 -- + -- yb -- -- a θ3 θ1 + pb za Basis xa (0,0,0) {a} ya Figuur 4.1: Posi e en oriënta e van de eindeffector {b} ten opzichte van de basis {a} De pose van het assenstelsel {b} ten opzichte van het referen estelsel {a} kan wiskundig beschreven worden met behulp van een transforma e matrix ba T: ( b aT = b aR b ap 01×3 1 ) (4.1) Deze 4 x 4 transforma ematrix bestaat uit een 3 x 3 rota ematrix ba R en een posi evector a pb (Formule 4.1). Verder worden onderaan drie nullen en een één toegevoegd zodat een homogene matrix wordt bekomen. De posi evector a pb = (a pbx a pby a pbz )T bevat de X-, Y-, en Z-coördinaten van de oorsprong van het assenstelsel {b} 30 ten opzichte van de oorsprong van het referen estelsel {a}. Deze vector bevat met andere woorden de transla e van het ene assenstelsel ten opzichte van het andere assenstelsel in de X-, Y-, en Z-rich ng. De rota ematrix ba R is een 3 x 3 orthogonale matrix en beschrij de oriënta e of verdraaiing van het assenstelsel {b} ten opzichte van het referen estelsel {a}. Er zijn drie mogelijke rota es van het assenstelsel {b} met betrekking tot het referen estelsel {a} mogelijk, namelijk een rota e van {b} om de X-, Y- en Z-as van {a} (Figuur 4.2). Hierdoor kan de rota ematrix dan ook op drie verschillende manieren opgesteld worden. Rotatie rond X Zb Zb (0, -sin(θ), cos(θ)) Rotatie rond Y Zb Zb θ Rotatie rond Z (0,0,1) θ (sin(θ),0, cos(θ)) Zb Zb (0, cos(θ), sin(θ)) (1,0,0) (0,1,0) Yb θ Xa (-sin(θ), cos(θ), 0) Xa Ya Xb Xb Yb θ θ Xa θ Ya (cos(θ),0, -sin(θ)) Yb Xb (cos(θ), sin(θ), 0) Ya Figuur 4.2: De mogelijke rota es van het assenstelsel {b} t.o.v. het referen estelsel {a} 1 b R(X, θ) = 0 a 0 0 cos(θ) sin(θ) 0 −sin(θ) cos(θ) cos(θ) b R(Y, θ) = 0 a −sin(θ) sin(θ) 0 cos(θ) 0 1 0 cos(θ) b R(Z, θ) = sin(θ) a 0 −sin(θ) cos(θ) 0 0 0 1 (4.2) Nu het principe van de transforma ematrix gekend is, kan deze worden toegepast op de volledige robotarm. In figuur 4.3 zijn de gedefiniëerde assenstelsels en afstanden voor de robot in rustposi e weergegeven. θ5 -- + ze {e} θ4 + ye xe d z D E yd + -- d yf x {d} -θ3 C b z + θ1 θ2 zc -- {f } {g} zf zg F + xf xg yg θ6 -- + -- {c} xc B xb yc {b} yb A za xa {a} ya Figuur 4.3: De KUKA KR15/2 in rustposi e met de gedefiniëerde assenstelsels en afstanden De posi e en oriënta e van de eindeffector {g} in func e van de hoeken θ1 , θ2 , θ3 , θ4 , θ5 en θ6 kan gevonden worden door de verschillende matrices met elkaar te vermenigvuldigen (Formule 4.3). Dit wordt de voorwaartse kinema ca genoemd. In [1] wordt deze kinema ca uitgebreid toegelicht. g aT = ba T cb T dc T ed T fe T gf T (4.3) 31 De coördinatentransforma e van het assenstelsel {b} ten opzichte van het assenstelsel {a} (Figuur 4.3) kan worden weergegeven met behulp van de transforma ematrix ba T. Deze bestaat enerzijds uit een vector a pb die een transla e van het assenstelsel {b} ten opzichte van het referen estelsel {a} langs de Z-rich ng met een afstand A bevat en anderzijds uit een rota ematrix ba R die een verdraaiing met de hoek −θ1 (kurkentrekkerregel, rechterhand) rond de Z-as beschrij . De overige transforma ematrices kunnen op een gelijkaardige manier worden opgesteld: • De transforma ematrix cb T beschrij een transla e langs de X-rich ng met een afstand B en een rota e om de Y-as ten gevolge van een hoek θ2 . • De transforma ematrix dc T omvat een transla e langs de Z-rich ng met een afstand C en een verdraaiing om de Y-as met een hoek θ3 . • De transforma ematrix ed T bevat een transla e langs de Z-rich ng met een afstand D. Hier treedt geen rota e op. • De transforma ematrix fe T beschrij een transla e langs de X-rich ng met een afstand E en een rota e om de X- en Y-as respec evelijk volgens een hoek −θ4 en θ5 . • De transforma ematrix gf T omvat een transla e langs de X-rich ng met een afstand F en een verdraaiing om de X-as met een −θ6 . Door de beschreven transforma ematrices met elkaar te vermenigvuldigen, wordt de transforma ematrix ga T bekomen. Deze beschrij de transla e en rota e van het assenstelsel {g} ten opzichte van het referen estelsel {a}. In het kader van deze masterproef moeten echter de ashoeken berekend worden in func e van de gewenste pose coördinaten (Formule 4.4). (4.4) (θ1 , θ2 , θ3 , θ4 , θ5 , θ6 ) = f (X, Y, Z, r, p, y) Dit kan gerealiseerd worden met behulp van de inverse kinema ca, zie sec e 4.1. 4.1 Berekenen van de ashoeken in func e van de gewenste posi e en oriënta e van de eindeffector 4.1.1 Berekenen van de hoeken θ1 , θ2 en θ3 Omdat de posi e van de robot pols (oorsprong assenstelsel {f}, Figuur 4.3) enkel wordt bepaald door de eerste drie assen, kunnen de hoeken rechtstreeks worden berekend met behulp van de gewenste X-, Y- en Zcoördinaten. Eerst en vooral moet de gewenste posi e van de eindeffector herleid worden naar de posi e van de robot pols. Met behulp van een transla e langs xg met een afstand −F , wordt het centerpunt van de robot pols bereikt. Met dit in het achterhoofd kunnen de posi e coördinaten van de robot pols (Xpols , Ypols , Zpols ) berekend worden met behulp van formule 4.5. ( ap 1 ) ( = ga T gp 1 ) of Xpols Ypols Zpols 1 g = aT −F 0 0 1 (4.5) Vervolgens kunnen de ashoeken θ1 , θ2 en θ3 berekend worden. De volledige uitwerking van deze berekeningen kan worden teruggevonden in [1]. Hieronder worden de resultaten van de berekeningen weergegeven. 32 θ3 Z {d} D Y {e} γ E π -(α+β) C L1 β θ2 {c} {f } r α B Exy L2 δ Dxy Fxyz Xpols {e} {g} z Cxy xy {b} {d} {f } Fxy {g} Ypols {c} A B XY {a} θ1 X {a} {b} Figuur 4.4: Zijaanzicht robotarm, berekening θ1 en θ2 Figuur 4.5: Bovenaanzicht robotarm, berekening θ1 Berekenen van θ1 (Figuur 4.5 [1]): θ1 = atan2(−Ypols , Xpols ) (4.6) Berekenen van L1, L2, xy, z en r (Figuur 4.4 [1]): L1 = L2 = xy = z = r = C √ D2 + E 2 √ X2pols + Y2pols − B Zpols − A √ xy2 + z2 (4.7) (4.8) (4.9) (4.10) (4.11) Berekenen van α, β en γ: ϵ r2 − L12 − L22 2(L1 L2 = sin(ϵ) + cos(ϵ) α = atan β = γ = ϵ−α ( ) π D − atan 2 E L1 L2 ) (4.12) (4.13) (4.14) (4.15) Het teken van xy bepaalt drie gevallen voor δ en θ2 : • xy > 0: ( z xy ) δ = atan θ2 = π −α−δ 2 δ = θ2 = (4.16) (4.17) • xy = 0: π 2 −α (4.18) (4.19) • xy < 0: δ = θ2 = atan ( xy ) z −(α + δ) + π 2 (4.20) (4.21) θ3 wordt bepaald door de hulphoeken: θ3 = α + β − γ (4.22) 33 4.1.2 Berekenen van de hoeken θ4 , θ5 en θ6 De laatste drie assen van de robot hebben als doel om de oriënta e van de eindeffector te manipuleren. Gezien de rota ematrix van het assenstelsel {g} ten opzichte van het referen estelsel {a} gekend is (gewenste oriënta e) en deze van het assenstelsel {e} ten opzichte van het referen estelsel {a} kan worden berekend met behulp van de hoeken θ1 , θ2 , θ3 , wordt het verschil in oriënta e tussen deze twee assenstelsels volledig bepaald door de hoeken θ4 , θ5 , θ6 . e z {e} z {f } {g} θ4 zf g E f θ6 Fx xg yg xe ye yf θ5 Figuur 4.6: Oriënta e assenstelsel {g} t.o.v. assenstelsel {e} Eerst en vooral kan de rota ematrix ea R berekend worden met behulp van de voorwaartse kinema ca. De rota ematrix ba R wordt bepaald door een rota e met een hoek −θ1 rond de Z-as (Figuur 4.7): cos(−θ1 ) b R(Z, −θ ) = sin(−θ 1 1) a 0 −sin(−θ1 ) cos(−θ1 ) 0 0 0 1 (4.23) De rota ematrix cb R beschrij een verdraaiing met θ2 om de Y-as (Figuur 4.7): cos(θ2 ) c 0 b R(Y, θ2 ) = −sin(θ2 ) 0 1 0 sin(θ2 ) 0 cos(θ2 ) cos(θ3 ) d R(Y, θ ) = 0 3 c −sin(θ3 ) 0 1 0 sin(θ3 ) 0 cos(θ3 ) zd D d y C {d} θ3 zb zc (4.24) Vervolgens kan het assenstelsel roteren met θ3 rond de Y-as (Figuur 4.7): ye xe xd ze {e} B {c} xc xb yc θ2 Het assenstelsel {e} wijzigt echter niet in oriënta e ten opzichte van {d} (Figuur 4.7). Hierdoor geldt: 1 e dR = 0 0 0 1 0 0 0 1 {b} yb A (4.25) za θ1 xa {a} ya (4.26) Figuur 4.7: Voorwaartse kinema ca: {e} t.o.v. {a} 34 Zo kan de totale rota ematrix ea R gevonden worden door de onderlinge rota ematrices met elkaar te vermenigvuldigen (met c1 = cos(θ1 ), s1 = sin(θ1 ), ...): c1 e R = −s 1 a 0 Hieruit volgt: s1 c1 0 0 c2 0 0 1 −s2 0 s2 c3 1 0 0 0 c2 −s3 c1 c2 c3 − c1 s2 s3 e a R = s1 s2 s3 − c2 c3 s1 −c2 s3 − c3 s2 s1 c1 0 0 s3 1 1 0 0 0 c3 0 0 1 0 0 0 1 c1 c2 s3 + c1 c3 s2 −c2 s1 s3 − c3 s1 s2 c2 c3 − s2 s3 (4.27) (4.28) Als gewenste oriënta e voor de eindeffector kunnen drie verschillende verdraaiingen meegegeven worden, namelijk een roll-, pitch-, yaw- rota e die respec evelijk een rota e rond de X-, Y- en Z-as voorstellen. Op deze manier kan de rota ematrix ga R opgesteld worden (Formule 4.29). Voor een uitvoerige beschrijving van een roll-, pitch- en yaw- rota e wordt verwezen naar [10]. g aR = R(RP Y, r, p, y) = R(Z, y)R(Y, p)R(X, r) cy −sy 0 cp 0 sp = sy cy 0 0 1 0 0 0 1 −sp 0 cp cy cp cy sp sr − sy cr cy sp cr + sy sr = sy cp sy sp sr + cy cr sy sp cr − cy sr −sp cp sr cp cr 1 0 0 cr 0 sr 0 −sr cr (4.29) Nu de rota ematrix ga R en ea R gekend zijn, kan de rota ematrix ge R gevonden worden: g aR = ea R ge R a eR = ea R−1 (4.30) Voor een rota ematrix geldt: R−1 = RT g eR (4.31) = ea RT ga R Eveneens kan de rota ematrix ge R beschreven worden met behulp van een XYX-rota e (roll-, pitch- en roll-rota e). Deze kan net zoals de rota ematrix ea R berekend worden met behulp van de voorwaartse kinema ca. De rota ematrix fe R wordt bepaald door een rota e met een hoek −θ4 en θ5 respec evelijk rond de X-as en Y-as (Figuur 4.6): 1 f e R(XY, −θ4 , θ5 ) = 0 0 0 cos(−θ4 ) sin(−θ4 ) cos(θ5 ) 0 0 −sin(−θ4 ) −sin(θ5 ) cos(−θ4 ) 0 1 0 sin(θ5 ) 0 cos(θ5 ) (4.32) 35 De rota ematrix gf R beschrij een verdraaiing met een hoek −θ6 om de Y-as (Figuur 4.6): 1 g R(X, −θ ) = 0 6 f 0 0 cos(−θ6 ) sin(−θ6 ) 0 −sin(−θ6 ) cos(−θ6 ) (4.33) Zo kan de totale rota ematrix ge R opnieuw gevonden worden door de onderlinge rota ematrices met elkaar te vermenigvuldigen (met c4 = cos(θ4 ), s4 = sin(θ4 ), ...): 1 g eR = 0 0 Hieruit volgt: 0 c4 −s4 c5 0 s4 0 −s5 c4 c5 g e R = −s4 s5 −c4 s5 1 s5 0 0 0 c5 0 1 0 0 c6 −s6 0 s6 c6 (4.34) c6 s5 c4 s6 + c5 c6 s4 c4 c5 c6 − s4 s6 −s5 s6 c4 c6 − c5 s4 s6 −c6 s4 − c4 c5 s6 (4.35) Nu de samenstelling van de rota ematrix ge R gekend is (Formule 4.35) en de waarde van elke element in deze matrix met behulp van formule 4.29 kan worden achterhaald (gewenste oriënta e van de eindeffector), kunnen de hoeken θ4 , θ5 , θ6 bepaald worden. Omdat de laatste drie assen een roll-, pitch-, roll-rota e beschrijven, moet de singulariteit van de robot in rekening gebracht worden. Deze stelt dat meerdere assen kunnen gebruikt worden om een iden eke beweging te bekomen. Als de pitch-rota e (As 5) van de eindeffector gelijk is aan nul, dan zijn de twee roll-joints (As 4 en As 6) uitgelijnd ten opzichte van elkaar. Indien vervolgens een roll-rota e van de eindeffector gewenst is, hebben de twee roll-joints in feite een oneindige flexibiliteit om de gewenste oriënta e te bereiken. Wanneer bijvoorbeeld een roll-rota e van 40◦ nodig is, dan zullen de volgende combina es van joint 4 en joint 6 aan de gewenste roll-rota e voldoen, samen met nog een oneindig aantal andere combina es: (20◦ ; 20◦ ), (50◦ ; -10◦ ), (10◦ ; 30◦ ), (-10◦ ; 50◦ ), etc... Vervolgens bestaan er twee gevallen om de hoeken θ4 , θ5 , θ6 te berekenen: θ5 ̸= 0 en θ5 = 0. De waarde van ge R11 bepaalt het geval omdat deze verduidelijkt of de pitch-rota e al dan niet gelijk is aan nul. Geval 1: g e R11 ̸= 1 ⇒ θ5 ̸= 0 θ4 θ5 θ6 Geval 2: g e R11 = 1 ⇒ θ5 = 0 1 0 c4 c6 − s4 s6 0 0 −c6 s4 − c4 s6 = atan2(− ge R21 , − ge R31 ) = atan2(−s4 ge R21 = atan2(− 0 c4 s6 + c6 s4 c4 c6 − s4 s6 − (4.36) c4 ge R31 , ge R11 ) (4.37) g g e R12 , e R13 ) (4.38) = 1 0 0 0 cos(θ4 + θ6 ) −sin(θ4 + θ6 ) 0 sin(θ4 + θ6 ) cos(θ4 + θ6 ) (4.39) zodat θ5 θ4 + θ6 = = (4.40) 0 atan2( g g e R23 , e R22 ) (4.41) 4.2 Implementa e kinema sche transforma e Nu alle hoeken kunnen worden berekend, kan het kinema sch model in MATLAB®/Simulink geïmplementeerd worden om zo de robotarm in real- me aan te sturen. Het toegepaste MATLAB®-script kan worden teruggevonden in bijlage B.8. In deze sec e wordt aangetoond op welke manier alle hoeken met behulp van het model berekend 36 worden zodat de eindeffector de gewenste posi e en oriënta e bereikt. Eerst en vooral kan geïllustreerd worden dat het kinema sch model alle hoeken voor de home- of rustposi e van de robot correct berekent. Deze ruststand wordt bereikt wanneer de hoekverdraaiingen van alle assen gelijk zijn aan 0 graden. Met behulp van figuur 4.8 kan worden aangetoond dat deze toestand verkregen wordt als de gewenste pose coördinaten (X, Y, Z, r, p, y) gelijk zijn aan respec evelijk (1040, 0, 1480, 0, 0, 0). Met behulp van figuren 4.9 en 4.10 kan worden aangetoond dat de oriënta e van de eindeffector (assenstelsel {g}) blij behouden indien enkel de posi e coördinaten (X, Y en Z) gewijzigd worden. Daarnaast kan aan de hand van figuur 4.11 geïllustreerd worden dat de posi e van de eindeffector blij behouden indien de orïenta e van het assenstelsel {g} ten opzichte van het referen estelsel {a} wordt gewijzigd. Hierbij wordt de oriënta e van de eindeffector 90 graden geroteerd om de Y-as ten opzichte van het referen estelsel. Merk op dat hiermee een pitch-rota e beschreven wordt. Een roll- en yaw-rota e zijn respec evelijk een rota e rond de X- en Z-as van het assenstelsel {g} ten opzichte van het referen estelsel {a}. Zg {g} Za θ5 Xg θ6 θ4 1480 mm θ1 θ3= 39,52° 1000 mm θ5= 45,71° θ6= -180° (1040, 0, 1000 , 0, 0, 0) θ2 (1040, 0, 1480 , 0, 0, 0) Za θ4= -180° XYg θ3 Yg Zg {g} θ2= 6,187° {a} θ1= 0° Ya XYa 1040 mm Xa {a} 1040 mm Figuur 4.9: Kinema ca: aanpassen Z-coördinaat, oriënta e {g} ongewijzigd Figuur 4.8: Kinema ca: robotarm in rustposi e {g} Zg Za Za 1480 mm Zg Yg Xg {g} 1000 mm (1040, 0, 1000 , 0, 90, 0) θ1 θ3= 17,52° θ5= 59,7° θ4,6= 0° XYg θ2= 12,78° {a} θ1= 0° 300 mm 1040 mm Ya XYa {g} 1040 mm Xa Figuur 4.11: Kinema ca: aanpassen oriënta e van de eindeffector, posi e {g} ongewijzigd Figuur 4.10: Kinema ca: aanpassen Y-coördinaat, oriënta e {g} ongewijzigd 37 4.3 Besluit Na het implementeren van het invers kinema sch model in MATLAB®/Simulink kan deze real- me door de iPC uitgevoerd worden. Hierbij kan geconcludeerd worden dat de hoeken θ1 , θ2 , θ3 , θ4 , θ5 en θ6 steeds accuraat worden berekend in func e van de gewenste pose coördinaten. Op die manier kan door een samenwerking van alle assen de gewenste posi e en oriënta e van de eindeffector bereikt worden. Vervolgens kan een trajectgenerator worden opgesteld die op ieder moment de gewenste posi e en oriënta e coördinaten genereert zodat de eindeffector van de robot een gewenst traject beschrij . 38 5 Traject A ankelijk van de uiteindelijke toepassing kan het gewenste parcours op twee verschillende manieren afgelegd worden. Voor applica es zoals pick & place units is enkel de gewenste eindposi e van belang. Deze moet echter zo snel en nauwkeurig mogelijk bereikt worden. Dit soort beweging, waarbij de trajec nforma e tussen het beginen eindpunt niet van belang is, staat gekend als een punt-tot-punt-beweging (Figuur 5.1). Anderzijds is voor toepassingen zoals een lasnaad robot het traject tussen het begin- en eindpunt wel van belang. Het is de bedoeling dat de robot op elk moment het gewenste parcours zo nauwkeurig mogelijk volgt. Dit wordt een baanbeweging genoemd. Beide mogelijkheden worden in dit hoofdstuk besproken. 5.1 Punt-tot-punt-beweging Z t1 = 0s t2 = 5s 2 1 Y X Figuur 5.1: Punt-tot-punt-beweging Bij een punt-tot-punt-beweging is enkel de fout op het eindpunt van de beweging belangrijk. De wenswaarde voor een dergelijk systeem is een stapfunc e waarbij de stapgroo e de gewenste eindposi e aangee . Het systeem moet proberen deze eindwaarde zo snel en zo nauwkeurig mogelijk te bereiken. Meestal is geen doorschot gewenst [11]. Om aan deze voorwaarden te voldoen, werd de posi eregelkring in hoofdstuk 3 dan ook met behulp van de stapresponsie afgeregeld. Als reac e op zo'n stapfunc e zal het systeem echter plots in grote mate versnellen (Figuur 5.3). Dit veroorzaakt bruuske krachtwijzigingen die het materiaal sterk belasten. Een oplossing kan worden gevonden in het toepassen van een tweede orde prefilter op de wensposi e (Figuur 5.2). Deze zorgt voor het omvormen van de stapfunc e naar een signaal dat gradueel s jgt zodat de posi eregelkring minder hevig reageert. θ* Prefilter + - * Positie ω + Regelaar - Snelheid Regelaar T* Proces ω Int θ Figuur 5.2: Posi eregelkring met prefilter 39 55 Δt = 32 ms 50 100 45 Wenspositie 40 Werkelijke positie 30 60 25 Δv = 111,7 °/s 20 40 Snelheid [°/s] Werkelijke snelheid 35 Positie [°] 80 15 10 20 5 0 0 0 0.2 0.4 0.6 0.8 1 Tijd [s] 1.2 1.4 1.6 Figuur 5.3: As 3: stapresponsie van de posi eregelkring De stapresponsie van As 3 met prefilter wordt weergegeven in figuur 5.4. 55 70 50 45 60 Wenspositie Δt = 324,5 ms Wenspositie na prefilter Positie [°] Werkelijke positie Werkelijke snelheid Δv = 70,8 °/s 35 30 50 40 25 30 20 15 Snelheid [°/s] 40 20 10 10 5 0 0 0 0.5 1 Tijd [s] 1.5 2 2.5 Figuur 5.4: As 3: stapresponsie van de posi eregelkring met 2e orde prefilter Meteen kan worden opgemerkt dat de posi e-setpoint na de tweede orde prefilter geen stapfunc e meer beschrij , maar een soort van s-curve. Hierdoor is de plotse versnelling kleiner waardoor de beweging vloeiender verloopt (Figuur 5.4). Kortom, door het toevoegen van een tweede orde prefilter wordt de punt-tot-punt beweging gemodificeerd tot een baanbeweging. 40 5.2 Baanbeweging Bij een baanbeweging zal op discrete jds ppen telkens een wensposi e uitgestuurd worden (Figuur 5.5). Hier is niet alleen de eindposi e van belang, maar moet elk posi ecommando ook zo goed mogelijk bereikt worden [11]. Een baanbeweging kan worden opgesplitst in kleine, kort op elkaar volgende punt-tot-punt-bewegingen. Om dit te realiseren wordt de sturing van de robot uitgebreid met een trajectgenerator (interpolator). Deze hee als taak om bij iedere cyclus jd de geschikte pose coördinaten aan het geïmplementeerde kinema sch model te bezorgen. Op die manier zal de juiste hoek voor elke as iedere cyclus jd (Ts) berekend worden zodat de eindeffector steeds het gewenste traject beschrij . In deze sec e wordt de opbouw van de trajectgenerator kort besproken. Daarnaast wordt de nauwkeurigheid waarmee de robot een baanbeweging uitvoert en de eventuele op malisa e hiervan nagegaan. Z Δt = Ts Y X Figuur 5.5: Baanbeweging 5.2.1 Opbouw trajectgenerator Om de trajectgenerator op te bouwen kan opnieuw gebruik gemaakt worden van de MATLAB®/Simulink omgeving. Op die manier kan de generator samen met het kinema sch model en de posi eregelkringen van elke as één groot geheel vormen dat real- me door de industriële PC wordt uitgevoerd (Bijlage B.10). Als basis voor een func onele trajectgenerator moet het mogelijk zijn om te kunnen definiëren welke posi es het traject moet beschrijven en op welke jds ppen de verschillende posi epunten moeten worden bereikt. positie (X3, t3) (Xn - 1, tn - 1) (X1, t1) (X2, t2) (X0, t0) (Xn, tn) tijd Figuur 5.6: Traject: posi es i.f.v. de jd 41 In figuur 5.6 wordt met behulp van een voorbeeld aangetoond op welke manier de gedefinieerde posi epunten samen met hun bijhorende jdsinforma e een bepaald traject vormen. Bovendien kan zo de snelheid waarmee het traject beschreven wordt eenvoudig gewijzigd worden door de jdsinforma e van elk punt aan te passen. In figuur 5.7 wordt het func oneel eindresultaat weergegeven. Ten eerste is het model voorzien van 1D-matrices om de gewenste posi e-en jd-gegevens te kunnen ingeven. Ten tweede moet een jdas opgebouwd worden zodat de iPC elke cyclus een nieuwe wensposi e tussen twee ingegeven punten kan berekenen (Figuur 5.6) in func e van de jd t. Er moet met andere woorden tussen de gekozen posi epunten geïnterpoleerd worden. Dit wordt gerealiseerd met behulp van formule 5.1. Om deze jdas op te bouwen wordt gebruik gemaakt van een integrator. Zo zal een constante steeds verder geïntegreerd worden waardoor de jd t lineair zal blijven s jgen. 1 1 s Constant 0 E nable t Trajectgenerator Integrator NOT [X0, X1, X2, X3, ..., Xn - 1, Xn] PosArray X Positiepunten S cope [t0, t1, t2, t3, ..., tn - 1, tn] TijdsArray Tijdspunten MATLAB Function Figuur 5.7: Trajectgenerator in MATLAB®/Simulink ( X = Xn−1 + Xn − Xn−1 Xt − Xt−1 ) · (t − tn−1 ) (5.1) De snelheid waarmee het traject afgelegd wordt, kan eveneens real- me gewijzigd worden door de groo e van de geïntegreerde constante aan te passen. Ten slo e kan een MATLAB®Func on in het model teruggevonden worden. Deze zal met behulp van formule 5.1, de jd t en de gewenste posi e- en jd-gegevens op ieder moment de juiste posi e genereren. De MATLAB®code voor het genereren van het X-, Y- en Z-coördinaat (posi e) kunnen respec evelijk in bijlage B.4, B.5 en B.6 teruggevonden worden. De code voor het genereren van de rota e-coördinaten kan gevonden worden in bijlage B.7. Door elke pose coördinaat (X, Y, Z, r, p, y) van een dergelijke trajectgenerator te voorzien, kunnen alle assen van de robot op zo'n manier worden aangestuurd zodat de eindeffector een gewenst traject beschrij . 42 5.2.2 Performan e baanbeweging Nu de robotarm in staat is een gewenst traject af te leggen, kan de performan e van de baanbeweging worden nagegaan. Zo wordt even dieper ingegaan op hoe nauwkeurig ieder punt van het gewenste traject werkelijk door de assen van de robot in real- me gevolgd wordt. Het gedrag van de regelkring wordt geverifiëerd door aan de ingang een sinus als wensposi e aan te leggen. In figuur 5.8 wordt de responsie van As 1 weergegeven. 50 Wenspositie Werkelijke positie 40 30 Δ° = 1,38° 20 Positie [°] 10 0 Δt = 144 ms −10 −20 −30 −40 −50 0 0.5 1 1.5 Tijd [s] 2 2.5 3 Figuur 5.8: As 1: posi eresponsie baanbeweging Hierbij kunnen twee zaken geconcludeerd worden. Ten eerste kan worden besloten dat de uiteindelijke amplitude van de sinus niet wordt bereikt. De fout tussen de werkelijke en de gewenste amplitude bedraagt namelijk 1,38 graden [°]. Ten tweede kan worden opgemerkt dat de sinus die de werkelijke posi e beschrij 144 milliseconden [ms] naijlt op de gewenste sinus. Met oog op de accuraatheid van de robot zullen de posi eregelkringen nogmaals moeten worden geop maliseerd. De volgfout op de gewenste posi e kan gereduceerd worden door het toepassen van een feedforward of voorwaartse koppeling. Hierdoor wordt a priori informa e aan de verschillende regelaars aangeboden waardoor de volgfouten verminderen. In het ideale geval, mits perfecte modelkennis van het proces, zou het systeem volledig gestuurd kunnen worden op basis van een feedforward [11]. Toch is een regelaar nog steeds een vereiste omwille van de variërende traagheidsmomenten ten opzichte van de rota e-assen, wijzigende lasten, veroudering, etc. In figuur 5.9 is weergegeven hoe de snelheidswens rechtstreeks wordt doorgestuurd naar de ingang van de snelheidsregelaar door de posi eregelaar te overbruggen met behulp van een snelheidsfeedforward. Zo wordt de gewenste snelheid rechtstreeks bepaald uit de afgeleide van de posi e-setpoint. De posi eregelaar wordt dan enkel nog gebruikt om storingen weg te regelen. 43 dθ dt + θ* - * Positie ω + Regelaar - Snelheid Regelaar ω T* Proces θ Int Figuur 5.9: Posi eregelkring met snelheidsfeedforward Nu kan het gedrag van de regelkring opnieuw worden gecontroleerd door aan de ingang dezelfde sinus als wensposi e aan te leggen. De posi eresponsie is weergegeven in figuur 5.10. 50 Wenspositie Werkelijke positie zonder feedforward Werkelijke positie met feedforward 40 30 Δ° = 0,025° 20 Positie [°] 10 0 Δt = 10 ms −10 −20 −30 −40 −50 0 0.5 1 1.5 Tijd [s] 2 2.5 3 Figuur 5.10: As 1: posi eresponsie baanbeweging met snelheidsfeedforward Aan de hand van deze me ng kan besloten worden dat de naijling gereduceerd is tot 10 ms. Bovendien bedraagt de fout tussen de werkelijke en de gewenste amplitude nu amper 0,025°. De posi eregelkring is zowat 55 keer nauwkeuriger geworden door het toevoegen van snelheidsfeedforward. Het is onbetwistbaar dat het gebruik van een feedforward een grote invloed hee op de nauwkeurigheid. Daarom wordt elke as met een snelheidsfeedforward geop maliseerd zodat de eindeffector van de robotarm met uiterste precisie een gewenst traject kan volgen. 44 6 Conclusies 6.1 Behaalde resultaten Op basis van de bevindingen van deze masterproef kan worden vastgesteld dat een controle-algoritme voor een industriële robot met zes vrijheidsgraden volledig eigenhandig kan worden ontworpen met behulp van een open controller. Daarnaast biedt dit project de mogelijkheid om extensieve kennis te verwerven in de verschillende aspecten van de robotsturing. Eerst en vooral werd jdens dit project een beter inzicht verkregen in de volledige hardwarema ge opbouw van een robot controller. Zo werd duidelijk welke componenten nodig zijn voor het aansturen van real- me toepassingen zoals een zes-assige robot. Het configureren van de servo drives vormde echter een uitdaging. Om die reden werd een gebruikersaanwijzing [7] opgesteld met concrete richtlijnen over het aansturen van de robot met behulp van het automa seringspla orm TwinCAT®3. Op die manier wordt een jdrovend leerproces vermeden bij toekoms ge projecten en kan hoofdzakelijk gefocust worden op het effec ef doel van deze projecten. Na het verwerven van de kennis en de fundamentele vaardigheden om het systeem te configureren en in werking te stellen, konden de vereiste controle-algoritmes ontworpen worden. Eerst werd via een systeemiden fica e van het onbekend proces, bestaande uit mechanisch en stroomgeregeld systeem, een niet-parametrisch model opgesteld. Dit model werd opgemeten door de ingang van het onbekende systeem te exciteren met behulp van een frequen erijk signaal (bijvoorbeeld een sweep). Na het opmeten van zowel de in- als uitgang werd op beide signalen een spectraalanalyse uitgevoerd om de frequen eresponsie van het systeem te achterhalen. Deze responsie kon worden weergegeven aan de hand van een bodekarakteris ek. Vervolgens kon de snelheidsregelaar (PI-regelaar) met behulp van het bode-stabiliteitscriterium worden ingesteld door middel van een vooropgestelde fasemarge. Tijdens deze masterproef werden fasemarges tussen 70 ◦ en 80 ◦ gekozen om een snel én robuust gesloten-lus systeem te verkrijgen. Als basis voor het instellen van de posi eregelaar (zuivere P-regelaar) werd de P-ac e stapsgewijs vergroot tot net geen doorschot optrad. Daarnaast werd voornamelijk bij de eerste 2 assen de invloed van het wijzigend massatraagheidsmoment ten opzichte van de rota e-as onderzocht. Zo werd een adap eve posi eregelaar ontwikkeld waarvan de propor onele ac e variëert in func e van de iner e ten opzichte van de draai-as. Uiteindelijk werd elke as van een performante posi eregeling voorzien. Ook het noodzakelijk kinema sch model dat instaat voor het berekenen van de verschillende ashoeken in func e van de gewenste pose coördinaten (posi e en oriënta e) van de eindeffector werd geanalyseerd en in MATLAB®/Simulink geïmplementeerd. Het kinema sch model bespreekt de voorwaartse en inverse kinema sche transforma e. De eerstgenoemde berekent de gewenste pose van de robot in func e van de aangelegde ashoeken terwijl de laatste de nodige ashoeken berekent in func e van de gewenste pose van de eindeffector. Beide zijn gebaseerd op coördinatentransforma es waarbij de rota e en transla e van een assenstelsel steeds ten opzichte van een referen estelsel worden berekend aan de hand van een transforma ematrix. Na het implementeren van het kinema sch algoritme in de iPC, kon worden vastgesteld dat de ashoeken in func e van de gewenste pose coördinaten steeds real- me en correct berekend worden. Eenmaal de eindeffector van de robotarm op een adequate wijze kon worden geposi oneerd en georiënteerd, werd een trajectgenerator opgebouwd in MATLAB®/Simulink. Op die manier kan een gewenst traject voor de eindeffector steeds vertaald worden naar concrete posi e-setpoints in func e van de jd voor de robot-assen. Bovendien werd de performan e van de posi eregeling voor een punt-tot-punt- en baanbeweging nagegaan. Bij 45 een punt-tot-punt-beweging bleek het gebruik van een tweede orde prefilter interessant. Door per as zo'n filter toe te passen op de wensposi e werd een meer soepele beweging bekomen waardoor het materiaal niet langer werd belast door bruuske krachtwijzigingen. In het geval van een baanbeweging bleek een snelheidsfeedforward voor het op maliseren van de posi eregeling noodzakelijk te zijn. Zo werd de volgfout van het traject gereduceerd tot amper enkele milliseconden waardoor ook de accuraatheid aanzienlijk werd verbeterd. 6.2 Sugges es voor verder onderzoek Het is duidelijk dat de grenzen van dit project nog lang niet bereikt zijn. Vooreerst kan de adap eve regelaar geop maliseerd worden met behulp van een exacte berekening van het wijzigend massatraagheidsmoment. Tot op heden is eveneens de invloed van een externe last verwaarloosd. Hierbij kan opnieuw de performan e van de verschillende posi eregelkringen nagegaan worden. Daarnaast kan de robotsturing voorzien worden van een bedieningsalgoritme zodat de eindeffector handma g kan worden geposi oneerd en georiënteerd (joggen). Bovendien kan ook een homing procedure geïmplementeerd worden. Als alterna ef hiervoor kan een NVRAM geheugen gebruikt worden. Deze zal de posi e van elke as bewaren indien de voedingsspanning wegvalt. Ook kan een applica e uitgedacht worden die de nauwkeurigheid en de complexiteit van de bewegingen van de robot illustreert. Ten slo e kan de trajectgenerator worden geop maliseerd zodat de volledige robot op een efficiënte manier wordt aangestuurd. De meest doeltreffende methode hoe niet hoofdzakelijk de kortste weg tussen twee punten te zijn, maar een beweging waarbij de robotsturing de servomotoren in een beperkte mate moet aansturen. Zo wordt meteen ook energie-efficiënt met de robot omgesprongen. 46 Literatuurlijst [1] S. Huysentruyt, ``Aansturen en afregelen van een 6-assige robot.'' Masterproef, 2013. 2013-2014. Academiejaar [2] K. R. Gmbh, ``Robot kr15 technical data.'' Datasheet, 1998. [3] K. R. Gmbh, ``Robot kr6,15 onderhoud.'' Datasheet, 1997. [4] SIEMENS, ``Simodrive 611/masterdrives mc ac servomotors 1 6.'' Datasheet, 2003. [5] S. AG, ``Simo cs s - 1 7 motors.'' Datasheet, 2013. [6] Beckhoff, ``Beckhoff informa on system.'' Online. [Datum van opzoeking: 26 Aug. 2013]. [7] L. Merlevede, ``Handleiding twincat 3.'' Cursustekst, 2014. Academiejaar 2013-2014. [8] B. Vervisch, ``Mechanische trillingen.'' Cursustekst, 2013 - 2014. Academiejaar 2013-2014. [9] S. Derammelaere and I. Sweertvaegher, ``Regeltechniek.'' Cursustekst. Academiejaar 2013-2014. [10] J. D. Schu er and D. Vandepi e, ``Toegepaste mechanica 3.'' Cursustekst, 2008. Academiejaar 2013-2014. [11] K. Stockman, ``Geavanceerde aandrij echniek deel 3.'' Cursustekst. Academiejaar 2013-2014. [12] N. Nise, Control Systems Engineering 4e with Just Ask Compa Nion Set. John Wiley & Sons Canada, Limited, 2005. [13] E. Red, ``Robo cs overview.'' Online, 1996. Academiejaar 2013-2014. [14] J. F. A. Díaz, M. S. Dutra, and F. A. de Noronha Castro Pinto, ``Kinema cal and dynamical models of kr 6 kuka robot, including the kinema c control in a parallel processing pla orm.'' Online, 2010. Academiejaar 2013-2014. 47 A A.1 KUKA KR15/2 Mechanische gegevens Deze mechanische gegevens kunnen worden teruggevonden in de technische datasheet [2] van de KUKA KR15/2 industriële robot (Figuur A.1). A5 + + A4 -+ A6 + -- -- -A2 A3 + -- -- + A1 Figuur A.1: KUKA KR15/2 industriële robot Tabel A.1: Mechanische gegevens KUKA KR15/2 As A1 A2 A3 A4 A5 A6 (So warema g) bereik van de as [ ◦ ] -185 tot 185 -55 tot 115 -210 tot 70 - tot -130 tot 130 - tot - Hoeksnelheid as [ ◦ /s] -152 tot 152 -152 tot 152 -152 tot 152 -250 tot 250 -357 tot 357 -660 tot 660 nmotor /nas 237/2 237/2 -237/2 -3145/31 90/1 1525/37 48 In figuur A.2 zijn de afme ngen en het bereik van de robotarm in zijaanzicht weergegeven. 600 140 120 155 Supplementaire last +70˚ 150 Zwaartepunt last 1945 650 ---210˚ +115˚ 675 1325 1480 ---55˚ 219 300 852 892 1570 R 145 Figuur A.2: Zijaanzicht KUKA KR15/2 In figuur A.3 is het bereik van de robotarm in bovenaanzicht weergegeven. --- 185˚ R 1570 +185˚ Figuur A.3: Bovenaanzicht KUKA KR15/2 49 A.2 Elektrische gegevens In deze bijlage kunnen de elektrische gegevens van de servomotoren teruggevonden worden [4]. Tabel A.2: Elektrische gegevens KUKA KR15/2 As A1 A2 A3 A4 A5 A6 P [kW] 2,83 2,83 0,79 0,50 0,50 0,50 Inom [A] 6,60 6,60 2,10 1,50 1,50 1,50 nnom [tr/min] 3000 3000 3000 6000 6000 6000 1 F K 6 Motortype 1FK6081-6AF71 1FK6081-6AF71 KK4EY-YYY-033 1FK7032-5AK71-1SB0 1FK6032-6AF71 1FK6032-6AF71 . . . – . A . 7 1 – 1 . . . Electrical=machine Synchronous=motor AC=Servomotor Series Frame=size Length Pole=number Non–ventilated Rated=speed F===G888=RPM H===Bf88=RPM K===w888=RPM Encoder=system A== Incremental=encoder1=sin2cos=)=Vpp 6I–D8B7I E== Absolute=value=encoder=EnDat=6A–D8B7I G== Basic=absolute=value=encoder=6A–GDI S== Resolver multi–pole S== Resolver D–pole Shaft=end A== with=keyway1=radial=eccentricity=tolerance=N1=without=holding=brake B== with=keyway1=radial=eccentricity=tolerance=N1=with=holding=brake G== Smooth=shaft=6no=keywayI1=radial=eccentricity=tolerance=N1=without=holding=brake H== Smooth=shaft=6no=keywayI1=radial=eccentricity=tolerance=N1=with=holding=brake Degree=of=protection 8== IP=wB D== IP=wf=and=additionally1=drive–end=flange1=IP=wk Figuur A.4: Motorbeschrijving 50 B MATLAB Code B.1 Systeemiden fica e: opstellen bodekarakteris ek Ts = 0 .00025 ; %c y c l u s t i j d i n d u s t r i ë l e PC (250µs ) [ EstH , EstF ] = t f e s t i m a t e (q_rTorqueCommand , q_rVeloActual , [ ] , [ ] , [ ] , 1 / Ts ) ; EstMag = abs ( EstH ) ; EstPhase = angle ( EstH ) ; EstPhaseGraden=EstPhase *180/ p i ; EstOmega = EstF*2* p i ; %( want omega=2*p i * f ) % Make p l o t f i g u r e ( ’Name ’ , ’ IN = Torque , OUT = V e l o c i t y ’ , ’ NumberTitle ’ , ’ o f f ’ , ’ Color ’ , [ 1 1 1 ] ) ; % Magnitude p l o t on top subplot ( 2 , 1 , 1 ) ; semilogx (EstOmega , 20* log10 (EstMag ) , ’ blue ’ , ’ LineWidth ’ , 1 ) ; x l a b e l ( ’ Frequentie [ Rad/ s ] ’ ) ;%x l a b e l ( ’ \ omega , rad /s ’ ) y l a b e l ( ’ |H| [ dB ] ’ ) ; t i t l e ( ’ IN = Torque , OUT = V e l o c i t y ’ ) ; % Phase p l o t on bottom subplot ( 2 , 1 , 2 ) ; semilogx (EstOmega , EstPhaseGraden , ’ blue ’ , ’ LineWidth ’ , 1 ) ; x l a b e l ( ’ Frequentie [ Rad/ s ] ’ ) ;%x l a b e l ( ’ \ omega , rad /s ’ ) y l a b e l ( ’ \ angle H [ ° ] ’ ) ; B.2 As 1: berekening afstand R f u n c t i o n R = I n e r t i e B e r e k e n i n g ( theta2 , theta3 , theta5 ) %afstanden B = 0.3 ; C = 0 .65 ; D = 0 .155 ; E = 0.6 ; F = 0 .14 ; %berekeningen afst an d Rc = C* s i n d ( theta2 ) ; Rd = D* s i n d ( theta2 + theta3 ) ; gamma = 90 - ( theta2 + theta3 ) ; Re = E* s i n d (gamma ) ; 51 Rf = F* s i n d (gamma - theta5 ) ; Rtot = B + Rc + Rd + Re + Rf ; i f abs ( Rtot ) <= B R = B; else i f abs ( Rtot ) <= abs (B + Rc) R = abs (B + Rc ) ; else i f abs ( Rtot ) <= abs (B + Rc + Rd) R = abs (B + Rc + Rd ) ; else i f abs ( Rtot ) <= abs (B + Rc + Rd + Re) R = abs (B + Rc + Rd + Re ) ; else R = Rtot ; end end end end B.3 As 2: berekening afstand R f u n c t i o n R2 =InertieBerekening_A2 ( theta3 , theta5 ) %afstanden C = 0 .65 ; D = 0 .155 ; E = 0.6 ; F = 0 .14 ; %berekeningen afst an d gamma = 180 - theta3 ; Rcd = s q r t (C^2 + D^2 - 2*C*D* cosd (gamma ) ) ; a l f a = asind ( ( s i n d (gamma)/Rcd) * C) ; beta = 90 - a l f a ; Rce = s q r t (Rcd^2 + E^2 - 2*Rcd*E* cosd ( beta ) ) ; p s i = asind ( ( s i n d ( beta )/ Rce )*Rcd ) ; lambda = gamma - 9 0 ; e p s i l o n = theta5 - lambda ; 52 phi = 180 - lambda - p s i - e p s i l o n ; Rcf = s q r t ( Rce^2 + F^2 - 2*Rce*F* cosd ( phi ) ) ; i f Rcf <= 0 . 6 5 R2 = 0 . 6 5 ; else R2 = Rcf ; end B.4 Trajectgenerator: baanbeweging X-coördinaat f u n c t i o n X = Tr a j ec t ( t , PosArray , TijdsArray ) %I n t e r p o l a t o r X- co ö r d i n a a t global J ; e i n d e f f e c t o r = 0 ; %l e n g t e e i n d e f f e c t o r %t i j d t % i f t == J = X= end g e r e s e t --> r e s e t J ( index ) --> X- co ördi naat r u s t p o s i t i e u i t s t u r e n 0; 1 ; %Index p o s i t i e - en t i j d s a r r a y 1040 + e i n d e f f e c t o r ; %mm %t r a j e c t berekening : X- c oör dinaat i f J <= l e n g t h ( PosArray ) && ( t ∼= 0) i f ( J == 1) X = 1040 + e i n d e f f e c t o r ; e l s e %i n t e r p o l e r e n X = ( PosArray ( J - 1) + ( ( PosArray ( J ) - PosArray ( J - 1 ) ) / ( TijdsArray ( J ) - TijdsArray ( J - 1 ) ) ) * ( t - TijdsArray ( J - 1 ) ) ) ; end i f t >= TijdsArray ( J ) J = J + 1; end else X = 1040 + e i n d e f f e c t o r ; end 53 B.5 Trajectgenerator: baanbeweging Y-coördinaat f u n c t i o n Y = Tr a j ec t ( t , PosArray , TijdsArray ) %I n t e r p o l a t o r Y- co ö r d i n a a t global J ; %t i j d t % i f t == J = Y= end g e r e s e t --> r e s e t J ( index ) --> Y- co ördi naat r u s t p o s i t i e u i t s t u r e n 0; 1; 0 ; %mm %t r a j e c t berekening : Y- c oör dinaat i f J <= l e n g t h ( PosArray ) && ( t ∼= 0) i f ( J == 1) Y = 0; e l s e %i n t e r p o l e r e n Y = ( PosArray ( J - 1) + ( ( PosArray ( J ) - PosArray ( J - 1 ) ) / ( TijdsArray ( J ) - TijdsArray ( J - 1 ) ) ) * ( t - TijdsArray ( J - 1 ) ) ) ; end i f t >= TijdsArray ( J ) J = J + 1; end else Y = 0; end B.6 Trajectgenerator: baanbeweging Z-coördinaat function Z global J ; %t i j d t % i f t == J = Z = end = Tr a j ec t ( t , PosArray , TijdsArray ) %I n t e r p o l a t o r Z- co ö r d i n a a t g e r e s e t --> r e s e t J ( index ) --> Z- co ördi naat r u s t p o s i t i e u i t s t u r e n 0; 1; 1480; %mm %t r a j e c t berekening : Z- c oör dinaat i f J <= l e n g t h ( PosArray ) && ( t ∼= 0) i f ( J == 1) Z = 1480; 54 e l s e %i n t e r p o l e r e n Z = ( PosArray ( J - 1) + ( ( PosArray ( J ) - PosArray ( J - 1 ) ) / ( TijdsArray ( J ) - TijdsArray ( J - 1 ) ) ) * ( t - TijdsArray ( J - 1 ) ) ) ; end i f t >= TijdsArray ( J ) J = J + 1; end else Z = 1480; end B.7 Trajectgenerator: baanbeweging roll-, pitch-, en yaw-coördinaat %I n t e r p o l a t o r voor r o l l - , pitch - en yaw- coö r din a a t f u n c t i o n r = Tr a j ec t ( t , PosArray , TijdsArray ) %I n t e r p o l a t o r r o l l - c o ö r d i n a a t global J ; %t i j d t % i f t == J = r = end g e r e s e t --> r e s e t J ( index ) --> r o l l - coö rdina at r u s t p o s i t i e u i t s t u r e n 0; 1; 0; %t r a j e c t berekening : r o l l - co ördin aat i f J <= l e n g t h ( PosArray ) && ( t ∼= 0) i f ( J == 1) r = 0; e l s e %i n t e r p o l e r e n r = ( PosArray ( J - 1) + ( ( PosArray ( J ) - PosArray ( J - 1 ) ) / ( TijdsArray ( J ) - TijdsArray ( J - 1 ) ) ) * ( t - TijdsArray ( J - 1 ) ) ) ; end i f t >= TijdsArray ( J ) J = J + 1; end else r = 0; end 55 B.8 Het kinema sch model voor de KUKA KR15/2 industriële robot f u n c t i o n [ t1 , t2 , t3 , t4 , t5 , t6 ]=Kinematica_LMV(X,Y, Z , r , p , y ) %omrekenen inp ut s [ grad --> rad ] r = r *(3 .14159265359 / 1 8 0 ) ; p = p*(3 .14159265359 / 1 8 0 ) ; y = y*(3 .14159265359 / 1 8 0 ) ; % Afstanden [mm] eindeffector = 0; a = 675; b = 300; c = 650; d = 155; e = 600; f = 140 + e i n d e f f e c t o r ; % Goniometrische berekeningen cy = cos ( y ) ; sy = s i n ( y ) ; cp = cos (p ) ; sp = s i n (p ) ; c r = cos ( r ) ; sr = sin ( r ) ; % Bepalen van de posematrix T_ga = [ cy*cp cy*sp* sr - sy * c r cy*sp* c r+sy * s r X; sy *cp sy *sp* s r+cy* c r sy *sp* cr - cy* s r Y; - sp cp* s r cp* c r Z ; 0 0 0 1 ]; % Bepalen van het centerpunt van de p o l s p_pols x_pols y_pols z_pols = = = = T_ga* [ - f 0 0 1 ] ’ ; p_pols ( 1 ) ; p_pols ( 2 ) ; p_pols ( 3 ) ; % Bepalen van t1 , t2 en t3 t1 = atan2 ( - y_pols , x_pols ) ; l1 = c ; l 2 = s q r t (d^2 + e ^ 2 ) ; xy = s q r t ( x_pols^2 + y_pols ^2) - b ; z = z_pols - a ; r = s q r t ( xy^2 + z ^ 2 ) ; e p s i l o n = acos ( ( r ^2 - l 1 ^2 - l 2 ^2)/(2* l 1 * l 2 ) ) ; alpha = atan ( ( s i n ( e p s i l o n ) ) / ( l 1 / l 2 + cos ( e p s i l o n ) ) ) ; beta = e p s i l o n - alpha ; gamma = p i /2 - atan (d/e ) ; 56 i f ( xy > eps ) d e l t a = atan ( z/xy ) ; t2 = p i /2 - alpha - d e l t a ; e l s e i f ( xy < - eps ) d e l t a = atan ( xy/z ) + p i / 2 ; t2 = - ( alpha + d e l t a ) ; e l s e % xy = 0 t2 = - alpha ; end t3 = ( alpha + beta - gamma ) ; % Bepalen o r i ë n t a t i e p o l s ten o p z i c h t e van de arm R_fa = T_ga ( 1 : 3 , 1 : 3 ) ; s1 c1 s2 c2 s3 c3 = = = = = = s i n ( t1 ) ; cos ( t1 ) ; s i n ( t2 ) ; cos ( t2 ) ; s i n ( t3 ) ; cos ( t3 ) ; %O p s t e l l e n r o t a t i e m a t r i x R_ea R_ba = [ c1 s1 0 ; - s1 c1 0 ; 0 0 1 ] ; R_cb = [ c2 0 s2 ; 0 1 0 ; - s2 0 c2 ] ; R_dc = [ c3 0 s3 ; 0 1 0 ; - s3 0 c3 ] ; R_ed = [ 1 0 0 ; 0 1 0 ; 0 0 1 ] ; R_ea = R_ba*R_cb*R_dc*R_ed ; R_fe = R_ea. ’ * R_fa ; i f abs ( abs (R_fe ( 1 , 1 ) ) - 1) < eps %% Singulariteit t4 = 0 ; t5 = 0 ; t6 = atan2 (R_fe ( 2 , 3 ) , R_fe ( 2 , 2 ) ) ; else t4 = atan2 ( - R_fe ( 2 , 1 ) , - R_fe ( 3 , 1 ) ) ; t5 = atan2 ( - s i n ( t4 )*R_fe ( 2 , 1 ) - cos ( t4 )*R_fe ( 3 , 1 ) , R_fe ( 1 , 1 ) ) ; t6 = atan2 ( - R_fe ( 1 , 2 ) , R_fe ( 1 , 3 ) ) ; end t1 t2 t3 t4 t5 t6 = = = = = = t1 *(180/3 .14159265359 ) ; t2 *(180/3 .14159265359 ) ; t3 *(180/3 .14159265359 ) ; t4 *(180/3 .14159265359 ) ; t5 *(180/3 .14159265359 ) ; t6 *(180/3 .14159265359 ) ; 57 B.9 Snelheidsfeedforward f u n c t i o n [V_A1, V_A2, V_A3] = speed_feedforward (X_A1,X_A2,X_A3) g l o b a l Xvorig_A1 ; g l o b a l Xvorig_A2 ; g l o b a l Xvorig_A3 ; Ts = 0 .00025 ; %AS1 i f X_A1 == Xvorig_A1 V_A1 = 0 ; else V_A1 = (X_A1 - Xvorig_A1 )/Ts ; end Xvorig_A1 = X_A1; %AS2 i f X_A2 == Xvorig_A2 V_A2 = 0 ; else V_A2 = (X_A2 - Xvorig_A2 )/Ts ; end Xvorig_A2 = X_A2; %AS3 i f X_A3 == Xvorig_A3 V_A3 = 0 ; else V_A3 = (X_A3 - Xvorig_A3 )/Ts ; end Xvorig_A3 = X_A3; 58 Rota e_yaw [1x12] rota e_pitch [1x12] Rota e_roll [1x12] Tijdspunten [1x12] Posi epunten_Z [1x12] Posi epunten_Y [1x12] Posi epunten_X [1x12] Traject_X Traject_Y Traject_Z Tijd yaw Traject_yaw yaw-rota e Traject_pitch Tijd roll Z Y X pitch Traject_roll Pitch-rota e Tijd Roll-rota e Tijd Z-posi e Tijd Y-posi e Tijd X-posi e Trajectgenerator y p r Z Y X MATLAB Func on Kinema ca_LMV t6 t5 t4 t3 t2 t1 Kinematica In out Postion limit_As6 Prefilter_As6 Wenspositie_As5 6 Wenspositie_As4 5 Wenspositie_As3 4 Wenspositie_As2 3 Postion limit_As1 Prefilter_As1 In out Velocity* S peed limit2_As1 S peed Controller_As1 PI(s) Torque limit_As1 S peed limit_As6 S peed Controller_As6 PI(s) Torque limit_As6 Positieregelkringen As2 tot As5 S peed limit2_As6 Position Controller_As6 Kp Adaptive Position Controller_As1 Position Error S peed limit_As1 R Derivative_As6 du/dt R value 3 Derivative_As1 du/dt -K- int16 inc to grad_As6 -K- -K- inc/1024ms to grad/s_As6 2 5 Actual position_As6 double 4 Actual velocity_As6 Torque command_As6 int32 to double 1_As6 double int32 to double_As6 Nm to Torque_As6 double to int_As6 -K- 2 Actual position_As1 double int32 to double 2_As1 1 Actual velocity_As1 -K- double int32 to double_As1 1 Torque command_As1 int16 double to int16 inc to grad -K- inc/1024ms to grad/s Nm to Torque B.10 Volledig MATLAB®/Simulink model 59
© Copyright 2025 ExpyDoc