• No results found

ÅBO AKADEMI LOGIKSTYRNING. Hannu Toivonen Jari Böling. Augusti Biskopsgatan 8 FIN Åbo Finland

N/A
N/A
Protected

Academic year: 2022

Share "ÅBO AKADEMI LOGIKSTYRNING. Hannu Toivonen Jari Böling. Augusti Biskopsgatan 8 FIN Åbo Finland"

Copied!
62
0
0

Loading.... (view fulltext now)

Full text

(1)

˚ ABO AKADEMI

TEKNISKA DEPARTMENT OF

FAKULTETEN ENGINEERING

Laboratoriet f¨ or Process Control

reglerteknik Laboratory

LOGIKSTYRNING

Hannu Toivonen Jari B¨ oling

Augusti 2012

Biskopsgatan 8

FIN–20500 ˚ Abo Finland

(2)
(3)

Inneh˚ all

0 Inledning 5

0.1 Litteratur . . . . 8

1 Klassisk logik och boolesk algebra 9 1.1 Insignaler, utsignaler och tillst˚ and . . . . 9

1.2 Propositionskalkyl . . . . 11

1.3 Boolesk algebra . . . . 12

1.4 N˚ agot om implementeringen av logiska funktioner . . . . 14

2 Booleska funktioner 17 2.1 Disjunktiv och konjunktiv normalform . . . . 17

2.2 F¨ orenkling av booleska uttryck . . . . 18

2.2.1 Karnaugh-diagram . . . . 19

2.2.2 QMC-metoden . . . . 24

2.2.3 System med flera utsignaler . . . . 29

2.2.4 Konjunktiv minimalform . . . . 31

2.3 Kombinatoriska automationsproblem . . . . 33

3 Sekvensstyrningsproblem 35 3.1 Syntes av sekventiella system . . . . 36

3.2 Deterministiska sekvensstyrningsproblem . . . . 41

4 Programmerbar logik 45 4.1 Funktionss¨ attet hos en PLC . . . . 46

4.2 Programmering av en PLC . . . . 47

4.2.1 L˚ ag-niv˚ a programmeringsspr˚ ak (IL) . . . . 48

4.2.2 Kontaktdiagram (LD) . . . . 49

4.2.3 Function Block Diagram (FBD) . . . . 51

5 Petri n¨ at 53

6 Planering av s¨ akerhet f¨ or styrsystem 59

3

(4)

4 INNEH˚ALL

(5)

Kapitel 0

Inledning

Man kan dela in regler- och styrproblem i tre grupper:

1. Reglering och styrning av procesesser som kan beskrivas med hj¨alp av differential- eller differen- sekvationer. Ing˚aende variabler beskrivs av reella tal. T.ex. temperatur, sp¨anning, position och dylikt.

r - + -

- Gk u -

Gp

y- 6

2. Styrning av sekventiella processer, vars dynamiska egenskaper karakteriseras av diskreta h¨andelser.

Ing˚aende variabler beskrivs av logiska tal eller heltal. T.ex. en ventil som kan vara ¨oppen eller st¨angd, en beh˚allare som kan vara tom, halvfull eller full.

3. Hybrida system, blandning av ovanst˚aende typer.

I samtliga fall s˚a ¨onskar man styra processessen s˚a att ¨onskad funktion uppn˚as. Kursen logikstyrning ¨ar inriktad p˚a grupp 2.

Exempel p˚a logikstyrningsproblem

• Processindustrin:

– Start och nedk¨orning av processer – Byte av driftstillst˚and

– S¨akerhetssystem, ˚atg¨arder vid felsituationer – Operation av batch-processer

• Styckegodsindsutrin – Operation av verktyg – Robotar

• Vardagen – Tjuvlarm – Bankomater – All slags elektronik

• Telefonv¨axlar

5

(6)

6 KAPITEL 0. INLEDNING

Angr¨ansande omr˚aden:

• Digitalteknik och elektronik

• Datateknik: Realtidssystem

Denna kurs fokuserar p˚a industriella sekvensstyrningsproblem och implementering med hj¨alp av program- merbar logik.

Exempel 0.1 Blandningsprocess

Reaktor

A B

? ?

VA VB

?

VR

Onskad funktion f¨¨ or blandningsprocessen:

Reaktorna skall fyllas med inneh˚allen i beh˚allarna A och B, reaktorns inneh˚all skall omr¨oras och upp- v¨armas till 80oC, varefter reaktorn skall t¨ommas.

(7)

7 Schematiskt:

Reaktorn tom VR st¨angd

Oppna V¨ A och VB

A t¨oms B t¨oms

St¨ang VAd˚a A tom

A t¨omd

St¨ang VB d˚a B tom

B t¨omd

Sl˚a p˚a uppv¨arming

Uppv¨arming

Sl˚a av uppv¨arming och

¨oppna VRa T ≥ 80oC

Reaktorn t¨oms

St¨ang VRd˚a reaktorn tom

Slut

Problemet att styra sekventiella processer av denna typ ¨ar ett exempel p˚a logikstyrning: styrningen kan realiseras med hj¨alp av logiska funktioner av typen

Utf¨or aktionen A ifall premissen P ¨ar uppfylld

Logikstyrning implementerades tidigare med hj¨alp av rel¨aer, och numera oftast med programmerbar logik.

Sm˚a sekvensstyrningsproblem kr¨aver ingen djupare analys, utan implementeringen kan vanligen baseras p˚a enkel boolesk algebra. St¨orre system ¨ar d¨aremot inte s˚a l¨atta att ¨overblicka, utan fordrar systematiska analysmetoder.

(8)

8 KAPITEL 0. INLEDNING

0.1 Litteratur

Litteratururvalet p˚a detta omr˚ade ¨ar inte s¨arskilt stort, och det finns egentligen ingen bok som skulle vara riktigt l¨amplig som kursbok. F¨oljande b¨ocker kan dock n¨amnas som bredvidl¨asning f¨or den intresserade:

1. L. Alm: Styrteknik. Studentlitteratur 1991. Fokuserar p˚a verkstads- och styckegodsprocesser.

2. W. Bolton: Programmable logic controllers. Newnes, fj¨arde upplagan, 2006.

3. G.C. Cassandras och S Lafortune: Introduction to discrete event systems. Kluwer 1999 och Springer 2007. Ganska teoretisk, behandlar Petri-n¨at utf¨orligt.

4. M. Costanza: Programmable logic controllers - The industrisl computer. Arnold 1997.

5. A.J Crispin: Programmable logic controllers and their engineering applications. McGraw-Hill 1997.

Inneh˚aller IEC-standarden f¨or programmering av PLC:n.

6. K.H. Fasol: Bin¨are steuerungstechnik. Springer 1988.

7. T. Floyd: Digital fundamentals. Prentice-Hall 1997.

8. S. Friedman: Logical design of automation systems. Prentice-Hall 1980.

9. B. Haag: Industriell systemteknik – Ell¨ara, elektronik och automation. Studentlitteratur 1998.

10. T.R. McCalla: Digital logic and computer design. MacMillan 1992.

11. E.W. Kamen: Industrial controls and manufacturing. Academic Press 1999.

12. J. Palmer och D. Perlman: Introduction to digital systems (Schaum’s outline). McGraw-Hill 1993.

13. M. Treseler: Designing state machine controllers using programmable logic. Prentice Hall 1992.

(9)

Kapitel 1

Klassisk logik och boolesk algebra

1.1 Insignaler, utsignaler och tillst˚ and

Ett sekvensstyrsystem kan schematiskt framst¨allas i form av f¨oljande diagram:

- -- --

- --

 .. 

. ... ...

... ... ... un

... u2 u1

ym

... y2 y1

xp

... x1

x+1, . . . , x+p Minne

Logisk funktion

Nytt tillst˚and Tillst˚and

Insignaler (fr˚an process) Utsignaler(till process)

Insignaler, utsignaler och tillst˚and antas i denna kurs ha logiska v¨arden. Utsignalernas Y ={yi} och det interna tillst˚andens X+ ={x+i } nya v¨arden best¨ams som funktioner av insignalerna U = {ui} och de tidigare tillst˚anden X = {xi}. Dessa funktioner kan i praktiken beskrivas med hj¨alp av klassisk logik eller, analogt, med boolesk algebra.

Exempel 1.1 Transport¨or

A B

Insignaler: U ={ui}

1. G˚a till v¨anster (← -knapp) 2. G˚a till h¨oger (→ -knapp)

3. Stopp (STOP-knapp)

4. L¨agessensor vid A (A) 5. L¨agessensor vid B (B)

9

(10)

10 KAPITEL 1. KLASSISK LOGIK OCH BOOLESK ALGEBRA Tillst˚and: X ={xi}

1. Stillast˚aende vid A 2. Stillast˚aende vid B

3. Stillast˚aende mellan A och B 4. P˚a v¨ag mot h¨oger (mot B) 5. P˚a v¨ag mot v¨anster (mot A) Utsignaler: Y ={yi}

1. Mot v¨anster (V) 2. Mot h¨oger (H)

