Platooning. Distribuerede indlejrede systemer i samspil med fysiske systemer

Størrelse: px
Starte visningen fra side:

Download "Platooning. Distribuerede indlejrede systemer i samspil med fysiske systemer"

Transkript

1 Platooning Distribuerede indlejrede systemer i samspil med fysiske systemer 5. semester projekt School of Information and Communication Technology Elektronik & IT Aalborg Universitet Efterår 2011

2 2

3 Title: Platooning Theme: Distributed embedded systems for physical systems Project Period: EIT5, fall 2011 Project Group: 508 Group Members: Benjamin Krebs Daniel Urup Frederik Juul Jacob Hansen Jesper Knudsen Jonas Hansen Supervisor: Per Printz Madsen Number of pages: 164 Printed Copies: 8 Appendix Media: 1 appendix-cd School of Information and Communication Technology Electronics & IT Adress: Fredrik Bajers Vej 7 Telephone: URL: esn.aau.dk Synopsis: This project concerns designing and manufacturing a distributed, embedded system for controlling two platooning RC cars. The project is based on an idea presented in various occasions by the automotive industry. The idea proposes certain advantages regarding fuel consumption, driving safety, passenger comfort and highway throughput. In this project the idea is simplified to prove the concept. One of the RC cars, called Leader, is designed to always stay in front. The other RC car, called Member, is designed to follow Leader. Since RC cars are controlled externally, software is developed to control Leader from a computer. Bluetooth is used to establish communication between the computer and the two RC cars. Member follows Leader by regulating its thrust and wheel angle based on measurements from two distance sensors, which measures the distance between the cars from two different positions in Member s bumper. In conclusion the concept is proven to work, even though some of the desired specification weren t achieved. Finished: 22/ The content of this paper is freely available, but publication (with references) is only allowed with permission from the author.

4 4

5 Læsevejledning I denne rapport benyttes forskellige former for notation. Disse er som følger: Henvisninger til litteratur er markeret med [x] hvor nummeret svarer til et nummer i litteraturlisten. Disse henvisninger er, i den elektroniske version af rapporten, links, så de kan klikkes på. Henvisninger som er brugt til en enkelt information er markeret umiddelbart efter denne information og henvisninger brugt til et helt afsnit er markeret umiddelbart efter afsnittet. Henvisninger til figur eller afsnit er markeret med se figur/afsnit x.x.x hvor nummeret svarer til afsnitsnummeret i indholdsfortegnelsen eller figurnummeret under en figur. Disse henvisninger er, i den elektroniske version af rapporten, links. Ordliste AAU - Aalborg Universitet ADC - Analog Digital Converter API - Application Programming Interface BIBO - Bounded input bounded output DSC - Digital Signal Controller GUI - Graphical User Interface OOP - Object-Orienteret Programmering PWM - Pulse Width Modulation UART - Universial Asynchronous Receiver Transmitter RX - Receiver TX - Transmitter Task - Programkode der skal afvikles 5

6

7 Forord Denne rapport dokumenterer et 5. semester projekt, udarbejdet i perioden fra 2. spetember 2011 til 22. december Projektet er udført af gruppe 508 på Elektronik og IT-ingeniør uddannelsen på Aalborg Universitet. Temaet for dette semester er Distribuerede indlejrede systemer i samspil med fysiske systemer og gruppen valgte Platooning som undertema. I løbet af semesteret modtager gruppen undervisning i form af PE- og SE-kurser, som bliver afholdt Institut for Elektroniske Systemer. Omtalte kurser er: PE-kurser: Communication networks Feedback Theory 2 Object oriented realtime systems Modeling SE-kurser: Signal processing Introduction to wireless communication Gruppe 508 består af: Benjamin Krebs Daniel Nygaard Urup Frederik Juul Jacob Hansen Jesper Knudsen Jonas Hansen 7

8

9 Thanks to Nina Wahlqvist, Datalogic Automation AB, for two US18-PA-5-N03-VH sensors. Tom S. Pedersen, Aalborg Universitet, for help with modelling and regulation. Henrik Schiøler, Aalborg Universitet, for help with kernel-design Jan Dimon Bendtsen, Aalborg Universitet, for help with Java-design

10 10

11 Indholdsfortegnelse 1 Indledning 13 2 Funktionalitetsbeskrivelse Systemoverblik Modelbilernes specifikationer Afstand Acceleration Hastighed Retning Sensorkrav Kommunikation Kravspecifikation Testmiljø Systemopbygning 25 5 Microcontroller 29 6 Hardwareimplementering Forsyning af Leader og Member Aktuatorstyring på Leader og Member Sensorimplementering Kommunikation Valg af teknologi Opsætning Protokol Hastighedsmodellering og -regulering Hastighedsmodel Hastighedsregulering Afstandssmodellering og -regulering Afstandsmodellering Afstandsregulering Implementering og modultest Konklusion

12 10 Retningsmodellering og -regulering Retningsmodel Servomodel Retningsregulering Implementering og test Konklusion Software til biler Kerne Afvikling på Leader Afvikling på Member Modultest Software til Base Member og Leader GUI API Modultest Implementering Retningsstyring Hastighedsstyring Accepttests Sensorkrav Kommunikationskrav Kørselskrav Konklusion 123 Litteratur 125 Appendiks A Målejournal - Accelerationstest 127 Appendiks B Målejournal - Fremdriftsparametre 131 Appendiks C Målejournal - Servomotor 139 Appendiks D Målejournal - Computation times 143 Appendiks E Målejournal - Hastighedssensor 147 Appendiks F Målejournal - Modultest på hastighedsregulator 151 Appendiks G Målejournal - Modultest på afstandsregulator 155 Appendiks H Målejournal - Modultest på retningsregulator 159 Appendiks I Udledning af overføringsfunktion for hastighedsmodel

13 Indledning 1 Dette projekt udspringer af en ide til forbedring af effektivitet og sikkerhed på vejene. Princippet, som kaldes platooning, går ud på at køretøjer, styret af computere, kan køre tæt samlet i grupper, hvor alle køretøjerne får og giver nødvendig information videre til de andre i gruppen. Til en demonstration af princippet fremført allerede i 1997, viste forskere, fra blandt andet University of California, at det er muligt at fordoble gennemløbet af køretøjer på en motorvej, med grupper på otte biler med en indbyrdes afstand af 6,5 m. Under denne demonstration opretholdte bilerne den indbyrdes afstand med en præcision på ± 10 cm ved kørsel med konstant hastighed og med en præcision på ± 20 cm ved accelererende og decelererende kørsel. Forskerne beskrev det allerede dengang som muligt at reducere den indbyrdes afstand til under 2 m. Ved vindtunneltests på University of Southern California har forskere vist en halvering af luftmodstanden, når køretøjer opnår en indbyrdes afstand af kun en halv billængde, hvilket leder til en effektivisering af brændstofforbruget på mellem 20 og 25 %. Ydermere skaber princippet en øget sikkerhed, da hvert køretøj i systemet demonstreret i 1997 regulerede sin hastighed 50 gange i sekundet, med informationer fra alle de relevante køretøjer i nærheden. Ved tilfælde af nødopbremsning vil alle køretøjer i gruppen blive informeret, hvorved bilerne kan reagere som en samlet enhed på situationen længere fremme. Dette er en klar forbedring af en lignende situation med menneskelig kontrol, da hver enkelt fører først reagerer når føreren opfatter problemet. Dertil skal lægges menneskets reaktionstid, hvilken også er langt større end ved et computerstyret system. Endnu en fordel ved platooning er den lille relative hastighed mellem køretøjerne, hvilket stærkt reducerer konsekvenserne ved sammenstød [1] [2]. 13

14

15 Funktionalitetsbeskrivelse 2 Dette kapitel indeholder en overordnet beskrivelse af systemet, samt overvejelserne omkring systemet med henblik på opstilling af kravspecifikation. 2.1 Systemoverblik Målet for dette projekt er at udvikle en prototype, som demonstrerer den grundlæggende funktionalitet mellem bilerne under platooning. Målet er at udvikle to biler; den forrestkørende, Leader, og den bagvedkørende, Member. Leader styres manuelt, hvorimod Member skal forfølge Leader autonomt, altså uden menneskelig indblanding. Skal platooning implementeres i en endelig version vil Leader og Member naturligvis være ens så de begge har mulighed for at indtage pladsen som forrestkørende. Da det ikke er nødvendigt at benytte fuldskala biler til dette projekt, tages der udgangspunkt i to fjernstyrede biler, som både er billigere og nemmere at håndtere. Jævnfør målene for dette semester skal systemet være et distribueret system [3], hvilket vil sige at det skal indeholde flere intelligente delsystemer, som for brugeren opfattes som værende et enkelt system. Systemet består, som det fremgår af figur 2.1, af tre delsystemer; Leader, Member og Base. Base Base skal levere et interface til brugeren, som gør det muligt at kontrollere Leader trådløst. Kontrollen af Leader skal ske således det er muligt at regulere både Leaders retning og hastighed gradvist. Base skal desuden være udstyret så den kan kommunikere med begge biler, for både at modtage log-information fra Leader og Member samt sende kontrolkommandoer. Base vil, i en endelig implementering, være implementeret i bilerne, da disse skal kunne kontrolleres inde fra bilen. 15

16 Leader Base Member Hardware Trådløs kommunikation Sensorer Hardware Trådløs kommunikation Inputmetoder til manuelt at styre Leader Hardware Trådløs kommunikation Sensorer Styring af bilens funktioner Afsendelse af kommandoer til Leader og Member Styring af bilens funktioner Software Udførelse af kommando fra Base Afsendelse af log-info til Base Software Udførelse af testscenarier Modtagelse og visning af log-info fra biler Software Regulering af autonomitet Afsendelse af log-info til Base Figur 2.1: Oversigt over systemet med delsystemer og moduler. Leader Leader skal kunne styres manuelt fra Base. Informationsudvekslingen mellem Base og Leader skal være trådløs således der ikke opstår kambolage med kabler under test. Leader skal udstyres med hardware der gør det muligt at kontrollere bilens hastighed og hjulenes retning samt et system, som modtager kommandoer fra Base til netop disse funktioner. Desuden skal Leader være i stand til at kommunikere log-information til visning på Base. Member Members funktion er at følge Leader autonomt. Dermed skal den udstyres med sensorer og andet hardware så dette er muligt. Hvis det viser sig, at tilføjelser til Leaders hardware er nødvendig for at muliggøre, at Member kan følge, er dette selvfølgelig en mulighed. Members hastighed og hjulretning skal kunne kontrolleres, så disse kan reguleres af det autonome system. Member skal udstyres med kommunikation for bl.a. at gøre debugging under udviklingen nemmere. Derfor skal Member kunne sende relevant information om dens status til Base. For at Member skal kunne fungere autonomt, er det nødvendigt at modellere den pågældende bil for at udvikle en effektiv regulering af bilens bevægelser i forhold til Leaders. 16

17 2.2 Modelbilernes specifikationer Til projektet er valgt to ens RC-biler af modellen POST5 1/10 4WD HBX-Racing Car, som vist på figur 2.2. Valget er faldet på netop disse biler, da de blev stillet til rådighed af AAU. Bilerne er i forvejen udstyret med fjernstyring samt aktuatorer til at styre hjulvinkel og fremdrift. Hjulvinklen kontrolleres af en servomotor, som styres af et PWM-signal. Fremdriften styres af en DC-motor, hvis ydelse kan kontrolleres med et PWM-signal. Fjernstyringen vil ikke blive benyttet i dette projekt, da der ønskes at kommunikere yderligere information over den trådløse forbindelse, hvormed konstruktion af et nyt trådløst kommunikationsinterface er nødvendigt. Bilernes specifikationer er vist i tabel 2.1. Accelerationsevnen er bestemt, som beskrevet i appendiks A, til 6,2 m /s 2. Figur 2.2: Biltypen der benyttes i projektet. Specifikation Værdi Skala 1:10 Længde 44 cm Bredde 18 cm Akselafstand 25 cm Maks. hjulvinkel 20,75 Maks. hastighed 60 km /t Maks. acceleration 6,2 m /s 2 Tabel 2.1: De benyttede modelbilers specifikationer. 2.3 Afstand I indledningen nævnes, hvorledes undersøgelser har vist, at en halv billængde er ønskelig til platooning som afstand mellem bilerne. Under demonstrationen, omtalt i Indledningen, blev den indbyrdes afstand holdt med en maksimal variation på ± 20 cm. Sammenholdt med forskernes forventning om at nå ned på en afstand mellem bilerne på 2 m, vil en afvigelse på 10 % i indbyrdes afstand, leve op til forholdene for forskernes forventninger. Til dette projekt tages udgangspunkt i størrelsen på modelbilerne, hvilket vil sige at bilerne skal kunne holde en indbyrdes afstand på 22 cm, med en afvigelse på 2,2 cm. 17

18 2.4 Acceleration For at kravene til sensorer, hvor det er muligt, bliver sammenlignelige med et virkeligt platooning-system, opstilles krav til en acceleration, systemet skal fungere ved, når der benyttes fjernstyrede biler. Eftersom forskellige biler performer forskelligt mht. acceleration, tages der, til opstilling af krav, udgangspunkt i den mest solgte bil i Danmark i 2010; Toyota Aygo [4]. En Toyota Aygo kan accelerere fra km /t på 14,2 sekunder, hvilket giver en middelacceleration på ca. 2 m /s 2. Systemet bestemmes derfor til at skulle fungere ved accelerationer til og med 2 m /s 2 [5]. 2.5 Hastighed Biler i en platoon skal overholde hastighedsgrænserne, som i Danmark maksimalt er 130 km /t. Da der benyttes skalerede biler, skaleres hastighedsgrænsen med samme faktor; 1:10. Leader og Member må dermed maksimalt køre 13 km /t. For at Member kan regulere afstanden uden at overskride hastighedsgrænsen, selv når Leader kører med maksimalhastighed, defineres en cruisehastighed på 12 km /t, som bestemmer den maksimale hastighed for Leader. 2.6 Retning Under forfølgelse skal Member fortsat kunne leve op til hastigheds- og afstandskrav, når Leader foretager retningsskift. Member skal dermed kende den relative vinkel mellem de to biler og være i stand til at regulere i forhold til denne. Det er derfor relevant at opstille krav til størrelsen på retningsskift af Leader. Udgangspunktet for sådan et krav tages i reglerne for anlægning af veje i Danmark, hvor ligning (2.1) beskriver den minimale svingradius [6]. R h v (f r,till + i) (2.1) Hvor: R h er svingradius [m] v er hastigheden [ km /t] f r,till er sidefriktionskoefficienten [ ] i er sidegradienten [ ] 18

19 Sidefriktionskoefficienten er en koefficient, der, med hensyntagen til kørselskomfort, er fastdefineret i forhold til hastighed. Sidegradienten udtrykker vejens hældning på tværs af kørselsretningen. Da der køres på et plant underlag er i = 0 og f r,till findes ved ekstrapolering af tabelværdier til 0,278 ved 12 km /t [6]. Dette giver en R h på 4 m. På figur 2.3 er opstillet en trekant til beregning af hjulvinklen ved den bestemte svingradius. A Svingradius Længde mellem hjulaksler Figur 2.3: Trekant til bestemmelse af hjulvinkel ved givet svingradius og akselafstand. Det kan ved simple trigonometriske udregninger vises, at hjulvinklen er det dobbelte af A. Med en svingradius på 4 m og modelbilernes akselafstand, som opgivet i tabel 2.1, på 25 cm findes en hjulvinkel på 3, Sensorkrav De foregående afsnit stiller krav til de sensorer, der benyttes i projektet. Det ønskes at kende afstanden mellem bilerne, vinklen mellem bilerne, samt hastigheden og accelerationen af begge biler Afstandssensor For at bestemme kravene til opdateringshastigheden på afstandssensoren, tages der udgangspunkt i den maksimalt tilladte acceleration på 2 m /s 2 samt den maksimalt tilladte afvigelse af afstanden mellem bilerne på 2,2 cm. Accelerationen integreres i forhold til t, til en hastighedsfunktion; v = 2 m /s 2 t. Ud fra dette, kan tiden, det tager for bilerne at nå den maksimale hastighed udregnes, som set i formel (2.2). v = a t 3, 61 m /s = 2 m /s 2 t t = 1, 806 s (2.2) Hvor: v er tophastigheden [ m /s] a er middelaccelerationen [ m /s 2 ] t er tiden [s] 19

20 Hastighedsfunktionen integreres, hvilket giver en positionsfunktion; s = 1 2 a t2 = 1 m /s 2 t 2. Ud fra denne kan positionen, når den maksimale hastighed opnåes, udregnes, hvilket vil være det tidspunkt, hvor der er størst længde mellem bilerne. Denne længde må ikke overskride det specificerede krav om en maksimal afvigelse på 2,2 cm. Benyttes tiden t fra formel (2.2) i formel (2.3), kan den maksimale tidsforskydelse, t delay, findes, ved den maksimale afvigelse på 2,2 cm. 1 m /s 2 t 2 1 m /s 2 (t t delay ) 2 = l t delay = 0, 006 s (2.3) Hvor: l er afvigelse i tilbagelagt afstand, ved et givent tidspunkt [m] t delay er tidsforskydningen [s] Dette giver en maksimal tilladelig tidsforskydning mellem Leaders og Members reaktion 1 på 0,006 s, hvilket giver en minimumsopdateringsfrekvens på 0,006s 167Hz. Figur 2.4 viser de to positionskurver for Leader og Member, med en tidsforsinkelse ti gange højere end minimum, for at illustrere hvordan afstanden mellem dem stiger i forhold til tiden. 3 Leader Member 2.5 Afstand [m] Tid[s] Figur 2.4: En figur over positionsfunktionen for de to biler, med en reaktionstid på 60 ms Hastighedssensor Der kræves, at hastighedssensoren kan detektere den maksimale hastighed, bilen skal kunne køre. Da modelbilerne har en gearing fra motorakslen til hjulene, og hjulene derfor vil være det, der kører langsomst, vil hjulenes rotation kunne bruges til at bestemme et absolut minimum for hastighedssensoren. Hjulet har en diameter på 6,2 cm, hvilket giver en omkreds på 19,5 cm - altså den afstand bilen har kørt, hver gang hjulet kører en omgang. Antal rpm på hjulet ved en kendt 20

21 hastighed, i dette tilfælde den maksimale hastighed 13 km /t, kan herefter udregnes ved formel (2.4). v cm /km 60 min /t 1 O = ω ω = 1112 rpm (2.4) Hvor: v er hastighed [ km /t] O er hjulets omkreds [cm] ω er omdrejningshastigheden [rpm] Det er derfor nødvendigt, at hastighedssensoren som minimum kan måle op til 1112 rpm. 2.8 Kommunikation I et endeligt implementeret system, i en reel størrelse bil, vil kommunikationen mellem bilerne være begrænset til en nødstop og indfletning. Dette skyldes at bilerne skal kunne fungere autonomt, udelukkende ud fra sensordata. I forbindelse med udvikling er det dog fordelagtigt med en trådløs forbindelse til debugging og hastighedsstyring. For at en ny bil kan koble sig på en platoon, vil det være nødvendigt med kommunikation mellem bilerne, for at lette indfletning, så det er muligt for en tilkommer at flette ind på den plads der er den nærmest. Desuden er det nødvendigt at en bil kommunikerer når den fjerner sig fra platoonen, eksempelvis for at dreje af, så de bagvedliggende biler ved at de fortsat skal køre ligeud. Derudover er det vigtigt at bilerne kan identificere en leder, så den bil der bliver valgt som leder, ved at den ikke skal forsøge at følge efter en forankørende bil. I sådan et system vil det også være nødvendigt, for at sikre passagerernes sikkerhed i en ulykkessituation, at bilerne er i stand til at kommunikere nødstops-kommandoer. Til prototype-systemet skal styringen sendes fra Base til Leader, og sensordata sendes tilbage igen. Da kommunikationen skal foregå begge veje, uafhængigt af hinanden, kræves det at forbindelsen er full-duplex - at kommunikationen kan foregå begge veje, samtidigt. Desuden implementeres en trådløs forbindelse til Member, for at lette debugging. 21

22

23 Kravspecifikation 3 Overvejelserne beskrevet gennem kapitel 2, danner grundlag for en udarbejdelse af krav til projektets produkt. I tabel 3.1 er disse krav opstillet, hvorved løsningsforslag herfra kan udtænkes. Kørselskrav Leader og Member skal under kørsel holde en indbyrdes afstand på 22 cm ± 2,2 cm Member skal kunne følge Leader ved en acceleration på op til 2 m /s 2 Accelerationen af Leader og Member må ikke overskride 2 m /s 2 Member skal kunne følge Leader op til 12 km /t Member må ikke køre hurtigere end 13 km /t Hjulvinklen på Leader må ikke overskride 3,6 Sensorkrav Afstandssensoren skal kunne måle op til 24,2 cm Afstandssensoren skal have en opdateringsfrekvens på min. 167 Hz Hastighedssensoren skal kunne måle en omdrejningshastighed på op til 1112 rpm på hjulet Kommunikationskrav Kommunikation mellem Leader, Member og Base skal foregå trådløst Hastighed og retning af Leader skal kunne styres fra Base Base skal kunne modtage information fra Leader og Member Base skal kunne sende kommandoer til Leader Base skal kunne modtage input fra bruger Base skal kunne vise informationer til bruger Tabel 3.1: Opstilling af krav. 23

24 3.1 Testmiljø For at kunne sammenligne og genskabe testresultater, defineres et testmiljø. Til test under udvikling af Member benyttes løbebåndet i AAU s robotrum, C Den endelige accepttest foretages på plant linoleumsgulv, i lokale C Lokalet er udformet som vist på figur 3.1. Figur 3.1: Plantegning af C2-104 [25]. 24

25 Systemopbygning 4 På baggrund af de foregående kapitler er der opstillet et system-kontekst diagram. Dette giver et overblik over hvordan systemet arbejder sammen fra brugeren ned til de enkelte moduler. System-kontekst diagrammet, der tager udgangspunkt i figur 2.1, er vist på figur 4.1. Bruger Kontrol GUI Base Log Kommandoer Kommandoer Log Retningsstyring P Leader Member Hastigheds- og afstands-styring P Retningsstyring Hastighedssensor P Afstandssensor Hastighedsstyring S S P Hastighedssensor P Retningssensor P Figur 4.1: System-kontekst diagram. Ud fra det, på figur 4.1, opstillede system-kontekst diagram er der fundet forskellige periodiske og sporadiske tasks. Disse tasks vil blive forklaret enkeltvis i kommende afsnit. 25

26 Retnings- og Afstandssensor Til at måle afstand og retning er der valgt en opsætning med to afstandssensorer som er monteret med en fastdefineret afstand imellem dem. Opsætningen er afbilledet på figur 4.2. Leader L1-L2 α α = Relativ vinkel mellem Leader og Member L1 L2 Member Figur 4.2: Skitse over afstanden og den relative vinkel mellem Leader og Member. På figur 4.2 kan det ses at den relative vinkel mellem de to biler kan beregnes med simpel trekantsberegning. Til afstandsmåling benyttes to US18-PA-5-NO3-VH med spændingsoutput, fra Datalogic. Sampling af data fra afstandssensorerne foretages med to ADC er. Disse har en opdateringsfrekvens på 200 Hz, hvilket opfylder kravet på minimum 167 Hz [20]. Hastighedssensor For at få en høj opløsning på hastighedssensoren, er det valgt at måle omdrejningstallet direkte på motoren, frem for at måle det på hjulet. Hastighedssensoren skal aflæses periodisk, således en aflæsning af omdrejningstallet kan benyttes til at udregne hastigheden. Til hastighedsmåling benyttes en rund plade monteret på motoren med sorte og hvide streger på, samt en phototransistor og en IR-LED, samlet i en komponent, OPT704 [7]. Phototransistoren registerer streger, der passerer den, hvilket kan benyttes til at udregne hastigheden. 26

27 Hastigheds- og afstandsstyring Da det ønskes at Member skal være autonom, er der behov for at implementere en regulering, som styrer Members afstand op til Leader. For at designe regulatoren til dette er der behov for at bestemme fysiske modeller, som beskriver sammenhængen mellem bilernes bevægelser i forbindelse med afstand og hastighed. For at Leader skal kunne opretholde hastigheden, som brugeren har bestemt fra Base, er det desuden nødvendigt at implementere hastighedsregulering i Leader. I begge bilers reguleringer skal accelerations- og hastighedsbegrænsningerne angivet i kravspecifikationen implementeres. Styringen af DC-motoren i bilerne implementeres med en H-bro, som med et PWM-signal kan styre spændingen over motoren. Retningsstyring Member skal, ligesom med hastighed og afstand, autonomt kunne køre bagved Leader ligemeget om Leader kører lige ud eller drejer. Derfor skal en retningsstyring implementeres således at Member kan styre vinklen på sine forhjul. For at kunne udføre korrekte korrektioner i hjulvinklen skal en fysisk model for sammenhængen mellem Members hjulvinkel og den relative vinkel mellem Leader og Member findes, hvormed en regulator kan designes. Hjulvinklen kontrolleres med en servomotor, som styres af et PWM-signal. Batteri Da Leader og Member skal være trådløse udstyres de med batterier, for at forsyne de enkelte hardwaredele. 27

28

29 Microcontroller 5 Til projektet skal der anvendes to microcontollere, en til Leader og en til Member. For at simplificere udviklingsprocessen skal begge microcontrollere være ens. Disse microcontrollere skal bl.a. bruges til at styre motorer, servoer og kommunikationen mellem modelbilerne og Base. Dette sætter krav til hvad microcontrollerne skal kunne. For at kunne styre motorer og servoer på modelbilerne skal der anvendes PWM, hvilket betyder at microcontrolleren, som minimum skal have to PWM-udgange. Som beskrevet i afsnit 2.7 er der opstillet et krav om at afstandssensorerne skal samples med minimum 167 Hz, hvilket betyder at microcontollerens ADC mindst skal kunne klare at sample med denne frekvens. Da der ønskes at kommunikere med systemet, er det nødvendigt, at microcontrolleren har indbygget kommunikationsinterface til rådighed. Microcontrolleren skal benyttes i en udviklingsproces, hvorfor der kræves en debugger. Desuden vurderes prisen højt, hvis ikke det er en controller, som i forvejen er tilgængelig hos Komponenten, AAU s elektronik udlevering. To microcontrollere, vist i tabel 5.1, er fundet som mulige til dette projekt. Disse opfylder alle krav. I tabellen er følgende nummerering gældende: AT91SAM7A3 (1) og dspic33fj128mc802 (2). 29

30 Board (1) (2) Antal PWM er 8 8 Antal ADC er 16 porte, 10bit 9 porte, 10/12bit UART 2 2 MIPS M. debugger Ja Ja Pris 159 DKK [8] 108 DKK [9] Tilgængelighed Komponenten Farnell Tabel 5.1: Sammenligning af microcontrollerer. (1) AT91SAM7A3 kan udføre op til 54 MIPS. Fordelen ved denne er, at projektgruppen gennem tidligere undervisning er blevet introduceret til den og at den er tilgængelig hos Komponenten monteret på et Space Board, som bl.a. benyttes i AAUSAT projektet. Dette board har trukket alle nødvendige forbindelser ud i stik, så den er klar til at udvikle på. Der er intet dedikeret udviklingsmiljø til den, men den kommer med debugger [10]. (2) dspic33fj128mc802 kan udføre op til 40 MIPS. Den skal bestilles hjem, men er til gengæld billig. Kan fåes med en debugger, en såkaldt Microstick, som kan implementeres i systemet. Den har et dedikeret crossplatform udviklingsmiljø og opfylder alle ovennævnte krav. Projektgruppen har valgt dspic33fj128mc802, da den opfylder alle kravene og vurderes for at være den simpleste og mest dynamiske at implementere. Der vælges desuden at kode i C, med den tilhørende C-kompiler [11]. Fremover er denne Digitale Signal Controller benævnt DSC. 30

