Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M....

107
Eindhoven University of Technology MASTER Het ontwerpen en realiseren van een robotbesturing Tielemans, M.J.A. Award date: 1986 Link to publication Disclaimer This document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Student theses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the document as presented in the repository. The required complexity or quality of research of student theses may vary by program, and the required minimum study period may vary in duration. General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

Transcript of Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M....

Page 1: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Eindhoven University of Technology

MASTER

Het ontwerpen en realiseren van een robotbesturing

Tielemans, M.J.A.

Award date:1986

Link to publication

DisclaimerThis document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Studenttheses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the documentas presented in the repository. The required complexity or quality of research of student theses may vary by program, and the requiredminimum study period may vary in duration.

General rightsCopyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright ownersand it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.

• Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

Page 2: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

FACULTEIT DER ELEKTROTECHNIEK

TECHNISCHE UNIVERSITEIT EINDHOVEN

Vakgroep meet- en regeltechniek

HET ONTWERPEN EN REALISEREN

VAN EEN ROBOTBESTURING

door M.J.A. Tielemans

Rapport van het afstudeerwerk

uitgevoerd van januari tot december 1986

in opdracht van prof. ir. F.J. Kylstra

onder begeleiding van ir. C.A.M. van den Brekel en

A. van de Graft

in samenwerking met F.M.T. Coenen

De faculteit der Elektrotechniek van de Technische

Universiteit Eindhoven aanvaardt geen verantwoordelijkheid

voor de inhoud van stage- en afstudeerverslagen.

1

Page 3: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

SUMMARY

DESIGN AND IMPLEMENTATION OF A ROBOT-CONTROLLER

The design of a controller for an ASEA IRb-6/2 robot will be

discussed. The controller is structured in a hierarchical

modular way.

The construction consists of the following layers:

1. The robot-programming system and the setpoint-generator:

both implemented on a HP 9920 microcomputer.

2. The axis-controllers, implemented on 8085-processorcards

and consisting of:

- An axis-position-initiationprocedure.

- An interpolator.

- A Digital Controller.

3. The servo-system consisting of:

- Digital to Analog Converters to convert the digital

control-signal into an analog control-signal.

- Linear Servo-amplifiers.

- The actuators: DC-motors.

- Resolvers and converters to have a digital position-

signal, which can be fed back to the digital

controller.

In this report the design and implementation of layer 2 and

3 is described.

The axis-velocity and position are controlled by two

cascaded PlO-controllers. The velocity-feedback signal is

filtered to increase the stability of the controller.

Finally the optimization of the axis-controller by using a

performance criterium is described.

3

Page 4: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

INHOUDSOPGAVE

pag:

Samenvatting

Inhoudsopgave

2

4

1. Inleiding 6

1.1. Robotonderzoek aan de T.U. Eindhoven

1.2. Het doel van dit afstudeerwerk

6

7

2. Opzet van de robotbesturing 9

2.1. De ASEA IRb-6

2.2. Structuur van het besturingssysteem

9

11

3. De hardware van het besturingssysteem 18

3.1. Inleiding 18

3.2. EWMC processorkaart 20

3.3. Positieopnemer 22

3.4. Digitaal Analoog Omzetter 26

3.5. Versterkers, voeding en motoren 29

3.6. Beveiliging 31

4. Philips Microcomputer Development System 35

4.1. Inleiding 35

4.2. UNIX en editor 37

4.3. ontwikkelfaciliteiten op PMDS 41

4.4. Omzetten van Philips format naar Intel-hex format 44

5. De software van het besturingssysteem 47

5.1. Inleiding 47

5.2. Initialisatie van de nulpositie 50

5.3. Setpointoverdracht en interpolatie van setpoints 56

5.4. De digitale regelaar 61

5.4.1. Inleiding 61

4

Page 5: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

5.4.2. Gebruik van laagdoorlaatfilter in

terugkoppeling 65

5.4.3. Optimalisatie van de regelparameters 70

5.4.4. Metingen bij de optimalisatie van de

regeling 75

6. Conclusies en aanbevelingen 80

7. Literatuur 84

Bijlage

1. Het beveiligingscircuit van de motoren 86

2. Hardwareverb indingen 87

2.1. HP-GPIO - Hoofdinterface 87

2.2. Hoofdinterface - Interface 2 en 3 88

2.3. EWMC processorkaart - Interfaces 89

2.4. DAC en positieopnemer - EWMC processorkaart 90

2.5. Robot - Positieopnemer 91

3. P.M.O.S 92

3.1. UNIX shell scripts 92

3.2. Editor commando' s 93

3.3. Debugger commando's 94

3.4. Aansluiting van PMDS naar THE-net en DECprinter 95

4. EWMC Processorkaart en assemblerprogramma 97

4.1. Geheugen en I/O adressen van de EWMC 97

4.2. Procedure-namen met verklaring 98

4.3. Variabelen met betekenis 100

5. Meetresultaten bij de optimalisatie

van de PID-regelaars 101

5.1. Optimalisatie van de PI-snelheidsregelaar 101

5.2. Optimalisatie van de P-positieregelaar 102

5.3. Optimalisatie van de PID-positieregelaar 103

6. Listing C-programma om Inte1hex-code te genereren ..... 104

5

Page 6: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Hoofdstuk 1 INLEIDING

1.1. Robotonderzoek aan de Technische Universiteit Eindhoven

In de literatuur worden diverse definities voor een robot

gegeven, die per land nog eens sterk verschillen. In [lito

3] wordt de volgende definitie gegeven:

Industriele robots zijn universele, vrij programmeerbare

manipulatoren, die produkten of gereedschappen kunnen hante­

ren en die zijn ontworpen voor een breed spektrum van taken.

In 1985 stonden er zo'n 135.000 robots opgesteld in Japan,

de V.S. en Europa, voor het grootste gedeelte in de automo­

bielindustrie [lit 4]. De robots, die daarbij het meeste

toegepast worden, zijn robots van de eerste generatie, waar­

bij de arm bestuurd wordt zonder dat er een terugkoppeling

is van de positie van de robot t.o.v. het werkstuk of de

daarop uitgeoefende kracht. De groei van het aantal ver­

kochte robots in de toekomst is sterk afhankelijk van het

feit of er in de toekomst robots ontwikkeld kunnen worden,

waarbij de robots uitgerust kunnen worden met sensoren

(robots van de tweede generatie) .

Het onderzoek aan de T.U. Eindhoven op het gebied van flexi­

bele automatisering en industriele robots is een interfacul­

teitsproject (FAIR) tussen de faculteit Electrotechniek

(vakgroep meet- en regeltechniek ER) en de faculteit Werk­

tuigbouwkunde (vakgroep Produktietechnologie en Bedrijfs­

mechanisatie WPB). Het doel van het onderzoek is ondermeer

om bij te dragen aan de ontwikkeling van de volgende gene­

ratie robots, waarbij de intelligentie van robots vergroot

wordt door terugkoppeling van sensorsignalen.

Het interafdelingsproject is verdeeld over diverse project­

groepen. Zo worden ondermeer fysische- en rekenmodellen

ontwikkeld, waarmee het dynamisch gedrag van een robot­

systeem beschreven kan worden en is er onderzoek gaande naar

6

Page 7: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

het adaptief regelen waarbij gebruik wordt gemaakt van een

invers robotmodel.

Binnen de projectgroep "aandrijvingen en besturingen" wordt

een robot-besturingssysteem ontwikkeld en gebouwd. Men heeft

daarbij de beschikking over een ASEA IRb-6/2 robot.

1.2. Het doel van dit afstudeerproject

Nadat eerder onderzoek uitgewezen heeft dat ingrijpen op de

commercieel verkrijgbare besturing van de ASEA-robot prak­

tisch onmogelijk is, is besloten om een geheel nieuwe

besturing voor de ASEA IRb-6 robot te ontwikkelen. Het doel

is om een multiprocessorsysteem te ontwikkelen dat hierar­

chisch en modulair is.

Het voordeel van een zelf ontwikkelde besturing is dat

inzicht verkregen wordt in de problemen die optreden bij het

ontwerpen en bouwen van zo'n besturing en dat in de toekomst

naar eigen inzichten een eventueel gewenste terugkoppeling

van sensorsignalen met minder moeite te realiseren is.

Frank van Blerck [lito 1] heeft een eerste aanzet gegeven

tot de bouw van deze besturing, waarbij gekozen is om op het

hoogste niveau een Hewlett Packard 9920 microcomputer te

gebruiken. Deze microcomputer verzorgt de robotprogrammering

door de gebruiker, berekent coordinatentransformaties en zal

setpoints doorgeven aan digitale regelaars, waarbij gebruik

gemaakt wordt van microprocessorkaarten met Intel 8085

processoren. Omdat er niet meer dan 3 processorkaarten

beschikbaar waren, is besloten om in eerste instantie alleen

de positie te regelen. De vierde en vijfde vrijheidsgraad,

die de stand van bv. een grijper bepalen, zullen buiten

beschouwing gelaten worden.

7

Page 8: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Mijn afstudeerwerk heeft bestaan uit het realiseren van de

hardware van de robotbesturing en de implementatie van de

digitale asregelaars. Dit werk is een vervolg op het werk

van van Blerck en is uitgevoerd in samenwerking met Frans

Coenen, die het gedeelte van de besturing dat betrekking

heeft op de HP microcomputer ontwikkeld heeft [lito 2].

8

Page 9: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Hoofdstuk 2. OPZET VAN DE ROBOTBESTURING

2.1. De ASEA IRb6j2

De ASEA IRb6j2 robot, die in het verleden is aangeschaft

zonder de gebruikelijke commerciele besturing van ASEA,

heeft 5 vrijheidsgraden, die allemaal van het rotatie type

zijn (fig. 2.1.-1).

5cre.... eUJut

Sen.... unit

Turn dI1. ve UlU t , ..,

Til t drivE! UJll.t, f

Et dnve uzut

OL d.rlve '.Ll1it

f drlV'1! UlU.t

/ Tilt (bend). I

r----11~~-~ CTum. v

'-- Wrist

L.- Upper a.J:III

~ Lover arm

f--llody

f-------- Pede.tal

Fig. 2.1.-1: De ASEA IRb-6j2 robot.

De eerste vrijheidsgraad (phi-as) kan draaien over maximaal

340 graden, waarbij opgemerkt moet worden dat deze hoek

betrekking heeft op de as zelf en niet op de motor, die de

as aandrijft. Tussen de motor en de as zit een vertragende

overbrengingsverhouding van 158, die gerealiseerd wordt door

een harmonie drive. De maximale snelheid van deze as is 95

graden per seconde.

De rotatiemogelijkheden van de schouder (theta-as) en de

elleboog (alpha-as) worden weergegeven in figuur 2.1.-2. De

aandrijving geschiedt door middel van schroefspindels. De

aspositie van de boven- en onderarm zijn zodanig afhankelijk

van elkaar, dat bij verandering van de theta-as de bovenarm

dezelfde stand (ten opzichte van het wereldcoordinaten­

stelsel) in zal blijven nemen. Dit heeft als consequentie

9

Page 10: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

dat de controle op het te dicht naderen van deze eindpositie

niet door de regelaar kan gebeuren, maar dat dit alleen op

het hoogste niveau gecontroleerd kan worden. De overbren­

gingsverhoudingen van de tweede en de derde vrijheidsgraad

zijn niet constant en afhankelijk van de posities, die de

beide vrijheidsgraden innemen. Van Wijck (lit. 7] heeft een

afleiding gegeven voor de overbrengingsverhoudingen van de

tweede en de derde vrijheidsgraad.

\

Fig. 2.1.-2: Aandrijving van de tweede en derde as.

De draaimogelijkheden in de pols worden gerealiseerd door de

v- en de t-as. De v-as (Bend) kan varieren tussen +90 en -90

graden en de t-as (Turn) kan roteren over 360 graden. De

aandrijving van de polsgewrichten gaat door middel van een

parallel stangenmechanisme. Deze laatste 2 assen bepalen de

stand van een door de robot te hanteren produkt of gereed­

schap.

De ASEA IRb-6 is uitgerust met AXEM F9M4H permanent-magneet

gelijkstroom-motoren van de firma CEM, die een vermogen

hebben van 168 Watt en een nominale snelheid van 3000 omwen­

telingen per minuut. Iedere motor is verbonden met een

tachogenerator (AXEM F9T met een uitgangsspanning van 3 Volt

per 1000 omwentelingen per minuut) en een resolver (SINGER

RC/CR4 1095 004), waarmee de hoekstand van de motoras (niet

te verwarren met de robot-asstand) bepaald kan worden. In

paragraaf 3.3. zal verder ingegaan worden op de methode van

10

Page 11: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

positiebepaling van de robot-asstand.

Bij de theta- en alfa-as z~Jn (op een positie net voor het

einde van het bereik) referentieschakelaars aangebracht,

waarmee een initiele nulpositie bij deze assen bepaald kan

worden. Bij de eerste as is een zelfgebouwde constructie

aangebracht waarmee een nulpositie bepaald kan worden.

Om de ASEA robot te beveiligen z~Jn eindschakelaars aange­

bracht. Bij het inschakelen van een van deze eindschake­

laars, worden de motoren kortgesloten en zal de robot niet

met een klap tegen een mechanische eindstand aanlopen.

2.2. structuur van het besturingssysteem

Een robotbesturing kan vergeleken worden met elk ander com­

plex systeem (bv. een bedrijf of een biologisch organisme)

dat beheerst en geregeld moet worden. Door Albus [lito 5] is

een besturingsconcept opgesteld dat specifiek voor een robot

werkcel van toepassing is (zie fig. 2.2.1).

Een robotbesturingssysteem is net als andere complexe syste­

men hierarchisch opgebouwd, waarbij een complexe taak op het

hoogste niveau verdeeld wordt in sub-taken die naar lagere

niveau's worden doorgegeven: de taakdecompositie. Dit opde­

len van taken gaat net zolang door tot een subtaak zo klein

is dat het met een eenvoudige aktie kan worden uitgevoerd.

Op deze manier kan een complexe taak opgesplitst worden en

mbv. commando's naar lagere niveau's uitgevoerd worden.

Behalve de taakdecompositie-module bevinden zich op een

zelfde niveau nog twee modules: een terugkoppelmodule en een

module, die een model representeert van dat niveau.

De terugkoppelmodule zorgt ervoor dat informatie over een

lager niveau omgerekend wordt en als relevante informatie

11

Page 12: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

teruggekoppeld wordt naar de taakdecompositie-module. De

inputsignalen kunnen ook bestaan uit door sensoren gemeten

informatie. Op het laagste niveau bestaat de terugkoppeling

alleen maar uit sensorinformatie.

De module die het model van een niveau representeert, heeft

als input de uitgangssignalen van de taakdecompositie en de

berekende terugkoppelsignalen. Het model vergelijkt hierbij

de werkelijkheid met de verwachtingen. Als een groot ver­

schil gevonden wordt moet de taakdecompositie-module beslis­

sen welke fout opgetreden is en op welke manier deze opge­

lost kan worden.

TIVEil

ALS

\ \COMPlEX TASK

HIGH LEVEL PART I!HNTITY 51MPU IV'SION jlHATIONSHIPS TASK

PROCEiSING GENERA TOR

\ \ SII,IPlE TASK

INTERMEDIA Ti P·AJtT ~O S1T10~1 I ELEMfNTAL IVISION OllIEI~TATIeN I MOVE

PROCESSING CHIERATOR

\ \ HEMEN rAL MOVE

LOW LEVEL I PRoxlMIn I ACTION

VISION I EDGES I PRIMATIVE

PROCESSING GENERATOR

\ \ ACTION PRI~!,

