Industriella Styrsystem Övningskompendium

Relevanta dokument
Industriella Styrsystem (TSIU04, TSIU06) Övningskompendium

Industriella Styrsystem Övningskompendium

Industriella Styrsystem Övningskompendium

Grunderna i stegkodsprogrammering

PID N7:0 N9:0 N9:2. PID-implementering i PLC. Laboration i industriella styrsystem. Denna version: 2 februari Namn: Personnr: Datum: Godkänd:

Industriella styrsystem, TSIU06. Föreläsning 2

PID N7:0 N9:0 N9:2. PID-implementering i PLC. Laboration i industriella styrsystem. Denna version: 16 april Namn: Personnr: Datum: Godkänd:

Industriella styrsystem, TSIU04. Föreläsning 1

Föreläsning 2. Reglerteknik AK. c Bo Wahlberg. 3 september Avdelningen för reglerteknik Skolan för elektro- och systemteknik

Lunds Tekniska Högskola Avdelningen för industriell elektroteknik och automation

REGLERTEKNIK Laboration 3

PID N7:0 N9:0 N9:2. PID-implementering i PLC. Laboration i industriella styrsystem. Denna version: 31 januari Namn: Personnr: Datum: Godkänd:

Lösningar till tentamen i styr- och reglerteknik (Med fet stil!)

TSIU61: Reglerteknik. Sammanfattning från föreläsning 3 (2/4) ˆ PID-reglering. ˆ Specifikationer. ˆ Sammanfattning av föreläsning 3.

TSIU61: Reglerteknik. PID-reglering Specifikationer. Gustaf Hendeby.

Systemteknik/Processreglering F2

F13: Regulatorstrukturer och implementering

TSIU06 - Lektion 1. Johan Dahlin [johan.dahlin(at)isy.liu.se] 14 mars Mycket viktigt att ni ställer frågor om ni inte förstår!!

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

Läran om återkopplade automatiska system och handlar om hur mätningar från givare kan användas för att automatisk göra förändringar i processen.

Föreläsning 11. Reglerteknik AK. c Bo Wahlberg. 8 oktober Avdelningen för reglerteknik Skolan för elektro- och systemteknik

Försättsblad till skriftlig tentamen vid Linköpings universitet

REGLERTEKNIK Laboration 5

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

Industriella styrsystem, TSIU06. Föreläsning 1

Föreläsning 11 Reglerteknik AK

Industriell reglerteknik: Föreläsning 4

Regulator. G (s) Figur 1: Blockdiagram för ett typiskt reglersystem

Implementering av PID-regulatorer med dator

PID-regulatorn. Föreläsning 9. Frekvenstolkning av PID-regulatorn. PID-regulatorns Bodediagram

Industriell reglerteknik: Föreläsning 6

Reglerteknik AK. Tentamen 9 maj 2015 kl 08 13

Försättsblad till skriftlig tentamen vid Linköpings universitet

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

Reglerteknik 1. Kapitel 1, 2, 3, 4. Köp bok och övningshäfte på kårbokhandeln. William Sandqvist

För att få ett effektiv driftsätt kan det ibland behövas avancerad styrning.

TENTAMEN I REGLERTEKNIK

Industriell reglerteknik: Föreläsning 3

AUTOMATIC CONTROL REGLERTEKNIK LINKÖPINGS UNIVERSITET. M. Enqvist TTIT62: Föreläsning 2. Här är

Labb i industriella styrsystem. Processdator. Denna version: 13 april Namn: Personnr: Datum: Godknd: LINKÖPING

Tentamen i Reglerteknik, 4p för D2/E2/T2

Signaler och reglersystem Kapitel 1-4. Föreläsning 1, Inledning Reglerteknik

REGLERTEKNIK KTH. REGLERTEKNIK AK EL1000/EL1110/EL1120 Tentamen , kl

Industriella styrsystem, TSIU06. Föreläsning 1

IE1204/IE1205 Digital Design

REPETITION (OCH LITE NYTT) AV REGLERTEKNIKEN

Styrteknik: MELSEC FX och numeriska värden

SIMULINK. En kort introduktion till. Polplacerad regulator sid 8 Appendix Symboler/block sid 10. Institutionen för Tillämpad Fysik och elektronik

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Tentamen i Systemteknik/Processreglering

Lösningar till tentamen i Industriell reglerteknik TSRT07 Tentamensdatum: Martin Enqvist

Tentamen i Reglerteknik, för D2/E2/T2

TSRT21 Dynamiska system och reglering Välkomna till Föreläsning 10

PID-regulatorer och öppen styrning

Introduktion till verktyget SIMULINK. Grunderna...2. Tidskontinuerliga Reglersystem Övningsuppgift...13