31 Hardwareimplementering 6 I det følgende vil en implementering af hardware, som benyttes i forbindelse med prototypen, finde sted. Implementering omfatter forskellige sensorer og aktuatorer samt styringen og forsyning af disse. 6.1 Forsyning af Leader og Member Til at spændingsforsyne bilerne bruges en række forskellige batterier, hvilke forsyner de forskellige undersystemer med deres påkrævede spændinger. Til at forsyne DSC en, kommunikationen, hastighedssensoren, servoen samt motorstyringen benyttes et 12 V batteri. Sammen med 12 V batteriet benyttes et 4,5 V batteri til at forsyne afstandssensorerne. Til at forsyne motorerne benyttes et 7,2 V batteri. 6.2 Aktuatorstyring på Leader og Member For at kunne styre bilernes aktuatorer skal der designes hardware som er i stand til dette. Bilerne er udstyret med to aktuatorer; en servo til styring af hjulenes vinkel og en DCmotor til styring af hastighed. Disse aktuatorer skal styres af bilernes respektive DSC er, hvormed der skal designes hardware således dette er muligt Hastighedsstyring I bilerne er der som standard monteret en digital controller til styring af DC-motoren. Fordi det ikke har været muligt at finde et datablad over denne controller er det valgt ikke at bruge den. Derimod er det, til Member, valgt at anvende en H-bro, VNH2SP30 MD03A fra Polulo, som har specifikationerne vist i tabel 6.1. Denne H-bro får 5 V forsyning og 7,2 V direkte fra batteriet på bilerne for at kunne drive motoren. Derudover skal der anvendes 2 I/O pins samt en PWM pin for at styre H-broen. Sandhedstabellen for operationen af disse pins er vist i tabel

32 VNH2SP30 MD03A Forsyning (Vcc) Maximum Strøm Maximum PWM frekvens 5,5-16 V 30 A 20 khz Tabel 6.1: Specifikationer på VNH2SP30 MD03A H-bro [14]. INa INb PWM OUTa OUTb Funktionstilstand H H $ H H Brems til Vcc H L $ H L Med uret L H $ L H Mod uret L L $ L L Brems til Ground Tabel 6.2: Sandhedstabel af H-bro. PWM-signalet der tilkobles H-broen har frekvensen 20 khz fordi dette er H-broens maksimale frekvens, hvormed operation i et defineret område er sikret. Leader er udstyret med en H-bro fra samme serie, VNH3SP30, da dette var hvad der var tilgængeligt. Denne har både samme specifikationer og logik som Members H-bro, med den ene undtagelse at den arbejder ved 10 khz [15] Retningsstyring I bilerne er der i forvejen monteret en servo til styring af retningen. Styresignalet til servoen er et 50 Hz PWM-signal med en on-tid fra 1,1 ms til 1,9 ms som svarer henholdsvis til 45 til venstre og 45 til højre. Da der er et minimumskrav til afstandsensorerne på 167 Hz, og servoen skal styres på baggrund af afstandsensorerne, sættes der krav om at servoen kan ændre position med mindst samme frekvens. Derfor benyttes i stedet en digital servo, HiTEC HS-5645MG [16], som har en opdateringsfrekvens på 200 Hz og samme on-tid specifikationer som standardservoen. Da afstandssensorerne kan aflæses ved 200 Hz, vælges samme frekvens på begge. Styresignalet til servoen er vist på figur 6.1. Den digitale servo har en opløsning på 0,25 per step, hvilket vil sige at den mindste ændring i PWM-signalets on-tid skal være 2,2 µs. Dette giver 360 mulige stillinger på servoens 90 vinkelspænd. I Leader vil standardservoen med en opdateringsfrekvens på 50 Hz være tilstrækkeligt da den ikke er en del af et feedback system PWM opsætning Styresignalet til servoerne på Leader og Member genereres på deres respektive DSC er. Til at generere PWM-signalet benyttes DSC ens output compare funktion i PWM mode. 32

33 5 ms (~ 200 Hz) [V] 3.3 V 1,1 ms 1,9 ms t [s] Figur 6.1: PWM styresignal til servo. Sammenspillet mellem DSC ens timer, output compare funktion og PWM-signalet er vist på figur 6.2. PRy TMRy PWM 2 PWM 1 t OCx OCxR PWM 1 PWM 2 OCxRS PWM 1 PWM 2 T skift Figur 6.2: TMRy er timerens tælleregister, PRy repræsenterer pulstiden, OCxR er output compare-registret og i OCxRS sættes den nye pulstid af brugeren. Overordnet beskriver PRy på figur 6.2 antallet af pulser talt på timerens tælleregister TMRy før denne nulstilles. Dette er bestemmende for periodetiden og derved den resulterende PWM-frekvens. Pulstid kommer til udtryk via OCx, mens logikken bag kontrolleres af OCxR og OCxRS, hvilke er bestemmende for hvorledes pulstiden opnåes. 33

34 ! < S ^ # " Z [ N Når DSC ens timer er aktiv i PWM-mode, er et direkte skift af OCxR ikke muligt. Når aktiv, skrives den ønskede pulstid til OCxRS, hvor værdien overføres til OCxR hver gang timeren nulstilles grundet PRy. Denne funktionalitet er beskrevet af figur 6.2, hvor tidsdiagrammet beskriver et skift imellem periodetiderne PWM 1 og PWM 2. Det forsinkede skift fra en ny periodetid registreres i OCxRS til at en hel PWM periode med pulstiden PWM 2 er afgivet, kan tage op til T skift, hvilken er fra en periode til to perioder fratrukket et tick på TMRy. 6.3 Sensorimplementering Da de sensorer Leader og Member er udstyret med ikke er designet til formålet, skal der forskellige typer af tilpasning til, før sensorenes output-signaler kan bearbejdes af DSC en. På figur 6.3 er det elektriske diagram for Member opstillet.! " # $ asr a#_#r ( ( a!"r 3"!! 3-5!!>] a!"r Y.% ' O">! (A5+:7Iа! a!"r a!"r >R 8*Q7:, 8K*+F? Skaleringskredsløb a!"r 3"!" 3-5!!>] a!"r Y.% 3">! 3-5! ">_S] 3">" 3-5!!>] Y.% O">"!_<R O"># O">$ 3">[ O">S O">< 3"!< (A5+:7Iа " P:5+*Q?-I asr P= ! ',/-+66+? 3-5! "!]!>] 8">! 3"!> a!_<r 8T=8O8) 3-5! 8">"!>] 3">^ 8T=8O8) 3-5! a<r a#_#r Y.% asr!>] 3">S 3">< Y.% Y.% 3-5! 3-5! Y.%!>>] [" 3">Z Y.% 3"!Z 3-5! 3-5! 3">#!>]!>>] 3-5! Y.% asr ">_S] asr Y.% Hysterese 3"!# 3">$ 3-5! ' 3-5! $]!>] D">"' D">"& D">"% WU#"$. WU#"$. asr WU#"$. Y.%!! $ $!! $!! $!! 3"!$ 3-5! D">"( S] 3"!S WU#"$. Y.% 3-5!!>] Y.% a!_<r a!_<r a!_<r a!"r a!"r >R 8*Q7:, 8K*+F? ( %а a %а = & asr asr >R OTU V.: V.1 ' & %!$!>!#!" a<r >R OTU a#_#r Y.% Y.% Y.% 3` )` 3)8 &)8 OV\> 3N8N) D">!! " U&W3 (.>XR3NBaX&."X3(> # & (.!XR3NB=X&.#X3(! & "> ^ R&(OXR%%&\3N \8&VX&W]VX&.#>X3("!> \8&\X&W]\X&."^XOU(>X3(#!#!" a#_#r R%% 8\8&\X)!&]X&.>XOU(!X3($ "[ (R%% $ OY%!XNUD%!X(."X&"V.=X3O>X&.$X3'> [ S Y.% R88 OY&!XNUD&!X(.#X&"V.aX3O!X&.SX3'!!^ < R88 (.$X&!V.=X3O"X&.<X3'" "Z Z (R88 (.SX&!V.aX3O#X&.ZX3'#!! 8\8&VX3O$X&.!XOU'NX3'$!$ OY%#XNUD%#X(8%(!X3OSX&."ZXOU%ZX3'S!S OY&#XNUD&#X(8&W!X3O<X&."$XOU%<X3'<!< V.)>X3OZX&."#XOU%SX3'Z!Z )&]XOTU"P!X8&W!X3O[X&.""XOU%$X3'[![ )%\XOTU"W!X8%(!X3O^X&."!XOU%#X3'^ "! OY%"XNUD%"X)%VXOTU!P#X3O!>X&.!<XOU%"X3'!> "" OY&"XNUD&"X)U8XOTU!W#X3O!!X&.!SXOU%!X3'!! "# OTU!P"X3O!"X&.!$XOU%>X3'!" "$ OTU!W"X3O!#X&.!#XOU3%X3'!# "S )*+,- % OTU!P!X3)&&X3O!$X&.!"XOUT3X3'!$ % "< OTU!W!X3O!SX&.!!XOU&8!X3'!S %8OV&##BE!"[U&[>"=NX8O 8*9-./ *5*67 ($ %:+-;!<=!"=">!! 8?--+а а а а 6A B*,-; &;CD5-25CE:F61C%-5G+6HCH*F16:2IJ8F?%6F %2:K7а 'L;! " # $ Figur 6.3: Elektrisk diagram over Member, hvor tilpasningerne er markeret med røde firkanter. Leader benytter tilsvarende diagram, med den undtagelse at der ikke er monteret afstandsensorer og tilhørende tilpasning. 34

35 6.3.1 Afstandssensor Member benytter, som tidligere nævnt, to afstandssensorer. Disse kræver en forsyningsspænding på mindst 12 V, dog ikke højere end 30 V, for at outputtet er mellem 0 og 10 V. Da DSC en opererer ved 3,3 V skaleres signalet med en spændingsdeler, se figur 6.3. Sammenhængen mellem skaleringsforholdet og modstandene er givet ved ligning (6.1). 3, 3 V 10 V = R 202 R R 201 (6.1) For at løse ligning (6.1) skal én af de to modstande defineres, derfor sættes R 202 = 10 kω. Ved simpel beregning kan det vises at R 202 = 20, 3 kω. For at få en digital repræsentation af signalet benyttes en 12-bit ADC. Konverteringen af signalet tager 353 ns, se ligning (6.2). Dette tydeliggører at måling med 200 Hz ikke er et problem [11]. t c = 14 t cy = 353 ns (6.2) Hvor: t c er konverteringstiden [s] t cy er periodetiden for instruktionsclocken [s] Som tidligere nævnt er der, for at simplificere datakodning, valgt at afstanden sendes som 1/10 mm. Dette sikrer at data kan sendes som heltal med en højere præcision. Dog sætter det også krav om minimum 12 bit til hver afstandsmåling. 35

36 6.3.2 Hastighedssensor Som beskrevet i afsnit 2.5 skal hastigheden på bilerne begrænses. Derfor er både Leader og Member udstyret med en hastighedssensor, for at gøre dem i stand til at måle deres hastighed. Denne hastighedssensoren er opbygget som på figur 6.4. Leader benytter yderligere hastighedsmålingen til at regulere hastigheden. Det signal phototransistoren (a) Hastighedssensoren set forfra. (b) Hastighedssensoren set fra siden. Figur 6.4: Leader og Members skive, IR-LED og phototransistor, hastighedssensor. giver som output er dog ikke et firkantsignal, men nærmere et sinussignal. For at gøre signalet til et firkantsignal benyttes en op-amp, LM324, forbundet som på figur 6.3. Den benyttede opkobling får op-amp en til at fungere som en Schmitt trigger. Hver puls fra Schmitt triggeren inkrementerer en timer i DSC en. Denne timerværdi omregnes til den aktuelle hastighed. Hystereseniveauerne, der er bestemt udfra forsøg, se appendiks E, er opstillet i ligning (6.3). V H = 3, 0 V V L = 2, 5 V (6.3) Hvor: V H er det høje hystereseniveau [V] V L er det lave hystereseniveau [V] Sammenhængen mellem hystereseniveauerne, og de tre modstande er givet ved lignings- 36

37 systemet (6.4). V L = V CC V H = V CC R 214 R 215 R 214 +R 215 R 214 R 215 R 214 +R R 213 R 214 R R 213 R 215 R 213 +R 215 Hvor: V CC er spændingsforsyningen [V] For at bestemme de tre modstande skal én af dem defineres på forhånd, da ligningssysemet ellers ikke er entydigt. Derfor er R 215 = 20 kω. Det kan med simpel beregning vises at de to andre modstande bliver R 213 = 4 kω og R 214 = 5 kω. Som udgangspunkt ønskes samtlige sensorer og aktuatorer at køre med samme frekvens. Desuden ønskes det at timeren minimum skal have 10 pulser per hastighedsmåling, for at en misset puls får en begrænset indvirkning. Dette giver anledning til en minimumshastighed, afhængigt af aflæsningsfrekvensen. Benyttes de 200 Hz kan minimumshastigheden udregnes som ved formel (6.4). v = n O f p N 10 0, 1948 m 200 Hz = = 2, , 96 m /s = 9, 78 km /t (6.4) Hvor: v er minimumshastigheden [m/s] n er talte antal pulser [Hz] O er hjulomkredsen [m] f er opdateringsfrekvensen [Hz] p er antal pulser på én omgang [ ] N er gearforholdet [ ] Dette bedømmes til ikke at være acceptabelt. Derfor sættes frekvensen til en fjerdedel, 50 Hz. Dette giver en minimum hastighed på 2,45 km /t Som beskrevet i afsnit skal hastighedssensoren kunne håndtere 1112 rpm på hjulet, svarende til en frekvens på 2655 Hz for phototransistoren, se ligning (6.5). Ifølge phototransistorens datablad er dette ikke et problem. f = ω N p 60 s /min = 1112 rpm 7, s /min = 2655 Hz (6.5) Hvor: f er den maksimale frekvens [Hz] ω er den maksimale omdrejningshastighed [rpm] 37

38 For at simplificere kommunikationsprotokollen er det, lige som afstandsmålingen, valgt at benytte 12 bit til hastighedsmålingen. 38

39 Kommunikation 7 Kommunikationen mellem Base, Leader og Member skal foregå trådløst. Da alle afstande og hastigheder skal kendes af Base, for at muliggøre visning, kan der sættes krav til hastigheden på forbindelsen. Alle sensordata sendes som 12 bit data, som forklaret i afsnit 6.3. Sensorerne aflæses med kendte frekvenser, hvilket giver et minimum for datahastigheden, hvis kun sensordata skal transmitteres. I tabel 7.1 er disse minima opstillet. Sensor Opdateringsfrekvens Bits Datamængde Afstand 200 Hz Bits/sec Afstand 200 Hz Bits/sec Hastighed 50 Hz Bits/sec Total 5400 Bits/sec Tabel 7.1: Opstilling af minimumskrav for kommunikation. Dette krav skal anses som et absolut minimum, da der også, i kommunikationen, vil være headers og andet som benytter sig af kommunikationsvejen. Det tager desuden udgangspunkt i at sensordataen kan sendes, så snart disse bliver aflæst, hvilket ikke nødvendigvis vil være tilfældet. Ud fra dette kan en kommunikationsstandard vælges. 7.1 Valg af teknologi Da systemet forsynes af et batteri, er det fordelagtigt at benytte en kommunikationsform, som bruger mindst muligt effekt, men stadig muliggører kommunikation i testmiljøet. Der vælges derfor at benytte Bluetooth, da denne, modsat eksempelvis en teknologi som Wi- Fi, er kendt for et lavt strømforbrug. Desuden har en klasse 2 Bluetooth en rækkevide på ca. 10 m, hvilket fint passer overens med størrelsen på testmiljøet. Specifikt vælges der at benytte WLS123A1M fra Seeed Studio [12], da denne er tilgængelig via AAU. Bluetooth-protokollen indeholder en række forskellige protokoller der muliggører forskellige former for kommunikation. Kernen af bluetooth-protokollen består af de nederste lag, 39

40 under data-linket, på figur 7.1. Figur 7.1: Bluetooth stack [13]. Radio er standarden for hvilke frekvenser kommunikationen foregår på. Bluetooth fungerer på ISM båndet ved 2,402 til 2,480 GHz, med 79 kanaler fordelt med 1 MHz mellemrum. Denne del definerer desuden, udtrykt ved sendeeffekt, rækkeviden på Bluetooth-modulet. Baseband er den del af stack en, som tager sig af pakkehåndtering. Denne består af to forskellige pakker; SCO, Synchronous Connection-Oriented, som benyttes til lyd, og ACL, Asynchronous Connection-Less, som benyttes til data. LMP, Link Manager Protocol, står for at etablere forbindelse over de links, som skabes af basebandet. Desuden er det her sikkerhed og autentificering implementeres. HCI, Host Controller Interface, er driveren som forbinder hardwaren i de lavere lag med softwaren i de højere. L2CAP, The Logical Link Control and Adaptation Protocol, modtager data fra applikationer og adapterer det til Bluetooth format. Herudover findes der en række forskellige Bluetooth-profiler. Specifikt til dette projekt benyttes en profil ved navn RFCOMM, der fungerer som et cable replacement. Dette vil sige at Bluetooth-forbindelsen ses som en seriel port, og derfor håndteres sådan. Dette gør det muligt at tilslutte en UART fra DSC en direkte til bluetoothmodulet og sende kommandoer som var det en virtuel kablet RS232 forbindelse. 40

41 7.2 Opsætning WLS123A1M opsættes ved hjælp af AT-kommandoer, som vist i kodeeksempel 7.1. Listing 7.1: En AT-kommando som sætter navnet på Bluetooth-modulet. \r\n+ STNA = Leader \r\n Bluetooth-modulerne er opsat til at sende otte databits per besked, uden paritetsbit, med én start- og én stopbit, hvilket ikke er muligt at ændre. Derfor opsættes al seriel kommunikation til at benytte disse indstillinger, så kommunikationen mellem enhederne er konsistent. Modulerne opsættes som slaver, så det er op til Base, der fungerer som master i Bluetooth-forbindelsen, at initiere forbindelsen. Da en RS232 forbindelse sender bytevis, vil det være nødvendigt at sende to bytes for at indeholde de 12 bits i hver måling, givet af tabel 7.1. På baggrund af dette kan en minimums-baud rate beregnes. Fire og to bytes giver, hvis de sendes hhv. 200 og 50 gange i sekundet, en baud rate på (200 Hz 4 bytes + 50 Hz 2 bytes) 10 bits = 9000 bits s. Da der også ønskes at sende debug-data under udvikling, er 9600 baud ikke tilstrækkelig. Baud raten sættes derfor til den nærmeste højere baudrate Bluetooth-modulet kan køre med, i forhold til den mindste hastighed. Baud raten ønskes så lav som mulig, da DSC ens frekvens har en fejl i forhold til den ønskede frekvens, hvilket giver en fejl, der er afhængig af frekvensen; jo højere frekvens, jo større fejl. Denne findes ud fra formel (7.1) [11]. baudrate = f cy 4 (U1BRG + 1) (7.1) Hvor: f cy er frekvensen for instruktionsclocken U1BRG er en heltalsværdi som sættes i DSC en U1BRG findes ved at omskrive denne til formel (7.2) og indsætte den ønskede baud rate for til sidst at afrunde resultatet til nærmeste heltal. U1BRG = f cy (7.2) Dette indsættes så i formel (7.1), for at finde den reelle baud rate på 19193,86. Dette giver en fejl på = 0, 03 %. Denne fejl dømmes dog til at være så lille at den er ligegyldig. En fejl på den størrelse vil først komme til at betyde noget hvis der sendes en meget lang, usynkroniseret streng af bits. Da RS232 sender enkelte bytes, og da den synkroniseres hver gang en byte sendes, er det derfor højest usandsynligt at denne fejl vil betyde noget for modtagelsen af data. Fordi Tx- og Rx-FIFO-bufferen på DSC en kun er fire bytes stor, vil det være nødvendigt at sende de seks bytes af to gange. 41

42 7.3 Protokol For at kunne kommunikere med bilerne er det nødvendigt at definere en protokol, der sætter standarder for hvad der kommunikeres frem og tilbage. Det ønskes at have en simpel og lille protokol, for at gøre kommunikationen så hurtig som mulig. Da der som nævnt i afsnit 7.1 benyttes 12 bit data fra bilerne efterlades der fire bit som kan bruges som header, som vist på figur 7.2. Disse headere kan aflæses af Base, for at afgøre hvilken slags data der modtages. Denne protokol defineres i tabel 7.2. Header HHHH XXXX Værdier XXXX XXXX Figur 7.2: Her ses hvordan to bytes deles op med 12 bit data værdier og fire bit header. Protokol (Fra biler) Header Data 0 Venstre Afstandssensor 1 Højre Afstandssensor 2 Hastighedssensor (Member) 3 Hastighedssensor (Leader) Tabel 7.2: Opstilling af protokol for kommunikationen fra bilerne. Til at sende kommandoer til Leader er det tilladeligt at benytte længere, lettere læselige kommandoer, da disse ikke sendes i et lige så hurtigt interval, som informationen fra bilerne. Da Rx-registret på DSC en er fire bytes stor, er det derfor tilladeligt at sende op til fire bytes som kommandoer til Leader. Til Leader er det besluttet at det ikke er nødvendigt med værdier højere end hvad der kan være i én byte, altså 255. Dette giver én byte til værdi, én til header og én som nulterminering, så komandofortolkeren nemt kan genkende kommandoerne når de termineres med 0x00. Headeren sendes efter værdien, for at simplificere genkendelsen af en kommando. Dette giver en pakke som vist på figur 7.3 samt en protokol som vist på tabel 7.3. Hastigheder sendes med enheden dm /s og afstande med enheden 1 /10 mm, disse enheder er valgt for at opnå en højere præcision og samtidig benytte et heltals format. 42

43 Værdi XXXX XXXX Header HHHH HHHH 0-Terminering Figur 7.3: Her ses hvordan en pakke med tre bytes ser ud, fra Base til bilerne. Protokol (Fra Base) Data (Værdi) Header Funktion Hastighed (0-36) f Kør fremad Hastighed (0-36) b Kør baglæns Drej (0-109) l Drej til venstre Drej (0-109) r Drej til højre 0 s Stop Tabel 7.3: Opstilling af protokol for kommunikationen fra base. 43

44

45 Hastighedsmodellering og -regulering 8 For at muliggøre en brugerbestemt hastighed for Leader, vil der i følgende afsnit konstrueres en regulering, der via et variabelt sætpunkt kan opnå en bestemt samt stabil hastighed. Denne regulering er vist på figur 8.1. R h (s) + - D h (s) G h (s) Y h (s) H h (s) Figur 8.1: Samlet blokdiagram for hastighedsreguleringen, hvor et sænket h angiver at de tilhører hastighedsblokken. Hastighedsreguleringen, på figur 8.1, skal gøre Leader i stand til at opnå samt holde en konstant hastighed. Derfor konstrueres en model for Leader, der skal være beskrivende for hvorledes dennes hastighed reagerer på en given påtrykt spænding på motorens terminaler. Efterfølgende vil en hastighedsregulering konstrueres, i henhold til kravspecifikationerne. 8.1 Hastighedsmodel For konstruktion af en samlet hastighedsmodel vil en opdeling være aktuel. Opdelingen finder sted således, at fremdriftssystemet inkluderende DC-motoren modelleres selvstændigt, mens forsinkelser, der opstår som følge af behandlingsvejen før en ændring finder sted, behandles separat. På figur 8.2 illustreres opdelingen for, hvorledes hastighedsmodellen udledes. 45

46 G h (s) - Hastighedsmodel G h1 (s) (Tidsforsinkelser) G h2 (s) (Fremdriftssystem) Figur 8.2: Implicerede elementer i den endelige hastighedsmodel Tidsforsinkelser I indeværende afsnit vil forsinkelser der påvirker hastighedsmodellen anskueliggøres. Der tages udgangspunkt i figur 8.3 hvor forsinkelser i modellen, som følge af valgte teknologier, er givet. G h1 (s) - Tidsforsinkelser PWM H-bro Figur 8.3: Blokkene repræsenterer de emner der forventer at give en tidsforsinkelse. Måden hvorpå DSC en er opsat til at generere et PWM-signal er givet i afsnit og beskriver hvorledes en ændring af pulsenes bredder i værste fald først foretages i op til en hel periodetid efter ændringen er registreret. Dertil kommer overvejelsen om hvornår den nye pulstid påvirker den ønskede komponent, hvilket antages at være efter en hel periode, T PWM. Derved er tidsforsinkelsen i signalet givet ved formel (8.1). T d,p W M = = 2 = 100 µs (8.1) f motor,pwm 20 khz Hvor: T d,pwm er tidsforsinkelsen for PWM-modulet [s] f motor,pwm er PWM frekvensen til fremdrifsmotoren [Hz] T PWM er PWM periodetiden [s] Dertil kommer en yderligere tidsforsinkelse i form af H-broens rise time. Denne tid, T d,h bro, kan aflæses til at være 16 µs. Derved er den samlede tidsforskydelse givet ved ligning (8.2). T d,total = T d,pwm + T d,h bro = 116 µs (8.2) 46

47 Hvor: T d,total er tidsforsinkelsen for PWM-modulet [s] T d,h bro er tidsforsinkelsen givet ved H-broen [s] Da systemet reguleres med en betydelig lavere rate end PWM-frekvensen, vurderes tiden T d,total ligegyldig for den samlede model Modellering af fremdriftssystem Som del af den samlede hastighedsmodel, vist på figur 8.1, er modellen af fremdriftssystemet, hvilken inkluderer gear, DC-motor samt differentiale mm. I dette afsnit vil det udledes hvorledes sammenhængen mellem en inputspænding på DC-motorens terminaler resulterer i en given hastighed. Ved påtrykkelse af spænding på DC-motorens terminaler dannes et magnetfelt i dets viklinger. Terminalerne er forbundet til ankerviklingerne via motorens kommutator, hvilket bevirker at kun de korrekte ankerviklinger er aktive og med korrekt polaritet i forhold til motorens stator, der er bestående af permanentmagneter. Når et magnetfelt opbygges i de aktive viklingerne vil de permanente magneter, der udgør statoren, frastøde disse og resultere i et moment. Dette motormoment er illustreret på figur 8.4 som τ sm og påvirker det samlede system i form af en resulterende hastighed. Der vil i dette afsnit konstrueres en samlet overføringsfunktion for hastighedsmodellen, der medtager hele fremdriftssystemet indkluderende DC-motoren, gear samt hjul mm. Afslutningsvis vil der blive udledt forskellige systemparametre, som skal bidrage til at den endelige overføringsfunktion beskriver Leader i detaljer. Der tages udgangspunkt i undervisningsmateriale, hvor den grundlæggende teori er tilgængelig [17]. For det endelige system opstilles et frit-legeme-diagram, som på figur 8.4, hvis overføringsfunktion repræsenterer hele fremdriftssystemet. τ sm τ sb τ sf J s Figur 8.4: Samlet frit-legeme-diagram for systemet. B På figur 8.4 beskriver τ sm det samlede tilførte moment, τ sf den samlede friktion og τ sb den samlede belastning af systemet. 47

48 Elektrisk ækvivalentkredsløb for fremdriftsmotoren Første tiltag for konstruktion af en samlet model er beskrivelsen af motorens elektriske ækvivalentkredsløb. Det vides at en motors moment er proportionelt skaleret i forhold til strømmen. Det er derfor aktuelt at opstille et entydigt udtryk, hvor strømmen kan isoleres, da denne kan benyttes i forbindelse med den mekaniske ligning for systemet. Det elektriske ækvivalentdiagram for motoren er givet ved figur 8.5 og beskriver den indre modstand, den indre induktans samt den elektromotoriske kraft. I a (t) R a L a U a (t) emf(t) Figur 8.5: Elektrisk ækvivalentskredsløb af DC-motoren. Som del af en elektriske model er motorens elektromotoriske kraft (emf), hvilken ligeså er beskrevet som værende proportionelt skaleret med vinkelhastigheden og kan beskrives som ved formel (8.3). emf(t) = K m ω motor (t) (8.3) Hvor: emf(t) er den elektromotoriske kraft induceret i spolen [V] ω motor (t) er motorens vinkelhastigheden [ rad /s] K m er motorens proportionalitetskoeffcienten [Wb] Den elektromotoriske kraft, der er beskrevet ved ligning (8.3), betegner spændingen der induceres ved kontinuerte ændring af strømmen gennem motorens vindinger. Af foregående ækvivalentdiagram på figur 8.5 kan ligning en givet ved (8.4) opstilles, der udtrykker terminalspændingen på DC-motoren. U a (t) = R a I a (t) + L a d dt I a(t) + K m ω motor (8.4) Hvor: U a (t) er terminalspændingen [V] I a (t) er strømmen gennem motorens vindinger [A] L a er motorens indre induktans [H] 48

49 R a er motorens indre modstand [Ω] Da det er implicit at der arbejdes i tidsdomænet, vil der fremadrettet ses bort fra tidsnotationen for at øge den overordnede læsbarhed. I appendiks I er udtrykket, der er givet ved formel (8.4), laplacetransformeret og omskrevet således at ligningen beskriver strømmen der gennemløber DC-motoren. Da strømmen og motorens moment er proportionelt relateret er den elektriske modellering fuldført og er i førnævnte appendiks benyttet til at opstille den endelige overføringsfunktion. 49