3. Stilla (S)

Styrsystemets funktion kan representeras med hj¨alp av en graf, s.k. tillst˚andsgraf, d¨ar

• tillst˚and representeras av noder,

• tillst˚ands¨overg˚angar representeras av riktade l¨ankar mellan noderna, och

• insignal resp. utsignal associerade med tillst˚ands¨overg˚angen anges vid l¨anken.

-

xi xj

un/ym

Exempel 1.2 Tillst˚andsgraf f¨or styrsystemet i exempel 1.1.

1 3 2

5 : 4

→ /H

z A/S

y

A/S 9 ← /V

→ /H : 6

→ /H

?

← /V 6

ST OP/S

?

ST OP/S

I en tillst˚andstabell (Huffman-tabell) anges

xs/yk = (f¨oljande tillst˚and/utsignal) som funktion av insignaler och tillst˚and i tabellform.

Exempel 1.3 Tillst˚andstabell f¨or styrsystemet i exempel 1.1.

Insignaler

STOP A B

Tillst˚and 1 2 3 4 5

1. Vid A 1/S 4/H 1/S 1/S (1/S)

2. Vid B 5/V 2/S 2/S (2/S) 2/S

3. Mellan A och B 5/V 4/H 3/S 1/S 2/S

4. Mot B 3/S 4/H 3/S 4/H 2/S

5. Mot A 5/V 3/S 3/S 1/S 5/V

Vissa situationerna f¨orekommer ej normalt (beteckna dessa med parentes), endast vid felsituationer. F¨or att felsituationerna skall klaras av, b¨or man i praktiken definiera f¨ornuftiga tillst˚ands¨overg˚angar och aktioner ¨aven f¨or dessa situationer.

I praktiken kan sekvensstyrningsproblem ofta leda till t¨amligen komplicerade operationer. Det kr¨avs d˚a systematiska metoder vid planeringen av systemet. Analys och syntes av sekventiella processer baserar sig i h¨og grad p˚a klassisk logik och boolesk algebra. Vi skall d¨arf¨or b¨orja med att behandla dessa.

(11)

1.2. PROPOSITIONSKALKYL 11

1.2 Propositionskalkyl

Propositionskalkylen eller propositionslogiken ¨ar en del av den formella logiken som kan h¨arledas till- baka till Aristoteles (382 – 322 f.Kr.). I propositionskalkylen ¨ar grundbyggstenarna p˚ast˚aenden, eller propositioner. Ett p˚ast˚aende ¨ar antingen sant (S) eller falskt (F ).

Exempel 1.4 Propositioner

P : ’Granen ¨ar ett finskt tr¨adslag’

Q : ’Kokospalmen v¨axer vild p˚a ˚Aland’

Tydligen g¨aller P = S, Q = F .

I propositionskalkylen sammans¨atts propositioner till nya propositioner med hj¨alp av de logiska konnek- tiven ”och”, ”eller” samt negationen ”icke”. Man brukar anv¨anda beteckningarna

”eller” (OR)

”och” (AND)

P ”icke P” (NOT P)

Propositionkalkylens konstanter ¨ar S (sann) och F (falsk). F¨or dessa inf¨ors f¨oljande postulat, som ¨ar i enlighet med vardagens spr˚akbruk och intuition:

F∨ F = F (P 1)

S∨ S = S (P 2)

S∨ F = F ∨ S = S (P 3)

S∧ S = S (P 4)

F∧ F = F (P 5)

F∧ S = S ∧ F = F (P 6)

F = S (P 7)

S = F (P 8)

Ur dessa postulat f¨oljer f¨or en godtycklig proposition x (vars sanningshalt, S eller F , inte ¨ar given, dvs.

en variabel) f¨oljande samband:

x∨ x = x (R1)

x∨ x = S (R2)

x∨ S = S (R3)

x∨ F = x (R4)

x∧ x = x (R5)

x∧ x = F (R6)

x∧ F = F (R7)

x∧ S = x (R8)

x = x (R9)

Vidare kan logiska samband f¨or uttryck som inneh˚aller tv˚a eller flera propositioner h¨arledas. N˚agra av de viktigaste sambanden i propositionskalkylen kommer att diskuteras nedan i samband med den booleska algebran.

(12)

12 KAPITEL 1. KLASSISK LOGIK OCH BOOLESK ALGEBRA

1.3 Boolesk algebra

Boole introducerade ˚ar 1854 en tv˚av¨ard algebra som ¨ar isomorf1 med propositionskalkylen. P˚a detta s¨att var det m¨ojligt att beskriva den klassiska logiken matematiskt (i form av en tv˚av¨ard algebra). I boolesk algebra antar variabler n˚agot av v¨ardena (konstanterna) 0 eller 1. Operationerna i boolesk algebra ¨ar ELLER (OR), logisk summa (disjunktion), med beteckningen + (x + y)

OCH (AND), logisk produkt (konjuktion), med beteckningen· (x · y eller xy)

ICKE (NOT), logisk invers, med beteckningen x (= icke x). Beteckningarna x och¬x anv¨ands ¨aven.

Operationerna definieras med hj¨alp av f¨oljande postulat:

0 + 0 = 0 (P 1)

1 + 1 = 1 (P 2)

0 + 1 = 1 + 0 = 1 (P 3)

1· 1 = 1 (P 4)

0· 0 = 0 (P 5)

0· 1 = 1 · 0 = 0 (P 6)

0 = 1 (P 7)

1 = 0 (P 8)

Operationerna kan sammanfattas i form av en sanningstabell:

A B A A + B AB

0 0 1 0 0

1 0 0 1 0

1 1 0 1 1

0 1 1 1 0

F¨orutom ovann¨amnda operationer brukar man inf¨ora ytterligare ett antal operatationer:

NOR (icke eller) A + B

XOR (exklusivt eller) A⊕ B XNOR (exklusivt NOR) A⊕ B

NAND (icke och) AB

Dessa operationer beskrivs av sanningstabellen

A B A + B A⊕ B A ⊕ B AB

0 0 1 0 1 1

1 0 0 1 0 1

1 1 0 0 1 0

0 1 0 1 0 1

Den egenskap som g¨or boolesk algebra speciellt viktig ¨ar dess isomorfi med propositionskalkylen. Denna isomorfi ges enligt f¨oljande:

Boolesk algebra Propositionskalkyl

1 ←→ S

0 ←→ F

+ ←→

· ←→

x ←→ x

1isomorf = med samma struktur

(13)

1.3. BOOLESK ALGEBRA 13 Postulaten (P 1)− (P 8) f¨or propositionskalkyl respektive boolesk algebra ¨ar ekvivalenta om man substi- tuerar konstanter och operationer enligt ovan.

Alla de lagar i logiken som f¨oljer ur propositionskalkylens postulat (P 1)− (P 8) har s˚aledes sina exakta motsvarigheter i boolesk algebra. Den klassiska logiken (beskriven av propositionskalkyl) kan s˚aledes representeras rent algebraiskt i form av den tv˚av¨arda booleska algebran.

Sambanden (R1)− (R9) givna tidigare f¨or propositionskalkylen blir f¨or boolesk algebra:

x + x = x (R1)

x + x = 1 (R2)

x + 1 = 1 (R3)

x + 0 = x (R4)

x· x = x (R5) x· x = 0 (R6) x· 0 = 0 (R7) x· 1 = x (R8)

x = x (R9)

I f¨oljande tabell anges n˚agra av de viktigaste r¨aknereglerna f¨or tv˚a och tre variabler, som kan h¨arledas fr˚an postulaten (P 1)− (P 8).

Associationslagar:

(R10) x + (y + z) = (x + y) + z

(R11) x(yz) = (xy)z

Kommutationslagar:

(R12) x + y = y + x

(R13) xy = yx

Distributionslagar:

(R14) x(y + z) = xy + xz

(R15) x + yz = (x + y)(x + z)

Absorptionslagar:

(R16) x + xy = x

(R17) x(x + y) = x

Transivitetslagar (konsensus):

(R18) xy + xz + yz = xy + xz (R19) (x + y)(x + z)(y + z) = (x + y)(x + z) de Morgans lagar:

(R20) x + y = x· y

(R21) xy = x + y

Lagarna kan direkt generaliseras till flera variabler. De Morgans lagar generaliseras t.ex. till (R20) x1+ x2+ . . . + xn = x1· x2· . . . · xn

(R21) x1· x2· . . . · xn = x1+ x2+ . . . + xn

Anm. S˚asom nedan framg˚att, f¨oljer ur isomorfin mellan propositionskalkyl och boolesk algebra att alla lagar som kan h¨arledas f¨or den senare har sin motsvarighet i propositionskalkyl.

Uppgift 1.1 Ange de Morgans lagar med hj¨alp av propositionskalkyl.

Alla lagar i boolesk algebra f¨oljer ur postulaten (P 1)− (P 8). Lagarna kan visas och h¨arledas, antingen

