Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De...

39
Een digitale -8-bit- PID-regelaar Citation for published version (APA): vd Bersselaar, M. H. M. (1984). Een digitale -8-bit- PID-regelaar. (TH Eindhoven. Afd. Werktuigbouwkunde, Vakgroep Produktietechnologie : WPB; Vol. WPB0110). Eindhoven: Technische Hogeschool Eindhoven. Document status and date: Gepubliceerd: 01/01/1984 Document Version: Uitgevers PDF, ook bekend als Version of Record Please check the document version of this publication: • A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website. • The final author version and the galley proof are versions of the publication after peer review. • The final published version features the final layout of the paper including the volume, issue and page numbers. Link to publication 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 • You may freely distribute the URL identifying the publication in the public portal. If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement: www.tue.nl/taverne Take down policy If you believe that this document breaches copyright please contact us at: [email protected] providing details and we will investigate your claim. Download date: 15. Aug. 2019

Transcript of Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De...

Page 1: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

Een digitale -8-bit- PID-regelaar

Citation for published version (APA):vd Bersselaar, M. H. M. (1984). Een digitale -8-bit- PID-regelaar. (TH Eindhoven. Afd. Werktuigbouwkunde,Vakgroep Produktietechnologie : WPB; Vol. WPB0110). Eindhoven: Technische Hogeschool Eindhoven.

Document status and date:Gepubliceerd: 01/01/1984

Document Version:Uitgevers PDF, ook bekend als Version of Record

Please check the document version of this publication:

• A submitted manuscript is the version of the article upon submission and before peer-review. There can beimportant differences between the submitted version and the official published version of record. Peopleinterested in the research are advised to contact the author for the final version of the publication, or visit theDOI to the publisher's website.• The final author version and the galley proof are versions of the publication after peer review.• The final published version features the final layout of the paper including the volume, issue and pagenumbers.Link to publication

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 • You may freely distribute the URL identifying the publication in the public portal.

If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, pleasefollow below link for the End User Agreement:

www.tue.nl/taverne

Take down policyIf you believe that this document breaches copyright please contact us at:

[email protected]

providing details and we will investigate your claim.

Download date: 15. Aug. 2019

Page 2: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

Een digitale a-bit - FID regclaar.

auteur: Michel van den Bersselaar.

WI'B-rapportnummer 0110 ,3.ugustUG 19(H.

Page 3: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

VgorwcorG.

Dit verslag is een gedeelte van mijn afstudeerwerk aan de Technische Hogeschool Eindhoven. a~t afstudeerwerk is vcrricht bij de vakgroep Productietechnologic en Bedrijfsmechanisatie van de afdcling Werk­tuigbouwkundc en stond onder leiding van Prof. Dr. Ir. A.C.n. van de! Wolf, ir. C.J. Heuvelman en ir. P.C. Mulders.

Het grootste gedeelte van mijn afstudeertijd heb ik doorgebracht in het laboratorium vaor Fysische Bewerkingen, dat onder beheer staat van de heer G.J. Theuw!.

Ik wil iedereen, die mijn afstudeerwerk mogclijk hecf~ gcmaakt, be­danken voor de hulp en begeleiding die ik steeds gekregen heb.

Michel van den Bersselaar, augustus 1984.

Page 4: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

Samenvatting.

In vCI31~g wordt een snelle PID-regelaar in aszembleertaal voor micro-computers besproken. De werking van deze rcgelaar analoog aan de PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID­regelaar in dit verslag (kortweg FID3 genoemd) en de PID-regelaar in Lit.[6] (kortweg PID16 genoemd) zijn:

PID8 rekent: met 8-bit woordbreedte volgens de two ~omplcments-method

PID16 rekent: - met 16-bit woordbreedte

volgens de cne-complements-method

Dit heeft o.a. tot gevolg dat PIDS t.e.v. PID16: - cen kortere programmaduur heeft

cen veel kleiner oplossend vermogen hecft.

Om cen compleet geheel te vcrkrijgcn zijn cnkclc hoofdstukken toe­gevoegd, die geheel of gedeel jk overgenome~ zijn het genoemde rapport 0044.

Page 5: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

lnhoudsopgave.

O. Inleidinq ....................................... 1

1. De PID-regelaar ................................. 3

2. De gebruikte microcomputer en MICROSIM .......... 5

3. De routines ..................................... 8 3.1. Het hoofdprogramma REGEL ................ 8 3.2. De routines PROPOR, INTEGR en DIFFER ... 11

3.2.1. De routine PROPOR ............ 11 3.2.2. De routine INTEGR ............ 13 3.2.3. De routine DIFFER ............ 15

3.3. De routines PLUS, MINUS en MULTY ....... 17 3.3.1. De routine PLUS .............. 17 3.3.2. De routine MINUS ............. 19 3.3.3. De routine MULTY ............. 21

3.4. De routine ABS ......................... 25

4. Aanroepen PID-regelaar door de gebruiker ....... 28

5. Literatuurlijst ................................ 31

6. Bijlagen ....................................... 32

Page 6: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-1-

O. Inleiding.

Dit verslag beschrijft een gedeelte van mijn afstudeerwerk, verricht voor de afdeling Werktuigbouwkunde van de Technische Hogeschool Eindhoven. Het verslag behandelt de opbouw en de werking van een snelle PID-regelaar in assemblertaal in microprocessoruitvoering. De specificaties van deze regelaar zijn: - Bestemd voor gebruik op microcomputer op basis van 808S-processor - Berekeningen met 8-bit woordbreedte - Hoge flexibiliteit door eenvoudige instelling van regelparameters - Programmaduur voor bijvoorbeeld PI-actie: 1,5 tot 2 ms

De opbouw van dit verslag is H.M.M.G. Cordewener [lit.6]. besproken. De verschillen (kortweg PID8 genoemd) en genoemd) zijn:

PID8 rekent: - met 8-bit woordbreedte