50 Mekanisk model af systemet Det samlede mekaniske system beskrevet ved figur 8.4 i introduktionen af indeværende kapitel, er i praksis beskrevet af flere legemer. Først må hvert legeme beskrives enkeltvis, med de sammenhænge der er gældende imellem de to, for afslutningsvis at beskrives som et samlet legeme. For det samlede system kan der opstillets to frit-legeme-diagrammer; et for motoren og et for hjulene. Ud fra de to diagrammer kan der opstilles en mekanisk ligning, der kombineret med den elektriske model giver overføringsfunktionen for systemet. ω motor ω hjul τ mm F t r motor F t r hjul τ bil Motor r motor Hjul r hjul J hjul ώ hjul τ mf J motor ώ motor τ trans τ hu N motor (a) Mekanisk model for DC-motoren. N hjul (b) Mekanisk model for hjulene. Motor F t F t Hjul (c) Gearudvækslingen. Figur 8.6: Mekanisk model opsat for hverisær motor, hjul samt gearudveksling. Hvor: F t er transmissionskraften mellem de to legemer [N] N motor er antallet af tænder på motorens påmonterede tandhjul [ ] r motor er motorens tandhjulsradius [m] ω motor er motorens vinkelhastighed [ rad /s] ω motor er motorens vinkelacceleration [ rad /s 2 ] J motor er motorakslens inertimoment [kg m 2 ] τ mm er motormomentet [N m] τ mf er friktionsmomentet i motoren [N m] N hjul er antallet af tænder på hjulakslens påmonterede tandhjul [ ] r hjul er hjulakslens tandhjulsradius [m] ω hjul er hjulenes vinkelhastighed [ rad /s] ω hjul er hjulenes vinkelacceleration [ rad /s 2 ] J hjul er hjulenes samt akslernes inertimoment [kg m 2 ] τ bil er bilens momentpåvirkning på systemet [N m] τ trans er belastningsmomentet der opstår i transmission mm. [N m] τ hu er belastningsmomentet der opstår som følge af hjulunderlaget mm [N m] 50

51 Der tages udgangspunkt i motorens frit-legeme-diagram på figur 8.6a. Diagrammet beskriver de forskellige momenter som påvirker eller genereres i eller af motoren. Først opstilles den algebraiske ligning (8.5) for frit-legeme-diagrammet for motoren på figur 8.6a. τ mm = J motor ω motor + F t r motor + τ mf (ω, τ mm F t r hjul ) (8.5) Det vides at motormomentet er proportionelt med ankerstrømmen skaleret med en proportionalitetskoefficienten K m. Det skal bemærkes at proportionalitetskoefficienten er den samme som er medbeskrivende for den elektromotoriske kraft (8.3). Derved er det samlede motormoment givet ved formel (8.6). τ mm = I a K m (8.6) Hvor: τ mm er motormomentet [N m] I a er strømmen gennem motorens vindinger [A] K m er proportionalitetskoeffcienten[wb] Motorens moment overføres til hjulet vha. en gearing af tandhjul, som er bestemmende for hvorledes hjulet bevæges samt hvordan momentet distribueres fra motorens aksel. Af illustrationerne på figur 8.6c kan følgende sammenfatning af udtryk, der påvirkes af gearingen, beskrives ved formlerne (8.7). N = N hjul N motor = r hjul r motor = ω motor ω hjul = ω motor ω hjul (8.7) Hvor: N motor er gearingsforholdet mellem de to legemer [ ] For motorens friktion τ mf er den ulineære funktion, givet ved (8.8), gyldig. Det skal bemærkes at kun et af de tre udtryk beskriver motorens friktion under bevægelse, hvilken er et lineært udtryk, mens de to resterende udtrykker motoren ved stilstand og gør den samlede funktion ulineær under opstartsfasen af motoren. For friktionen i motoren indgår belastningen af motoren, der samlet er givet ved F t r motor, og vil være udtrykt som et motorbelastning τ mb for at fremme læseligheden. B motor ω motor + sign(ω) τ c, ω motor 0 τ mf (ω, τ mm τ mb ) = τ mm τ mb, τ mm τ mb (τ c + τ s ) (τ c + τ s ) sign(τ mm τ mb ), τ mm τ mb > (τ c + τ s ) (8.8) 51

52 Hvor: B motor er motorens viscous friktionskoefficient [ kg /(s m)] τ mm er motormomentet [N m] τ mb er belastningen på motorakslen og er beskrevet ved F t r motor [N m] F t er transmissionskraften mellem de to legemer [N] τ c er coulomb-fritionen ydet af motoren [N m] τ s er en statisk coulomb-friktion ved opstart af motoren [N m] Da målet er en lineær model, hvor motoren er under bevægelse, benyttes det udsnit af funktion (8.8), der beskriver dette scenarie for friktionen. Derved kan den endelige ligning for motorens ækvivalentdiagram bestemmes, hvor det antages at sign(ω) = 1 i funktion (8.8), fordi retningen antages kun at værende positiv og derved lyder motorens mekaniske ligning som givet ved (8.9). I a K m = J motor ω motor + B motor ω motor + τ c + F t r motor F t = 1 r motor (I a K m J motor ω motor B motor ω motor τ c ) (8.9) Efterfølgende vil en ligning for hjulenes aksel, der repræsenterer frit-legeme-diagrammet illustreret på figur 8.6b, opstilles og beskriver påvirkningerne på hjulet i detajler. F t r hjul = J hjul ω hjul + τ bil + τ trans + τ hu (8.10) Der er valgt at se bort fra hjulunderlagets friktion τ hu selvom dens effekt på systemet ikke vides med sikkerhed. Denne udelukkelse kan bl.a. påvirke coulomb-friktionen samt friktionskoefficient således at modellen afviger fra den endelige. Bilens mekanik såsom transmission mm. giver anledning til et belastningsmoment, som antages at værende proportionel med vinkelhastigheden på motoren. Der defineres, ligesom for motoren, en viscous-friktionskoefficient, der er givet ved B bil og det resulterende udtryk bliver formel (8.11). τ trans = B hjul ω hjul (8.11) Hvor: τ trans er belastningsmomentet der opstår i transmission mm. [N m] B motor er motorens viscous friktionskoefficient [ kg /(s m)] ω hjul er hjulenes vinkelhastighed [ rad /s] Afslutningsvis for hjulenes ækvivalentdiagram på figur 8.6b kan τ bil bestemmes ud fra forskellige fysiske parametre for bilen. På figur 8.7 ses et frit-legeme-diagram for bilens påvirkning på hjulene. 52

53 For et køretøj med en given masse og hastighed er en størrelse kaldet impulsbevarelse gældende. Denne beskriver hvorledes den totale impuls er konstant for alle partikler i et lukket system. Impulsbevarelsen er yderligere beskrevet vha. Newtons 2. lov, hvor ændringen i det lukkede system vil være udslagsgivende i form af en kraft som følge af ændring af hastighed, altså en acceleration. v bil =r hjul ω hjul F bil F frik m τ Bil= F bil r hjul B Hjul r hjul ω hjul Figur 8.7: Samlet frit-legeme-diagram for bilen og dens momentpåvirkning på hjulene. Der er på figur 8.7 illustreret en friktionskraft F frik, der repræsenterer vindmodstand mm. Der vælges i dette projekt at se bort fra en sådan kraftpåvirkning, grundet bilens størrelse og den hastighed denne opererer ved. Sammenhængen mellem impulsbevarelsen og Newtons 2. lov er givet ved formel (8.12). Det skal desuden bemærkes at ligningens elementer er skrevet på vektorform fordi det kun er kraften vinkelret på radiusen der giver momentet. Efterfølgende vil det antages implicit, og notationen er derfor kun medtaget her. p bil = m bil v bil p bil F bil = d dt = m bil v bil (8.12) τ bil = F bil r hjul = m bil v bil r hjul Hvor: F bil er bilens kraft [N] τ bil er bilens moment der ydes ved hastighedsændringer [N m] p bil er bilens impulsbevarelse [kg m/s] m bil er bilens masse [kg] v bil er bilens hastighed [ m /s] v bil er bilens acceleration [ m /s 2 ] 53

54 Det antages at en ændring i hastighed kun finder sted i bilens faktiske køreretning, der er givet ved v bil på figur 8.7, og dermed kun er en tilnærmelse hvis bilen eksempelvis accelerer under et sving. Den endelige kraftpåvirkning på hjulet er vist ved formel (8.13), som beskriver en momentpåvirkning τ bil. τ bil = m bil v bil r hjul τ bil = m bil r hjul ω hjul r hjul = m bil r hjul2 ω hjul (8.13) Hvor: v bil er bilens acceleration [ m /s 2 ] τ bil er det moment som bilen via hjulet påvirker underlaget med [N m] ω h er hjulenes vinkelacceleration [ rad /s 2 ] Ligningen (8.14), der angiver hjulmomentet F t r hjul, kan således opstilles for ækvivalentdiagrammet illustreret på figur 8.6b. r hjul F t = J hjul ω hjul + m bil r hjul2 ω hjul + B hjul ω hjul (8.14) Den resulterende og endelige mekaniske ligning, i hvilken der tages udgangspunkt i dette projekt, er således den mekaniske ligning (8.9) for motoren indsat i den mekaniske for hjulet (8.14). I den resulterende samlede ligning (8.15) omskrives der vha. gearudvekslingen, som er givet ved formel (8.7), for at opnå et generelt udtryk. r hjul r motor (I a K m J motor ω motor B motor ω motor τ c ) = J hjul ω hjul + m bil r hjul2 ω hjul + B hjul ω hjul N I a K m =J hjul ω hjul + m bil r hjul2 ω hjul + B hjul ω hjul... + N (J motor ω motor + B motor ω motor + τ c ) (8.15) N I a K m =(J hjul + J motor N 2 + m bil r hjul 2 ) ω hjul... + (B hjul + B motor N 2 ) ω hjul + N τ c Samlet model Der vil i det følgende blive udledt en overføringsfunktion G h (s) som i henhold til figur 8.1 i indledningen af afsnittet, giver en sammenhæng mellem en påtrykt spænding og en 54

55 hastighed i meter per sekund. Desuden vil forskellige ukendte parametre for systemet blive udledt og indsat i den algebraiske overføringsfunktion og danne den endelige hastighedsmodel. Da overføringsfunktionen beskriver hele systemet, fra motor til hjul, vil de forskellige ukendte systemparametre blive målt vha. forsøg eller deraf udledt og være beskrivende for det samlede system. Der kan ifølge illustration 8.4 for et simpelt roterende mekanisk legeme opstilles et samlet udtryk, der beskriver det overordnede mekaniske system. Udtrykket har til formål at kategorisere den allerede opstillede algebraisk ligning (8.15) for det mekaniske system, hvilken er beskrevet i det foregående afsnit. I den endelige mekaniske ligning (8.15) blev motorens vinkelhastighed og acceleration omskrevet til hjulets vha. gearudvekslingen givet ved (8.7). Desuden blev ligningen omstruktureret således, at ligningskonstanterne blev respektivt isoleret i forhold til hjulenes vinkelhastighed og vinkelacceleration. For systemet er den endelige sammenhæng derfor givet ved systemfiguren 8.4, der var udgangspunktet, og den mekaniske ligning (8.15), hvis sammenhæng er givet ved formel (8.16). τ sm = J system ω hjul + τ sf + τ sb N I a K m =(J hjul + N 2 J motor + m bil r hjul2 ) ω hjul (8.16)... + (B hjul + N 2 B motor ) ω hjul + N τ c I det følgende kategoriseres systemkonstanterne; inertimomentet og viscous-friktionskoefficienten således, at systemvariablerne kun omfatter parametre, der ikke påvirkes af bilens impulsbevarelse. Denne opdeling finder sted for senere at kunne bestemme disse som separate konstanter for det lukkede system. Disse systemkonstanter kan i et system med gearing samles for hvert af de to legemer, hvor de er skaleret korrekt, set i forhold til gearudvekslingen imellem disse. Af hensyn til bestemmelse af motorkonstanterne senere i afsnittet, hvor det samlede inertimoment og viscous-friktionskoefficienten findes i forhold til DC-motoren, hvis mekaniske model er illustreret på figur 8.6b, vil ligning (8.15) omskrives således, at de samlede systemkonstanter er set fra motorens aksel, hvilket giver ligning (8.17). N I a K m =(N 2 (J motor + 1 N 2 J hjul) + m bil r hjul2 ) ω hjul... + N 2 (B motor + 1 N 2 B hjul) ω hjul + N τ c (8.17) N I a K m =(N 2 J system + m bil r hjul 2 ) ω hjul... + N 2 B system ω hjul + N τ c Hvor: J system = J motor + 1 N 2 J hjul inertimoment på motorakslen [kg m 2 ] B system = B motor + 1 N 2 B hjul samlede viscous friktionskoefficient [ kg /(s m)] 55

56 Dermed er det samlede system defineret og konstanterne J system og B system kan bestemmes samlet og indsættes i overføringsfunktionen snarere end en individuel bestemmelse for hvert af de to mekaniske systemer illustreret på figurene 8.6a og 8.6b. Udledningen for systemets overføringsfunktion finder sted i appendiks I, og tager udgangspunkt i både den elektriske model, som er givet ved formel (8.4), og den mekaniske, der er givet ved formel (8.15). Det skal bemærkes at coulomb-friktionen τ c er uafhængig af vinkelhastigheden og derved ikke indgår som en del af overføringsfunktionen. Fordi coulomb-friktion ikke medtages i overføringsfunktionen, men stadig påvirker systemet, vil dens funktion være yderligere beskrevet senere i indeværende afsnit. ω hjul U a (s) = v bil (s) U a (s) = N K m ((N 2 J system + m bil r hjul 2 ) s + N 2 B system ) (R a + s L a ) + K m2 N 2 N K m r hjul ((N 2 J system + m bil r hjul 2 ) s + N 2 B system ) (R a + s L a ) + K m2 N 2 (8.18) For systemet kendes kun et fåtal af de parametre der er nødvendige for overføringsfunktionen (8.18). Et parameterforsøg tager udgangspunkt i at dc-motorens terminaler påtrykkes en fast spænding, hvilket resulterer i en steady-state tilstand hvor vinkelhastigheden på hjulet, ligesom spændingen, er konstant. Ved denne metode elimineres alle udtryk hvor vinkelaccelerationen er af betydning. Da vinkelhastigheden er konstant, reduceres motorens mekaniske ligning (8.9) til ligning (8.19). Det skal bemærkes at fordi målingerne laves på motoren, hvor hjulenes påvirkning implicit er medtaget, fåes de samlede systemkonstanter, hvor τ sb beskriver den samlede systembelastning. τ mm = B system ω motor + τ c + τ sb τ sb = I a K m B system ω motor τ c (8.19) Desuden vil det være gældende for den elektriske ligning (8.4) for motoren, at strømændringen gennem spolen er nul ved steady-state og derved bortfalder også her et led. Den resulterende elektriske ligning, der benyttes i forsøget, er givet ved ligning U a = R a I a + K m ω motor (8.20) Hvis der tages udgangspunkt i to målinger, hvor motorens terminaler påtrykkes forskellige spændinger, kan matricen (8.21) opstilles ud fra den elektriske ligning (8.20) samt den 56

57 mekaniske ligninger (8.19) ved steady-state. ω motor1 I a1 0 0 I a1 0 1 ω motor1 ω motor2 N I a2 0 0 I a2 0 1 ω motor2 K m R a τ c B system = U a1 τ sb1 U a2 τ sb2 (8.21) Hvor: ω motor er motorens vinkelhastighed [ rad /s] I a er strømmen gennem motorens vindinger [A] U a er den elektromotoriske kraft [V] τ sbn er det belastningsmomentet som ydes ved n te måling [N m] K m er en motorkonstant som indgår i den elektromotoriske kraft[wb] R a er motorens indre modstand [Ω] τ c er momentet fra coulomb friktionen [N m] B system er den samlede viscous-friktionskoefficient [ kg /(s m)] Der er i målejournalen, som er placeret i appendiks B, udført to forsøgsgennemgange, hvis resultater lyder som i tabel 8.1. Første måling: U a1 I a1 ω hjul1 τ sb1 2 V 3,735 I 546,3 rad /s 0 og Anden måling: U a2 I a2 ω hjul2 τ sb2 3,5 V 5,118 I 1004 rad /s 0 Tabel 8.1: Måleresultater for begge forsøgsgennemgange. Resultatet af to målinger i tabel 8.1 indsat i matricen giver følgende værdier for systemet givet ved resultaterne i ligning (8.22). K m R a τ c B system = 0, , , , 2755 (8.22) Af de resterende parametre, der ikke blev bestemt ved foregående, er motorens induktans L a samt inertimomentet for hjul og motor kaldet J system. For at bestemme motorens induktans benyttes følgende sammenhæng for den elektriske tidskonstant, der er givet ved ligning (8.23). τ e = L a R a (8.23) L a = τ e R a 57

58 Den elektriske tidskonstant τ e måles ved at lave et step-respons på kredsløbet og aflæse tidsværdien ved 63% af steady-stateværdien mht. strømmen igennem spolen, da strømmen herigennem ikke kan ændres momentant. Resultatet af step-responset er illustreret ved figur 8.8. Da systemet antages værende af 2. ordens karakter, kan tidskonstanten ikke direkte tages af den 63% steady-statesammenhæng der er givet ved et 1. ordens system. De to tidskonstanter i systemet antages at have et så stort forhold, at den elektrikse tidskonstant kan bestemmes med en acceptabel præcision ved visuel aflæsning X: Y: X: Y: Strøm(I) X: Y: Tid(s) Figur 8.8: Step-response mht. strømmen igennem motoren. Af figuren kan τ e bestemmes til 9,3 ms og induktansen L a kan derudfra fastsættes til 0,93 mh vha. formel (8.23). Til sidst bestemmes systemets inertimoment J system, hvilken er givet ved formel (8.24). J system = τ m (R a B system + K m 2 ) R A (8.24) Hvor: J system er det samlede inertimoment for systemet [kg m 2 ] K m er en motorkonstant som indgår i den elektromotoriske kraft[wb] R a er motorens indre modstand [Ω] τ m er den mekaniske tidskonstant [s] B system er den samlede viscous friktionskoefficient [ kg /(s m)] 58

59 For at finde den mekaniske tidskonstant påføres det fysiske system endnu engang et step-respons, hvor tidskonstanten aflæses ved 63% af steady-stateværdien mht. hjulenes vinkelhastighed, ω hjul. Dette step-respons er illustreret på figur 8.9, mens den faktiske måling er foretaget i målejournalen, som er placeret i appendiks B. 1.8 X: Y: Tachometer output [V] X: Y: X: Y: Tid [s] Figur 8.9: Step-response mht. omdrejningshastighed. Den mekaniske tidskonstant τ m findes til 0,139 s og det samlede inertimoment J system kan derved bestemmes vha. formel (8.24) til 13, kg m 2. Afslutningsvis er gearudvekslingen bestemt til at være 7,96 gg. Ved at benytte de fundne parametre kan den endelige overføringsfunktion bestemmes, givet ved ligning (8.25). v bil (s) U a (s) = N K m r hjul ((N 2 J system + m bil r hjul 2 ) s + N 2 B system ) (R a + s L a ) + K m2 N 2 G h (s) = v bil(s) U a (s) = 282, 73 (s + 110, 35)(s + 2, 243) (8.25) Hvor: J system er 13, [kg m 2 ] K m er 0,003 [Wb] R a er 0,1005 [Ω] L a er 0,934 [mh] B system er 8, [ kg /(s m)] 59

60 N er 7,96 [ ] r hjul er 0,031 [m] m bil er 2,2 [kg] Det vurderes, grundet den store forskel i polernes placering, at en udeladelse af en pol kan foretages for at simplificere reguleringen. For bibeholdelse af den korrekte DC-forstærkning omskrives den 2. ordens overføringsfunktion som vist ved formel (8.26). G h (s) = G h (s) = 1 a 0 b 0 K (s + a 0 )(s + b 0 ) K ( s a 0 + 1)( s b 0 + 1) (8.26) Sammenholdes formel (8.26) med overføringsfunktionen givet af hastighedsmodellen i ligning (8.25), kan en omskrivning, som ved formel (8.27), finde sted. G h (s) = 1 110, 35 2, , 73 s ( 110,35 + 1)( s 2, ) (8.27) Det bemærkes at den største pol vil have meget ringe effekt på udtrykket ved lave frekvenser og elimineres derfor, hvilket giver den resulterende ligning (8.28). G h (s) = G h (s) = 1, 142 ( s 2, ) 2, 567 s + 2, 2436 (8.28) Af overføringsfunktionen fremgik coulomb-friktionen τ c ikke, da denne er uafhængig af vinkelaccelerationen. Derimod beskriver den en offset-spænding der får den lineariserede model til at passe overens med hvordan motorens friktion, set ud fra friktions-ligningen, givet ved ligning (8.8), belaster systemet ved næsten stilstand. Af figur 8.10 fremgår den forventede vinkelhastighed ω hjul følge af ankerspændingen U a. Linearisering af motorens friktion giver anledning til det omtalte spændingsløft, som kan ses på figur Rent praktisk vil denne langt fra være præcis i opstartsfasen af motoren, hvilket også fremgår af ligning (8.8) for motorfriktionen, men at ekskludere den, vil gøre approksimeringen ugyldig. Derfor beregnes spændingen som følger, hvor der tages udgangspunkt i systemet ved en vinkelhastighed på nul. Udtrykket findes ved at indsætte den elektriske ligning (8.4) i den mekaniske (8.15) og samtidigt ignorere de udtryk som 60

61 Målt Gennemsnit Takometerpulse pr. sekund [pulse/s] X: 2 Y: 1565 X: 3.5 Y: Ankerspænding [V] Figur 8.10: Visualisering af den liniariseret motormodel. forsvinder grundet stilstanden i systemet. Dette resulterer i sammenhængen givet ved ligning (8.29). U a (offset) = τ c R a K m = 0, 21V (8.29) På figur 8.11 beskrives spændingen U a (offset) som et offset når motoren starter fra stilstand. Offset-spændingen skal kompenseres i begge retninger med modsat fortegn relativt i forhold til motorens terminaler. Set i forhold til projektet, vil det komme til udtryk ved en retningsændring på den valgte H-bro, mens PWM generatoren forbliver upåvirket. ω motor (t) U a (t) Figur 8.11: Den røde linje repræsenterer den lineariserede model af motoren, mens den blå viser samme, bare spændingskompenseret. 61

62 8.2 Hastighedsregulering I dette afsnit designes hastighedsregulatoren D h (s) vist på systemdiagrammet figur Systemets funktion er at justere hastigheden på Leader. R h (s) D h (s) K hbro G h (s) Y h (s) H h (s) Figur 8.12: Generelt diagram over hastighedsregulering For at kunne designe D h (s) skal der sættes nogle krav til reguleringen. D h (s) skal regulere på steps fra referencen og derfor må der ikke være steady-state fejl på et step input. Derudover skal systemet have en fasemargin på over 45, således systemet er stabilt, og minimalt overshoot. Til slut skal D h (s) have en settling time der ikke giver anledning til en acceleration på over 2 m /s 2, fremsat i afsnit 3. For at gør det mere overskueligt er G h (s) omskrevet til det i ligning (8.30) opstillede udtryk. G h (s) = K h1 s + K h2 (8.30) Hvor: K h1 = 2,567 K h2 = 2,2436 På figur 8.12 er der indsat konstanten K hbro. Denne er indsat for at konvertere den værdi der kommer ud af regulatoren, til en spænding der er mellem 0 og 7,2 V, som kan inputtes i modellen G h (s), se ligning (8.31). K H-bro = 7, (8.31) Hvor: 7,2 er den maksimale spænding over motoren 100 er den maksimale værdi H-broen kan sættes til 62

63 Samtidigt er der ud fra figur 8.12 opstillet open loop overføringsfunktionen vist i ligning (8.32), hvor H s (s) er sat til én da der ikke regnes med tidsforsinkelser i systemet. L h (s) = D h (s) K H-bro G h (s) H h (s) = D h (s) KH-bro K h1 s + K h2 (8.32) Systemtypebestemmelse For at kunne designe regulatoren skal typen af systemet først bestemmes. Typen af systemet bestemmer hvorvidt systemet vil have steady-state fejl ved step-, rampe- eller parabelinput. Da hastighedsreguleringen kun skal reagere på et step input, skal typen enten være 1 eller 2 da det ikke giver steady-state fejl ved dette input. Typen af hastighedsregulatoren kan bestemmes ved antal af poler i origo i L h (s). Dette gælder for tilfældet hvor der er unity feedback. Ud fra open loop overføringsfunktionen kan det ses at denne ikke vil have en pol i origo med mindre der indgår en integrator i regulatoren. Derfor vælges der at anvende en PI regulator, som kan ses indsat i L h (s) i ligning (8.33). L h (s) = K hp Khi s KH-bro K h1 s + K h2 = K hp K H-bro K h1 s + K hi K H-bro K h1 s 2 + K h2 s (8.33) Fra ligning (8.33) kan det ses at når der indsættes en PI regulator bliver der en pol i origo, hvilket gør at systemtypen er 1 og der derved ikke er steady-state fejl ved step input Routh s stability criterion For at finde ud af for hvilke værdier af K hp og K hi systemet er stabilt, er det valgt at anvende Routh s stability criterion [18]. For at kunne anvende denne teori skal closed loop overføringsfunktionen T h (s) kendes. Denne er vist i ligning (8.34). T h (s) = Y h(s) R h (s) = b(s) a(s) = K h1 K H-bro K hp s + K h1 K H-bro K hi s 2 + K h2 + K h1 K H-bro K hp s + K h1 K H-bro K hi (8.34) For Routh s stability criterion er den karakteristiske ligning (8.35). a(s) = s n +a 1 s n a n 1 s+a n = s 2 +(K h2 +K h1 K H-bro K hi ) s+k h1 K H-bro K hi (8.35) Hvor: a 1 = K h2 + K h1 K H-bro K hi a 2 = K h1 K H-bro K hi 63

64 a 3 = 0 Nu opstilles Routh s array, der undlades at udfylde mere end første kolonne da dette ikke er nødvendigt for at finde ud af om systemet er Bound Input Bound Output, BIBO stabilt, dette ses ved om alle elementer i første kolonne er positive, se tabel 8.2. s 2 1 s 1 a 1 s 0 b 1 Tabel 8.2: Første kolonne af Routh s array. I tabel 8.2 er b 1 brugt, hvilket er givet som a 1 a 2 a 3 a 1. Nu løses de to ligninger a 1 og b 1 > 0, se ligning (8.36). K h2 + K h1 K H-bro K hi > 0 K h1 K H-bro K hi > 0 (8.36) Den endelige ligning bliver med indsatte K-værdier ligning (8.37). K hp > 12, 14 K hi > 0 (8.37) I ligning (8.37) ses det at systemet vil være stabilt så længe K hp er større end -12,14 og K hi er større end nul Design af PI-regulator Det er opstillet som krav, at der som minimum skal være en fasemargin på 45. For at opnå dette regnes der på open loop overføringsfunktionen for hastighedsreguleringen, se ligning (8.38). L h (s) = K hp K h1 s + K hi K h1 s 2 + K h2 s (8.38) Open loop overføringsfunktionen har poler i origo og K h2. For at gøre det simpelt placeres det nulpunkt der er i open loop overføringsfunktionen samme sted som polen der ikke ligger i origo, se ligning (8.39). Dette gør at open loop overføringsfunktionen altid vil have et fasedrej på -90, hvilket dermed giver et fasemargin på 90. K hi K hp = K h2 = 2, 2436 (8.39) 64

65 Det vælges at tune regulatoren med K hp og derefter regne K hi. Dette er vist på figur 8.13 ved forskellige K hp og K hi værdier. 1 Step Response Khp = 40 Khp = 50 Khp = Amplitude Time (seconds) Figur 8.13: Steprespons af hastighedsregulatoren. For at kunne opfylde det sidste krav om at accelerationen ikke må overstige 2 m /s 2 er det valgt at regne med en lige linie fra steppets start til det har opnået værdien 1, for derefter at tage hældningen af denne linie hvilket svarer til accelerationen. Dette giver et krav om at settling time ikke må være under 0,5 sekunder. Det er valgt at anvende K hp værdien 50 hvilket kan ses på figur Med de nye værdier for K hp og K hi bliver den endelige regulator D h (s), som vist i ligning (8.40). D h (s) = , 18 s (8.40) 65