• genom att unders¨oka de ing˚aende uttryckens v¨arden f¨or samtliga kombinationer av variabelv¨arden med hj¨alp av en sanningstabell, och konstaterande av ekvivalens (sk. perfekt induktion), eller

• genom algebraisk h¨arledning och anv¨andning av redan bevisade lagar.

(14)

14 KAPITEL 1. KLASSISK LOGIK OCH BOOLESK ALGEBRA Vi skall illustrera procedurerna med exempel:

Uppgift 1.2 Visa a) de Morgans lagar b) transivitetslagen (R18)

1.4 agot om implementeringen av logiska funktio- ner

C.E. Shannon visade ˚ar 1938 (i sitt diplomarbete) att boolesk algebra kan anv¨andas f¨or att beskriva funktionen hos vissa elektriska och elektroniska kretsar, t.ex. de som anv¨ands i telefonv¨axlar. Omv¨ant kan varje logisk samband som kan beskrivas med boolesk algebra implementeras elektroniskt.

L˚at tillst˚andet hos en kontakt representera en variabel x, s˚a att x = 1 d˚a kontakten ¨ar sluten x = 0 d˚a kontakten ¨ar ¨oppen och l˚at en sp¨anningsniv˚a representera en variabel z, enligt

z = 1 d˚a sp¨anningen ¨ar h¨og (typiskt 2.4− 5.5V ) z = 0 d˚a sp¨anningen ¨ar l˚ag (typiskt 0− 0.4V )

5.5V

2.4V z = 1

0.4V

0 z = 0

Operationerna i den booleska algebran kan d˚a implementeras med hj¨alp av s.k. logiska grindar. T.ex.

x y

1 z = xy (AND)

y x

1 z = x + y (OR)

I praktiken ¨ar den elektroniska realiseringen av olika grindtyper betydligt mer komplicerad. Tabell 1.1 ger en sammanfattning av symbolerna f¨or de enkla logiska grindarna.

(15)

1.4. N˚AGOT OM IMPLEMENTERINGEN AV LOGISKA FUNKTIONER 15

Tabell 1.1: Symbolerna f¨or de logiska grindarna (K¨alla: Sten Gustafsson)

OCH &

>1

X

A B A

B X A

B X

A 1 X

A 1 X

&

A

B X

>1

X

A B

A X B

=1

A X

X

X

X

X

X A

A

A

A

A B B B B

X = A + B X = A B.

X = A + B X = A B. X = A X = A

X = A + B Buffert

Inverterare

NAND

ELLER

NOR

XOR

Grind Funktion IEC−symbol Amerikansk symbol

F¨orutom symbolerna i tabell 1.1 anges invertering av insignalen symboliskt, t.ex.:

x = A· B:

B

A 1 &

x

B

A &

x

x = A + B:

B

A 1

1

≥ 1 x

B

A ≥ 1

x

De enkla logiska grindarna kan anv¨andas f¨or implementering av allm¨anna logiska funktioner, och kan s˚aledes utnyttjas f¨or processtyrningsproblem.

Uppgift 1.3 Planera ett n¨at som med hj¨alp av logiska grindar realiserar den logiska funktionen x = AB + AC

(16)

16 KAPITEL 1. KLASSISK LOGIK OCH BOOLESK ALGEBRA Det ¨ar l¨att att inse att de logiska grindarna ocks˚a kan implementeras mekaniskt, hydrauliskt eller pneuma- tiskt. I den sistn¨amnda representeras variablerna av ventill¨agen (¨oppen/st¨angd) samt tryck (h¨ogt/l˚agt).

Dessa metoder finns n¨armare beskrivna i speciallitteraturen.

Figur 1.1: Exempel p˚a mekaniska logiska grindar

Figur 1.2: Exempel p˚a pneumatiska logiska grindar

I praktiken implementeras ˚atminstone enklare logiska styrproblem ofta elektroniskt med hj¨alp av logiska grindar som baserar sig p˚a halvledarteknik, vilken ersatt tidigare rel¨ateknik. I omgivningar d¨ar elektro- niska komponenter ¨ar ol¨ampliga, t.ex. p.g.a. explosionsfara, anv¨ands ¨aven pneumatiska logiska grindar.

Mera komplicerade logikstyrningsproblem implementeras nuf¨ortiden med hj¨alp av s.k. programmerbar lo- gik. Dessa ¨ar sm˚a, billiga datorer speciellt konstruerade f¨or sekvensstyrningsproblem i industriell milj¨o.

Ocks˚a vanliga mikrodatorer anv¨ands. Realiseringen av sekvensstyrningsproblem med hj¨alp av program- merbara datorer tas upp i kapitel 4.

(17)

Kapitel 2

Booleska funktioner

2.1 Disjunktiv och konjunktiv normalform

at x1, . . . , xn vara booleska variabler. En boolesk funktion f (x1, . . . , xn) ¨ar d˚a en funktion av variab- lerna x1, . . . , xn som antar n˚agot av v¨ardena 0 eller 1. Funktionen kan beskrivas fullst¨andigt med en funktionstabell, i vilken funktionens v¨arde anges f¨or alla de olika kombinationer av variabelv¨arden.

F¨oljande exempel illustrerar hur funktionstabellen p˚a ett helt naturligt s¨att kan konstrueras p˚a basen av specifikationerna f¨or ett logikstyrningsproblem.

Exempel 2.1 Funktionstabell

Betrakta en konsol som styr en maskin. Maskinen kan startas och stoppas med en ON/OFF switch.

Dessutom finns en nyckel utan vilken konsolen ej kan opereras. Styrsystemet har f¨oljande insignaler:

A representerar ON/OFF switchen:

A = 1, om switchen befinner sig i ON l¨aget A = 0, om switchen befinner sig i OFF l¨aget B representerar l˚aset:

B = 1, om nyckeln ¨ar i B = 0, om nyckeln inte ¨ar i C representerar maskinen:

C = 1, om maskinen g˚ar C = 0, om maskinen st˚ar

Utsignalen X fr˚an styrsystemet skall styra maskinen:

X = 1 anger att maskinen skall g˚a,

X = 0 anger att maskinen skall stanna eller st˚a.

Utsignalen X skall vara definierad f¨or varje t¨ankbar kombination av insignalerna A,B och C. Detta kan sammanfattas i nedanst˚aende funktionstabell. Observera att man kan ta bort nyckeln utan att motorn st¨angs av, men att ON/OFF switchen d˚a slutar fungera.

Funktionstabell Minterm Maxterm

A B C X pi pi

0 0 0 0 A B C A + B + C

0 0 1 1 A BC A + B + C

0 1 0 0 ABC A + B + C

0 1 1 0 ABC A + B + C

1 0 0 0 AB C A + B + C

1 0 1 1 ABC A + B + C

1 1 0 1 ABC A + B + C

1 1 1 1 ABC A + B + C

17

(18)

18 KAPITEL 2. BOOLESKA FUNKTIONER Funktionstabellen definierar X som en boolesk funktion X(A, B, C). Oberoende av s¨attet p˚a vilket lo- gikstyrningsproblemet realiseras b¨or den booleska funktionen X = X(A, B, C) uttryckas i form av ett explicit booleskt uttryck i variablerna A, B och C.

Vi s¨oker allts˚a ett funktionsuttryck som antar de v¨arden som kolumnen f¨or X anger f¨or de olika varia- belkombinationerna. Ett s˚adant kan enkelt konstrueras p˚a f¨oljande s¨att. F¨or givna v¨arden p˚a variablerna A, B och C s˚a finns enbart en term pi best˚aende av produkten av alla variabler (med eller utan icke) som tar v¨ardet 1 (n¨amligen det som finns angivet i motsvarande rad i tabellen), medan de ¨ovriga ¨ar 0. Vi kan ta en pior varje situation vid vilken X skall bli 1, och uttrycka X som summan dessa termer (jmf.

tabellen)

X = A BC + ABC + ABC + ABC

I uttrycket ovan kallas A BC, osv., termer, och uttrycket f¨or X ¨ar ett exempel p˚a disjunktiv form (summa av produkter). En disjunktiv form d¨ar varje variabel f¨orekommer i varje term kallas disjunktiv normalform.

En term d¨ar varje variabel f¨orekommer kallas minterm (minimalpolynom, elementarprodukt). Termerna pi i tabellen ¨ar mintermer.

Vi kan ¨aven konstruera termer pi som f¨or givna v¨arden p˚a variablerna A, B och C ¨ar den enda summan av alla variabler (med eller utan icke) som ¨ar 0. Man kan p˚a motsvarande s¨att v¨alja alla termer pi som motsvaras av variabelv¨arden f¨or vilka X skall vara noll, och uttrycka X som produkten av dessa. I det h¨ar fallet f˚as

X = (A + B + C)· (A + B + C) · (A + B + C) · (A + B + C)

Detta uttryck ¨ar ett exempel p˚a konjunktiv form (produkt av summor). Faktorerna i en konjunktiv form kallas altermer. En konjunktiv form i vilken varje variabel f¨orekommer i varje alterm kallas konjunktiv normalform. Altermerna i en konjunktiv normalform kallas maxtermer (maximalpolynom, elementarsum- mor). Termerna pi i tabellen ¨ar maxtermer.