övningstentamen I DYNAMISKA SYSTEM OCH REGLERING

En översikt av Kap 7. Tillbakablick, återkoppling Informationsteknologi Reglering av vätskenivån i en tank. Framkoppling. Informationsteknologi

Föreläsning 8, Introduktion till tidsdiskret reglering, Z-transfomer, Överföringsfunktioner

A

Laboration i Industriella styrsystem (TSIU04, TSIU06) Processdator. Denna version: 5 januari Namn: Personnr: Datum: Godknd: LINKÖPING

Tentamen i Reglerteknik, för D2/E2/T2

LABORATIONSINSTRUKTION DIGITAL REGLERTEKNIK. Lab nr. 3 DIGITAL PI-REGLERING AV FÖRSTA ORDNINGENS PROCESS

Institutionen för Tillämpad Fysik och elektronik Umeå Universitet BE. Introduktion till verktyget SIMULINK. Grunderna...2

DIGITALTEKNIK I. Laboration DE1. Kombinatoriska nät och kretsar

Tentamen i Tillämpningar av fysik och dynamik i biologiska system, 7p

Industriella styrsystem

TENTAMEN Reglerteknik 3p, X3

TENTAMEN I REGLERTEKNIK TSRT03, TSRT19

Figur 2: Bodediagrammets amplitudkurva i uppgift 1d

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

Välkomna till TSRT19 Reglerteknik Föreläsning 8. Sammanfattning av föreläsning 7 Framkoppling Den röda tråden!

TENTAMEN I TSRT91 REGLERTEKNIK

TENTAMEN I TSRT07 INDUSTRIELL REGLERTEKNIK

Lösningsförslag till tentamen i Reglerteknik (TSRT19)

Datorövning Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

/TFE CJ, BT, BaE

Övningar i Reglerteknik. Differentialekvationer kan lösas med de metoder som behandlades i kurserna i matematisk analys. y(0) = 2,

Reglerteknik Z / Bt/I/Kf/F

G(s) = 5s + 1 s(10s + 1)

Välkomna till TSRT19 Reglerteknik Föreläsning 7

IE1205 Digital Design: F6 : Digital aritmetik 2

Processidentifiering och Polplacerad Reglering

Tentamen i Systemteknik/Processreglering

LABORATIONSINSTRUKTION

TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

Övning 3. Introduktion. Repetition

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Transkript:

Industriella Styrsystem Övningskompendium 13 januari 2012 REGLERTEKNIK AUTOMATIC CONTROL LINKÖPING Reglerteknik, Institutionen för systemteknik, Linköpings universitet, 581 83 Linköping www.control.isy.liu.se

Detta kompendium har utvecklats under flera år av olika lärare i reglerteknik vid Linköpings universitet.

Del I Uppgifter 1

Kapitel 1 Introduktion till Industriella Styrsystem Huvudidéer Skalning: Vad är skalning, när behövs det och hur används det? Stegdiagram (Ladder diagram): Några enkla exempel på kodning med stegdiagram för att se grunderna. Ur dessa kunna beräkna sanningstabeller. Laborationsförberedelse: Några av förberedelseuppgifterna till vattentankslaborationerna löses. 1.1 Vi vill nu addera a och b. Talet a är lagrat som 5 med en skalfaktor på 1, och talet b är lagrat som 7 med en skalfaktor på 2. Hur måste vi ändra a och/eller b för att kunna addera talen? 1.2 Antag nu att a är lagrad som 8 med en skalfaktor på 4 och b är lagrad som 3 med en skalfaktor på 1 2. Vi vill multiplicera ihop dessa tal. a) Vad har svaret för skalfaktor om vi inte skalar om variablerna? b) Antag nu att vi vill att svaret ska ha skalfaktorn 1. Vad blir resultatet? Antag att vi kan utföra multiplikationen först och sedan skala ner resultet. 3

4 KAPITEL 1. INTRODUKTION TILL INDUSTRIELLA STYRSYSTEM 1.3 Den inbyggda PID-regulatorn i laborationen PID-implementering i PLC hämtar T I och T D från registren N7:4 respektive N7:5 med skalfaktor enligt tabellen nedan. Register Uttryck Faktor N7:4 T I 100 min 1 N7:5 T D 100 min 1 Eftersom våra vattentankar är en process där förlopp tar tider som är i storleksordningen sekunder, är det naturligt att använda just sekund som ingenjörsenhet för dessa variabler. Hur ska förhållandet mellan råa värden och ingenjörsenheter ställas in? Ta i rejält och hantera intervallet 0 10 min. Fyll i tabellen nedan: T I och T D Min Max Rå Ingenjör [min] Ingenjör [s] 1.4 I denna uppgift presenteras stegkodning (eng: ladder diagrams). Använd exempel 1-4 och fyll i motsvarande tabell. 1 = lampan lyser, 0 = lampan är släckt. a) AND b) OR