66 8.2.4 Samplingsfrekvens og Z-transformation For at kunne implementere regulatoren skal den Z-transformeres, hvilket kræver at der kendes hvilken frekvens den skal samples med. For at finde minimumsfrekvensen, skal båndbredden ω b bestemmes. Båndbredden kan findes som frekvensen hvor der er 3 db dæmpning på et amplitudeplot af closed loop overføringsfunktionen. Dette er vist på figur X: Y: Amplitude [db] Frekvens [rad/s] Figur 8.14: Amplitudeplot af closed loop overføringsfunktionen. Ud fra figur 8.14 er båndbredden aflæst til 0,449 rad /s. Det er ønskeligt at sample over 20 gange så hurtigt som båndbredden, hvilket giver anledning til ligning (8.41) [18]. ω s ω b > 20 (8.41) ω s > 20 ω b = 8, 980 rad /s Hvor: ω s er samplingsfrekvens ω b er båndbredden Fra ligning 8.41 kendes den minimale samplingsfrekvens til 8, 980 rad /s = 1, 43 Hz, så valget om 50 Hz i afsnit er anvendeligt. Med samplingsfrekvensen fastlagt er der ved hjælp af matlab og zero order hold-funktionen, zoh, blevet fastlagt en z-transformation som vist 66

67 i ligning (8.42). D h (z) = 50 z 47, 76 z 1 (8.42) Z-transformationen, vist i ligning 8.42, er omskrevet i ligning 8.43 så den kan implementeres i DSC en. U(z) 50 z 47, 76 = E(z) z 1 U(z) (z 1) = E(z) (50 z 47, 76) U h [n] = U h [n 1] + 50 E h [n] 47, 76 E h [n 1] (8.43) Hvor: U(z) og U h er outputtet E(z) og U h er fejlen Implementering og test Hastighedsreguleringen skal regulere Leaders hastighed. For at teste om regulatoren virker er den implementeret i DSC en således at den afvikles 50 gange i sekundet. Implementeringen er vist i et flowchart på figur Hastighedsmåling Beregn output på baggrund af regulator Sæt ny hastighed på motoren Flyt de aktuelle værdier til de gamle værdiers plads Figur 8.15: Flowchart som viser hastighedsreguleringen implementeret i software. For at teste om regulatoren er i stand til at regulere ind til en, af brugeren, bestemt hastighed, er der udformet en test på et løbebånd. Testen er beskrevet i appendiks F, og resultaterne fra denne test er vist i tabel 8.3. Resultaterne i tabel 8.3 ligger tæt på det regulatoren er sat til, hvilket leder til at der kan konkluderes at hastighedsmodulet virker, hvad angår regulering af hastighed. Ydermere skal der testes om hastighedsmodulet lever op til kravet om, at der ikke må accelereres med mere end 2 m /s 2 i middelacceleration. For at teste dette er modelbilen 67

68 Regulering Løbebånd 1 m /s Mellem 0,97 og 1 m /s 2 m /s Mellem 1,97 og 2 m /s 3 m /s Mellem 2,97 og 3 m /s Tabel 8.3: Resultater fra modultest af hastighed Målt Hastighed 5,8 m/s Hastighed [m/s] Tid [s] Figur 8.16: Hastigheden i forhold til tiden ved et step til hastighedsregulatoren på 3,3 m /s. sat på gulvet i testmiljøet, beskrevet i kapitel 3.1, hvorefter den er givet et input om at accelerere op til 3,3 m /s. Resultatet af denne test er afbilledet på figur Ud fra figur 8.16 ses det at ifølge testen har modelbilen en middelacceleration på 5,8 m/s 2. Dette ligger over det tilladte 2 m /s 2 og kan blandt andet forklares med at der under testen blev observeret at bilen lavede hjulspin i en meget lang strækning. Dette gør at den hastighedsmåling der laves på motoren ikke stemmer overens med hastigheden på bilen og derfor kan middelaccelerationen der er målt være for stor i forhold til virkeligheden. Til projektet er der ikke forsøgt at afhjælpe denne fejl. 68

69 Afstandssmodellering og -regulering 9 I kravspecifikationen er der defineret, at Member skal være i stand til at holde afstanden til Leader på 22 cm ± 2,2 cm. For at opnå dette er der behov for at regulere Members hastighed på baggrund af afstandsmålinger fra de to afstandssensorer monteret i fronten. Reguleringen skal være i stand til at opretholde en konstant afstand uanset hastighed og acceleration, indenfor de, i kravspecifikationen, definerede værdier. Derfor ønskes der en regulering uden steady-state fejl, hvis Leader ændrer hastighed, altså hvis der sker en ændring i afstanden mellem bilerne. Feedbacksystemet er opbygget som vist på figur 9.1. W a (s) R a (s) + - D a (s) K H-bro G h (s) - + G a (s) Y a (s) H a (s) Figur 9.1: Feedbacksystem for afstandsreguleringen hvor W a (s) er Leaders hastighed, G h (s) er hastighedsmodellen, G a (s) er integration fra hastighed til position, D a (s) er afstandsregulatoren. Leaders hastighed er angivet på figur 9.1 som W a (s). For at få afstanden mellem bilerne trækkes Members hastighed fra Leaders, idet afstanden mellem to objekter kan findes ved at integrere objekternes hastighedsforskel, hvilket er G a (s) s funktion. Grunden til at Members hastighed trækkes fra Leaders er at Member altid vil være bagerst, hvorfor afstanden skal falde hvis Member kører hurtigere end Leader. 9.1 Afstandsmodellering Da Members position kan beregnes ved at integrere dens hastighed, er en del af modellen, der ønskes reguleret, allerede beregnet i afsnit 8.1. Det fulde udtryk for modellen er vist i 69

70 ligning (9.1) G h (s) G a (s) = K h1 1 s + K h2 s (9.1) Hvor: K h1 = 2,567 K h2 = 2, Afstandsregulering Da der skal opretholdes en konstant afstand mellem Leader og Member, skal afstandsreguleringen designes med udgangspunkt i ændringer i forstyrrelsen og ikke ændringer i referencen. Feedbacksystemet set fra forstyrrelsens side er vist på figur 9.2. W a (s) + - H a (s) -1 G a (s) E a (s) G h (s) KH-bro D a (s) Figur 9.2: Feedbacksystem for afstandsreguleringen set fra forstyrrelsens side. Closed loop overføringsfunktionen set fra forstyrrelsens side er givet i ligning (9.2). T a,w = 1 s D a (s) G h (s) K H-bro (9.2) Ud fra overføringsfunktionen kan det ses at regulatoren, D a (s), skal være negativ, da der ellers vil være medkobling, fordi G a (s) har negativt fortegn Systemtypebestemmelse Afstandsregulatoren er vist som D a (s) på figur 9.1. Regulatorens type bestemmes ved at beregne systemets type og derudfra bestemme, hvorvidt regulatoren skal være P, PI eller PID for at opnå steady-state kravet. Systemtypen bestemmes med Final Value Theorem vist i ligning (9.3). s n e ss = lim s 0 s k T 0,W (s) (9.3) 70

71 Hvor: e ss er steady-state fejlen [ ] k kan antage værdierne: 0, 1, 2 [ ] T 0,W (s) er overføringsfunktionen uden nulpunkt som ønskes typebestemt [ ] n er ordnen af T W (s) nulpunkt [ ] Systemet skal minimum være type 1 for ikke at have steady-state fejl ved step input. Med en P-regulator, hvor D a (s) = K ap har systemet type 0, hvilket ikke er tilstrækkeligt. Indsættes derimod en PI-regulator, hvor D a (s) = K ap K ai s, hæves systemtypen til type 1, som vist i ligning (9.4). e ss,p k=0 = 1 lim s 0 s k 1 13, 89 = s ( K ap ) G h (s) K H-bro K ap e ss,p k=1 = 1 lim s 0 s k 1 = s ( K ap ) G h (s) K H-bro 1 e ss,pi k=0 = lim s 0 s k 1 e ss,pi k=1 = lim s 0 s k 1 e ss,pi k=2 = lim s 0 s k (9.4) 1 s ( K ap K ai s ) G = 0 h(s) K H-bro 1 13, 89 s ( K ap K ai s ) G = h(s) K H-bro K ai 1 s ( K ap K ai s ) G = (9.5) h(s) K H-bro Grundet ønsket om ikke at have steady-state fejl ved step input på forstyrrelsen er der valgt at designe en PI-regulator Design af PI-regulator PI-regulatoren, som skal regulere afstanden, skal designes på en sådan måde, at der tages højde for, at accelerationen ikke kommer over 2 m /s 2 og at hastigheden ikke overstiger 3, 6 m /s. Desuden skal systemet være stabilt, altså have en fasemargin på mindst 45 og aldrig ændre afstanden til Leader med mere end 2,2 cm. Da systemet vil have en steady-state fejl i det tilfælde, at Leader accelererer med konstant acceleration, altså har en rampeformet hastighedskurve, skal K ai bestemmes, så kravet til afstandsændringer overholdes. Regulatoren designes ud fra worst case tilfældet, hvor Leader accelererer fra stilstand til sin maksimalhastighed, 3,3 m /s, med en acceleration på 2 m /s 2. Steady-state fejlen, som er afhængig af K ai, vist i ligning 9.4, repræsenterer den hastighedsforskel mellem Leader og Member, der forekommer i worst case tilfældet. For at kunne finde en værdi til K ai, findes den hastighedsforskel, der svarer til, at afstanden mellem Leader og Member er 24,2 cm, 71

72 som er den maksimalt tilladte. Tiden, der går, før Leader kører 3,3 m /s beregnes i ligning (9.6). t = v L,maks a maks = 3, 3 m /s 2 m /s 2 = 1, 65 s (9.6) Hvor: v L,maks er Leaders maksimalhastighed [ m /s] a maks er bilernes maksimalacceleration [ m /s 2 ] Strækningen, S L, som Leader har nået at køre på 1,65 s, er givet i ligning (9.7). S L = m /s 2 (1, 65 s) 2 = 2, 72 m (9.7) På baggrund af at den maksimale afstand mellem Leader og Member ikke må overstige 24,2 cm, beregnes den acceleration, Member skal have for netop kun at falde 2,2 cm i worst case tilfældet i ligning (9.8). S L 0, 022 = 1 2 a M (1, 65 s) 2 a M = 1, 98 m /s 2 (9.8) Hvor: a M er Members acceleration [ m /s 2 ] I ligning (9.9) beregnes K ai på baggrund af hastighedsforskellen mellem Leader og Member udledt ud fra deres respektive accelerationer. 3, 3 m /s 1, 98 m /s 2 1, 65 s = 13, 89 K ai K ai = 231, 5 (9.9) Dermed er den højest tilladte værdi for K ai fundet. Formindskes værdien af K ai vil det forbedre systemets steady-state egenskaber. Da færdigheder til at bestemme K ap og K ai mere præcist endnu ikke er tilegnet gruppen, er disse fundet ved at tune dem til det praktiske resultat er tilfredsstillende. De praktiske forsøg foregik på løbebånd, beskrevet i afsnit3.1, ved at teste, hvordan Member reagerede med løbebåndet sat til 1 m /s. Der blev fundet, at bilen let blev ustabil og begyndte at svinge ud af kontrol. Det bedste resultat blev fundet med K ap = 300 og K ai = 150, hvilket ikke overholder grænsen for K ai og derfor vil have en steady-state fejl der i worst case er større end tilladt. Regulatoren viste sig desuden at have en lang indsvingningstid og lavede store sving i afstanden ved små forstyrrelser. 72

73 9.2.3 Design af P-regulator Da projektgruppen ikke har været i stand til at designe en velfungerende PI-regulator til at håndtere afstanden mellem bilerne, er der valgt at benytte en P-regulator. Da systemet med en P-regulator er af type 0, vil der være konstant steady-state fejl ved step input og uendelig fejl ved rampe input, hvormed kravspecifikationen ikke vil kunne overholdes med denne type regulator. Regulatoren er designet så steady-state fejlen ved step input er under 2,2 cm, hvilket er det tætteste systemet kan komme på at overholde kravspecifikationen. Routh s stability criterion Regulatoren designes efter at være stabil ved at benytte Routh s stability criterion til at finde grænserne for regulatorkonstanten K ap. Closed loop overføringsfunktionen med forstyrrelsen som reference er givet i ligning (9.10). T a,w = G a (s) 1 + ( G a (s)) G h (s) K H-bro K ap = s 2, 2436 s 2 + 2, 2436 s 0, 1848 K ap (9.10) Routh s array opstilles på baggrund af den karakteristiske ligning, som i afsnit i tabel 9.1. s 2 1 s 1 2, 2436 s 0 0, 1848 K ap Tabel 9.1: Første kolonne af Routh s array for afstandsreguleringen. For at systemet er stabilt skal alle værdier i første kolonne af Routh s array være større end 0, hvilket betyder at kravet til K ap er, at værdien skal være mindre end 0. Steady-state fejl Systemets steady-state fejl beregnes ved at betragte kravene for at steady-state kan opstå. Systemets frekvens vil i steady-state være DC, hvilket betyder at frekvensproduktet, s = j ω, bliver 0. På figur 9.3 ses de enkelte trin for at finde steady-state fejlen ved hjælp af overføringsfunktionernes DC-gain. For at opnå steady-state er det nødvendigt at der foran G a (s) står 0, da de to bilers hastighed, v, i steady-state er ens. Hvis Leaders hastighed, som er forstyrrelsen, er v, bliver Members hastighed også v. For at Members hastighed kan blive v efter G h (s), hvis DC-gain er 1,14, må inputtet til G h (s) nødvendigvis være. Samme metode benyttes til udtrykket for punktet lige før regulatoren er fundet, hvilket er et udtryk for steady-state fejlen. Det kan ses at steady-state fejlen er afhængig af Leaders hastighed, hvilket betyder 73 v 1,14

74 R a (s) -K ap v 1,14 0, K ap v 1,14 0,072 7,2 100 v 1,14 2,567 s+2,2436 v v s Y a (s) 1 Figur 9.3: Grafisk repræsentation af hvordan steady-state fejlen findes ved at beregne de enkelte blokkes DC-gain. at beregningen af den øvre grænse for K ap tager udgangspunkt i den størst opnåelige hastighed, 3,6 m /s. Desuden designes der efter en steady-state fejl på 2,2 cm Den øvre grænse for K ap beregnes i ligning (9.11). e ss = 0, 022 = v K ap 1, 14 0, 072 3, 6 K ap 1, 14 0, 072 K ap = 1993, 6 (9.11) Dermed er den øvre grænse for K ap fundet. Formindskes værdien af K ap vil steady-state fejlen samtidig formindskes. Den endelige værdi findes ved praktisk tuning på løbebånd under modulimplementeringen. 9.3 Implementering og modultest Regulatoren implementeres som en funktion i softwaren til Members DSC. Afstanden mellem bilerne må maksimalt være 24,2 cm og minimum 19,8 cm, både når bilerne kører ligeud og drejer. Drejer Leader, er det altid den mindste afstand til Member, der benyttes som den gyldige afstand i regulatoren. Softwaren er implementeret som vist på figur 9.4. Da afstandssensorerne returnerer en spænding på ADC en svarende til en afstand på 3 cm, når den måler afstande over 29 cm, er det nødvendigt at korrigere i softwaren. Da afstanden ikke forventes at komme i nærheden af 3 cm, bruges dette punkt til, at afgøre om afstandssensorerne måler ud over 29 cm. Hvis afstandsregulatorens output bliver negativt, betyder det, at afstanden mellem bilerne er for lille. For at rette op på det skal bilen være i stand til aktivt at bremse, som i praksis betyder, at den skal bakke. 74

75 Afstandsmålinger Er en afstsandsmåling under 35 mm, sæt den til 290 mm Vælg den mindste afstand Beregn fejlen mellem afstand og reference Bestem ny hastighed med regulator Bestem hjulenes retning på baggrund af outputtets fortegn Sæt ny hastighed på motoren Flyt de aktuelle værdier til de gamle værdiers plads Figur 9.4: Flowchart over afstandsregulatoren implementeret i software. Den nye motorspænding beregnes ved at gange afstandsfejlen med K ap, hvilket udgør P-regulatoren Tuning af K ap og DC-offset Afstandsregulatoren blev testet på løbebånd, defineret i afsnit3.1, ved at sætte båndet til en fast hastighed og lade Member følge et objekt, i dette tilfælde en kasse. Ved testen vurderedes Members evne til at følge kassen i en blød bevægelse uden at afstanden mellem bilen og kassen begyndte at svinge. Desuden blev der testet, hvorvidt steady-state fejlen i praksis er som beregnet. Ved disse tests blev K ap tunet til at opnå det bedste resultat. Under tuning af regulatoren blev også DC-offsettet på motoren justeret fra de beregnede 3 % duty cycle til 30 %. Den store forskel kan skyldes at beregningen af coulomb friktionen ikke tager højde for batteriets strømbegrænsninger, da de er lavet med en spændingsforsyning i stedet for et batteri. Det nye DC-offset blev fundet ved at finde den mindst mulige duty cycle Member bliver ved at køre med når den sættes igang manuelt. DC-offsettet varierer alt efter i hvor stor grad batteriet ombord på bilen er afladt, hvilket betyder at den skal kalibreres hver gang der skiftes batteri eller når regulatorens evne til at justere afstanden korrekt er mærkbart dårligere på grund af gradvis afladning af batteriet. Med en K ap på den beregnede værdi, -1993,6, tog det lang tid for Member at opnå en blød bevægelse. Specielt ved hastighedsændringer overkompenserede den, så den kom i svingninger. Det bedste resultat blev opnået ved en K ap på 450, hvilket er betragteligt større end den beregnede værdi. Dette betyder at steady-state fejlen vil være større end tilladt i kravspecifikationen. Med den tunede proportionalkonstant vil Member heller ikke kunne følge efter Leader ved maksimal hastighed da steady-state fejlen vil øge afstanden ud over afstandssensorernes maksimale måleområde. Derfor er testen udført med en referenceafstand på 14 cm, således at den teoretisk maksimale steady-state fejl ikke gør at afstanden bliver for stor. Den maksimale steady-state opstår ved maksimal hastighed og er beregnet i ligning (9.12). 75

76 e ss = 3, 6 m /s ( 450) 1, 14 0, 072 = 9, 7 cm (9.12) Afstanden mellem Leader og Member vil, med referencen sat til 14 cm, ikke overstige 23,7 cm, hvormed afstandssensorerne igen vil fungere ved maksimal hastighed. Resultatet fra testen af steady-state fejlen med den tunede regulator er vist i tabel 9.2. Hastighed Målt afstand til kasse Beregnet afstand til kasse fejl 1 m /s 16,5 cm 16,7 cm 0,2 cm 2 m /s 19,5 cm 19,4 cm 0,1 cm 3 m /s 23 cm 22,1 cm 0,9 cm 3,6 m /s 26 cm 23,7 cm 2,3 cm Tabel 9.2: Tabel der viser steady-state fejlen på afstandsreguleringen efter praktisk forsøg. 9.4 Konklusion Der blev fundet at afstands-systemet er af type 0 hvis det reguleres med en P-regulator og type 1 med en PI-regulator. For at undgå steady-state er det nødvendigt at implementere en PI-regulator, men en test af dens stabilitet på løbebåndet viste sig ikke at være succesfuld. Dette kan skyldes at et system med to integratorer er besværligt at få stabilt med de metoder projektetgruppen har fået undervisning i [24]. Derfor er der i stedet valgt at implementere en P-regulator, som teoretisk blev designet så dens steady-state fejl ikke oversteg kravet om maksimal ændring i afstanden mellem Leader og Member. På løbebåndet viste det sig at den beregnede P-regulator havde for højt gain og derfor overkompenserede og begyndte at svinge ved afstandsændringer. Derfor er regulatorens proportionalkonstant tunet til 450. Dette resulterer i en steady-state fejl, som vokser med hastigheden. Den største fejl der kan opstå er ved 3,6 m /s. Fejlen er 9,7 cm hvorfor det er nødvendigt at nedsætte referenceafstanden til 14 cm for at afstandssensorerne stadig kan måle en afstand. Desuden er der fundet ud af at det beregnede DC-offset til motoren, som er nødvendig for at overvinde coulomb friktionen, ikke er tilstrækkelig i praksis. Duty cyclen på H-broen er ændret fra 3 % til 30 %. 76

77 Retningsmodellering og -regulering 10 For at kunne regulere retningen på Member skal der opstilles en model for sammenhængen mellem Members hjulvinkel og vinklen mellem Leader og Member. Reguleringssystemet ser ud som på figur D r (s) G r (s) W r (s) R r (s) + - Regulator Servomodel Retningsmodel + + Y r (s) G r1 (s) G r2 (s) H r (s) Vinkelsensor Figur 10.1: Retningsreguleringens feedbacksystem. I dette afsnit vil der blive gjort rede for modellerne samt designet af en regulering til systemet. Reguleringen skal kunne håndtere pludselige ændringer i vinklen mellem Member og Leader uden en opstående steady-state fejl herimellem. Desuden skal reguleringen have så lavt et overshoot og rise time, som muligt, mens stabilitet opretholdes Retningsmodel For konstruktion af en retningsmodel, der kan implementeres i DSC en, kan der med fordel benyttes en lineariseret model. I den lineære model tages der udgangspunkt i at det stykke Member flytter sig på tiden dt, er en lige linie, såvel som at vinkelændringen i samme tidsrum er af en lille størrelse. Figur 10.2 illustrerer sammenhængen mellem de forskellige vinkler og længder, som genereres mellem bilerne såvel som mellem Member 77

78 selv på de to tidspunkter adskilt af tiden dt. Som forklaret i kapitel 4, er det den relative vinkel mellem bilerne givet ved α, som benyttes i retningsreguleringen. Member t = dt P 2 dα L v dt dy Leader t = 0 og t = dt dα Φ P 1 P 3 Member t = 0 Figur 10.2: Illustration af den lineære model. Til tiden t = 0 har Member, på figur 10.2, forenden ved P 1 og til tiden t = dt forenden ved P 2, mens Leader, til tiden t = dt, har bagenden placeret ved P 3. Leaders placering til tiden t = 0 er ligegyldig set i forhold til den aktuelle fejl, der forefindes til tiden t = dt. L er modelbilens akselafstand. Formålet med den lineære model er at beskrive en overføringsfunktion mellem den relative vinkel mellem bilerne og vinklen på Members forhjul, hvilket er givet ved ligning (10.1). G r2 (s) = α(s) Φ(s) (10.1) Hvor: G r2 er overføringsfunktionen for den lineære model [ ] α er den relative vinkel mellem bilerne [ ] Φ er vinklen på Members forhjul [ ] Det stykke Member har bevæget sig efter tiden dt, er givet som afstanden imellem P 1 og P 2, hvilket kan udtrykkes som v dt, se evt. figur Ligning (10.2) beskriver forholdet mellem udvalgte karakteristika i trekanten illustreret på figur sin(φ) = dy dy = sin(φ) v dt (10.2) v dt Hvor: dy er Members fronts positionsændring i y-aksen [m] v er bilens hastighed [ m /s] dt er den tid bilen har bevæget sig [s] 78

79 P 2 v dt dy Φ P 1 Figur 10.3: Trekanten, som beskriver forhjulene på Member, bestående af en ret vinkel, vinklen Φ samt siderne v dt og dy. Den trekant der omkredser trekanten på figur 10.3 er givet ved figur Ligning (10.3) udtrykker forholdet mellem udvalgte karakteristika af den omkredsende trekanten. P 2 L dy dα Figur 10.4: Trekanten, som beskriver Members vinkelændring, er bestående af en ret vinkel, vinklen dα og siderne L og dy. sin(dα) = dy L dα = arcsin ( dy L ) (10.3) Hvor: dα er ændringen i vinklen mellem Member og vandret [ ] L er Members akselafstand [m] Ved indsættelse af ligning (10.2) i ligning (10.3) fremkommer ligning (10.4). ( ) sin(φ) v dt dα = arcsin L (10.4) Når x er af en infinitisimal størrelse vil både arcsin(x) og sin(x) kunne tilnærmes x, se figur 10.5 og figur 10.6, og derfor kan ligning (10.4) omskrives til ligning (10.5). dα = Φ v dt L (10.5) 79

80 0.03 arcsin(sin(x) v dt / L) sin(x) v dt / L Forhold [ ] Hjulvinkel [grader] Figur 10.5: Sammenligning mellem den faktiske kurve, grøn, og den approksimerede kurve, rød, hvor 0 x 22, L = 25 cm, dt = Hz og v = 13 km /t. Ved at flytte dt fra højre side over på venstre side kan ligning (10.5) omskrives til ligning (10.6). dα dt = Φ v L (10.6) Ligning (10.6) laplace-transformeres til udtrykket givet ved ligning (10.7). s α = Φ v L (10.7) I ligning (10.7) flyttes Φ over til venstre side af ligningen og s flyttes til højre side af ligningen, hvilket resulterer i ligning (10.8). G r2 (s) = α(s) Φ(s) = v L 1 s (10.8) Ved at indsætte den kendte faktor, L = 25 cm, vil ligning (10.8) blive til ligning (10.9). G r2 (s) = v 0, 25 m 1 s (10.9) 80

81 sin(x) x Forhold [ ] Hjulvinkel [grader] Figur 10.6: Sammenligning mellem den faktiske kurve, grøn, og den approksimerede kurve, rød, hvor 0 x 22. Overføringsfunktionen G r2 (s) er nu klar til at blive indsat i det samlede retningsreguleringssystem, som anvist på figur Servomodel For at kunne styre Members retning benyttes en servomotor. En servomotor udmærker sig ved at kunne fastholde en bestemt position ved et påtrykt fastdefineret PWM-signal. Den aktuelle servomotor styres ved hjælp af et PWM-signal på 200 Hz med en varierende pulstid. Det er denne varierende pulstid, der bestemmer servomotorens position Servoforsinkelse Det må forventes at servomotoren ikke skifter position med øjeblikkelig virkning, såvel som at en forsinkelse kan forventes i det benyttede 200 Hz PWM-signal før servomotoren påvirkes. Den tid det tager at foretage en retningsændring er givet ved ligning (10.10). T d1 (Γ) = T d,pwm + T d,servo (Γ) (10.10) Hvor: T d1 (Γ) er den samlede tid det tager at ændre retning [s] T d,pwm er den tid det tager før PWM-signalet til servomotoren er klar [s] 81

82 T d,servo (Γ) er den tid det tager servomotoren at dreje [s] Γ er ændringen i servomotorens vinkel [ ] T d,pwm er, ifølge afsnit 6.2.3, givet ved to PWM-periodetider, da det er den maksimale tid, der kan gå før servomotoren påvirkes af ændringen, se ligning (10.11). T d,pwm = = 2 = 0, 01 s (10.11) f Servo,PWM 200 Hz Hvor: f Servo,PWM er PWM-frekvensen til servomotoren [Hz] T d,servo (Γ) er givet ud fra producentes anvisninger, hvilken antages at være lineær i hele dynamikområdet, se ligning (10.12) [16]. T d,servo (Γ) = 0, 18 s 60 Γ (10.12) Når ligningerne (10.11) og (10.12) indsættes i (10.10) bliver den samlede forsinkelse, som vist ved ligning (10.13). T d1 (Γ) = 0, 01 s + 0, 18 s 60 Γ (10.13) Da vinkelændringerne, som Member foretager, er så små, at de betragtes som ligegyldige, kan ligning (10.13) omskrives til (10.14), da dette vil gøre 0, 01 s til den mest betydende del. T d1 0, 01 s = 10 ms (10.14) En tidsforsinkelse kan i frekvensdomænet, ved laplace-transformation, beskrives som i ligning (10.15), hvilket er den endeligt benyttede forsinkelse i beregningsmodellen. e T d1 s = e 10 ms s (10.15) Servo-overføringsfunktion Under analysen af Members servomotor, se appendiks C, bestemmes det at den har de, i tabel 10.1, opskrevne egenskaber. 82

83 Pulstid [ms] Vinkel på højre Vinkel på venstre Gnsn. vinkel 1, ,5 1, , Tabel 10.1: Sammenhængen mellem PWM-signalets pulstid samt hjulvinklen på de to forhjul. For at bestemme den gennemsnitlige ydre vinkel findes gennemsnittet af de absolutte gennemsnitsvinkler, se ligning (10.16). Φ gnsn = 21, = 20, 75 (10.16) Hvor: Φ gnsn er den gennemsnitlige ydre vinkel på Members forhjul [ ] Servomotoren har et dynamikområde på 90, med 4 steps grad, svarende til 0,8 ms, jævnfør figur 6.1, hvilket beskrives i ligning (10.17) [16] [19]. Ψ = t dynamik p Θ dynamik = 0, 8 ms µs 4 step = 2, 22 grad 90 step (10.17) [ ] µs step t dynamik er servomotorens dynamikområde for pulstiden [s] Hvor: Ψ er pulstiden per step p er servomotorens opløsning [ step grad Θ dynamik er servomotorens dynamikområde for vinklen [ ] ] Det maksimale antal steps, til hver side, set fra center-positionen, er givet ved ligning (10.18), hvor der tages udgangspunk i et sving til højre. t h t m Ψ = 1, 85 ms 1, 5 ms 2, 22 µs step = 157, 5 steps (10.18) Hvor: t h er pulstiden ved fuldt udslag til højre [s] t m er pulstiden ved midterpositionen [s] 83