Ur konstruktionerna ovan ¨ar det uppenbart att vilken som helst boolesk funktion kan beskrivas med ett uttryck i disjunktiv form, eller alternativt ett uttryck i konjunktiv form (Shannons expansionsteorem).

Dessa uttryck kan konstrueras direkt p˚a basen av funktionstabellen. Detta resultat visar ocks˚a att en godtycklig boolesk funktion alltid kan uttryckas med hj¨alp av ett algebraiskt uttryck i den booleska algebran, vilket inte ¨ar helt sj¨alvklart p˚a f¨orhand.

2.2 orenkling av booleska uttryck

D˚a ett logikstyrningsproblem karakteriseras med hj¨alp av en eller flera booleska funktioner blir de erh˚allna booleska funktionsuttrycken ofta on¨odigt komplicerade. F¨or att kunna realisera en funktion m¨ojligast enkelt (minsta antalet logiska grindar, eller minsta antalet programsteg) ¨ar det av vikt att kunna f¨orenkla booleska uttryck. F¨orenklingen kan alltid g¨oras algebraiskt, genom att anv¨anda den booleska algebrans r¨aknelagar.

Uppgift 2.1 Hur m˚anga logiska grindar beh¨ovs att realisera den booleska funktionen i exempel 2.1?

Uppgift 2.2 F¨orenkla uttrycket x = (A + B)(B + C)(C + A)(ABC + A B C)

Den algebraiska metoden har ˚atminstone f¨oljande nackdelar:

1. Klar systematik saknas

2. Metoden besv¨arlig i synnerhet d˚a variablernas antal ¨okar

3. Metoden ger ingen garanti f¨or att det uttryck som erh˚alls faktiskt ¨ar det enklaste, och ej kan f¨orenklas vidare.

Det har utvecklats systematiska metoder f¨or f¨orenkling av booleska funktionsuttryck, med vilka f¨orenk- lingen kan g¨oras effektivare, och vilka producerar det enklast m¨ojliga uttrycken.

(19)

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 19

2.2.1 Karnaugh-diagram

En standard procedur f¨or f¨orenkling av booleska funktioner baserar sig egenskaperna hos s.k. Karnaugh- diagram. I dessa anges funktionsv¨ardena i rutor i ett diagram. Varje ruta motsvarar en kombination av variabelv¨arden. Nedan ges exempel p˚a Karnaugh-diagram (utan insatta funktionsv¨arden) f¨or tv˚a, tre, fyra och fem variabler.

Tv˚a variabler: Tre variabler:

A 0 1

B 0

1

AB 00 01 11 10

C 0

1

Fyra variabler: Fem variabler:

AB 00 01 11 10

CD 00 01 11 10

ABC

000 001 011 010 100 101 111 110

DE 00 01 11 10

Karnaugh-diagrammen ¨ar s˚a konstruerade, att variabelv¨ardena f¨or tv˚a avgr¨ansande (n¨arbel¨agna, adja- centa) rutor skiljer sig i en och endast en variabel. Omv¨ant skall tv˚a variabelkombinationer som skiljer sig i exakt en variabel finnas i n¨arbel¨agna rutor. H¨arvid uppfattas radernas och kolumnernas ¨andrutor som angr¨ansande. Diagrammet f¨or fem variabler kan uppfattas som tredimensionell, s˚a att den h¨ogra delen av diagrammet ligger bakom den v¨anstra.

F¨orenklingen av booleska funktioner med hj¨alp av Karnaugh-diagram baserar sig p˚a ovann¨amnda egen- skaper hos n¨arbel¨agna rutor, vilket illustreras av f¨oljande exempel.

Exempel 2.2 Karnaugh-diagram Betrakta den booleska funktionen

X = A BC + ABC + ABC + ABC

fr˚an exempel 2.1. Karnaugh-diagrammet f˚ar f¨oljande utseende (med endast ettorna insatta):

AB 00 01 11 10

C 0

1 1 1

1

1 X = AB + BC

Tack vare diagrammets konstruktion kan f¨orenklingarna ABC + ABC = AB A BC + ABC = BC

uppt¨ackas direkt fr˚an diagrammet. Man ser ytterligare att f¨orenklingen ABC + ABC = AC

kan g¨oras men detta leder ej till ett lika enkelt uttryck f¨or X.

(20)

20 KAPITEL 2. BOOLESKA FUNKTIONER

AB 00 01 11 10

C 0

1 1 1

1

1 X = A BC + ABC + AC

Man kan formulera fem regler f¨or f¨orenklingsproceduren:

1. Varje ruta som ineh˚aller en etta m˚aste t¨ackas av minst en cell (en ruta f˚ar t¨ackas av flera celler).

2. Endast rutor med ettor f˚ar t¨ackas av celler.

3. Cellerna m˚aste vara rektangul¨ara, och t¨acka en potens av 2 (1, 2, 4, 8, ...) antal rutor.

4. Antalet celler b¨or vara s˚a litet som m¨ojligt 5. Varje cell b¨or vara s˚a stor som m¨ojligt

Av dessa ¨ar reglerna 1-3 ovillkorliga medan 4-5 str¨avar till att hitta den enklaste realisationen.

Det faktum att man f˚ar t¨acka ettor med flera olika celler inneb¨ar i ovanst˚aende exempel att anv¨andande av alla tre m¨ojliga celler som t¨acker tv˚a rutor ger X = AB + BC + AC. Detta kan i sin tur f¨orenklas till AB + BC, m.h.a. transivitetslagen (R18). Om vi f¨oljer regel 4 s˚a kommer man direkt till detta uttryck F¨orenkling av booleska uttryck med hj¨alp av Karnaugh-diagram grundar sig s˚aledes p˚a att mintermer som kan kombineras till enklare termer upptar n¨arbel¨agna rutor i diagrammet. F¨orenklingarna kan d¨armed ses direkt fr˚an diagrammet.

F¨or fyra variabler har vi fyra typer av termer:

1. Mintermer med alla fyra variabler, som t¨acker en ruta, och som ej kan kombineras med andra termer:

AB 00 01 11 10

CD 00 01 11 10

1 ABCD

2. Termer med tre variabler, som t¨acker tv˚a rutor (tv˚a skilda exempel):

AB 00 01 11 10

CD 00 01 11 10

1 1

AB 00 01 11 10

CD 00 01 11 10

1 1

BCD B CD

3. Termer med tv˚a variabler, som t¨acker fyra rutor (tre skilda exempel):

(21)

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 21

AB 00 01 11 10

CD 00 01 11 10

1 1 1 1

AB 00 01 11 10

CD 00 01 11 10

1 1

1 1

AB 00 01 11 10

CD 00 01 11 10

1 1

1 1

CD AD B D

4. Termer med en variabel, som t¨acker ˚atta rutor (tv˚a skilda exempel):

AB 00 01 11 10

CD 00 01 11 10

1 1 1 1

1 1 1 1

AB 00 01 11 10

CD 00 01 11 10

1 1 1 1

1 1 1 1

D D

Karnaugh-diagrammen l¨ampar sig b¨ast f¨or funktioner med h¨ogst fyra variabler. Det g˚ar emellertid att anv¨anda metoden ¨aven f¨or funktioner med upp till ˚atta variabler.

Exempel 2.3 Fem variabler

ABC

DE 00 01 11 10

000 001 011 010 100 101 111 110 1 1

1 1

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

C + D

Exempel 2.4 Sex variabler

AB

CD

EF 00

01 11 10

00 01 11 10 00 01 11 10 00 01 11 10 00 01 11 10

00 01 11 10

1 1 1

1 1

1 1

1 1 1 1

1 1 1 1

1 1

1 1 1

1 1

AB + BCDE F + A BCDE F + AC D EF + AC DEF + ACDE

(22)

22 KAPITEL 2. BOOLESKA FUNKTIONER

Primimplikatorer

En funktion f (x1, x2, . . . , xn) s¨ages inkludera en annan funktion g(x1, x2, . . . , xn) om de v¨arden f¨or vari- ablerna x1, x2, . . . , xnor vilka g = 1, ocks˚a ger f = 1. S˚aledes inkluderar f t.ex. termerna i ett disjunktivt uttryck f¨or f .

En primimplikator π f¨or en funktion f (x1, x2, . . . , xn) definieras som en term i ett disjunktivt uttryck f¨or f som har den egenskapen, att om n˚agon av de i termen ing˚aende variablerna avl¨agsnas, s˚a inkluderar f inte den ˚aterst˚aende produkten.

Exempel 2.5

f (x1, x2, x3, x4) = x1x2x4+ x2x3x4+ x1x3x4

har primimplikatorerna

π1= x1x2x4 , π2= x2x3x4 , π3= x1x3

Obs. att x1x3x4 ¨ar inte en primimplikator.

x1x2

00 01 11 10

x3x4 00 01 11 10

1

1 1

1 1 1