1.4. 5 c) NOT d) AUX e) NAND

6 KAPITEL 1. INTRODUKTION TILL INDUSTRIELLA STYRSYSTEM f) NOR g) XOR

1.5. 7 h) AUX 1.5 Vi har ett system med två likadana tankar. Bordet de står på är feldimensionerat och klarar inte av tyngden om båda tankarna är fyllda, utan riskerar att gå sönder om den totala fyllnadsgraden är större än tyngd motsvarande 1, 4 ggr en fylld tank. Därför vill man larma då de två tankarna tillsammans är fyllda till mer än motsvarande 1, 2 ggr en fylld tank. Nivån för tank 1 lagras i register I:3.0 och nivågivaren ger data i intervallet 0 800. Nivån för tank 2 lagras i register I:3.1 och nivågivaren ger data i intervallet 0 12 000. Ett larm körs då register N10:0 sätts till 1. Det finns även tomma register, N9:0-N9:2. Skriv ett RSLogix-program som larmar då den totala vattenmängden är för stor. (Du behöver inte nollställa larmet.) Tips: Börja med skalning av variabler (här kan t.ex. % vara en lämplig enhet att arbeta i). Skriv sedan upp pseudokod för vad du vill göra och översätt till sist denna till RSLogix-kod. 1.6 Antag att vi har ett program med tester och förgreningar till ett djup av 3 enligt:

8 KAPITEL 1. INTRODUKTION TILL INDUSTRIELLA STYRSYSTEM N7:0/1 ADD N9:10 N9:11 N9:12 S:5/0 N9:10/15 MOV 32767 N9:12 N9:10/15 MOV -32768 N9:12 S:5/0 U Om man vill ha ett test i koden som kräver att flera villkor är uppfyllda samtidigt kan man seriekoppla testen. Till exempel kommer programmet N7:0/1 S:5/0 N9:10/15 MOV 32767 N9:12 endast utföra MOV-instruktionen om N7:0/1 är hög, S:5/0 är hög, och N9:10/15 är låg. Antag för övnings skull att förgreningar inte är tillåtna alls. Rita om programmet utan förgreningar! 1.7 Följande skall utföras om registerbiten N2:0/0 är ettsatt. Två register, N1:0 och N1:1 skall adderas och svaret skall läggas i N1:2. Om resultatet är negativt skall istället absolutbeloppet beräknas. Om registerbiten N2:0/1 är satt till ett skall sedan resultatet divideras med 2. Skriv pseudokod samt översätt denna till RSLogix-kod. Använd förgreningar för att skapa struktur i koden. 1.8

1.8. 9 Figur 1.1: Vad står det i de olika registren? I Figur 1.1 hittar du ett enkelt RSLogix-program. Använd detta för att besvara de två nedanstående uppgifterna. a) Vad står i register O:3.0? b) Vad står i register N10:0? Appendix - Användbara instruktioner Följande tabell listar en tillräcklig uppsättning instruktioner för att kunna lösa uppgifterna i kapitlet:

10 KAPITEL 1. INTRODUKTION TILL INDUSTRIELLA STYRSYSTEM Kod Symbol Förklaring MOV Kopiera x:x/x OTU U Nollställa bit x:x/x OTL L Ettställa bit x:x/x OTE Håll bit hög (använd inte!) ADD Addition SUB Subtraktion MUL Multiplikation DIV Division EQU Testa = GEQ Testa GRT Testa > LEQ Testa LES Testa < x:x/x XIC Testa för hög bit x:x/x XIO Testa för låg bit TON Timer för nedklockning RES RES Nollställ timer

Kapitel 2 PID-regulatorer Huvudidéer Diskretisering: Givet en kontinuerlig styrlag kunna ta fram en diskret motsvarighet. Här används: Euler bakåt Euler framåt Tustins regel Stötfria övergångar: Att man då parametrar justeras eller omkopplingar mellan manuell och automatisk mod inte får hopp i styrsignalen u. Integratoruppvridning: Se till att I-delen i en PID inte byggs upp till ett för stort värde då vi i riktiga implementeringar bara har begränsad styrsignal u. Strukturera kod: Att bara göra de allra nödvändigaste beräkningarna först. 2.1 (a) I en PID-regulator ingår 3 delar, en proportionell, en integrerande och en deriverande del. Vad har dessa för uppgift i regulatorn? (b) Systemet Y (s) = 1 U(s) (2.1) (s/0.6 + 1)(s + 1) regleras med en PID-regulator, u(t) = K P e(t) + K I t 0 e(τ)dτ + K D de(t) dt. Figur 2.1 visar stegsvaret för följande fyra kombinationer av koefficienter. 11