84 Forholdet mellem den gennemsnitlige maksimalvinkel og antallet af steps til hver side, giver overføringsfunktionen mellem vinklen på hjulene og steps på servomotoren, se ligning (10.19). Φ gnsn 157, 5 steps = 0, 13 grad /step (10.19) Den endelige overføringsfunktion for servomodellen, G r1 (s), er givet ved en kombination af ligning (10.15) og ligning (10.19) til ligning (10.20). G r1 (s) = 0, 13 grad /step e T d1 s = 0, 13 grad /step e 10 ms s (10.20) Hvor: G r1 (s) er overføringsfunktionen mellem steps på servomotoren og hjulvinklen [ grad /step] 10.3 Retningsregulering I dette afsnit designes regulatoren, D r (s), anvist i systemdiagrammet figur Systemets funktion er at justere vinklen mellem de to modelbiler, hvilket vil sige at regulatoren skal designes med udgangspunkt i systemets reaktion på ændringer i vinklen mellem bilerne. Systemet rokeres så referencen i stedet er forstyrrelsen W r (s), hvilket giver systemet som anvist på figur H r (s) W r (s) + - Vinkelsensor -1 E r (s) D r (s) G r (s) -1 Regulator Retningsmodel Servomodel G r2 (s) G r1 (s) Figur 10.7: Retningsreguleringens feedbacksystem med forstyrrelsen som reference. Med forstyrrelsen som reference bliver closed loop overføringsfunktionen som vist i ligning (10.21), hvor overføringsfunktion desuden er omstruktureret med senere brug for øje. 84

85 Sensorernes overføringsfunktion, H r (s), fastsættes til 1 og G r (s) til et samlet udtryk bestående af G r1 (s), givet ved ligning (10.20) og G r2 (s) ved ligning (10.9). T r,w (s) = E r(s) W r (s) = H r (s) 1 + G r (s)d r (s)h r (s) = s s + D r (s) 0, 53 v e 0,01 s (10.21) Hvor: T r,w (s) er overføringsfunktionen [ ] v er Members hastighed [ m /s] D r (s) er regulatorens overføringsfunktion [ ] Systemtypebestemmelse For at afgøre hvilken type regulator der er behov for, bestemmes systemets type med Final Value Theorem i ligning (10.22). På denne måde findes der ud af, hvorvidt systemet vil have steady-state fejl ved step-, rampe- eller parabelinput. For at benytte denne metode omskrives T r,w (s) således, at nulpunktet trækkes ud foran så formen s n T 0,W (s) opnås. s n e ss = lim s 0 s k T 0,W (s) (10.22) Hvor: e ss er steady-state fejlen [ ] k kan antage værdierne: 0, 1, 2 [ ] T 0,W (s) er overføringsfunktionen uden nulpunkt som ønskes typebestemt [ ] n er ordnen af T r,w (s) nulpunkt [ ] Antager k i ligning (10.22) værdien 0, vil steady-state fejlen for et stepinput blive beregnet og med de resterende k-værdier regnes fejlen for de andre input. Ud fra ligningen kan det ses, at fejlen først vil være nul så længe k < n, den vil være en konstant når k = n og den vil være uendelig hvis k > n. I ligning (10.23) er resultaterne for de beregnede steady-state fejl vist for retningssystemets overføringsfunktion. Fejlen er bestemt for en P-regulator, hvor D r (s) = K rp, for at afgøre, hvorvidt en sådan regulator er tilstrækkelig i forhold til de, i afsnittets introduktion, definerede krav. s e ss k=0 = lim s 0 s + K rp 0, 53 v = 0 e ss k=1 = lim s 0 1 e ss k=2 = lim s 0 s 1 s + K rp 0, 53 v = 1 1 K rp 0, 53 v s + K rp 0, 53 v = (10.23) 85

86 Ud fra resultaterne i ligning (10.23) kan det konkluderes, at systemet er af type 1, hvormed implementering af en P-regulator er tilstrækkelig til at undgå steady-state fejl ved ændringer på vinklen mellem de to biler i form af et step Design af P-regulator Ved brug af en proportionalregulator er der én konstant, K rp, der skal bestemmes. Måden hvorved denne findes er ved at benytte frekvensrespons-designmetoden [18], hvor fasemargin kan bestemmes og justeres ud fra systemets open loop karakteristik. Systemets open loop overføringsfunktion er vist ved ligning (10.24). L r,w (s) = ( 1) H r (s) G r (s) ( 1) D r (s) = 0, 53 v 1 s e 0,01 s K rp (10.24) Hvis K rp fastsættes til 1, så der ikke foretages nogen regulering, kan det uregulerede bodeplot findes, hvilket er givet ved figur 10.8 med grønt. Plottet viser en fasemargin på det uregulerede system på 89, da fasedrejet ved frekvensen hvor amplituden krydser 0 db er -91. Så længe fasen er over -180, hvor forstærkningen er 0 db, er fasemargin over 0 og systemet er dermed stabilt. Det betyder, at det uregulerede system som udgangspunkt er stabilt. En tommelfingerregel beskriver, at for at opnå stabilitet skal fasemargin være 45 eller derover, så der ikke arbejdes lige på grænsen af stabilitet. Ved at finde et udtryk for open loop amplituden ved en given frekvens kan K rp bestemmes. Dette udtryk er beregnet i ligning (10.25). L r,w (j ω) = 0, 53 v 1 j ω e 0,01 j ω K rp = 0, 53 v K rp ω (10.25) Regulatoren skal designes til at være stabil ved værst tænkelige forhold, som er når bilen kører ved maksimal hastighed, v = 3, 6 m /s. På figur 10.8 aflæses frekvensen, hvor fasen er drejet -135, med den præcision som MATLAB i dette tilfælde tillader, til at være 80 rad /s. Flyttes amplitudekarakteristikkens skæring med 0 db, vil systemet have en fasemargin på 45. Ved at indsætte ω = 80 i ligning (10.25) samt sætte amplituden lig 1, 0 db, og løse den i forhold til K rp, fåes den K rp, der er nødvendig for at flytte skæringen til den ønskede placering. Denne beregning er vist ved ligning (10.26). 86

87 K rp = ω v 0, 53 = 80 3, 6 0, (10.26) På figur 10.8 er bodeplottet vist for både det uregulerede og det regulerede system. Her kan det ses, at amplitudekarakteristikken flyttes op, så skæringen med 0 db passer omtrent med 80 rad /s Krp = 42 Krp = 1 Amplitude [ db ] X: Y: X: 80 Y: Fase [ ] X: 80 Y: Frekvens [ rad/s ] Figur 10.8: Bodeplot for T r,w med K rp = 1 og K rp = 42. Dermed er kravet om stabilitet opfyldt så længe K rp er under 42. For at afgøre hvorvidt 87

88 K rp skal være 42 eller mindre plottes stepresponsen, hvormed overshoot og risetime kan vurderes grafisk. Stepresponsen for forskellige K rp værdier er vist på figur Steprespons Vinkelforskel mellem Leader og Member Tid (seconds) Krp = 42 Krp = 32 Krp = 22 Krp = 12 Figur 10.9: Steprespons for T r,w med forskellige K rp. Med K rp = 42 er overshoot størst men risetime mindst. Gøres K rp mindre, formindskes overshoot og risetime forhøjes. Et overshoot peak på 0,3, altså ved den højeste K rp -værdi, anses for at være ubetydeligt lille. Øges værdien af K rp bliver systemet ustabilt, hvilket ikke er ønskeligt, hvormed den øvre grænse for K rp er fundet til Samplingsfrekvens og valg af K rp For endeligt at kunne fastsætte K rp skal samplingsfrekvensens betydning for valget findes. Afstandssensorernes maksimale samplingsfrekvens er i databladet angivet til 200 Hz, hvilket betyder at dette er den øvre grænse. Ligesom i afsnit 8.2.4, bestemmes samplingsfrekvensen ud fra ligning (10.27) [18] [20]. ω s ω b > 20 (10.27) Hvor: ω s er samplingsfrekvens [ rad /s] ω b er båndbredden [ rad /s] På figur er closed loop bodeplottet af retningssystemet set fra referencens side, som vist på figur Båndbredden for K rp = 42 er angivet som værende 184, 6 rad /s = 29, 3 Hz, hvilket giver en samplingsfrekvens på mindst 586 Hz. Denne samplingsfrekvens er ikke mulig, 88

89 10 0 Krp = 42 Krp = X: Y: 3 X: Y: Amplitude [ db ] Frekvens [ rad/s ] Figur 10.10: Retningssystemets, som anvist på figur 10.1, closed loop bode plot. da maksimalfrekvensen på afstandssensorerne er 200 Hz. Ved at sænke værdien af K rp formindskes båndbredden. Derfor tunes K rp til værdien 19, hvormed båndbredden bliver 61, 53 rad /s = 9, 8 Hz, hvormed minimumsamplingsfrekvensen er 196 Hz. Stepresponset med en K rp på 19 er vist på figur ved maksimal hastighed Step Response Krp = 19 Amplitude Time (seconds) Figur 10.11: Steprespons af retningssystemet på figur 10.7 med K rp = 19 ved maksimal hastighed, 13 m/s. 89

90 Overshoot er, i modsætning til K rp = 42, nu ikke eksisterende og en risetime på under 0,1 s vurderes til at være hurtig nok. Da afstandssensorerne er i stand til at blive samplet med 200 Hz, vælges denne samplingsfrekvens sammen med K rp = Implementering og test Retningsreguleringen skal kunne regulere Members forhjulsvinkel ud fra sensordata fra afstandssensorerne. Modulet testes for at se, hvorvidt hjulenes vinkel ændrer sig korrekt i forhold til vinklen på den foranværende flade. Hvis forhjulenes reaktion er korrekt, anses den benyttede hardware samtidig at være testet; afstandssensorer, servo og DSC en i sammenspil. Retningsregulatoren er en proportionalregulator, hvilket betyder, at realiseringen består i at gange den målte vinkel med K rp, hvilket giver inputtet til servo-funktionen i softwaren. Processen er anvist på figur Data fra afstandssensorer Vinkelberegner Regulator (x19) Sæt ny PWMværdi til servo Figur 10.12: Flowchart som viser retningsreguleringen implementeret i software på Member. Vinkelberegneren benytter de målte afstande fra afstandssensorerne til at beregne den relative vinkel mellem bilerne med trigonometrien vist på figur 4.2 i kapitel 4. Vinkelberegneren implementerer således det matematiske udtryk i ligning (10.28). ( ) L1 L2 α = arcsin (L1 L2) 2 + l 2 (10.28) Hvor: L1 er den ene afstandsmålers data [mm] L2 er den anden afstandsmålers data [mm] α er den relative vinkel mellem bilerne [ ] l er afstanden mellem afstandssensorerne, hvilken er 90 mm For at opnå en samplingsfrekvens på 200 Hz scheduleres reguleringsalgoritmen i kernens task-kø, så den eksekveres med et mellemrum på 5 ms. Kernen er beskrevet yderligere i kapitel 11. Testen udføres på den måde, at Member placeres 22 cm, som er afstanden den skal holde til Leader, fra en lodret flade. Members vinkel til fladen ændres alt imens hjulenes vinkel noteres og sammenlignes med de forventede værdier. Opstillingen er vist på figur Testen, som er beskrevet i appendix H, viser at vinkelberegneren har en præcision på ± 0,1. Måleresultaterne er vist i tabel

91 22 cm 22 cm 22 cm Figur 10.13: Testopstilling for retningsregulatoren, hvor Member står i en af tre positioner. Højre afstand Venstre afstand PC beregnet vinkel DSC beregnet vinkel 40 mm 100 mm -33,69-33, mm 40 mm 33, 69 33,71 30 mm 220 mm -64,65-64, mm 30 mm 64,65 64, mm 290 mm -64,65-64, mm 100 mm 64,65 64,69 Tabel 10.2: Testresultater for vinkelberegner. Resultaterne fra testen af hvorvidt hjulenes vinkel reguleres korrekt ud fra den relative vinkel til det forankørende objekt er vist i tabel Relativ vinkel til foranstående objekt Beregnet hjulvinkel Målt hjulvinkel Tabel 10.3: Testresultater for vinkelregulering. Tabellen viser, at hjulvinklen reguleres til den beregnede hjulvinkel, dog skal det noteres at målepræcisionen på hjulvinklen er ± Konklusion Under testen blev det opdaget, at afstandssensorerne ikke kan måle flader med en relativ vinkel til sensorerne på over 1, både vertikalt og horisontalt. En løsning blev 91

92 fundet i at gøre overfladen, der skal måles afstand til, ujævn, ved hjælp af bølgepap. Retningsregulatoren reagerer som designet indenfor ± 1, hvormed modulet betragtes som fungerende. 92

93 Software til biler 11 Softwaren på Leader og Member skal, som bestemt i Microcontroller-kapitlet, afvikles af en dspic33fj128mc802. Et overblik over, hvilke tasks softwaren skal håndtere, kan fåes fra systemkontekst-diagrammet på figur 4.1, hvor det desuden fremgår, at softwaren til Leader og Member har en række fællestræk. Samtlige af Members tasks er periodiske, pånær nødstop som er sporadisk. Leader har flere sporadiske tasks, da denne styres af brugeren igennem Base, den har dog stadig periodiske tasks i forbindelse med transmission af sensordata til Base. Eftersom størstedelen er periodiske tasks, er der valgt at implementere en kerne på DSC en. Dette er ikke en nødvendighed for softwaren til dette projekt, men er valgt, da det er en god mulighed for at opnå erfaring med at udvikle en kerne. Hardwaren på Leader og Member er ens med undtagelse af afstandssensorer, som kun er implementeret på Member. Derfor har softwaren på Leader og Member også fællestræk; de kører samme kerne, samme kommunikationsform og -protokol. Kommunikationsformen og -protokollen er beskrevet tidligere i Kommunikation-kapitlet. I dette kapitel beskrives derfor først kernen, efterfulgt af de Leader- og Member-specifikke afviklinger Kerne Kernens opgave består i at disponere processorens tid ved at organisere hvilke tasks, der skal køre og hvornår. Dette implementeres ved, at kernen initialiserer en task-kø og håndterer indsætning og afvikling af tasks i køen. Indsætningen af tasks sker i kernens scheduler. Typen af denne scheduler afgøres ud fra, hvilke tasks den skal håndtere og hvorledes afviklingen skal sikres. Kernen er lavet til at kunne implementeres både i Leader og Member, hvilket betyder den både skal håndtere periodiske og sporadiske tasks. Tasks er periodiske, hvis de sætter sig selv på køen, når de afvikles eller hvis andre periodiske tasks sætter dem på køen i deres afvikling. Sættes tasks derimod på køen af et interrupt, er de sporadiske. En fælles kerne til både Leader og Member skal altså kunne håndtere interrupts, hvilket ligger op til at den skal være pre-emptive. For at afgøre yderligere om kerne- og schedulertypen undersøges de forskellige tasks nærmere. 93

94 Tasks De periodiske tasks med målinger af afstand skal foregå ved 200 Hz, hvilket medfører at overførselsfrekvensen af debug-loggen også skal være 200 Hz, når der ikke benyttes lokal buffer. Eftersom målingerne kommer med 200 Hz skal reguleringerne af Members retning også ske ved 200 Hz. Leaders hastighed måles og reguleres ved 50 Hz. Dermed skal de hurtigste periodiske tasks afvikles med 200 Hz, hvilket betyder, at den samlede computation time skal være under 5 ms for at garantere, at afviklingen er mulig. Dette undersøges ved at finde computation times på alle de periodiske tasks. Dette kræver at samtlige periodiske tasks er defineret. De er opstillet i tabel 11.1, sammen med hver task s computation time. Disse tider er fundet som beskrevet i Appendix D. Task Computation time [µs] Start ADC 0,5 Læs ADC 14 Læs hastighed 6,3 Reguler vinkel 17 Reguler afstand 50 Reguler hastighed 24 Send hastighed 7 Send afstand 0,5 Kommandofortolker 4,3 Tabel 11.1: Computation time til hver periodisk task. Da disse tilsammen er væsentligt mindre end de 5 ms, vurderes computation times ikke at værende et problem. Til aflæsning af de to afstandssensorer skal, som beskrevet i kapitel 4, benyttes to ADC er. For at aflæse en sensor skal den tilhørende ADC startes, hvorefter den aflæses. Dette deles op i to tasks, da der så kan foretages en længere måling på ADC en uden at tage processortid. Aflæsningen af hastigheden foretages ved at aflæse en timerværdi. Eftersom denne timerværdi tælles op med et input fra en phototransistor, tages der kun processortid, når tasken skal afvikles, hvilket vil sige, når værdien skal aflæses og nulstilles. Servoen styres, som beskrevet i kapitel 4, af et PWM-signal. Duty-cyclen bestemmes af retningsreguleringen og denne task indeholder dermed både udregningen og styringen af PWM-signalet. DC-motoren styres, som beskrevet i kapitel 4, ligeledes af et PWM-signal. Afstands- og hastighedsreguleringen bestemmer duty-cyclen på dette signal og de tilhørende tasks inkluderer dermed både udregningen og styringen af PWM-signalet. Som beskrevet i Kommunikations-kapitlet skal der sendes seks bytes fordelt på fire afstandsbytes og dernæst to hastighedsbytes, pga. UART ens TX-buffer på fire bytes. Dette laves som to tasks, da UART ens baudrate på gør, at overførslen af fire bytes tager lang tid i forhold til processorhastigheden. Ved at dele det op i to tasks kan det udnyttes, at UART Transmitteren ikke tager processortid, når den skal sende det, der er i bufferen. Dermed bliver de to tasks computation times langt kortere end tiden det tager for 94

95 UART en - de må dog ikke afvikles hurtigere efter hinanden, end UART en kan følge med til. Afsendelse af hastighedsbytes tager lang tid, i forhold til afstand, da hastighedsberegningen er medtaget i denne task. Tiderne opstillet i tabel 11.1 giver en CPU utilization, som vist i ligning (11.1). Med så lav en utilization vil der ikke være problemer med at sikre afviklingen. En årsag til den lave utilization kan findes i måden kommunikationen er delt op i to tasks. Dette medfører, som beskrevet tidligere, at der ikke bruges processortid på selve kommunikationen, men derimod kun på at flytte dataen ind i UART Transmit-bufferen. U = N i=1 c i T i = 0, (11.1) Hvor: U er CPU utilization [ ] N er antal tasks [ ] c er computation time [s] T er periode tid [s] Scheduler Med et nu veldefineret taskset, er der valgt at implementere en kerne med deadlinemonotonic fixed priority nonpre-emptive scheduling. Deadline-monotonic betyder, at samtlige tasks tildeles prioritet efter relative deadlines og med fixed priority sikres, at af alle tasks, der er ready, afvikles den task med højest prioritet. Tidligere blev der argumenteret for, at kernen skal være pre-emptive, hvilket dog ikke implementeres, da computation times er fundet til at være så lave, som tilfældet er. Det betyder, at den sporadiske task der læser UART Receive-bufferen, som skulle være årsagen til pre-emption, kan håndteres uden pre-emption. Med den anvendte baud rate på kan der ikke komme en ny byte oftere end for hvert 521 µs, hvilket med rette antages at være væsentligt længere end computation time for at læse bufferen Kø Scheduleren sætter tasks på køen, men før den kan det, skal køen initialiseres. Køen, der benyttes, er en enkeltlinket cirkulær liste, da denne type blev eksemplificeret i undervisning, som initialiseres ved oprettelse af to elementer; QHead og QTail. Disse elementer betragtes som tasks uden noget indhold og bruges kun til at opretholde køen. Alle tasks, der kommer gennem scheduleren, bliver indsat mellem QHead og QTail. Når tasks skal afvikles tages de af køen, af dispatcheren, hvilket har kompleksiteten O(1). På figur 11.1 ses opbygningen af køen, med to tasks udover QHead og QTail. Da køen er en linket liste, har indsætningen af en ny task kompleksiteten O(n). Som det kan ses på figur 11.1 indeholder hvert element på køen en next, en ReadyTime, en Priority og en Process. 95

96 QHead Task1 Task2 QTail next next next next ReadyTime ReadyTime ReadyTime ReadyTime Priority Priority Priority Priority Process Process Process Process Figur 11.1: Task-køen, med to tasks i kø. next er en pointer til næste element på køen, hvilken udelukkende håndteres af scheduleren og dispatcheren. ReadyTime er et heltal, som sendes med til scheduleren, når en task skal sættes på køen. Denne bestemmer, hvor lang tid der skal gå, før den tilhørende task skal afvikles og dermed hvor i køen, tasken placeres. Dette forklares yderligere i afsnit Priority er en heltalsværdi, som benyttes til at afgøre hvilken task, der skal afvikles, hvis flere tasks vil afvikles på samme tid. Lavere Priority kommer først i køen. Process er en pointer til selve tasken Kernetimer Hvert element på køen har en heltalsværdi, ReadyTime, som bestemmer, hvornår tasken skal afvikles. En task vil afvikles, når dens ReadyTime er nul, hvilket betyder, at den ReadyTime, scheduleren bliver informeret om at sætte tasken på køen med, skal være nul eller større. Disse ReadyTimes skal så dekrementeres med en kendt frekvens, således at tasks kan afvikles med 200 Hz. Denne dekrementering håndteres af en af DSC ens timere med en opsætning, som får den til at tælle med 10000,63 Hz. Da denne frekvens er så tæt på 10 khz, som tilfældet er, betragtes den som 10 khz, hvormed afvikling med 200 Hz opnåes ved at schedulere en task for hver 50 ticks på timeren. En timerfrekvens på 10 khz giver en tid mellem ticks på 100 µs, hvilket er længere end den største computation time, hvilket garanterer, at hver task kan afvikles på tiden mellem to ticks. Pre-emption er dermed hverken en nødvendighed for afvikling af de periodiske tasks eller de sporadiske tasks. De sporadiske tasks kan, som tidligere nævnt, ikke optræde oftere end 521 µs, hvilket giver 5 ticks på timeren til at få den afviklet, inden den næste kan optræde. På figur 11.2 er vist, hvordan køen udvikler sig, når der scheduleres en ny task og ReadyTime bliver talt ned pga. timer tick. Figur 11.2a viser en task-kø med tre schedulerede tasks. Som det fremgår er de sorteret efter ReadyTime. En ny task, som scheduleres er vist på figur 11.2b. Denne task er sat på køen, som efter et timer tick ser ud som på figur 11.2c. Det fremgår, hvordan Task4 er sat ind før Task2, da de har samme ReadyTime, men Task4 har en vigtigere prioritet end Task2. Når der kommer 96

97 Task1 Task2 Task3 Task4 next next next next Readytime: 5 Readytime: 8 Readytime: 12 Readytime: 8 Priority: 2 Priority: 1 Priority: 3 Priority: 0 Process Process Process Process (a) Task-kø med tre schedulerede tasks. (b) Ny task. Task1 Task4 Task2 Task3 next next next next Readytime: 4 Readytime: 7 Readytime: 7 Readytime: 11 Priority: 2 Priority: 0 Priority: 1 Priority: 3 Process Process Process Process (c) Task-kø med fire schedulerede tasks. Figur 11.2: Udvikling af task-kø ved schedulering af ny task og med timer tick. tilstrækkelige timer ticks vil henholdsvis Task1, Task4, Task2 og Task3 tages af køen og afvikles. ReadyTimes tælles, som nævnt, ned på hver timer tick, men før denne dekrementering, tjekkes hvorvidt køens første element skal afvikles. Dette betyder, at tasks først afvikles et timer tick, efter deres ReadyTime bliver nul. Dermed kan tiden fra det timer tick en task scheduleres på, til tasken bliver afviklet, hvis den ikke bliver blokeret af en højere prioriteret task, udtrykkes som i formel (11.2). t execute = t timertick (ReadyTime + 1) (11.2) Hvor: t execute er tiden til afvikling [s] t timertick er tiden mellem timer ticks ved 10 khz timer [s] ReadyTime er heltalsværdien tasken scheduleres med [ ] Hvis en task på køen har en ReadyTime på nul, når der kommer et timer tick, vil dispatcheren tage den af køen og få den afviklet, hvorefter alle andre ReadyTimes dekrementeres. Når dispatcheren tager et element af køen, sættes den foregående nextpointer til dette elements next, hvormed resten af køen består Afvikling på Leader Med denne beskrivelse af kernen på plads, ses der herfra på hvilke tasks, der kører på Leader og Member, startende med dem der kører på Leader. Et overblik over Leader kan fåes på figur 11.3, hvor Base, hastighedssensor, servomotor og DC-motor viser, hvilke enheder Leader agerer med. Hvert element, som er en del af Leader, er beskrevet i de følgende afsnit. Figur 11.3 er lavet med udgangspunkt i figur

98 Leader Hastighedssensor Hastighedsmåling Datalogning Base Kommunikation Kommandofortolker Retningsstyring DC-motor Hastighedsstyring Servomotor Figur 11.3: Systemdiagram over Leader Kommunikation Leader styres af kommandoer fra Base, som modtages via bluetooth, beskrevet i afsnit 7.2, og følger protokollen beskrevet i afsnit 7.3. Figur 11.4 viser, hvad der sker, fra Leaders UART modtager en byte, til kommandofortolkeren skal reagere. UART modtager byte UART RX-interrupt Tømning af buffer scheduleres Byte i UART RXbuffer gemmes Kommandofortolker scheduleres Figur 11.4: Flowchart over bytemodtagelse til Leader. UART en er sat op til at interrupte for hver byte, den modtager. Interruptservicerutinen schedulerer en task på task-køen, som tømmer RX-bufferen ved at gemme dens indhold i et char-array. Når en task scheduleres, vil den ikke nødvendigvis blive afviklet som det næste, da andre tasks kan have højere prioritet. Denne mulige tidsforsinkelse er på figur 11.4 indikeret med en stiplet pil. Implementeringen af RX-interrupt og efterfølgende schedulering kan findes på linie 11 til 14 i interrupt.c [22]. Lagring og kommandofortolkerschedulering er implementeret ved linie 51 til 63 i uart.c [22]. Efter bufferindholdet er gemt i et char-array, scheduleres en task med kommandofortolkeren. Figur 11.5 viser, hvad der sker, fra dataloggeren schedulerer en afsendelse til UART en sender. Når afsendelses-tasken bliver afviklet, ligger den de, maksimalt fire, bytes, som dataloggeren har bedt om at få sendt, i UART TX-bufferen. Fra der er blevet lagt bytes i UART TX-bufferen, skal der ikke længere bruges processortid på afsendelsen, 98

99 Datalogger schedulerer afsendelse Bytes ligges i UART TX-buffer UART sender byte Figur 11.5: Flowchart over byteafsendelse fra Leader. da UART-controlleren styrer selve afsendelsen. Når der skal afsendes mere end fire bytes, skal UART en have tid til at sende, hvorfor disse afsendelser i dataloggeren er inddelt i flere afsendelses-tasks Kommandofortolker Når Leader har modtaget data fra Base, benyttes en kommandofortolker til, at undersøge hvilken reaktion der skal scheduleres. På figur 11.6 er vist, hvad der sker, fra en kommandofortolkning er scheduleret, til en kommando-task er scheduleret eller ingen kommando er fundet. Kommandofortolker scheduleres Char-array søges efter kommando Kommando fundet Ja Kommando-task udføres Nej Task slut Figur 11.6: Flowchart over kommandofortolkning på Leader. Når kommandofortolker-tasken bliver afviklet, søges det char-array, som alt indkommen data gemmes i, igennem for en kommando, som overholder protokollen beskrevet i afsnit 7.3. Findes en kommando, udføres den tilsvarende task, hvilket kan være retnings- eller hastighedsstyring, som beskrevet i henholdsvis afsnit og afsnit Hvis der ikke findes en kommando, stopper tasken og DSC en laver dermed ikke noget før næste timer tick på kernetimeren. Kommandofortolkeren er implementeret ved linie 81 til 114 i bluetooth.c [22] Retningsstyring Hvis kommandofortolkeren finder en kommando til retningsstyringen, afvikles en task, som vist på figur Retningsstyringskommando fundet Servomotor sættes efter kommandoen Tømmer char-array til kommandoer Figur 11.7: Flowchart over retningsstyrings-task på Leader. 99