XY! Fe SITION. (XY

COORCINA TE I FO~CEI eOORDINA rE

TlANSFORMER TRANSFORMEI

\ " ~k..é6JOINT JOINT posmON.

IPosmON VE~OClTY SERVOS

SeALING

\ DRIVEMEASUREMENT SIGNDATA

Fig. 2.2.-1: De functionele opbouw van een robotbesturing,

volgens Albus [lito 5].

Voor iedere module zijn er 3 tijdsaspecten waar te nemen.

Dit zijn de planningstijd, de res~onsietijd en de cyclus­

tijd.

De planningstijd is het interval waarover vooruit gekeken

wordt. Op hogere niveau's is de planningstijd veel groter

dan op lagere niveau's het geval is.

12

Page 13: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

De responsietijd is de vertragingstijd tussen een verande­

ring in de input en het tijdstip waarop de output van het

geregelde systeem deze gewenste verandering bereikt.

De cyclustijd is het interval, waarmee het ingangssignaal

bemonsterd wordt. Over het algemeen zal de responsietijd

iets groter zijn dan de cyclustijd maar veel kleiner dan de

planningstijd. De responsietijd heeft een invloed op de

stabiliteit. Dit zal ook duidelijk terug te vinden zijn in

de instelling van de digitale regelaar, die in hoofdstuk 5

besproken zal worden.

Als communicatieprincipe tussen de diverse modules wordt

door Albus voorgesteld om een methode te gebruiken, waarbij

door 1 module een status in een database geschreven wordt en

waarbij door vele andere deze status gelezen kan worden. Dit

alles kan door een status-klok op alle niveau's gesynchroni­

seerd worden door bepaalde tijdsintervallen te bestemmen

voor het schrijven van data en andere voor het lezen van

data.

Om deze hierarchische structuur te realiseren is het gewenst

om een zodanig besturingssysteem te hebben, dat taken paral­

lel aan elkaar uitgevoerd kunnen worden.

In figuur 2.2.-2 is te zien hoe het functionele schema van

het besturingssysteem eruit zal gaan zien.

Het hoogste niveau van de robotbesturing bestaat uit de

robotprogrammering door de gebruiker, het verwerken van dit

robotprogramma naar een geschikt traject en het omrekenen

van dit traject naar geschikte coordinaten voor de verschil­

lende assen. Bij de robotprogrammering wordt de robot door

de gebruiker mbv. een teach-in paneel (bv. een joystick)

bewogen (TEACH) en worden gewenste bewegingen opgeslagen

(STORE). Bij het automatisch uitvoeren van het robotpro-

13

Page 14: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

gramma (AUTO) wordt eerst in het x,y,z stelsel met behulp

van een interpolator een gewenst traject berekend en wordt

dit met coordinatentransformaties omgezet in gewenste posi­

ties van de 3 motoren. Deze gewenste as-posities worden om

de 80 ms als verplaatsingssetpoint doorgegeven aan de bij

die as horende regelaar.

Het hoogste niveau van de robotbesturing kan beschouwd

worden als het programmeersysteem van de robot. Het ontwerp

hiervan wordt door Coenen (lit. 2J besproken.

TeQc.~ - I",

Î-'o.."ed

EWI1C. -

proc.e\s.,.,. kll.4.r"te.n

Fig. 2.2.-2: Functioneel schema van de robotbesturing.

Op het middelste niveau van de hierarchie bevinden zich voor

iedere as een interpolator, die de 80 ms verplaatsings­

setpoints omzet naar 10 ms verplaatsingssetpoints en een

14

Page 15: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

digitale regelaar. Op dit niveau moet tevens gecontroleerd

worden of een eindpositie bereikt is.

Bij het opstarten van de robotpositie is het gewenst dat de

robot een eenduidige initiele positie in zal nemen. Tijdens

deze positie-initialisatie zullen de verschillende vrij­

heidsgraden niet bestuurd worden vanuit het bovenste niveau

maar zullen deze onafhankelijk van elkaar bestuurd worden.

Op het laagste nieveau wordt de omzetting verzorgd van het

uitgangssignaal van de regelaar naar een actuator-input­

signaal en wordt de positie van de actuator gemeten.

De samplefrequentie op het laagste niveau is gelijk aan 10

ms.

Het is gewenst om op het laagste niveau het tijdstip waarop

de positie bepaald wordt en het tijdstip waarop de spanning

over de motor veranderd wordt gelijktijdig en op equi­

distante tijdstippen te laten plaatsvinden. Dan zal het

exacte tijdstip bekend zijn waarop een positie gemeten is.

Als de tijd tussen 2 opeenvolgende veranderingen van de

spanning gelijk zijn zullen geen niet-lineariteiten geintro­

duceerd worden.

Het hoogste niveau wordt geimplementeerd op een Hewlett

Packard 9920 microcomputer. Het programmeersysteem, dat op

deze microcomputer geimplementeerd is, is beschreven in het

verslag van Coenen [lito 2].

De digitale regelaars voor de verschillende assen zijn geim­

plementeerd op een EWMC processorkaart. EWMC is de afkorting

van Elektro-Werktuigbouw Micro Computer. Iedere robotas

wordt geregeld door een eigen processorkaart.

De omzetting van de output van de digitale regelaar naar een

analoog inputsignaal voor een actuator wordt verricht door

15

Page 16: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

een OAC. Op de OAC-kaart vindt de omzetting plaats van het

a-bits digitaal uitgangssignaal van de regelaar naar een

analoge spanning tussen -10 en +10 Volt, die na versterking

als ingangssignaal van de motor fungeert.

Om de positie van een robotas te bepalen wordt gebruik

gemaakt van een resolver, die verbonden is met de motoras.

Met behulp van een Resolver to oigital-Converter (ROC) wordt

het resolversignaal omgezet in een 12 bits digitaal signaal.

Op de positieopnemerkaart zijn voorzieningen getroffen om

mbv. een logische schakeling de positie van de motoras uit

te breiden tot een 20 bits digitaal signaal dat de positie

van de robotas representeert.

De verbinding van de verschillende EWMC-processorkaarten

met de host-computer, de OAC en de positieopnemer wordt op

eenvoudige wijze gerealiseerd door gebruik te maken van

interfacekaarten.

Op deze manier kunnen de verschillende kaarten op een effi­

ciente wijze in een rek geplaatst worden.

Op de hoofdinterface (de verbinding met de HP) is verder een

timing- en beveiligingsschakeling opgebouwd met behulp van

watchdogs. In paragraaf 3.6., waar de beveiliging besproken

zal worden, zal hier verder op ingegaan worden.

In de besturing die gerealiseerd is worden de tijdstippen,

waarop een commando gegeven moet worden aan een lager

niveau, bepaald door interrupts die door de interne klok van

de HP host-microcomputer gegenereerd worden: de sampletijden

zijn op het hoogste niveau ao ms en op het laagste niveau

10 ms. Met de gerealiseerde besturing is het mogelijk om de

kloksignalen in de toekomst extern te genereren en als

interruptsignalen aan de HP en de EWMC-processorkaarten aan

te bieden. Dit omdat de interne klok van de HP geen kleinere

sampleintervallen kan genereren dan het 10 ms interval dat

nu gebruikt wordt.

16

Page 17: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Door de keuze van de diverse onderdelen van de besturing

zijn er enkele beperkingen. Zo is bij het ontwerpen besloten

om voorlopig geen positieterugkoppeling van de as-processor­

kaarten naar de host-computer (HP) in te bouwen.

17

Page 18: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Hoofdstuk 3 DE HARDWARE VAN HET BESTURINGSSYSTEEM

3.1. Inleiding

In figuur 3.1.-1 is de hardware van de besturing nader

uitgewerkt.

rWMc.

1

Hoofd inter{a.ce

EWMC

~

'DACPOSITIEOPHEMElt

DAt.1'OS Ir1e:OPNEMEIt

DAGPOSITIEOPNEMER

Rt~lvtr Re~ver Re~otller

Fig. 3.1.-1: Hardware van de robotbesturing.

De belangrijkste taak van de hoofdinterface is om een koppe­

ling te leggen tussen de GPIO-kaart van de HP-microcomputer,

die de I/O van de HP verzorgt, en de verschillende EWMC

processor-kaarten. De uitgangssignalen van de HP worden op

de hoofdinterface bovendien afgesloten met de daarvoor ver­

eiste weerstanden.

Van de HP-microcomputer naar de EWMC-processorkaarten zijn

de volgende verbindingen aanwezig:

- Acht datalijnen, waarover de setpoint-databytes en de

checksum-byte verstuurd worden naar de EWMC-processorkaar­

ten. Deze achb lijnen zijn gemeenschappelijke datalijnen

18

Page 19: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

tussen de HP en de verschillende EWMC-processorkaarten.

- Een handshake lijn Data Valid.

- Een 10 ms interruptlijn. Deze lijn is gemeenschappelijk.

In de toekomst kan dit interruptsignaal door een externe

klok gegenereerd worden.

- Drie 80 ms interruptlijnen: voor iedere EWMC-processor­

kaart een lijn. Omdat de databus gemeenschappelijk is moet

de setpointoverdracht voor iedere as afzonderlijk gebeuren

en om de overdracht op te starten moet er dan ook voor

iedere as een aparte interruptlijn aanwezig zijn.

Van de EWMC-processorkaarten naar de HP-microcomputer worden

de volgende lijnen gebruikt:

- Een handshake lijn Data Accepted, die tevens fungeert als

80 ms acknowledge lijn.

- Een 10 ms acknowledge lijn, die tevens gebruikt wordt om

een watchdog-schakeling te resetten.

- Een checksum OK lijn.

- Een lijn die aangeeft dat de nulpositie van een as bereikt

is.

De verbinding tussen de HP microcomputer en de hoofdinter­

face bestaat uit een 50 polige verbinding, met aan de HP

zijde een edge connector en aan de hoofdinterfacezijde een

Eurocard-connector. Tijdens de ontwikkel fase is het voorge­

komen dat de GPIO kaart door overspanning defect geraakt is.

Om dit in de toekomst te voorkomen is het raadzaam om de

verbindingslijnen uit te rusten met opto-couplers.

De interfaces van de verschillende assen zijn via 2 50­

aderige flat-cable verbindingen verbonden met de bijbe­

horende EWMC processorkaart en via een 26 aderige flat-cable

verbonden met de hoofdinterface. De interfacekaarten, die

met Eurocard connectoren samen met de positieopneernkaarten

en de DAC-kaarten op een compacte wijze in een rek zijn

19

Page 20: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

ingebouwd, zorgen ervoor dat iedere processorkaart verbonden

is met de bijbehorende positieopneemkaart en DAC-kaart.

Omdat alle kaarten dezelfde Eurocardaansluitingen hebben,

kunnen ook gemeenschappelijke lijnen zoals voedingslijnen en

het resolver-referentiesignaal op eenvoudige wijze

aangesloten worden.

De interfacekaart voor de eerste as is niet als aparte kaart

opgebouwd, maar geintegreerd in de hoofdinterfacekaart. In

bijlage 2.1. t/m 2.5. is een overzicht gegeven van de

verbindingen tussen de diverse onderdelen.

3.2. EWMC-processorkaarten

De EWMC-processorkaart is een single-board computer die

opgebouwd is rondom een 8085A microprocessor van Intel en is

ontwikkeld door de faculteiten Elektrotechniek en Werktuig­

bouwkunde van de Technische Universiteit Eindhoven.

Een schema van de opbouw van de processorkaart kunt U vinden

in fig. 3.2.-1.

Behalve de 8085A microprocessor bevat de EWMC-processorkaart

de volgende onderdelen:

- EPROM (8 kByte) met daarin een monitorprogramma.

- 2732 EPROM met daarin het robotprogramma dat voor de

desbetreffende as geschreven is.

- RAM opgebouwd uit 8185 (1 kByte) RAM ic's.

- Twee 8251-USART's, waarmee 2 RS-232 seriele verbindingen

mogelijk zijn.

- Twee 8255-Parallelle I/O interfaces, waarmee in totaal 2

keer 24 I/O lijnen mogelijk zijn.

- 8259 ProgrammabIe Interrupt Controller, waarmee 8 inter­

ruptlijnen mogelijk zijn, waarvan 4 via de Parallelle I/O

lijnen.

- 8253 ProgrammabIe Interval Timer/Counter, waarmee 3

20

Page 21: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

timers geprogrammeerd kunnen worden.

- 8279 Keyboard/Display controller.

De memory-map van de EWMC-processorkaart is weergegeven in

bijlage 4.1.

COtITIIOt.~

ONTROL

6.flt\ HH_

rD~ IROM 2716 ....27~2 I I RAM 8185 J)l,.t .,

~, ..... P Ir- .il 1'.' • ADG•• " aUI Ad .... AI

,..- IUT 1.1

r- .'U I.'r- IHr. -

8282Aoa•• '1 lUI A,"" A.

BOB5 LATCJ; 2 • nAP ~"'T"H"".CPU ....,- • sr '.f lH"•. I1".a,I••.,,'.. IN'••· ..'-- - RIT". ...,..."c~ INT......,.

1-- ......".7.ALl t--- • LOGIC I-

~ "AT." r------'-.....e.- I

o.

18286

INT

R/W I Jl,to.rA BUS 2 •DRIY( lD6. au=I DRIV 7DIUVU- ~

I 1 ,l-·l~~1 I I 1 1· 1. J

es DATA IJW I cs ll/ITA lJ~ 1I C' DATA Ri",] IC' DATA a/lol IC' DATA a/lol 11 cs Jl,to.TA ~ les !lATA Rlwl82:l~-O 825~l-1 hl~:t~.tJA.cl •. 8~61·t, on. <'" ~21i~ .....n" '....A 82.59

.., 8279'"Q

1 1 r .J.t-o"', f-o-

Il"IINr• • • I • • \ \1'-<>,.... 1'-<>"" ~~.,,- INT ""' .. IIHT _h"NT

~LYI 111/] Ir r IDlllvull",v·"1

I IJi J2 I" JO

Ie30&

Fig. 3.2.-1 Schema van de EWMC-processorkaart.

.Het ontwikkelen van de software voor de processorkaart is

gedaan met behulp van een PMDS-II ontwikkelsysteem van Phi­

lips. Meer hierover in Hoofdstuk 4.

Nadat de software voor de verschillende processorkaarten

gerealiseerd was, zlJn de programma's in een EPROM gezet.

Met behulp van het monitorprogramma kan zo'n programma opge­

start worden. Daartoe moet eerst door het herhaaldelijk

intikken van het karakter 'U' de seriele verbinding tussen

een terminal en de eerste poort van de EWMC-processorkaart

opgestart worden. Vervolgens kan met het Go commando hèt

21

Page 22: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

user-programma opgestart worden (G 1000). Het is ook moge­

lijk om door het verzetten van dip-switches op de EWMC­

processorkaart dit programma na een reset direct op te laten

starten. Voor meer informatie over het monitorprogramma en

de hardware van de EWMC processorkaartwordt verwezen naar

de handleiding die geschreven is door Piecha [lito 6].

3.3. De Positieopnemer

Zoals vermeld in paragraaf 2.2. is iedere motor van de ASEA

robot verbonden met een tachogenerator en een resolver. De

tachogenerator levert een spanning, die evenredig is met de

hoeksnelheid, maar wordt verder in de besturing niet ge­

bruikt. Met behulp van de resolver kan de hoekstand van de

motor bepaald worden.

De resolver is opgebouwd uit 3 spoelen. Twee spoelen z1Jn

vast opgesteld en staan onderling loodrecht op elkaar: de

statorspoelen. De derde spoel (de rotorspoel) is aan een as

bevestigd, die verbonden is met de as van de desbetreffende

motor (fig.3.3.-1).

/9 I

I

A sin JJ~ I

I I, Iroo Ö0Ö0'-r..... __

I Vz

Fig. 3.3.-1: Het schema van de resolver.

Als op de. rotorspoel een referentie-wisselspanning gezet

wordt, dan zal in beide statorspoelen ook een wisselspanning

geinduceerd worden. De amplitudes van deze 2 signalen hangen

22

Page 23: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

als volgt af van de hoek theta tussen de rotorspoel en de

beide statorspoelen:

VI = Vmax * cos (theta) * sin(wt)

V2 = Vmax * sin (theta) * sin(wt)

(3.3.1)

(3.3.2)

De spanningen over de statorspoelen en de rotorspoel (refe­

rentiespanning) worden als ingangssignaal gebruikt voor een

resolver digital converter (ROC) , die de omzetting verzorgt

naar een digitaal signaal dat de positie van de rotorspoel

tov. beide statorspoelen voorstelt. Gekozen is voor een ROC

19126/302 van de firma OOC.

De output van de ROC wordt gerepresenteerd door een 12 bits

digitaal signaal. De nauwkeurigheid is gelijk aan +/- 8.5

boogminuten. De referentiespanning die vereist is, is een

wisselspanning met een frequentie van 2.4 kHz en een span­

ning die groter is dan 4 Volt top-top. Meer informatie kunt

U vinden in bijlage 7 van het verslag van Verhoef [lito 8].

Omdat de reduktieverhouding van de harmonie drive gelijk is

aan 158 zal de robot-ashoekstand (uitgedrukt in graden)

gelijk zijn aan:

robotashoekstand = (motoras-hoekstand x 360) / (4096 x 158)

De resolutie in de robotas-hoekstand is daarmee gelijk aan

0.00056 graden. Voor de eerste vrijheidsgraad betekent dit

(met de bovenarm in een vertikale en de onderarm in een

horizontale positie), dat de afstand die afgelegd wordt door

het T.C.P., gelijk is aan:

765 mm x sin(0.00056) = 7.4 micrometer.

Als de motor 1 omwenteling maakt zal de robotas slechts 2.3

graden verdraaid zijn, terwijl de robotas een rotatiebereik

23

Page 24: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

heeft van 340 graden. Om de positie van de robotas te kunnen

bepalen, is het noodzakelijk dat het aantal motoromwente­

lingen bijgehouden wordt. Dit kan, door de meest significan­

te bit van de 12-bits motoras-positieaanduiding en de

richtingslijn van de RDC toe te voeren naar een schakeling

met up/down counters. Door Verhoef [lito 8] is hiervoor een

ontwerp gemaakt dat door van Blerck [lito 1] verder uitge­

werkt is. In figuur 3.3.-2 is een overzicht gegeven van deze

schakeling.

De volgende lijnen vormen de verbinding tussen de positie­

opnemer-kaart en de EWMC-processorkaart:

Van positieopnemerkaart naar EWMC-processorkaart:

- Acht datalijnen om per byte de positie-data door te geven.

- Een lijn van de referentiepositie-schakelaar. In feite is

deze lijn slechts een doorverbinding van de robotconnector

naar de EWMC-processorkaart.

Van EWMC-processorkaart naar positieopnemerkaart:

Drie decoder-input lijnen. De decoder bestuurt de output­

control lijnen van de latches, waarmee bepaald wordt welke

byte op de rlata-lijnen komt.

- Decoder enable lijn. Als deze niet geactiveerà is, wordt

geen enkele latch aangesproken.

Latch lijn. Als deze lijn hoog gemaakt wordt, zal nieuwe

positie-data in de latches geklokt worden.

Load lijn. Deze lijn wordt gebruikt om een initiele posi­

tiewaarde in te klokken.

- Inhibit lijn. Deze lijn is direct verbonden met de inhibit

lijn van de Roe. Als deze lijn laag wordt gemaakt, dan zal

de RDC het digitale outputsignaal stabiel maken, zodat

datatransfer kan plaatsvinden.

24

Page 25: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

S""'& _1IUl.j/JGuP;ba..,AI

,,;;;. """".-"p %

lJl7Tl1 BUS

Fig. 3.3.-2: Schakeling van de positieopnemer.

Het protocol om een positie te bepalen en data te transpor­

teren naar de EWMC-processorkaart ziet er als volgt uit:

- Inhibit laag. Positie-data is stabiel. Dit gebeurt direct

nadat een 10 ms interrupt gegeven wordt.

- Latch hoog. Positie-data van RDC en counters wordt inge­

klokt in de 3 daarvoor bestemde latches.

- Inhibit laag en Latch laag.

- Code voor gewenste byte naar decoder en decoder enable

aktief.

25

Page 26: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

- Data byte kan via de robotbus ingelezen worden door de

EWMC-processorkaart en in het daarvoor bestemde RAM-adres

geplaatst worden.

De laatste 2 punten worden voor iedere data-byte herhaald.

Zoals eerder vermeld, wordt een gedeelte van de positie­

databits bepaald met behulp van tellers. Bij het opstarten

zullen deze tellers geinitialiseerd moeten worden. De

robotas-positie, waar deze initialisatie plaatsvindt is

daarbij van belang. De methode en het algorithme om deze

initiele robotas-referentiepositie te bepalen zal besproken

worden in paragraaf 5.2.

Als een robotas zich bevindt in de initiele referentie­

positie moeten de tellers geladen worden met bepaalde data,

die op de positieopnemerkaart is vastgelegd met behulp van

dip-switches.

Deze waarde van de beginpositie is gelijk aan 080000 hex.

Het protocol om de tellers te laden met de initiele data

ziet er als volgt uit:

- Decoder enable aktief en decoder data = 011. Hiermee wordt

de output control lijn van de latch, die de initiele data

inklokt, aktief gemaakt. De initialisatiewaarde wordt dan

op de interne databus van de positieopnemerkaart gezet.

- Load lijn laag-aktief en vervolgens hoog maken. De 2 daar­

voor bestemde counters worden dan geladen met de data, die

op de interne databus staat.

3.4. De Digitaal Analoog Omzetter

De verbinding tussen de digitale regelaar en de versterker,

die de motor aanstuurt wordt verzorgd door een 8-bits Digi­

taal Analoog Omzetter. De DAC-schakeling is weergegeven in

figuur 3.4.-1.

26

Page 27: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

10 ~ j"ten ....pti"te, fOot\!r---,

I I

.~ ..J

EW MC f--_~_AC_._c1_A.k_ ___,jLATCH ~_---,

Fig. 3.4.-1: Overzicht van de DAC-schakeling.

Het 8 bits output-datawoord van de digitale regelaar wordt,

na aanpassing, als inputsignaal aan de DAC aangeboden. Deze

data wordt in de latch ingeklokt als latch enable (LE) hoog

wordt en zal doorgegeven worden aan de DAC als output con­

trol laag-aktief is.

Als de output control lijn niet laag is, zal met behulp van

optrekweerstanden de code 80 hex op de DAC gezet worden.

Daarmee wordt de uitgangsspanning gelijk aan 0 Volt en zal

de robotas niet bewegen. Bij de initialisatie van de EWMC­

processorkaart zal de output control lijn laag gezet worden,

waardoor ingeklokte data direct wordt doorgegeven aan de

DAC.

Ten aanzien van de lijn latch enable is het ontwerp van de

DAC-schakeling veranderd. In het ontwerp van van Blerck

[lito 1] was het zo dat deze lijn continu verbonden was met

de 5 Volt lijn, waardoor de spanning op de motor direct

veranderde als een nieuw datawoord door de EWMC-processor­

kaart aangeboden werd. De tijd die de digitale regelaar

nodig heeft om een nieuw datawoord te berekenen is echter

niet altijd gelijk. Daarmee worden niet-lineariteiten gein-

27

Page 28: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

troduceerd. Bij een tijdvertragend element met een variabele

tijdconstante zal een uitgangssignaal niet meer dezelfde

vorm hebben als het ingangssignaal (bv. een sinus zal een

gemoduleerde vorm krijgen) .

Dit probleem is op eenvoudige wijze op te lossen door de

latch enable aan de 10 ms interrupt lijn te hangen. Als de

regelaar nu een nieuw datawoord berekend heeft zal dit aan

de ingang van de latch blijven staan zonder dat dit doorge­

geven wordt aan de DAC. Pas bij de volgende 10 ms interrupt

wordt dit datawoord doorgegeven. Op deze manier zal precies

om de 10 ms de spanning over de motor veranderen. Een

nadeel van deze methode is dat er een grotere vertragings­

tijd zal optreden.

Om ook tijdens het bewegen naar de initiele robotas-referen­

tie-positie de motor te kunnen sturen, wordt het met behulp

van een or schakeling mogelijk gemaakt om de latch enable

met een tweede lijn hoog te maken. Daardoor kan ook tijdens

het bewegen naar de referentiepositie, als er nog geen 10

ms interrupts aanwezig zijn de DAC aangestuurd worden.

De DAC-schakeling is zo opgebouwd dat het uitgangssignaal

varieert tussen -10 en +10 Volt. Het oplossend vermogen van

1 bit is ongeveer 78 mV. Bij het datawoord 80 hex zal zoals

eerder vermeld de uitgangsspanning gelijk zijn aan 0 V. Bij

het datawoord 00 hex is de uitgangsspanning gelijk aan -10 V

en bij het datawoord FF hex zal de uitgangsspanning 9.92 V

zijn.

Opgemerkt moet worden dat in de software van de digitale

regelaar gebruik gemaakt wordt van de 2-complement code. Om

toch de juiste data aan de DAC toe te voeren moet bij het

uitgangs-datawoord van de digitale regelaar eerst nog 80 hex

opgeteld worden.

28

Page 29: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

3.5. Versterkers, voeding en motoren

De motoren van de ASEA IRb-6 z1Jn gelijkstroom motoren met

permanente magneten van het type CEM AXEM F9M4H. Het nomi­

nale toerental is 3000 rpm, de nominale voedingsspanning is

35 V en de nominale stroom 8 A. Door Werter [lito 9] is een

onderzoek gedaan naar het statische en het dynamische gedrag

van deze motor.

Voor de aansturing van de motoren worden 6 lineaire verster­

kers gebruikt met elk een voedingsspanning van 24 V. Voor

elke motor worden 2 versterkers gebruikt (zie fig. 3.5.-1).

- I~ 1/

v·l

Fig. 3.5.-1: De aansturing van de motor met beveiliging.

Door 2 versterkers per motor te gebruiken kan met een 24 V

voeding toch de nominale spanning van 35 V over de motor

bereikt worden. Voor het schema van de voeding, versterker

en de inverter wordt verwezen naar het verslag van van

Blerck [lito 1].

In de praktijk heeft de versterker nogal wat problemen

opgeleverd op momenten dat met behulp van een beveiligings­

relais de motoren werden kortgesloten, waardoor de uitgang

29

Page 30: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

van de versterkers wordt losgekoppeld van de motoren. Door

de induktiviteit van de kabel en de rotor van de motor kunnen

grote induktiespanningen optreden. Het natrillen (bouncing)

van de relais versterkt dit effekt nog eens. Als gevolg van

het onderbreken van de stroom ontstaat op de uitgang van de

versterker een grote induktiespanning en heeft als gevolg

dat de zwakste eindtransistoren kapot gaan. Een oplossing

voor de beveiliging van de versterker is het aanbrengen van

fast recovery diodes tussen de uitgang van de versterker en

de voedingslijnen. Zie hiervoor fig. 3.5.-1.

De wrijvingen van de lagers en de borstels hebben tot gevolg

dat de motor bij aanloop een lostrekkoppel moet overwinnen

(stictie). Dit lostrekkoppel blijkt sterk afhankelijk van

oa. de temperatuur. Als gevolg van het lostrekkoppel zal de

motor alleen aanlopen als een bepaalde minimum waarde voor

de spanning over de motor gezet wordt. Het dode gebied, wat

hierdoor ontstaat kan voorkomen worden door het DAC-data­

woord zodanig aan te passen dat de motor alleen stil zal

blijven staan als dit gewenst is. Het DAC-datawoord, waarbij

een as net beweegt blijkt echter sterk afhankelijk te zijn

van de temperatuur en de instelling van de versterker.

Door Brummans [lito 10] is een eerste aanzet gegeven om de

lineaire servo versterkers te vervangen door versterkers,

die gebaseerd zijn op het principe van pulsbreedtemodulatie.

Daarbij worden spanningspulsen aangeboden, waarbij de tijds­

duur geregeld wordt. Door de zelfinduktie van het anker­

circuit worden deze pulsen afgevlakt, waardoor een benaderde

gelijkstroom ontstaat. Het voordeel van pulsbreedtemodulatie

is dat alleen het gewenste vermogen geleverd zal worden aan

de motor, waardoor minder verliezen op zullen treden. De

enige verliezen zullen optreden in de versterker bij het

schakelen van de spanning.

30

Page 31: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

3.6. Beveiliging

Als een van de onderdelen van het robotbesturings-systeem

defect raakt zal het waarschijnlijk zijn dat de robot een

baan zal gaan beschrijven die niet gewenst is. Om beschadi­

gingen aan de robot te voorkomen zijn allerlei maatregelen

genomen, die ervoor moeten zorgen dat de robot direct tot

stilstand komt indien dat nodig is.

Noodstop

Het belangrijkste onderdeel van deze beveiliging is de nood­

stop. Als de noodstop ingeschakeld is, worden de motoren met

behulp van een relais kortgesloten en losgekoppeld van de

versterkers. Deze noodstop kan door de gebruiker ingescha­

keld worden op een moment dat de beweging van de robot niet

overeenkomt met datgene wat de gebruiker verwacht. In Bij­

lage 1 is te zien hoe de beveiliging met de verschillende

relais is opgebouwd.

Zoals eerder vermeld kunnen bij het kortsluiten van de

motoren tijdens maximale uitsturing grote induktiespanningen

optreden. Ook over de spoelen van de relais zullen grote

piekspanningen kunnen ontstaan. Om deze spanningen zo snel

mogelijk kwijt te raken, zijn over de spoelen van de relais

fast recovery diodes aangebracht.

Om de motoren te beschermen tegen hoge piekspanningen zijn

hierover varistors aangebracht.

Eindstanddetectie

De eindstand van een bepaalde robotas kan op 2 manieren

gedetecteerd worden.

Ten eerste softwarematig. Bij het uitvoeren van de 10 ms

interruptprocedure (de regelroutine) wordt bepaald of de

31

Page 32: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

gemeten robotas-positie in een veilig gebied ligt. Is dit

niet het geval dan wordt de betreffende motor tot stilstand

gebracht.

De tweede methode is hardwarematig, en zal later in werking

treden dan de softwarematige detectie van een eindpositie.

Bij iedere as zijn net voor de mechanische eindstanden

schakelaars aangebracht, die moeten voorkomen dat de robot

met een klap tegen zo'n mechanische eindstand aanloopt. Als

een van de eindschakelaars ingeschakeld wordt, zullen alle

motoren kortgesloten worden.

Als alleen eindschakelaars aangebracht worden aan het einde

van de slag van de tweede en de derde as, is toch een

mechanische eindstand mogelijk waarbij geen eindschakelaar

in werking zal treden. Dit zal optreden als de hoek tussen

de boven- en onderarm te groot of te klein wordt. Om ook

deze mechanische eindstanden te verhinderen is een reed­

relais aangebracht bij de elleboog, die als dat nodig is de

motoren zal kortsluiten. Bij deze mechanische eindstand

kan niet softwarematig door de regelroutines een beveiliging

ingebouwd worden. Daarom zal er bij de implementatie op de

HP gecontroleerd moeten worden op een eventuele toelaatbare

positie. Een overzicht van de beveiligingsschakeling wordt

gegeven in Bijlage 1.

Watchdogs

Een methode om een beveiliging in te bouwen voor fouten in

de software is om gebruik te maken van ~vatchdogs. Watchdogs

zijn delay-timers, die een signaal afgeven als ze niet

binnen een bepaalde tijd gereset worden. Als een watchdog

met een bepaalde regelmaat gereset wordt is er dus niets aan

de hand.

32

Page 33: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Het resetten kan gebeuren door de regelroutine. Als op een

of andere manier een fout in de software is opgetreden, zal

de watchdog niet meer gereset worden en zal hij aflopen. Het

aflopen bestaat uit het interrumperen van de host-microcom­

puter, die vervolgens de geijkte maatregelen kan nemen.

Omdat de regelroutine tussen de 2 en 4 ms in beslag zal

nemen en omdat deze routine om de 10 ms opgestart wordt,

zal de ingestelde delay-tijd groter moeten zijn dan 12 ms.

De watchdog-schakeling is opgebouwd op de hoofdinterface­

kaart. De schakeling bevat 3 H6006 watchdogs, waarbij de

delay-tijd instelbaar is met een RC-netwerk. Iedere watchdog

wordt vanuit een EWMC-processorkaart gereset. De uitgangs­

signalen van de watchdogs worden met een NAND en een D flip­

flop verbonden met de HP-interruptingang. De D flip-flop is

nodig omdat een level-sensitive signaal nodig is. Om in de

toekomst de mogelijkheid open te laten om een externe timer

de 80 ms interrupts te laten verzorgen is deze lijn ook

verbonden met de (enige) interruptingang van de HP. Met

behulp van de special purpose lijnen STIO en STIl is na een

eventuele interrupt te zien of de interrupt door de watchdog

schakeling of door de 80 ms interrupt veroorzaakt is.

L _

- ,IIIIII

II

_ ...J

'------t-------t---Ji STI ~

+------------r~sn 1Hboal:.

H bc.l:.

Hboo~

f---+-~ TC L To f-------4f

f---+-----lI TC L Tc> ~------>I

1---+-----4f TC. L Tö f-------lI

rI

EW'MC

1

EWMC

1

E '''''MC

J

Fig. 3.6.-1: De timing- en watchdogschakeling.

33

Page 34: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bufferbeveiliging

Behalve de softwarematige controle op een eindpositie is in

de software een andere beveiliging ingebouwd. De 80 ms

verplaatsings-setpoints die door de HP overgestuurd worden,

worden geinterpoleerd naar 8 10 ms-verplaatsingssetpoints

en opgeslagen in een FIFO-buffer. Iedere 10 ms zal de

regelroutine zo'n geinterpoleerd verplaatsingssetpoint uit

het buffer halen om de gewenste positieverandering te effec­

tueren.

Het kan echter voorkomen dat het buffer leeg is. In dat

geval zal hetzelfde positiesetpoint gehandhaafd worden

(waarde van 10 ms setpoint = 0000 hex).

software-beveiliging

Als tijdens het lopen van het programma een fout

gedetecteerd wordt, zal naar een errorroutine gesprongen

worden. In deze routine wordt allereerst de motor stilgezet

en wordt het programma na het geven van een errormelding op

het aangesloten beeldscherm gestopt.

Fouten kunnen ontstaan als bij het optellen een overflow

wordt gedetecteerd, als in de regelaar een overflow optreedt

of als een eindpositie overschreden wordt. Het geoorloofde

werkgebied dat gehanteerd wordt bij de verschillende assen

is gelijk aan:

- As 1: 04 00 00 oe 00 00

- As 2: 07 10 00 08 EO 00

- As 3: 07 90 00 09 70 00

Het is wenselijk om in de toekomst een terugmelding naar de

HP-host-microcomputer te geven als een fout optreedt. De HP

kan alle processorkaarten dan opnieuw initialiseren door

deze een reset te geven.

34

Page 35: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Hoofdstuk 4 PHILIPS MICROCOMPUTER DEVELOPMENT SYSTEM

4.1. Inleiding

Het Philips Microcomputer Development system (PMDS-II) is

opgebouwd rondom een 68000 microprocessor, waarvan de opbouw

is weergegeven in figuur 4.1.-1.

DomesliC computer

Eil!l FEW I-'IJ! :

I y---...-mo-'y-m-an__--'-""'-,-,

Unlvet'sal debug UNt ,-4

Otsk controller

-----\

i

I

Fig. 4.1.-1: Opbouw van het PMDS-ontwikkelsysteem.

De belangrijkste onderdelen zijn de zgn. domestic computer,

een winchester hard disk unit van 22 Mbytes, een floppy disk

drive en een toetsenbord. Het is mogelijk om met meerdere

gebruikers het systeem te gebruiken (max. 6). Verder is het

systeem geschikt gemaakt om een printer (Digital DECprinter

lIl) te gebruiken en om m.b.v. het programma kermit via het

THE-net het systeem als terminal te gebruiken voor een ander

computersysteem, of file transport mogelijk te maken.

Om de PMDS als ontwikkelsysteem te gebruiken, moet een zgn.

35

Page 36: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Microprocessor Adapter-Box (MAB) gebruikt worden. De MAB

verbindt de PMDS met de te ontwikkelen microprocessor: voor

iedere target-microprocessor moet dan ook een eigen MAB

aangeschaft worden. Ook zijn voor elk type microprocessor

eigen doelgerichte softwarepakketten zoals assemblers en

debuggers vereist. Het emulatiegeheugen en de trace-facili­

teiten zijn onafhankelijk van de target-microprocessor. Het

ontwikkelen van software kan in een hogere programmeertaal

(Pascal, C of PL/M) of in de assemblertaal van de desbetref­

fende microprocessor.

HUO11 CI 0'" 0 CES SOl

'10 1tl cue_OU' 0u, !.

'UTar,,(cIIC uIJ

Fig. 4.1.-2: De Microprocessor Adaptor Box.

De PMDS-II is gebaseerd op het besturingssysteem UNIX, dat

een hierarchische bestandsstructuur heeft. Deze bestands­

structuur biedt de mogelijkheid om toegang te krijgen tot

bestanden van andere gebruikers. Ook kan de gebruiker eigen

36

Page 37: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

commando's (shell scripts) maken. Unix is een multi-tasking

operating system en biedt de mogelijkheid om tijdrovende

taken op achtergrond te draaien.

Tijdens het gebruik van het PMDS-systeem kunnen de volgende

paragrafen als basis-handleiding dienst doen. Bij het

schrijven van de tekst is ervan uitgegaan dat een eventuele

gebruiker nog onbekend is met UNIX.

4.2. UNIX en de editor

In UNIX zijn korte namen gebruikelijk, waarbij er van uitge­

gaan wordt dat de gebruiker weet wat hij doet. Er worden dan

ook zeer weinig foutmeldingen gegeven. De UNIX prompt is in

het algemeen de '$' maar kan ook anders ingesteld worden.

Een commando in UNIX wordt een shell script genoemd. Enkele

veel gebruikte UNIX shell scripts zijn te vinden in bijlage

3.1.

Om een shell script onder UNIX af te breken kan de delete

toets gebruikt worden, in tegenstelling tot het vaak

gebruikte [ctrl] Cc]. Andere door Philips gemaakte UNIX

shell scripts zijn te vinden in de file /READ_ME.

Meer informatie kan gevonden worden in Re informatie AG 87

[lito 14].

4.2.1. De structuur van UNIX

Bij UNIX worden de bestanden, met behulp van een boom­

structuur, systematisch opgeslagen. Een gebruiker van het

systeem bevindt zich altijd ergens in deze hierarchische

boomstructuur.

37

Page 38: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

In de wortel van de boomstructuur zit de zg. root, die kan

worden aangeroepen met een 'j'. Daaronder zitten verschil­

lende directories of files (bv. bin, etc, usr .. ). Hieronder

kunnen weer andere directories of files zitten. Deze

boomstructuur is weergegeven in figuur 4.2.-1.

Fig. 4.2.-1: De boomstructuur van UNIX.

Het is mogelijk dat meerdere personen gebruik maken van dit

systeem. Iedere gebruiker bezit daarbij een eigen directory.

Zo is bv. een gebruiker van dit systeem als directory aanwe­

zig onder jusrj'gebruiker' (bij inloggen komt deze gebruiker

ook in deze directory terecht). Een file van deze gebruiker

heeft jusrj'gebruiker'j'file' als padnaam.

Met het commando 11 (long list) verkrijgt men informatie

over subdirectories en de files op 1 niveau lager. Na het

invoeren van dit commando verschijnen bv. de volgende re­

gels (onder de directory jusrjmariusjrbass):

-rw-r--r-- 1 marius

drwxr-xr-x 2 marius

87981 oct 15 15:45 as1.s

368 oct 29 11:13 eprom

Op het einde van de regel wordt de naam van een file of een

subdirectory gegeven. De rest van een regel heeft betrekking

op deze file of directory.

De letters aan het begin van de regel hebben betrekking op

38

Page 39: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

de file-protectie en hebben de volgende betekenis:

De eerste letter is een d of een streepje. De d betekent dat

de naam aan het einde van de regel een subdirectory is. Een

streepje wil zeggen dat het een file is.

Voor de protectie van een file wordt onderscheid gemaakt

tussen de eigenaar (user,u): karakter 2 tm 4, groep (g):

karakter 5 tm 7 en de overige gebruikers (0): achtste t/m

laatste karakter.

Een karakter is een r (read & copy permission) , w (write

permission) of een x (execute permission) bij een file. Bij

een directory betekent de r dat in de betreffende directory

gelezen mag worden, een w dat aan de betreffende directory

iets mag worden toegevoegd en een x betekent dat de betref­

fende directory in een padnaam gebruikt mag worden.

Als men zelf een UNIX shell script wil schrijven dat uitge­

voerd kan worden moet allereerst een tekstfile (met daarin

geldige UNIX commando's) geedit worden, en deze vervolgens

executable gemaakt worden. Het executable maken kan met het

shell script chmod +x <filenaam>.

De meeste UNIX-commando's gebruiken input en produceren

output. De standaard input is daarbij het toetsenbord en de

standaard output is het beeldscherm. De output van een UNIX­

commando kan weer gebruikt worden als input van een ander

commando. Dit heet I/O redirection.

Voorbeelden:

- 'command' < 'tekst'

- 'command' > 'tekst'

39

De file tekst fungeert als input

voor een commando ipv. het

gebruikelijke keyboard.

De output van een commando wordt

ipv. naar het beeldscherm in een

file 'tekst' gezet. In plaats

van een filenaam kan ook een

device (zoals bv. /dev/ttyOl)

Page 40: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

- 'command' » 'tekst'

- 'commandl' 'command2'

ingevuld worden, waarmee output

naar een ander beeldscherm

gestuurd kan worden.

Een pipe. De output van 'com­

mandl' wordt als input voor

'command2' gebruikt. Bv 'com­

mand' I lpr zal bv. alle output

van een commando naar de printer

sturen.

De output van commando gaat

naar de file 'tekst'. Als de

file 'tekst' al bestaat zullen

de gegevens toegevoegd worden.

4.2.2. De editor e

Als een nieuwe file aangemaakt wordt kan dit met de screen­

editor e. Het systeem vraagt eerst of dit een nieuwe file is

(met CR bevestigen), en komt vervolgens in de edit mode. Met

het indrukken van LINE FEED komt men in de command-mode. In

de edit mode kan gebruik gemaakt worden van de cursor toet­

sen (zie figuur 4.2.-2).

more boven onder links rechts

Fig. 4.2.-2: Cursor toetsen.

De toets met de pijl naar links-boven wordt de more toets

genoemd. Met deze toets kunnen de volgende cursor-bewegingen

gemaakt worden:

- more boven (of onder): Ga een scherm naar boven

(beneden) .

40

Page 41: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

- more links (of rechts): Ga een woord naar links

(rechts).

- more more boven (of onder): Ga naar het begin (einde) van

de file.

- more more links (of rechts): Ga naar het begin (einde) van

de regel.

Een aantal vaak gebruikte commando's in de command-mode van

de editor e kunt U vinden in bijlage 3.2.

4.3. Het ontwikkelen van software met PMDS-II

Het Philips Compiler Package (PCP) stelt de gebruiker in

staat om niet alleen met assembler-taal, maar ook met een

hogere programmeertaal software voor een specifieke proces­

sor te ontwikkelen. Bij gebruik van een hogere programmeer­

taal (Pascal, C of PL/M) wordt de source mbv. een preproces­

sor vertaald naar source code, die geschikt is voor de host­

processor van de PMDS. Deze code kan eventueel ook gebruikt

worden om een executable file te maken. Met een specifieke

doelprocessorcompiler en een optimiser wordt deze code omge­

zet in intermediate code. Een code-generator zet deze inter­

mediate code weer om naar assembly-code. Op dit systeem is

helaas geen codegenerator voor de 8085 microprocessor aanwe­

zig, maar voor de 68000 is deze wel aanwezig (onder de naam

/usr/ack/68k44/cg). Met een linker kan deze assembly-code

gelinkd worden met door de gebruiker geschreven assembler­

source files of eventueel files uit een bibliotheek. Deze

objectfiles of modules worden gecombineerd in een groot

programma, waarbij naar labels in andere modules gerefereerd

mag worden. De assembler zet deze file om in code, die

geschikt is voor de gebruikte microprocessor. Omdat in ons

geval de source geschreven is in assembler-taal kan de

41

Page 42: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

souree rechtstreeks als input van de 8085-assembler dienen.

Voordat de PMDS aangeschaft is, is door Frank van Blerck

[lito 1] een eerste aanzet gegeven om de software voor de

besturing van een as te schrijven. Deze source code was

geschreven als souree voor de 8085-crossassembler op de

Burroughs 7900 van het rekencentrum. Deze assembler heeft de

naam MICROSIM en werkt met INTEL mnemonics. De assembler op

de PMDS heeft enige verschillen t.a.v. deze mnemonics.

Hieronder vindt U een overzicht hiervan:

- Een hexadecimaal getal wordt gerepresenteerd door:

Ox<hex getallen>.

- Bij commentaar moet een uitroepteken ervoor gezet worden.

- Een DB instructie (1 byte definieren) wordt:

<labelnaam>: .data1 <waarde>.

- Een OW instructie (2 bytes definieren) wordt:

<labelnaam>: .data2 <waarde>.

- Een constante definieren gebeurt met '=' ipv. EQU.

- Het is mogelijk om de ascii-waarden van een aantal opeen-

volgende karakters in het geheugen op te slaan en af te

sluiten met het nulkarakter. Dit gebeurt met het commando:

<labelnaam>: .asciz '<tekst>'.

- Het programma is opgedeeld in sections, die allemaal op

een eigen geheugenadres kunnen beginnen. Dit wordt aange­

geven met .base <adres>.

Verder worden de gebruikelijke INTEL 8085 instructies

gebruikt.

Het omzetten van het assembler-programma, dat op de

Burroughs ontwikkeld was, naar het PMDS-assembler programma

is uitgevoerd met een zelf geschreven shell script, waarbij

gebruik is gemaakt van de stream editor sed.

Met het UNIX-commando 8085 <filenaam>.s wordt de source code

geassemblembeerd. Met het commando 8085 -d1700 <filenaam>.s

42

Page 43: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

wordt de gegenereerde code tesamen met de source code weer­

gegeven. Om deze uit te printen moet een "pipe" naar het

print commando gegeven worden:

aoa5 -d1700 <filenaam>.s I lpr.

4.3.1. Omzetten naar code voor de debugger debaOa5

De output van de aoa5 assembler staat in de file a.out. Deze

code is echter gemaakt voor een PMDS-1 en moet omgezet

worden naar code die geschikt is voor de PMDS-2. Dit gebeurt

met de shell script convpmds. Convpmds maakt 3 files aan,

een :a, een :b en een :m code file. Dit met de gewenste

filenaam ervoor. Met convpmds -a<hexadres> <filenaam> worden

van a.out 3 files gemaakt, waarmee de debugger een geladen

programma direct kan uitvoeren op het startadres dat achter

de -a optie staat.

4.3.2. De debugger debaOa5

Met de debugger kan het geassembleerde robotprogramma gela­

den, gerund en evt. gecontroleerd worden. Om het programma

te kunnen laten runnen moet eerst de MAB (Microprocessor

Adapter Box) met de prototype aoa5 socket verbonden worden.

Als de spanning ingeschakeld is, kan de debugger opgestart

worden. De prompt die bij de debugger verschijnt is "?DO:".

In de debugger kan gebruik gemaakt worden van het geheugen

van de prototype (de EWMC-processorkaart), maar ook van

intern geheugen van de PMDS (emulator geheugen). Met het

MAP-commando wordt aangegeven welk gedeelte van het geheugen

in de prototype (p) zit en welk gedeelte in de emulator

(em). Tevens wordt met dit commando aangegeven of een

43

Page 44: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

bepaald gedeelte van het geheugen ROM of RAM is.

Bij de gebruikte EWMC kaarten zit een EPROM met een monitor­

programma op adres O-fff, een gebruikers-EPROM van adres

1000-lfff en RAM van 2000-23ff en 3400-3fff. De EWMC kaart

maakt gebruik van memory mapped geheugenadressering. De

adressering van de peripherals zit op geheugenadres 4000­

40ff. Bij het ontwikkelen van de software is gebruik ge­

maakt van het emulatorgeheugen. De code van het programma

wordt geladen in adres 1000-lfff. Nu het programma uitont­

wikkeld is, is de software in eprom gezet en start ook op

adres 1000.

Het statusgeheugen bevindt zich in adres 2400-33ff. Omdat

hiervoor geen plaats is op de EWMC-processorkaart, wordt ook

hier gebruik gemaakt van het emulator geheugen.

Een overzicht van de debugger-commando's is gegeven in

Bijlage 3.3.

4.4. Omzetten van Philips format naar Intel-hex format

Op de EWMC kaarten is de mogelijkheid aanwezig om bij het

inschakelen van de spanning of na het geven van een reset,

direct een gebruikersprogramma, dat opgeslagen is in eprom ,

uit te voeren. Het is dan ook wenselijk om de geschreven

software, als deze eenmaal een definitieve vorm gekregen

heeft in eprom te zetten. Helaas is er geen eprom-programmer

aanwezig bij de PMDS. Er is dan ook gebruik gemaakt van een

andere eprom-programmer en wel de DIGILEC portable program­

mer 824 bij de vakgroep EB. Deze programmer maakt het echter

noodzakelijk om een codefile te formateren volgens het

intel-hex format. Er is een C programma geschreven met de

naam intelhex.c dat een outputfile van de PMDS-assembler

omzet naar intel-hex format. Dit programma is uitvoerbaar

44

Page 45: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

met intelhex.x <inputfile:m> <outputfile>. In het kort zal

beschreven worden hoe beide formats er uit zien en hoe het

omzetten van de ene naar de andere format gedaan wordt.

Zoals in de vorige paragraaf vermeld werd, geven de assem­

bler en.de converter 3 outputfiles: een :a, een :b en een :m

file. De :m file is geschikt om een omzetting te maken naar

intel-hex format. Een record in een :m file ziet er als

volgt uit: Een record begint altijd met 2 bytes, waarvan de

waarde het aantal bytes voorstelt dat nog volgt in het

betreffende record.

Vervolgens komt een byte, die het type van de record aan­

geeft:

- 00 als het het eerste record is in een file. Dit record

bevat informatie over de naam van de load-file.

- Ol geeft aan wat het startadres van de load-file is.

- 02 geeft aan dat data volgt.

- 03 als het het laatste record is in een file.

Na deze byte volgen 3 bytes waarvan de inhoud gelijk is aan

00.

De 2 bytes die daarop volgen bevatten het startadres van de

gegevens, die volgen.

Bij de bespreking van het Intel-Hex format moet opgemerkt

worden dat 1 byte aan data opgeslagen wordt in 2 karakters,

waarbij deze karakters de hexadecimale notatie voorstellen

van het te representeren byte. De ascii-waarden van deze

karakters zullen opgeslagen worden. Bv. het byte met de

waarde 00 hex zal omgezet worden naar de bytes met de ascii­

waarden 30,30 hex, d.w.z. de karakters 0,0. (Zo zullen de

karakters 0-9 omgezet worden naar 30-39 hex en A-F naar 41­

46 hex).

Een record in het Intel-hex format ziet er als volgt uit:

- Het eerste karakter in een record is een dubbele punt

45

Page 46: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

(3A hex), die het begin van een record aangeeft.

- Het tweede en derde karakter vormen samen een byte, die de

lengte van het record aangeven in bytes.

- Het vierde tot en met het zevende karakter vormen een 16

bit hex adres dat het adres is van de eerste databyte in

het record.

- Het achtste en negende karakter geven het type aan van het

record: Ol als het het laatste record is in de file,

anders is de inhoud 00.

- Hierna volgen steeds 2 karakters, die samen een databyte

voorstellen. Als bv. de waarde van een databyte gelijk is

aan 00, zal dit in het intel-hex format weergegeven worden

als twee keer ascii code 30 hex ('0').

- De laatste 2 karakters in een record is de checksum. De

checksum wordt bepaald door alle bytes (twee opeenvolgende

karakters als byte beschouwen) behalve de dubbele punt op

te tellen met weglating van de carry en dit te complemen­

teren in het two's complement. De checksum ook weergeven

met twee ascii karakters.

In het programma intelhex.c wordt van een :m file record

voor record gelezen. Bij een record dat data bevat wordt als

de lengte en het startadres bekend is direct een gelezen

databyte omgezet in twee karakters en in een intel-hex

record geplaatst. Een listing van het programma vindt U in

de bijlage.

46

Page 47: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

HOOFDSTUK 5 DE SOFTWARE VAN HET BESTURINGSSYSTEEM

5.1. Inleiding

De software voor de EWMC-processorkaarten is geschreven in

assembler-taal en ontwikkeld op een PMDS-II ontwikkelsys­

teem van Philips. De software is, op enkele details na,

gelijkvormig voor alle assen: alleen de procedure om bij de

initialisatie naar een eenduidige beginpositie te gaan is

bij elke as verschillend. Bovendien zijn bepaalde constanten

in de procedures om de eindpositie te controleren, de regel­

parameters en de aanpassing tussen de regelaar en de DAC (om

het dode gebied op te heffen) verschillend.

De programma's zijn zodanig opgedeeld in sections, dat een

modulaire structuur ontstaat.

Voordat de robotas bestuurd kan worden door de HP, moet de

robotas zich bevinden in een eenduidige initiele nulpositie.

De procedure om een as in deze positie te krijgen wordt

nader besproken in de volgende paragraaf.

Behalve de initialisatie, is de software die geimplementeerd

is op de EWMC-processorkaarten opgebouwd uit 2 interruptrou­

tines. Een routine, die de setpointoverdracht en de interpo­

latie verzorgt wordt om de SO ms uitgevoerd. De andere (de

regelroutine) wordt om de 10 ms uitgevoerd.

Door de opbouw van de hardware is het niet mogelijk om de

setpoints voor de verschillende assen gelijktijdig door te

geven. Daardoor is er voor iedere EWMC-processorkaart een

afzonderlijke SO ms interruptlijn noodzakelijk. De 10 ms

interruptlijn is wel universeel en dus verbonden met iedere

EWMC-processorkaart (zie fig. 5.1.-1).

De interruptsignalen worden gegenereerd door een klok. In de

gerealiseerde besturing wordt de interne klok van de HP-

47

Page 48: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

microcomputer gebruikt, maar het is ook mogelijk om een

externe klok te gebruiken. Het kleinst mogelijke sample­

interval van de interne klok van de HP is gelijk aan 10 ms

zodat bij eventuele verkorting van de sampletijd een externe

klok noodzakelijk zal zijn.

100 Hl

klok.

IlH fWMC1.

Fig. 5.1.-1: Interruptsignalen in de robotbesturing.

De verschillende routines zien er schematisch als volgt

uit:

INITIALISATIE:

- Initialiseer de EWMC-processorkaart.

- Ga naar een eenduidige initiele nulpositie.

- Wacht op interrupts.

SO MS INTERRUPTROUTINE:

- setpointoverdracht van HP naar EWMC-processorkaart.

- sa ms setpoint interpoleren naar S 10 ms setpoints.

- 10 ros setpoints opslaan in setpointbuffer.

10 MS INTERRUPTROUTINE (de regelroutine):

- Latchen van DAC-data (hardwarematig) en positieinformatie

(softwarematig).

- Als de positie buiten de grenswaarden ligt dan error­

melding geven, de motor stilzetten en het programma

stoppen.

- 10 ms setpoint uit setpointbuffer halen.

- Met digitale regelaar nieuw DAC-inputdatawoord berekenen.

- DAC-inputdatawoord op ingang van de latch zetten.

4S

Page 49: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

De software, die geschreven is voor de verschillende assen

is op het PMDS systeem aanwezig onder de directory

/usr/marius/rbass. Onder deze directory is weer een sub­

directory met de naam eprom waar de software aanwezig is,

die uiteindelijk in de eproms gezet is. De software onder de

directory rbass bevatten de routines om met een terminal de

regeling interactief te testen.

Een overzicht van de procedures en de variabelen wordt

gegeven in bijlage 4.2. en 4.3.

5.1.1. Initialisatie van de EWMC-processorkaart

Als een programma op de EWMC-processorkaart opgestart wordt,

zullen in eerste instantie een aantal zaken geinitialiseerd

worden.

Zo moeten om op een juiste manier interruptroutines op te

kunnen starten, jump adressen geplaatst worden in de inter­

rupt jump table (adres 3FEO-3FFF) en m?et de interrupt

controller geinitialiseerd worden (edge-triggered mode) .

De stackpointer wordt geinitialiseerd op adres 3FDF.

Om de seriele verbinding op te starten wordt counter 2 in

mode 3 gezet, zodat een blokgolf gegenereerd wordt met een

frequentie van 153.6 kHz. De USART van poort 0 wordt gereset

en ingesteld op 9600 baud, 8 databits, geen parity en 1

stopbit. Na een transmit- en receive enable is communicatie

over deze lijn mogelijk.

Zoals eerder vermeld wordt een setpointbuffer gebruikt. Dit

buffer wordt geplaatst in adres 3EBO tot 3EDF. In paragraaf

5.3. wordt de initialisatie van het buffer verder besproken.

Variabelen, die in de programma's gebruikt worden zijn ge­

plaatst in adres 3EOO tot 3E68 en 3EE2-3EFF.

49

Page 50: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

5.2. Initialisatie van de nulpositie

Om een positieregeling te kunnen gebruiken is het noodzake­

lijk dat de positie op elk moment, dus ook bij aanvang van

de regeling bekend is. De beginpositie zal om verscheidene

redenen geinitialiseerd moeten worden:

- Er is geen terugkoppeling van de positie naar de HP-host­

microcomputer.

- Omdat de overdracht van de setpoint-databytes verhou­

dingsgewijs veel processortijd kost, is besloten om in

plaats van de gewenste positie na 80 ms, de gewenste

verandering van de positie na 80 ms als setpoint door te

geven waardoor i.p.v. 4 bytes nog maar 3 bytes doorgegeven

moeten worden. De consequentie is echter dat een afspraak

gemaakt zal moeten worden op welke positie een as zal

staan als de HP-microcomputer begint met het doorgeven van

setpoints. Deze positie moet eenduidig en nauwkeurig

bepaald zijn.

- Omdat de positie van de robotas bepaald wordt met behulp

van counters, zullen deze counters in het begin geladen

moeten worden met een initiele waarde. De positie waarin

de robotas zich bevindt als de counters geinitialiseerd

worden, moet binnen een motoromwenteling nauwkeurig repro­

duceerbaar zijn. De positie van de motoras kan immers

met de RDe bepaald worden.

Om de gewenste nulpositie te bepalen kan er gebruik gemaakt

worden van de referentieschakelaars, die als herkenningspunt

gebruikt worden (niet te verwarren met de eindschakelaars,

die de beveiliging inschakelen). Bij de tweede en derde

vrijheidsgraad zijn deze op een positie aangebracht, waarbij

de eindschakelaars nog net niet aangesproken worden. Omdat

de referentieschakelaars op het einde van de slag aange­

bracht zijn is ook de bewegingsrichting bekend waarmee de

positie van de referentieschakelaar bereikt kan worden.

50

Page 51: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bij de eerste vrijheidsgraad is door ASEA een referentie­

schakelaar aangebracht, maar deze zit op het midden van de

slag. Een nadeel van deze positie is dat bij de initiali­

satie niet bekend is aan welke zijde van de schakelaa~ de as

zich bevindt zodat de as niet automatisch in de richting van

deze schakelaar bewogen kan worden. Om dit wel te kunnen

realiseren is een ijzeren halve ring aangebracht, die een

reed relais kan inschakelen. Met deze referentiestand-scha­

keling kan gedetecteerd worden aan welke zijde van de slag

de eerste as zich bevindt (zie fig. 5.2.-1).

1

1 2 3

Fig. 5.2.-1: De eerste vrijheidsgraad.

opgemerkt moet worden dat tijdens het bewegen van een robot­

as naar de nulpositie de motor van de desbetreffende as niet

geregeld maar gestuurd wordt. Tijdens het bewegen naar de

nulpositie zal een robotas met minimale snelheid moeten

bewegen om zo exact mogelijk op deze positie terecht te

kunnen komen.

Het blijkt dat de motorsnelheid bij lage snelheden afhanke­

lijk is van de instelling van de versterker. Bij een kleine

aansturing moet een stictie overwonnen worden, die bovendien

niet altijd gelijk is. Het blijkt dat de stictie kleiner

wordt als de robot een tijdje gedraaid heeft, waarschijnlijk

omdat de wrijving bij het warmer worden van de verschillende

onderdelen afneemt. Als een versterker vervangen wordt, moet

51

Page 52: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

de offset-spanning zodanig ingesteld worden dat het algo­

rithme om de nulpositie te bereiken op de gewenste manier

uitgevoerd wordt.

De algorithmes voor de verschillende assen worden hieronder

nader beschreven.

Initialisatie van de eerste vrijheidsgraad

- Als het uitgangssignaal van de referentiestand-schakeling

laag is (zie de derde stand van fig. 5.2.-1) dan zal de

motor met een negatieve spanning aangestuurd worden en zal

de robotas draaien tot dit uitgangssignaal hoog wordt.

Het uitgangssignaal van de referentiestand-schakeling is

nu weliswaar hoog, maar de positie is niet bepaald.

- De motor wordt met een positieve spanning aangestuurd tot­

dat het uitgangssignaal weer laag wordt. Omdat de robot

niet direct stil zal staan, zal de eindpositie van de

robotas nog niet gelijk zijn. De mate waarin de robotas

doorgeschoten is, is namelijk niet altijd gelijk.

- De motor wordt met een kleine negatieve spanning aange­

stuurd zodat de robotas net beweegt. De robotas wordt

gestopt als een overgang van laag naar hoog gedetecteerd

wordt. Als de as tot stilstand gekomen is, zal de positie

altijd binnen 1 motoromwenteling nauwkeurig blijven.

Om een gedefinieerd nulpunt te krijgen is het wenselijk

dat het uitgangssignaal van de RDC gelijk is aan 000 hex

als de counters geinitialiseerd worden. Er kan echter niet

voorkomen worden dat de robot niet direct tot stilstand

zal komen. Het is wenselijk dat de RDC een uitgangssignaal

heeft dat zo dicht mogelijk bij 000 hex ligt en positief

is. Tijdens de initialisatie zal de uitgangswaarde van de

RDC dan ook moeten oplopen. Om dit te bereiken zal de

motor met een positieve spanning aangestuurd worden.

52

Page 53: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

- Nadat de motor aangestuurd wordt met een kleine positieve

spanning zal het uitgangssignaal van de RDC gecontroleerd

worden. Het uitgangssignaal van de RDC bestaat uit 12

bits. Om de eindfout in de positie zo klein mogelijk te

maken is het belangrijk om de procedure waarbij gecontro­

leerd wordt op de juiste data zo kort mogelijk te houden.

Daarom zal slechts 1 byte tegelijkertijd getest worden.

Achtereenvolgens wordt gecontroleerd of:

De 4 meest significante bits gelijk z1Jn aan 1. Als

FOO hex bereikt is, zal alleen het minst signifi­

cante byte nog gecontroleerd moeten worden.

- Het minst significante byte gelijk is aan 10 hex.

Als direct op 00 hex gecontroleerd wordt kan het

zijn dat deze direct gevonden wordt terwijl de

uitgangswaarde van de RDC nog gelijk is aan FOO hex

ipv. 000 hex.

- Uiteindelijk wordt gecontroleerd op 00 hex.

Als de initiele nulpositie bereikt is kan de motor stilgezet

worden en worden de counters zo geinitialiseerd dat de

waarde van de beginpositie gelijk is aan 080000 hex. Na het

initialiseren van de counters wordt een outputlijn hoog

gezet om de HP te melden dat de beginpositie bereikt is. Ook

zal op de aangesloten terminal weergegeven worden in welke

positie de robotas tot stilstand is gekomen. Deze positie

zal (afhankelijk van de instelling van de versterker) toch

een kleine fout met zich meebrengen.

Initialisatie van de tweede vrijheidsgraad

Bij de initialisatie van de tweede as moet opgemerkt worden

dat de motorspanning die nodig is om deze as stil te laten

staan, afhankelijk is van de positie. In fig. 5.2.-2 zijn 3

standen weergegeven. In de eerste en de derde stand zal een

negatieve resp. een positieve spanning nodig zijn om de

robot niet in elkaar te laten zakken. Alleen in de tweede

53

Page 54: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

stand zal de robot in dezelfde stand blijven staan zonder

dat de motor aangestuurd moet worden. Dit is dan ook de

gewenste initialisatiestand.

1 2 3

Fig. 5.2.-2: De tweede vrijheidsgraad.

Omdat in de derde stand van fig. 5.2.-2 de referentieschake­

laar ingeschakeld zal worden, zal de as as hier eerst naar

toe bewegen en vervolgens terugkeren naar de tweede stand.

Het algorithme om naar deze stand te bewegen ziet er als

volgt uit:

- Als de tweede as in een stand geplaatst is, waarbij de

robot niet in elkaar zakt, dan zal de lijn van de referen­

tieschakelaar hoog zijn. Er wordt een negatieve spanning

op de motor gezet totdat deze lijn laag wordt. Er is dan

een positie bereikt, waarbij de eindschakelaar nog net

niet ingeschakeld wordt.

De motor wordt aangestuurd met een positieve spanning, die

nodig is om de zwaartekracht te overwinnen. De spanning

moet zo groot zijn dat de bovenarm tot stilstand komt. De

eindschakelaar mag zeker niet bereikt worden omdat dan

alle motoren kortgesloten zullen worden.

Het is mogelijk dat de as zodanig doorgeschoten is dat de

lijn van de referentieschakelaar weer hoog geworden is.

Daarom zal worden gecontroleerd op een overgang van laag

naar hoog als de bovenarm langzaam omhoog bewogen zal

worden om een eenduidige positie te verkrijgen.

54

Page 55: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

- Als een eenduidige positie verkregen is kan, net als bij

de eerste as, de as zo bewogen worden dat als de RDC een

uitgangssignaal heeft dat gelijk is aan 000 hex de coun­

ters geinitialiseerd zullen worden. De waarde van de posi­

tie is dan gelijk aan 080000 hex.

- Zoals eerder vermeld is de gewenste positie dan nog niet

bereikt. De positiewaarde waarbij de bovenarm vertikaal

staat is gelijk aan 08DOOO hex. Hier zal als volgt naar

toe bewogen worden:

- In de positie 080000 hex wordt de motor zo aan­

gestuurd dat de bovenarm net omhoog zal bewegen.

- Als de middelste byte gelijk is aan CB hex dan wordt

de spanning verder verlaagd omdat de snelheid van de

as toeneemt.

- Controleer achtereenvolgens of de

middelste byte gelijk is aan CF hex,

minst significante byte gelijk is aan 10 hex,

minst significante byte gelijk is aan 00 hex

en schakel de motorspanning uit.

Initialiseer de counters opnieuw zodat in de gewenste

initialisatiestand de positiewaarde gelijk is aan 080000

hex.

Initialisatie van de derde vrijheidsgraad

De initialisatie van de derde as gaat bijna analoog aan de

tweede as, alleen wordt bij deze as geen hinder ondervonden

van de zwaartekracht.

In fig. 5.2.-3 zijn 2 standen getekend. De eerste stand is

de gewenste initialisatiestand en je tweede stand is de

stand waarbij de referentieschakelaar ingeschakeld wordt.

Bij de initialisatie van de derde as wordt de onderarm

omhoog bewogen tot de referentieschakelaar ingeschakeld

wordt. De counters worden geinitialiseerd als vervolgens het

55

Page 56: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

uitgangs-signaal van de RDC gelijk is aan 000 hex. De arm

wordt omlaag bewogen naar positie 084000 hex en de counters

worden op deze positie opnieuw geinitialiseerd.

~~ ~ jTJ);

:r-tIljJlI· ~! I! I I:

'id.i i

:1 I

li~

/

Fig. 5.2.-3: De derde vrijheidsgraad.

5.3. Setpointoverdracht en interpolatie van setpoints

De communicatie tussen de HP-host-microcomputer en de ver­

schillende EWMC-processorkaarten, die elk een as besturen,

verloopt via een gezamelijke 8-bits databus. De setpoint­

overdracht gaat per as afzonderlijk en kan starten op het

moment dat door alle EWMC-processorkaarten een terugmelding

ontvangen is dat de initialisatie gereed is. De overdracht

van een setpoint naar een EWMC-processorkaart wordt opge­

start door een 80 ms interrupt signaal. In een tijdsbestek

van 80 ms moeten in totaal 3 setpoints door de HP verstuurd

worden.

Bij de setpointoverdracht wordt een handshake protocol ge­

bruikt zodat vanuit de HP een lijn Data Valid nodig is en

vanuit iedere EWMC-processorkaart een lijn Data Accepted,

die tevens gebruikt wordt als 80 ms interrupt acknowledge

signaal. Behalve de setpoint-databytes wordt als laatste

byte een checksum overgestuurd om te controleren of de

overdracht correct verlopen is.

Het nadeel van het handshake protocol is dat dit relatief

56

Page 57: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

gezien vrij veel tijd kost, ook al omdat de overdracht 3

keer (voor iedere as) moet plaatsvinden. Daarom is besloten

om niet de gewenste positie na 80 ms als setpoint door te

geven (3 databytes + checksum), maar het gewenste verschil

van de positie na 80 ms (2 databytes + checksum). De conse­

quentie is dat afgesproken moet worden op welke positie de

robot zich bevindt als begonnen wordt met het versturen van

setpoints. Dit wordt gerealiseerd bij de initialisatie van

de verschillende assen en is nader besproken in de vorige

paragraaf.

Bij de representatie van de setpointwaarde wordt de 2­

complement notatie gebruikt. Het setpoint met een maximale

positieve verplaatsing in 80 ms is gelijk aan 7FFF hex. Het

setpoint met een maximale negatieve verplaatsing in 80 ms

is gelijk aan 8000 hex. Als de as stil moet blijven staan

(afregelen op een positie) wordt het setpoint 0000 hex

doorgegeven.

Zoals gezegd heeft het setpoint dat door de HP verstuurd

wordt, de betekenis van een gewenste verplaatsing, die over

80 ms bereikt moet worden. Omdat de regelroutine iedere 10

ms uitgevoerd wordt, zal het 80 ms setpoint geinterpoleerd

moeten worden naar 8 10 ms setpoints. Deze interpolatie is

op vrij eenvoudige wijze te realiseren omdat het 80 ms

setpoint gedeeld kan worden door 8. Delen door 8 is bij

binair rekenen niets anders dan een byte 3 bits naar rechts

verschuiven. Dit klopt niet helemaal want op die manier

heeft een afronding plaatsgevonden. Om de som van de 8

geinterpoleerde setpoints toch gelijk te laten zijn aan het

80 ms setpoint, worden een aantal 10 ms setpoints verhoogd

met de waarde 1. Dit aantal wordt voorgesteld door de 3

minst significante bits van het 80 ms setpoint. Bij de 10 ms

setpoints die achtereenvolgens in het setpointbuffer worden

geplaatst zullen eerst de setpoints weggeschreven worden,

57

Page 58: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

die de grootste verplaatsing representeren. Bij een negatief

setpoint moet van de laatste 3,bits van het 80 ms setpoint

het 2-complement genomen worden om dit te realiseren.

Het setpointbuffer dat gebruikt wordt, is een FIFO-buffer

dat in totaal 24 10 ms setpoints kan bevatten. Het plaatsen

van een 10 ms setpoint (2 bytes) in het setpointbuffer wordt

gerealiseerd met de procedure PUTDE, die in de interpolatie­

procedure aangeroepen wordt. Door de regelroutine wordt een

setpoint uit het buffer gehaald met de procedure GETDE.

'PUTDE

{t----II

FtFO -

~ETDE10 "'s. setpoi"l:

Di3ito.leR.~e.l_r

Fig 5.3.-1: Setpointoverdracht naar de digitale regelaar

Het buffer wordt beschermd met de volgende semaforen:

- NSPACE: Geeft het aantal plaatsen aan dat nog vrij is om

een setpoint in te plaatsen. NSPACE wordt geiniti­

aliseerd met 18 hex (24 dec).

- NITEMS: Het aantal setpoints dat op een bepaald moment

58

Page 59: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

aanwezig is in het setpointbuffer (is 0 bij initi­

alisatie).

Het verhogen en verlagen van NSPACE of NITEMS moeten ondeel­

bare processen zijn. Dit kan gerealiseerd worden door een

disable interrupt te geven voordat NSPACE of NITEMS gelezen

wordt, en een enable interrupt te geven als NSPACE of NITEMS

na verandering weer in het geheugen wordt opgeslagen.

Een mutual exclusion semafoor die gebruikt wordt voor buffer

manipulatie zal niet nodig zijn zoals verderop duidelijk

gemaakt zal worden. Andere variabelen, die betrekking hebben

op het gebruik van het setpointbuffer zijn 2 variabelen die

geheugenadressen aangeven waar gelezen (NEXTRA) dan wel

geschreven (NEXTWA) moet worden. Bij initialisatie zijn

beide gelijk aan 3EBO hex.

De procedure PUTDE wordt aangeroepen vanuit de interpolator

en is een onderdeel van de 80 ms interruptroutine. De

procedure PUTDE ziet er schematisch als volgt uit:

- Als NSPACE=O (buffer is vol) dan moet gewacht worden

totdat de 80 ms interruptroutine onderbroken wordt door

een 10 ms interrupt (heeft een hogere prioriteit). In de

10 ms interruptroutine zal een setpoint uit het buffer

gehaald worden. Als de regelroutine afgelopen is kan ver­

der gegaan worden met het plaatsen van een setpoint in het

buffer.

Verlaag NSPACE met 1.

Plaats op adres NEXTWA het meest significante byte van het

geinterpoleerde setpoint.

Plaats op adres NEXTWA+1 het minst significante byte van

het geinterpoleerde setpoint.

Verhoog NEXTWA met 2. Als NEXTWA dan gelijk wordt aan

adres 3EEO dan moet de waarde veranderd worden in 3EBO

omdat gebruik gemaakt wordt van een cyclisch buffer (adres

3EDF is de laatste geheugenlocatie van het buffer) .

59

Page 60: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

- NITEMS met 1 verhogen: er is immers een setpoint bijge­

plaatst.

De procedure GETDE is een onderdeel van de 10 m. interrupt­

routine en zal een setpoint uit het setpointbuffer halen.

Dit 10 ms setpoint wordt opgeteld bij het positiesetpoint

(de input van de digitale regelaar).

Als bij deze procedure geen setpoint in het buffer gevonden

wordt dan zal aangenomen worden dat er geen gewenste ver­

plaatsing is (setpointwaarde = 0000 hex). Dit heeft een

aantal voordelen:

- Er zal geen individual starvation optreden omdat alleen in

de procedure PUTDE eventueel gewacht moet worden. Dit

wachten zal altijd tijdelijk zijn omdat binnen 10 ms weer

een setpoint uit het buffer gehaald zal worden.

- Er zal altijd een 10 ms interruptsignaal aanwezig mogen

zijn. Als de EWMC-processorkaart opgestart wordt zal deze

ervoor zorgen dat de desbetreffende robotas naar de ini­

tiele nulpositie gaat. Daar aangekomen zal een interrupt

enable gegeven worden, waarna direct de regelroutines

mogen starten. Normaal gesproken zou het noodzakelijk zijn

dat direct setpoints door de HP doorgestuurd moeten wor­

den. Als nu geen setpoints doorgestuurd worden zal de

regeling ervoor zorgen dat de robotas afgeregeld wordt op

de initiele positie.

- Als er een fout optreedt in de communicatie tussen de HP

en een EWMC-processorkaart zal de regeling niet direct

verstoord worden. Het enige wat er zal gebeuren is dat de

robotas afgeregeld wordt op de laatst doorgegeven gewenste

positie.

De procedure GETDE ziet er als volgt uit:

- Als NITEMS ongelijk is aan 0 dan:

- NITEMS met 1 verlagen.

- Meest significante byte van 10 ms setpoint lezen op

60

Page 61: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

adres NEXTRA.

- Minst significante byte van 10 ms setpoint lezen op

adres NEXTRA+1.

- Verhoog NEXTRA met 2 en pas de waarde eventueel aan

als de waarde buiten het daarvoor bestemde bereik

van het buffer valt.

- NSPACE met 1 verhogen: er is weer een plaats extra

vrijgekomen voor een nieuw setpoint.

- Anders setpointwaarde = 0000 hex, waarbij de buffervaria­

belen niet veranderd worden.

5.4. De digitale regelaar

5.4.1. Inleiding

Bij het ontwerpen en implementeren van een servoregeling

moet rekening gehouden worden met de volgende eisen:

- De stabiliteit moet gegarandeerd worden in het hele werk­

gebied.

- Er moet een goed volggedrag zijn.

- Externe verstoringen moeten onderdrukt worden.

Een optimale servoregeling voor een robotbesturing zal niet

eenvoudig te realiseren zijn, dit vanwege de complexe dyna­

mica van het robotsysteem. Het dynamisch gedrag zal afhanke­

lijk zijn van:

- De positie van het TooI Centre Point (TCP) van de robot.

- De last die door de robot gedragen wordt.

- De snelheid waarmee bewogen moet worden (denk aan traag-

heidskrachten).

Bovendien is er een interactie tussen de verschillende as­

sen. Als het mogelijk is om de verschillende vrijheidsgraden

van de robot te kunnen ontkoppelen, zal het eenvoudiger zijn

61

Page 62: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

om een optimale regeling te ontwerpen. Vanwege de hardware

is geen communicatie tussen de verschillende asregelaars

mogelijk, zodat een ontkoppelde servoregeling niet te reali­

seren is.

Bij de keuze om een regelaar te ontwerpen die gelijkvormig

is voor iedere as, zal de regeling zodanig ontworpen moeten

zijn dat de interactie tussen de verschillende vrijheidsgra­

den beschouwd wordt als een externe verstoring. Om rekening

te houden met standafhankelijke gedrag zou het mogelijk zijn

dat de host-computer, afhankelijk van de positie, regelpara­

meters doorgeeft die op dat moment ideaal zijn voor de

servoregeling. Dit alles zal echter teveel processortijd

kosten om het realiseerbaar te maken.

Om de regelparameters theoretisch af te kunnen leiden, moet

eerst een volledig model van de robotdynamica bekend zijn.

Door van Wijck [lito 7] is een aanzet gegeven om het model

van de ASEA IRb-6 robot te beschrijven, waarbij nog geen

rekening is gehouden met de interactie tussen de verschil­

lende vrijheidsgraden. Het blijkt dat een vrijheidsgraad van

de robot te beschrijven is met een model van de vijfde orde.

Omdat het proces nog zo goed als onbekend is, is het beter

om voorlopig een servoregeling te ontwerpen, die vr1J een­

voudig is. De regelparameters kunnen zo gekozen worden, dat

ruime veiligheidsmarges ingesteld worden, waardoor de stabi­

liteit van het servosysteem gewaarborgd wordt. Er zullen dan

wel beperkingen zijn tav. bewegingssnelheid en baannauwkeu­

righeid.

Als gebruik gemaakt wordt van een volledig digitale regeling

zal het in de toekomst mogelijk blijven om de servo-regeling

met weinig moeite te veranderen of uit te breiden,waarbij de

hardware hetzelfde kan blijven. Het nadeel van een digitale

regelaar is dat de snelheid over het algemeen kleiner is dan

62

Page 63: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

bij een analoge regelaar. Ook kan de kwantiseringsruis een

rol spelen bij een digitale regeling.

De regeling zoals die uiteindelijk gerealiseerd is, is een

regeling met 2 PID-regelaars in cascade. De cascaderegeling

bestaat uit een binnenlus (de regeling van de snelheid) en

een buitenlus, waarbij de positie geregeld wordt. In figuur

5.4.-1 ziet U deze regeling schematisch weergegeven. G(R1)

is daarbij de positieregelaar, G(R2) de snelheidsregelaar en

G(P) het proces, dwz. de motor en andere toebehoren van de

robotas.

I ­I

~-------------

Fig. 5.4.-1: Cascade regeling.

Het in cascade opbouwen van de regelaar heeft een aantal

voordelen:

Verstoringen in de snelheid kunnen direct door de binnen­

lus weggeregeld worden.

- Het is mogelijk om de snelheidsregelaar zo te ontwerpen

dat een pool in het proces weggeregeld wordt met een

nulpunt in de snelheidsregelaar.

- De binnenlus kan als een apart proces G(W2) beschouwd

worden dat door de positieregelaar geregeld moet worden.

Met een goede keuze van de snelheidsregelaar is het moge­

lijk dat het proces G(W2) sneller wordt dan het proces

G(P) zelf.

- Bij gebruik van een cascaderegeling kunnen de regelparame­

ters langs praktische weg veel sneller ingesteld worden.

Allereerst kan de snelheidsonderlus geoptimaliseerd wor­

den. Vervolgens kan de buitenlus geoptimaliseerd worden

63

Page 64: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

terwijl de snelheidsregelaar hetzelfde blijft.

Het nadeel van een cascaderegeling is dat het meer werk is

om 2 variabelan te regelen.

Bij het ontwerpen van de regelaar voor de binnenlus worden

door Isermann [lito 11] enkele richlijnen gegeven. Zo mag

bij een discreet systeem de versterking van de regelaar

G(R2) niet te groot zijn vanwege een klein stabiliteitsge­

bied. De binnenlus wordt dan wel langzamer en de offset

groter. Om de offset te elimineren kan het beste gebruik

gemaakt worden van een PI-regelaar voor de binnenlus.

Van Blerck heeft in zijn ontwerp gekozen voor een PO-rege­

ling vanwege de grotere snelheid, die daarmee bereikt wordt.

Er is echter gebleken dat bij gebruik van een PO-regeling de

respons zeer instabiel is.

Behalve de verandering van de snelheidsregelaar is nog een

andere methode gebruikt om instabiliteiten in het proces weg

te regelen. Deze methode zal in de volgende paragraaf be­

schreven worden.

Bij de instelling van de positieregelaar blijkt het een

groot verschil te zijn of de regeling een traject moet

volgen of dat de robotas afgeregeld moet worden op een

positie. Bij het volgen van een traject kan het beste een P­

regeling gebruikt worden, terwijl bij het afregelen van een

positie het beste een PlO regeling gebruikt kan worden. Dit

zal ook nader besproken worden.

De stand waarin de regeling geoptimaliseerd wordt is gelijk

aan de stand in fig. 5.4.-2.

64

Page 65: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

5.4.2. Gebruik van laagdoorlaatfilter in de terugkoppeling

Zoals eerder vermeld kan een vrijheidsgraad van het robot­

systeem beschreven worden met een model van de vijfde orde.

Tevens treden allerlei niet-lineariteiten op in het systeem.

Bij een verkeerde instelling van de servoregeling zullen danook al snel instabiliteiten optreden. Tijdens de ontwikke­ling van de regelaar is dat ook gebleken.

Opvallend is dat er bij een optredende instabiliteit steedseen oscillatie in de respons optreedt met een zelfde fre­

quentie van 25 Hz.Deze frequentie komt ook tot uiting in de volgende meting.

De robot wordt in de stand van fig. 5.4.-2 mechanisch geex­citeerd (bv. door een klap te geven tegen de onderarm). De

tachorespons van de eerste as zal een uitgedempte trilling

vertonen, waarbij de trillingsfrequentie weer gelijk blijkt

te zijn aan 25 Hz (gemeten met een samplefrequentie van 100

Hz) .

~_'UIA- IC)m

~III•• !

Fig. 5.4.-2: De nulpositie.

Door van Wijck [lito 7] en Beljaars [lito 12] zijn metingengedaan aan het dynamische gedrag van de ASEA IRb6 robot.Door Beljaars is een frequentie-analyse uitgevoerd, waarbij

een arm mechanisch geexciteerd wordt en de respons gemeten

65

Page 66: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

wordt mbv. een versnellingsopnemer.

Door van Wijck is de frequentie-analyse verricht door een

spanning, die stapvormig verloopt op de motor te zetten en

waarbij de respons van het tachosignaal gemeten wordt. Met

differentiatie en fouriertransformatie is daarbij een fre­

quentiespectrum berekend.

Het frequentiespectrum van de eerste vrijheidsgraad, bij een

meting door van Wijck in de stand van fig. 5.4.-2 is

weergegeven in fig. 5.4.-3.

88

r-.......:----r---.----r--.----.----.,.--.----.-----.--

\\

.,iI...i~

J

i-1I]~I

-211 11111

FREQ. IN HERZ

Fig. 5.4.-3: Frequentiespectrum van de l' vrijheidsgraad in

de stand van fig. 5.4.-2, volgens v. Wijck [7].

Het blijkt dat bij de diverse frequentiespectra, die beide

hebben bepaald steeds pieken optreden in de buurt van 15 tot

35 Hz. Deze pieken treden voor de verschillende assen en bij

verschillende standen van de robot steeds bij andere

66

Page 67: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

frequenties op. Omdat het frequentiespectrum afhankelijk is

van de robotstand zullen ook de polen, die uit een frequen­

tiespectrum afgeleid worden, afhankelijk zijn van de robot­

stand.

Omdat een vrijheidsgraad beschreven wordt met een vijfde

orde proces, zal het niet mogelijk zijn om met 2 in cascade

geschakelde regelaars alle polen van het systeem, die langs

theoretische weg bepaald zijn, te compenseren. Bovendien

zijn deze polen ook nog eens standafhankelijk zoals in de

vorige alinea beschreven is.

Er is dan ook besloten om in de terugkoppeling een laagdoor­

laatfilter aan te brengen. Op deze wijze kan op eenvoudige

wijze stabiliteit gegarandeerd worden voor hogere frequen­

ties zonder dat een complexe regeling noodzakelijk is. Een

nadeel is dat de mechanische bandbreedte van het robot­

systeem beperkt zal worden.

Een filter dat bij de gebruikte samplefrequentie van 100 Hz

goed voldoet is om de laatste 4 snelheden, die ingelezen

zijn te middelen. Dit middelen kan op een snelle en eenvou­

dige manier gebeuren door 4 snelheden op te tellen en te

delen door 4 (2 bits naar rechts schuiven).

De overdrachtskarakteristiek is berekend en de frequentie­

respons is weergegeven in figuur 5.4.-4. Het inputsignaal

van het filter is u(k), dat gelijk is aan de snelheid,

berekend door het verschil tussen 2 opeenvolgende posities

te bepalen. De gefilterde snelheid is y(k), die uiteindelijk

als terugkoppelsignaal fungeert.

y(k) = 0.25 ( u(k) + u(k-1) + u(k-2) + u(k-3) }

67

5.4.1.

Page 68: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Na z-transformatie volgt:

3 2 2

Y(z) z + z + z + 1 ( z+l) (z +1)

H(z) = = = 5.4.2.

3 3

U (z) 4z 4z

IH(z) I kan berekend worden door Izl=l in te vullen in H(z).

Als z = a + bj dan geldt dat:

b = 1 - a

2

5.4.3.

Er geldt dan met a als parameter dat:

I H (a) I =

lal

2

V (2a + 2) i 5.4.4.

Omdat de samplefrequentie gelijk is aan 100 Hz is de fre­

quentie, waarbij deze overdracht bereikt wordt gelijk aan:

f(a) = 50 k +

50

180

ARCTAN {

v( 1 - a

a

2 i

} Hz

5.4.5.

Voor a > 0 geldt dat k=O en voor a < 0 geldt dat k=l.

De overdrachtskarakteristiek is weergegeven op de volgende

pagina.

68

Page 69: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

---t--.".-~-

II--+--~;;-I-'---- .~.. r

I--+--...J.----'--"..+--l--.-.-~-- ~.

/--.J-....,....-I--+--+--i-3~--+-.l......- .-_.~-.

G.~l--+--+--+--+--+~~t--~r- .--l--+-c-...J-.,-+--l-""'+-J~I--+-: -;------i---,.- -\....

; , . ii, I

l--+--+--1:f-.-l---+-J-P\;+-~Î-----t·· .-_ _.

o ­~ ...Fig. 5.4.-4: Overdracht van laagdoorlaatfilter.

iI :, I

20·10 :

------ -- - - - -_. --

Fig. 5.4.-5: Respons zonder en met laagdoorlaatfilter.

Als bij een instabiele regeling een setpoint ingevoerd

wordt, zal een oscillatie optreden in de tachorespons. De

robotas zal dan trillen rondom de gewenste positie, die

69

Page 70: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

bepaald is met de keuze van het opgegeven setpoint. In

figuur 5.4.-5 is zo'n respons te zien. Als bij dezelfde

regeling het laagdoorlaatfilter in de terugkoppellus aange­

bracht wordt, blijkt de respons aanmerkelijk verbeterd. Als

gevolg van de stictie van de motor en het feit dat de posi­

tie zeer nauwkeurig gemeten wordt, zal het niet mogelijk

zijn om de positie exact te bereiken zodat een minimale

trilling zal blijven bestaan.

5.4.3. Optimalisatie van de regelparameters

Het ontwerp van de digitale regelaar is weergegeven in

figuur 5.4.-6.

e

Fig. 5.4.-6: De gerealiseerde digitale regeling.

De positieregelaar bestaat uit 2 regelaars: een regelaar

wordt gebruikt tijdens het doorlopen van een traject (Conti­

nuous Path). De andere wordt gebruikt als op een positie

moet worden afgeregeld.

Bij de implementatie van de regelaar is besloten om deze 2

regelaars te combineren door een I-faktor in te schakelen

als op een positie afgeregeld moet worden. Het blijkt dat

als deze I-faktor zeer klein is, een gewenste positie toch

binnen redelijke grenzen te bereiken is.

Voor de snelheidsregelaar is gekozen voor een PI-regelaar

'zoals eerder vermeld in paragraaf 5.4.1.

70

Page 71: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Door van Blerck werden het setpoint en de positie door 3

bytes gerepresenteerd terwijl de snelheid en het DAC input

data woord gerepresenteerd worden met 1 byte. Tijdens het

gebruik van deze regeling is gebleken dat het snelheidsset­

point en de waarde van de snelheidsterugkoppeling vaak

vastlopen tegen de maximum waarde, die te representeren is

met 1 byte.

Als gevolg van het verzadigingsverschijnsel dat hierdoor

ontstaat is besloten om de signalen die betrekking hebben

op de snelheid te representeren met 2 byte.

Het output data woord van de regelaar dat na aanpassing

gebruikt wordt als input data woord van de OAC blijft een 8

bits datawoord.

Op deze manier zal in de digitale regelaar geen verzadi­

gingsverschijnseloptreden als gevolg van een te beperkte

digitale representatie van regelsignalen. Omdat de snel­

heidsregelaar rekent met een nauwkeurigheid van 2 byte,

terwijl een 8 bits DAC gebruikt wordt, zal wel een afronding

moeten plaatsvinden.

De vergelijking van de PlO-regelaar is te beschrijven met de

volgende vergelijking. Oe parameters hebben de volgende

betekenis:

- u(nT)

- e(nT)

- Ts

- Ti

- Td

- Kp

Het uitgangssignaal van de regelaar op sample­

tijdstip nT.

Het foutsignaal op tijdstip nT (het inputsignaal

van de regelaar.

Oe sampltijd: in dit geval 10 ms.

Integratietijd.

Differentiatietijd.

Versterkingsfactor.

71

Page 72: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

u(nT) = Kp e(nT) +

Td

Ts

{ e(nT) - e(nT-T) } +

Ts n2: { 0.5 [ e(iT) + e(iT-T) ] }

Ti i=o5.4.6.

In de digitale regelaar worden de regelparameters als volgt

gerepresenteerd:

Kp =(DECPP-B)

PFAK 2 5.4.7.

Td (DECPD-B)

Kd = = DFAK 2

Ts

Ts (DECPI-B)

Ki = = IFAK 2

Ti

5.4.B.

5.4.9.

PFAK, DECPP, DFAK etc. worden daarbij steeds als B bits

datawoorden geimplementeerd.

De procedures, die geschreven zijn om een PID-regelaar te

implementeren zijn uitgebreid beschreven door van Blerck,

zodat hier verder geen aandacht aan geschonken wordt.

Zoals in de inleiding al vermeld is, zal de regelaar staps­

gewijs geoptimaliseerd worden. Om de optimalisatie te reali­

seren is gekozen om gebruik te maken van een performance

criterium.

72

Page 73: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

De volgende 4 sommatiecriteria worden het meest toegepast,

waarbij eek) het foutsignaal is op een bepaald sample­

tijdstip.

TI1 = L eek)

k=O

T 2

I2 = E e (k)

k=O

TI3 = L le(k) I

k=O

TI4 = L k le(k) I

k=O

5.4.10.

5.4.11.

5.4.12.

5.4.13.

Het sommatiecriterium I2 wordt veel gebruikt als voor een

regeling de hoeveelheid "regelenergie" geminimaliseerd moet

worden (bv. brandstof). Dit criterium zal echter (net als

I1) leiden tot een oscillerend gedrag in het uitgangssignaal

van de regelaar [ lito 11]. Bij het optimaliseren van een

robotregeling zijn deze criteria dan ook niet geschikt omdat

oscillerend gedrag zoveel mogelijk vermeden moet worden.

Hoewel I4 in feite een betere keuze zou zijn, is vanwege de

veel eenvoudigere implementatie gekozen voor sommatiecri­

terium I3.

Bij de optimalisering van een regelaar wordt de setpoint­

waarde stapsgewijs veranderd. Dit is zodanig geimplementeerd

dat met een terminal, die verbonden is met de processor­

kaart, een gewenste positieverandering kan worden ingevoerd

73

Page 74: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

en de regeling opgestart kan worden. Er gebeurd dan hetzelf­

de als dat de host-computer 1 keer een 80 ms setpoint zou

geven. Omdat geen gebruik gemaakt wordt van de HP, zal met

een blokgolfgenerator de la ms interrupt gegenereerd moeten

worden.

De stand van de robot, waarbij de optimalisatie zal plaats­

vinden, is de nulpositie die bij de initialisatie van de 3

assen bereikt wordt.

Na iedere uitvoering van de regelroutine wordt de status

weggeschreven in een statusgeheugen (het emulatorgeheugen

van het PMDS-ontwikkelsyteem). Na ongeveer 2.5 seconde is

dit statusgeheugen vol en wordt de regeling gestopt. Het

blijkt dat deze tijd ruimschoots voldoende is om de regelaar

te optimaliseren.

Als het statusgeheugen vol is wordt op de aangesloten termi­

nal een aantal relevante gegevens weergegeven zoals:

- Het opgegeven positiesetpoint.

- De som van de absolute positiefout.

- De positie op het moment dat de overshoot maximaal is.

- De eindpositie.

- De som van de absolute snelheidsfout.

- De maximale snelheid.

- De eindsnelheid.

Om de snelheidsregelaar te optimaliseren wordt in de soft­

ware van de regelaar na de positieregelaar een commando

tussengevoegd waarmee het snelheidssetpoint een bepaalde

waarde krijgt. Het opgegeven positiesetpoint wordt dan gene­

geerd.

Het blijkt dat bij gebruik van het gekozen criterium bij de

optimale regelparameters toch een gedempt oscillerend gedrag

zal optreden. Daardoor is een extra eis toegevoegd nl. dat

74

Page 75: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

de maximale overshoot kleiner moet zijn dan 5%.

Op deze manier is op een snelle wijze de regeling te optima­

liseren, zonder dat het noodzakelijk is om gebruik te maken

van de host-computer om setpoints op te geven.

5.4.4. Metingen bij de optimalisatie van de regeling.

Tijdens het optimaliseren van de regelparameters worden, na

het invoeren van een gewenste waarde de meetresultaten

gemeten mbv. een 2 kanaals x-t schrijver. Hiermee wordt de

spanning over de motor en de uitgangsspanning van de

tachogenerator gemeten en weergegeven als functie van de

tijd. Behalve met een schrijver worden diverse meet- en

regelvariabelen opgeslagen in een statusgeheugen.

Behalve met het gekozen sommatiecriterium kan de kwaliteit

van de regeling beoordeeld worden aan de hand van de respons

van het uitgangssignaal van het geregelde systeem. Als het

ingangssignaal stapvormig veranderd wordt, zal de regeling

ervoor zorgen dat het uitgangssignaal van het systeem de

gewenste waarde bereikt. In figuur 5.4.-7 is een respons van

het uitgangssignaal van het geregelde systeem schematisch

weergegeven. Dit kan zowel de snelheid als de positie van

een as voorstellen. De volgende constanten worden in de

figuur aangegeven:

- Tr De tijdconstante van het geregelde systeem. Dit wordt

gedefinieerd als de tijd waarop 63% van de gewenste

eindwaarde bereikt wordt.

- Mp

- Tp

- Ts

De maximale overshoot.

Het tijdstip waarop de maximale overshoot optreedt (de

piektijd).

De settling time. Deze tijd wordt gedefinieerd als de

tijd, die nodig is om het uitgangssignaal binnen 2%

75

Page 76: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

van de gewenste eindwaarde te laten blijven. Als de

nauwkeurigheid van 2% niet gehaald wordt, wordt een

eindfout aangegeven.

I _

6~'/o

o Tt' lp I,

Fig. 5.4.-7: Respons van een geregeld systeem.

Bij de optimalisatie van de snelheidsregelaar is een 10 ms

setpoint gekozen dat gelijk is aan 100 hex. Dit betekent dat

de gewenste robotas-hoeksnelheid gelijk is aan:

(256 x 360 x 100) / (4096 x 158) = 14.24 graden/sec.

De factor 100 komt erbij vanwege de samplefrequentie van 100

Hz.

In bijlage 5.1. worden de gekozen parameters, de bijbehoren­

de stapresponsies en tijdconstanten van het geregelde sys­

teem weergegeven.

Bij de respons van de tweede vrijheidsgraad is de invloed

van de zwaartekracht duidelijk merkbaar. Als gevolg van de

zwaartekracht zal bij gelijke aansturing de snelheid groter

worden. Omdat een constante snelheid gewenst is, zal de

motor aangestuurd worden met een steeds minder grote

spanning.

76

Page 77: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Een ander probleem dat bij de tweede as optreedt is het feit

dat het dode gebied van de motor afhankelijk is van de

positie. Bij de initialisatiestand zal de as niet bewegen

als er geen spanning over de motor wordt gezet. Het dode

gebied ligt dan ook rondom de spanning van 0 V. In een

andere stand zal wel een bepaalde spanning nodig zijn om de as

op dezelfde plaats te houden, waarbij tevens het dode gebied

mee verschuift. Om het dode gebied op te heffen is in de

software een aanpassing gemaakt, zoals beschreven in

paragraaf 3.G. Deze aanpassing is echter constant zodat bij

de tweede vrijheidsgraad oscillaties optreden als het werke­

lijke dode gebied op een gegeven moment niet meer gelijk is

aan het in de software veronderstelde dode gebied.

Het probleem ontstaat uit het feit dat het askoppel niet

evenredig is met de spanning over de motor. Het askoppel is

wel evenredig met de ankerstroom zodat stroomsturing in

plaats van spanningssturing het gedrag bij lage snelheden

mischien kan verbeteren.

Bij de optimalisatie van de positieregelaar is als inputsig­

naal 1 setpoint gegeven. De waarde van dit setpoint is

gelijk aan 1000 hex, wat een gewenste robotas-hoekver­

draaiing betekent van 2.28 graden. In eerste instantie werd

een P-positieregelaar gebruikt waarbij een I-faktor toege­

voegd werd als op een positie afgeregeld moet worden.

In bijlage 5.2. worden de gekozen parameters, de staprespon­

sies en de parameters van het geregelde systeem weergegeven.

Bij de stapresponsies moet opgemerkt worden, dat in plaats

van de positie de snelheid is weergegeven zodat niet direct

af te leiden is dat het om een stapresponsie gaat.

Om de snelheid te vergroten werd vervolgens een PD-positie­

regelaar gebruikt in plaats van een P-positieregelaar. De

77

Page 78: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

resultaten van de optimalisatie van deze regelaar zijn weer­

gegeven in bijlage 5.3.

Het blijkt dat bij gebruik van de PD-positieregelaar ipv.

een P-positieregelaar de som van de absolute positiefout met

een factor 3 beter wordt. Het lijkt er dan ook op dat de PD­

positieregelaar beter voldoet (Het geregelde systeem wordt

sneller en de eindfout wordt kleiner). De responsie vertoont

echter een meer oscillerend karakter dan bij gebruik van een

P-positieregelaar.

Als vanuit de HP een serie setpoints naar de eerste vrij­

heidsgraad worden verstuurd, blijkt dat bij gebruik van de

PD-positieregelaar met een extra I-faktor tijdens het afre­

gelen op een positie de respons een oscillerend karakter zal

vertonen. In figuur 5.4.-8 is de tacho-respons weergegeven,

waarbij de eerste robotas gedurende 1 seconde moet bewegen

met een snelheid van 30 graden/sec.

I

.

Fig. 5.4.-8: Respons bij

gebruik van een

PD-positieregelaar.

Fig. 5.4.-9: Respons bij

gebruik van een

P-positieregelaar

(Kp = 0.141).

Ook als bij de positieregelaar een P-regeling lnet Kp=0.141

gebruikt wordt, is er een oscillerende snelheidsrespons (zie

fig. 5.4.-9).

78

Page 79: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Als voor de P-regeling een P-waarde van 15 hex (Kp=0.082)

gekozen wordt, is de respons beter. De afregeling op de

eindpositie is daarbij echter duidelijk langzamer (fig.

5.4.-10) .

Fig. 5.4.-10: Respons bij gebruik van een P-positieregelaar.

(Kp = 0.082)

uit de metingen kan het volgende geconcludeerd worden:

- Tijdens het volgen van een traject, is het beter om een P­

regeling als positieregelaar te gebruiken. De P-waarden

waarbij de regeling optimaal wordt, zullen iets kleiner

zijn dan de waarden, die gegeven worden in bijlage 5.2.

De optimalisatiemethode van deze positieregelaar zal nader

besproken worden bij de aanbevelingen.

- Als op een positie afgeregeld moet worden, kan het beste

een PlO-regelaar als positieregelaar gebruikt worden.

Hiervoor kunnen de PlO parameters genomen worden, die in

bijlage 5.3. gegeven zijn met Ki steeds gelijk aan 0.004.

79

Page 80: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Hoofdstuk 6. CONCLUSIE EN AANBEVELINGEN

6.1. Conclusie

De hardware van de robotbesturing is gerealiseerd, waarbij

voor ieder as een digitale regelaar geimplementeerd is.

Bij de realisering van de besturing moeten enkele

kanttekeningen gemaakt worden:

- De hardware en de regelaar van de eerste as is getest

onder besturing van de HP. Er is niet toegekomen aan het

testen van de tweede en de derde as onder besturing van de

HP, omdat na het gebruik van de noodstop de op dat moment

afgeschakelde versterker steeds kapot ging. De

verbeteringen om dit in de toekomst te voorkomen zijn wel

gerealiseerd, maar er is te weinig tijd overgebleven om

alsnog de laatste 2 assen te testen.

- Bij gebruik van de (in de eproms) geimplementeerde

regelparameters (PD-positieregeling met extra I-term als

op een positie moet worden afgeregeld) is de regeling

tijdens het volgen van een traject vrij instabiel. Om dit

te verbeteren wordt een digitale regelaar voorgesteld,

waarbij tijdens het volgen van een traject een P­

positieregelaar gebruikt wordt en bij het afregelen op een

positie een PID-positieregelaar (fig. 6.1.-1).

as + e. rl "PIn h"".

Fig. 6.1.-1: Verbeterde digitale regeling.

80

e

Page 81: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Om dit te realiseren moet de software iets veranderd worden

waarbij ook de parameters van de P-positieregelaar nog geop­

timaliseerd moeten worden.

6.2. Aanbevelingen

Bij de huidige opzet van de besturing zijn nog enkele verbe­

teringen aan te brengen.

Hardware

- Om de I/O interfaces van de HP en de processorkaarten te

beveiligen kunnen opto-couplers aangebracht worden.

- De kloksnelheid kan vergroot worden met een externe klok.

- Als bij de huidige software een fout optreedt zal de motor

van de as, waar de fout geconstateerd wordt stopgezet

worden. Als gevolg van het aflopen van de watchdogs zal de

beveiliging in werking treden en wordt de HP geinterrum­

peerd. Het is ook mogelijk om met een extra lijn vanuit

iedere processorkaart aan te geven als een fout geconsta­

teerd wordt.

- De processorkaarten moeten nu opgestart worden door het

geven van een handmatige reset. Dit zou ook mogelijk

moeten zijn vanuit de HP. Dit kan door een outputlijn van

de HP te verbinden met de reset ingang van ieder proces­

sorkaart. Deze lijnen kunnen ook gebruikt worden om na

detectie van een fout bij een bepaalde as, alle asregelin­

gen opnieuw op te starten.

- De DAC-schakeling kan beter beveiligd worden. De meest

storende fout komt voor als alle DAC data-lijnen hoog zijn

terwijl de DAC geactiveerd wordt als dat niet gewenst is.

De robotas zal dan met maximale snelheid gaan bewegen. Om

dit te voorkomen wordt de output control afgeschakeld als

alle datalijnen hoog zijn (fig. 6.2.-1). Het nadeel is wel

81

Page 82: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

dat de aanpassing van de digitale regelaar hier rekening

mee moet houden.

EWMC

DAC- Jat...L.ATC/i l>AC

lP MS. klok

Fig. 6.2.-1: Verbetering van de OAe-schakeling.

optimalisatie van de regelaar

- De gebruikte methode om de regelparameters te

optimaliseren werkt niet voor de positieregelaar, die

gebruikt wordt als een traject gevolgd wordt. De oorzaak

hiervan is, dat met het invoeren van 1 setpoint de

gewenste responsie niet beschouwd kan worden als een

traject. Het is dan ook beter om deze positieregelaar te

optimaliseren door setpoints aan te bieden, waarbij een

constante robotas-hoeksnelheid gewenst is.

Bij het volgen van een traject is het niet direct van

belang dat de gewenste posities gehaald worden: er mag

best een kleine vertraging optreden tussen de gewenste en

de werkelijk bereikte posities. Het is belangrijker dat de

werkelijke snelheid overeenkomt met de gewenste snelheid.

Daarom zal bij de optimalisatie van de positieregelaar bij

het volgen van een traject gekeken moeten worden naar de

snelheidsfout en niet naar de positiefout.

- Bij het gebruik van het regelcriterium waarbij de absolute

fout opgeteld wordt, blijken de optimale parameters zoda­

nig te zijn dat toch een oscillerend gedrag in de stapres-

82

Page 83: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

ponsie optreedt. Voor een robotregeling is dit niet ge­

wenst.

Door het criterium aan te passen kan geprobeerd worden om

het oscillerende gedrag te vermijden. Een suggestie is om

de volgende klasse van criteria te definieren:

L = MIN { Lp k

p lip

I e (k) I } 6.2.1.

Voor p=l is dit criterium gelijk aan het gebruikte regel­

criterium. Bij de H-oneindig methode [lito 13] wordt de

limiet voor p naar oneindig genomen. In feite wordt dan de

maximum waarde van le(k) I geminimaliseerd. Grote pieken in

de respons worden door dit criterium dan ook niet geaccep­

teerd, hetgeen het oscillerende gedrag mogelijk tegengaat.

Als deze methode gebruikt wordt, moet door het reken­

intensieve karakter van het criterium wel gebruik gemaakt

worden van een hogere pr~grammeertaal om de software voor

dit criterium te implementeren.

6.3. Slotopmerkingen

Iedereen, die het afgelopen jaar heeft geholpen aan het

welslagen van mijn afstudeerwerk wil ik hartelijk danken,

met name mijn begeleiders Carel v.d. Brekel en Ton v.d.

Graft. Verder wil ik Frans Galle (Rekencentrum) en Piet

v.d. Schoot danken voor de hulp bij het installeren van

het PMDS-systeem en Ad Damen voor de nadere uitleg van de

H-oneindig methode.

83

Page 84: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

7. LITERATUUR

1. Blerck, F.J.J.: De bouw van een robotbesturing.

Afstudeerverslag. Vakgroep meet- en regeltechniek.

T.U. Eindhoven, december 1985.

2. Coenen, F.M.T.: ontwerp van een universeel programmeer­

systeem voor industriele robots.

Afstudeerverslag. Vakgroep meet- en regeltechniek.

T.U. Eindhoven, december 1986.

3. Reijers, L.N. en H.J.L.M. de Haas: Flexibele produktie

automatisering, Deel 3:industriele robots, l' druk

Technische Uitgeverij De Vey Mestdagh bv., Middelburg,

1986. [KGB 86 REI bsw]

4. Denis, F.: Robots en industriele automatisering.

Technology transfer express, nummer 37, september 1986.

Jaargang 4. Brussel, 1986

5. Albus J.S. e.a.: Hierarchical control for Robots in an

automated factory.

13' -International Symposium on Industrial Robots and

Robots 7, Conference Proceedings Volume 2, pag. 13-29,

April 17-21 1983, Chicago Ilinois.

6. Piecha J.: Description and implementation of a single

board computer for industrial control. EUT Report 81-E­

120.

T.H. Eindhoven, vakgroep EB, 1983.

7. van Wijck M.P.C.M.: Industrie-robot gemodelleerd als

starre manipulator met flexibele aandrijvingen.

Afstudeerverslag. Vakgroep meet- en regeltechniek.

T.U. Eindhoven, Oktober 1986.

84

Page 85: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

8. Verhoef, P.L.M.: Verkenning ter realisatie van snelle

gecoordineerde motorregelaars te implementeren op een

multiprocessor configuratie.

Afstudeerverslag. Vakgroep meet- en regeltechniek.

T.U. Eindhoven, augustus 1983.

9. Werter, M.J.: Het dynamisch gedrag van een servomotor

met tachometer van een robot.

stageverslag. Vakgroep meet- en regeltechniek.

T.H. Eindhoven, Februari 1982.

10. Brummans, G.: Een servoversterker met pulsbreedte

modulatie.

Stageverslag. Vakgroep meet- en regeltechniek.

T.H. Eindhoven, Juni 1986.

11. Isermann, R.: Digital Control Systems.

Springer Verlag Berlijn, 1981.

[DPU 81 ISE]

12.Beljaars, J.W.F.M.: Het dynamisch gedrag van een

industrierobot met 2 graden van vrijheid.

Afstudeerverslag. Vakgroep Meet- en Regeltechniek.

T.H. Eindhoven, augustus 1984.

13.Zames, G.Z. en B.A. Francis:

Feedback, minimax sensitivity and optimal robustness.

IEEE Transactions on Automatic Control.

Vol. AC-28, No. 5, mei 1983, pag. 585-601.

14.Galle, F.: Het UNIX systeem.

R.C. Informatie AG-8?

Uitgave Rekencentrum T.U. Eindhoven.

85

Page 86: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

lJj1-'.w.fo-'III

'lij VI!l(1)

~.

rVI rVl 1V

5::r:

Eind-txj1-3

Sc.h"keJCUA.... s RB~ RB3 AB5 {(/rl Raf} R8~lJjtxj<:txjHtt

RA RB' HG)HZG)

(» Cl)0\ Cl

H

NooJs~r ~Clc::H1-3

~~

V2. V" V60-((AB 0

txj

:s:0

In ~c.hCo\kelllQ.t S 0," 1-3

RB0

NOods~or en ...0 bo ~ ~txjZ

Page 87: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 2.1. VERBINDINGEN HP-GPIO - HOOFDINTERFACE

EDGE CONNECTOR -> SO-ADERIGE KABEL -> EUROCARD-CONNECTORHP NO (pootje) FUNCTIE AANSLUITING

GNDD01SD014D013D012D011D010D009DOOSD007D006DOOSD004D003D002DOOlDOOOdiverse

1 AARDE2 NC3 NC4 Reset Flip Flop van (timing)5 SO ms interrupt EWMC 36 SO ms interrupt EWMC 27 Data Valid (handshake)S SO ms interrupt EWMC 19 10 ms interrupt-lijn

10 datalijn D07 van HP11 datalijn D06 van HP12 datalijn DOS van HP13 datalijn D04 van HP14 datalijn D03 van HP15 datalijn D02 van HP16 datalijn DOl van HP17 datalijn DOO van HPlS tim. 25: niet verbonden

<-

A01A02A03A04AOSA06A07AOSA09AlOAllA12A13A14AlSA16A17

GNDDI1SDI14DI13DI12DI11DI10DI09DIOSDI07DI06DIOSDI04DI03DI02DI01DIOOGND-SAFETYPFLGPSTSEIRSTIOSTIlGNDNC

26272S2930313233343536373S3940414243444546474S4950

NCNCINIT-OK EWMC 3DATA-lijn van EWMC 3Checksum OK EWMC 3SO ms ack. & Data Accepted EWMC 310 ms acknowledge EWMC 3INIT-OK EWMC 2DATA-lijn van EWMC 2Checksum OK EWMC 2SO ms ack. & Data Accepted EWMC 210 ms acknowledge EWMC 2INIT-OK EWMC 1DATA-lijn van EWMC 1Checksum OK EWMC 1SO ms ack. & Data Accepted EWMC 110 ms acknowledge EWMC 1NCNCNCQ-uitgang van Flip-Flop: INT ingangReset-lijn van Watch-Dog-schakeling10 ms interruptlijn (externe klok)NCNC

S7

COlC02C03C04COSC06C07COSC09C10C11C12C13C14C1SC16C17C1SC19C20

HP C21C22C23C24C2S

Page 88: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 2.2. VERBINDINGEN HOOFDINTERFACE - INTERFACE 2 EN 3

HOOFDINTERFACE --> 26-aderige flat cable --> INTERFACE 2/3no: functie: no:

123456789

1011121314151617181920

AARDE80 ms interruptlijn naar EWMC 2/3DV-handshake van HP10 ms interruptlijnDatalijn D07 van HPDatalijn D06 van HPDatalijn DOS van HPDatalijn D04 van HPDatalijn D03 van HPDatalijn D02 van HPDatalijn DOl van HPDatalijn DOO van HPINIT-OK EWMC 2/3Datalijn naar HP van EWMC 2/3Checksum OK (NAAR HP)80 ms int. ack & Data Valid van EWMC 2/310 ms interrupt acknowledge van EWMC 2/3Watchdog reset van EWMC 2/35 Volt lijn5 Volt lijn

88

123456789

1011121314151617181920

Page 89: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 2.3. VERBINDING EWMC PROCESSORKAART - INTERFACES

8255- J- FUNCTIE: Interface no: HP/EUROC:

0/B-70/B-60/B-50/B-40/B-30/B-20/B-1O/B-O0/C-70/C-60/C-50/C-40/C-30/C-20/C-1O/C-O0/A-70/A-60/A-50/A-40/A-30/A-20/A-1O/A-O1/B-71/B-61/B-51/B-41/B-31/B-21/B-1l/B-O1/C-71/C-61/C-51/C-41/C-31/C-21/C-1l/C-O1/A-71/A-61/A-51/A-41/A-31/A-21/A-1l/A-Oo en 1

1/2 Datalijn (bit 7) positieopnemer1/4 Datalijn (bit 6) positieopnemer1/6 Datalijn (bit 5) positieopnemer1/8 Datalijn (bit 4) positieopnemer1/10 Datalijn (bit 3) positieopnemer1/12 Datalijn (bit 2) positieopnemer1/14 Datalijn (bit 1) positieopnemer1/16 Datalijn (bit 0) positieopnemer1/18 NC1/20 NC1/22 NC1/24 NC1/26 80 ms interruptlijn EWMC 1/2/31/28 Data Valid handshake1/30 Referentieschakelaar1/32 10 ms interruptlijn1/34 Latch lijn naar positieopnemer1/36 Inhibit lijn naar RDC1/38 DAC Latch Enable tijdens GOREF1/40 Load lijn naar positieopnemer1/42 Enable decoder positieopnemer1/44 Decoder Data positieopnemer1/46 Decoder Data positieopnemer1/48 Decoder Data positieopnemer2/2 Datalijn DO-7 van HP2/4 Datalijn DO-6 van HP2/6 Datalijn DO-5 van HP2/8 Datalijn DO-4 van HP2/10 Datalijn DO-3 van HP2/12 Datalijn DO-2 van HP2/14 Datalijn DO-1 van HP2/16 Datalijn DO-O van HP2/18 As 1/2/3 op beginpositie2/20 DATA-lijn van EWMC 1/2/32/22 Checksum OK van EWMC 1/2/32/24 80 ms ack. & Data accepted2/26 10 ms acknowledge as 1/2/32/28 watchdog reset2/30 Enable Output Control DAC-latch2/32 Enable Output Control DAC-latch2/34 DAC-data lijn bit 72/36 DAC-data lijn bit 62/38 DAC-data lijn bit 52/40 DAC-data lijn bit 42/42 DAC-data lijn bit 32/44 DAC-data lijn bit 22/46 DAC-data lijn bit 12/48 DAC-data lijn bit 01,2/oneven Aarde

89

1 A182 A173 A164 A155 A146 A137 A128 All9

10111213 HP8/ 6/ 514 HP715 C2316 HP917 A818 A719 A620 A521 A422 A323 A224 Al

1 HP102 HP113 HP124 HP135 HP146 HP157 HP168 HP179 HP38/33/28

10 HP39/34/2911 HP40/35/3012 HP41/36/3113 HP42/37/321415 A3216 A3117 A2818 A2719 A2620 A2521 A2422 A2323 A2224 A21

HP1 en C2

Page 90: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

HOOFDINTERFACE --> EWMC 2/3HOOFDINTERFACE --> EWMC 1

no. flat EWMCcable: 8255-pin no: FUNCTIE:

Bijlage 2.4. VERBINDING NAAR DAC EN VAN POSITIEOPNEMER

DAC- / POSITIEOPNEEMKAART--> INTERFACE -->--> 40 aderige flat cable -->

O/A-O0/A-10/A-20/A-30/A-40/A-50/A-60/A-7

O/B-O0/B-10/B-20/B-30/B-40/B-50/B-60/B-7

0/C-1

l/A-O1/A-11/A-21/A-31/A-41/A-51/A-61/A-7

l/C-O1/C-1

22

12345678

1011121314151617

2324252627282930

2120

9/18

positieopnemerpositieopnemerpositieopnemerpositieopnemerpositieopnemerpositieopnemerpositieopnemerpositieopnemer

Output Control DAC-latchoutput Control DAC-latchlijn

Decoder data positieopnemerDecoder data positieopnemerDecoder data positieopnemerEnable Decoder positieopnemerLoad lijn naar positieopnemerDAC Latch Enable tijdens GOREFInhibit lijn naar positieopnemeLatch lijn naar positieopnemerNCNCDatalijn (bit 0)Datalijn (bit 1)Datalijn (bit 2)Datalijn (bit 3)Datalijn (bit 4)Datalijn (bit 5)Datalijn (bit 6)Datalijn (bit 7)NCNCDAC-datalijn bit 0DAC-datalijn bit 1DAC-datalijn bit 2DAC-datalijn bit 3DAC-datalijn bit 4DAC-datalijn bit 5DAC-datalijn bit 6DAC-datalijn bit 7NeNCEnableEnable5 VoltAardeRef. signaal Res. & RDC (2400 Hz sinus)Referentiesignaal Resolver & RDC (aarde)Referentieschakelaar+ 15 Volt voedingslijn- 15 Volt voedingslijnDAC-outputlijn (naar ingang versterker en inverter)

A- 1A- 2A- 3A- 4A- 5A- 6A- 7A- 8A- 9A-10A-11A-12A-13A-14A-15A-16A-17A-18A-19A-20A-21A-22A-23A-24A-25A-26A-27A-28A-29A-30A-31A-32B/C-1B/C-2C-20C-21C-23C-25C-27C-30

90

Page 91: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 2.5. VERBINDING VAN ROBOTCONNECTOR - POSITIEOPNEMER

ROBOTpin:

-> 26 aderige flat cable -> POSITIEOPNEMER

1 Links boven: Zelf aangebrachte ref.schakelaar as 1(na inverter naar pin no. C23)

2 Rechts boven: Zelf aangebrachte referentieschakelaareerste vrijheidsgraad (Aarde)

13 Door ASEA aangebrachte Referentieschakelaar(Na inverter naar pin no. C23)

14 Door ASEA aangebrachte Referentieschakelaar (aarde)15 Tachogenerator (signaal)16 Tachogenerator (aarde)

RDe:

19 Rotorspoel Resolver20 Rotorspoel Resolver22 Statorspoel 1 Resolver23 Statorspoel 1 Resolver24 statorspoel 2 Resolver25 statorspoel 2 Resolver26 Rechts onder (vooraanzicht robotconnector)

91

R-LR-HS4SiS3S2

Page 92: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 3.1. UNIX SHELL SCRIPTS

List de huidige directory met informatie over eige­naar, beveiliging en grootte van de file.List de inhoud van de file met de naam die achtercat staat.Laat de inhoud van een file met de naam die erach­ter staat gepagineerd zien. Na iedere pagina kanmet de spatie naar de volgende pagina gegaan wor­den. Evt. andere kommando's in more zijn te ziendoor de h toets in te drukken.Change directory.- Niets erachter: Naar de directory van de

gebruiker.- cd / : Naar de root (evt. ook meer erachter) .- cd .. /file : Een directory naar boven en ver-

volgens onder deze directory defile met de naam file.

Print working directorycp <filel> <file2>. Kopieer filel naar file2.mv <fl> <f2>. Move fl to f2 (verander de naam ofplaats een file onder een andere directory).verwijder de file met de naam achter rm.Bij een code-file of binaire file kan de codeoctaal gedisplayd worden. Als dit hexadecimaal moetgebeuren moet er ,-x' achter.Print de inhoud van de file die erachter staat ofals er niets achter staat datgene wat op hetbeeldscherm verschijnt.Met number kan een gedeelte van een file gedisplaydworden. Gebruik number <filenaam> +<eerste regel­nummer> #<laatste regelnummer>. Om tevens een ge­deelte van een file uit te printen een pipe naarlpr gebruiken: number <filenaam> +no #no I lpr.Make directory met de naam die erachter staat enonder de huidige dir.Remove directory.- rmdir

- rm- od

- mkdir

- lpr

- number

- cd

- pwd- cp- mv

Enkele veel gebruikte commando's (shell scripts) in UNIXzijn:- 11

- more

- cat

92

Page 93: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 3.2. COMMANDO'S IN DE EDITOR e

Save de file onder de huidige directory.Verlaat de editor.Help mogelijkheid (evt met commandoerachter) .Geef het regelnummer van de huidigeregel.Verwijder regel rl t/m r2. Alleen d:huidige regel.Verplaats regel(s) rl [t/m r2] achterhuidige regel [r3].Kopieer regel(s) rl [t/m r2] achterhuidige regel [r3]Vervang naaml in de huidige regel doornaam2. Eventueel kan men voor de s (een)regelnummer(s) zetten. De substitutiewordt in een regel slechts 1 keer uitge­voerd. Met een g achter de laatste slashwordt bij een match doorgezocht en evt.gesubstitueerd.Verbindt de huidige en de volgende regel.Regular expression. Zoek vooruit naar eenregel waarin het woord naam voorkomt enals een match gevonden is, maak dan hetregelnummer gelijk aan het regelnummerwaar de match gevonden is.Terug zoeken naar 'naam'.- ?naam?

- j- /naam/

- n

- s/naaml/naam2/

- [rl [ , r2 ] ] d

- rl[,r2] m [r3]

- rl[,r2] t [r3]

In de edit-command mode kunnen de volgende commando'sgegeven worden:- w- q- h[commando]

Een regelnummer bij een command kan een getal z1Jn, leeg(huidige regel), een $ voor de laatste regel of relatiefbv. :- .+2

- .-2- n+m- $-n

2-de regel vanaf huidige regel (. betekent huidigeregel) .Twee regels terug.m regels verder dan n.n regels terug van de laatste regel.

Een regular expression is een expressie tussen 2 slashes of2 vraagtekens. Een regular expression kan bevatten:- <tekst> Gewoon zoeken naar een match op tekst.- A<tekst> Zoeken naar tekst aan het begin van de regel- $ Komt overeen met het einde van een regel.- [ab12] Zoeken naar het karakter a of b of 1 of 2.- * De voorgaande regular expressie 0 of meer

keer herhaald.- \. Een backslash ontdoet het volgende karakter

van een speciale betekenis, dus hier zoekennaar een echte punt.

- /A$/ Een lege regel.- /[0-9][0-9]*/ Zoeken naar een getal.

93

Page 94: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 3.3. COMMANDO'S IN DE DEBUGGER deb8085

- MAP [beginadres] [eindadres]

- LOAD [naam programma]

- RUN [startadres]

- HALT

- STEP [adres]

- CON [TRO of TR1] A= [adres]

- TRA [-254 0]

- MEM [beginadres] [eindadres]

- MEM [adres] = hex-getal

- REG- QUIT

94

temt/lp' 'ROM'/'RAM'Verdeling van geheugen naarprototype (p) of emulator(em). Tevens aangeven of ge­heugengedeelte ROM of RAM is.Laadt het geassembleerdeprogramma in geheugen.Het uitvoeren van het pro­gramma dat in het geheugen isopgeslagen.stop het programma, en laatde inhoud van de registerszien.1 Instructie uitvoeren (evt.het adres erbij).Breakpoint zetten op een be­paald adres. Als gestoptwordt, worden de registersgedisplayd. Met alleen CONworden de ingestelde waardenzichtbaar. Ipv. A (adres) ookD (data) mogelijk.Laat de inhoud van het tracegeheugen zien. In het tracegeheugen worden de laatste254 machinecycli van deprocessor opgeslagen.Lees het geheugen uit. Met"di" wordt tevens eendisassemle gemaakt.Verander de inhoud van eenadres.Display inhoud van registers.Verlaat de debugger: terugnaar UNIX

Page 95: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 3.4. AANSLUITING VAN PMDS NAAR THE-NET EN DECPRINTER

AANSLUITING PRINTER

DOMESTIC COMPUTER PMDSLP connector (female) :

--> RS-232 --> DEC-printer IIILinkse connector aan achterzijde

1 Protective Ground 12 Transmit Data (TXD) 37 Signal Ground 7

25 Busy Detect -->--> INVERTER --> 19 Secondary Request to Send (SRTS)

Als de schakelaar aan de voorzijde van de printer naar linksgeschakeld is, dan is de printer verbonden met de PMDS. Alsde schakelaar naar rechts is geschakeld, dan is de printerverbonden met het LSI-11-systeem.

INSTELLING PRINTER

Door de toets SET-UP in te houden kan de instelling van deprinter veranderd worden. Als de printer aangesloten wordtop het PMDS-syteem moet de baudrate gelijk zijn aan 9600baud, terwijl SECondary CHANnel in de Restraint mode moetstaan (1). Als de printer aangesloten is op het LSI-11systeem moet een baudrate gebruikt worden van 1200 baud,terwijl de Restraint mode op Speed Control moet staan (0).

SCHEMA INVERTER

IN 19

( v~n CANCJ.IcOl"lnt:ctor I

95

Page 96: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

AANSLUITING TERMINAL OF THE-NET

TERM COMP 0 (PMDS) --> RS-232 --> Terminal of THE-netConnector TO of Tl no:

1234568

207

Protective GroundTransmit Data (TXD)Receive Data (RXD)Request to Send (RTS)Clear to Send (CTS)Data Set Ready (DSR)Receive Line Signal Detector (RLSD)Data Terminal Ready (DTR)Signal Ground

---

132

Moeten aanPMDS-zijdeverbondenworden !

7

INSTELLING TERMINALS

De file /etc/ttys:1 c console (instelling van standaard aangesloten terminal)o r ttyOO (terminal aangesloten bij connector TO)o s tty01 (terminal of THE-net: aangesloten bij Tl)

- c/r/s verwijst naar terminal in de file /etc/gettytable- 1 betekent, dat een terminal met gebruiker aangesloten is.- 0 betekent, dat de betreffende poort een I/O lijn is.In de file /etc/gettytable stellen de laatste 2 cijfers debaudrate voor (12=4800 baud, 13=9600 baud). Deze files zijndoor de systeembeheerder (root) te wijzigen.Met het commando /usr/support/kermit clb /dev/tty01 baudrateis het mogelijk om een verbinding te krijgen met het THE­net. Meer uitleg over kermit in de directory/usr/marius/kermit.

96

Page 97: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 4.1. GEHEUGEN EN ILO ADRESSEN VAN DE EWMC

OOOO-OFFF: EPROM met monitorprogramma1000-lFFF: EPROM, die programma voor asregelaar bevat.

2400-33FF: Statusgeheugen in emulatorgeheugen van PMDS.

2000-23FF en3400-3FFF: RAM EWMC-processorkaart:

- 3EOO-3E68: variabelen.3EBO-3EDF: FIFO-setpointbuffer.3EE2-3EFF: 3 bytes-variabelen.

-3FDF: stack.3FEO-3FFF: interrupt jump tabIe.

- 3FEC: sprongadres 10 ms int.- 3FF4: sprongadres 80 ms int.

4000 en 4010: USART's (seriele poorten) :- 40xO: data-adres.- 40x1: status- en control-adres.

4020 en 4030: 8255-Parallelle ILO interfaces:- 40xO: poort A.- 40x1: poort B.- 40x2: poort C.- 40x3: besturingsregister.

4040: 8259 ProgrammabIe Interrupt controller:- 4040: Dataregister.- 4041: Interrupt-mask register.

4050:

4060:

8253 ProgrammabIe Interval Timer/Counter:- 4050: timer/counter O.- 4051: timer/counter 1.- 4052: timer/counter 2.- 4053: moderegister.

8279 Keyboard/Display controller.

97

Page 98: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 4.2. PROCEDURE-NAMEN MET VERKLARING

Labelnaam,(beginadresprocedure): Section: Functie:

BEGIN INIT

GOREF REFlSTART HFDHPIN SB5ERROR INIT

Aangeroepen vanuitGETDE SB8POFVR SB2

GETPOS SBlCHKPOS SBlBVSETP SB2PREGEL SB7BVMOM SB2BEPENT SB2VREGEL SB3ADD3BA SB8OVERSH SB8ADDSVF SB8MAXVEL SB8STOSTR SB8

Aangeroepen vanuitPOLPNT SB8PUTDE SB8

Begin van programma na reset &Initialisatie van EWMC processorkaart.Ga naar de referentiepositie.10 ms Interruptroutine.80 ms Interruptroutine.Errorprocedure.

10 ms interruptroutine:10 ms setpoint uit buffer halen.Keuze of positieregelaar een trajectvolgt of op positie moet afregelen.Lees positie en sla deze op in NPOS.Controleer op geoorloofde positie.Bepaal snelheidssetpoint.Positieregelaar.Bepaal gefilterde snelheid.Bepaal snelheidsfout.Snelheidsregelaar (bepaalt DAC-input).Absolute positiefout wordt aangepast.Pas max. positieovershoot aan indien nodig.Absolute snelheidsfout aanpassen.Max. snelheidsovershoot aanpassen.Sla regelparameters op in statusgeheugen.

80 ms interruptroutine:Interpoleer het HP-80 ms setpoint.Sla geinterpoleerde 10 ms setpoint op.

INTSPI SB8 Regeling interactief opstàrten metsetpoint.

GETRES REFlDELlSO REFlTEXT SBlDSPPOS SBlDSPSTA SBlDSP3BY SBlDSP2BY SBlBYTECO SBlCASCII SBlINTMAA SBlBTRAJ SBl

HMIND2 SBlSHIFT SB2

Bepaal positie van motor.150 ms vertraging.Textstring op beeldscherm plaatsen.Positie weergeven op beeldscherm.Status weergeven op beeldscherm.3-Bytes variabele weergeven.2-Bytes variabele weergeven.I-Byte variabele weergeven.4 l.s. bits omzetten naar ascii code.Interactieve motor aansturing (demo).DCB = 3 bytes variabele in adres DE

- 3 bytes variabele in adres HL.HL = HL - DE.A = BC DIV 8.

98

Page 99: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

HLDIV2HLDIV4VRSUBSHDESHLDEADD8ADD16INVDE2ADD24AHLP24ADDHBYHEXGETSTOIBYST02BYST03BYABSDCBADDBDINRHLD

SB2SB2SB4SB4SB4SB4SB4SB4SB6SB6SB8SB8SB8SB8SB8SB8SB8SB8

HL = HL DIV 2.HL = HL DIV 4.HL = DE * B.CSchuif reg. paar DE 1 bit naar rechts.Schuif reg. paar DE 1 bit naar links.A = A + B in 2-complement.HL = HL + DE.DE = -DE (2-complement)Optellen van 2 24-bits variabelen.Zelfde, maar zonder check op overflow.2 Halve bytes (nibbles) samenvoegen.Controle of ascii-waarde in (O-9,A-F).Sla een byte statusinformatie op.Sla 2 bytes op in statusgeheugen.Sla 3 bytes op in statusgeheugen.Bepaal absolute waarde in reg. DCB.Hoog B met 1 op als decimaal getal.Hoog HL met 1 op als decimaal getal.

99

Page 100: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 4.3. VARIABELEN MET BETEKENIS

NAAM: BETEKENIS:

J1(2-16)J1(18-32)J2(2-16)J1(34-48)J2(34-48)J2(18-32)

LijnLijnLijnLijnLijnLijn

4021,4022,4031,4020,4030,4032,

Data van 8255-0 poort B: adresData van 8255-0 poort C: adresData van 8255-1 poort B: adresData van 8255-0 poort A: adresData van 8255-1 poort A: adresData van 8255-1 poort C: adres80 ms HP-verplaatsingssetpointSPTHP DIV 8 (DSPOL1 = (SPTHP DIV 8) + 1)SPTHP MOD 8Aantal vrije plaatsen in setpointbuffer.Adres waar PUTDE geinterpoleerd setpoint inplaatst.Aantal setpoints in setpoint-buffer.Adres waar GETDE setpoint leest.Geinterpoleerd setpoint uitgebreid tot 3 bytes.Positiesetpoint van digitale regelaar.Oude positiesetpoint.Grenswaarde pos. regelaar (traject of afregelen)=0: traject volgen, =1: afregelen op positie.Positie (3 bytes)Oude positie.Ondergrens geoorloofde positieinterval (bit 13-20).Bovengrens geoorloofde positieinterval (bit 13-20).positiefout op tijdstip nT (=SPPNTR - NPOS) .Oude positiefout.PENT * Kp(PENT - PENTMT) * Kd{ (PENT + PENTMT) * Ki } DIV 2PIRES(nT) = DPIRES(nT) + PIRES(nT-T)Snelheidssetpoint (= PPRES + PDRES + PIRES).Snelheid (= NPOS - ~pOS) .Laatste 4 snelheden opgeteld.De gefilterde snelheidsterugkoppeling (DPOS4 DIV 4)2 bytes snelheidsfout (VSETP2 - VMOM4) .Snelheidsfout (1 byte: ENT2 DIV 32).Oude Snelheidsfout.ENT * Kp(ENT - ENTMT) * Kd{ (ENT + ENTMT) * Ki } DIV 2VIRES(nT) = VIRES(nT-T) + DVIRES(nT)Uitgang van digitale regelaar (VPRES+VDRES+VIRES)Input van de DAC (VSRES + 80 hex na aanpassing).Som van absolute positiefout PENT.Maximale waarde van positie NPOS.Maximale waarde van snelheid DPOS.Som van absolute snelheidsfout ENT.Aantal 10 ros samples verstreken (decimale notatie)Samplenummer met maximale positiewaarde.Samplenummer met maximale snelheidswaarde.Adres waar status opgeslagen wordt (2400 - 33FF)

IN1IN2IN3OUT1OUT2OUT3SPTHPDSPOLNOlNSPACENEXTWANITEMSNEXTRATUSSPSPPNTRSPTMTPPGRPPIDNPOSOPOSOGPOSBGPOSPENTPENTMTPPRESPDRESDPIRESPIRESVSETP2DPOSDPOS4VMOM4ENT2ENTENTMTVPRESVDRESDVIRESVIRESVSRESDACBUSPFOUTMAXPOSVMAXSVFOUTNORNOOVSMNOVMAXSTASTA

100

Page 101: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 5.1. OPTIMALISATIE VAN DE PI-SNELHEIDSREGELAAR

GEKOZENAs 1:

As 2+3:

REGELPARAMETERSPFAKV = Ba, DECPP = 2 dwz. : Kp = 2.75IFAKV = 28, DECPI = 2 dwz. : Ki = 0.625PFAKV = 70, DECPP = 2 dwz.: Kp = 1. 75IFAKV = 20, DECPI = 2 dwz. : Ki = 0.50

MEETRESULTATEN VAN STAPRESPONSIES MET SNELHEIDSSETPOINT

+ ---l-

• ::>;;;

. -E~-t- ..~- --- ~ -----i

t

PARAMETERS VAN HET GEREGELDE SYSTEEM

AS no.: 1 2 3----------------------------------------------------------Tijdconstante van het geregelde systeem in msOvershoot in %Eindfout in %

lal

60 70 703.510 20 10

Page 102: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

BIJLAGE 5.2. OPTIMALISATIE VAN P-POSITIEREGELAAR

GEKOZEN REGELPARAMETERS

As 1As 2 + 3

PFAKP ~ 24, PDECPP = 0PFAKP = 15, PDECPP = 0

dwz.: Kp = 0.141dwz.: Kp = 0.082

De I-faktor, die ingeschakeld wordt als op een positie moetworden afgeregeld, is steeds zo klein mogelijk:

IFAKPP = 1, PDECPI = 0 dwz.: Ki = 0.004

MEETRESULTATEN VAN STAPRESPONSIES BIJ POSITIESETPOINT

'---f'---

:===:-

i==- ----

",","j--- _.'-__ cl_

4-,-: l:­=,,t,,"--=-:c~

j:.:~

t

I1I

! I ti I l-

U!

i ii 1

,i

j,! i,

ii !r

I, i1 !,-, i lj!

t T; c.~p SrD~t! h ,I hq. __ !I !. tI! I l J' r1 V ,--;- -~ ~ i f ! -I -- '- ' :

.~ III i 1 'i I

r .~-r i I I ~1 V· 1 -~ l~ 1 I' - i! ; l r 1

- f- I f - r - ~ ,I I I I !

t Motorspo.V\~~q H=-1--- r==:= --- -- - : f)' -, I f -- I - ~

__ _ - ~+-- - i-::--! - - {----- -re - I 1

10 V = ----::----- - - f-~r----~,'V- ;f-; - --=:-- -- - -! 1---~ - - - -: -+r-c----H-- -- h - !

_~ 1 I ---- " -tij1- =t,__ =,-_-:~~_~~-_=,----l :::: L- --- ,--

I, I-J,-r, :::~::~-:;:-'~~-=-I - -- ----

CKARD

:c - _

--,- ..- - -.:::'-\

- --

,- '--

---

f-- - ,1---'I---- ---

'''---+-1-- -: ,,_:- : - -

- --,

- ----I---

-- ----:-

----1--­-1---

-1---

PARAMETERS VAN HET GEREGELDE SYSTEEM

As no.: 1 2 3-----------------------------------------------------------Tijdconstante van het geregelde systeem in msMaximale overshoot in %Piektijd in msEindfout in %settling time in ms

120 1905.72003.8 4.4

1801.95501.1490

102

Page 103: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

t

Bijlage 5.3. OPTIMALISATIE VAN DE PD-POSITIEREGELAAR

GEKOZEN REGELPARAMETERS

As 1 PFAKP = 8, PDECPP = 3 dwz. : Kp = 0.25DFAKP = 1E, PDECPD = 3 dwz. : Kd = 0.938

As 2 PFAKP = C, PDECPP = 3 dwz.: Kp = 0.375DFAKP = 20, PDECPD = 3 dwz. : Kd = 1.00

As 3 PFAKP = 54, PDECPP = 0 dwz. : Kp = 0.328DFAKP = 24, PDECPD = 3 dwz. : Kd = 1.125

Ki zal bij iedere as gelijk zijn aan 0.004 als op eenpositie moet worden afgeregeld.

MEETRESULTATEN VAN STAPRESPONSIES MET POSITIESETPOINT

tV

"c, :-8-~ - d

- _-'-::f-'-c:. _'~~

--~: :_',,'~,+-'I, -~

: -, '1---,'

'ACKARD

, "

1111

PARAMETERS VAN HET GEREGELDE SYSTEEM

As no.: 1 2 3------------------------------------------------------------Tijdconstante van het geregelde systeem in ms 80Maximale overshoot in % 1.2Piektijd in ms 240Eindfout in % 0.4Settling time 330

103

70 704.8 1.1100 1001.8 1.4280 270

Page 104: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

Bijlage 6. LISTING C-PROGRAMMA OM INTELHEX-CODE TE GENEREREN

t lncludo <stdio.h>

ruainCarSc,arSv) /* intelhex zet :m file om in intel-hex format code*/int arSc;cha1' *arsv[];

{

FILE *fin,*fout,*fopen();int print;

prwt=O;if (a1'sc<3) I I (arSc>4»

{ printf("? sebruik intelhex <fileinname> <fileoutname> Ct?]\n");e::i t( 1);

-, ,.r,Ir (lfin=fopen(*++arSy,'r"» == NULL )

{ printf("intelnex: can't open Is \n",*arSv);e~<i t ( 1) ;

if «fout=fopen(*++arSv,"w"» == NULL ){ printfC"trc: can't open Is \n",*arSv);

ed t( 1);}f

if (arsc=:::4) {if ( (H+ar9v)[O] -­{ if ( (*a1'sv)[l]

pf'int=l ;-, .f', ,

f'

il' (print == 1){printf("intelhexfo1'mat: tussen haakjes het aantal bytes \n");

printfC"':- aantal databytes (1) 1 startadres (2) I data(=OO) ofend(=Ol)record (1) I data I checksum (1) \n");

};

Q~zetproc(fin,fout,print);

fcloSi~(fin);if ( (6r-:::h"'~~'3) I! (arsc==2) ) fclose(fol.JtH

}

104

Page 105: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

1*---------------------------------------------------------------------*/!* om~etprac zet :m file ~egenereerd door convpmds om ininLel-he~ format code en plaatst dit vervolgens in fout */

ft Een record in een :m file ziet er als volgt uit:~ b~tes,waarvan de waarde het aantal bytes voorstelt dat nog yolgt1 bste : 00 is start record inhoud onbekend

01 ~eeft aan wat het startadres yan de data is02 geeft aan dat data volgt03 geeft aan dat de laatste record volgt

:3 b':;ltes !lIet nullen2 b~te5' W~drYan de waarde het startadres van de record aangeeftdaL<3oYt,:!';,

cnl::.c'tr·j·!JI~· (fin,. fOIJt)

lrit !.:.:,cl1c2~

i~t b~testotake,close;

'i: il t. ~ (, ( c lose !;:: 1 ){

cl:=3el.c( fill);c:2=setc(fin);bstestotake = (256*cll + c2;c=setclfin); b~testotake--;

jf «(==2),"].<;e i f (c=:=3)

else

, ,i" Y

{mdatarecord(fin,fout,bytestotake); }{close=l; /* laatste record in :m file (geen data) */putintelhexrecord(fin,fout,O,Ox3f,Oxff);

/*3fff:einde ram*/while ( (c=getc(fin» != EOF );

}

{while (bytestotake>O){jetc(fin)ibytestotake--;};

ö,.'J ,

'i Leest een t2ccrd l~ de :m flle: zet de data om 1n lntel-he:: formst en zetdeze data ook wes in dit format

,I, i<1'1

mdatarecurdCfinlfQutlmrecardlenjte)Fli..E Hin'»:'f'J,..:tiirlt ml~e~Qr:jlerl~te;

int i~ d;l~b~tes, bstestcPlace;:'~har 2drr-:lè:.:crlt

105

Page 106: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

i ' ,!oû)

'*3 nullen en 2 b~tes 3dres eraf tII*rrleest Slsn. byte varl startadres varl ;m recard#."!tmlnst SlSn, bste 11.*1

{bstestoplace = 16;datab~te5 = d2tab~tes - 16;

Jdr': ~ adrl + tstestotl~l~~

"..

/1 putintelhexrecord */1* plaats een intel-hex record in de outputfilei het format is als vol~t:

dubbele punt (ascii 3a hex)Î geeft besin van record aan.1 b~te, dat het aantal b~tes in het record ~oorstelt

2 bytes waarvan de waarde het startadres van de record voorstelt1 byte: 00 geeft aan dat een datarecord kOlhtJ

01 geeft aan dat het het laatste record in de file isdatab':stes1 b~te dat de checks~m aangeeft (som van record is nul)

De checksum wordt bepaald dcor .alle bytes na de dubbele punt OP tetellen en vervolgens de parity weg te laten. Van deze waarde wordthet 2-complement ~enomen (alle bits seinverteerd en 1 opseteld).

putintelhexrecsrd(fin,foutrdataradrh,adrl)FILE .fin,.fout;int data;cMar' adrh, ."3dr 17

{

:l f':t C 7iril.. chec+' ~IJ~d

~~tb~te(datd~fQutl; checksum=checksum+dataiputb~te(adrhrfcut)i checksum=checksum+adrhi~utb~te(ddrl,fout); checksum=checksum+adrli

106

Page 107: Eindhoven University of Technology MASTER Het ontwerpen en ... · onder begeleiding van ir. C.A.M. van den Brekel en ... Het voordeel van een zelf ontwikkelde besturing is dat ...

if (data -- 0)

else

{putbyte(l,fout);checksum=checksum+l;

} I*laatste record in file *1{putbyte(O,fout);while ( (data> 0) U «c=setc(fin» != EOF ) )

{~utbyte(c,fout);

'dah--;checksum =checksum + ei

};

while (checksum > 255)checksum : checksum - 256; /*Sooi carry wes: 8 bits overhouden*1

c = checkSIJl!l7

c = ("c) +H?utbste(c,fout);putc('\n',fout); /* linefeed als afsluitins van intelhex-record */}

/* Deel een byte OP in 2 nibbles: een voor de 4 meest siSnificante bits (hn)en een voor de 4 minst sign. bits (In).De ascii code van de waarde (een he>: Setal O-F) van zo'n nibble wordt toe­5evoeSd aan de outputfile fout

*/

putbyte(byte,fout)irlt b'"teiFILE *fout;{

Ijn·~.i.3ned hndn;

hn = (byte » 4) &OxOfip'Jtn ibble (:,n ,fout) ;In = b~ta &OxOf;p~lnibble (ln,fout);}

!* De ascii code van de waarde van een nibble n (4 bits) toevoegen aan deout?IJtfi Ie fOIJt.

*/

putnibbIe(n,fout)int niFILE *fOIJt;,'I.

H:t ;;:;

c = n i- '0' iif Cc (= '9') {?utc(c,fout);}else { c = n -OxOa + 'A';

pute( c ,f01Jt) ;

107