12 KAPITEL 2. PID-REGULATORER 1 1 A B 1 1 C Figur 2.1: Fyra stegsvar. Axlarna har samma skalning. D Para ihop stegsvar och koefficienter. (1) K P = 4 K I = 0 K D = 0 (2) K P = 4 K I = 3 K D = 0 (3) K P = 4 K I = 1 K D = 0 (4) K P = 4 K I = 0 K D = 4 2.2 En tidskontinuerlig PID-regulator beskrivs av u(t) = K(e(t) + 1 T I t 0 de(t) e(τ)dτ + T D ). dt Diskretisera PID-regulatorn genom att använda Euler bakåt, dvs där T s är samplingstiden. d dt e(t) 1 T s (e(t) e(t T s ))

2.3. 13 2.3 Om man approximerar den fasavancerande (lead-) regulatorn u(t) = KN p + b p + bn e(t) med Tustins formel får man en regulator av typen u(t) = β 1 u(t T s ) + α 1 e(t) + α 2 e(t T s ). Vilka värden får β 1, α 1 och α 2 om T s = 0.1, N = 10, b = 0.1 och K = 2? Ledning: Med operatorformalism kan Tustins approximationsformel skrivas 2.4 p 2 T s q 1 q + 1. En tidsdiskret PID-regulator kan skrivas som S n = S n 1 + T s T I e n v n = K(e n + S n + T D (e n e n 1 )) T s u max om v n > u max u n = v n om u min v n u max u min om v n < u min Omparametrisera regulatorn ovan så att man får stötfri övergång vid parameterbyten. 2.5 En tidsdiskret PID-regulator kan skrivas som I n = I n 1 + K T s T I e n v n = Ke n + I n + K T D (e n e n 1 )) T s u max om v n > u max u n = v n om u min v n u max u min om v n < u min Denna rättframma implementering leder till problem då styrsignalen mättar, s.k. intergratoruppvridning.

14 KAPITEL 2. PID-REGULATORER (a) Inför anti-windup (dvs undvik integratoruppvridning) genom att skriva PIDregulatorn ovan på differentiell form. (b) Inför anti-windup genom att justera I-delen. (c) Inför anti-windup genom villkorlig integration. 2.6 I tidskritiska system är det viktigt att minimera beräkningstiderna. Betrakta en PID-regulator I n = I n 1 + K T s T I e n v n = Ke n + I n + K T D (e n e n 1 )) T s u max om v n > u max u n = v n om u min v n u max u min om v n < u min Inför nya konstanter istället för K, T s, T I och T D som minimerar antalet aritmetiska operationer i själva reglerloopen. Hur kan de nya konstanterna beräknas ur de gamla? 2.7 Skriv om PID-regulatorn i uppgift 2.6 ovan så att allt som inte beror på senaste mätning är förberäknat dvs u n = a + b e n där a innehåller all information till och med föregående samplingsögonblick. 2.8 Antag att vi vill implementera en PID-regulator i något högnivåspråk. Strukturera koden för regulatorn enligt 1. Läs insignaler 2. Beräkna styrsignal 3. Ställ ut styrsignal 4. Uppdatera tillstånd

2.9. 15 5. Vänta till nästa samplingsögonblick Lägg så få beräkningar som möjligt i Beräkna styrsignal så att ev beräkningsfördröjningar minimeras. 2.9 I figuren nedan visas en P-regulator med så kallad automatisk nollägesjustering. 1 pt 1 Σ e κ Σ u Visa att denna regulator egentligen är en PI-regulator, det vill säga bestäm vad K och T i är uttryckta i κ och T så att det gäller att t ) u(t) = K (e(t) + 1Ti e(τ) dτ 0 för blockschemat i figuren.

16 KAPITEL 2. PID-REGULATORER

Kapitel 3 Skalning av variabler Huvudidéer Begränsning av upplösning: Att man när man har ett begränsat antal bitar kan behöva skala variabler för att resultatet ska få plats i de register man har tillgängliga. Att man vid skalning av olika variabler kan förlora information för att man kan tvingas trunkera delresultat. Detta kan ge upphov till överspill och påverka upplösning och precision. Alla uppgifter antar heltalsrepresentation med 2-komplementtal, se appendix. 3.1 Genomför följande additioner i binära tal. Blir resultatet det förväntade? a) 10 + 12 b) ( 10) + 12 c) 10 + ( 12) d) ( 10) + ( 12) 3.2 Vi vill nu multiplicera följande tal, vad blir resultatet om har obegränsat med bitar? Vad blir det om vi har tillgång till 6 bitar? Om överspill inträffar antar vi att svaret avrundas till det närmaste tal som kan representeras. a) 5 ( 6) 17