Vid f¨orenkling av en boolesk funktion ¨ar man i f¨orsta hand intresserad av att uttrycka funktionen som en summa av primimplikatorer, ty man kan visa att detta resulterar i det i en viss mening enklaste uttrycket.

I praktiken s˚a skall man just f¨olja reglerna 4 och 5 givna ovan, d.v.s. vi b¨or f¨ors¨oka t¨acka ettorna med m¨ojligast f˚a och m¨ojligast stora celler. Och typiskt s˚a ¨ar antalet viktigare ¨an storleken vid minimiering av uttryck.

Utvecklingen av en funktion i primimplikatorer beh¨over inte vara entydig. En v¨asentlig (essential) pri- mimplikator ¨ar en primimplikator som alltid b¨or ing˚a i varje minimalform. En v¨asentlig primimplikator k¨annetecknas i ett Karnaugh-diagram av att den inkluderar ˚atminstone en ruta som ej kan ing˚a i n˚agon annan primimplikator. Det ¨ar viktigt att man b¨orjar med att ringa alla v¨asentliga primimplikatorer f¨or att det minimala uttrycket skall erh˚allas.

Exempel 2.6 ∗ anger rutor som definierar en v¨asentlig primimplikator.

ABC + ACD + ABC + ACD

AB 00 01 11 10

CD 00 01 11 10

1

1 1 1

1 1 1

1

Notera att vi enbart introducerar en term till (BD) om vi introducerar den st¨orsta m¨ojliga cellen i det h¨ar fallet.

(23)

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 23 Uppgift 2.3 Best¨am de v¨asentliga primimplikatorerna och den minimala formen f¨or funktionen i dia- grammet nedan. Till˚atet att l¨osa denna uppgift i kompendiet.

AB 00 01 11 10

CD 00 01 11 10

1 1 1

1

1 1 1 1

1 1 1

Sedan de v¨asentliga primimplikatorerna uttagits, kan de ˚aterst˚aende oinringade rutorna med ettor inklu- deras av primimplikatorer p˚a ett antal alternativa s¨att. Dessa skall v¨aljas s˚a att m¨ojligast enkla termer f˚as.

Exempel 2.7 Flera minimala uttryck

AB 00 01 11 10

CD 00 01 11 10

1 1 1 1 1 1

1

V¨asentliga primimplikatorer:

BD , A B D

Termen ABC D kan inkluderas antingen i A C D eller i ABC (icke-v¨asentliga primimplikatorer). Detta ger tv˚a alternativa minimala uttryck:

BD + A B D + A C D eller BD + A B D + ABC

Ofullst¨ andigt specificerade funktioner

De booleska funktioner som upptr¨ader i praktiska logikstyrningsproblem ¨ar ofta ofullst¨andigt specificera- de, dvs. funktionens v¨arde f¨or vissa kombinationer av variabelv¨arden ¨ar likgiltig. Vissa kombinationer av variabelv¨arden kan t.ex. vara fysikaliskt om¨ojliga (jmf. Ex. 1.1), s˚a att de aldrig f¨orekommer. Funktions- v¨ardet f¨or dessa om¨ojliga variabelkombinationer ¨ar d˚a likgiltigt.

S˚adana likgiltiga funktionsv¨arden kallas ”don’t care” tillst˚and. I ett Karnaugh-diagram anges de med ett streck, ”–”, och anger s˚aledes att funktionsv¨ardet kan vara 0 eller 1. Detta kan utnyttjas f¨or att konstruera ett m¨ojligast enkelt funktionsuttryck.

Exempel 2.8 ”Don’t care” tillst˚anden kan utnyttjas s˚a att funktionen kan uttryckas i den minimala formen

BD + AD + ABD AB 00 01 11 10

CD 00 01 11 10

1

1 1 1

- - - -

- -

(24)

24 KAPITEL 2. BOOLESKA FUNKTIONER

2.2.2 QMC-metoden

Den grafiska metoden med Karnaugh-diagram blir givetvis oanv¨andbar d˚a antalet variabler ¨okar. F¨or st¨orre problem fordras algoritmer som kan programmeras. Den vanligaste algoritmen f¨or f¨orenkling av booleska funktioner ¨ar en metod enligt Quine och McClusky (QMC-metoden), som skall beskrivas nedan.

Vi b¨orjar med att numrera funktionstabellens rader i enlighet med det bin¨ara talsystemet. F¨or tre vari- abler identifierar vi s˚aledes de olika variabelkombinationerna enligt f¨oljande tabell.

j A B C

0 0 0 0

1 0 0 1

2 0 1 0

3 0 1 1

4 1 0 0

5 1 0 1

6 1 1 0

7 1 1 1

(22 21 20)

Proceduren ¨ar sedan f¨oljande. F¨orst uppst¨alls en funktionstabell med endast de rader f¨or vilka funktionen antar v¨ardet 1 insatta. En funktion med Karnaugh-diagrammet nedan f˚ar s˚aledes funktionstabellen i Tab.

2.1.

AB 00 01 11 10

CD 00 01 11 10

1 1 1

1 1 1 1

1 1 1

N¨asta steg ¨ar att unders¨oka vilka rader i tabellen som kan kombineras till en enklare term. Detta ¨ar m¨ojligt d˚a tv˚a rader ¨overensst¨ammer s˚a n¨ar som i en variabel. Raderna 0 och 2 i Tab. 2.1(a) kombineras t.ex. till den nya raden

0 0 − 0

(Detta motsvarar kombination av termer enligt A B C D + A BCD = A B D)

De p˚a detta s¨att konstruerade nya raderna samlas till en ny tabell, Tab. 2.1(b). Proceduren upprepas tills ytterligare kombinationer inte mera kan g¨oras i Tab. 2.1(c). De termer som i denna procedur inte mera kan f¨orenklas ¨ar primimplikatorer. Dessa har i Tabell 2.1 betecknats p1, p2, . . . , p7.

S˚asom vi tidigare sett, ger en disjunktion av primimplikatorerna i allm¨anhet ej ett minimalt funktionsut- tryck, eftersom alla primimplikatorer inte beh¨over medtas. F¨or att finna vilka primimplikatorer som b¨or medtas uppg¨ors en primimplikatortabell, Tabell 2.2. I denna anger kolumnerna den ursprungliga funk- tionstabellens termer (Tab. 2.1 (a)), och raderna anger primimplikatorer. De termer som inkluderas av en primimplikator anges med ”x”. Proceduren ¨ar sedan f¨oljande.

1. De kryss som f¨orekommer ensamma i en kolumn omringas ( x ). Motsvarande primimplikator ¨ar en v¨asentlig primimplikator och b¨or medtas i funktionsuttrycket. De v¨asentliga primimplikatorerna anges med asterisk∗.

2. Alla kryss som f¨orekommer i en rad med omringat x anges med klammer, [x].

3. Ange alla de kryss som f¨orekommer i en kolumn med [x] med parentes, (x). Detta anger att mot- svarande term redan ing˚ar i de primimplikatorer som medtagits och inte beh¨over beaktas i forts¨att- ningen.

(25)

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 25

Tabell 2.1: Stegvis f¨orenkling

(a) (b) (c)

j A B C D

0 0 0 0 0

2 0 0 1 0

3 0 0 1 1

5 0 1 0 1

7 0 1 1 1

8 1 0 0 0

10 1 0 1 0

12 1 1 0 0

13 1 1 0 1

14 1 1 1 0

{j} A B C D

0, 2 0 0 - 0

0, 8 - 0 0 0

2, 3 0 0 1 - p1

2, 10 - 0 1 0

3, 7 0 - 1 1 p2

5, 7 0 1 - 1 p3

5, 13 - 1 0 1 p4

8, 10 1 0 - 0

8, 12 1 - 0 0

10, 14 1 - 1 0

12, 13 1 1 0 - p5

12, 14 1 1 - 0

{j} A B C D 0, 2, 8, 10 - 0 - 0 p6

8, 10, 12, 14 1 - - 0 p7

4. V¨alj fr˚an de ˚aterst˚aende valbara primimplikatorerna (p1−p5) ett antal s˚a att de ˚aterst˚aende kryssen medtas. Ange raderna med dubbel asterisk ∗∗. Valet skall g¨oras s˚a att funktionsuttrycket blir minimalt, dvs.

• Antalet termer (primimplikatorer) ¨ar minimalt,

• Termerna (primimplikatorerna) ¨ar korta (av tv˚a primimplikatorer i tabellen ¨ar den vars rad inneh˚aller de flesta kryssen den kortare).

Tabell 2.2: Primimplikatortabell j

0 2 3 5 7 8 10 12 13 14

p1 (x) x

∗∗ p2 x x

p3 x x

∗∗ p4 x x

p5 (x) x

p6 x [x] [x] [x]

p7 [x] [x] [x] x

I Tabell 2.2 ¨ar de valbara primimplikatorerna p1− p5 alla lika l˚anga. Det optimala valet ¨ar p2 och p4, ty alla andra val skulle kr¨ava minst tre primimplikatorer. Enligt Tabell 2.2 ges det minimala funktions- uttrycket som en disjunktion av primimplikatorerna p2, p4, p6 och p7, av vilka p6 och p7 ¨ar v¨asentliga primimplikatorer. Uttrycket blir (jmf. Tab. 2.1)