analoog aan de opbouw van het verslag van In dat verslag wordt ook een PID-regelaar tussen de PID-regelaar in dit versiag de PID-regelaar in [lit.6] (kortweg PID16

- vol gens de two-complements-method

PID16 rekent: - met 16-bit woordbreedte - volgens de one-complements-method

Dit heeft o.a. tot gevolg dat PIDS t.o.v. PID16: - een kortere programmaduur heeft - een (veel) kleiner oplossend vermogen heeft.

Bovendien z~Jn de regelparameters van de integrerende en differenti~rende regelactie, respectievelijk Tsf(2*Ti) en TdfTs' nogal beperkt in grootte. V~~r beide kan een gehele waarde gekozen worden die ligt tussen 0 en 127.

In dit verslag wordt allereerst het principe van de PID-regelaar beschreven. Daarna wordt in het kort ingegaan op de gebruikte microcomputer en op het assemblerprogramma MICROSIM. In het daarop volgend hoofdstuk wordt de programmatuur zelf besproken. De programmatuur bestaat uit routines van verschillend niveau. Deze routines worden ~n volgorde van niveau behandeld. In het Iaatste hoofdstuk wordt besproken hoe PIDS te gebruiken is en wordt een voorbeeld gegeven van een interrupt-serviceroutine, waarin het regelprogramma aangeroepen wordt.

Page 7: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-2-

De eerste twee hoofdstukken en een gedeelte van het laatste hoofdstuk z~Jn overgenomen uit [lit.6]. Deze stukken zijn toegevoegd om een comp!eet geheel te verkrijgen.

Page 8: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-3-

1. De PIO-regelaar.

Ret basisschema van een regelkring met regelaar en proces ziet er als voIgt uit:

r- ___ J~.Q..eJ~c ___ ~ I I proces I I

r l +~e R ' x p y

I ~ I I - I I Y I 1.. __ ------------..1

fig. 1: De regelkring

De funktie van de regelaar met overdracht Algemeen kan echter gesteld worden, dat grootheden van een proces volgens vooraf verlopen. Ret verschil kan dan nog gelegen plan, dat bijvoorbeeld kan zijn:

R kan verschillend zijn. het doel is bepaalde opgesteld plan te laten zijn in de vorm van het

- constant hauden (regulateursysteem) - met de tijd varieren (pragrammaregelaar) - vari~ren afhankelijk van een of meer andere grootheden

(servosysteem) - naar een optimum streven (optimaliserende regeling)

uit de figuur blijkt dat de regelaar bestaat uit het regelorgaan, met overdracht R, en uit een vergelijkingsorgaan. Ret vergelijkingsorgaan bepaalt het verschilsignaal tussen de ingestelde waarde r en de gemeten waarde y van de te regelen procesuitgang: e=r-y' Ret regelorgaan berekent het correctiesignaal x volgens x=R*e.

Ret type regelaar wordt gekenmerkt door de vorm van de overdrachtsfunktie R van de regelaar. Veel gebruikte regelaars bevatten combinaties van proportionele, differenti~rende integrerende acties. Deze regelaars worden dan oak kortweg regelaars genoemd. De overdrachten van deze drie acties achtereenvolgens:

Voar de proportionele actie:

Vaor de integrerende actie:

x(T)

x(T)

= K*e(T)

T = L* I e(t)dt Ti t=O

en PID-zijn

Page 9: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-4-

V~~r de differentierende actie: xCT) = Td*(~)t=T

De drie basisacties zijn naar believen te combineren, waardoor P, PD, PI en PID-regelaars mogelijk z~Jn. Voor een PID-regelaar geldt dan algemeen de volgende vergelijking:

Bij digitale regelsystemen wordt de procesuitganq y niet continu r maar op zekere sampletijdstippen gemeten. Het signaal e=r-y is dus slechts op de sampletijdstippen k*Ts aanwezig. Bovenstaande farmule voor de PID-regelaar kan dus niet zander meer toegepast worden. Diskretiseren van deze vergelijking levert echter (via achterwaartse differentie):

x(nT) = K*e(nT) + ~* £ T *e(kT) 2 e(kT -T) + Ti k=1 s

T *e(nT) - e(nT -T) d Ts

Hierin zijn de volgende symbol en gebruikt:

K = proportionele konstante Ti= integratietijd Td= differentiatietijd Ts= sampletijd

Met behulp van bovenstaande formule is het mogelijk een digitale PID­regelaar te ontwerpen. Het grote voordeel hiervan is de flexibiliteit. Het is software-matig namelijk zeer eenvoudig de regelparameters K, Ti en Td gedurende het proces naar believen te veranderen. Dit is van belang, wanneer een vorm van adaptief regelen vereist is. Wanneer bijvoorbeeld de eigenschappen van het proces veranderen, kan dit gesignaleerd worden. Dit zal waarschijnlijk door een tweede microcomputer gebeuren, omdat de microcomputer I die de regelacties berekent hiervoor geen tijd meer heeft. Deze tweede microcomputer kan dan l afhankelijk van de procesveranderingen , nieuwe regelparameters berekenen r die dan op de betreffende adressen in de eerste microcomputer geschreven dienen te worden. De sampletjd Ts van de regelactie wordt in eerste instantie bepaald door de kleinste tijdconstante van het te regelen proces. Ts moet een aantal malen kleiner gekozen worden dan deze kleinste tijdconstante, omdat anders niet aan het theorema van Shannon voldaan wordt. Ts kan echter niet te klein gekozen worden in verband met de rekentijd, die het programma vraagt. Hierop wordt in hoofdstuk 4 dieper ingegaan.

Page 10: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-5-

2. De gebruikte microcomputer en MICROSIM.

De programmatuur, zoals die in dit verslag wordt besproken, is geschreven in de assemblertaal voor INTEL-microcomputers en weI voor de 8-bit microprocessor INTEL 8085. De instruktieset van de 8085 zal hier niet besproken worden, omdat aangenomen wordt dat de gebruiker hiervan op de hoogte is. V~~r het gemak is deze instruktieset echter in dit verslag als bijlage opgenomen. Voor diepgaandere informatie wordt verwezen naar de diktaten Digitale Rekenmachines nr.5.524 en nr. 5.529 [lit.1,2] en naar de boeken Microcomputer-systeemarchitectuur, delen 1, 2 en 3, Kemper en Stevens, Stubeg, Hoogezand, 1981 [lit.3].