18 KAPITEL 3. SKALNING AV VARIABLER b) 7 7 c) Vad måste vi göra för att få plats med alla bitarna i uppgift b)? 3.3 I uppgift 1.1 skulle talen a och b adderas. Talet a är lagrat som 5 med en skalfaktor på 1, och talet b är lagrat som 7 med en skalfaktor på 2. För att kunna addera talen måste de ha samma skalfaktor. Det finns (minst) två sätt att göra detta. När kan de olika sätten vara bra att använda? Motivera svaret. 3.4 Vi har nu bestämt oss för att göra en P-regulator, och vill utföra multiplikationen K e. e har skalfaktorn 1 och K har skalfaktorn 16. Vi vill att resultatet ska ha skalfaktorn 1. Vi har inte möjlighet att utföra multiplikationen först och sedan skala ned resultatet, utan måste skala ner antingen e eller K (eller båda två). Vilken eller vilka variabler skulle du skala ner och varför? 3.5 Vi vill nu återigen multiplicera a och b. Denna gång är a representerat som 4 och b representerat som 6 där båda har skalfaktor 2. Vi vill att resultatet ska ha skalfaktor 1. Vi har endast tillgång till 6 bitar. Om överspill inträffar, avrunda till närmaste tal som går att representera. Genomför multiplikationen genom att a) Först genomföra multiplikationen a b och sedan skala resultatet så att skalfaktorn är 1. b) Först skala b så att b har skalfaktorn 1 2, och sedan genomföra multiplikationen. Vad blir resultetet? c) Vilken av ordningarna är att föredra? Varför då? 3.6 Samma uppgift som i uppgift 3.5, men nu är a = 4 och b = 14. Både a och b har skalfaktor 2. Vi vill att resultatet ska ha skalfaktor 1. Vi har endast tillgång till 6 bitar. Om överspill inträffar, avrunda till närmaste tal som går att representera. Genomför multiplikationen genom att a) Först genomföra multiplikationen a b och sedan skala resultatet så att skalfaktorn är 1.

3.7. 19 3.7 b) Först skala b så att b har skalfaktorn 1 2, och sedan genomföra multiplikationen. Vad blir resultetet? c) Vilken av ordningarna är att föredra? Varför då? Efter att ha gjort uppgifterna 3.5 och 3.6, tänk ut ett bra sätt att genomföra multiplikationen a b. Rita gärna ett stegdiagram (ladder diagram) eller skriv pseudokod för hur du tänkt. Appendix - Tabell med binära tal Bitar Värde Bitar Värde Bitar Värde Bitar Värde Bitar Värde 100000 32 101101 19 111010 6 000111 7 010100 20 100001 31 101110 18 111011 5 001000 8 010101 21 100010 30 101111 17 111100 4 001001 9 010110 22 100011 29 110000 16 111101 3 001010 10 010111 23 100100 28 110001 15 111110 2 001011 11 011000 24 100101 27 110010 14 111111 1 001100 12 011001 25 100110 26 110011 13 000000 0 001101 13 011010 26 100111 25 110100 12 000001 1 001110 14 011011 27 101000 24 110101 11 000010 2 001111 15 011100 28 101001 23 110110 10 000011 3 010000 16 011101 29 101010 22 110111 9 000100 4 010001 17 011110 30 101011 21 111000 8 000101 5 010010 18 011111 31 101100 20 111001 7 000110 6 010011 19

20 KAPITEL 3. SKALNING AV VARIABLER

Kapitel 4 Sekvensstyrning Grafcet Huvudidéer Grafcet-Grafer: Att använda syntaktiskt korrekta grafer samt att förstå det dynamiska beteendet hos en sådan graf. (Not: Grafen i sig är ju en statisk beskrivning av processen.) Modellbygge: Att matcha verkligt beteende mot en Grafcet-graf. Implementering: Att kunna ta fram ekvivalenta beskrivningar av processen i andra språk utgående från en Grafcet graf. Huvudsakligen använder vi: Reläschema Boolesk logik och minneselement 4.1 Vilka av följande grafer är korrekta Grafcet-grafer (förutom att de saknar initialsteg)? 21

22 KAPITEL 4. SEKVENSSTYRNING GRAFCET A B C D u E F u u u G H I J u1 u2 u1 u2 u u K L M N u1 u2 u u1 u2