B D + AD + ACD + BCD

I exemplet i Tabell 2.1 var funktionen fullst¨andigt specificerad. Proceduren kan emellertid enkelt an- passas f¨or ofullst¨andigt specificerade funktioner, med ”don’t care” funktionsv¨arden f¨or vissa variabel- kombinationer. H¨arvid inkluderar man de rader f¨or vilka funktionsv¨ardet ¨ar ospecificerat (”don’t care”) i funktionstabellen (Tab. 2.1), och bildar primimplikatorerna s˚asom ovan. Vid uppst¨allningen av primimpli- katortabellen (Tab. 2.1), l¨amnas emellertid motsvarande kolumner bort. (D˚a funktionens v¨arde f¨or dessa tillst˚and inte spelar n˚agon roll, beh¨over de ju ej beaktas d˚a primimplikatorerna v¨aljs ut. D¨aremot b¨or de beaktas i det f¨orsta skedet d˚a primimplikatorerna bildas, ty de kan endast leda till kortare primimplika- torer, ej l¨angre.) Denna procedur leder till ett minimalt funktionsuttryck f¨or ofullst¨andigt specificerade funktioner.

(26)

26 KAPITEL 2. BOOLESKA FUNKTIONER Uppgift 2.4 F¨orenkla den logiska funktionen X med f¨oljande Karnoughdiagram (- motsvar don’t care tillst˚and):

AB 00 01 11 10

C 0

1

- 1 -

1 1 1

QMC-metoden kan enkelt programmeras. I Friedman Logical Design of Automation Systems (Prentice – Hall, 1990), ges ett Fortran-program primp, som f¨orenklar booleska uttryck. P˚a denna kurs hemsida s˚a finns ¨aven en Matlab-implementering av QMC-metoden tillg¨anglig, och en Scilab-version ¨ar ocks˚a under arbete.

Nedan visas en exempelk¨orning d¨ar programmet till¨ampats f¨or funktionen i Tabell 2.1 (a). Funktions- v¨ardena l¨ases in i ordningsf¨oljd, och programmet ger en f¨orteckning ¨over primimplikatorerna (observera att numreringen ej ¨overensst¨ammer med den i Tabellerna 2.1 och 2.2, primp sorterar primimplikatorer- na, s˚a de kommer i ordningen p6, p1, p2, p4, p3, p7, p5), samt anger vilka som ¨ar v¨asentliga och vilka som v¨aljs bland de valbara. I constraint table anges slutligen vilka mintermer de olika icke-v¨asentliga primimplikatorerna inkluderar (t¨acker).

% ~jboling/sst/primp

SIMPLIFICATION OF BOOLEN FUNCTIONS BY PRIME IMPLICANT ANALYSIS

**************************************************************

NUMBER OF VARIABLES : 4

INPUT FUNCTION VALUES IN TRUTH TABLE

( 16 VALUES: 1 = TRUE / 0 = FALSE / -1 = DON’T CARE ) : 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0

*** BOOLEAN MINIMIZATION PROGRAM ***

THIS FUNCTION CONTAINS 4 VARIABLES A LISTING OF THE INPUT DATA FOLLOWS TRUE MINTERMS = 1

FALSE MINTERMS = 0

REDUNDANT MINTERMS (DON’T CARES) = -1

0 0 = 1, 1 = 0, 2 = 1, 3 = 1, 4 = 0,

5 = 1, 6 = 0, 7 = 1, 8 = 1, 9 = 0,

10 = 1, 11 = 0, 12 = 1, 13 = 1, 14 = 1,

15 = 0,

0 THE FOLLOWING IS A LIST OF THE PRIME IMPLICANTS OF THE MINIMIZED FUNCTION.

ESSENTIAL PRIME IMPLICANTS ARE SO LABELED, AND PRIME IMPLICANTS SELECTED FROM A CYCLIC CHART ARE LABELED AS CHOSEN.

(27)

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 27

NO. COST PRIME IMPLICANTS

A B C D

1 2 - 0 - 0 ESSENTIAL

2 3 0 0 1 -

3 3 0 - 1 1 CHOSEN

4 3 - 1 0 1 CHOSEN

5 3 0 1 - 1

6 2 1 - - 0 ESSENTIAL

7 3 1 1 0 -

- INDICATES A MISSING VARIABLE, 0 INDICATES A COMPLEMENTED VARIABLE AND 1 INDICATES A TRUE VARIABLE.

THE FUNCTION IS REPRESENTED BY THE SUM OF BOTH THE ESSENTIAL AND THE CHOSEN PRIME IMPLICANTS.

CONSTRAINT TABLE --- COVERED COVERING PRIME MINTERM IMPLICANTS.

3 2 3

5 4 5

7 3 5

13 4 7

Samma problem kan ocks˚a l¨osas med matlab-rutinen qmc, hittas allts˚a p˚a kursens hemsida:

>> qmc

Program for minimizing Boolean expressions with the QMC-method Either a truth table or a boolean expression should be given.

Use standard MATLAB logical operators: AND = &

OR = | NOT = ~

Logical terms should be separated with parentesis: (A | ~B) & (B |

~C) & (C | ~A) & ((A & B & C)|(~A & ~B & ~C))

Logical expression (L) or truth table (T)): T Number of variables: 4

A B C D

0: 0 0 0 0 1 1: 0 0 0 1 0 2: 0 0 1 0 1 3: 0 0 1 1 1 4: 0 1 0 0 0 5: 0 1 0 1 1 6: 0 1 1 0 0 7: 0 1 1 1 1 8: 1 0 0 0 1 9: 1 0 0 1 0 10: 1 0 1 0 1 11: 1 0 1 1 0 12: 1 1 0 0 1 13: 1 1 0 1 1 14: 1 1 1 0 1 15: 1 1 1 1 0 Processing....

(28)

28 KAPITEL 2. BOOLESKA FUNKTIONER

Truth table:

i A B C D f

---

0 0 0 0 0 1

1 0 0 0 1 0

2 0 0 1 0 1

3 0 0 1 1 1

4 0 1 0 0 0

5 0 1 0 1 1

6 0 1 1 0 0

7 0 1 1 1 1

8 1 0 0 0 1

9 1 0 0 1 0

10 1 0 1 0 1 11 1 0 1 1 0 12 1 1 0 0 1 13 1 1 0 1 1 14 1 1 1 0 1 15 1 1 1 1 0 Prime implicants:

1: 0 2 8 10 2: 8 10 12 14

3: 2 3 - -

4: 3 7 - -

5: 5 7 - -

6: 5 13 - - 7: 12 13 - -

Essential prime implicants:

1 2

Chosen prime implicants:

4 6

Logical expression: (~B & ~D) | (A & ~D) | (~A & C & D) | (B & ~C & D)

Matlab-programmet klarar ocks˚a av att f¨orenkla logiska uttryck, det generar sj¨alv en sanningstabell och sedan ber¨aknar minimalt uttryck. Nedan l¨oses uppgift 2.2.

>>qmc

Program for minimizing Boolean expressions with the QMC-method Either a truth table or a boolean expression should be given.

Use standard MATLAB logical operators: AND = &

OR = | NOT = ~

Logical terms should be separated with parentesis: (A | ~B) & (B |

~C) & (C | ~A) & ((A & B & C)|(~A & ~B & ~C))

Logical expression (L) or truth table (T)): L Give logical function:

(A|~B)&(B|~C)&(C|~A)&((A&B&C)|(~A&~B&~C)) Processing....

(29)

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 29

Truth table:

i A B C f --- 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 0 4 1 0 0 0 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1 Prime implicants:

1: 0 2: 7

Essential prime implicants:

1 2

Logical expression: (~A & ~B & ~C) | (A & B & C)

2.2.3 System med flera utsignaler

I praktiken har man ofta inte en, utan flera funktioner x1, x2, . . . , xn, som ¨ar funktioner av variablerna A, B, . . .. I s˚adana fall kan man givetvis konstruera ett minimalt uttryck f¨or varje funktion separat enligt metoderna som behandlats ovan. En f¨orenkling kan emellertid f˚as om man beaktar att vissa termer kan vara gemensamma f¨or de olika funktionerna. S˚adana termer som delas av flera funktioner f˚as fram genom att betrakta produkter av formen x1· x2, x1· x3, x1· x2· x3, . . .. Vi skall illustrera proceduren med ett exempel.

Exempel 2.9 Flera utsignaler

Betrakta funktionerna x1, x2 och x3 med Karnaugh-diagrammen i Fig 2.1. I Fig 3.5 ges Karnaugh- diagrammen f¨or x1, x2och x3 samt produktfunktionerna x1· x2, x1· x3, x2· x3och x1· x2· x3. Primimpli- katorerna inf¨ors nu som normalt men s˚a att man startar med produkten av h¨ogsta grad, x1· x2· x3, forts¨atter med x1 · x2, x1 · x3 och x2· x3, och d¨arefter betraktar x1, x2 och x3. H¨arvid markeras en primimplikator inte om den redan f¨orekommer i en produktfunktion av h¨ogre grad.