100 Tasken sætter servomotoren, så retningen ændres som ønsket med kommandoen. Derefter tømmes char-arrayet så det kan benyttes til at modtage nye kommandoer. Implementering af retningsstyringen kan ses på linie 39 til 48 i servo.c [22] Hastighedsstyring Hastighedsstyringen på Leader indeholder to elementer; en styring og en regulator. Findes en hastighedsstyringskommando af kommandofortolkeren, afvikles styrings-tasken vist på figur Hastighedsstyringskommando fundet Ønsket hastighed gemmes Figur 11.8: Flowchart over hastighedsstyrings-task på Leader. Hastighedsstyrings-tasken gemmer den ønskede hastighed, som er modtaget i kommandoen i henhold til kommunikationsprotokollen. Dermed modtages brugerens ønske, når brugeren interagerer med Base. Leader skal altid holde brugerens senest ønskede hastighed, uanset hvor tit denne opdateres, hvilket implementeres med en hastighedsregulering. Hastighedsregulering scheduleres Beregn PWM-signal til ønsket hastighed Sæt DC-motorens PWM-signal Hastighedsregulering scheduleres Figur 11.9: Flowchart over hastighedsregulerings-task på Leader. Figur 11.9 viser hastighedsregulerings-tasken. Denne kører periodisk, med 50 Hz, hvorfor den schedulerer sig selv under afviklingen. Reguleringen beregner signalet til DC-motoren, med senest ønskede hastighed og seneste hastighedsmåling, hvorefter signalet sættes på DC-motoren. Beregningen af PWM-signalet er implementeret på linie 35 til 55 i velocity.c [22] og måden, hvorpå det bliver sat på DC-motoren, er linie 40 til 76 i motor.c [22] Hastighedsmåling På figur er en hastighedsmålings-task vist. Denne task er periodisk med 50 Hz, hvilket kommer til udtryk ved, at den schedulerer sig selv, når den afvikles. Hastighedsmåling scheduleres Timerværdi for hastighedssensor aflæses Timerværdi for hastighedssensor nulstilles Hastighed udregnes Hastighedsmåling scheduleres Figur 11.10: Flowchart over hastighedsmålings-task på Leader. Hastighedssensoren er implementeret som i afsnit 6.3.2, hvilket betyder, at hastigheden kan udregnes med værdien, der aflæses fra timeren. Når denne værdi er aflæst, nulstillet 100

101 og omregnet, er selve hastighedsmålingen foretaget og klar til at blive gentaget. Dette er implementeret på linie 18 til 24 i velocity.c [22] Datalogning På Leader logges der kun data med hensyn til hastigheden, da dette er eneste målte data. På figur er tasken til datalogningen vist. Datalogning scheduleres Hastighedsmåling wrappes Afsendelse scheduleres Datalogning scheduleres Figur 11.11: Flowchart over datalognings-task på Leader. Datalogningen er, ligesom hastighedsmålingerne, periodiske med 50 Hz, hvorfor tasken schedulerer sig selv, når den afvikles. Selve datalogningen består i at wrappe hastighedsmålingen således, at afsendelsen overholder kommunikationsprotokollen, hvilket består i at give den 12-bits hastighedsmåling en 4-bits header. Dette kan så sendes som to bytes, som Base genkender som hastighedsmåling fra Leader, hvilket scheduleres. Implementation af wrapning er linie 11 til 17 i send_meas.c [22]. 101

102 11.3 Afvikling på Member Member er autonom, hvilket kræver, som det fremgår af figur 11.12, at der foretages målinger af afstand. Member agerer altså med Base, hastighedssensor, afstandssensor, servomotor og DC-motor. Hvert element, som er en del af Member, er beskrevet i de følgende afsnit. Figur er lavet med udgangspunkt i figur 4.1. Member Base Hastighedssensor Hastighedsmåling Datalogning Kommunikation Afstandsmåling Kommandofortolker Afstandssensor Afstandsstyring Retningsregulering DC-motor Retningsstyring Servomotor Figur 11.12: Systemdiagram over Member Kommunikation På trods af Members autonomitet kan den stadig modtage en stop-kommando, i tilfælde af at noget skulle gå galt under kørsel. Figur viser, hvordan modtagelsen foregår, som er det samme som for Leader, beskrevet i afsnit Implementationen er ligeledes den samme og kan findes på linie 11 til 14 i interrupt.c [23], samt linie 51 til 63 i uart.c [23]. UART modtager byte UART RX-interrupt Tømning af buffer scheduleres Byte i UART RXbuffer gemmes Kommandofortolker scheduleres Figur 11.13: Flowchart over bytemodtagelse til Member. Da Member både måler hastighed og afstand, kan den også sende disse data til Base. Selve afsendelsen af bytes fra dataloggeren schedulerer det, til der afsendes bytes, er vist på figur

103 Datalogger schedulerer afsendelse Bytes ligges i UART TX-buffer UART sender byte Figur 11.14: Flowchart over byteafsendelse fra Member. Afsendelsen i sig selv, er den samme for Member som beskrevet for Leader i afsnit Forskellen ved at Member skal sende mere data, er i dataloggeren, som beskrives i afsnit Kommandofortolker Member kan kun reagere på én kommando, nemlig nødstop. Når Member har modtaget data scheduleres kommandofortolkeren, hvis task er vist på figur Kommandofortolker scheduleres Char-array søges efter kommando Kommando fundet Ja Kommando-task udføres Nej Task slut Figur 11.15: Flowchart over kommandofortolkning på Member. Members kommandofortolker fungerer på samme måde som Leaders, hvilken er beskrevet i afsnit , den har dog kun en kommando. Findes et nødstop, sættes afstandsstyringen, beskrevet i afsnit , ud af spil hvormed spændingen over DC-motoren sættes til nul. Kommandofortolkeren er implementeret på linie 77 til 86 i bluetooth.c [23] Hastighedsmåling Member regulerer ikke hastigheden ved at benytte hastighedsmålinger, de foretages dog stadig, så brugeren kan se hastigheden fra Base. Figur viser hastighedsmålingstasken. Hastighedsmåling scheduleres Timerværdi for hastighedssensor aflæses Timerværdi for hastighedssensor nulstilles Hastighed udregnes Hastighedsmåling scheduleres Figur 11.16: Flowchart over hastighedsmålings-task på Member. Hastighedsmålingerne på Member foretages på samme måde som på Leader, hvilket er beskrevet i afsnit Målingerne er også på Member periodiske med 50 Hz, hvorfor 103

104 tasken schedulerer sig selv under afviklingen. Implementationen af hastighedsmålingerne findes på linie 18 til 24 i velocity.c [23] Afstandsmåling Members autonomitet bygger på regulering af afstande målt mellem Member og Leader. Afstandssensorerne er implementeret som beskrevet i afsnit På figur er afstandsmålings-tasken vist. Afstandsmåling scheduleres ADC samples ADC konverteres ADC samples ADC konverteres Afstandsmåling scheduleres Figur 11.17: Flowchart over afstandsmålings-task på Member. Afstandsmålingerne er periodiske med 200 Hz, hvorfor tasken schedulerer sig selv, når den afvikles. Da der er to afstandssensorer, foretages sampling og konvertering af ADC en to gange, én for hver sensor. Implementeringen er på linie 24 til 45 i distance.c [23] Afstandsstyring Afstandsmålingerne benyttes af Member til at styre afstanden mellem Member og Leader. Figur viser afstandsstyrings-tasken, som er periodisk med 200 Hz. Afstandsregulering scheduleres Finder mindste afstand i seneste målesæt Beregn signal til DC-motor med mindste afstand Sæt signal til DCmotor Afstandsregulering scheduleres Figur 11.18: Flowchart over afstandsstyrings-task på Member. Afstandsstyringen benytter den mindste målte afstand fra sidste aflæsningen af afstandssensorerne, hvorfor denne først findes. Derefter udregnes, med den mindste afstand, signalet DC-motoren skal have i henhold til modellen, hvorefter dette sættes på DC-motoren. Afstandsstyringen er implementeret på linie 53 til 116 i distance.c [23] Retningsregulering Afstandsmålingerne benyttes, udover afstandsstyring, til retningsregulering og -styring. På figur er retningsregulerings-tasken vist. Retningsregulering scheduleres Vinkel beregnes Servomotorens signal beregnes Retningsstyring scheduleres Retningsregulering scheduleres Figur 11.19: Flowchart over retningsregulerings-task på Member. 104

105 Til regulering af retningen på Member, beregnes den relative vinkel mellem Member og Leader først, ud fra de to afstandssensorers sidste måling. Denne vinkel benyttes til at beregne, hvilket signal servomotoren skal have. Derpå scheduleres retningsstyringen og da, retningsreguleringen er periodisk med 200 Hz, bliver den også selv scheduleret under egen afvikling. Reguleringen af retning er implementeret på linie 9 til 34 i direction.c [23] Retningsstyring Figur viser retningsstyrings-tasken på Member, som scheduleres af retningsreguleringen. Retningsstyring scheduleres Servomotorens signal sættes som beregnet af retningsregulering Figur 11.20: Flowchart over retningsstyrings-task på Member. Retningsstyringen har til opgave, at sætte servomotoren til den værdi retningsreguleringen har beregnet ud fra en vinkelberegning baseret på afstandsmålinger. Dette er implementeret i linie 38 til 48 i servo.c [23] Datalogning På Member logges data om hastigheds- og afstandsmålinger. Figur viser, hvordan datalognings-tasken er. Det ses, at datalogningen er periodisk, hvilket den er med 200 Hz, da den schedulerer sig selv under afviklingen. Datalogning scheduleres Målinger wrappes Afsendelser scheduleres Datalogning scheduleres Figur 11.21: Flowchart over datalognings-task på Member. Hver af de tre 12-bit datasæt wrappes først med en individuel 4-bit header, i henhold til kommunikationsprotokollen. Dette giver seks bytes, der skal sendes, hvilket ikke kan være i UART ens TX-buffer, da den er fire bytes stor. Derfor scheduleres to afsendelser med tilstrækkeligt tidsmellemrum, således at UART en kan nå at sende dataen og DSC en ikke skal vente på dette. Da hastighedsmålingerne kun foretages med 50 Hz, sendes disse kun med hver fjerde gang, hvorfor der kun skal scheduleres to afsendelses-tasks hver fjerde gang. Implementationen af dette er på linie 6 til 49 i send _meas.c [23]. 105

106 11.4 Modultest Testen af dette modul har til formål at undersøge, hvorvidt det, med kernen, er muligt at afvikle tasks i ønsket rækkefølge og med ønsket frekvens. Den samlede afvikling testes i kapitel 14, hvorfor den ikke testes her. Testen udføres ved at sætte to tasks til at schedulere hinanden med forskellige frekvenser og tjekke til hvilke tider, de afvikles. Test har vist det muligt, dog med en lille frekvensfejl, da timerfrekvensen, som beskrevet, er 0,006 % anderledes end der beregnes med. En så lille fejl vurderes til at være ubetydende. 106

107 Software til Base 12 Base består af en række forskellige moduler, der tilsammen muliggører interaktion med brugeren samt håndterer kommunikation med bilerne. Der ønskes at brugeren kan styre Leader ved hjælp af piletaster, samt sende en stop kommando. Dette opnåes med et GUI, der formidler input fra brugeren og viser den information der modtages fra bilerne, samt to objekter der hver sørger for at opretholde kommunikation med hver sin bil - som vist på figur Base Member Bruger Member GUI API Leader Leader Figur 12.1: Systemdiagram over Base Der vil i det følgende blive designet og implementeret software i Java. Dokumenteringen af design og implementering vil ske samlet for de, ifølge systemdiagrammets, opdelte moduler, givet ved figur

108 12.1 Member og Leader Member- og Leader-softwaremodulerne skal indeholde funktionaliteter, som gør det muligt at oprette en trådløs forbindelse til henholdsvis Leader og Member fra det respektive softwaremodul. For både Leader og Member forefindes delte styrefunktioner i forbindelse med platooning, som internt er fungerende på forskellig vis, men har den faktiske egenskab til fælles. Interfaces er en måde hvorpå der kan laves et overordnet sæt prototyper for hvilke metoder samt egenskaber, der skal implementeres af klasserne, som ønsker at underlægge sig denne forudbestemte opsætning. Når objekter instantieres af de endelige klasser, der benytter det pågældende interface, er en forudbestemt relation mellem disse objekter garanteret, selvom interfacet er implementeret på forskellig vis. Denne implicitte sammenhæng, hvorved alle klasser der benytter et specifikt interface, kan identificeres via interfacet kaldes polymorfi. Et eksempel på et benyttet interface kunne være en bil. Bilproducenterne er alle blevet enige om et interface, som definerer at der i en bil skal være speeder-, bremse- og koblingspedal, samt et rat og en gearstang. Dette interface er at finde i alle biler med manuelt gear, hvilket altså vil sige at bilerne implementerer dette interface. En person som sætter sig ind i bilen for at køre den benytter altså dette interface til at kalde de funktioner der styrer bilen. Personen behøver altså kun at være bekendt med det generelle interface for at kunne benytte enhver bil der implementerer et sådant interface. Det betyder intet for personen hvordan bilerne håndterer at der bliver trykket på speederen, så længe de alle er enige om at det at trykke på speederen øger farten. For det aktuelle platooning-projekt deler Member og Leader, set fra Base, kun egenskaben stop, men i praksis kunne der være en bred vifte af funktionaliteter forbundet med dette interface. Alle funktioner som Leader- og Member-modulet ikke deler, placeres i en klasse med de respektive navne, Leader og Member. Foruden dette interface kaldet Platooning, som definerer fællestrækkende for platooning, er det nødvendigt at tilknytte et netværk til Leader, såvel som til Member. Da Java er skrevet til at være platformsuafhængig, men håndteringen af serielporte behandles forskelligt afhængigt af styresystemet, er der ikke umiddelbart understøttelse af serielporte i Java. Dog findes et eksternt bibliotek, ved navn RxTx, der tillader at serielportene benyttes. For at håndtere en serielforbindelse oprettes en klasse ved navn Network, som indeholder de funktionaliteter, som er nødvendige for at kunne sende og modtage, samt forbinde eller afbryde forbindelsen til en serielport. Desuden tillader denne klasse at der kan hentes en liste over tilgængelige serielporte. I modsætning til det tidligere definerede interface kaldet Platooning, vil der i Networkklassen være implementeret funktionaliteter som nedarves og derved er ens for både Leader og Member. Af figur 12.2 fremgår klassediagrammet, hvor de stiplede pile til interfacet fra Member- og Leaderklassen betyder at de skal implementere Platooning, mens de andre pile betyder nedarvning fra Network-klassen. Specielt ved Network-klassen på figur 12.2 er dens tilknytning til Network_iface, som er et 108