4.2. 23 4.2 Vilka av följande grafer anger ett korrekt Grafcet-beteende? A u = 1 u u (Avfyrning) u u B u = 1 u u (Avfyrning) u u C u = 1 u u (Avfyrning) u u D u = 1 u u (Avfyrning) u u E u u = 1 (Avfyrning) u F u u = 1 (Avfyrning) u

24 KAPITEL 4. SEKVENSSTYRNING GRAFCET 4.3 I följande Grafcet-graf finns det en potentiell konflikt eftersom både u och v kan bli sanna samtidigt. Transformera grafen nedan så att endast ett villkor kan bli sant och om båda blir sanna så ge u prioritet. 1 u v 2 3 4.4 Nedan syns en förarlös vagn. Denna går mellan punkterna A och B där det finns sensorer (med samma namn) för att indikera närvaro av vagn. För att vagnen skall köra till höger ges signalen H = 1 och på samma sätt ges signalen V = 1 för att vagnen ska köra åt vänster. V H m A MOTOR B Beskriv följande i Grafcet: 1. Vi antar att vagnen initialt står i punkten A. 2. Då operatören trycker på knappen m och vagnen står vid punkten A ska vagnen köra till höger tills den når punkten B. 3. Vid punkten B skall vagnen vänta tills signalen K blir hög eller att det tagit maximalt 60 sekunder. 4. Därefter återvänder vagnen till punkt A och inväntar nytt kommando.

4.5. 25 4.5 Uttryck följande i Grafcet: Två processer P 1 och P 2 beror av varandra. P 1 utför handlingen H 1, men måste därefter vänta tills P 2 har utfört handlingen H 2. P 1 upprepar därefter cykeln. P 2 måste vänta tills P 1 har utfört handlingen H 1 och utför därefter handlingen H 2 och cykeln upprepas. Eftersom detta är två olika processer och handlingarna H 1 och H 2 i själva verket är mycket komplicerade (se dem som makrosteg), så föredrar man att separera P 1 och P 2 i varsin graf. Använd de interna signalerna REDO och KVITT för synkronisering. Ledtråd: Det kan vara lättare om man tänker på några konkreta processer: Låt t ex P 1 vara en press för plastdetaljer och P 2 vara en (plock)robot som plockar ut detaljerna då P 1 pressat klart.

26 KAPITEL 4. SEKVENSSTYRNING GRAFCET

Del II Lösningar/Svar 27

Kapitel 1 Lösningar/Svar 1.1 Vi kan antingen skala upp a eller skala ner b. Att skala ner b leder till minskad precision, men svaret tar upp färre bitar. Att skala upp a leder till bättre precision men riskerar att orsaka överspill. Om vi väljer att skala upp a kommer vi erhålla 2a + b = 10 + 7 = 17 med skalfaktor 2, om vi istället skalar ned b erhåller vi a + b/2 = 5 + 7/2 = 17/2 med skalfaktor 1 som avrundas till 8 eller 9 beroende på hårdvarans egenskaper. 1.2 a) Skalfaktorn blir 2, ty a har skalfaktor 4 och b har 1 2 och vid multiplication ska blir den nya skalfaktorn produkten av de två gamla, alltså 4 1 2 = 2. b) Svaret blir 12, ty vi får 3 8 = 24 med skalfaktor 2 (enligt a) och således får vi 12 med skalfaktor 1. 1.3 Förberedelseuppgift till laboration PID-implementering i PLC. 1.4 e) NAND 29

30 KAPITEL 1. LÖSNINGAR/SVAR f) NOR g) XOR h) AUX 1.5 Vi vill först skala om de två nivåerna med skalfaktorerna 8 resp. 120 för att få båda nivåerna i %. Därefter adderas de (okej eftersom de båda är i %) och den totala volymen beräknas. Om denna är för hög sätts larmregistret. Pseudokod: (:= betyder tilldelas) N9:0 := I:3.0 / 8 [skala om nivå tank 1 till \%] N9:1 := I:3.1 / 120 [skala om nivå tank 2 till \%] N9:2 := N9:0 + N9:1 [total vattenmängd i tankarna i \%]

1.5. 31 if N9:2 >= 120 [om nivån är för hög] N10:0 := 1 [sätt larmregistret] end if

32 KAPITEL 1. LÖSNINGAR/SVAR Figur 1.1: Lösningsförslag till uppgift 1.5 1.6 Förberedelseuppgift till laboration PID-implementering i PLC. 1.7 Pseudokod: (:= betyder tilldelas) if N2:0/0 == 1 [om registerbiten är ettsatt skall beräkningarna utföras] N1:2 := N1:0 + N1:1 [addition] if N1:2 < 0 [om summan är negativ] N1:2 := N1:2 * -1 [absolutbeloppet] end if if N2:0/1 == 1 N1:2 := N1:2 / 2 [om ettsatt skall svaret halveras]