AB 00 01 11 10

CD 00 01 11 10

1 1 1

1

1 1

AB 00 01 11 10

CD 00 01 11 10

1 1 1

1 1

AB 00 01 11 10

CD 00 01 11 10

1 1

1 1

1 1

x1 x2 x3

Figur 2.1: Utsignalerna x1, x2 och x3 Proceduren ger primimplikatorer i Tab. 2.3.

(30)

30 KAPITEL 2. BOOLESKA FUNKTIONER

AB 00 01 11 10

CD 00 01 11 10

1 1 1

1

1 1

AB 00 01 11 10

CD 00 01 11 10

1 1 1

1 1

AB 00 01 11 10

CD 00 01 11 10

1 1

1 1

1 1

x1 x2 x3

AB 00 01 11 10

CD 00 01 11 10

1 1

1 1

AB 00 01 11 10

CD 00 01 11 10

1

1

1 1

AB 00 01 11 10

CD 00 01 11 10

1 1

AB 00 01 11 10

CD 00 01 11 10

1 1

x1· x2 x1· x3 x2· x3 x1· x2· x3

Figur 2.2: F¨orenkling av x1, x2 och x3

Tabell 2.3: Primimplikatorer x1· x2· x3: p1 = ABC

x1· x3: p2 = ABC D p3 = BCD x1· x2: p4 = ABC D

p5 = ABCD

x3: p6 = A BD p7 = BC x2: p8 = ABC

p9 = BCD x1 p10 = BC D

p11 = ABC

Eftersom termen p1 = ABC kan anv¨andas i alla tre funktioner b¨or den medtas. Termerna p2 − p5

upptr¨ader i tv˚a funktioner och ¨ar s˚aledes lovande kandidater f¨or att medtas. Primimplikatorn p6hos x3

¨ar v¨asentlig och b¨or medtas. Termen p7 inkluderas d¨aremot av p1, p3 och p6. Allts˚a medtas ¨aven p3. Aven p¨ 2 m˚aste medtas f¨or att funktionen x3 skall kunna beskrivas. ˚Aterst˚ar de fyra rutor som t¨acks av termerna p4, p5, p8, p9, p10 och p11. Fr˚an figuren ses att minst tre termer b¨or medtas: antingen p4, p9

och p11, eller p5, p8 och p10. Detta resulterar i de minimala formerna x1 = ABC + BCD + ABC D + ABC x2 = ABC + ABC D + BCD

x3 = ABC + ABC D + BCD + A BD respektive

x1 = ABC + BCD + ABCD + BC D x2 = ABC + ABCD + ABC

x3 = ABC + ABC D + BCD + A BD

Uppgift 2.5 Konstruera ett n¨at som med hj¨alp av logiska grindar realiserar funktionerna x1, x2och x3.

Man kan ¨aven f¨orenkla logiska uttryck med flera utsignaler med QMC-metoden. Man b¨orjar med att s¨oka efter primimplikatorer som vanligt, fast man skall g¨ora det f¨or samtliga utsignaler och samtliga kombina- tioner av produkter av utsignaler. Varje kombination betraktas som separat fall, med separata primimpli- katorer. I exempel 2.9 inneb¨ar det att man skall best¨amma primimplikatorer f¨or alla 7 Karnough-diagram.

Det har vi i praktiken redan gjort, s˚a l˚at oss g˚a till f¨oljande steg, som ¨ar att bilda en primimplikatortabell, som ser ut enligt f¨oljande: Sedan skall f¨oljande steg utf¨oras:

(31)

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 31

Tabell 2.4: Primimplikatortabell

x1 x2 x3

2 4 10 11 12 13 4 5 10 11 13 1 2 3 10 11 12

p1 x x

p3 x x x1

p10 x x

p11 x x

p1 x x

p8 x x x2

p9 x x

p1 x x

p2 x

p6 x x x3

p7 x x x x

p1 x x x x

p4 x x x1· x2

p5 x x

p1 x x x x

p2 x x x1· x3

p3 x x x x

p1 x x x x x x x1· x2· x3

1. De kryss som ¨ar ensamma i en kolumn skall inringas x , de motsvarar en v¨asentlig primimplikator.

M¨ark motsvarande rader med asterisk∗.

2. Kontrollera ¨aven v¨asentliga primimplikatorer f¨or de enskilda utsignalerna. Om de ¨ovriga kryssen i samma kolumn kommer fr˚an samma primimplikator, s˚a ¨ar denna primimplikator oundviklig, och krysset skall inringas (p˚a den plats d¨ar det f¨orekommer l¨angst ner). M¨ark ¨aven dessa rader med asterisk∗. ¨Ovriga kryss i kolumnen anges med parentes.

3. Alla rader d¨ar inringat kryss f¨orekommer skall anges med klammer [x].

4. Ange alla de kryss som f¨orekommer i en kolumn med [x] med parentes, (x). Detta anger att mot- svarande term redan ing˚ar i de primimplikatorer som medtagits och inte beh¨over beaktas i forts¨att- ningen.

5. V¨alj fr˚an de ˚aterst˚aende valbara primimplikatorerna ett antal s˚a att de ˚aterst˚aende kryssen medtas.

M¨ark raderna med dubbel asterisk∗∗. Valet skall g¨oras s˚a att funktionsuttrycket blir minimalt.

6. Funktionerna konstrueras genom att ta summan av de f¨or varje enskild funktion v¨asentliga, ound- vikliga och valda primimplikatorer. Dvs man tittar p˚a en kolumn ˚at g˚angen och tar alla primimpli- katorer som har kryss med ring runt, eller som ¨ar vald. De primimplikatorer som har kryss med enbart klamrar beh¨ovs eventellt inte, detta m˚aste skilt kontrolleras. I exemplet ovan s˚a ¨ar p2 ound- viklig f¨or x3, men ej f¨or x1 (d¨arf¨or att p2acks av p10 eller p11 som ¨ar valbara f¨or x1), och den beh¨over s˚aledes enbart medtas i x3.

Vi kommer givetvis till samma resultat som i exempel 2.9 p˚a detta s¨att. D˚a vi g¨or ovann¨amnda procedur s˚a kommer vi att, som tidigare, se att p6 ¨ar en v¨asentlig primimplikator. Det som inte tidigare framgick

¨

ar att p1, p2och p3 ¨ar oundvikliga f¨or en disjunktiv form, vilket nu inses via punkt 2 i proceduren ovan.

2.2.4 Konjunktiv minimalform

De minimala uttryck som studerats ovan ¨ar disjunktiva minimalformer (summor av produkter). Det ¨ar ofta av vikt att ocks˚a unders¨oka den konjunktiva minimalformen (produkt av summor). Enligt de Morgans lag (R21) kan ett konjunktivt uttryck f¨or en funktion x uttryckas med hj¨alp av ett disjunktivt uttryck f¨or x. Den konjunktiva minimalformen kan s˚aledes best¨ammas genom att best¨amma den disjunktiva normalformen f¨or x.

(32)

32 KAPITEL 2. BOOLESKA FUNKTIONER Exempel 2.10 Betrakta en funktion X med f¨oljande Karnaugh-diagram.

AB 00 01 11 10

CD 00 01 11 10

1 1 1

1 1 1

1 1 1

Den minimala disjunktiva formen ¨ar

X = BD + BC + AD + ACor X f˚as ett minimalt uttryck enligt f¨oljande.

AB 00 01 11 10

CD 00 01 11 10

0 1 1 1

0 0 0 0

0 1 1 1

0 1 1 1

Disjunktiv minimalform f¨or X:

X = A B + CD

Den konjunktiva minimalformen f¨or X f˚as med hj¨alp av de Morgans lagar (R21), (R20): X = A B + CD = A B· CD = (A + B) · (C + D)

I detta exempel leder den konjunktiva minimalformen till ett enklare uttryck ¨an den disjunktiva.

Man kan ¨aven best¨amma den konjuktiva minimalformen med QMC-metoden. Man skall d˚a st¨alla upp funktionstabellen med endast de rader f¨or vilka funktionen antar v¨ardet 0 (i st¨allet f¨or 1), ¨ovriga steg of¨or¨andrade. Detta ger p˚a samma s¨att som med Karnough-diagram en disjunktiv minimalform f¨or X, som kan omvandlas till konjunktiv minimalform f¨or X med de Morgans lagar.

Vid anv¨andning av programmet primp eller qmc s˚a skall man ta logisk icke p˚a varje enskilt funktionsv¨arde, s˚a ber¨aknar programmet disjunktiv minimalform f¨or X, som kan omvandlas till konjunktiv minimalformor X.