De opbouw van de gebruikte EWMC (Electro-Werktuigbouw Micro Computer) random de 8085 processor voIgt uit het schema, dat als bijlage aan dit verslag toegevoegd is. Voor de programmatuur van de PID-regelaar zijn naast de CPU verder de programmable interruptcontroller 8259, de programmable interval timer 8253 en de parallelpoorten het meest van belang.

De programma's kunnen met behulp van de monitorinstrukties in hexadecimale vorm ingegeven worden. Eenvoudiger is het echter am de MICROSIM-Assembler te gebruiken. MICROSIM is een assembler plus simulatie-programma, dat geimplementeerd is op de afdelingscomputer PRIME van de afdeling Werktuigbouwkunde. De 8085 instrukties worden op een een-op-een basis van mnemonics omgezet in binaire code, die voor de microcomputer begrijpbaar een uitvoerbaar is. Het laden van het geassembleerde programma gebeurt rechtstreeks vanuit de PRIME. Op de struktuur en de commando's van MICROSIM wordt ook niet verder ingegaan. Meer informatie hierover is te vinden in de MICROS IM­handleiding (MICROSIM, Program Development System, INTEL 8080/8085, Reference Manual for Prime host computers [lit.4]).

De gebruikte microcomputer is memory-mapped, dat wil zeggen dat de in­en uitgangen als geheugenplaatsen worden gezien. Zo worden dus de serie- en de parallelpoorten via geheugenadressen toegesproken. Hetzelfde geldt voor de communicatie met de interrupt-controller, de keyboard-controller en de timer/counter. De bewuste adressen hebben allen een symbolische naam gekregen, die binnen het MICROSIM-segment IOSEG gedefinieerd is. Van belang voor het PID-programma en de daarmee samenhangende(gebruikers) programma's zijn de volgende adressen:

ADRES

4000H 4010H 4020H

NAAM

SERCHO SERCH1 PARCOO

FUNCTIE

seriepoort 0, naar terminal seriepoort 1, naar PRIME parallelpoort 00

Page 11: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-6-

4021H PARCO 1 parallelpoort 01 4022H PAR C02 parallelpoort 02 4023H PARCOC controlewoord poort 0 4030H PARC10 parallelpoort 10 4031H PARC11 parallelpoort 11 4032H PARC12 parallelpoort 12 4033H PARC1C controlewoord poort 1 4040H INTCON interrupt controller 4041H INTCON+1 interruptmasker 4050H TIMCNT timer/counter 0 4051H TIMCNT+1 timer/counter 1 4052H TlMCNT+2 timer/counter 2 4053H TIMCNT+3 controlewoort timer/counter

Bovenstaaande adressen ziin allen gedefini~erd in het segment IOSEG. Van belang zijn verder nog een aantal adressen, die in segment STACK gedefini~erd zijn en die gereserveerd zijn voor de sprangadressen van de verschillende interrupts:

ADRES NAAM FUNCTIE

3FDOH TRAP sprongadres voor trap-interrupt 3FD4H INT55 sprongadres voor rst 5.5 interrupt 3FD8H lNT65 sprongadres vaar rst 6.5 interrupt 3FDCH INT75 sprongadres voor rat 7.5 interrupt 3FEOH lOAD sprongadres voor interrupt 0 3FE4H 11AD sprongadres voor interrupt 1 3FE8H 12AD sprongadres voar interrupt 2 3FECH I3AD sprongadres voor interrupt 3 3FFOH I4AD sprongadres voor interrupt 4 3FF4H 15AD sprongadres voor interrupt 5 3FF8H 16AD sprongadres voor interrupt 6 3FFCH I7AD sprongadres v~~r interrupt 7

Op al deze adressen bevindt zich een JMP-instructie (C3 hexadecimaal). De gebruiker dient op de volgende twee geheugenplaatsen het beginadres voor zijn interruptservice-routine in te vullen. Wordt bijvaorbeeld interrupt 4 gebruikt en begint de bijbehorende interruptservice­routine op adres 3800H, dan dient de gebruiker na de JMP-instructie, die de monitor al ingevuld heeft, het adres 3800 in te vullen:

ADRES NAAM CODE

3FFOH 14AD C3 3FF1H l4AD+1 00

Page 12: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-7-

3FF2H 14AD+2 38

Na deze korte toelichting, zullen de, in de volgende hoofdstukken besproken, programma's voor de gebruiker begrijpbaar zijn. Enige ervaring met het programmeren in assembler is echter weI een vereiste. Op datgene, wat in dit hoofdstuk over het gebruik van symbolische adres5sen gezegd is, wordt in hoofdstuk 4 uitvoeriger teruggekomen, waarbij het behandelde in een programma geillustreerd wordt.

Page 13: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-8-

3. De routines.

In dit hoofdstuk worden de routines behandeld: eerst de hoofdroutine, daarna de subroutines in volgorde van niveau. De behandeling per routine gaat als voIgt: 1e: een inleidende tekst 2e: de flowchart 3e: de volledige listing

De listing begint met een heading. In deze heading staat: - een kort omschrijving van de routine - de in- en output - de bewerking die uitgevoerd wordt - de registers waarvan de inhoud na afloop van de routine -

verandert kan zijn - de routines die aangeroepen worden.

Bovendien zijn de programmaregels - waar nodig - voorzien van tekst.

3.1. De hoofdroutine REGEL.

De hoofdroutine REGEL wordt vanuit de interrupt-service-routine ACTIE aangeroepen. In REGEL wordt bepaald welke regelacties nodig zijn. Het resultaat van REGEL staat na afloop op de geheugenplaats RESTOT.

Page 14: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-9-

fig.2: flowchart van de routine REGEL.

GET K

RE suu .M

RESTOT

RES TOT

ADO RESULT TO

R ESTo'r

END:

Page 15: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

100 200 300 400 500 600 700 800 900

1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700 4800 4900 5000 5100 5200 5300 5400

-10-

. Listing van de routine REGEL .

. ***************************************************************** , ,

In seg. REGEL wordt de totale regelactie berekend.

GEBRUIK: input: - k - factor TS/(2*TI)

- TD/TS output: - RESTOT

BEWERKING: RESTOT = RESULT.PROPOR + RESULT.INTEGR + + RESULT.DIFFER

GEBRUIKT: - registers; A segmenten; PROPOR,INTEGR,DIFFER,PLUS