1.8. 33 end if end if Figur 1.2: Lösningsförslag till uppgift 1.7 1.8 a) I 0:3.0 står värdet 1200. b) I N10:0 står värdet 600. Observera att värdet hela tiden skrivs över så det är det senast inlagda värdet i varje register som lagras.

34 KAPITEL 1. LÖSNINGAR/SVAR

Kapitel 2 Lösningar/Svar 2.1 (a) Proportionell del Stort värde på K P leder till ökad snabbhet hos regulatorn, men kan också leda till överslängar och försämrade stabilitetsmarginaler. Integrerande del Denna del tar bort det stationära felet. För stort värde på K I leder i regel till ett oscillativt beteende på stegsvaret. Deriverande del Denna del kan minska överslängar och förbättra dämpningen hos systemet. (b) Från (a) vet vi att den integrerande delen av PID-regulatorn tar bort det stationära felet. Vi noterar att stegsvaren A och D har ett stationärt fel och vi inser således att K I = 0 för dessa regulatorer. Därför måste A och D tillhöra koefficientkombinationerna (1) och (4). D har en liten översläng och borde således sakna dämpning i form av en deriverande del, alltså K D = 0. Därmed erhåller vi A-4 och D-1. 2.2 Kvar har vi två system som saknar deriverande verkan i PID-regulatorn. Vi ser att kombinationen (2) har större K I vilket leder till en större översläng och mer oscillativt beteende i stegsvaret än för en regulator med deriverande verkan. Vi erhåller därmed slutligen B-2 och C-3. Sammantaget har vi: A-4, B-2, C-3, D-1 Med operatorformalism fås u(t) = K(1 + 1 T I 1 p + T Dp)e(t) 35

36 KAPITEL 2. LÖSNINGAR/SVAR Euler bakåt ger u(t) = K(1 + 1 T S T I 1 q 1 + T 1 D (1 q 1 ))e(t) T S genom multiplicera båda sidor med (1 q 1 ) för att ta bort nämnaren i den diskretiserade integralen, erhåller vi u(t) = u(t T S ) + K(e(t) e(t T S )) + K T S T I e(t) + K T D T S (e(t) 2e(t T S ) + e(t 2T S )) 2.3 Ersätt p med 2 T s q 1 q+1 : u(t) = KN 2 q 1 T s 2 q 1 T s q+1 q+1 + b e(t) + bn u(t + T s ) = 2 T s 2 T s 2 bn T u(t) + KN s + b 2 + bn T s + bn e(t + T s) + kn b 2 T s + bn e(t) Numeriskt får vi α 1 19.1, α 2 18.9 och β 1 0.90. 2 T s 2.4 Enligt avsnitt 2.4 i kurskompendiet kan man omparametrisera regulatorn som följer: I n = I n 1 + K T S T I e n v n = Ke n + I n + K T D (e n e n 1 ) T S u max, om v n > u max u n = v n, om u min v n u max u min, om v n < u min

2.5. 37 2.5 (a) Differentiell form: v n = v n v n 1 = = K(e n e n 1 ) + I n I n 1 + K T D T S (e n 2e n 1 + e n 2 ) = = K(e n e n 1 ) + K T S T I e n + K T D T S (e n 2e n 1 + e n 2 ) u max om u n 1 + v n > u max u n = u n 1 + v n om u min u n 1 + v n u max u min om u n 1 + v n < u min (b) Justering av I-delen: (c) Villkorlig integration: I n = I n 1 + K T S T I e n + T S T t (u n 1 v n 1 ) v n = Ke n + I n + K T D (e n e n 1 ) T S u max om v n > u max u n = v n om u min v n u max u min om v n < u min 2.6 if (VILLKOR) then I n = I n 1 + K T S T I e n ; v n = Ke n + I n + K T D (e n e n 1 ) T S u max om v n > u max u n = v n om u min v n u max u min om v n < u min VILLKOR kan vara t.ex. e ɛ där ɛ är en konstant. Om VILLKOR ej är uppfyllt så fås I n = I n 1. där K 1 = K + K T D TS, K 2 = K T D TS I n = I n 1 + K 3 e n v n = K 1 e n + I n + K 2 e n 1 och K 3 = K T S TI.