Man kan ¨aven se att man fr˚an Karnoughdiagram eller QMC-primimplikatorer direkt kan utl¨asa den konjunktiva minimalformen. Man skall g¨ora som n¨ar man utl¨aser den disjunktiva normalformen, men byta ut + mot · och vise versa (och s¨atta parenteser d¨ar det beh¨ovs, f¨or + skall ju ske f¨ore ·), samt ta logiskt icke p˚a alla enskilda variabler. Detta ¨ar analogt med hur konjunktiv normalform best¨amdes i kapitel 2.1.

F¨or att det minimala uttrycket skall hittas b¨or s˚av¨al den disjunktiva som den konjunktiva minimalformen unders¨okas.

Observera att f¨or programmering av uttrycken kan det totala antalet operationer (additioner och multi- plikationer) ofta ytterligare minskas genom distributionslagarna (R14), (R15). T.ex.

X = BD + BC + AD + AC = B· (D + C) + A · (D + C)

= (A + B)· (D + C)

I detta fall r˚akade detta leda till den konjunktiva minimalformen. Detta g¨aller dock ej allm¨ant.

(33)

2.3. KOMBINATORISKA AUTOMATIONSPROBLEM 33

2.3 Kombinatoriska automationsproblem

I ett kombinatoriskt automationsproblem best¨ams utsignalerna fr˚an styrsystemet som booleska funktio- ner av insignalerna.

- --

- --

un

u2

u1

yn

y2

y1

Insignaler Utsignaler

(fr˚an process) (till process)

... ...

J¨amf¨or Ex. 2.1. De booleska funktionerna f¨oljer ur specifikationerna och kan sammanfattas i form av en funktionstabell. De i avsnitt 2.2 diskuterade metoderna kan sedan till¨ampas f¨or att vid behov f¨orenkla de booleska uttrycken.

Hasard

D˚a ett kombinatoriskt automationsproblem realiseras med hj¨alp av logiska grindar b¨or man beakta even- tuell f¨orekomst av sk. statisk hasard, och konstruera n¨atet s˚a att det ¨ar hasardfritt. Problemet illustreras av f¨oljande exempel.

Exempel 2.11 Betrakta en funktion X med Karnaugh-diagrammet nedan.

AB 00 01 11 10

C 0

1

1

1 1 1

Funktionen har tv˚a v¨asentliga primimplikatorer vilka ger den disjunktiva minimala formen X = AC + AB

Funktionen kan tydligen realiseras med hj¨alp av tv˚a AND- och en OR-grind:

C B A

AC AB

X

&

&

≥ 1

Betrakta nu vad som h¨ander d˚a insignalerna ¨andras fr˚an 011 till 111:

AB 00 01 11 10

C 0

1

1 1 1-1

(34)

34 KAPITEL 2. BOOLESKA FUNKTIONER Funktionen X har fortfarande v¨ardet 1 och ¨andras s˚aledes ej. I praktiken ¨ar emellertid tv˚a grindar aldrig exakt lika snabba. Om den nedre grinden i figuren ¨ar n˚agot snabbare ¨an den ¨ovre, s˚a ¨ar utsignalerna fr˚an AND-grindarna 0 under ett kort ¨ogonblick efter att den nedre grindens utsignal ¨andrats fr˚an 1 till 0, men innan den ¨ovre grindens utsignal ¨andrats fr˚an 0 till 1. Systemets utsignal ser d˚a ut s˚a h¨ar:

0 -

1 X

t Detta o¨onskade beteende kallas statisk hasard.

Statisk hasard kan undvikas genom att observera att hasard inte f¨orekommer f¨or variabelf¨or¨andringar som sker inom en primimplikator som medtagits i realiseringen (t.ex. ¨andringen 001 till 011 f¨ororsakar ej hasard f¨or n¨atet ovan). Vi inkluderar d¨arf¨or l¨ampliga icke-v¨asentliga primimplikatorer f¨or att undvika hasard:

AB 00 01 11 10

C 0

1

1

1 1 1

I icke-v¨asentlig primimplikator X uttrycks nu i den icke-minimala formen

X = AC + AB + BC Denna funktion kan realiseras med tre AND- och en OR-grind:

C B A

X

&

&

&

≥ 1

Denna realisering ¨ar hasardfri.

Nuf¨ortiden f¨orverkligas logikstyrningsproblem oftast med hj¨alp av programmerbar logik eller mikrodato- rer, i vilka de booleska funktionerna programmeras. Dessa fungerar s˚a att utsignalerna ges nya v¨arden f¨orst d˚a hela programmet utf¨orts, varefter cykeln upprepas, osv. S˚aledes uppst˚ar problemet med statisk hasard inte vid implementering med hj¨alp av programmerbar logik resp. mikrodatorer.

(35)

Kapitel 3

Sekvensstyrningsproblem

Vid kombinatoriska styrproblem av den typ som betraktades i avsnitt 2.3, och i Ex. 2.1, best¨amdes utsignalerna fr˚an styrsystemet som booleska funktioner av insignalerna. F¨or att f¨orverkliga mera generella sekvensstyrningsproblem b¨or systemet ocks˚a h˚alla reda p˚a tillst˚andet som processen befinner sig i vid en given tidpunkt. Detta sker i praktiken genom att inf¨ora tillst˚andsvariabler{xi}, vilkas v¨arden definierar systemets olika tillst˚and. Styrsystemet kan schematiskt beskrivas med f¨oljande figur.

- -- --

- --

 .. 

. ... ...

... ... ... un

... u2

u1

ym

... y2

y1

xp ... x1

x+1, . . . , x+p Minne

Logisk funktion

Nytt tillst˚and Tillst˚and

Insignaler (fr˚an process) Utsignaler(till process)

Figur 3.1: Styrsystem med minne

H¨ar ¨ar utsignalerna y1, . . . , ymtill processen och tillst˚andsvariablernas nya v¨arden x+1, . . . , x+p (det nya till- st˚andet) booleska funktioner av insignalerna u1, . . . , unfr˚an processen samt tillst˚andsvariablerna x1, . . . , xp

(det tidigare tillst˚andet).

De booleska funktionerna kan behandlas med de metoder som diskuterades i avsnitt 2. Det nya problemet som tillkommer vid sekvensstyrningsproblem ¨ar att definiera tillst˚and och tillst˚andsvariabler samt att best¨amma hur de nya v¨ardena x+1, . . . , x+p skall best¨ammas.

Sekvensstyrningsproblem kan ytterligare indelas i deterministiska sekvensstyrningsproblem, d¨ar processen skall genomg˚a en p˚a f¨orhand best¨amd sekvens (t.ex. fyllning och t¨omning av reaktor), och stokastis- ta sekvensstyrningsproblem, d¨ar systemet skall funktionera rationellt f¨or godtyckliga insignalsekvenser (jmf. Ex. 1.1). De stokastiska sekvensstyringsproblemen ¨ar i allm¨anhet besv¨arligare att behandla ¨an de deterministiska.

Vippor

Medan kombinatoriska styrproblem kan realiseras enbart med hj¨alp av logiska grindar, fordrar sekventiella styrproblem dessutom element som h˚aller reda p˚a tillst˚andet, dvs. fungerar som minne. I elektroniken realiseras minnesfunktioner med hj¨alp av vippor (flip-flops).

Den viktigaste typen av vippa ¨ar RS-vippan (Reset-Set) (¨aven SR-vippa), vars symbol och sanningstabell ges i Fig. 3.2

Vippan fungerar allts˚a s˚a, att f¨or S = 1 (Set) blir x = 1, f¨or R = 1 (Reset) blir x = 0, och f¨or R = S = 0orblir x vid sitt tidigare v¨arde. Vippan fungerar allts˚a som en minnesfunktion, d¨ar v¨ardet hos variabeln

35

References

Related documents

Styrelsen för Ab Yrkeshögskolan vid Åbo Akademi och sty- relsen för Stiftelsen Arcada återupptog i januari 2013 diskus- sionen om samordning och en eventuell fusion mellan Novia

Under våren fanns studentlaget representerat på följande föreningars årsfester: Österbottniska Nationen vid Åbo Akademi den 10 mars, Nyländska Nationen vid Åbo Akademi den 17 mars,

Det innebär alltså att fältet själv inte kommer kopieras över till ett nytt fält som hör till funktionen (det som kallas värdeanrop, se tidigare), utan bara minnesadressen till

Ingeman som hade torparekontraktet fick flytta till annat ställe och det blev på Mattis ägor i Frostenstorp.. Det torp som nämns i Norra Esseboda ägdes en tid av

Kommentera både den information du fick via Åbo Akademi och direkt från värduniversitet!. 2.2 Kan man själv förbereda sig för

Arrangör: Västra Nylands folkhögskola Introduktion till psykologin, 10 sp Tidpunkt: 20-21.10, 24-25.11 2006. Socialpsykologi, 5 sp

De nya kontakterna har även kommit till nytta för att bjuda in föreläsare till pedagogiska seminarier, hitta en lämplig facilitator för LiF-processen samt kontakter för

Vi vill rikta ett stort tack till våra samarbetspartners: TFiF, TEK, Åbo Akademi, Fakulteten för naturvetenskaper och teknik, Kårkaféerna, ASG och Glashandeln -utan er hade vi