, .**************************************************************** , ,

, BEGIN: PROPOR:

LOA CPI JZ CALL LOA STA

INTEGR: LDA CPI JZ CALL LOA STA LDA STA CALL LOA STA

DIFFER: LOA CPI JZ CALL LOA STA LDA STA CALL LDA STA

UIT: RET

RESTOT: OS

FACTOR. ACTIE 0 INTEGR BEGIN.PROPOR RESULT.PROPOR RES TOT

TSTI2.ACTIE 0 DIFFER BEGIN.INTEGR RESULT.INTEGR PLUS1.PLUS RESTOT PLUS2.PLUS BEGIN. PLUS RESULT.PLUS RESTOT

TOTS.DIFFER 0 UIT BEGIN. DIFFER RESULT.DIFFER PLUS1.PLUS RESTOT PLUS2.PLUS BEGIN. PLUS RESULT. PLUS RESTOT

k - factor

k - factor 0: geen propor-actie

propor-actie

TS/ (2*TI)

TS/(2*T1) = 0: geen integr-actie

integr-actie

propor-actie + integr-actie

TD/TS

TD/TS = 0: geen differ-actie

differ-actie

prop-actie + int-actie + dif-actie

Page 16: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-11-

3.2. De routines PROPOR t INTEGR en DIFFER.

Het programma REGEL roept de subroutines PROPOR, INTEGR en DIFFER aan. Deze routines berekenen respectievelijk de proportionele, de integrerende en de differenti~rende regelactie. Het totale resultaat van de regelacties wordt verkregen door somma tie van de drie regelacties.

3.2.1.De routine PROPOR.

De subroutine PROPOR berekent het proportionele deel van de regelactie. De proportionele constante k en bet verschilsignaal e staan respectievelijk op de geheugenplaatsen FACTOR.ACTIE en EPS.ACTIE. Het resultaat

x = k • e

staat na afloop op de geheugenplaats RESULT.

fig.3: flowchart van de routine PROPOR.

Page 17: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

100 200 300 400 500 600 700 800 900

1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000

-12-

Listing van de routine PROPOR .

. **************************************************************** • I

In PROPOR wordt de proportionele regelactie berekend.

GEBRUIK: input: - EPS(nT)

- k-factor output: - RESULT

BEWERKING: RESULT k * EPS{nT) (EPS(nT) n.gewenst - n.werkelijk)

GEBRUIKT: - registers: A - segmenten: MULTY

:**************************************************************** , , ; ; BEGIN:

LOA EPS.ACTIE EPS(nT) STA MULTY1.MULTY LOA FACTOR.ACTIE k-factor STA MULTY2.MULTY CALL BEGIN.MULTY LOA RESULT.MULTY RESULT = k * EPS(nT) STA RESULT

UIT: RET

RESULT: OS

Page 18: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-13-

3.2.2.De routine INTEGR.

In de subroutine INTEGR wordt de integrerende regelactie waarde Ts/(2*Ti) staat op geheuqenplaats TSTI2.ACTIE. dient zelf deze waarde te berekenen en op de qeheuqenplaats te zetten.

berekent. De De qebruiker betreffende

De waarden voor e(nT) en e{nT-T) staan respectievelijk op de qeheuqenplaatsen EPS.ACTIE en EPS. Ret resultaat

x· (nT) = ~

T n ~ * r {e(kT) + e(kT-T)}

i k=1

staat na afloop op geheugenplaats RESULT.

Opmerking: In de praktijk waarde die

blijkt Ti vaak voor Ts/(2*Ti)

groter te zijn dan Ts' De kleinste ingevuld kan worden is "1".

fig.4: flowchart van de routine INTEGR.

VORIO :::EPS

GET EPS

T$/(2XTI)

Page 19: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

100 200 300 400 500 600 700 800 900

1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700 4800

-14-

Listing van de routine INTEGR .

. *************************************************************** , ,

In seg.INTEGR wordt de integrerende regelactie berekend.

GEBRUIK: input:

output:

- EPS(nT) (EPS(nT) = n.gewenst - n.werkelijk) TS/(2*TI) (TS = sampletijd) (TI = integratletijd)

- RESULT

TS N BEWERRING: RESULT = ---- * SOM{EPS(nT) + EPS(nT-T)}

2*TI n=1

GEBRUIKT: - registers: A - segmenten: PLUS,MULTY

, .*************************************************************** • , , BEGIN:

LOA STA LOA STA STA CALL LDA STA LOA STA CALL LOA STA STA LOA STA CALL LOA STA

UIT: RET

EPS: OS SOM: OS RESULT: OS

EPS PLUS 1 .PLUS EPS.ACTIE PLUS2.PLUS EPS BEGIN. PLUS RESULT. PLUS PLUS1.PLUS SOM PLUS2.PLUS BEGIN. PLUS RESULT.PLUS SOM MULTY2.MULTY TSTI2. ACTIE MULTY1.MULTY BEGIN.MULTY RESULT.MULTY RESULT

EPS(nT-T)

EPS(nT)

EPS(nT} + EPS(nT-T)