38 KAPITEL 2. LÖSNINGAR/SVAR 2.7 2.8 a = I n 1 K T D T S e n 1 b = K(1 + T D T S + T S T I ) Med förberäkning av hjälpstorheter enligt tidigare uppgift fås: ReadInput(y r, y) e := y r y; v := a + b e; if v > u max then u := u max elseif v < u min then u := u min else u := v; Out(u); I := I + K T S TI e; a := I K T D TS e; b := K + K T D TS Wait; 2.9 + K T S TI ; Vi börjar med att skriva om PI-regulatorn med hjälp av derivationsoperatorn p, ( u(t) = K 1 + 1 ) ( ) 1 + Ti p e(t) = K e(t). T i p T i p Låt oss införa hjälpvariabeln x som betecknar signalen som går in i blocket 1 pt figuren. Då får vi direkt ur figuren att u(t) = κe(t) + 1 pt x(t) i

2.9. 39 och x(t) = u(t) 1 pt x(t) vilket tillsammans ger att ( ) 1 + pt u(t) = κ e(t). pt Genom identifiering av parametrarna får vi nu att K = κ, T i = T.

40 KAPITEL 2. LÖSNINGAR/SVAR

Kapitel 3 Lösningar/Svar 3.1 a) 010110 (22) b) 000010 (2) c) 111110 (-2) d) 101010 (-22) 3.2 a) I båda fallen blir svaret 30 (100010) b) Har vi obegränsat med bitar blir svaret 49, (110001). Har vi endast tillgång till 6 bitar blir svaret 31 (011111). Observera att talet 110001 är lika med 15 eftersom den första biten är en teckenbit. c) Vi måste skala ner någon eller båda av talen. 3.3 Vi måste skala bitarna så de har samma skalfaktor. Vi kan antingen skala upp a eller skala ner b. Att skala ner b leder till minskad precision, men svaret tar upp färre bitar. Att skala upp a leder till bättre precision men riskerar att orsaka överspill. 41

42 KAPITEL 3. LÖSNINGAR/SVAR 3.4 Förmodligen är det så att skalfaktorn med för K är vald med omsorg för att få mesta möjliga upplösning i K. Isåfall är det bäst att skala ner e eftersom de sista bitarna är de mest brusiga, och informationen som förloras isåfall inte är viktig. 3.5 3.6 3.7 a) Då blir svaret 6. b) Då blir svaret 4. c) Det är bäst att först utföra multiplikationen och sedan skala resultatet eftersom man då inte förlorar någon information. a) I multiplikationen inträffar överspill, och svaret blir därför 7. b) Nu inträffar inget överspill, och restultatet blir 12, vilket inte är det rätta värdet (vilket skulle vara 14), men det är bättre än att först utföra multiplikationen och sedan skala resultatet. c) I detta fallet är det bästa att först skala svaret eftersom om överspill inträffar så förloras mer information. Ett bra sätt att göra det på är att först försöka genomföra multiplikationen a b och undersöka om överspill inträffar. Om överspill inte inträffar skalar man ner resultatet och sparar undan det. I annat fall, dvs om överspill har inträffat skalar man först ner en eller båda variablerna och utför därefter multiplikationen.

Kapitel 4 Lösningar/Svar 4.1 (a) Korrekt (b) Korrekt. Övergångar utan in-steg brukar kallas käll-övergångar (eng: source transitions). Vidare gäller att övergångar utan ut-steg brukar kallas sänkövergångar (eng: sink transitions). I detta fall är övergången både en sänka och en källa. (c) Korrekt. Övergången är en sänka. (d) Korrekt. Övergången är en källa. (e) Felaktig. Det måste finnas en övergång mellan två steg. (f) Korrekt. (g) Korrekt. (h) Korrekt. (i) Felaktig. Den enda gången man kan föra samman bågar är efter övergångar eller med hjälp av dubbelstreck (parallellförgrening). (j) Felaktig. Enda sättet man kan splittra bågar är innan övergångar eller med hjälp av dubbelstreck (parallellförgrening). (k) Felaktig. Bågarna innan parallellförgreningen måste föras samman till en båge. Annars är det oklart om detta skall tolkas som början eller slutet på en parallellförgrening. (l) Felaktig. En övergång saknas. 43

44 KAPITEL 4. LÖSNINGAR/SVAR (m) Korrekt. (n) Felaktig. Två övergångar saknas. 4.2 (a) Korrekt. (b) Felaktig. Alla övergångar som är mottagliga (dvs alla steg omedelbart före övergången är aktiva) kommer att avfyras (dvs alla steg omedelbart före övergången deaktiveras och alla steg omedelbart efter övergången aktiveras). (c) Korrekt. (d) Felaktig. Det vänstra steget skulle också ha aktiverats. (e) Felaktig. Samma motivering som ovan. (f) Korrekt. 4.3 1 u v * /u 2 3

4.4. 45 4.4 S0 m S2 H b S3 D TimeOut 60 s K + TimeOut S4 V a 4.5 P1: P2: 1 4 1 2 H1 5 1 REDO 1 H2 3 REDO 6 KVITT KVITT /REDO