109 Network Public Class listenerthread: Thread serialport: SerialPort contact: Network_iface inputstream: InputStream outputstream: OutputStream Platooning Public Interface stop() : void Network(id: int, contact: Network_iface) getportlist() : Vector<String> connect(portname: String, speed: int) : boolean connect(portname: String) : boolean isconnected() : boolean disconnect() : boolean writechar(txt: char) : boolean writestring(message: String) : boolean writecommand(value: int, cmd: char) : boolean Leader Public Class angle: int = 0 speed: int = 0 Leader(id: int, contact: base.network_iface) stop() : void Backwards() : void Forward() : void Right() : void Left() : void Member Public Class Member(id: int, contact: Network_iface) stop() : void Figur 12.2: Klassediagram for Leader- og Membermodulerne field i klassen. Klassen, som skal oprette forbindelse til netværket, må implementere dette interface eller have en instans af et objekt som gør, hvorefter den kan oprette en instans af Network med et objekt, der opfylder implementering af interfacet, som parameter, hvilket kan lade sig gøre grundet polymorfisme. Implementeringen af Network kan ses ved kodeudsnittet 12.1, hvor constructor en forventer et Network_iface som parameter. Listing 12.1: Udsnit af den implementerede Network-klasse public class Network {... private Network_ iface contact ; private int id; public Network ( int id, Network_ iface contact ){ // Constructor this. contact = contact ; this.id = id; }... Grundet implementeringen af Network_iface, vides det, at den pågældende klasse, der 109

110 benytter Network, er i stand til at håndtere de data der modtages via serielkommunikationen. Det bemærkes desuden af figur 12.2 at en deklaration af typen SerialPort finder sted i Network-klassen. SerialPort er en del af RxTx-biblioteket, som muliggører en serielforbindelse. For at tilpase denne til projektet er den tidligere nævnte Network-klasse oprettet med en indre klasse kaldet SerialReader, der har til formål at styre modtagelsen af data. På figur 12.3 ses hvorledes SerialPort danner komposition med Network. Desuden illustreres det hvorledes nesting af SerialReader finder sted i Network, hvilket betyder at fields i denne kan tilgås af SerialReader. Network Public Class SerialPort Public Class Thread Public Class SerialReader Private Class SerialReader() run() : void Figur 12.3: Klassediagram for Network og dets implicerede elementer. Klassen SerialReader fungerer således, at en instans heraf oprettes, og det opstående objekt passeres til en tråd, hvor den vil monitorere efter indkommende data. Denne tråd startes og stoppes af funktionerne givet i Network-klassen. Når forbindelsen er oprettet, vil modtagene data til Leader- eller Member-objektet, der nedarver fra Network, omdirigeres til API et, via Network_iface implementerede funktionaliteter, hvorefter den videre behandling foretages. Listing 12.2: SerialReader startes i en ny tråd af Network-objektet. inputstream = serialport. getinputstream (); // Streams loades over i variabler outputstream = serialport. getoutputstream (); // Goer det muligt at interagere med dem igen readerthread = ( new Thread ( new SerialReader ( inputstream ))); // Ny traad med funktionen SerialReader end = false ; reader. setpriority (3) ; // Prioriteten for den nye traad saettes. reader. start (); // Den nye traad startes For at håndtere indkommende data oprettes en seperat tråd der monitorerer med en inputstream, hvilket fremgår af kodeudsnittet En tråd er en seperatkørende proces, der kan afvikles parallelt med andre tråde. På figur 12.4 er de to seperate tråde illustreret, samt hvorledes data overføres til hovedtråden. 110

111 readthread (Leader) Main thread readthread (Member) Thread start Modtagene data Modtagene data Modtagene data Modtagene data Thread stop Thread start Modtagene data Modtagene data Modtagene data Modtagene data Thread stop Figur 12.4: Sekvensdiagram for modtager threads. En inputstream fungerer basalt som en FIFO-buffer, der placerer et antal bytes i en linket liste. Når der læses fra inputstreamen fjernes de læste bytes, hvilket tillader at de bytes der står efter, kommer frem som de første. Funktionen, som kører i den oprettede tråd, monitorerer længden af inputstreamen og sørger for at læse to bytes hver gang de er tilgængelige, da længden på pakkerne, jævnfør figur 7.2, er to bytes lang. Hver gang der modtages to bytes identificeres header og data og dataen skrives til den korrekte plads, som vist på kodeeksempel Listing 12.3: SerialReader der køres i en seperat tråd. try { while (! end ){ // Mens den ikke er blevet bedt om at slutte if (( in. available ()) > 1){ // Hvis der er flere end 1 byte tilgaengelig if (( this.in. read ( buffer,0,2) ) > -1){ // Laeg 2 bytes i buffer temp [0] = buffer [0]&0 xff ; // Omregning mellem C- bytes og Java - bytes temp [1] = buffer [1]&0 xff ; int header = ( temp [0] & 240) > >4; // Omregn headeren til 0-15 if ( header <4) { // Check at headeren er valid System. out. println (" Header : "+ header ); int data = temp [1] + ((( temp [0]) & 15) *256) ; // Udregn vaerdi contact. writetolabels ( header, data ); // Skriv vaerdier til de rigtige labels. }}}}}

112 12.2 GUI Formålet med GUI et er at give brugeren mulighed for at se de informationer, der modtages fra Leader og Member. GUI et skal derfor kunne gøre det muligt for brugeren at forbinde til begge biler uafhængigt af hinanden, samt kunne liste de tilgængelige serielporte. Dette gøres med to dropdown-menuer, der indeholder en liste over serielporte, to connectknapper, der kan bruges til at administrere hvornår der skal oprettes forbindelse, samt en scan-knap til at genopfriske listen af serielporte. Udover dette ønskes labels, til at vise de informationer der modtages fra bilerne, som er grupperet på en sådan måde, at det er muligt for brugeren at identificere afsenderen. Der ønskes desuden labels til beskrivelse, hvilket gør det muligt for brugeren at identificere den information, der modtages. GUI et nedarver fra JFrame, en klasse der findes i Java s indbyggede Swing-bibliotek, og opsættes ved hjælp af den indbyggede GUI-designer i Netbeans IDE en. Denne gør det muligt at definere og positionere objekter i GUI et. Hvert af disse objekter har en række egenskaber, der gør det muligt at tilpasse dem til den ønskede situation. Det endelige GUI ses på figur For at tillade at brugeren kan styre bilerne vil det være nødvendigt at Base kan Figur 12.5: Billede af det endelige GUI. formidle tastaturtryk videre, i form af korrekt formaterede kommandoer. I Java kan dette gøres vha. et KeyListener-interface. Et KeyListener-interface gør det muligt at registrere KeyEvents, som bliver kaldt hver gang brugeren trykker på, eller slipper, knapper. Der findes to basale former for KeyEvents; når der tastes en unicode-karakter eller når der trykkes eller slippes knapper. Den første kaldes en KeyTyped-event, mens den anden enten er et KeyPressed- eller KeyReleased-event. Til dette projekt vil der blive benyttet KeyPressed-events, da det ønskes at detektere hver gang brugeren trykker på en piletast. I kodeeksempel 12.4 ses hvordan de definerede funktioner fra KeyListenerinterfacet implementeres. Et KeyEvent består af en række egenskaber, heriblandt KeyCode. Denne indeholder en 112

113 værdi, afhængigt af hvilken knap der er blevet trykket på, som gør det muligt at identificere knappen. Det er derfor muligt at definere forskellige funktioner til forskellige knapper i én KeyPressed-funktion. KeyEvents sendes til det objekt der er i fokus, altså det objekt der er markeret af brugeren. Da ét af GUI-elementerne altid vil være i fokus, vil globale keybindings kunne opnåes ved at tildele samme KeyListener til alle Swing-elementer. På denne måde kaldes den samme KeyPressed-funktion hver gang der trykkes på en knap. Listing 12.4: Funktionsprototyperne fra KeyListener defineres. public class API.. implements.. KeyListener {... public void keytyped ( KeyEvent e){ // Bliver kaldt hver gang brugeren indtaster en Unicode karakter... } public void keypressed ( KeyEvent e){ // Bliver kaldt hver gang brugeren trykker paa en knap... } public void keyreleased ( KeyEvent e){ // Bliver kaldt hver gang brugeren slipper en knap... }... } 12.3 API Både Member, Leader, GUI implementeres i form af API et. Denne klasse sørger for at oprette GUI et, I form af JFrame, samt Network-instanser, i form af Leader- og Memberobjekter. Denne sammenhæng vises på figur Da alle elementerne på denne måde er tilgængelige for API et, er det muligt at facilitere kommunikationen mellem dem. Når API et opretter instanser af Network-klassen kaldes det en komposition. Dette vil sige at hvis API objektet bliver lukket, bliver de instantierede Network-objekter ligeså. Dette skyldes at API et ikke er afhængigt af Network for at fungere. Hvis et Network-objekt lukkes, lukkes API et ikke. Måden Network benytter Network_iface kaldes aggregation. Dette vil sige at der oprettes en instans af Network_iface i Network. Denne instans lukkes ikke, modsat en komposition, når Network-objektet lukkes Modultest Formålet med modultesten er at undersøge om softwaren fungerer som krævet. Dette undersøges ved at forsøge at forbinde til både Member og Leader samtidigt, samt 113

114 Network Public Class Network_iface Public Interface KeyListener Public Interface writetolabels(header: int, value: int) : void networkdisconnected(id: int) : void keypressed(e: KeyEvent) : void keyreleased(e: KeyEvent) : void keytyped(e: KeyEvent) : void JFrame Public Class API Public Class Serial_member: Member Serial_leader: Leader portlist: Vector<String> API() initcomponents() : void but_scanactionperformed(evt: java.awt.event.actionevent) : void but_connectmemberactionperformed(evt: java.awt.event.actionevent) : void but_connectleaderactionperformed(evt: java.awt.event.actionevent) : void main(args: String[]) : void writetolabels(header: int, value: int) : void networkdisconnected(id: int) : void keypressed(e: KeyEvent) : void keyreleased(e: KeyEvent) : void keytyped(e: KeyEvent) : void Figur 12.6: Det endelige klassediagram over Base. at modtage information fra dem begge, samtidigt. Denne information skal forståes og behandles korrekt af programmet, så det er muligt for brugeren at se at sensorerne fungerer korrekt, hvilket kræver at de følger den protokol, som er defineret i afsnit 7.3. Desuden skal det, samtidigt med at informationen modtages, være muligt at styre Leader ved hjælp af tastaturet. Det kan konkluderes at pakkerne fra begge biler bliver modtaget og fortolket korrekt, hvilket vil sige at de passer overens med den protokol og udskrevet på korrekt vis til brugeren. Basen modtager desuden på korrekt vis kommandoer fra brugeren og sender det videre til de korrekte biler. Denne test konkluderes derfor til at være succesfuld. 114

115 Implementering 13 I de foregående kapitler er systemets moduler hver især designet og implementeret. I dette kapitel er de problemstillinger, der er opstået ved at implementere det samlede system beskrevet. Kapitlet omhandler også løsninger på problemstillinger, som er forsøgt løst. Til problemstillinger, som enten ikke er forsøgt løst eller ikke har været mulige at løse, er der forklaret, hvad årsagen til problemet er. Implementeringen af de moduler, som ikke er beskrevet i dette kapitel, er forløbet problemfrit Retningsstyring Retningsstyringen, implementeret i Member, viste sig ikke at kunne håndtere, hvis en af afstandssensorerne målte forbi Leaders plade og dermed målte maksimal afstand. Problemet bestod i at Members reaktion på dette var at dreje væk fra Leader, idet afstandssensorerne outputter hvad der svarer til en afstand på 3 cm, hvis afstanden til objektet er over 29 cm. For at afhjælpe problemet er der valgt at omgå regulatoren i de tilfælde, hvor en afstandssensor måler 3 cm, således at der sættes en fast hjulvinkel i et forsøg på at navigere tilbage bagved Leader. Der blev også fundet at retningsregulatoren, med et gain på 19, blev mere og mere ustabil jo hurtigere Leader kørte. Dette kan skyldes at modellen og regulatoren ikke tager hensyn til hvor stor den flade, som afstandssensorerne skal måle afstanden til, er. Overskyder regulatoren så meget til venstre at den venstre afstandssensor måler uden for Leaders bagplade, vil den kompensere ved at dreje hårdt til højre, hvilket resulterer i at den højre afstandssensor måler uden for bagpladen osv. For at løse problemet blev gainet tunet til i stedet at være tre og hjulvinklen, der sættes på Member, hvis afstandssensorerne måler udenfor bagpladen, er sat til 4, Hastighedsstyring Hastighedsstyringen, implementeret i Leader, viste under test, med referenceændringer fra Base, sommetider ikke at kunne håndtere at skifte retning fra fremad til bak. Problemet 115

116 bestod i, at når motoren skulle have skiftet retning, begyndte den i stedet at øge hastigheden, til det ikke var muligt mere. Dette skyldes primært, at hastighedssensoren måler positive hastigheder, lige meget hvilken vej motoren kører. Når der bliver skiftet hurtigt fra frem til bak vil hastighedsregulatoren give et negativt output, som svarer til bak, men hvis motoren stadig har moment den modsatte retning vil måleren måle en hastighed, som den ukorrigerede algoritme tolker, som værende en hastighed i den rigtige retning, bak. Men da den ikke når den ønskede hastighed, som referencen er sat til, vil regulatoren gøre det negative output større og dermed sætte større hastighed på motoren. Problemet er afhjulpet ved at fjerne muligheden for at bakke. Regulatoren skal have mulighed for at bremse motoren, for at kunne regulere både op og ned i hastighed, hvorfor algoritmen bremser med konstant styrke, hvis regulatorens output bliver negativt. 116

117 Accepttests 14 For at undersøge om produktet lever op til kravene stillet i kravspecifikationen, i tabel 3.1, er der opstillet og udført en række tests, som i dette kapitel er beskrevet. Ligesom kravspecifikationen er dette kapitel delt op i tre sektioner; sensor, kommunikation og kørsel. Hver sektion omhandler kravene specifikt til det område, som testes hver for sig, og afsluttes med, for overblikkets skyld, en tabel, der viser, hvorvidt kravene er bestået eller ikke. Et bestået indikeres med og et dumpet indikeres med X i en Opfyldt-kolonne Sensorkrav Kravene til bilernes sensorer, taget fra kravspecifikation, kan ses i tabel Opfyldelsen af disse tre krav er, pga. typen af krav, bestemt direkte under designprocessen, i modsætning til at være afhængig af i hvilken grad implementeringen kan leve op til det designede. Sensorkrav Afstandssensoren skal kunne måle op til 24,2 cm Afstandssensoren skal have en opdateringsfrekvens på min. 167 Hz Hastighedssensoren skal kunne måle en omdrejningshastighed på op til 1112 rpm på hjulet Tabel 14.1: Krav til sensorer. Det første sensorkrav er afhængigt af valget af afstandssensorer og præcisionen på målingen deraf. Det faldt på to US18-PA-5-NO3-VH, som ifølge databladet kan måle mm, med en opløsning på 1 mm og en præcision på ± 1 mm givet ved et spændingsoutput fra 0-10 V. Dette giver 270 trin fra sensoren, hvilket konverteres af en 12-bit ADC. Denne ADC har dermed 4096 trin, hvormed kravet til fulde er opfyldt. Sensoren har desuden en opdateringsfrekvens på 200 Hz, hvilket ADC en kan håndtere. Dermed er det andet sensorkrav også opfyldt [20]. Som beskrevet i afsnit foretages målingen af hastigheden ikke på hjulet, men på motoren. Dette øger kravet til hastighedssensoren, hvilket dog, som konkluderet i kapitel 6.3, ikke er et problem med den valgte løsning. 117

118 14.2 Kommunikationskrav Kravene til systemets kommunikation kan ses i tabel Kravene er af forskellig type og, hvorvidt de er opfyldt eller ikke, skal derfor testes på forskellig vis. Kommunikationskrav Kommunikation mellem Leader, Member og Base skal foregå trådløst Hastighed og retning af Leader skal kunne styres fra Base Base skal kunne modtage information fra Leader og Member Base skal kunne sende kommandoer til Leader Base skal kunne modtage input fra bruger Base skal kunne vise informationer til bruger Tabel 14.2: Krav til kommunikationen. Kommunikationen mellem Leader, Member og Base foregår via bluetooth, som beskrevet i kapitel 7, og er dermed trådløs. Base er designet som beskrevet i kapitel 12. Kommunikationen mellem Base og Leader følger protokollen beskrevet i afsnit Kommunikationstest for Base og Leader Til at teste kommunikationskravene mellem Base og Leader sættes Leader op på løbebåndet beskrevet som testmiljø i afsnit 3.1. Der oprettes bluetoothforbindelse mellem Base og Leader gennem Base GUI et. Dernæst sendes styringskommandoer, via GUI et, til Leader for at teste, hvorvidt Leader modtager og reagerer på disse kommandoer. Kommer Leader dermed i bevægelse, kan modtagelsen af data fra Leader testes og disse data skal dernæst blive vist i GUI et. Resultatet af denne test viser, at samtlige krav er opfyldt mellem Base og Leader Kommunikationstest for Base og Member Base skal kunne modtage information fra Member. Kommunikationskravet testes ved, at Member sættes på løbebåndet beskrevet i afsnit 3.1. Der oprettes bluetoothforbindelse mellem Base og Member gennem Base GUI et. Der ønskes at teste hvorvidt Base kan modtage hastigheds- og afstandsmålinger fra Member under kørsel. Dette gøres ved at lade Member følge et fikseret punkt på løbebåndet. Resultatet af testen viser, at kravet er opfyldt mellem Base og Member. 118

119 14.3 Kørselskrav Der vil i dette afsnit være beskrevet en række tests der i henhold til kravspecifikationen omfatter kørselskravene. De opstillede krav vil yderligere være kategoriseret således, at flere af kravene valideres sammenhængende for at opnå en mere konsistent test, der overholder samtlige punkter, der har indflydelse på det enkelte krav. Ydermere er det fastlagt at Base afvikles på en MacBook Pro 7,1 for at alle tests er konsistente. Efterfølgende i tabel 14.3 er kørselskravene, der er yderligere beskrevet i kapitel 3, opsummeret. Kørselskrav Leader og Member skal under kørsel holde en indbyrdes afstand på 22 cm ± 2,2 cm Member skal kunne følge Leader ved en acceleration på op til 2 m /s 2 Accelerationen af Leader og Member må ikke overskride 2 m /s 2 Member skal kunne følge Leader op til 12 km /t Member må ikke køre hurtigere end 13 km /t Hjulvinklen på Leader må ikke overskride 3,6 Tabel 14.3: Kørselsspecifikationer Afstands- og hastighedstest for Member For at teste Members specifikke evne til at holde en afstand til Leader på 22 cm ± 2,2 cm samt opnå og holde en hastighed på op til 13 km /t er den efterfølgende test defineret. Den pågældende test foretages i henhold til testmiljøet, som er beskrevet i afsnit 3.1. Member placeres på et løbebånd med Leader foran. Derefter justeres hastigheden op, med et tempo, der ikke overskrider den definerede maksimalacceleration på 2 m /s 2, til den ønskede hastighed på 12 km /t opnåes. Når afstanden vurderes stabil, foretages en afstandsmåling vha. visuel aflæsning med lineal. Hvis resultatet vurderes tvivlsomt, i forhold til de definerede grænseværdier, installeres et kamera, der gør afmålingen konsistent. Efterfølgende forsøges hastigheden yderligere forøget, for at sikre en begrænsning heraf finder sted. Efter testen kan det konkluderes at Member ikke er i stand til at følge Leader op til 12 km /t. Ydermere vides det fra afsnit 9.3 at Member ikke er i stand til at overholde kravet om afstand, da steady-state fejlen vil overskride tolerancen på afstandskravet. Det er ikke forsøgt testet om Members hastighedsbegrænsning virker grundet at menber ikke er i stand til at følge leader op til 12 km /t. 119

120 Accelerations- og hastighedstest for Leader og Member Følgende test beskriver Leader og Members evne til maksimalt at have en middelacceleration på 2 m /s 2 samt henholdsvis Leader maksimalt kan opnå en hastighed på 12 km /t og Member 13 km /t. For både Leader og Member er det muligt at implementere software, der kan monitorere hastigheden ved faste tidsintervaller. Derved kan der laves et step på hastigheden af de to biler, hvorefter dataene mht. hastigheden lagres for efterfølgende at blive sammenholdt med de pågældende kriterier. Det er ikke i projektet fundet tid til at implementere en accelerationsbegrænsning i Member, og derfor er det valgt ikke at teste Member. Middelaccelerationen og maksimal hastighed er testet på Leader, og på figur 14.3 ses resultatet af testen Målt hastighed 3,3 m/s 1,25 m/s 2 Hastighed [m/s] Tid [s] Figur 14.1: Hastighed på Leader i forhold til tiden, hvor Base er interfacet til Leader. Som det ses på figur 14.1 er kravet om en middelacceleration på på maksimum 2 m /s overholdt, derudover er det fundet at hastigheden på Leader overstiger det tilladte 12 km /t eller 3,3 m /s og kravet er derved dumpet Maksimal vinkeludsving for Leader For Leader er en maksimal hjulvinkel givet ved 3,6. For at teste om dette er tilfældet, for det konstruerede system, sendes den maksimalt opnåelige hjulvinkel via en kommando fra Base til Leader. Når kommandoen er registreret af Leader, måles den resulterende vinkel i forhold til udgangspunktet givet ved 0. Efter testen er blevet udført er det fundet at, både opløsningen på servoen, samt mekanisk slør gør at kravet ikke kan overholdes. 120

121 Opsamling af accepttest I tabel 14.4 er der vist en opsamling af bestået og ikke bestået krav Kørselskrav Leader og Member skal under kørsel holde en indbyrdes afstand på 22 cm ± 2,2 cm Member skal kunne følge Leader ved en acceleration på op til 2 m /s 2 Accelerationen af Leader og Member må ikke overskride 2 m /s 2 Member skal kunne følge Leader op til 12 km /t Member må ikke køre hurtigere end 13 km /t Hjulvinklen på Leader må ikke overskride 3,6 Opfyldt X X X X X X Sensorkrav Afstandssensoren skal kunne måle op til 22 cm ± 2,2 cm Afstandssensoren skal have en opdateringsfrekvens på min. 167 Hz Hastighedssensoren skal kunne måle en omdrejningshastighed på op til 1112 rpm på hjulet Opfyldt Kommunikationskrav Kommunikation mellem Leader, Member og Base skal foregå trådløst Hastighed og retning af Leader skal kunne styres fra Base Base skal kunne modtage information fra Leader og Member Base skal kunne sende kommandoer til Leader Base skal kunne modtage input fra bruger Base skal kunne vise informationer til bruger Opfyldt Tabel 14.4: Opamling af hvilke krav der er bestået og ikke bestået. 121

122

123 Konklusion 15 Formålet med projektet, som en helhed, var at designe og implementere en prototype, til demonstration af principperne bag platooning. Kravene til denne prototype blev bl.a. bestemt ud fra informationer fra tidligere prototyper og relevante størrelser fra gældende færdselsregler. Af accepttestbeskrivelserne i kapitel 14 fremgår metoderne anvendt til at test, hvorvidt den endelige prototype lever op til de opstillede krav i Kravspecifikationen, kapitel 3. Med tabel 14.4 kan det konkluderes, at samtlige sensor- og kommunikationskrav er bestået, hvorimod ingen kørselskrav beståes. Afstandskravene beståes ikke, da gruppen, ifølge Tom S. Pedersen [24], ikke har kenskab til den reguleringsmetode, der skal benyttes for at opnå det ønskede. Members accelerationsbegrænsning er ikke implementeret, hvorved accelerationskravene ikke kan opfyldes, dog opfylder Leader, i accepttesten, sin del af kravet. Hastighedskravene er ikke bestået for Leader og dermed heller ikke for Member, da Member ikke har implementeret individuel hastighedsregulering. Kravet til hjulvinkel er ikke opfyldt, hvilket skyldes mekaniske begrænsninger. I og med Member er i stand til at følge Leader, når Leader styres med kommandoer fra Base, på trods af at ingen af de opstillede krav for kørsel er bestået, betragtes den endelige prototype, af gruppen, som værende en succes. Prototypen viser det muligt, med en hardwareimplementering bestående af, i princippet, kun to afstandssensorer, at designe og implementere grundprincippet i platooning - autonom forfølgelse. 123

124

125 Litteratur [1] California PATH, Vehicle Platooning and Automated Highways. Bilags-CD platooning.pdf, [2] Thomas J. Triggs & Walter G. Harris - Monash University, Reaction time of drivers to road stimuli. Bilags-CD reactiontimeofdriverstoroadstimuli.pdf, juni [3] Aalborg Universitet, Projektenhedsbeskrivelse for 5. semester - Elektronik. Bilags- CD semestermaal.pdf. [4] De Danske Bilimportører, Statistik. Bilags-CD dedanskebilimportørerstatistik.pdf, december [5] Toyota A/S, AYGO specifikationer. Bilags-CD aygospecs.pdf. [6] Aalborg Universitet Institut for Planlægning Trafikforskningsgruppen, Kørselsdynamik. Bilags-CD Kørselsdynamik.pdf, [7] American Microsemiconductor, OPT704 Specifications. Bilags-CD opt704.pdf. [8] Farnell, AT91SAM7A3. Bilags-CD at91sam7a3-farnell.pdf, november [9] Farnell, dspic33fj128mc802. Bilags-CD dspic33fj128mc802-farnell.pdf, november [10] Atmel, AT91 ARM Thumb-based Microcontrollers. Bilags-CD at91sam7.pdf, december [11] Microchip Technology Inc., High-Performance, 16-bit Digital Signal Controllers. Bilags-CD pic_datablad.pdf, [12] Seeed Studio, WLS123A1M Datasheet. Bilags-CD wls123a1m.pdf, august [13] Qusay H. Mahmoud, Wireless Application Programming with J2ME and Bluetooth. Bilags-CD bluetooth1.pdf, februar [14] STMicroelectronics, Automotive fully integrated h-bridge motor driver. Bilags- CD vhn2sp30.pdf, April [15] STMicroelectronics, Automotive fully integrated h-bridge motor driver. Bilags- CD vhn3sp30.pdf, februar [16] Hitec, Announced specification of hs-5645mg standard sport digital high torque servo. Bilags-CD hitec5645mg.pdf. 125

126 [17] Tom Pedersen, PM DC-motor. Bilags-CD slidesengmm5.pdf, efterår [18] Gene F. Franklin, J. David Powell & Abbas Emami-Naeini SFeedback Control of Dynamic Systems, 6. udgave. Pearson Education, Inc., [19] Hitec, pwm frequency. Bilags-CD mailhitec.pdf, november [20] Datasensor, Ultrasonic sensors. Bilags-CD u18.pdf, januar [21] Gruppe 508, Accelerationstest. Bilags-CD accelerationstest.zip, oktober [22] Gruppe 508, Leader software. Bilags-CD mappen leader-kode, december [23] Gruppe 508, Member software. Bilags-CD mappen member-kode, december [24] Tom S. Pedersen, Lektor, Aalborg Universitet, [25] Simon Jensen, Edb-medarbejder, Aalborg Universitet,

127 Målejournal - Accelerationstest A Denne målerapport dokumenterer målinger foretaget på en POST5 1/10 4WD HBX- Racing Car modelbil. Målingerne er foretaget på Fredrik Bajers Vej 7 i lokale C2-104 på Aalborg Universitet den af gruppe 508. Formål Testens formål består i at undersøge bilens maksimalacceleration fra stilstand for at afgøre, hvorvidt bilen kan accelerere på samme niveau som en Toyota Aygo. Testobjekt Der vises på figur A.1 testobjektet. Figur A.1: Billede af testobjektet POST5 1/10 4WD HBX-Racing Car. 127

128 Teori På bilen er der monteret en Seeeduino Mega som måler accelerometerdata, gemmer dem lokalt, hvorefter den transmitterer dataen trådløst til computeren. Accelerometeret kan måle accelerationen i x-aksen fra -3 g til 3 g. Ved at måle accelerationen, hvor bilen accelererer fra stilstand, kan der på et plot af de målte data aflæses maksimalaccelerationen. Der forventes at accelerationen peaker kort efter start, hvorefter den aftager. Måleopstilling Figur A.2: Måleopstilling inkluderende modelbil, Seeeduino, accelerometer og trådløst interface. Anvendt udstyr Instrument Microcontroller Accelerometer Trådløs kommunikation Modelbil Fabrikant, type m.v. Seeeduino Mega ADXL330 APC220 POST5 1/10 4WD HBX-Racing Car Måleprocedure Proceduren for målingerne er som følger: 1. Rengør banen og bilens hjul for bedre vejgreb 2. Reset Seeeduino Mega så den er klar til nye målinger 3. Placer bilen ved 0 meter linien 4. Start måling ved at sende 2 via Arduino-konsollen og giv fuld gas for efterfølgende at bremse så hårdt som muligt 5. Udlæs måling til computeren ved at sende 1 via Arduino-konsollen 6. Data behandles i MATLAB 128

129 Resultater Aflæst maksimalværdi Enhed 5,7 m/s 2 6,5 m/s 2 6,0 m/s 2 6,6 m/s 2 Dermed bliver den gennemsnitlige maksimalacceleration 6,2 m /s 2 [21]. Måleusikkerheder Den største måleusikkerhed anses for at være støj fra motoren, som kan have indflydelse på præcisionen af målingerne. Der er ikke forsøgt at tage højde for usikkerheden i forsøget. 129

130

131 Målejournal Fremdriftsparametre B Denne målerapport dokumenterer målinger foretaget på en POST5 1/10 4WD HBXRacing Car s fremdriftssystem. Målingerne er foretaget på Fredrik Bajers Vej 7 i lokale C2-104 på Aalborg Universitet den af gruppe 508. Formål Denne målejournal har til formål at fastsætte et udvalg af parametre, som indgår som en del af modelleringen af fremdriftssystemet på Member. Der stræbes efter en samlet model og derfor er DC-motoren, gear samt hjulenes inertimomentet inkluderet i resultaterne af målerapporten. Teorien bygger grundlæggende på måling af motorparametre og er beskrevet i detalje i kapitel Desuden vil det interne gear blive klarlagt, ved en fysisk adskillelse af gearet. Testobjekt Figur B.1: Den aktuelle DC-motor, som benyttes til at opnå fremdrift på Member. 131

MCE9637 DeviceNet Modul

MCE9637 DeviceNet Modul Kokkedal Industripark 4 DK-2980 Kokkedal DANMARK Tlf: +45 49 18 01 00 Fax: +45 49 18 02 00 MCE9637 DeviceNet Modul MCE9637 til overførsel af status og vægt for digitale vejeceller Gælder for: PIC nr.:

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

Arbejdet på kuglens massemidtpunkt, langs x-aksen, er lig med den resulterende kraft gange strækningen:

Arbejdet på kuglens massemidtpunkt, langs x-aksen, er lig med den resulterende kraft gange strækningen: Forsøgsopstilling: En kugle ligger mellem to skinner, og ruller ned af den. Vi måler ved hjælp af sensorer kuglens hastighed og tid ved forskellige afstand på rampen. Vi måler kuglens radius (R), radius

Læs mere

Lektion 6 / Analog Arduino

Lektion 6 / Analog Arduino 1 Jeremiah Teipen: Electronic Sandwich BSPR11 Lektion 6 / Analog Arduino Mogens Jacobsen / moja@itu.dk Siden sidst 2 Har I fået nogle LEDs til at blinke? Har I brugt kontakter? Hvad har I eksperimenteret

Læs mere

Lenze Global Drive Frekvens konvertere og AC motorer Grundlæggende teori

Lenze Global Drive Frekvens konvertere og AC motorer Grundlæggende teori Frekvens konvertere og AC motorer Grundlæggende teori 1 Hvad skal Frekvens konverter bruges til Hastigheds regulering af en asynkron AC motor => Energibesparelser Mindre slidtage og vedligehold Bedre arbejdsmiljø

Læs mere

Efficient Position Updating

Efficient Position Updating Efficient Position Updating Pervasive Positioning, Q3 2010 Lasse H. Rasmussen, 20097778 Christian Jensen, 20097781 12-03-2010 1 Introduktion Denne rapport har til formål at beskrive implementeringen og

Læs mere

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan

Læs mere

SSI-9001 IP65. Installations vejledning. SSIHuset v/svane Electronic ApS. GSM fjern kontrol og alarm system

SSI-9001 IP65. Installations vejledning. SSIHuset v/svane Electronic ApS. GSM fjern kontrol og alarm system SSI-9001 IP65 GSM fjern kontrol og alarm system Installations vejledning SSIHuset v/svane Electronic ApS Vejledning Kontakt Tænd/sluk 1 - Strømforsyning: Forbundet til egen 12V / 1.5A strømforsyning (*)

Læs mere

Nortoft Electronic A/S, Sejrupvej 38, DK 7323 Give. www.nortoftelectronic.com Constant Rain 6-12

Nortoft Electronic A/S, Sejrupvej 38, DK 7323 Give. www.nortoftelectronic.com Constant Rain 6-12 Nortoft Electronic A/S, Sejrupvej 38, DK 7323 Give. www.nortoftelectronic.com Constant Rain 6-12 Funktioner: Hastighedsregulering For- og eftervanding Ur Stoptid er vist i displayet Længde af slangen Batteri

Læs mere

Mini SRP. Afkøling. Klasse 2.4. Navn: Jacob Pihlkjær Hjortshøj, Jonatan Geysner Hvidberg og Kevin Høst Husted

Mini SRP. Afkøling. Klasse 2.4. Navn: Jacob Pihlkjær Hjortshøj, Jonatan Geysner Hvidberg og Kevin Høst Husted Mini SRP Afkøling Klasse 2.4 Navn: Jacob Pihlkjær Lærere: Jørn Christian Bendtsen og Karl G Bjarnason Roskilde Tekniske Gymnasium SO Matematik A og Informations teknologi B Dato 31/3/2014 Forord Under

Læs mere

Installationsmanual. 2 Installering...6. 3 Installering SMS sender...7. 4 Installering PSTN/GSM sender...7. 5 Installering PSTN GSM konverter...

Installationsmanual. 2 Installering...6. 3 Installering SMS sender...7. 4 Installering PSTN/GSM sender...7. 5 Installering PSTN GSM konverter... CS 47 Syntax Side 2 Indholdsfortegnelse 1 Introduktion...4 1.1 Funktioner...4 1.2 Forsyning...4 1.3 PSTN support...5 1.4 GSM support...5 1.5 SMS support...5 1.6 Indgange...5 1.7 Udgange...5 1.8 Password...5

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

Læs mere

Interferens. Afstand (d interferer ) til det interfererende System. Afstand (d) mellem sender og modtager

Interferens. Afstand (d interferer ) til det interfererende System. Afstand (d) mellem sender og modtager Interferens Interferens er et alvorligt problem for short range enheder, men der er muligheder for at teste resistensen over for interferensen. I denne artikel beskrives nogle af de konsekvenser og scenarier,

Læs mere

Programmeringseksempel tl BCxxxx (Seriel)

Programmeringseksempel tl BCxxxx (Seriel) APP-NOTE 600005 Beckhoff Application Note Date: 8/28/2006 Document Status: First Draft Beckhoff Automation Aps Naverland 2, DK-2600 Glostrup Phone +45 43 46 76 20 Fax +45 43 46 63 35 Programmeringseksempel

Læs mere

Automatisk Vandingssystem

Automatisk Vandingssystem Automatisk Vandingssystem Projektdokumentation Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen - 201205713 - IKT Kasper Sejer Kristensen

Læs mere

Vejledning for TKE 01 Ver 4.01

Vejledning for TKE 01 Ver 4.01 Vejledning for TKE 01 Ver 4.01 TKE-01 er lavet specielt til at arbejde sammen med en Calyma ventilationunit med Lemmens DC-motorer. POWER ON SPJÆLD LUKKET FEJL TRYKFEJL VARME STYRING under 18 grader Temperatur

Læs mere

VLT AutomationDrive FC300. Basis tilslutning og programmerings eksempler. VLT AutomationDrive FC300

VLT AutomationDrive FC300. Basis tilslutning og programmerings eksempler. VLT AutomationDrive FC300 VLT AutomationDrive FC300 Basis tilslutning og programmerings eksempler VLT AutomationDrive FC300 Indholdsfortegnelse Forord... 3 Initialisering af frekvensomformeren... 4 Tilslutning af motorbeskyttelse...6

Læs mere

Halsslynger. Tekniske målinger af halsslyngers kvalitet

Halsslynger. Tekniske målinger af halsslyngers kvalitet Halsslynger Tekniske målinger af halsslyngers kvalitet Side 2 af 21 Indhold 1. Forord... 3 2. Målinger... 3. Beskrivelse af halsslynger... 3.1 HearIt Mobile... 3.2 HearIt all... 3.2.1 Base enheden... 3.2.2

Læs mere

STYKLISTE AP 500 MANUAL 1 1 ELEKTRONIK MODUL 2 1 SERVOMOTOR 3 1 LEDNINGSNET 5 1 AP 500 MONTERINGS KIT 5.1 1 WIRETRÆK BESLAG

STYKLISTE AP 500 MANUAL 1 1 ELEKTRONIK MODUL 2 1 SERVOMOTOR 3 1 LEDNINGSNET 5 1 AP 500 MONTERINGS KIT 5.1 1 WIRETRÆK BESLAG STYKLISTE # ANTAL BESKRIVELSE 1 1 ELEKTRONIK MODUL 2 1 SERVOMOTOR 3 1 LEDNINGSNET 5 1 AP 500 MONTERINGS KIT 5.1 1 WIRETRÆK BESLAG 5.2 3 WIRE BESKYTTER 5.3 1 KABELHOLDER 5.4 1 SPÆNDESKIVE 5.5 1 WIRETRÆK

Læs mere

Robonet Profibus Generel opsætning

Robonet Profibus Generel opsætning Side 1 af 11 Robonet Profibus Generel opsætning Side 2 af 11 Indholdsfortegnelse 1. Anvendt hard- og software samt filer... 3 2. Konfiguration af RoboNet Gateway... 4 3. Beskrivelse af data mellem PLC

Læs mere

Digital positioner type RE 3446

Digital positioner type RE 3446 Installations- og driftsvejledning IN145 Digital positioner type Indholdsfortegnelse: Side 1 Generel information 2 2 Montering og tilslutning 2 3 Idriftsættelse 3 4 Drifts funktioner 6 5 Funktions beskrivelser

Læs mere

Tilslutning- og programmeringseksempler

Tilslutning- og programmeringseksempler VLT MicroDrive FC 051 Indholdsfortegnelse Forord... 3 Oversigt effekt og styre kreds VLT MicroDrive... 4 Initialisering af frekvensomformeren... 5 Tilslutning af motorbeskyttelse... 6 Start/stop med analog

Læs mere

Styringsteknik. Et projekt i faget styringsteknik. En rapport af Rune Zaar Østergaard

Styringsteknik. Et projekt i faget styringsteknik. En rapport af Rune Zaar Østergaard Styringsteknik Et projekt i faget styringsteknik. I1 & Q1 I2 En rapport af Rune Zaar Østergaard Styringsteknik 2007 Indholdsfortegnelse 1.0 Formål...3 2.0 Indledning (min ide)... 3 3.0 Problemdefinition...

Læs mere

ErgoSafe 2005. Beskrivelse af stik og indikatorer

ErgoSafe 2005. Beskrivelse af stik og indikatorer ErgoSafe 005 Beskrivelse af stik og indikatorer Printtavlen er forsynet med en række stik og indikatorer. Denne vejledning indeholder en beskrivelse af hvert enkelt element. Den kvadratisk formede pude

Læs mere

UniLock System 10. Manual til interface fra trådløse Salto Sallis døre til UniLock. Version 1.0 Revision 150206

UniLock System 10. Manual til interface fra trådløse Salto Sallis døre til UniLock. Version 1.0 Revision 150206 UniLock System 10 Manual til interface fra trådløse Salto Sallis døre til UniLock Projekt PRJ177 Version 1.0 Revision 150206 Interfaceprint som giver mulighed for at styre op til 4, 8 eller 16 online trådløse

Læs mere

MVT800 Vejledning. Forord. Website: www.smartgps.dk Kontakt: salg@smartgps.dk. Tillykke med din nye GPS tracker MVT800.

MVT800 Vejledning. Forord. Website: www.smartgps.dk Kontakt: salg@smartgps.dk. Tillykke med din nye GPS tracker MVT800. MVT800 Vejledning Forord Tillykke med din nye GPS tracker MVT800. Denne manual viser hvordan du installerer enheden korrekt. Sørg for at læse denne manual grundigt, før du bruger dette produkt. Brugermanualen

Læs mere

MVT380 Vejledning. Forord. Website: www.smartgps.dk Kontakt: salg@smartgps.dk. Tillykke med din nye GPS tracker MVT380.

MVT380 Vejledning. Forord. Website: www.smartgps.dk Kontakt: salg@smartgps.dk. Tillykke med din nye GPS tracker MVT380. MVT380 Vejledning Forord Tillykke med din nye GPS tracker MVT380. Denne manual viser hvordan du installerer enheden korrekt. Sørg for at læse denne manual grundigt, før du bruger dette produkt. Brugermanualen

Læs mere

3. Computerens opbygning.

3. Computerens opbygning. 3. Computerens opbygning. Computere er konstrueret med henblik på at skulle kunne behandle og opbevare data og det er de som nævnt i noterne om Bits og Bytes vældig gode til. Som overordnet model for computere

Læs mere

X88S. SMS fjernstyring til sommerhuse

X88S. SMS fjernstyring til sommerhuse X88S SMS fjernstyring til sommerhuse X88s er en GSM/SMS baseret fjernstyring med: 6 indgange 8 relæudgange 2 temperaturfølere Billig i drift, intet abonnement. Kan køre på taletidskort. Nem og hurtig montering.

Læs mere

Fra Computer til Virkelighed. TPE-kursus Elektroniske Systemer P1

Fra Computer til Virkelighed. TPE-kursus Elektroniske Systemer P1 Fra Computer til Virkelighed TPE-kursus Elektroniske Systemer P1 Fra Computer til Virkelighed En kort introduktion til kurset Systems Engineering Projektfaser Opsamling og opgave Om kurset Mål: at I lærer

Læs mere

Diagnostic og Toolbox Instruktion. www.lp.dk Lindgaard Pedersen A/S. Rev. 1.0 Side 1 / 14

Diagnostic og Toolbox Instruktion. www.lp.dk Lindgaard Pedersen A/S. Rev. 1.0 Side 1 / 14 EL-PAS -Cruise II ANDROID Diagnostic og Toolbox Instruktion LP www.lp.dk Lindgaard Pedersen A/S Side 1 / 14 Indhold Denne vejledning indeholder instruktion til brug af Cruise Android App, hentet fra Android

Læs mere

Webstech Trådløs Sensor Overvågning. Brugervejledning

Webstech Trådløs Sensor Overvågning. Brugervejledning Webstech Trådløs Sensor Overvågning Brugervejledning Besøg venligst vores hjemmeside for senest opdaterede udgave eller for hjælp Support Dato Version Ændringer 1. Januar 2013 1.0 Nyt layout for 2013 kunder

Læs mere

Enes Kücükavci Roskilde Tekniske Gymnasium 20 05 2010 Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C

Enes Kücükavci Roskilde Tekniske Gymnasium 20 05 2010 Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C Indhold Indledning(Enes)... 2 Problemstilling (Enes)... 2 Teori (Enes)... 2 Løsningsforslag (Enes)... 4 RFID relæet (Mathias)... 6 Krav (Enes og Mathias)... 8 Målgruppen (Mathias)... 8 Rekvirent... 8 Implementering(Mathias)...

Læs mere

WT-1011RC Programmer User Guide

WT-1011RC Programmer User Guide WT-1011RC Programmer User Guide Firmware Version 1.9 Note: 1. Information in this manual is subject to change without notice and does not represent a commitment of manufacturer. 2. Manufacturer shall not

Læs mere

A LED Santiago 16W HF sensor og Master / Slave

A LED Santiago 16W HF sensor og Master / Slave A LED Santiago 16W HF sensor og Master / Slave A LED Santiago LED lampe med soft dæmp er forsynet med HF sensor og master/slave funktion. Santiago kan trådløst kommunikere mellem Master og Slave.aled.dk

Læs mere

KNX løsninger til. Erhvervsbygninger. KNX Automatisk dagslysregulering med foldedørsstyring og manuel dæmp

KNX løsninger til. Erhvervsbygninger. KNX Automatisk dagslysregulering med foldedørsstyring og manuel dæmp KNX løsninger til Erhvervsbygninger KNX Automatisk dagslysregulering og manuel dæmp Tekniske specifikationer Funktioner KNX Automatisk dagslysregulering Styringen tager udgangspunkt i et stort lokale (A

Læs mere

BRUGSANVISNING BY0011 H610 CAL

BRUGSANVISNING BY0011 H610 CAL BRUGSANVISNING BY0011 CAL H610 FUNKTIONSOVERSIGT Gang reserve indikation Overopladning sikkerheds funktion Utilstrækkelig opladnings advarsels funktion (to-sekunders interval bevægelse) Energibesparende

Læs mere

Vi vil alligevel forsøge at få brugerne til at tænke på om der er brug for at lyset er tændt og om vi kan få dem til at slukke efter sig.

Vi vil alligevel forsøge at få brugerne til at tænke på om der er brug for at lyset er tændt og om vi kan få dem til at slukke efter sig. Adfærds datalogning Indholdsfortegnelse Introduktion... 2 Problemformulering... 2 Udvikling af dataloggerne... 2 Sensorer... 5 Lysmåling... 6 Bevægelses måling... 6 Opsætning af loggerne... 8 PIR... 8

Læs mere

DM13-1. Obligatoriske Opgave - Kredsløbs design

DM13-1. Obligatoriske Opgave - Kredsløbs design DM13-1. Obligatoriske Opgave - Kredsløbs design Jacob Christiansen moffe42@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense 1. Opgaven Opgaven består i at designe et kredsløb,

Læs mere

Programmering af CS7002 GSM/GPRS modul Version 5

Programmering af CS7002 GSM/GPRS modul Version 5 Comfort CSx75 Programmering af CS7002 GSM/GPRS modul Version 5 Introduktion CS7002 GSM/GPRS modulet er en fuldt integreret enhed som kan sende alarmer trådløst enten via GSM eller GPRS nettet. Der er desuden

Læs mere

AKG198 monteringsguide

AKG198 monteringsguide G198 alarm: Alarm med to håndsendere, ultrasoniske kabinesensorer og 115 db sirene med batteri back-up Bemærk: G198 kan kun monteres i biler med centrallåssystemer som enten er stelstyret eller plusstyret.

Læs mere

KONSTANT REGN 6 BETJENINGSVEJLEDNING VERSION 18 DATO 20-1-95 UDLÆSNING I DISPLAY. - Indtrækshastighed. - Total vandingstid

KONSTANT REGN 6 BETJENINGSVEJLEDNING VERSION 18 DATO 20-1-95 UDLÆSNING I DISPLAY. - Indtrækshastighed. - Total vandingstid UDLÆSNING I DISPLAY - Indtrækshastighed - Total vandingstid - Længde af den udtrukne slange - For- og eftervanding valgt - Tryk sensor - Stop sensor - Hastigheds sensor - Motor 1, motor der regulere turbinen

Læs mere

Guide til indbygget PLC Teco 7300 CV frekvensomformere

Guide til indbygget PLC Teco 7300 CV frekvensomformere Guide til indbygget PLC Teco 7300 CV frekvensomformere Juni 2005 Indholdsfortegnelse. Interface...3 Installering af PC-program...3 Forbindelse til frekvensomformer...4 Gem parameteropsætning / PLC-program...7

Læs mere

Frekvensbestemmelse. HWP I1 Kursusarbejde Forår 2007

Frekvensbestemmelse. HWP I1 Kursusarbejde Forår 2007 HWP I1 Kursusarbejde Forår 2007 Søren Riis, 3024 Vitus Bering Danmark 31 05 2007 University College Vitus Bering Danmark Teknologi og Managementdivisionen Titel: Frekvensbestemmelse Tema: Hardwareprogrammering

Læs mere

15. Digital kode vælger (hvid DIP switch) 16. Kanal vælger (gul DIP switch) 17. Batteri hus

15. Digital kode vælger (hvid DIP switch) 16. Kanal vælger (gul DIP switch) 17. Batteri hus Babyalarm MBF 8020 DK 1.. INDHOLD 1 x sender med integreret oplader, 1 x modtager, 1x ladestation for oplader 2 x strømforsyninger, 2 x specielle opladte batteri pakker 1 x Bruger manual 2.. KOMPONENTER

Læs mere

Manual IHC Kompatibelt SMS modem. Generel info:... 2 Controllere:... 2 Manualen... 2 Komandoer syntax... 2 Lysdioder... 2 Tilslutning:...

Manual IHC Kompatibelt SMS modem. Generel info:... 2 Controllere:... 2 Manualen... 2 Komandoer syntax... 2 Lysdioder... 2 Tilslutning:... Manual IHC Kompatibelt SMS modem. Modemmet er kompatibelt med LK IHC visual2 controllere. IHC er registreret varemærke hos LK, Schneider Electric. Generel info:... 2 Controllere:... 2 Manualen... 2 Komandoer

Læs mere

WebAccess og dets moduler for ECL Comfort 200/300

WebAccess og dets moduler for ECL Comfort 200/300 for ECL Comfort 200/300 Anvendelse WebAccess muliggør: Fjernstyring og -overvågning via internet/ intranet Konfigurerbare alarmindstillinger og notifikation af eksterne modtagere via e-mail/sms Datalogning

Læs mere

Blue Rogue Remote Daniel Christoffersen og Asbjørn Baagø Ingeniørhøjskolen i Århus, ITWEM1 04-06-2009

Blue Rogue Remote Daniel Christoffersen og Asbjørn Baagø Ingeniørhøjskolen i Århus, ITWEM1 04-06-2009 Daniel Christoffersen og Asbjørn Baagø Ingeniørhøjskolen i Århus, ITWEM1 04-06-2009 Indholdsfortegnelse Indholdsfortegnelse INDHOLDSFORTEGNELSE... 1 INDLEDNING OG SYSTEMOVERSIGT... 2 HARDWARE-DESIGN...

Læs mere

3. HYDRUS koldtvandsmåler

3. HYDRUS koldtvandsmåler 3. HYDRUS koldtvandsmåler Diehl Metering ApS CVR 3374 8221 Glentevej 1 6705 Esbjerg Ø 7613 4300 info-dmdk@diehl.com www.diehl-metering.dk Side 1 af 6 HYDRUS ultralydsbaseret koldtvandsmåler Med en batterilevetid

Læs mere

IsoBar ControlModul. Brugsanvisning. Indhold. Introduktion og tekniske specifikationer 1. Generel beskrivelse af display og tastatur 2

IsoBar ControlModul. Brugsanvisning. Indhold. Introduktion og tekniske specifikationer 1. Generel beskrivelse af display og tastatur 2 IsoBar ControlModul Brugsanvisning Indhold Introduktion og tekniske specifikationer 1 Generel beskrivelse af display og tastatur 2 Indstilling af ISOBAR drift 3 Indstilling af MANUEL drift 4 Indstilling

Læs mere

2/3 Akset digital tæller

2/3 Akset digital tæller SERIE Z59E 2/3 Akset digital tæller for Elgo Magnetisk målebånd og / eller Encoder ELGO - ELECTRIC Gerätebau und Steuerungstechnik GMBH D - 78239 Rielasingen, Postfach 11 30, Carl - Benz - Strafle 1 Telefon

Læs mere

BRUGERVEJLEDNING VANDSENSOR

BRUGERVEJLEDNING VANDSENSOR BRUGERVEJLEDNING VANDSENSOR Side 1 til vandsensor Introduktion Vandsensoren er designet til at opdage vand, f.eks. ved oversvømmelser i din bolig. Den kan placeres alle steder, hvor der kan være risiko

Læs mere

MiniPlex-41USB NMEA-0183 multiplexer Betjeningsvejledning

MiniPlex-41USB NMEA-0183 multiplexer Betjeningsvejledning MiniPlex-41USB NMEA-0183 multiplexer Betjeningsvejledning MiniPlex-41USB, V1.1 Firmware V1.20 SeaTech, 2002 Indledning: MiniPlex-41USB er en 4-kanals data multiplexer, som giver mulighed for tilslutning

Læs mere

GSM port styring 400 brugere

GSM port styring 400 brugere 1 GSM port styring 400 brugere SMS alarm, temperatur og fjernkontrol system 16 brugere til at modtage alarmbeskeder via SMS Software vejledning SSIHuset Svane Electronic ApS Arildsvej 27, Gråmose, DK-7442

Læs mere

BAS 914S/929S Datablad

BAS 914S/929S Datablad BAS 914S/929S BA Systems Petershvilevej 1 DK-3200 Helsinge http://www.basystems.dk BAS 914S/929S tilhører en familie af programmerbare kontrollere der er målrettet til mindre samt medium størrelse installationer.

Læs mere

Nortoft Electronic A/S Sejrupvej 38 Sejrup DK-7323 Give Denmark

Nortoft Electronic A/S Sejrupvej 38 Sejrup DK-7323 Give Denmark Konstant Regn 7 Brugsanvisning Version 4.5. 1 1-04. Funktioner: Hastighedsregulering For og eftervanding Total vandingstid Længde af slangen Aktuel hastighed Batteri volt Laderegulator Tryksensor Stopsensor

Læs mere

Delfi Connect. Bruger vejledning 1. TILSLUTNING...2 2. INSTALLATION...3 3. MENUSTRUKTUR...4

Delfi Connect. Bruger vejledning 1. TILSLUTNING...2 2. INSTALLATION...3 3. MENUSTRUKTUR...4 Delfi Connect Bruger vejledning INDHOLD 1. TILSLUTNING...2 2. INSTALLATION...3 3. MENUSTRUKTUR...4 TOOLS...4 4. KOMMUNIKATIONS OPSÆTNING...5 5. GENEREL OPSÆTNING OG DATA KONFIGURATION...6 RECORD...8 BASAL

Læs mere

Hvor hurtigt kan du køre?

Hvor hurtigt kan du køre? Fart Hvor hurtigt kan du køre? I skal nu lave beregninger over jeres testresultater. I skal bruge jeres testark og ternet papir. Mine resultater Du skal beregne gennemsnittet af dine egne tider. Hvilket

Læs mere

Analyseopgaver. Forklar kredsløbet. Forklar kredsløbet. 3.0 DC Adapter med Batteri Backup.

Analyseopgaver. Forklar kredsløbet. Forklar kredsløbet. 3.0 DC Adapter med Batteri Backup. Analyseopgaver. Simpel NiMH lader. Forklar kredsløbet.. Infrarød Remote Control tester Forklar kredsløbet.. DC Adapter med Batteri Backup. Der bruges en ustabiliseret Volt adapter. Den giver normalt ca.

Læs mere

Intelligent Solar Charge Controller Solar30 User s Manual

Intelligent Solar Charge Controller Solar30 User s Manual OM Solceller Intelligent Solar Charge Controller Solar30 User s Manual Læs venligst denne instruktion grundigt igennem, før du bruger den. 1 Produkt introduktion: Denne controller er en slags intelligent

Læs mere

Tryk Transmitter Model LV52X til trykmåling og overvågning med alarm af Lean Process Ventilation

Tryk Transmitter Model LV52X til trykmåling og overvågning med alarm af Lean Process Ventilation Tryk Transmitter Model LV52 til trykmåling og overvågning med alarm af Lean Process Ventilation Installationsvejledning for LV52 Manualen indeholder: Generel introduktion til Lean Process Ventilation Oversigt

Læs mere

Modulationer i trådløs kommunikation

Modulationer i trådløs kommunikation Modulationer i trådløs kommunikation Valg af modulationstype er et af de vigtigste valg, når man vil lave trådløs kommunikation. Den rigtige modulationstype kan afgøre, om du kan fordoble din rækkevidde

Læs mere

Rejsekort A/S idekonkurence Glemt check ud

Rejsekort A/S idekonkurence Glemt check ud Rejsekort A/S idekonkurence Glemt check ud 9. marts 2015 1 Indhold 1 Introduktion 4 1.1 Problembeskrivelse........................ 4 1.2 Rapportens opbygning...................... 4 2 Ordliste 5 3 Løsning

Læs mere

Brugsanvisning Olympia Babyalarm MBF 3333

Brugsanvisning Olympia Babyalarm MBF 3333 Brugsanvisning Olympia Babyalarm MBF 3333 1 Kære kunde Vi er meget glade for, at du valgt at købe Olympia babyalarm 3333 hos os. Skulle der imod alt forventning være en teknisk fejl, bedes du bemærke dig

Læs mere

AP800 Installations manual til: Ssang Yong Rexton XDI-270 / E-230

AP800 Installations manual til: Ssang Yong Rexton XDI-270 / E-230 AP800 Installations manual til: Ssang Yong Rexton XDI-270 / E-20 AS Marketing CC00000100-MA / Version 5 ABE 90864 Maj 2006 e1 024151 2 Advarsel! Forkert kabel tilslutning kan resultere i kortslutninger,

Læs mere

R100APM Premier Rower COMPUTER

R100APM Premier Rower COMPUTER R100APM Premier Rower COMPUTER 1 LCD Display 130 x 58.5mm Liquid Crystal Display PULSE Display Viser din puls per minut (bmp) SPM Display Antal træk i minuttet LEVEL Display 1~16 Modstands-niveau BRUGER

Læs mere

AS-i Safety. Innovations in safety

AS-i Safety. Innovations in safety AS-i Safety Innovations in safety AS-i Safety nu er sikkerhed nemt! Alle følere, I/O-enheder og PLC forbindes til en valgfri plads på samme kabel og de kan let flyttes efter behov. Enhedernes funktion

Læs mere

Telefoni og Telefoni begreber

Telefoni og Telefoni begreber Telefoni før og nu Telefoni og Telefoni begreber Den analoge transmission Hver linieforstærker undervejs introducer støj. (Hvid støj) Dette kaldes den akkumulerede støj. Den digitale transmission Hver

Læs mere

Billede. Boksventilator BVB. Generel funktionsbeskrivelse

Billede. Boksventilator BVB. Generel funktionsbeskrivelse Driftvejledning snr: PAR-550-SYS-DK-041223 F System beskrivelse PAR 550 Konstant tryk regulering Beskrivelse Billede Forsyning 1x230V+PE Konstanttrykregulering plug & play RS 485 kontrolleret PAR-550-SYS

Læs mere

OBD-Stik Tester manual (OST)

OBD-Stik Tester manual (OST) OBD-Stik Tester manual (OST) OBD-stik testeren har 7 hovedfunktioner 1. Udfører en sikkerhedskontrol på OBD stik, til lastbil (24V) eller personbil (12V), før diagnosetester tilsluttes. Der testes for

Læs mere

Kommunikationsprotokoller Summit06 worksession. Lisa Wells Datalogisk Institut Aarhus Universitet

Kommunikationsprotokoller Summit06 worksession. Lisa Wells Datalogisk Institut Aarhus Universitet Kommunikationsprotokoller Summit06 worksession Datalogisk Institut Aarhus Universitet Plan Kort introduktion til protokoller Protokoller i ISIS Katrinebjerg projekter Internet-baseret trådløs telefoni

Læs mere

Programmeringseksempel til CX/IPC

Programmeringseksempel til CX/IPC APP-NOTE 610004 Beckhoff Application Note Date: 7/17/2009 Document Status: 1.1 Beckhoff Automation Aps Naverland 2, DK-2600 Glostrup Phone +45 43 46 76 20 Fax +45 43 46 63 35 Programmeringseksempel til

Læs mere

SSI 6000.0400 GSM Fjernbetjenings system for porte/garage døre

SSI 6000.0400 GSM Fjernbetjenings system for porte/garage døre 1 SSI 6000.0400 GSM Fjernbetjenings system for porte/garage døre Vejledning SSIHuset v/svane Electronic ApS Arildsvej 27, Gråmose, DK-7442 Engesvang mail: ssi@svane-el.dk http: svane-el.dk 2 System for

Læs mere

SSI GSM samtaleanlæg

SSI GSM samtaleanlæg SSI GSM samtaleanlæg GSM baseret samtaleanlæg og adgangskontrol Installation og bruger vejledning Bestillings nummer: 26008005 SSIHuset Svane Electronic Arildsvej 27, Gråmose, DK-7442 Engesvang ssi@svane-el.dk

Læs mere

Optimering af fraværsregistrering

Optimering af fraværsregistrering Journal Optimering af fraværsregistrering Eksamensprojekt i Programmering C, klasse 3.4, 2011 AFLEVERET 09-05-2014 Indhold Abstract... Fejl! Bogmærke er ikke defineret. Problemformulering... 2 Produktet...

Læs mere

Bluetooth Art. Nr.: 460300. Brugermanual

Bluetooth Art. Nr.: 460300. Brugermanual BT 1000 Bluetooth Art. Nr.: 460300 Brugermanual BT1000v.2 User Man. DANfeb11 Conlan ApS - Speditørvej 2A - DK-9000 Aalborg - Tlf.: +45 7240 6003 - Fax: +45 9632 0022 www.conlan.dk - info@conlan.dk Side

Læs mere

Svendeprøve Projekt Tyveri alarm

Svendeprøve Projekt Tyveri alarm Svendeprøve Projekt Tyveri alarm Påbegyndt.: 8/2-1999 Afleveret.: 4/3-1999 Projektet er lavet af.: Kasper Kirkeby Brian Andersen Thomas Bojer Nielsen Søren Vang Jørgensen Indholds fortegnelse 1. INDLEDNING...3

Læs mere

Logbog. Torsdag d. 28. marts: Onsdag d. 4. april: Onsdag d. 11. april: Torsdag d. 12. april: Fredag d. 13. april:

Logbog. Torsdag d. 28. marts: Onsdag d. 4. april: Onsdag d. 11. april: Torsdag d. 12. april: Fredag d. 13. april: Logbog Torsdag d. 28. marts: Ole og Steffen har i dag arbejdet på problemformuleringen indenfor den merkantile del af projektet. Det er altid svært at overskue hvad der skal med og hvad man skal undlade,

Læs mere

RÅDETS DIREKTIV 93/33/EØF af 14. juni 1993 om tyverisikring på to- og trehjulede motordrevne køretøjer. (EFT L 188 af 29.7.1993, s.

RÅDETS DIREKTIV 93/33/EØF af 14. juni 1993 om tyverisikring på to- og trehjulede motordrevne køretøjer. (EFT L 188 af 29.7.1993, s. 1993L0033 DA 11.05.1999 001.001 1 Dette dokument er et dokumentationsredskab, og institutionerne påtager sig intet ansvar herfor B RÅDETS DIREKTIV 93/33/EØF af 14. juni 1993 om tyverisikring på to- og

Læs mere

Dr.Heron med tilslutningsprint DCT

Dr.Heron med tilslutningsprint DCT Dr.Heron med tilslutningsprint DCT TEMPERATUR - STYRING 1.0 El-tilslutning Kabler INSTALLATION Anbefalet kabeltype: YSY-JZ. Temperaturføler- og styrespændingssignaler fremføres i separat, skærmet kabel

Læs mere

Jørn Iversen Rødekro Aps. Hydevadvej 48 Hydevad DK-6230 Rødekro Tel.: +45 74669242 Fax.: +45 74669294 e-mail.: iversen@ji.dk Web.: www.ji.

Jørn Iversen Rødekro Aps. Hydevadvej 48 Hydevad DK-6230 Rødekro Tel.: +45 74669242 Fax.: +45 74669294 e-mail.: iversen@ji.dk Web.: www.ji. 1 2 INDHOLDSFORTEGNELSE Brugervejledning Side 3 Brugsanvisning Side 4 Tilpasning af cyklen & tilbehør Side 5 og 6 Det elektriske system Side 7 Fejlmelding Side 8 Periodisk eftersyn af cyklen Side 9 3 BRUGERVEJLEDNING

Læs mere

M4EAU1. Lektion 11-12

M4EAU1. Lektion 11-12 M4EAU1 Lektion 11-12 Denne og næste lektions program Asynkronmotoren Lidt opgaveregning Beregning af starttider Lidt mere opgaveregning Asynkronmotoren (1) Lærebogsmateriale (ligger under fildeling) Afsnit

Læs mere

D-Star. En moderne kommunikations form

D-Star. En moderne kommunikations form D-Star En moderne kommunikations form Indhold Problemformulering... 2 Starten på D-Star... 3 Om D-Star nettet... 4 Udstyr til D-Star... 8 Kilde angivelse... 10 Konklusion... 11 1 Problemformulering Jeg

Læs mere

Automatisering af hovercraft. Automation of a hovercraft

Automatisering af hovercraft. Automation of a hovercraft Automation of a hovercraft Niels Boye Petersen s021960 Eksamensprojekt vejledere: Ole Ravn, Lektor, Sektionsleder, DTU Elektro, Civ. Ing. og Ph.d. Nils Axel Andersen, Lektor, DTU Elektro, Civ. Ing. og

Læs mere

1. Kræfter. 2. Gravitationskræfter

1. Kræfter. 2. Gravitationskræfter 1 M1 Isaac Newton 1. Kræfter Vi vil starte med at se på kræfter. Vi ved fra vores hverdag, at der i mange daglige situationer optræder kræfter. Skal man fx. cykle op ad en bakke, bliver man nødt til at

Læs mere

!"#$% $& $ $&" ' $ '( " )& $% * %+$& )&" $&, +-$&+ % $+$&+ $%%. /0123 1 4 5 6 78 9:;: ? @ 1 A B10? C C0DEF D G7 H=I8 G7II78 J7: G= : K 7 I I77 77 77 I 77II 7 7 7: ; 7 I 7 I I 7< 7 I 7 7 7 I= 78 II77

Læs mere

Brugervejledning. Fjernbetjening display MT-5

Brugervejledning. Fjernbetjening display MT-5 Brugervejledning Fjernbetjening display MT-5 OVERSIGT Det digitale fjernbetjening display, der viser dig anlæggets driftsinformation, system fejl og selvdiagnostik udlæsning. Oplysningerne vises på et

Læs mere

Betjeningsvejledning. SMS modul

Betjeningsvejledning. SMS modul Betjeningsvejledning SMS modul HW: P052A.0517 / MC35i SW: P052ASMS.070628 LBJ electronic, DK-7100 Vejle Før du tager dit nye SMS modul i brug, er det vigtigt, at du gennemlæser denne vejledning, og udfører

Læs mere

KNAPPER OG TILSLUTNINGER PÅ BAGSIDEN AF SOUNDBAR KNAPPER OVEN PÅ SOUNDBAR OG FJERNKONTROL. EQ-kontakt. Tænd/slukknap. Surroundknap.

KNAPPER OG TILSLUTNINGER PÅ BAGSIDEN AF SOUNDBAR KNAPPER OVEN PÅ SOUNDBAR OG FJERNKONTROL. EQ-kontakt. Tænd/slukknap. Surroundknap. KNAPPER OG TILSLUTNINGER PÅ BAGSIDEN AF SOUNDBAR KNAPPER OVEN PÅ SOUNDBAR OG FJERNKONTROL EQ-kontakt Tænd/ slukknap Kildeknap Lydstyrkeknapper Surroundknap Bluetoothknap Optisk indgangsstik Auxindgangsstik

Læs mere

HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING

HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING KOMMANDOOVERSIGT TIL BRUG PÅ WINDOWS COMPUTERE MED JAWS INTRODUKTION: Brailliant displays har indbygget BlueTooth og USB. BlueTooth anvendes til at forbinde

Læs mere

Maskiner og robotter til hjælp i hverdagen

Maskiner og robotter til hjælp i hverdagen Elektronik er en videnskab og et fagområde, der beskæftiger sig med elektriske kredsløb og komponenter. I daglig tale bruger vi også udtrykket elektronik om apparater, der udnytter elektroniske kredsløb,

Læs mere

Vejledende opgaver i kernestofområdet i fysik-a Elektriske og magnetiske felter

Vejledende opgaver i kernestofområdet i fysik-a Elektriske og magnetiske felter Oktober 2012 Vejledende opgaver i kernestofområdet i fysik-a Elektriske og magnetiske felter Da læreplanen for fysik på A-niveau i stx blev revideret i 2010, blev kernestoffet udvidet med emnet Elektriske

Læs mere

Løsninger til udvalgte opgaver i opgavehæftet

Løsninger til udvalgte opgaver i opgavehæftet V3. Marstal solvarmeanlæg a) Den samlede effekt, som solfangeren tilføres er Solskinstiden omregnet til sekunder er Den tilførte energi er så: Kun af denne er nyttiggjort, så den nyttiggjorte energi udgør

Læs mere

LW313 Sweex Wireless 300N Adapter USB

LW313 Sweex Wireless 300N Adapter USB LW313 Sweex Wireless 300N Adapter USB Bemærk venligst! Udsæt ikke Sweex Wireless 300N Adapter USB for ekstreme temperaturer. Placér ikke adapteren i direkte sollys eller i nærheden af radiatorer eller

Læs mere

tube tube Brugermanual Internet Radio Digital Radio OXX Digital 2010 1 Follow OXX DIGITAL on twitter Follow OXX DIGITAL Scandinavian

tube tube Brugermanual Internet Radio Digital Radio OXX Digital 2010 1 Follow OXX DIGITAL on twitter Follow OXX DIGITAL Scandinavian N E X T G E N E R A T I O N R A D I O tube Brugermanual Internet Radio tube OXX Digital 2010 1 Follow OXX DIGITAL on twitter Follow OXX DIGITAL Scandinavian on facebook Design Indhold Oversigt...3 Front

Læs mere

Vejledning til GSM alarm sender

Vejledning til GSM alarm sender 1 Vejledning til GSM alarm sender SSIHuset Svane Electronic 2 Sikkerheds tips Brug kun dette produkt som foreskrevet her i vejledningen. Installer ikke senderen tæt på vand, fugt eller direkte varme. Forbind

Læs mere

ISC2100 kan kommunikere via RS232, RS485, Ethernet og LON, bruge USB enhed og USB host.

ISC2100 kan kommunikere via RS232, RS485, Ethernet og LON, bruge USB enhed og USB host. DK-1 ISC2100 er en frit programmerbar regulator, som er skalérbar til styring af helt små og op til meget store anlæg. ISC2100 kan eksempelvis anvendes til styring af varme, brugsvand og ventilation, samt

Læs mere

I/O Extender - installations- og brugervejledning

I/O Extender - installations- og brugervejledning DK I/O Extender - installations- og brugervejledning Indholdsfortegnelse side 1. Applikation og funktion.....................................................3 1.1. LED lys diode........................................................3

Læs mere

Arduinostyret klimaanlæg Afsluttende projekt programmering C

Arduinostyret klimaanlæg Afsluttende projekt programmering C Arduinostyret klimaanlæg Afsluttende projekt programmering C Udarbejdet af: Mathias R W Sørensen, klasse 3.4 Udleverings-dato: 02-03-2012 Afleverings-dato: 11-05-2012 Programmeringvejleder: Karl G. Bjarnason

Læs mere