SOM := SOM + (EPS(nT) + EPS(nT-T»

TS/(2*TI)

RESULT = SOM * TS/(2*TI)

Page 20: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-15-

3.2.3.De routine DIFFER.

In de subroutine DIFFER wordt de integrerende regelactie berekend. De waarde TdfTs staat na op geheugenplaats TDTS.ACTIE. De gebruiker dient zelf deze waarde te berekenen en op de betreffende geheugenplaats te zetten. De waarden vaor e(nT) en e(nT-T) staan respectievelijk op de geheugenplaatsen EPS.ACTIE en EPS. Het resultaat

T xd(nT) = fd * {e(nT)

5 e(nT-T)}

staat na afloop op geheugenplaats RESULT.

fig.5.: flowchart van de routine DIFFER.

Page 21: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

100 200 300 400 500 600 700 800 900

1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000

-16-

Listing van de routine DIFFER .

. *******************************************************.********* I

I

In seg.OIFFER wordt de differentierende regelactie berekend.

GEBRUIK: input: - EPS(nT)

(EPS(nT) ; (n.gewenst - n.werkelijk) - To/TS

(TO = differentiatietijd) (TS = sampletijd)

output: - RESULT

BEWERRING: RESULT = (EPS(nT) - EPS(nT-T» * To/TS

GEBRUIKT: - registers: A - segmenten: MINUS/MULTY

~*********************************************************~******* I , , ; BEGIN:

LOA EPS EPS(nT-T) STA MINUS2.MINUS LOA EPS.ACTIE EPS(nT) STA EPS STA MINUS 1 . MINUS CALL BEGIN. MINUS LOA RESULT.MINUS EPS(nT) - EPS(nT-T) STA MULTY1.MULTY LOA TOTS. ACTIE TO/TS STA MULTY2.MULTY CALL BEGIN.MULTY LOA RESULT.MULTY (EPS{nT) - EPS(nT-T» * To/TS STA RESULT

UIT: RET

TOTS: OS 1 EPS: OS 1 RESULT: DS 1

Page 22: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-17-

3.3. De routines PLUS, MINUS en MULTY.

De subroutines PLUS, MINUS en MULTY bewerking op twee getallen vermenigvuldigen. De berekeningen complements-method. De in- en woordbreedte.

3.3.1.De routine PLUS.

voeren respectievelijk de volgende uit: optellen, aftrekken en worden uitgevoerd volgens de two­

output zijn getallen met a-bit

De subroutine PLUS telt twee getallen bij elkaar op. De invoerwaarden staan op de geheugenplaatsen PLUS1 en PLUS2. Het resultaat staat na afloop op de qeheuqenplaats RESULT.

fig.6: flowchart van de routine PLUS.

N

N

Page 23: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

100 200 300 400 500 600 700 800 900

1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700 4800 4900 5000 5100 5200 5300 5400 5500 5600 5700 5800 5900 6000 6100 6200 6300 6400 6500 6600 6700 6800 6900 7000 7100

-18-

Listing van de routine PLUS .

. ******************************************************************** t

I

In seg.PLUS worden twee getallen volgens de two-complements­method opgeteld.

GEBRUIK: input: - PLUS1

- PLUS2 output: - RESULT

BEWERKING: RESULT = PLUS1 + PLUS2

GEBRUIKT: - registers: geen - segmenten: geen

:******************************************************************** I

I

I

BEGIN:

BPOCNE:

pos:

POSHAX:

BNEG:

PUSH PUSH LDA MOV LOA MOV ANI JNZ MOV ANI JZ

MOV ADD MOV JMP

MOV ADD MOV ANI JZ

MVI JMP

PSW B PLUS2 C A PLUS 1 BJ.A 1,,8 BNEG A,C 128 POS

A,B C B,A UIT

A,B C BJ.A 1.:::8 UIT

B±127 U T

MOV A, C ANI 128 JNZ NEG

BNECPO:

NEG:

NEGMAX:

UIT:

MOV ADD MOV JMP

MOV ADD MOV ANI JNZ

MVI

MOV STA POP POP RET

PLUS1: OS PLUS2: OS RESULT: DS

A,B C B,A UIT

A,B C

B,A 128 UIT

B,128

A,B RESULT B PSW

1 1 1

zet PLUS1 en PLUS2 in de registers B en C

B pas. en C neg., geen kans op overflow

B en C beide positief , kans op overflow

B neg. en Cpos. geen kans op overhow

B en C beide negatief, kans op overflow

zet sam in RESULT

Page 24: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

19-

3.3.2.De routine MINUS.

De subroutine MINUS trekt twee getallen van invoerwaarden staan op de geheugenplaatsen MINUS1 resultaat staat na afloop op de geheugenplaats RESULT.

fig.7: flowchart van de routine MINUS.

N N

elkaar af. De EN MINUS2. het

Page 25: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

100 200 300 400 500 600 700 800 900

1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700 4800 4900 5000 5100 5200 5300 5400 5500 5600 5700 5800 5900 6000 6100 6200 6300 6400 6500 6600 6700 6800

-20-

Listing van de routine MINUS .

. ***************************************************************** , ,

In seg.MINUS worden twee getallen volgens de two­complements-method afgetrokken.

GEBRUIK: input: - MINUS1

- MINUS2 output: - RESULT

BEWERRING: RESULT = MINUS1

GEBRUIRT: - registers: geen - segmenten: geen

MINUS2

~***************************************************************** , , , , BEGIN:

BPOCNE:

BNEG:

BNECPO:

UTT:

PUSH PUSH LOA MOV LOA MOV ANI JNZ MOV ANI JNZ MOV SUB MOV JMP

MOV SUB MOV ANI JZ MVI JMP

MOV ANI JZ MOV SUB MOV JMP

MOV SUB MOV ANI JNZ MVI

MOV STA POP POP RET

MINUS1: OS MJNUS2: OS RESULT: DS

PSW B MINUS2 C A MiNUS1 BAA 1.:::8 BNEG A,C 128 BPOCNE A,B C BtA U T

A,B C BJ..A 1..::8 urT Bt

127 U T

AJ..C 1..::8 BNECPO A,B C BtA U T

A,B C BJ..A 1..::8 UTT B,128

~t~ULT B PSW

1 1 1

zet MINUS1 en MINUS2 in de registers B en C

B en C positief, geen kans op overflow

B pas. en C neg. kans op overflow

B en C beide negatief, geen kans op overflow

B neg. en C 120S. kans op overflow

zet resultaat in RESULT

Page 26: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-21-

3.3.3.De routine MULTY.

De subroutine MULTY.

De subroutine MULTY vermenigvuldigt twee getallen met elkaar. MULTY maakt gebruik van de subroutine ASS, waarin de invoerwaarden absoluut worden gemaakt, en waarin tevens het teken van het resultaat wordt bepaald. Het resultaat staat na afloop op de geheugenplaats RESULT.

Page 27: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-22-

fig.8: flowchart van de routine MULTY.

y

Page 28: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

100 200 300 400 500 600 700 800 900

1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700 4800 4900 5000 5100 5200 5300 5400 5500 5600 5700

-23-

Listing van de routine MULTY.

.************************************************************** , , , I

In seg.MULTY worden twee getallen vermenigvuldigd volgens de two-complements-method.

GEBRUIK: input: - MULTY1

- MULTY2 output: - RESULT

BEWERKING: RESULT = MULTY1 * MULTY2

GEBRUIKT: - registers: geen - segmenten: ABS

:************************************************************** , , , MAXTEL EQU BEGIN:

PUSH PUSH PUSH LOA MOV LOA MOV MVI MVI STA CALL

START: MOV ANI JZ MOV ADD MOV

OVER: ANI JZ Mvr JMP

TELMAX: LDA INR STA cpr JZ MOV RRC ANI MOV MOV RLC ANI

7

PSW B 0 MULTY1 B A MULTY2 CrA OrO At.0 T L BEGIN.ABS

A,C 1 TELMAX AID B D,A

128 TELMAX D 1127 ANTW

TEL A TEL MAXTEL ANTW AIC

01111111B C,A AlB

01111110B

zet MULTY1 en MULTY2 ~n de registers B en C

B := abs(B), C := abs(C)

bit 0 = 1: D := 0 + 1

overflowcontrole

bit 0 = 0: verhoog A met 1

TEL < 7: RLC B en RRC C

Page 29: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-24-

Listing van de routine MULTY.

5800 MOV BrA 5900 JMP START 6000 ANTW: TEL = 7: vermenigvuldiging gereed 6100 LDA TEKEN.ABS tekencontrole 6200 cpr 1 6300 JNZ urT teken positief 6400 MVI ArO teken negatief 6500 SUB D 6600 MOV DrA 6700 UrT: 6800 MOV A D 6900 STA RESULT RESULT :: MULTY1 * MULTY2 7000 POP D 7100 POP B 7200 POP PSW 7300 RET 7400 TEL: OS 1 7500 MULTY1 : DS 1 7600 MULTY2: DS 1 7700 RESULT: DS 1

Page 30: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-25-

3.4. De routine ASS.

y

y

De subroutine ASS wordt door de routine MULTY aangeroepen. ABS neemt de absolute waarden van de getallen die in de registers S en C staan. Tevens wordt het teken van de vermenigvuldiging bepaald. De absolute waarden worden terugqezet in de registers S en C. Het teken van de vermenigvuldiging wordt op geheugenplaats TEKEN gezet.

fig.9: flowchart van de routine ASS.

N

y

N

N

y y

Page 31: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

100 200 300 400 500 600 700 800 900

1000 1100 1200 1300 1400 1500 1600 1700 1300 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100 4200 4300 4400 4500 4600' 4700 4800 4900 5000 5100 5200 5300 5400 5500 5600 5700

-26-

Listing van de routine ASS .

. **************************************************************** I

I

In seg. ABS wordt de absolute waarde van getallen berekend.

GEBRUIK: - input:

- output:

- reg S - reg C

reg B - reg C - TE·KEN

SEWERKING: - reg.S := abs(reg.B) - reg.C := abs(reg.C)

UITZONDERING; -128 := 127

-TEKEN wordt op "1" gezet wanneer: -,S posittef en C neg~ttef of - B negatlef en C posltlef TEKEN wordt op "0" gezet wanneer: - B en C beide positief of - B en C beide negatief

GEBRUIKT: - registers: A - segmenten: geen

~**************************************************************** I , BEGIN:

MVI A 0 STA TEKEN MOV A~B ANI 1 8 JZ BPOS MOV A,B B negatief: CPI 128 JNZ MIN1 MVI B,127 JMP BNEG

- dIs B = 128: B := 127

MIN1 : MVI A,O SUB 8

- anders: B := -8

MOV BrA BNEG:

MOV A~C ANI 1 8 JZ BNECPO MOV As/ cpr 1 8

C negatief:

JNZ r4IN2 MVI C

f127

JMP U T - als C = 128: C := 127

MIN2: f"'VI Ala - anders: C := -C

Page 32: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-27-

5800 SUB C 5900 r·10V CtA 6000 Jl\1P U T 6100 BNECPO: B ne¥atief en C positief: 6200 MVI A,1 zet EKEN op "1« 6300 STA TEKEN 6400 JMP urT 6500 BPOS: B is posief, 6600 MOV A

2C

6700 ANI 1 8 6800 JZ urT C posief: klaar 6900 MOV AiC C negatief: 7000 CPI 1 8 7100 ""111" VJ.'4u l\1IN3 7200 MVI C,127 ais C 128: C:= 127 7300 JMP BPOCNE 7400 MIN3: 7500 MVI A,O - anders C -c 7600 SUB C 7700 MOV C,A 7800 BPOCNE: B ~ositief en C negatief: 7900 M"VI A,l ze TEKEN 013 "1" 8000 STA TEKEN 8100 urT: 8200 RET 8300 TEKEN: DS 1

Page 33: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-28-

4. Aanroepen PID-regelaar door de gebruiker.

Het programma REGEL fungeert als een PID-regelaar, waarbij de regelparameters k, Ts/(2*Ti) en Td/Ts op een eenvoudige wijze, software-matig, ingesteld kunnen worden. Deze flexibiliteit is gewenst, wanneer een vorm van adaptief regelen gewenst wordt. Hierbij dienen de regelparameters afhankelijk van het proces continu aangepast te kunnen worden. Dit aanpassen kan gebeuren door in het gebruikersprogramma de adressen FACTOR.ACTIE, TSTI2.ACTIE en TDTS.ACTIE een nieuwe waarde te geven (Segment ACTIE is de interrupt­service-routine die het programma REGEL aanroept). Van adaptief regelen is sprake, wanneer er so£tware-matig gereageerd wordt op veranderingen in de eigenschappen van het te regelen proces. Deze eigenschappen dienen dus gemeten te worden. Er zal dan een algoritme dienen te bestaan,waarmee het mogelijk is, voor aIle waarden van de procesparameters, de optimale regelparameters te bepalen. Er zal dan waarschijnlijk overgegaan dienen te worden naar een systeem met twee microcomputers. Een microcomputer zal dan uitsluitend de regelacties uitvoeren bij bepaalde instelling van de regelparameters. De anders microcomputer zal dan adaptief de regelparameters veranderen en deze waarden aanbieden aan de regeicomputer. Een andere mogelijkheid is het overgaan op een 16-bit microcomputer , die door zijn hoge snelheid beide functies gelijktijdig kan vervuIIen. Op dit moment wordt er dan ook hard gewerkt aan de implementatie van het regelprogramma op een 16-bit microcomputer.

REGEL zal in het algemeen aangeroepen worden vanuit een interrupt­serviceroutine, omdat steeds na de sampletijd Ts een nieuwe regelcorrectie berekend dient te worden. De sampletijd Ts kan bij een microcomputer ingesteld worden door een tijdsinterrupt te gebruiken. Een van de timer/counters van de programmable interval timer 8253 wordt dan zodanig gelnitialiseerd, dat op de uitgang van de betreffende counter (de 8253 bevat drie van deze counters) een blokgolf met periodetijd Ts komt te staan. Dit signaal wordt dan aan de interrupt-controller (8259) aangeboden, die dan iedere Ts seconden een impuis genereert, die aan de interrupt-request ingang (INTR) van de CPU (8085) aangeboden wordt.

Het initialiseren van de counter kan op de volgende manier gebeuren. Stel counter 0 van de 8253 wordt gebruikt. De counter heeft een kIok, die een frequentie van 1.536EE6 Hz heeft. Wordt bijvoorbeeld een sampletijd van 16 ms verlangd, dan dient de counter geladen te worden met 0,016 * 1,536EE6 = 24576. Dit gedeelte van het initialisatie­programma wordt dan:

LXI MVI

H,TIMCNT.IOSEG+3 M,36H

controlewoord counters 36H: counter 1, mode 3

CVoorschot
Text Box
Hoofdstuk
Page 34: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-29

LXI H,24567 komt overeen met 16 ms MOV A,L eerst LO-byte laden STA TIMCNT.IOSEG MOV A/H dan HO-byte laden STA TIMCNT.IOSEG

Vaor de betekenis van het controlewoord, in dit geval 36H wordt verwezen naar de Component Data Catalog van Intel, onder het hoofdstuk Programmable Interval Timer, 8259 [lit.S]. Het bovenstaaande stuk programma dient bij de initialisaties in het gebruikersprogramma opgenomen te worden. Hiermee dan de sampletijJ ingesteld. Deze sampletijd dient men oak mee te nemen in de berekeningen van TSTI2.ACTIE (=Ts /{2*Ti) en TDTS.ACTIE (=Td/Ts )' Bij de keuze van de sampletijd dient uitgegaan te worden van de kleinste tijdconstante van het te regelen proces. Ts is echter aan een minimale waarde gebonden door de benodigde rekentijd van de routine REGEL. Wanneer de proportionele/ de integrerende en de differentierende aktie allen tegeIijk gebruikt worden/ is de rekentijd van het programma ongeveer 1,5 to 2 ms, zodat Ts dan in ieder geval Ts >=2 ms moet zijn.

REGEL wordt vanuit de interrupt-service-routine ACTIE aangeroepen. Wanneer interrupt 0 gebruikt wordt, wordt de interrupt-controller als voIgt gelnitialiseerd:

LXI H,BEGIN.ACTIE begin label van ACTIE SHLD IOAD.STACK+1 sprongadres vonr intO

Interrupt 0 wordt als voIgt gedemaskeerd:

LXI H/INTCON.IOSEG+1 ~I M,OFEH ; aIleen intO doorlaten

Tot zover wat betreft de initalisatie van de gebruikte hardware. Vaor de software dienen oak initialisaties verricht te worden. Voor de eerste aanroep van REGEL dienen EPS.INTEGR, SOM.INTEGR en EPS.DIFFER op 0 gelnitialiseerd te worden. Verder dienen een aantal geheugenplaatsen geladen te worden, namelijk: NOPID.ACTIE (1 O=geen actie), TSTI2.ACTIE (=Ts /(2*Ti ), TDTS.ACTIE (=Td/Ts ) en NGEW (=gewenste toerental). Het verschilsignaal e=r-y (zie regelkring fig.1) wordt vaor aanroep van REGEL berekent in ACTIE en staat op de geheugenplaats EPS.ACTIE. Hierbij staat r op adres NGEW en y op adres PARC10.IOSEG. Wanneer geen actie gewenst is dient op adres NOPID 0 gezet te worden. NGEW wordt dan uitgestuurd naar de motor.

Page 35: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

30-

Tenslotte wordt nog verwezen naar WPB~rapport nr. 0045, waar de toepassing van de PID-regelaar zowel in de snelheidsregellus, ala oak in de pasitieregellus beschreven wardt.

Page 36: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

100 200 300 400 500 600 700 800 900

1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700 4800 4900 5000 5100 5200 5300

-31-

Listing van de routine ACTIE .

. ************************************************************** • • • •

In seg. ACTIE wordt bepaald of er regelactie moet plaats­vinden. Is dat het qeval, dan wordt het verschilsignaal EPS berekend en wordt de regelactie aangeroepen. Is geen regelactie nodig, dan wordt de gewenste hoek­snelheid (NGEW) naar de motor gestuurd.

GEBRUIK: input: - n.gewenst n.werkelijk

- NOPID output: - EPS

- RES TOT (naar motor)

BEWERKING: - NOPIO = 1: regelactie

NOPIO = 0: - geen regelactie - NGEW naar MOTOR

- EPS = n.gewenst - n.werkelijk

GEBRUIKT: - registers: A - segmenten: REGEL,MINUS

!****************************************************************** , • t

; BEGIN:

E1 LOA NOPIO CPI 1 JZ ACTIE ala NOPIO = 1: regelactie LOA NGEW als NOPID = 0: geen regelactie, JMP MOTOR NGEW naar MOTOR uitsturen

ACTIE: LOA NGEW n.gewenst STA MINUS1.MINUS LOA PARC10.IOSEG n.werkelijk STA MINU52.MINUS CALL BEGIN. MINUS LOA RESULT. MINUS EPS STA EPS CALL BEGIN.REGEL aanroepen regelactie LOA RESTOT.REGEL

MOTOR: STA PARCOO.IOSEG uitsturing naar motor RET

NOPID: OS 1 NGEW: OS 1 FACTOR: OS 1 T5T12: OS 1 TOTS: OS 1 EPS: OS 1

Page 37: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

-32-

5. Literatuurlijst.

1. Diktaat THE, Inleiding tot het practicum Digitale Rekenmachines, nr. 5.524.

2. Diktaat THE. Handleiding Rekenmachines,nr. 5.529.

3. Microcomputer-systeemarchitectuur, Stevens, Stubeg, Hoogezand, 1981.

voor het practicum Digitale

delen 1,2 en 3, Kemper en

4. MICROSIM, Program Development System, Intel 8080/8085, Reference Manual for PRIME host computers.

5. INTEL, component Data Catalog.

6. WPB-rapport nr. 0044, THE, De digitale PID-regelaar, H.M.M.G. Cordewener, october 1983.

7. WPB-rapport nr. 0045, THE, Ontwerp van een digitale PID-regelaar en toepassen van deze regelaar in snelheids- en positie-regelkringen voor DC-motoren, H.M.M.G. Cordewener, december 1983.

Page 38: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

BIJLAGE -33-

eoe5A INSTRUCTION SeT SUMMARV IV FUNCTIONAl. GROUPING T.b .... 1 ---.. VI. 11M ..... srOM _ •• 1 __ .. _

IIIIV •. ,

11011, .• WI,

''',. l." \., a

lX'" STU I

STU a lOU.

UJ.ua 1'14

lDA .. La

-_ .. --_ ........ --........ ---l __ ......

"""IC l __ _

,.0.£ l __ ......

""''''L s-._. StooaA_. l ... _

~.-. .... A_ l ... _ ....... L_

LilLO L""'l_. lCIOG ~D'! "'l

"-' "IU 011 _. - ...... ""'1' t .. _

_a ....... ,.0. e ... _ _II __ ...... L ....... _ .. """"4_f .• ... -•. '-_ ..... tall __

.0 '-_""'0' £0"_ .11 ,. ...... ,., .. , lolf_ ... "'·A_fl .. --x, .. t £0. __ ....

_"It ".L .. _,_ ~.--, --

__ CMo!1l

....... IIc.'II,., .. • t

• • \ •

a

II

II

o •

• • •

• • •

• • • • •

I I

• •

• • •

• •

II I

a o

• •

o a II II

• • •

o

o

a D

• a • • •

, . I 9 a a • c

f

o •

II .. ' --- . ".. - --.IC .... ... lilt ........ ......

Jl .... ... ., ... -... -, ... --...... -"'--oy­---­II.L .. _ -

• • , I • .0.

• • a 0

I

• •

• o

a a

---ez c. .... . r.lIl , ......... . er c ..... _ ell C ..... _ CPE Cajj ... __

CPO ......... 'oy_ RElU".

Milt "1tWtl_ .. ~ IZ 110 ....... .... Rill _ ..... ..... lIfO _ .. __

•• ,1 ..... _-

'IIIIE ..... " ...... " .....

11110 - ...... IV-RESTAIIT 1ST *_ 'UVTIOUTI'UT " 1_. OIlT 0._

IICR'III"T AID OleRE.1IT III ...... __

OCII. 0..-_ 1111111 1 .. _-.

OC'. 0_--. !lUI I .. _.ac

IUD

DCU au 0 GUll

ADO 400. AOet

AOOIII

.laC !II

--I .... _.o.e ,­I",,_ .... L -_.,ae Doc_O&E

0._111\

AdJt,.-tttA

... 'f9It .... A

*,..~." ... ~'t.A

.. ",..."toA

_ttl Un>,

AO* AcN1"""_ to A

A(I A4d I"' ..... " '0" .. rhc.'Y

0408 4d.lle •• HIL

0400 Add 0 I f I." Il 04011 """HllI.Mll

OAO 51 Atki " •• ""tmI. to lUll

SUITIIACT SUII

sal·

SUI !II

sa ...

SUI

~lItt""lfl If"""A

$v'" •• ,..,.,.. hom A .... tllM,. SulJff«f~l'NV

hontA.

Stdlt'.fI1\tlmOf'l'tom I..,ttl Ouno.

S..' ... ll"'fIM ......

""'" A

___ CI'

......... 01 ... " ..

• • o a

• • , a

• • I

• I

• • • • • • • •

• • o o I

I

• •

• • I

• •

o D

• a • • II • •

o I.

• o

• o

• I

1

o D

o •

o

I

• • • • o

• 8

• •

• , • • o

• I

o

• o

I

o o

Page 39: Een digitale -8-bit- PID-regelaar - pure.tue.nl filede PID-regelaar beschreven:n lit.[6]. De verschillen tussen de PID De verschillen tussen de PID regelaar in dit verslag (kortweg

.,

.s0{;1(

6 ..... "" .. rD~ ROM 2116 or2n2 RA.M 1185 lC., ,."

,-- ,"A" ,-- lin l.' • r- UT 1.1 • r- an I.' V- IHTa

r---

8282 8085 LA.TCH I ~.

CPU -,-M

&$

AU • lOG.C r--

III WI 1 I T I -. .

I J &

DATA BUS 8266 ~Jt.J --l ~"1 ' Z DRIVlR PRIV£W6. BUS DIUVU

I I .. I

I, r to DATA RJW &6 DA'" lJ .. t6 .I\IA '-IN '8 II"'A I/W

82~!)-O 8255-1 82~t-O I, •• 2f~-i ... w. 11 ... 1 -T~II 1,r.U,. I I

--0''''' :...owr • ~INr~ • • ... . J •

..... t"."" '-0,.., ..... " .. ----''- ........ 1....- ,---

_ .... INT -..... .... Hl'

,IL~~~ fT • --: --,- r-- .

I ;J J I a: I I .Jl I . I ,It" 1

#.IIDIlI .. 141' A .. ~A.

MOIUU au. A,TAO

--=- .1ll.IHTUl. T1IA' an"·, t .... ·· .. ·T •••••• ... , .... ""'.' RIT J' IHU .... _."U".,. emu.un , "ATII'.

I , i--

IHI

• i---. ,-

C6 DATA BIN CS D"TA ljU CS

. ~,

D"'" --OH'ROL IU~

NTAOl ---&5 CO

, !lATA I/w

u.f25Aao , ~t IHTA 8159 ""r' 8219 IRQ T

" .. '! .. ... , IH' ... , -'''--

DRIIIIII "!Via

--,

I ~, I

"6.1 ~CHEH"T"; ILOCK PIAGRAH

I eN .... I