p5 projekt institut for elektroniske systemer aalborg ...kom.aau.dk/group/10gr501/rapport.pdf · og...
Post on 26-Dec-2019
3 Views
Preview:
TRANSCRIPT
Autonom efterfølgerbil
P5 Projekt
Gruppe 501
Institut for Elektroniske Systemer
Aalborg Universitet
Den 20.12.10
Department of:
Electronic Systems
Fredrik Bajers Vej 7DK-9220 Aalborg ØstPhone: 96 35 86 00Internet: es.aau.dk
This project aims to construct an autonomouscar, with the ability to pursue a car. The leadingcar is denoted target, and the pursuing car isdenoted stalker throughout the report. The twocars are R/C vehicles, where target is control-led manually by remote control, and the stalkerfollows autonomously.Stalkers ability to locate target, is based upontriangular calculations. The position can becalculated from two distances between the cars.This is implemented by adding an ultrasonictransmitter and a radio transmitter on the tar-get. Stalker is made autonomous by implemen-ting a microcontroller, ultrasonic receivers and aradio receiver. An attempt to implement a spe-edregulator was made, which later turned out tomake the regulation unstable and was removed,since it could be spared.Based on derived mathematic models for the carsmotion pattern, two proportional controllers areconstructed. These regulators are controlling thespeed and direction of stalker, according to themeasured distance and angle between the twocars.A wireless connection between stalker and a PCis implemented by WiFi, where an interface ma-kes it possible to communicate with stalker. Thesoftware implemented on the microcontroller iscontrolled by a nonpreemtive kernel, which assu-res that all deadlines are met.Acceptance testing have proved that stalker isable to follow target at a speed of 5 km/h. Howe-ver collisions between the two cars may occur byrapidly decellerating target.
Synopsis:
Title:Autonomous Pursuing Car
Theme:Distributed embedded systems ininteraction with physical systems
Project period:September 2. - December 20., 2010
Project group:10gr501 - 5. semester bachelor
Members of the group:Anders WittendorThomas LaursenPalle RavnMorten Kock RævdalHenrik Juul PedersenMark Jespersen
Supervisor:Tom S. PedersenKirsten M. Kristensen
Number of copies: 10
Number of pages: 140
Attachments: CD
Appendices: 5
Project completed: December 20, 2010
Contents of this report is freely available, but publication (with specication of source)
may only be done upon arrangement with the authors.
Institut for:
Elektroniske Systemer
Fredrik Bajers Vej 79220 Aalborg ØstTelefon: 96 35 86 00Internet: es.aau.dk
I dette projekt designes en forfølgerbil(stalker),som autonomt skal efterfølge en bil(target). Deranvendes to fjernstyrede biler. Target styres ma-nuelt med fjernkontrol, og stalker følger auto-nomt efter.Der implementeres på target en ultralyds- og enradiosender, mens der på stalker implementeresmikrocontroller, en radiomodtager og to ultra-lydsmodtagere. Der bestemmes vha. trekantsbe-regninger afstand og vinkel mellem de to biler.Der blev forsøgt implementeret en hastighedsre-gulator på stalker, som blev fjernet, da den gjor-de reguleringen ustabil og kunne undværes.Der bestemmes to proportional-regulatorer ud fraopstillede modeller for stalkers bevægelse. Disseregulerer på stalkers hastighed og retning ud fraafstand og vinkel mellem de to biler.Der er implementeret trådløs kommunikationvha. WiFi, så kommunikation mellem stalker ogPC er mulig ved anvendelse af tilhørende bruger-ade. Softwaren implementeres på mikrocontrol-leren, som ved hjælp af en non-preemptive kernesørger for, at alle opgaver kører indenfor valgtedeadlines.Det viser sig, ved accepttest, at stalker kan ef-terfølge target ved en hastighed på 5 km/t. Derkan dog ved pludselig standsning af target opståsammenstød.
Synopsis:Titel:
Autonom efterfølgerbil
Tema:Distribuerede indlejrede systemer isamspil med fysiske systemer
Projektperiode:3. september - 20. december, 2010
Projektgruppe:10gr501 - 5. semester bachelor
Medlemmer af gruppen:Anders WittendorThomas LaursenPalle RavnMorten Kock RævdalHenrik Juul PedersenMark Jespersen
Vejleder:Tom S. PedersenKirsten M. Kristensen
Antal kopier: 10
Antal sider: 140
Bilag: CD
Appendikser: 5
Projekt afsluttet: 20. december, 2010
Rapportens indhold er frit tilgængeligt, men oentliggørelse (med kildeangivelse)
må kun ske efter aftale med forfatterne.
Forord
Denne rapport er udarbejdet som en del af et 5. semester projekt på Aalborg Universitet.Rapporten er udarbejdet af seks studerende på linjen Elektronik og IT ved det Ingeniør-,Natur- og Sundhedsvidenskabelige Fakultet, i perioden fra d. 1. september til d. 20. deceme-ber 2010. Temaet for semesteret er Distribuerede indlejrede systemer i samspil med fysiskesystemer.
Projektet omhandler konstruktionen af hardware og software til en autonom forfølgerbil. Deropstilles fysiske modeller for bilens bevægelse, konstrueres hardware til implementering afet realtids system og sensorer på bilen, og til sidst udvikles der software til regulering afbilen. Derved bliver den erhvervede viden fra semesteret anvendt i projektet. Rapporten erhenvendt til læsere med kendskab til analog og digital teknik samt programmeringssprogeneC og PHP, men kan også læses af andre interesserede.
Kildehenvisninger fremstår i rapporten vha. Harvard metoden. Dvs. at kildehenvisningernefremstør på følgende måde: [forfatters efternavn/rma, årstal]. Der er vedlagt en litteraturli-ste, hvor de anvendte kilder fremgår. Der er vedlagt kredsløbsdiagrammer i appendix bagersti rapporten.
Der er vedlagt et CD-bilag, som refereres således: sti/ . CD'en indeholder: software kilde-kode, doxygen dokumentation, lm dokumentation af accepttest samt datablade for kompo-nenter. Der forendes yderlige en digital version af denne rapport, hvori kilder og referencerer interaktive.
Anders Wittendor Henrik Juul Pedersen Morten Kock Rævdal
Palle Ravn Mark Jespersen Thomas Laursen
I
Indhold
1 Foranalyse 1
1.1 Overvejelser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Kravspecikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Lokalisering 7
2.1 Reeksion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Signalering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3 Trilateration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Valg af metode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Modellering af stalker 11
3.1 Regulering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Afstandsregulering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.3 Retningsregulering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4 Hardware 33
4.1 Afstands- og vinkelsensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.2 Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.3 Ultralydsmodtager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.4 Hastighedsmåler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.5 Trådløs kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.6 Mikrocontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5 Regulatorer 48
5.1 Afstandsregulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.2 Vinkelregulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6 Software 64
II
6.1 Softwarestruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656.2 Valg af styresystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706.3 Afstands- og vinkelberegning . . . . . . . . . . . . . . . . . . . . . . . . . . . 716.4 Regulering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.5 Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786.6 Brugerade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866.7 Kerne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876.8 Eksekveringstider og deadlines . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7 Afslutning 97
7.1 Implementering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977.2 Accepttest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997.3 Vurdering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017.4 Konklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Bilag 105
A Målejournal - Stalker bil 106
B Beregning på modellering af stalker 113
C Målejournal - Positionering af target 117
D Målejournal - Hastighedssensor 121
E Kredsløbsdiagrammer 125
Litteratur 129
III
Læsevejledning
I rapporten benyttes en række forkortelser og udtryk. Disse er listet med tilørende forklaring
i følgende afsnit.
Ordliste
Føgende forkortelser anvendes i rapporten:
AAU Aalborg Universitet
ALU Arithmetic Logic Unit
ARM Advanced RISC Machine
DAC Digital til Analog Converter
EDF Earliest Deadline First
IrDA Infrared Data Association
LOS Line-Of-Sight
PWM Pulse-Width Modulation
ROM Read-Only Memory
UART Universal Asynchronous Receiver/Transmitter
UHF Ultra High Frequency
ZOH Zero Order Hold
Desuden bruges følgende udtryk:
Stalker Efterfølgeren, denne kører selv v.h.a. regulering.
Target Målet, denne styres af en person fra gruppen.
Nonpreemtive En metode til multitasking, hvor der aldrig skiftes fra en process til enanden før den første har kørt færdig eller sættes i bero.
Prescaler En metode til at skalere en frekvens med en faktor inden den benyttes.
IV
Kapitel 1
Foranalyse
I dette projekt vil der blive arbejdet med en autonom forfølgerbil.
Formålet med projektet er at designe og implementere en styring til en bil (kaldet stalker),der er i stand til autonomt at følge efter en fjernstyret bil (kaldet target).
Der vil i dette projekt blive taget udgangspunkt i to fjernstyrede biler. En som vil blivemodiceret til at opfylde projektkravene(stalker), og en der ombygges(target) så det er muligtfor den autonome bil(stalker), at følge efter denne.
I semesterbeskrivelsen er følgende punkter opgivet til at skulle være en del af projektet:
Modellering af fysiske systemer Regulering i realtid Trådløs kommunikation
Projektet omhandler problemstillingerne med lokalisering af target og regulering af vinkel oghastighed derudfra.
I det følgende afsnit er der beskrevet hvilke overvejelser projektgruppen har gjort sig, i forholdtil projektet.
1
1.1 Overvejelser
Dette projekt er et læringsprojekt. Der er derfor ud fra gruppens kompetencer og ambitions-
niveau opstillet et scenarie, som produktet skal kunne gennemføre. Dette scenarie og de over-
vejelser der ligger bag beskrives her.
Til dette projekt er der opstillet nogle rammer og begrænsninger, som produktet skal fungereindenfor. Det er valgt at have to ensformige fjernstyrede biler. Dette betyder at stalker ogtarget har ens styrings- og accelerationsevne, og derved kan følges ad.
De to biler er valgt ud fra nogle overvejelser. De er let tilgængelige og kan fåes til en rimeligpris, mens deres udformning og stabilitet er hensigtmæssig med henblik på påmontering afhardware. Deres hastighed og vinkel styres af Pulse-Width Modulation (PWM).
For at overholde kravene stillet i studieordningen til semesteret, skal projektet indeholdetrådløs kommunikation. Dette skal primært bruges til styring af stalker vha. kommandoer,og til at indhente informationer fra stalker. Det trådløse system skal virke uden Line-Of-Sight (LOS), og på mindst 40 meters afstand. Derudover skal den trådløse kommunikationkunne køre på batteriforsyning.
Scenarie
Produktet skal kunne fungere inden for et af gruppen opstillet scenarie, som beskrives her.
Bilerne skal køre indendørs på et plant underlag uden forhindringer. Derved skal der ikke tageshensyn til vejrforhold, forhindringer samt varierende underlag, der kunne give anledning tilskærpede krav til hardware og software. Der må aldrig være fysisk kontakt mellem de to biler,og stalker skal kunne følge target ved en hastighed på mindst 5 km/t.
Startpositionen er, at stalker placeres bagved target, så den på forhånd ved at target er foran.Derefter styres target manuelt med fjernstyring, mens stalker følger efter.
Stalker skal altså automatisk kunne bestemme targets lokation. Ud fra dette skal den regulere
sin hastighed og retning. Dette giver anledning til nogle forskellige situationer som produktet
skal kunne håndtere, disse situationer beskrives vha. Use Cases i det kommende afsnit
2
1.2 Use Cases
I dette afsnit opstilles der Use Cases ud fra scenariet, som blev beskrevet i foregående afsnit.
Dette gøres for kunne opstille krav til funktionaliteten af produktet.
Der skal udvikles en styring til stalkeren så den autonomt kan efterfølge target. Dette gøresved at detektere afstand og vinkel af target og derudfra regulere stalkerens hastighed og ret-ning. Der skal også være mulighed for trådløs kommunikation mellem stalker og en computer.Dette skal som minimum bruges til statusmålinger samt start og stop kommandoer.
Dette giver anledning til følgende aktørere:
Stalker Target PC
Hvor stalker kan påvirkes af target, når den ændrer hastighed og retning, samt kommandoerog forespørgelser fra PCen. Der gælder ved alle use cases at hvis stalker mister target af syne,skal den stoppe alt kørsel.
Use Case 1 - Target ændrer hastighed
Målbeskrivelse:
Stalker skal regulere sin hastighed, så den holder en afstand til target der gør det muligt forstalker at nå at reagere. Hvordan denne afstand bestemmes bliver mere specikt beskrevetsenere i rapporten. Der tages her udgangspunkt i at stalker er placeret bag ved target somer i bevægelse.
Normal scenarie:
Target ændrer hastighed Afstand mellem stalker og target ændres Stalker detekterer afstand til target Stalker øger eller sænker sin hastighed, afhængigt af om afstanden er for stor eller lille Overstående gentages til afstanden mellem de to biler er det ønskede
Use Case 2 - Target ændrer vinkel
Målbeskrivelse:
Stalker skal regulere sin retning, så den holder sig på linje med target. Den skal derfor detek-tere, når target drejer og derudfra regulere sin egen køreretning. Der tages igen udgangspunkti at stalker er placeret bag ved target som er i bevægelse.
3
Normal scenarie:
Target ændrer retning Vinklen mellem stalker og target ændres Stalker detekterer vinkel mellem den og target Stalker ændrer retning Overstående gentages til vinklen mellem de to biler er det ønskede
Use case 3 - Start og stop igennem PC
Målbeskrivelse:
Stalkeren skal udfra en start- eller stopkommando, der sendes trådløst til systemet igennemPCen, hhv. starte og stoppe forfølgelsen af target. Der tages udgangspunkt i to scenarier idette tilfælde.
Startkommando scenarie:
PC sender startkommando til stalker Stalker modtager kommando Stalker starter forfølgelsen af target
Stopkommando scenarie:
PC sender stopkommando til stalker Stalker modtager kommando Stalker stopper forfølgelsen af target
De opstillede use-cases giver altså anledning til funktionaliteter, som skal implementeres i
produktet. De giver sammen med det opstillede scenarie anledning til kravene, som speciceres
i næste afsnit.
4
1.3 Kravspecikation
Det opstillede scenarie og Use Case's giver anledning til nogle krav til produktet. Disse krav
er her opstillet og beskrevet.
Der skal implementeres en styring på stalker, så den er i stand til at forfølge target. Target vilblive styret igennem en fjernkontrol. Det er derfor et krav til produktet, at alle udregninger ogreguleringer, i forhold til hastighed og kørselsretning, skal foregå i realtid. Der skal anvendestrådløs kommunikation til at kommunikere mellem en computer og stalker, med henblikpå overvågning af systemtilstand, samt transmission af kommandoer til den. Dette giveranledning til nogle krav, der skal overholdes af produktet. Disse er her opstillet:
1. Stalker skal være i stand til at forfølge target ved en hastighed af mindst 5 km/t.2. Stalker skal forfølge target uden sammenstød.3. Stalker skal regulere sin kørselsretning så den holder sig bag target.4. Den trådløse kommunikation skal have en rækkevidde på mindst 40 meter.
Der er nu opstillet krav til produktet. Der opstilles i følgende afsnit accepttest for de opstillede
krav.
1.3.1 Accepttest beskrivelse
I dette afsnit er der opstillet en beskrivelse af de tests som systemet skal bestå for at opfylde
kravspecikationen.
For at kontrollere at kravene er opfyldt, er det nødvendigt at lave tests af systemet. Derbeskrives her hvordan disse tests udføres.
Krav 1: Stalker skal være i stand til at forfølge target ved en hastighed af mindst 5 km/t.
Dette testes ved at stalker sættes i startposition bag target. Herefter skal stalker være i standtil at følge efter target, når der køres med en hastighed på mindst 5 km/t. Dette testes 1gange af 5 kontinuerlige minutter.
Krav 2: Stalker skal forfølge target uden sammenstød.
Dette testes først i forbindelse med test af krav 1. Under testen af krav 1 skal en observertørholde øje med stalker og notere hvis stalker kommer i kontakt med target. Hvis stalker skaberfysisk kontakt til target under testen af krav 1, er testen fejlet.
Derefter udføres en start/stop test hvor target accelereres op til mindst 5 km/t og derefterstoppes ved at afbrydelse fremdriftsmotoren i target. Dette gentages 4 gange. Hvis stalkerskaber fysisk kontakt til target en af gangene, er testen fejlet.
5
Krav 3: Stalker skal regulere sin kørselsretning, så den holder sig bag target.
Dette testes i forbindelse med test af krav 1. Stalkeren skal under testen aldrig miste targetaf syne. Hvis dette sker er testen fejlet.
Krav 4: Den trådløse kommunikation skal have en rækkevidde på mindst 40 meter.
Dette testes ved at opmåle en afstand på 40 meter mellem computeren og stalker. Hereftersendes en kommando til stalker, som stalker svarer tilbage på. Hvis den sendte kommandobliver sendt og modtaget sucessfuldt 100 gange er kravet overholdt.
Der er i dette afsnit opstillet en kravspicikation til stalkeren, samt beskrevet test for disse
krav. Stalkeren skal overholde de stillede krav for at opfylde accepttesten og derved opfylde
kravspecikationen. For at overholde kravene, skal stalker kunne lokalisere target og regulere
sin hastighed og retning derefter. Metoden til lokalisering vælges i det kommende afsnit.
6
Kapitel 2
Lokalisering
I dette afsnit beskrives forskellige metoder til lokalisering af target. Lokalisering af targeter nødvendig for at stalker kan regulere sin hastighed og retning. Der opstilles og vurderesforskellige lokaliseringsmetoder, hvorefter en metode vælges til senere implementering.
2.1 Reeksion
Der udsendes et signal fra stalker, som vil blive reekteret tilbage af target. Dette reekterede
signal opfanges igen af stalker, og ud fra signalets udbredelseshastighed og tidsforskellen fra
signalet er sendt afsted og til det reekterede signal kommer tilbage, kan afstanden mellem
stalker og target ndes.
Figur 2.1. Illustration af lokalisering med reeksioner. Det udgående signal representeres med de
( bølger, og det reekterede repesenteres med de ) bølger.
Der er på gur 2.1 illustreret princippet bag reeksion. Det ses at afstanden ndes ved at
7
udsende et signal fra stalker, som reekteres på target. Ved at kende tidsforskellen mellemat signalet sendes ud og det reekterede signal kommer tilbage, samt signalets udbredelses-hastighed, kan afstanden beregnes.
Overvejelser
En af ulemperne ved reeksion er, at det er nødvendigt at ramme target for at lave en måling.
Reeksion kan implementeres ved enten at bruge infrarød eller ultralyd. Typisk virker dissesensorer kun indenfor en bestemt afstand, og arbejdes der uden for denne, er output ikkepålideligt. Det er ligeledes nødvendigt med målinger i ere retninger, for at kunne bestemmehvilket retning target bevæger sig i.
2.2 Signalering
Target udsender et signal, som stalker kan opfange og dermed detektere, hvilken retning target
bender sig i.
I forhold til foregående løsning, udsendes der nu et signal fra target, som opfanges af stalker.Dette er illustreret på gur 2.2.
Figur 2.2. Illustration af lokalisering, hvor target udsender et signal, givet ved ), som stalker
opfanger med sensorer i forskellige vinkler.
Ligesom foregående løsning, er det nødvendigt med ere sensorer, som er vinklet forskelligt,for at opfange signalet. Ud fra hvilken sensor der opfanger signalet, kan retningen til targetbestemmes. Eftersom stalker ikke selv udsender signalet, vides det ikke hvornår signalet erudsendt, og derved er det ikke muligt at sige noget om afstanden til target. For at gøre detteskulle signalet indeholde information om hvornår det var udsendt. Dette betyder, at de tosystemer skal være synkroniseret med hensyn til tid med en præcision som kan være svær atopnå.
8
Overvejelser
Ved at udstyre target med et pejlingssignal, er stalker ikke længere afhængig af selv at skulleudsende et signal, for at bestemme hvilken retning target bender sig i. Dette betyder, atstalker er sikker på, at den følger efter target og ikke bare hvad der end er lige foran den. Etsådan pejlingssignal vil typisk bestå af et infrarødt signal, som sendes ud i en bred vinkel.Til at opfange dette signal er der placeret et antal infrarøde modtagere, som er afskærmet,således at kun en eller to sensorer opfanger signalet af gangen. Derved kan det ses hvilken afmodtagerne der registrerer signalet, og retningen kan bestemmes.
Siden at pejlingssignal kun kan bestemme hvilken vinkel target bender sig i, afhængersystemet stadig af en afstandssensor. Dog kan en sådan drejes, således at den altid harretning mod target, idet vinklen til target allerede forendes.
Et pejlingssignal stiller ikke de samme krav til præcision som et signal til afstandsmåling, dasignalet kun skal opfanges, så kvaliteten af signalet er underordnet, sålænge signalet registre-res. Signalet udsendes i alle retninger, samtidigt med at modtageren skal kunne afskærmes,således at den kun opfanger signalet i en bestemt vinkel.
2.3 Trilateration
Denne løsning er en anden udgave af overstående signaleringsløsning, hvor placeringen af
sensorerne på stalker gør det muligt at bestemme targets position ud fra geometriske bereg-
ninger.
Figur 2.3. Illustration af trilateration. De hvide cirkler illustrerer modtagerens antenner. Positio-
nen af target udregnes vha. geometriske beregninger.
For at kunne udregne både en afstand og en vinkel, udsender target et pejlingssignal, somopfanges af stalkerens tre modtagere, som illustreret på gur 2.3. Ved at måle tidsforskellenmellem modtagelserne, kan targets position bestemmes. Ved at kende signalets udbredelses-hastighed, kan targets position i forhold til stalker bestemmes.
9
Overvejelser
Det er til formålet muligt at anvende en modiceret version af trilateration, hvor den enesensor fjernes. Dette kan gøres fordi det antages, at target altid bender sig foran stalkeren,som det ses i det opstillede scenarie i afsnit 1.1. Der bruges derfor bilateration til bestemmeafstanden vha. to sensorer i fronten af stalker bilen. Derimod bruges også et synkronise-ringssignal, som skal starte en timer, der aæses når pejlingssinalet modtages. Dette gør atafstanden stadig kan ndes, samtidigt med at opstillingen er simplere, da der nu kun er tosensorer der skal opsættes præcist istedet for tre.
I et perfekt scenarie, er det så frekvensen, som mikrocontrolleren tæller med, sammen meddens timers opløsning, der er den begrænsende faktor. For at kunne vide det korrekte tids-punkt, hvor pejlingssignalet er udsendt, skal synkroniseringssignalet være momentant. Dettekan tilnærmes ved at bruge et radiosignal, som bevæger sig med lysets hastighed og er omni-directionelt, da det så kan antages at signalet bevæger sig fra Target til Stalker momentant.Dette betyder så, at pejlingssignalet skal have en betydeligt lavere udbredelseshastighed, forat tidsforskellen mellem de to signaler kan måles.
Funktionsmæssigt kan denne metode det samme som signalerings metoden i afsnit 2.2, dogmed den forskel at der her skal bruges færre sensorer for at give en nøjagtig placering.
2.4 Valg af metode
Ved at sammenligne overvejelserne for de forskellige metoder, ses det at trilateration har denbedste opløsning ved den simpleste opstilling. Derfor er med udgangspunkt i denne valgtbilateration, således at antallet af sensorer reduceres til tre som nævnt i ovenstående afsnit.
Det blev valgt at anvende bilateration til lokalisering af target. Der skal derfor anvendes to
sensorer og et synkroniseringssignal, hvorudfra vinkel og afstand mellem target og stalker
bestemmes. I det følgende kapitel opstilles modeller for bilen, til brug ved regulering af vinkel
og afstand mellem target og stalker.
10
Kapitel 3
Modellering af stalker
I dette afsnit opstilles der modeller for bilens bevægelse, for at kunne foretage reguleringderaf. Der er valgt biler med identisk motor og styring til både stalker og target. I detteafsnit opstilles der en model for hvordan stalker skal regulere sin hastighed og retning iforhold til forankørende target. Dette gøres ud fra en sammenhæng mellem elektriske ogmekaniske modeller, samt matematiske betragtninger.
3.1 Regulering
Der anvendes en standardopsætning til reguleringerne. Denne standardopsætning består afen regulator, et system og en sensor. Standardopsætning er vist på gur 3.1.
R(s) +
−D(s)
Regulator
G(s)
System
H(s)
Sensor
Y(s)
Figur 3.1. Standardopsætning for regulering.
Input R(s) er en reference der sættes til den værdi der ønskes som output Y(s). Systemer det system, som skal reguleres vha. Regulator. Regulatoren foretager reguleringen afsystemet til den ønskede reference værdi R(s) vha. de værdier den får fra Sensor. Der skal
11
opstilles overføringsfunktioner, der beskriver relationen mellem input- og outputværdi for detre blokke. Den samlede overføringsfunktion for denne standardopsætning er opgivet i formel3.1
T(s) =Y(s)R(s)
=D(s) ·G(s)
1 + D(s) ·G(s) · H(s)[-] (3.1)
Denne standardopsætning for en reguleringssløjfe anvendes til dimensionering af regulatoren,som gør systemet stabilt.
12
3.2 Afstandsregulering
Der er på gur 3.2 opstillet en generel model for, hvordan regulering af afstand mellem stalkerog target skal foregå.
Ra(s) +
−Ønsket afstand
Da(s)
AfstandregulatorRh(s) +
−Ønsket hastighed
Dh(s)
Hastighedsregulator
Gh(s)
Hh(s)
Hastighedssensor
Ga(s)Ya(s)
Ha(s)
Afstandssensor
Fejl Fejl PWM input hastighed − afstand
Forstyrrelse fra target
+
Figur 3.2. Modellering af afstandsregulering, hvor hastighed af stalker ændres for at holde en
ønsket afstand mellem de 2 biler.
Det skal være muligt at regulere afstanden mellem de to biler. Dette gøres ud fra en be-stemmelse af afstanden mellem bilerne. Der ønskes en bestemt afstand, Ra(s), mellem de tobiler. Der implementeres en sensor, som detekterer afstanden mellem target og stalker. Udfradennes output reguleres hastigheden af stalker vha. afstandsregulatoren Da(s). Afstandsre-gulatoren giver en ønsket hastighed, som igennem hastighedsregulatoren Dh(s), som giveranledning til et PWM output. Dette PWM signal giver anledning til en spænding over moto-ren, som omsættes til en hastighed iGh(s). Den hastighed måles igennem hastighedssensorenHh(s), som er tilbagekoblet for at kompensere for fejl i den ønskede hastighed. Denne ha-stighed giver anledning til en ændring i afstand Ya(s). Der vil også komme forstyrrelser idenne reguleringssløjfe i form af target, der ændrer hastighed, og dermed påvirker afstandenmellem de to biler.
For at kunne dimensionere en regulator til stalkeren, skal der opstilles overføringsfunktionerfor denne. Gh(s) skal beskrive, hvordan et PWM input til bilens motor påvirker dens hastig-hed, mens Ga(a) skal beskrive, hvordan hastigheden af bilen påviker ændringen i afstand.Der opstilles overføringsfunktioner ved at sammenholde mekaniske og elektriske modeller forDC-motoren i bilen.
Stalkerens fremdrift dannes af en DC-motor, hvis spænding reguleres vha. PWM. Der erinstalleret en controller og H-bro på bilen, som omdanner et PWM-input til en spænding overDC-motoren. Denne spænding omsættes til en kraft, der vha. gear og dierentialer fordelesud på de re hjul. Der opstilles i det kommende afsnit model for hvordan DC-motoren, gearetog dierentialet fungerer. Derefter opstilles der en model for hvordan fremdriften af stalkerenpåvirker afstanden mellem de to biler.
13
Modellering af bilens fremdrift
Der opstilles først en elektrisk model for DC-motorens påvirkning af bilen.
Det elektriske ækvivalentdiagram for en DC-motor er opstillet på gur 3.3. Det er beståendeaf en påtrykt spænding, en spole, en modstand og en spænding, den elektromotoriske kraft,som er liniært afhængig af vinkelhastigheden ωmotor med konstanten K.
LR a
a
Ia a
U Kω motor
Figur 3.3. Elektrisk ækvivalent diagram for DC-motor.
Den elektriske ligning, som beskriver sammenhængen i ækvivalentdiagrammet er opstillether:
Ua = Ra · Ia + LadIadt
+ K · ωmotor [V] (3.2)
Hvor:
Ua er spænding over motoren [V]
Ra er modstanden i motoren [Ω]
Ia er strømmen gennem motoren [A]
La er induktansen i motoren [H]
K er motorkonstanten[
Vrad/s
]ωmotor er vinkelhastigheden på motoren [rad/s]
Denne ligning laplace-transformeres, hvorefter strømmen isoleres mhp. anvendelse i den me-kaniske model for DC-motoren.
Ua(s) = Ra · Ia(s) + sLa · Ia(s) + K · ωmotor(s) [V] (3.3)
Ia(s) =Ua(s)−K · ωmotor(s)
Ra + s · La[A] (3.4)
14
Ørsteds lov beskriver sammenhængen mellem en strøm i en ledning og det magnetfelt derdannes. Ved at anvende dette kan det bevises at omsætningen af strøm til moment, somtilføres til motorens aksel, τm, er proportional med ankerstrømmen, Ia, ganget med faktorenK, som vist i ligningen 3.5.
τm = K · Ia [Nm] (3.5)
Hvor:
τm er momentet på motorens aksel [Nm]
K er motorkonstanten[NmA
]Ia er strømmen gennem motoren [A]
Jdω
dt= τm − τb − τf(ω, τm − τb) [-] (3.6)
Hvor:
τhjul er momentet fra hjulet [Nm]
15
De mekaniske og elektriske modeller gælder for DC-motoren i bilen. DC-motoren er koblettil hjulet vha. et fast gear, dvs. to tandhjul med forskellige størrelser. Der er på gur 3.4opstillet et fritlegeme diagram for de to tandhjul, det ene sidder på motoren, det andet påakslen, der driver hjulene:
rm
Motor
Jmotor
τm
f
hjul.X
ω
r
Hjul
bh
hjul
ω
.ωJhjul .ω
fh
Ffriktion Fbil = m .v
motor
motor
hjul
hjul h..
.bil
bil
bil
τ
τ τ
τ
τ
Figur 3.4. Fritlegeme diagram for de to tandhjul, der danner gearet mellem aksel og motor.
Hvor:
ωmotor er vinkelhastigheden på motorens tandhjul [rad/s]
rm er radius af motorens tandhjul [m]
τf er friktionen i motoren [Nm]
τm er momentet på akslen i motoren, som dannes af ankerstrømmen [Nm]
τhjul er momentet på motorens tandhjul fra hjulets tandhjul [Nm]
Jmotor er inertimomentet[kg · m2
]X er gearingsforholdet mellem de 2 hjul [-]
ωmotor er vinkelaccelerationen på motorens tandhjul[rad/s2
]ωhjul er vinkelhastigheden på hjulets tandhjul [rad/s]
rm er radius af hjulets tandhjul [m]
τbh er momentet som bilen påvirker underlaget med [Nm]
τfh er friktionen i bilens mekanik [Nm]
Jhjul er inertimomentet[kg · m2
]ωhjul er vinkelaccelerationen på hjulets tandhjul
[rad/s2
]Gearingsforholdet mellem de to hjul, X, deneres:
X =rmrh
[-] (3.7)
16
Der kan ud fra fritlegeme diagrammet på gur 3.4 opstilles en ligning for sammenhængenmellem momenterne på motorens tandhjul. Dette gøres i ligning 3.8.
τm = Jmotor · ωmotor + τf + τhjul · X [Nm] (3.8)
Friktionen τf i motoren er givet ved [Tom S. Pedersen, 2010]:
τf =
bω + sign(ωmotor)τc , ωmotor 6= 0
τm − τb , |τm − τb| ≤ (τc + τs)
(τc + τs)sign(τm − τb) , |τm − τb| > (τc + τs)
(3.9)
Hvor:
b er viskose-friktionen [Nm]
τc er coulumb-friktionen [Nm]
τs er stiktionen [Nm]
τb er belastningen på motoren [Nm]
Momentet, som tilføres akslen i motoren, τm, kan erstattes med K·Ia. Friktionen i motoren, τf,er uliniær, som det ses ud fra formel 3.9. Den eneste del, som er liniær er bω+ sign(ωmotor)τcfor ωmotor 6= 0, og derfor medtages kun denne del i ligningen. Det er muligt at kompensere forcoulumb-friktionen, ved at tillægge et spændings bidrag til systemet, således at det momentder skal til for at overvinde coulumb-friktionen konstant vil være der.
Dette kan gøres i og med at systemet altid vil foretage en fremadrettet bevægelse. Friktionenτc vil stadig blive medtaget i modellen, men der kan som sagt ses bort fra denne ved attillægge et fast bidrag. Derfor sættes sign(ωmotor) til 1, idet der kun foretages fremadrettetbevægelse og denne herfor altid vil være positiv. Dermed kan ligningen skrives:
K · Ia = J · ωmotor + b · ωmotor + τc + τhjul · X [Nm] (3.10)
17
Der opstilles nu en ligning for momentet, som kommer fra hjulet.
τhjul = Jhjul · ωhjul + τfh + τbh [Nm] (3.11)
Hvor:
τhjul er momentet på hjulet [Nm]
Jhjul er inertimomentet[kg · m2
]τfh er friktionen i bilens mekanik [Nm]
τbh er momentet som bilen påvirker underlaget med [Nm]
ωhjul er vinkelaccelerationen på hjulet[rad/s2
]Friktionen τfh, i den akse der driver hjulene, kan beskrives af ligning 3.9 på foregående side.Den gælder også her, idet der igen vil være samme friktioner der skal overvindes for at aksenroterer. Derfor anvendes igen kun den liniære del, således ligningen bliver:
τhjul = Jhjul · ωhjul + b · ωhjul + τc + τbh [Nm] (3.12)
Momentet som bilen påvirker underlaget med, τbh, bestemmes ved anvendelse af newtons love.Kraften Fbil, som τbh giver anledning til, skal overvinde friktionen for at bilen kan foretageen bevægelse.
Ffriktion FBil m
ωhjul
rh
x(t)
θ(t)
Figur 3.5. Figur der viser hvordan vinkelposition af hjulet og bilens position ændrer sig.
18
Der sker ved rotering af hjulet en ændring af hjulets vinkelposition, θ(t), og bilens position,x(t) som vist på gur 3.5. Ændringen i vinkel er proportional med positionen af bilen medfaktoren rh. Derfor kan følgende ligninger opskrives.
rh · θ(t) = x(t) [m] (3.13)
rh · θ(t) = x(t) [m/s] (3.14)
rh · θ(t) = x(t)[m/s2
](3.15)
Kraften Fbil er udfra newtons 2. lov opskrevet i ligning 3.16.
Fbil = mbil · vbil ⇔ Fbil = mbil · x(t) [Nm] (3.16)
Momentet τbh kan beskrives med ligning 3.17, idet moment er lig kraft gange arm.
τbh = rh · Fbil [Nm] (3.17)
Indsættes ligning 3.16 for Fbil i overstående udtryk 3.17 fåes:
τbh = rh ·mbil · x(t) [Nm] (3.18)
Indsættes udtryk 3.15 for bilens acceleration i udtryk 3.17 fåes:
τbh = rh ·mbil · rh · θ(t)⇔ τbh = r2h ·mbil · ωhjul [Nm] (3.19)
Der er nu opstillet de nødvendige ligninger til at fremstille en overføringsfunktion for G(s).Dette gøres ved at indsætte udtryk 3.4 for ankerstrømmen Ia(s) i motoren, samt laplacetrans-formen af udtryk 3.12 for momentet fra hjulet τhjul, i laplacetransformen af udtryk 3.10 forsammenhængen mellem momenterne på motorens tandhjul. Dermed fåes udtryk 3.20.
K ·(Ua(s)−K · ωmotor(s)
Ra + sLa
)=
s · Jωmotor(s) + b · ωmotor(s) + τc +(s · J · ωhjul(s) + b · ωhjul(s) + τc + τbh
)· X (3.20)
Ud fra udtryk 3.20, kan der opstilles en overføringsfunktion, der beskriver sammehængenmellem spændingsinput på motoren og vinkelhastigheden på hjulene. Der er her set bort fradet mekaniske dierentiale i bilen.
19
Dierentialet har til formål at rette motorens moment mod hjulene. Det giver hjulene mulig-hed for at rotere ved forskellige hastigheder, mens det overførte moment til hjulene forbliverdet samme. Eftersom der i dierentialet forendes tandhjul mm. vil der være en form for tab.Ved fremdrift har dierentialet ikke noget at sige, da begge hjul, hvis underlaget er ens, harlige meget moment, og derved kører lige hurtigt rundt. Det antages, at dette tab er så lille,at der kan ses bort fra det.
Det er i dette projekt også valgt at se bort fra gearet, idet det er et fast gearforhold. Dette erogså gjort for at motorkonstanter, samt inertimomentet på bilen, kan måles ved at betragtehjulene som akslen på DC-motoren. Derved kan der ses bort fra evt. tab i gear og dierentiale.
Derfor kan et nyt udtryk, 3.21, anvendes til at nde overføringsfunktionen G(s). Dette erdannet ud fra udtryk 3.20 for momentet på tandhjulet til motoren. I udtrykket er moment-påvirkningen fra hjulet, τhjul, erstattet med det moment, som bilen påvirker underlaget med,τbh, og gearingsforholdet X er sat til 1.
K ·(Ua(s)−K · ωhjul(s)
Ra + s · La
)= s · J · ωhjul(s) + b · ωhjul(s) + τc + τbh (3.21)
Momentet τbh erstattes med laplacetransformen af udtryk 3.19, dermed fåes:
K ·(Ua(s)−K · ωhjul(s)
Ra + s · La
)= s · J · ωhjul(s) + b · ωhjul(s) + τc + s · ωhjul(s) ·mbil · r2h
(3.22)
20
Udtryk 3.22 på modstående side omskrives, således der fåes en overføringsfunktion, G(s), derbeskriver forholdet mellem spændingsinput og omdrejningshastighed på hjulene. Omskriv-ningen er foretaget i appendix B, hvorved følgende udtryk er fremkommet:
Vbil(s)Ua(s)
=K · rh
(s · J ·mbil · rh2 + b) · Ra + K2(3.23)
Hvor:
Vbil(s) er bilens hastighed [m/s]
Ua er spænding over motoren [V]
K er motorkonstanten[NmA
]J er inertimomentet
[kg · m2
]b er den viskose friktion
[Nmrad/s
]mbil er vægten af bilen [kg]
rh er radius af hjulene på bilen [m]
Ra er modstanden i motoren [Ω]
De forskellige konstanter er fundet i appendix B og målt i appendix A, til følgende:
K = 0,0276
[NmA
]J = 0,0008593
[kg · m2
]b = 0,0002
[Nmrad/s
]Ra = 0,184 [Ω]
mbil = 1,6587 [kg]
rh = 0,04075 [m]
Motorkonstanter og inertimomentet er bestemt ud fra formler, hvor det antages at motorener ubelastet, men dette var ikke tilfældet i vores måling, idet motoren trak diernetialet oggear. Derudover er målingen af tidskonstanten også foretaget ukorrekt, idet den er målt forbilen når den ikke skal trække sig selv eller overvinde friktion. Dette vil give en afvigelsei motorkonstanterne og dermed modellen, men det er valgt at måle på denne måde for atkunne fremstille en model uden omfattende målearbejde.
21
De fundne konstanter giver dermed overføringsfunktionen:
Gh(s) =1.408715252
s · 0.8325820185 + 1(3.24)
Denne overføringsfunktion beskriver, hvad hastigheden af bilen bliver ved en påtrykt spæn-ding. Den påtrykte spænding justeres vha. PWM input, hvor pulsbredden justeres op forat øge spænding over DC-motoren. Spændingen justeres i henhold til tabel A hvor motorenbliver steppet fra stilstand til fuld fremdrift.
Der er her plottet stepresponset for den opstillede model og det i appendix A målte stepre-spons som fremgår af gur 3.6.
Figur 3.6. Steprespons for målt og opstillet overføringsfunktion.
Det ses at der er en forskel i accelerationen. Den opstillede model accelererer langsommereop end den målte. Dette skyldes at det målte steprespons er foretaget, mens bilens hjul ikkehavde kontakt med underlaget. Derved skal den ikke slæbe sig selv igang, og den accelerererderfor hurtigere.
22
Der er på gur 3.7 plottet hvordan hastigheden ændrer sig ved forskellige spændinger. Detteer gjort ud fra den opstillede model, samt den i tabel A på side 109 målte sammenhængmellem hastigheden af bilen og den påtrykte spænding på motoren.
Figur 3.7. Hastighed for modellen samt den målte.
Det ses at der er en stigende afvigelse i hastigheden mellem de to modeller, dette kan tilskri-ves måleunøjagtigheder og tilnærmelser gjort ved fremstilling af modellen. Denne opstillingaf modellen for bilens hastighed forklarer den fysiske og elektriske sammenhæng for bilenshastighed. Idet den afviger vælges det at anvende det målte til regulering af bilen, derfor vilder senere blive taget udgangspunkt i en overføringsfunktion opstillet ud fra A på side 110.
23
Modellering af afstand mellem bilerne
Der skal nu opstilles en overføringsfunktion for hvordan bilens hastighed påvirker afstandenmellem de to biler. Dette gøres ved at betragte afstanden A mellem de to biler. Afstandenmellem de to biler ndes ved at trække stalkers position fra targets, idet target altid vilbende sig foran stalker. Derfor opstilles denne ligning:
A = dtarget − dstalker [m] (3.25)
Hvor:
A er afstanden mellem de to biler [m]
dtarget er targets position [m]
dstalker er stalkers position [m]
Det vides at forholdet mellem hastigheden, vbil, af en bil og den distance, dbil, den bevægersig er givet ved:
vbil(t) =ddt· dbil(t)⇔
∫vbil(t) = dbil(t) [m/s] (3.26)
Derfor kan afstanden mellem de to biler også beskrives ud fra hastigheden således:
A(t) =
∫ t
0
vtarget dt−∫ t
0
vstalker dt + a0 ⇔ [m] (3.27)
A(t) =
∫ t
0
(vtarget − vstalker) dt + a0 [m] (3.28)
Hvor
A(t) er afstanden til tiden t [m]
a0 er afstanden til tiden 0, dvs. startafstanden [m]
vtarget er targets hastighed til tiden t [m/s]
vstalker er stalkers hastighed til tiden t [m/s]
Overstående laplacetransformeres og startafstanden undlades, dermed fåes:
A(s) =vtarget − vstalker
s(3.29)
Hastigheden af target er medtaget som en forstyrrelse, og den kan derfor ikke indgå somværdi i modellen. Herved fås overføringsfunktionen for forhold mellem hastighed og afstandtil:
Ga(s) =1
s(3.30)
24
3.3 Retningsregulering
I dette afsnit opstilles en model for, hvordan vinklen på hjulene påvirker retningen af stalkerog derved stalkers retning i forhold til target. På gur 3.8 er der opstillet et diagram, forhvorledes reguleringen af retningen skal fungere.
R(s) +
−Ønsket vinkel mellem biler
Dv(s)
Vinkelregulator
Servo
Motor
Gv(s)
Stalker+
Hv(s)
Vinkelsensor
Fejl PWM til servo Hjulvinkel Vinkel − Vinkel mellem bilerne
Y(s)
Målt vinkel mellem bilerne
Target
Figur 3.8. Blokdiagram for retningsregulering.
Det skal være muligt at regulere vinklen mellem de to biler. Det ønskes en fast vinklen,Rv(s),mellem de to biler. Der implementeres en sensor, Hv(s), som detekterer vinkel mellem targetog stalker. Udfra dennes output reguleres vinkelen af hjulene på stalker vha. vinkelregulatorenDv(s). Vinkelregulatoren giver et signal i form af PWM til stalkeren. Dette PWM-signalomsættes til en vinkel på stalkerens hjul, som fører til en ændring af vinklen mellem bilerne.Denne sammenhæng opstilles der her er overføringsfunktionen, Gv(s), for.
25
Ackermann drejnings geometri
Der skal ved retningsændring af bilen foretages en vinkelændring på forhjulene. For at fåen forståelse for hvordan bilen drejer, anvendes ackermann princippet for drejning. Detteprincip går ud på at hjulene har forskellig vinkel, for at undgå at bilen skrider, når derforetages et sving. Ydermere er drejningspunktet placeret midt på bagakslen. På gur 3.9er det illustreret, hvorledes vinklen på hjulene påvirker retningen af bilen.[Darren Burnhill,2009]
θ θ θ
Omdrejningspunkt Omdrejnings radius origo
Bil HV
θV <θBil θH<
Figur 3.9. Ackermann drejningsprincip.
Illustationen på gur 3.9 viser hvorledes vinklen på hjulene er forskellige. Det ses at vinklenpå venstre hjul, θV, er mindre end vinklen for bilens retning, θBil, som er mindre end vinklenpå højre hjul, θH. Dette medfører at bilen vil køre i en retning der ligger mellem de tohjulvinkler. Bilen vil bevæge sig i en cirkulær bevægelse, og princippet gælder for sving tilbegge sider.
26
Retningsmodellen
Der betragtes nu sammenhængen mellem stalkerens hjulvinkel og vinkel til target. I bereg-ningerne antages det at servoen ændrer vinkel momentant. Der tages udgangspunkt i noten[Tom S. Pedersen, N/A]. Der vil blive anvendt regneregler for retvinklede trekanter, samtenhedscirklen. Der foretages beregninger ud fra følgende parametre.
Hastighed (v) Hjulenes vinkel i forhold til stalkers karosseri (θ)
Afstand til target (l)
Der tages udgangspunkt i en situation, hvor stalker og target er placeret som angivet pågur 3.10. Der påtrykkes et step på stalkers servomotor så hjulvinkel ændres. Derefter lavesde nødvendige matematiske- og geometriske betragtninger for at stalker kommer tilbage ogkører på linje med target. d
Stalkers bagakselStalkers foraksel
Targets bagaksel
Figur 3.10. Illustration af bilernes aksler.
27
På gur 3.11, er der opstillet en model af, hvordan stalkeren vil bevæge sig, hvis vinklen påbilens hjul bliver ændret.
X
Yt =dt2t =01
d
d d
dy
v dt
vdt
ψd θ
lL
ψ φ
Stalkers bagaksel
Stalkers foraksel
Targets bagaksel
Figur 3.11. Bilernes aksler til tiden 0 og dt.
Hvor:
dy er positionsændringen af forhjulene i y-retningen [m]
θ er vinklen imellem stalkers karosseri og forhjul [rad]
v er stalkerens hastighed [m/s]
dt er tidsskridtet [s]
dψ er ændringen i vinkel imellem stalkers karosseri og target bagende [rad]
L er afstanden mellem stalkers for- og bagaksel [m]
l er afstanden imellem stalker og target [m]
γ er en vinkel, der benyttes i senere udregninger [rad]
dφ er vinklen mellem stalker og target [rad]
Figuren 3.11 viser hvad der vil ske med stalkers retning når servomotoren påtrykkes et step,og den derefter kører i tiden dt. De grønne markeringer angiver placeringen af hhv. stalkersfor- og bagaksel, samt targets bagaksel til tiden 0, og den røde til tiden dt. For at gøretegningen mere overskuelig er bilernes kroppe ikke tegnet med. Tegningen viser de samledegeometriske betragtninger der er nødvendig for at opstille et udtryk, for hvorledes stalkerskarosseri bevæger sig i forhold til den påtrykte hjulvinkel. Disse geometriske betragtningerbeskrives yderligere igennem dette afsnit.
28
Det er tidligere nævnt, at bilen vil dreje i en cirkulær bevægelse, udfra ackermanns drejningsprincip. Det antages i denne model, at bilen vil bevæge sig linært, ud fra den tilnærmelse, attidsrummet der kigges på er meget lille.
dyvdt
θ
Figur 3.12. Ændring af forakslens position.
På gur 3.12 illustreres det hvordan stalkers foraksel vil bevæge sig når der påtrykkes et step.
Ud fra nævnte antagelser, samt illustrationen på gur 3.12, kan bilens positionsændring iy-aksens retning beskrives som:
dy = sin(θ) · v · dt (3.31)
Hvor:
dy er positionsændringen af forhjulene i y-retningen [m]
θ er vinklen imellem stalkers karosseri og forhjul [rad]
v er stalkerens hastighed [m/s]
dt er tidsskridtet [s]
29
dyψd
L
Figur 3.13. Ændring i bilens retning i forhold til forakslen position.
Illustrationen på gur 3.13 viser hvordan stalkers karosseri vil bevæge sig i forhold til foraks-len, og dermed den påtrykte hjulvinkel. Dette giver anledning til formlerne:
dy = sin(dψ) · L⇔ (3.32)
dψ = arcsin
(dyL
)(3.33)
Hvor:
dψ er ændringen i vinkel imellem stalkers karosseri og foraksel [rad]
L er afstanden mellem stalkers for- og bagaksel [m]
dyl
Figur 3.14. Vinkel mellem stalkers for- og targets bagaksel.
30
Figur 3.14 på forrige side viser vinklen der vil være mellem stalkers for- og targets bagakselefter et step er foretaget. Herudfra kan det ses, at vinklen γ er givet som:
dy = cos(γ) · l⇔ (3.34)
dy = sin(π
2− γ)· l⇔ (3.35)
arcsin
(dyl
)=π
2− γ ⇔ (3.36)
γ = −arcsin(dyl
)+π
2(3.37)
Hvor:
l er afstanden imellem stalker og target [m]
γ er en vinkel, der benyttes i senere udregninger [rad]
d dψ φ
Figur 3.15. Vinkel mellem stalkers karosseri og targets bagaksel.
Figuren på 3.15 viser sammenhængen mellem den retning stalkers karosseri er på vej i, og denretning der skal køres for at nde tilbage til targets bagaksel. Figur 3.15 viser, at ændringeni vinkel mellem stalker og target er givet som:
dφ = π − γ −(π
2− dψ
)⇔ (3.38)
dφ =π
2− γ + dψ (3.39)
Hvor:
dφ er vinklen mellem stalker og target [rad]
31
Ligningerne 3.31, 3.33 og 3.37 kombineres med 3.39 hvorved det fås:
dφ =π
2− γ + dψ ⇔
dφ =π
2−(−arcsin
(dyl
)+π
2
)+ arcsin
(dyL
)⇔
dφ =π
2+ arcsin
(sin(θ(t)) · v · dt
l
)− π
2+ arcsin
(sin(θ(t)) · v · dt
L
)⇔
dφ = arcsin
(sin(θ(t)) · v
l· dt)
+ arcsin
(sin(θ(t)) · v
L· dt)
(3.40)
Det antages, at arcsin(x) = x for små ændringer af x. Da det er tidligere nævnt, at detantages, at dt er lille, og derved kan udtrykket reduceres til:
dφ =sin(θ(t)) · v
l· dt +
sin(θ(t)) · vL
· dt⇔ (3.41)
dφdt
=sin(θ(t)) · v
l+sin(θ(t)) · v
L⇔ (3.42)
˙φ(t) = sin(θ(t)) · v ·(
1
l+
1
L
)(3.43)
Det kan også antages, at sin(x) = x for små x ændringer, hvorved at udtrykket kan laveslinært. Udtrykket Laplace-transformeres og der fås:
s · φ(s) = θ(s) · v ·(
1
l+
1
L
)⇔ (3.44)
Gv(s) =φ(s)
θ(s)=
v ·(1l
+ 1L
)s
(3.45)
Overføringsfunktionen indeholder en integrator, hvilket stemmer godt i overenstemmelse meddet forventede, da denne vil vokse, i takt med at stalker får en større vinkel til target.Ydermere kan det ses at denne integration vil vokse linært med hastigheden, hvilket ogsåstemmer overens med det forventede eftersom vinklen vil ændre sig hurtigere, hvis stalkerkører ved en høj hastighed, end ved en lav.
Herved fåes overføringsfunktionen G(s) for stalkerens retning i forhold til hjulvinklen. Denneer givet ud fra den vinkel forhjulene står i, denne reguleres vha. PWM.
Der er nu opstillet modeller for regulering af afstand og vinkel mellem de 2 biler. Dette gøres
ved at regulere på DC- og servomotor vha. PWM. I det kommende afsnit moduleres hardware
til target og stalker, for at fremstilles nødvendige sensorer der skal muligører lokalisering af
target samt regulering af stalker.
32
Kapitel 4
Hardware
Der er nu opstillet krav til systemet ud fra kravspecikation, valg af lokaliseringsmetodesamt modellering af biler. Disse krav realiseres vha. hardware. Hardware opbygningen vilher først blive præsenteret som moduler i et samlet system, hvorefter de enkelte modulersimplementation vil blive beskrevet.
Der er her opstillet et modul diagram for det samlede system.
Mikrocontroller
Motorstyring
DC-motor
Servomotor
Hastighedsmåler
Afstands- og vinkelsensorer Sendere
Trådløs kommunikation
Trådløs kommunikation Brugerade
Target
Stalker
PC
Figur 4.1. Oversigt over de moduler der indgår i hardwaren til det samlede system.
33
Der er på gur 4.1 på forrige side foretaget en opdeling af systemet. Disse tre opdelinger ogderes undermodulers funktioner beskrives her.
Target
Target skal udsende to signaler som stalker kan anvende til bilateration, den skal derforudsende et synkroniseringssignal og et pejlingssignal, ved et fast interval.
Stalker
Stalker er den bil der skal efterfølge target, dens undermoduler er beskrevet her:
Mikrocontroller
Mikrocontrolleren skal stå for at regulere servomotoren samt motorstyringen til DC-motoren,så afstand og vinkel reguleres efter hensigten. Dette skal den gøre ud fra de input den får frahastighedsmåleren samt afstands- og vinkelsensorerne.
DC-motor
DC-motoren leverer fremdrift til bilen. Denne motor og dens påvirkning af bilens fremdrifter moduleret i afsnit 3.2 på side 13.
Motorstyring
Motorstyringen består af den H-bro som fulgte med bilen, som kan omsætte et PWM-signaltil en DC-spænding på motoren. Denne sammenhængen mellem PWM og spænding overmotoren blev beskrevet i afsnit 3.2 på side 13.
34
Servomotor
Servomotoren ændrer bilens retning ved at ændre vinken på forhjulene og styres vha. PWM.Dennes sammenhæng mellem PWM og dens påvirkning af kørselsretningen er beskrevet iafsnit 3.3 på side 25.
Hastighedsmåler
Hastighedsmåleren måler omdrejninger på akslen, som kan omsættes til omdrejninger påhjulet, og derved en hastighed. Dette skal anvendes til regulering af afstand og vinkel, hvordet er nødvendigt at kende hastigheden af bilen.
Afstands- og vinkelsensoren
Afstands- og vinkelsensoren skal kunne opfange synkroniseringssignalet og pejlingssignalet,som udsendes fra target, så disse kan omsættes til en afstand og en vinkel, som er relativ tilstalker.
Trådløs kommunikation
Den trådløse kommunikation skal kunne håndtere kommunikation med en computer.
PC
Der anvendes en PC til kommunikation med stalker. Der skal udvikles en brugerade tilcomputeren, som gør det muligt at kommunikere trådløst med stalker.
De forskellige moduler er nu beskrevet. I de kommende afsnit vælges der løsningsmetoder og
derefter beskrives implementeringen deraf.
4.1 Afstands- og vinkelsensor
Der skal fra target udsendes et synkroniseringssignal og et pejlingssignal. Disse to signaler skalderefter opfanges af stalker. Der vælges at anvende Ultra High Frequency (UHF) radiobølgertil synkroniseringssignalet. Dette er et elektromagnetisk signal, som har en udbreddelsesha-stighed på 300E6 m/s. Dette betyder at tidsforsinkelsen på korte afstande tilnærmelsesvis ernul. Denne antagelse benyttes i projektet, for at kunne bestemme afstanden mellem stalkerog target.
Der anvendes ultralyd til pejlingssignalet, idet dette udbreder sig med lydens hastighed, ogderfor kan en tidsforskel, relativ til synkroniseringssignalet, detekteres ved varierende afstand.Det vælges at bruge ultralyd frem for hørbar lyd, fordi at ved hørbar lyd vil der kommeinterefrens fra omgivelserne og dette kan resultere i at målingerne bliver ubrugelige.
35
4.2 Target
I dette afsnit bliver targetbilens afsendelse af ultralyd og UHF radiobølger beskrevet.
For at stalker har noget at følge efter, skal der udsendes et ultralydssignal og et radiosignal.Begge sendere skal kunne bygges kompakt nok til at kunne sidde på targetbilen, og stadigvære eektfuld nok til at stalker kan opfange ultralydssignalet.
Senderen er udstyret med en mikrocontroller af typen ATtiny24[Atmel, 2010], som kan pro-grammeres imens den sidder på systemet. Den står for at sende ultralyd og UHF til de rigtigetider.
UHF senderen er af typen QAM-TX2[Quasar, 2006], som opererer ved 433 MHz. Den kræverkun forsyning og det signal der skal sendes.
Forsyningsspænding
Alle komponenter forsynes af batterier. Til ultralydsgenerering kræves et positivt og et ne-gativt signal, hvor spændingsamplituden bestemmer signalamplituden der sendes. Derfor erdet valgt at lave batteripakkens 6 volt om til ±15 volt, med en MAX743[Quasar, 1990]switch-mode regulator.
Ligeledes vil der bende sig en mikrocontroller og en UHF sender på systemet, som kørerved max 5 volt, til dette anvendes en spændingsregulator af typen 78L05. Denne type krævermindst 7 volt for at kunne lave 5 volt, men leverer 4,48 volt ved 6 volts forsygning. Mikro-controlleren kører kun ved 1 MHz, og ved denne frekvens kan den køre på mellem 1,8 og 5,5volt. UHF senderen kan operere fra 1,5 til 5 volt.
Pejlingssignal
Pejlingssignalet genereres af en ultralydssender, som drives af en 40kHz sinustone. Derforer der anvendt en sinusgenerator af typen XR-2206[EXAR, 1997]. Denne tilkobles ±15 voltforsyning. Sinusgeneratoren kan ikke levere nok strøm til senderen der trækker op imod 80mA, så der er koblet en simpel operationsforstærker-buer imellem.
For at kunne tænde og slukke for signalet er der efter bueren koblet et solid-state relæ, somkan åbnes og lukkes af mikrocontrolleren.
36
Timing
Mikrocontrolleren kører ved 1MHz og er programmeret til at sende ultralyd og radiobølger.Den står også for kalibreringen af signalerne, da der er forskellige indsvingningsforløb påsendere og modtagere af de to typer af signaler.
For at bestemme hvor ofte stalker skal signalere, er der opstillet en ligning for hvor lang tiddet tager for signalerne at komme frem, dette fremstilles som en maksimal frekvens ud frafølgende ligning:
fp =vlydlafstand
[Hz] (4.1)
Hvor:
fp er frekvensen for udsendelse af pejlingssignalet [Hz]
vlyd er lydens hastighed[ms
]lafstand er afstanden mellem target og stalker [m]
Hvis vlyd sættes til 350 m/s, hvilket svarer til at luften er lidt over 30 °C. Afstanden sættestil 2 meter. Dermed bliver frekvensen 175 Hz.
Dette betyder at target kan signalere sin position op til 175 gange i sekundet, uden at sig-nalerne bliver blandet sammen. Denne kan justeres senere ved at omprogrammere mikrocon-trolleren på target.
Som en del af kalibreringen af afstandsmålingen bliver ultralyden sendt 200 µs tidligere endUHF signalet. Fra et signal bliver givet UHF senderen til det bliver modtaget, er det et delay isystemet på ca. 100 µs, hvilket ikke skyldes udbredelseshastigheden. Ligeledes har ultralydenet indsvingningsforløb på ca. 300 µs. Denne forskel resulterer i kalibreringen på 200 µs.
Det er nu beskrevet hvordan target genererer en 40 kHz sinus til ultralydssender, og hvordan
dette samt et radiosignal styres af en mikrocontroller.
4.3 Ultralydsmodtager
Dette afsnit beskriver modtagelsen af ultralyd på stalker, og efterfølgende generering af signal
til mikrocontrolleren.
Signaldetekteringen skal generere signaler til mikrocontrolleren, ved modtagelse af signalermed ned til 10 mV amplitudeværdier fra ultralydsmodtagerne. For at sikre at det er muligtat reagere på små signaler fra transducerne, men ikke støj fra omgivelserne, er det valgt atforforstærke signalerne fra transducerne med 100 gange, umiddelbart efter sensorerne.
37
Forforstærkning
Forforstærkningen bliver lavet af en AD620[Analog devices, 2004] instumenterings-forstærker.Den har en meget høj indgangsimpedans, samtidig med alle fordelene ved en dierensforstær-ker. Den forsynes af ±5 volt og og har en stelforbindelse som reference. Dette betyder at derløber 4 ledere ud til hver sensor; ±5 volt, stel og et signal tilbage til signalerings-kredsløbet.
1
2
3
45
6
7
8
DifferensforstærkerAD620AN
Rgain
500
GND
-5
+5
Ultralyd Rafladning1500k
Rafladning2500k
GND
GND
OutputCac
100nF
Figur 4.2. Kredsløbsdiagram over signalforstærkningen ved ultralydsmodtagerne.
Da AD620 har en meget høj indgangsmodstand, er det ikke muligt for ultralydsmodtagerneat aade deres interne kapacitans, på 2550 pF ±20%, inden næste puls. Dette er løst ved atsætte en 500 kΩ modstand fra hver leder på transducererne, og til stel.
De 100 ganges forstærkningen på AD620 chippen laves ud fra ligningen:
G =49.9kΩ
RG+ 1 [-] (4.2)
Hvor:
G er forstærkningen [-]
RG er modstanden til bestemmelse af forstærkningsgraden [Ω]
Og dette betyder at en RG på ca. 500 Ω giver en forsærkningsfaktor på ca. 100.
38
Signaldetektering
Ved 100 ganges forstærkning, kan det ikke undgås at der også bliver forstærket støj fratransducerne, samt støj fra selve forstærkningen. Derfor skal der kunne sættes en minimums-amplitude, som der skal reageres på, inden mikrocontrolleren signaleres.
8
1
4
3
2
1
CompATLE2072
84
75
6
2
CompBTLE2072
+5
+5
-5
-5
+5
GND
Rdeling110k
Rdeling290.9k
Input A
Input B
TRIG6
OUT5
RST4
CVOLT3
THR2
DISC1
VCC14
GND7
TriggerA
TS556
VCC14
GND7
TRIG8
OUT9
RST10
CVOLT11
THR12
DISC13
TriggerB
TS556+3
+3GND
GND
Ccontrol210nF
Ccontrol110nF
+3
+3
R1
25k
R2
25k
C1
220nF
C2
220nF
GND
GND
GND
GND
InterruptA
InterruptB
10MRoffset1
10MRoffset2
GND
GND
Figur 4.3. Kredsløbsdiagram over signaldetektering og interruptgenerering fra ultralydsmodtager-
ne.
Dette laves med en operationsforstærker som komperator mellem indgangssignalet og enDC-værdi, som er sat til det niveau hvor signalet skal ses som aktivt.
Efter komperatoren bliver der mange små pulser, da komperatoren kun ser den positive delaf signalet minus det angivne DC-niveau. Derfor skal der laves et kredsløb der sørger for atmikrocontrolleren kun bliver signaleret en enkelt gang per positionssignalering.
For at sikre at der kun kommer et enkelt signal til mikrocontrolleren, der indstilles til atvære kant-triggered på stigende kant, laves der et monostabilit kredsløb med en 555-timer,hvor pulslængden sættes lang nok til at ultralydssignalet er stoppet med at komme igennemkomperatoren. Dette er gjort ud fra følgende ligning:
Tpuls = 1.1 · R · C [s] (4.3)
Hvor:
Tpuls er pulslængden på 555 timerens output [s]
R er modstanden som der aades over [Ω]
C er kondensatoren som 555 timeren oplader [F]
39
For at kunne håndtere op til ±4 volt signaler fra sensorerne med forstærkning, er kompe-ratoren også koblet til ±5 volts forsyning, imens 555-timeren er koblet til stel og 3 voltligesom mikrocontrolleren. På denne måde adskilles de høje spændinger i detekteringen framikrocontrolleren, som maksimalt må få sin forsyningsspænding ind på sine inputs.
I praksis implementeres 555 timeren i en dobbelt pakke kaldet 556[SGS-Thomson, 1997],ligesom operationsforstærkeren der benyttes som komperator er i en dobbeltpakke af typenTLE2072[Texas instruments, 2000].
Hardwaretest
I det følgende valideres den konstruerede hardware til interruptgenerering. Der bliver set på
hvor stor afvigelsen er, når afstanden måles med ultralyd og UHF, i forhold til den opmålte
afstand.
Ifølge målejurnal C er der en del unøjagtigheder som har indydelse på resultatet, hvilketbetyder at det er svært at sige om afvigelserne skyldes hardwaren, eller måleopsætningen. Forat have en ide om hvor stor udsvingene fra hardwaren er i forhold til lokaliseringen, ses derpå måling 2 og 3, hvor måling 2 er den mest præcise og kun afviger med 3,5 cm, og måling3 er den mest upræcise med 8 cm.
Måling 3
Hvis positioneringen betragtes som en vektor, med udgangspunkt i centrum (0;0), forventesder i måling 3 en længde på 70,7 cm og en vinkel på 45. Ifølge ultralydsmålingerne gives envektor med længde 77,4 og en vinkel på 34,4. Dette er illustret på følgende gur.
y
x
Centrum Sensor1Sensor2
70,7 cm∠45°77,4 cm∠34,4°
Figur 4.4. Den forventede vektor fra centrum til sender er givet ved den grønne vektor, mens den
røde vektor viser ultralydsmålingerne omsat til en vektor.
40
Måling 2
I måling 2, hvor target bender sig vinkelret på centrum, forventes en afstand på 50 cm ogen vinkel på 90. I følge ultralydsmålingerne fåes 53,1 cm og en vinkel på 87,9.
y
x
Centrum Sensor1Sensor2
53,1 cm∠87,9°50 cm∠90°
Figur 4.5. Den forventede vektor fra centrum til sender er givet ved den grønne vektor, mens den
røde vektor viser ultralydsmålingerne omsat til en vektor.
Alle usikkerheder taget i betragtning antages det at lokalisering via den konstruerede hardwa-re, er tilstrækkelig præcis i forhold til at skulle følge efter target. Unøjagtigheden i måling 3tilskrives bl.a. måleopsætningens manglende præcision.
4.4 Hastighedsmåler
Der kan implementeres en hastighedsmåler på forskellige måder. Hastighedsmåleren skal kun-ne give et signal hver gang hjulene tager en omdrening, og vha. mikrocontrolleren skal dermåles frekvens for dette signal. Denne frekvens kan omsættes til hjulets omdrejningshastig-hed, og dermed hastigheden af selve bilen.
Der vælges at implementere hastighedsmåleren ved brug af lysreektion, idet dette vurderessom den simpleste løsning. Der anvendes infrarødt lys for at undgå forstyrrelse fra synligtlys.
41
Der måles på omdrejninger på akslen der driver de re hjul. Herpå monteres sort tapesamt en lille hvid stribe. Der konstrueres et print hvorpå der monteres en lysdiode af ty-pen SFH487P[Siemens, N/A], som udsender infrarødt lys, ved siden af en fotodiode af typenBPW34[Vishay, 2008], som øger strømmen gennem sig propertionalt med at lysintensitetenden modtager stiger. Dette princip er illustreret her:
Aksel
IR-DiodeFotodiode
Figur 4.6. Illustration af hvordan det infrarøde lys udsendes, reekteres på den hvide tape, og
opfanges af fotodioden.
Den hvide stribe vil reektere lyset fra dioden bedre end det restrende sorte tape. Der laveset kredsløb som vist her:
+3,3V +3,3V
Output
R RD
IR-diode Fotodiode
Figur 4.7. Kredsløb til IR-diode og fotodiode.
Dette kredsløb har til formål at detekterer hvornår den hvide stribe på akslen passerer foto-dioden, og efterfølgende leverer et logisk højt niveau.
Dioden udstråler konstant infrarødt lys mens fotodioden leder strøm i spærreretningen nården bestråles. Derved kan der over modstanden RD måles et stigende spændingsfald i takt medlys intensiteten stiger. For at kunne variere hvor meget spændingsfald der er over modstandenanvendes en trimmemodstand på 100k, da dette efter forsøg med montering af sensor på bilenviste sig at være passende. Dette stigende spændingsfald ledes ind i en schmitt-trigger af typen74HC14D[Philips, 2003], som har 6 schmitt-triggere indbygget.
42
Denne leverer logisk lav på sin udgang, hvis spændingen på dens indgang overstiger et vistniveau, som er bestemt ud fra spændingsforsyningen. Der er ikke regnet på dette niveau, datrimmemodstanden gør det muligt at indstille spændingsfaldet til et passende højt niveau.Der ønskes et logisk højt niveau for hver gang den hvide stribe passere fotodioden, og daschmitt-triggeren inverterer giver den logisk lav. Dette afhjælpes ved at anvende endnu enschmitt-trigger, således der fåes logisk højt.
Hastighedsmåleren blev vericeret i appendix D. Det blev målt at for hver gang akslen drejer
2,0603 omgange drejer hjulene 1 omgang. Derfor skal det antal omgang som akslen divide-
res med 2,0603 for at få den egentlige omdrejningshastighed af bilenes hjul. Der kan ved at
gange den målte omdrejningshastighed med omkredsen af hjulet på bilen, ndes selve bilens
hastighed.
4.5 Trådløs kommunikation
I dette afsnit beksrives valget af teknologi til trådløs kommunikation. Der undersøges rækkevid-
de, interface, overførselshastighed og tilgængelighed på nogle forskellige trådløse teknologier,
hvorefter der vælges en teknologi der bruges til projektet.
For at overholde kravene til semesteret, skal systemet indeholde trådløs kommunikation. Dentrådløse kommunikation skal kunne sende statusbeskeder og kommandoer mellem stalker ogen PC. Trådløs kommunikation er ikke hovedfokus i projektet, og derfor vælges en teknologi,der uden videre kan implementeres som en færdig løsning.
Det vælges, at der ikke skal kræves Line-Of-Sight (LOS) mellem stalker og PC, hvilket ude-lukker teknologier som Infrared Data Association (IrDA). I det følgende afsnit beskrives deforskellige teknologier som kan anvendes.
Bluetooth
Indenfor bluetooth benyttes der to forskellige klasser, klasse 1 og 2 der har forskellige speci-kationer. Rækkeviden på de forskellige klasser er hhv. 100 og 10 meter. Ud fra kravet om atder skal være en rækkevide på 40 meter, er det kun klasse 1 der kan anvendes i dette tilfælde.Den nyeste version af bluetooth har en overførselshastighed på op til 2.1 Mbit/s.
Bluetooth ndes som USB-enheder, og kan ofte ndes integreret i mobiltelefoner, bærbarecomputere mv. Bluetooth kan ndes som Black-box-løsninger med serielt interface, som gørdet muligt at sammensætte dette med et mikrocontroller system.[Bluetooth SIG, Inc, 2010]
43
ZigBee
ZigBee er en trådløs standard, som opererer ved 2,4 GHz. ZigBee teknologien kan f.eks.realisres ved brug af et XBee modul. Dette er et let tilgængeligt og færdigt modul, sombenytter et standard seriel interface. Rækkevidden på et sådan modul er ifølge [MaxStream,Inc, 2006] 30 m indendørs.
Zigbee har en ulempe mht. at interface med en pc gennem den trådløse forbindelse. ZigBeeer normalt ikke indbygget i pc'er og der kræves derfor en adapter, mens teknologier somBluetooth og WiFi begge er mere almindelige at have indbygget i sin pc.[MaxStream, Inc,2006]
UHF / VHF
UHF dækker over frekvensbåndet 300-3000 MHz, mens VHF er 30-300 MHz. Der forendestranscievere, som kan transmittere logiske niveuer på en afstand op til 300 meter, og medhastigheder op til 100 kbaud. Dette ville være tilstrækkeligt til anvendelse i dette projekt.Teknologien fravælges fordi den vil kræve omfattende hardware og software implementering,i forhold til færdigtudviklede moduler.[Texas Instruments, 2009]
WiFi
WiFi standarden, også kendt som IEEE 802.11, ndes i forskellige versioner. Versionerne a,b, g og n er dem der bruges i almindelige kommercielle produkter, f.eks. i næsten alle nyerebærbare computere.
Wi transceivere er tilgængelige i formfaktorer som gør det muligt at installere dem i mobil-telefoner og lignende udstyr, som sætter krav til størrelse og strømforbrug. Dette gør at WiFier egnet til at sidde på en simpel mobil platform, som stalker bliver. Problemet med WiFii forhold til de mange andre typer af forbindelser, der er nævnt i dette afsnit, er dens kom-pleksitet. Der ndes dog færdige produkter, som tilbyder forskellige interfaces til en færdigWiFi-løsning.
44
Der er fundet en specik løsning fra Roving Networks, som kan virke som seriel til WiFi-interface for stalker. Ifølge producentens hjemmeside, kan modulet arbejde med et netværk påop til 100 meter i radius [Roving Networks, Inc - Homepage, 2010]. Modulet kører b/g hvilketgiver den en teoretisk overførselshatighed på 54 Mbit/s med 802.11g. UART interfacet påmodulet har dog en makshatighed på ca. 1Mbit, hvilket sætter begrænsning for hvor hurtigtdata kan sendes via, og aftages fra det trådløse netværk. En begrænset hastighed betyder iføl-ge modulets datablad også en øget rækkevidde, hvilket er vigtigere i denne sammenhæng, ogkan betyde, at den indbyggede keramiske antenne er nok til dette projekt.[Roving Networks,Inc, 2010]
Konklusion
WiFi viser sig let tilgængelig, med tilstrækkelig rækkevidde og overførselshastighed, og erderfor en oplagt løsning til realisering af trådløs kommunikation.
Bluetooth er også let tilgængelig og har 100 meters teoretisk rækkevidde. Bluetooth fravælgesda der på semesteret er blevet undervist i netværksprotokoller som f.eks. anvendes til WiFikommunikation.
ZigBee fravælges da den ikke opfylder det stillede krav til rækkevide. Implementering vildesuden kræve yderligere hardware til PC.
Gruppen vælger derfor at benytte WiFi som trådløs forbindelsesteknologi mellem stalkerog PCen. Der vil blive benyttet den tidligere omtalte løsning fra Roving Networks. Der ervalgt en udgave der er monteret på et breakout-board, der letter tilgangen til de forskelligeforbindelser.
Det er valgt at stalker skal have en WiFi løsning fra Roving Networks, som muliggører over-
førselshastigheder på tæt ved 1 Mbit/s, med en rækkevidde på op til 100 meter. Dette muliggør
også kommunikation med computer, hvorpå en brugerade kan udvikles.
45
4.6 Mikrocontroller
Der opstilles i dette afsnit krav til mikrocontroller.
Mikrocontrolleren skal stå for regulering af stalker. Den skal kunne tage imod input fra deforskellige sensorer, og oversætte dette til PWM-signaler, som kan styre bilens retning oghastighed. Mikrocontrolleren skal ligeledes kunne kommunikere med PCen via den trådløseforbindelse. Der opstilles først krav til hvilke in- og output mikrocontrolleren skal kunnehåndtere, hvorefter der vælges en til formålet.
PWM-Output
Der skal bruges to PWM kanaler til at styre stalker. Disse skal styre hhv. motoren og servo-motoren på bilen, da disse kan kontrolleres direkte med PWM-sinaler.
Universal Asynchronous Receiver/Transmitter (UART)
Til debugging af systemet og kommunikation over WiFi skal der bruges en UART forbindelsetil at kommunikere med systemets WiFi-modul.
Tællere
Der ønskes interne tællere til bilateration og styresystemet, så der undgåes yderligere hardwa-re og implementering.
Interrupts
For at processoren kan håndtere ere tråde, og for at sikre korrekt timing mht. input, skalder være mindst to prioriterede interruptniveauer.
Tilgængelighed
Der skal vælges en mikrocontroller som er mulig at anskae og implementere. Det er f.eks. ikkemuligt inden for projektes rammer, at montere chips i BGA pakker, eller lignende surfacemount enheder.
46
Valg af mikrocontroller
Der er taget ere forskellige mikrocontrollere i betragtning til at opfylde de opstillede krav.
Ved at vælge en mikrocontroller, som indeholder en processor sammen med RAM, ROM ogeventuelt andre perifære enheder, kan der undgås at have disse tilkoblet eksternt. FirmaetAtmel producerer bl.a. mikrocontrollerer, som indeholder enten Atmels egne mikroprocessorereller processorer fra ARM. Udvalget begrænses til de mikrocontrollerer som er tilgængelige iDIP form eller premonteret på breakout boards.
Af alle Atmels mikrocontrollerer, som ndes i DIP pakke, er der ingen der opfylder kravet tilinterrupts, da de kun understøtter ét niveau, mens at der i dette tilfælde skal bruges minimumto. Derfor vil kun de chips, hvortil der ndes breakout boards komme i betragtning. De estemikrocontrollerer der ikke er i DIP, ndes der allerede breakout boards der passer til. Dettebetyder at det er muligt at vælge frit ud fra de øvrige krav. ARM-processorer er 32 bitenheder med mulighed for kommatalsberegninger. Atmel har i deres 8 bit mikrocontrollerekun én serie med ere interruptniveauer, imens alle deres 32 bit enheder også har dette. Dissemikrocontrollere vil alle overholde kravene stillet i afsnit 4.6, og derfor er det af gruppen valgtat der bruges den midste model med Atmel's egen mikroprocessor, kaldet ATxmega128A1,som er en 8 bit mikrocontroller, der kan købes monteret på et breakout board.
ATxmega128A1
For at skabe et overblik over den valge mikrocontroller, vil der her ndes en oversigt der viserrelevante egenskaber[Atmel, 2009]
Op til 32 MHz clockfrekvens 8 timere/tællere med 16 bits opløsning, der alle kan benyttes til PWM 8 UART enheder 8 KiB RAM 128 KiB ROM 3 interruptniveauer
Der er nu valgt og implementeret hardware til stalker og taget, der opstilles i næste afsnit de
regulatore som skal anvendes til regulering af hastighed og vinkel på stalker. Derefter designes
der software til hardware.
47
Kapitel 5
Regulatorer
I dette afsnit vil regulatorerne til systemet blive bestemt. Der vil blive vurderet på hvilken re-gulator der skal anvendes i de forskellige systemer, samt størrelsen af de forskellige parametrei disse.
Det fremgår i afsnit 3.1 at stalkeren har tre regulatorer. Afstandsregulatoren Da(s), hastig-hedsregulatoren Dh(s) og vinkelregulatoren Dv(s).
Da(s) og Dh(s) vil begge regulere på stalkerens hastighed. Derfor bliver de designet som enregulator, hvor at Dh(s) vil have den funktion at regulere på stalkerens hastighed, såledesat den overholder den ønskede hastighed. Da(s) har til opgave at regulere på afstanden tiltarget. Dette gøres ud fra den ønskede afstand mellem bilerne og den aktuelle afstand mellembilerne. Denne ønskede afstand vælges til at være 0,5 meter.
5.1 Afstandsregulator
Der skal designes en afstandsregulator så stalker er i stand til at opfylde kravene stillet i
kravspecikationen, dvs. stalker skal være i stand til at holde en fast afstand til forankørende
target og aldrig ramme denne. Der vælges først at designe en P-regulator ved at betragte
systemet som værende analogt, hvorefter denne digitaliseres for at se om systemet forbliver
stabilt ved den samplingsfrekvens som systemet kører ved.
Der vurderes på oversving, indsvingsningstid og steadystate-fejl ud fra den digitale model afsystemet. Er regulatoren tilstrækkelig bliver den forsøgt implementeret på systemet og evt.justeret derefter.
48
Det var tiltænkt at afstandreguleringen skulle have to sensorer og to regulatorer, en til ha-stighed og en til afstand. Dette har vist sig ikke at være muligt med den konstruerede hastig-hedssensor, som grundet langsom opdateringsfrekvens gør at systemet ikke kan blive stabilt.Der er ved en hastighed af bilen på f.eks. 1 m/s en opdateringsfrekvens på 8 Hz. Dette skyldesat hjulene ved denne hastighed roterer 4 gange i sekundet, hvilket gør at akslen, som dermåles hastighed på, roterer ved en frekvens på 8 Hz. Der blev forsøgt designet et system meddenne sensor, men grundet den lave samplingstid kunne stabilitet af systemet ikke opnåes.Det blev derfor valgt at undvære hastighedssensoren i systemet.
Dermed bliver reguleringssløjfen for afstandreguleringen som opstillet her:
+
−Ønsket afstand[m]
Da(s)
Afstandregulator
e−s·0.0194
Tidsdelay
H-bro Gh(s)
Motor
Ga(s)
Ha(s)
Afstandssensor
Ra(s) CT CT CT Spænding[V] Hastighed[m/s] −
CT
Target ændrer hastighed
+
Afstand[m]
Ya(s)
Figur 5.1. Diagram for afstandsregulering af stalker.
Reguleringssløjfen som fremgår på gur 5.1 indeholder forskellige blokke. Afstandregulatoren,Da(s), bestemmes i dette afsnit, e−s·0.0194 er tidsdelayet som fremkommer af periodetiden forPWM signalet, som skal sættes for at ændre spændingen over bilens moter,H-Bro er omsæt-ningen fra PWM til spænding, Gh(s) er omsætningen fra spænding over motor til hastighedaf stalker, Ga(s) er omsætningen fra hastighed til afstand og Ha(s) er afstandssensoren.
Reguleringen skal foretages af en mikrocontroller, og derfor deles systemet op i to dele. Denene er den analoge del bestående af Gh(s) og Ga(s), som der skal foretages regulering af.Den anden del er det digitale system som er regulatoren Da(s). Afstandssensoren Ha(s) ogH-broen ligger på grænseaden mellem det digitale og det analoge system, men de betragtessom en del af det digitale, idet de ikke indeholder nogen dynamik, og kun har til funktion attage målinger til brug i reguleringen og sætte spændingen på motoren.
Afstandssensorens overføringsfunktion estimeres til værende 1, idet systemet betragtes ana-logt og tidsforsinkelsen i denne derfor er tilnærmelsesvis uendelig lille. Derved er det derhar indydelse på systemet Da(s), Gh(s) og Ga(s). Tilsammen vil Gh(s) og Ga(s) giveanledning til at systemet bliver et 2. ordens system.
For at nde en passende regulator til systemet, forsøges der først med at bruge en propor-tionalregulator, hvorefter der undersøges om kravene er overholdt. Hvis det ikke er tilfældetprøves der med en mere avanceret regulator.
49
Overføringsfunktionen for Ga(s) har et hastigheds-input målt i m/s og et afstands-outputmålt i m. Derfor er denne:
Ga(s) = K ·1
s[-] (5.1)
Overføringsfunktionen for Gh(s) har et spændings-input og hastigheds-output, idet dette eren DC-motor. Motoren opfører sig som et 1. ordens system, og derfor kan overføringsfunk-tionen beskrives som:
Gh(s) =KDC ·Kτs + 1
[-] (5.2)
Hvor KDC er motorens DC-forstærkning og τ er tidskonstanten. Udfra målejournal A ndesτ til 0,198 sekund. DC-forstærkningen ndes til 305,4 udfra hældningen på graf A.2 påside 109. Denne DC-forstærkning beskriver omsætning fra volt til RPM på hjulet. Der ønskesen hastighed af bilen, og derfor omregnes hjulenes omdrejningshastighed i RPM til bilenshastighed i m/s. Dette gøres her hvor K er forholdet mellem RPM og m/s. Dette forholdberegnes her:
K =dhjul · π
60[-] (5.3)
K = 4,2673E− 3 [-] (5.4)
Dermed fåes overføringsfunktionen for bilens hastighed til:
Gh(s) =1,303
0,198 · s + 1[-] (5.5)
H-broen regulerer spændingen fra 0 V til 6,9 V ved at øge pulsbredde på PWM-signalet fra1,5 ms til 2,1 ms, indenfor periodetiden på 0,0194 sekund. Der implementeres i softwaren enfunktion, hvor PWM kan reguleres op fra 0 til 100 %, hvor 0 % er stilstand og 100 % er vedmax hastighed, dvs. med spændingen 6,9 V. Dermed kan overføringsfunktionen for H-Broenbetragtes som en konstant, der er:
H-Bro =6,9
100[-] (5.6)
Der er nu opstillet overføringsfunktioner for alle blokke i reguleringssløjfen, og regulatorenkan nu bestemmes.
50
Åben- og lukketsøjfeforstærkning
Der skal til dimensionering af afstandsregulatoren, samt bestemmelse af systemtype, opstil-les udtryk for åben- og lukketsløjfeforstærkning. Først ndes åbensløjfeforstærkningen ogderefter opstilles lukketsløjfeforstærkningen. Åbensløjfeforstærkningen er givet ved:
La(s) = Da(s) · e−s·0.0194 · H-Bro ·Gh(s) ·Ga(s) · Ha(s) [-] (5.7)
Dette giver med værdier indsat:
La(s) = Da(s) ·0,08985 · e−s·0,0194
0,198s2 + s[-] (5.8)
Det ses udfra nævneren i udtrykket for åbensløjfeforstærkningen, at systemet er af type 1,da det har en pol i s = 0. Idet reguleringssløjfens input er en fast værdi, i form af en afstand,er der ikke nogen steady-state fejl.
Der opstilles her udtryk for lukketsløjfeforstærkningen:
Ta(s) =Ya(s)
Ra(s)=
La(s)
1 + La(s)[-] (5.9)
Ta(s) =
Da(s) ·0,08985 · e−s·0,0194
0,198s2 + s
1 + Da(s) ·0,08985 · e−s·0,0194
0,198s2 + s
[-] (5.10)
Ta(s) =Da(s) · 0,08985 · e−s·0,0194
(0,198s2 + s) + Da(s) · (0,08985 · e−s·0,0194)[-] (5.11)
51
Dimensionering af regulator
Der skal nu dimensioneres en regulator, som gør systemet stabilt. Dette gøres ved at betragtesystemet analogt og tilpasse regulatoren, så der opnåes en fasemargen på 45°, idet systemetdermed betragtes som stabilt. Dette gøres ved at aæse forstærkningen ved -135° og der-udfra bestemme regulatorværdien[Gene F. Franklin, J. David Powell, Abbas Emami-Naeini,2010,Chapter 6]. Der opstilles her bodeplot for åbensløjfeforstærkningen, uden regulator,hvor fasen og forstærkningen plottes som funktion af frekvensen.
Bodediagram − Åbensløjfe
Frequency (Hz)
−50
−40
−30
−20
−10
0
Frequency (Hz): 0.677Magnitude (dB): −35.8
Mag
nitu
de(d
B)
10−1
100
−180
−150
−120
−90
Frequency (Hz): 0.677Phase (deg): −135
Pha
se(d
eg)
Figur 5.2. Bodeplot for åbensløjfe forstærkningen uden regulator.
Der aæses en forstærkning på -35,8 dB ved -135°. Dette svarer til en forstærkning på 0,0162gange. Dermed bliver regulatorværdien for afstandregulatoren:
Da(s) =1
0,0162= 61,82 [-] (5.12)
52
Der opnåes med denne regulator en fasemargen på 45°, som vist her hvor åbensjøjfeforstærk-ningen, med regulatoren, er plottet:
−30
−20
−10
0
10
20
30
40
50
Mag
nitude
(dB)
10−2
10−1
100
−180
−135
−90
−45
0
45
90
135
180
Pha
se(deg
)
BodediagramGm = 19.5 dB (at 2.53 Hz) , Pm = 45.2 deg (at 0.676 Hz)
Frequency (Hz)
Figur 5.3. Bodeplot for åbensløjfe forstærkningen med regulator.
53
Der kan nu med den fundne regulator opstilles bodeplot for lukketsløjfeforstærkningen, somer givet ved udtryk 5.11 på side 51. Denne plottes her:
10−1
100
101
−180
−135
−90
−45
0
45
90
135
180
Pha
se(d
eg)
Bodediagram − Lukketsløjfe
Frequency (Hz)
−40
−30
−20
−10
0
Frequency (Hz): 1.13Magnitude (dB): −3
Mag
nitu
de(d
B)
Figur 5.4. Bodeplot for lukketsløjfe forstærkningen med regulator.
Ud fra overstående plot bestemmes en minimums samplingshastighed for den digitale modelaf systemt. Der aæses på gur 5.4 en båndbredde på 1,13 Hz ved -3dB. Dette giver anledningtil at der skal samples med mindst 22,8 Hz, idet der som tommelngerregel skal samples 20gange hurtigere i båndbredden.[Gene F. Franklin, J. David Powell, Abbas Emami-Naeini,2010,s. 578]. Dette giver ikke anledning til problemer, da der samples med 100 Hz.
Stabilitet
Den analoge model for reguleringen af afstanden digitaliseres nu, for efterfølgende at kunnebetragte oversving, indsvingningstid og stabilitet. Dette gøres ved at digitalisere den analogemodel for lukketsløjfeforstærkningen ved brug af Zero Order Hold (ZOH) i MATLAB. Deranvendes ved Z-transformering samplingsfrekvensen 100 Hz, idet target udsender pejlingssig-naler og synkroniseringssignal 100 gange i sekundet.
54
Der Z-transformeres først åbenløjfeforstærkningen uden delay, hvorefter Z-transformen afdelayet ganges på. Dermed fåes Z-transformen af åbensjøjfeforstærkningen. Der opstilles udfra denne en lukkesløjfeforstærkning, som vha. funktionen d2d i MATLAB konverteres til etsystem med frekvensen for PWM-signalet. Der plottes, ud fra den fundne digitale model aflukketsløjfeforstærkningen, et step respons:
Figur 5.5. Step respons for den digitale lukketsløjfeforstærkning.
Der er aæst på graf 5.5 at der er et oversving på 25% og en insvingsningstid på 2,5 sekunder.Oversvinget betyder i værste fald, at bilen kan afvige ± 12,5 cm fra den ønskede afstand.Dette vurderes som værende acceptabelt, idet det ikke fører til sammenstød, og kun gældernår der accelereres op fra stilstand. Indsvingsningstiden på 2,5 sekunder er forholdsvis lang.Denne kan forbedres med en højere samplingsfrekvens, men vil altid være begrænset af op-dateringsfrekvensen for PWM signalet. Det betyder, at der skal implementeres en ny H-bro,hvis indsvingningstiden skal forbedres.
55
Der plottes nu polers og nulpunkters placering:
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1Pole−Zero Map
Real Axis
ImaginaryAxis
Figur 5.6. Pol- og nulpunktsplot for den digitale lukketsløjfeforstærkning.
Det ses at alle poler og nulpunkter ligger indenfor enhedscirkelen, og derfor betragtes systemetsom værende stabilt.
56
5.2 Vinkelregulator
Vinkelregulatoren skal sørge for at stalker holder kursen mod target. Den skal designes såle-
des, at den er tilstrækelig til at opfylde kravene stillet i kravsspecikationen. Det vil sige at
den skal kunne holde kursen ved min. 5 km/t. Der vil i det følgende blive designet en propor-
tionalregulator, til kørsel ved 5 km/t. Der anvendes samme fremgangsmetode som ved design
af afstandsregulatoren, dvs. der først forsøges designet en P-regulator.
Åben- og lukketsløjfeforstærkning
For at bestemme regulatoren, Dv(s), opstilles åbensløjfeforstærkning for systemet. Sløjfenkan ses på gur 5.7
+
−Ønsket vinkel
Dv(s)
Vinkelregulator
e−s·0.0194
Tidsdelay
Servo
Servomotor
Gv(s)
Hv(s)
vinkelsensor
CT CT CT CT Vinkel[°] −
CT
Vinkel[°]
Target ændre vinkel
+ Yv(s)
Vinkel[°]
Figur 5.7. Diagram over reguleringssløjfen, for retningsregulering af stalker.
Åbensløjfeforstærkningen bliver derved:
Lv(s) = Dv(s) · Tidsdelay · Servo ·Gv(s) · Hv(s) [-] (5.13)
Hvor:
Dv(s) er regulatoren [-]
Tidsdelay er forsinkelsen i styringen [-]
Servo er omregningsfaktoren fra PWM til hjulvinkel [-]
Gv(s) er forholdet mellem hjulvinkel og vinkel til target [-]
Hv(s) er sensoren [-]
Tidsdelayet er givet ud fra servo'ens periodetid på 0,0194 sekund.
57
Servoen regulerer vinklen fra 70° til 110° ved at pulsbredden øges på PWM-signalet fra 1,1ms til 2,2 ms. De 90° betragtes som neutral, dvs. bilen kører ligeud. Derfor anvendes det, atbilen kan dreje hjulene fra venstre til højre i vinklen fra -20° til +20°. Der implementeres isoftwaren en funktion hvor PWM kan reguleres op fra 0% til ±100%, hvor 0% er neutral og±100% er ±20°. Dermed kan overføringsfunktionen for servoen betragtes som en konstant.Denne er omregningsfaktoren for PWM til hjulvinkel og er givet ved:
Servo =20
100[-] (5.14)
Gv(s) som er overføringsfunktionen for hjulvinkel til vinkel mellem stalker og target, er givetved formel 3.45 på side 32 som:
Gv(s) = v ·(
1
l+
1
L
)· 1
s[-] (5.15)
Hvor:
v er hastigheden [m/s]
l er afstanden mellem bilerne [m]
L er akselafstanden på stalker [m]
Med en sensor Hv(s) = 1, en reference afstand på 0,5 meter, og en hastighed på 5 km/t bliveråbensløjfeforstærkningen uden regulator:
Lv(s) = e−s·0.0194 · 20
100· 1,39 ·
(1
0,5+
1
0.26
)· 1
s· 1 [-] (5.16)
58
Dimmensionering af regulator
Der designes ud fra en ønsket fasemargin på 45°. Formel 5.16 plottes som et bodeplot, vistpå gur 5.8, og frekvensen aæses ved et fasedrej på 135° til 6,4 Hz.
−50
−40
−30
−20
−10
0
10
20
30
Frequency (Hz): 6.4Magnitude (dB): −27.9
Magnitude
(dB)
10−1
100
101
−180
−135
−90
−450
45
90
135
180
Frequency (Hz): 6.4Phase (deg): −135
Phase
(deg)
Frequency(Hz)
Bodediagram - Åbensløjfe uden regulator
Figur 5.8. Bodeplot for åbensløjfeforstærkningen.
Forstærkningen ved 6,4 Hz aæses til -27,9 dB, hvilket vil sige at regulatoren skal give enforstærkning på:
Dv(s) = 1027,9/20 = 24,8 [-] (5.17)
Med regulatoren bestemt, ses der på lukketsløjfebåndbredden, for at se om kravet for sam-plingsfrekvens kan overholdes, i forhold til at systemet skal være stabilt. Lukketsløjfen medregulatoren bliver:
Tv(s) =e−s·0.0194 · 1,63 · 1
s
1 + e−s·0.0194 · 1,63 · 1s
[-] (5.18)
59
Båndbredden aæses på gur 5.9 til 15 Hz ved -3 dB forstærkning. Dette vil sige at der somminimum skal samples med 300 Hz.
100
101
−180
−135
−90
−45
0
45
90
135
180
Pha
se(d
eg)
Bodediagram − Lukketsløjfe
Frequency (Hz)
−4
−2
0
2
4
Frequency (Hz): 15.1Magnitude (dB): −3
Mag
nitu
de(d
B)
Figur 5.9. Båndbrede for lukketsløjfeforstærkningen, med en regulator på 24,8.
Dette er tre gange frekvensen der samples med, som er 100 Hz, idet dette er frekvensenaf pejling- og synkronierinssignalet fra target. Dette kan derfor ikke overholdes med denneregulatorværdi. Dette løses ved at sænke regulatorens forstærkning. Det viste sig, at meden Dv(s) forstærkning på 11, bliver lukketsløjfebåndbredden sænket til 4,85 Hz, plottet pågur 5.10 på næste side.
60
10−1
100
101
−180
−135
−90
−45
0
Pha
se(d
eg)
Bodediagram - Lukketsløjfe med mindre regulator
Frequency (Hz)
−8
−6
−4
−2
0
Frequency (Hz): 4.79Magnitude (dB): −3
Mag
nitu
de(d
B)
Figur 5.10. Båndbredde for lukketsløjfeforstærkningen med en regulator på 11.
Med regulatorværdien 11, opfyldes reglen om en samplingsfrekvens på 20 gange lukketsløj-febåndbredde.
61
Stabilitet
Det kontrolleres nu om systemet vil være stabilt i den digitale udgave, når denne implemen-teres på en mikrocontroller.
Udtrykket for lukketsløjfen, Tv(s), z-transformeres ved brug af Zero Order Hold (ZOH) iMATLAB, i første omgang som et 100 Hz system, for at få præcisionen af samplingsfrekvensenmed. Efterfølgende konverteres systemet til et 51,5 Hz system, for at kunne se eekten afPWM forsinkelsen på step-responset. Dette giver anledning til følgende overføringsfunktionfor lukketsløjfen:
Tv(z) =0,3468 · z − 0,03
z3 + z2 + 0.3468 · z + 0,03[-] (5.19)
Step responset for overstående udtryk bliver:
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.40
0.2
0.4
0.6
0.8
1
Step Response
Time (sec)
Amplitude
Figur 5.11. Step respons for formel 5.19. Den blå linje viser steppet for den analog overførings-
funktion, og den røde viser den tilsvarende digitale udgave.
Det ses af gur 5.11, at der intet oversving er og en indsvingningstid på 0,15 sekund. Dettebetragtes som tilstrækkeligt, idet hjulenes vinkel dermed hurtigt vil blive sat, pga. indsving-ningstiden, og justere direkte ind, idet der ikke er oversving.
62
For at sikre stabilitet ses der på pol- og nulpunktsplot:
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1Pole−Zero Map
Real Axis
ImaginaryAxis
Figur 5.12. Pol- og nulpunktsplot. Alle poler og nulpunkter ligger indenfor enhedscirklen.
Det ses at alle poler og nulpunkter ligger inden for enhedscirklen, hvorved at systemet kanbetraktes som værende stabilt.
Der en nu opstillet regulatorer til afstands- og vinkelregulering. I det kommende afsnit udvikles
der software til stalker, hvori regulatorerne implementeres. Derefter testes disse i praksis.
63
Kapitel 6
Software
Der er nu valgt en metode til lokalisering af target, samt opstillet modeller og regulatorer forstalker. Der er også blevet implementeret hardware til realtidsstyring af stalkers retning oghastighed, ud fra afstand og vinkel mellem den og target.
Dette afsnit beskriver softwaren, der udvikles til stalkers mikrocontroller. Der beskrives førstopbygningen af softwaren, hvor softwaren deles op i moduler. Dernæst vælges type af styre-system, hvorefter de nødvendige funktioner til modulerne udvikles. Til sidst implementeresdet valgte styresystem.
Der vil i dette kapitel forekomme pseudokode. Den færdige kode til både stalker og targetkan ndes på cden, med tilhørende HTML-dokumentation software/doxygenoutput/htm-
l/index.html .
64
6.1 Softwarestruktur
I dette afsnit opdeles systemets software i moduler for at give et overblik over de funktioner,
som det kommende styresystem skal håndtere. Disse moduler vil efterfølgende hver for sig
blive uddybet med pseudokode og eventuelt owcharts.
Der foretages en opdeling af systemet i de re moduler: Afstands- og vinkelberegning, regu-lering, kommunikation og brugerade til PC, som illustreret på gur 6.1.
Styresystem
Regulering Kommuni-kation
Afstands-og vinkel-beregning
Brugerade
Figur 6.1. Blokdiagram over de re softwaremoduler som håndteres af styresystmet.
Herefter beskrives de forskellige modulers funktionaliteter.
65
Afstands- og vinkelberegning
Modulet afstands- og vinkelberegning, har den funktion at omdanne sensorernes inputs til enafstand og en vinkel mellem de to biler. Dette skal gøres udfra de to tider, hvortil ultralydsmodtagerne modtager signal fra target og derved giver interrupts til systemet. Der skal udfra tidsforskellen mellem disse to signaler foretages en beregning, der giver et resultat i formaf vinkel og afstand mellem de to biler. Denne vinkel og afstand skal reguleringsmoduletanvende til styring af stalkers hastighed og retning, alt efter hvad target foretager sig.
Selve sensor-systemet består af følgende tre sensorer:
Ultralyds-modtager højre Ultralyds-modtager venstre Radio-modtager
Hvor alle sensorerne giver interrupts til systemet, og i samspil giver to tider. Der er derfor tildette modul en funktion som håndterer interrupts fra de tre sensorer. Denne fungerer ved atradio-modtageren giver et interrupt som starter en timer, hvorefter de to ultralyds-modtageregenererer hvert deres interrupt, og ved brug af denne timer aæses de to tider. Disse to tideromregnes til afstand og vinkel mellem bilerne.
Regulering
Regulatormodulet står for regulering af stalkers hastighed og retning. Dette gøres ved atjustere PWM styresignalet til hhv. DC-motor og servomotor. Der ndes derfor disse to regu-leringer:
Afstandsregulering Retningsregulering
Der er til dette modul derfor to funktioner, der håndterer hver sin regulering. Afstandsregule-ringen har til opgave at specicere den hastighed, der er nødvendig for at stalkeren kan opnåden ønskede afstand til target. Denne hastighed, repræsenteret vha. PWM, bliver reguleretudfra den i afstands- og vinkelberegnings modulet beregnede afstand mellem bilerne.
Retningsreguleringen, har til opgave at ændre forhjulenes vinkel, således at bilen følger eftertarget. Dette gøres udfra den af afstands- og vinkelberegnings modulet beregnede vinkelmellem blierne, som omsættes til et PWM signal, der giver anledning til en vinkel på stalkershjul.
66
Der er på gur 6.2 opstillet et blokdiagram for hvordan afstand- og vinkelberegning
hænger sammen med regulatorerne.
UltralydHøjre
UltralydVenstre
Radio-modtager
Interrupt-rutiner
Afstands-og vinkel-beregning
Afstands-regulator
Vinkel-regulator
H-Bro
Servo
tid venstre
tid højre
Figur 6.2. Blokdiagram over hvordan afstand- og vinkelberegning hænger sammen med regulato-
rerne.
Der gennemgåes nu, hvordan den trådløse kommunikation mellem stalker og PC med bru-gerade, fungerer.
Kommunikation
Kommunikationsmodulet håndterer kommunikation til og fra stalker vha. en WiFi forbindel-se. Denne WiFi forbindelse udgøres af et WiFi-modul, som vha. UART sender og modtagerdata mellem stalker og PC. Den trådløse kommunikation består af følgende dele:
Kommunikations protokol Send/Modtag WiFi opsætning
Der skal implementeres en Wi opsætning på stalker, således at trådløs kommunikation medPC og tilhørende brugerade er mulig. Denne implementers og der deneres en kommuni-kationsprotokol. Denne protokol anvendes til tolkning af kommandoer og data der sendesmellem stalker og PC.
67
Kommunikationsmodulet giver derfor anledning til funktioner på stalker, som skal håndterehenholdsvis transmittering og modtagelse af kommandoer og data til og fra stalker. Der skalsendes data til WiFi-modulet fra stalker, og modtages data fra WiFi-modulet. Der tolkespå modtaget data fra WiFi-modulet vha. kommunikationsprotokollen, hvorved kommandoerheri identiceres. Derefter udføres kommandoerne, og der gives besked til brugeren om atdette er gjort, samt eventuelle foresprugte værdier sendes.
De kommandoer som stalkeren skal være i stand til at reagere på, er følgende:
Start Stop Hent Sæt
Som henholdsvis starter stalker, stopper stalker, henter en variabel og sætter en variabel.Kommunikationen på stalkerens er illusteret på gur 6.3.
UART/modtag
Interrupt-rutine
Kommunika-tionsprotokol
Hentvariabel
Sæt variabel
Fejl
Start
Stop
UART/send
Figur 6.3. Blokdiagram over hvordan kommunikationen er opbygget. Der kommer en kommando
vha. UART forbindelsen, denne identiceres vha. kommunikationsprotokollen, hvoref-
ter kommandoen udføres og der sendes en bekræftelse og evt. data tilbage til brugeren
vha. UART forbindelsen.
Kommunikationsprotokollen implementeres ligeledes på en PC, ved anvendelse af en bruger-ade som beskrives i næste modul.
68
Brugerade
Brugeraden skal køre på en PC. Softwaren til denne har til opgave at kommunikere medsystemet via WiFi forbindelsen, hvor der kan sendes kommandoer til systemet på bilen, somenten kan være ændringer af indstillinger eller forespørgsel på data.
Der er på gur 6.4 opstillet blokdiagram for trådløs kommunikation mellem stalker og PCmed brugerade.
Mikro-controller
UART
WiFiPC/bruger-
ade
Figur 6.4. Flowchart over kommunikation mellem stalkers mikrocontroller og PC med brugerade.
Der er nu forklaret hvilke funktioner, der skal håndteres af styresystemet. Der er overordnet
set re moduler: Afstands- og vinkelberegning, regulering, kommunikation og brugerade. Der
vælges i det kommende afsnit hvilken type styresystem der skal håndtere afviklingen af de
funktioner som modulerne kræver.
69
6.2 Valg af styresystem
Styresystem til håndtering af systemets funktioner kan f.eks. implementeres sekventielt, vedbrug af interrupts eller ved kerne-styring. Disse tre metoder beskrives her, hvorefter en vælges.
Sekventielt
Sekventiel styring er en metode, som mikroprocessoren kan bruge, til at styre afviklingen afsoftware. Der kommunikeres med perifære enheder og modtages inputs ved brug af polling.Mikroprocessoren skal ved polling selv kontrollere om der er kommet ny data fra enheder,som er tilsluttet. Dette betyder, at mikroprocessoren konstant skal kontrollere for nye inputs,og denne kan derfor ikke eektivt foretage andre operationer, mens den venter på input.
Fordelen er, at der på denne måde ikke sker uforudsete spring i programmet, som derfor gørdet lettere at overskue. Dette betyder også, at det er vanskeligt at ændre i programmet, daeksekveringsrækkefølgen altid er den samme, og derfor ikke kan ændres dynamisk. Der spildesogså processorkræfter på at se efter data som ikke nødvendigvis er klar.
Interrupts
Interrupt-styrede systemer fungerer ved at de perifere enheder selv kontakter mikrocontrolle-ren, når de er klar med nye input. Interrupt-styrede systemer fungerer ved at når et interruptmodtages kan der ske tre ting. Enten afbrydes den igangværende funktion og det nye in-put behandles, det nye input sættes i kø og behandles, når den igangværende funktion ereksekveret færdig eller interruptet ignoreres.
Fordelen ved interrupts er, at vigtige funktioner kan blive eksekveret før andre, hvis det øn-skes. Dette kan gøres ved anvendelse af forskellige interruptniveauer. Det har også den fordel,at når mikrocontrolleren ikke modtager input, kan denne koncentrere sig om de funktioner,der ikke skal bruge input eller ændringer udefra. Derfor er funktionerne ikke fastlåst til atblive eksekveret i en fast rækkefølge. Ulempen er derimod, at når der kommer et interrupt,er mikrocontrolleren nødt til at udføre alle de opgaver, som interruptet kræver, før der kanarbejdes videre med den igangværende funktion.
70
Kerne
Kerne-styrede systemer virker ved, at de funktioner der skal køres på systemet, sættes i enkø, og eksekveres i en rækkefølge bestemt af en scheduler. Dette betyder, at der dynamiskkan ændres på rækkefølgen, som de forskellige funktioner vil blive eksekveret i. Samtidigt kanfunktioner, der aktiveres af interrupts, også sættes i køen, således at det altid er den mestkritiske funktion der eksekveres først.
Valg
Der er i projektet valgt at bruge en kerne til at styre softwaren. Dette er valgt, idet det er etkrav at projektet skal indeholde multiprogrammering og et system kørende i realtid. Detteudføres ved brug af en kerne. Desuden vil det være muligt at ændre på eksekveringsrække-følgen af koden.
Der vil blive implementere et system, hvor kernen bruges til at holde styr på hvilke funktionerder må køre på forskellige tidspunkter. Dette gøres ved at sortere funktionerne, og starte dem iden rigtige rækkefølge. Der vil også blive anvendt interrupts, som skal komme fra den trådløsekommunikation og sensorer, når disse har input til systemet. Der anvendes interrupts tilsensor-systemet, som interrupter ved nye målinger, og dele af kommunikationen, som startesnår systemet modtager data igennem netværket.
Styresytemet er nu valgt til værende en kerne. Der opstilles i kommende afsnit pseudokode
for de enkelte modulers funktioner. Herefter vil der, på baggrund af de pågældende funktioner,
blive taget stilling til hvilken type kerne og scheduling metode, der vil blive benyttet.
6.3 Afstands- og vinkelberegning
Afstands- og vinkelberegningen består af to ultralydsmodtagere og en radio-modtager, som be-
skrevet i afsnit 4.1. Der vil i dette afsnit først blive beskrevet hvilken matematisk beregning der
anvendes til bestemmelse af afstand og vinkel mellem de to biler. Derefter opstilles pseudokode
for den funktion der skal håndtere denne beregning
Der anvendes i beregningerne at der navigeres ud fra et kartesisk koordinatsæt, hvor origo erplaceret i fronten af stalker mellem de to ultralydsmodtagere. Interruptsignalerne fra de tremodtagere, skal omsættes til en afstand og en vinkel, som er relativ i forhold til origo. Dettegøres på følgende måde.
71
Først omregnes de tre interrupts om til to afstande. Modtagelsen af interrupten fra AM-modtageren angiver tiden 0, hvor modtagelsen af ultralydssignalerne er relativ til tiden 0.Derfor kan afstanden fra hver ultralydsmodtager til senderen udregnes som:
L = t · vlyd [m] (6.1)
Hvor:
L er afstanden [m]
t er tidsforsinkelsen fra tiden 0 [s]
vlyd er udbredelseshastigheden for lyd [m/s]
Dette giver anledning til to afstande, som i det følgende er betegnet som Lv og Lh for hen-holdsvis venstre og højre ultralydssensor. Disse to længder og afstanden mellem sensorerne,betegnet som Ls, udgør en trekant. Ud fra Herons formel kan arealet af trekanten udregnespå følgende måde:
At =1
4·√
(Lv + Lh − Ls) · (Lv − Lh + Ls) · (−Lv + Lh + Ls) · (Lv + Lh + Ls)[m2](6.2)
Hvor:
At er arealet[m2]
Lv er afstanden fra venstre sensor til target [m]
Lh er afstanden fra højre sensor til target [m]
Ls er afstanden mellem de to sensorer [m]
72
(x,y)
Centrum
Ls
Lv Lh højde = y
Sensor HSensor V
Figur 6.5. Trekanten mellem de to modtagere og target er givet ved grøn, mens trapezen er givet
ved det grønne og røde areal.
Ud fra denne trekant kan positionen af senderen angives som et (x,y) koordinatsæt. Y-koordinaten kan udregnes ud fra det dobbelte areal, så der derved fåes en trapez, hvory-koordinaten tilsvarer højden af trapezen. Y-koordinaten ndes ved:
y =2 · At
Ls[m] (6.3)
Hvor:
y er y-koordinaten [m]
(x,y)
Centrum
Lx
Lv y
Sensor HSensor V
Figur 6.6. Lx kan beregnes ud fra y og den ene sensorafstand.
Der kan nu dannes en retvinklet trekant ud fra y og en af de kendte sensorafstande, hvor sen-sorafstanden vil udgøre hypotenusen i trekanten. Længden af den ukendte katete i trekanten,angivet Lx kan ndes ud fra pythagoras sætning om retvinklede trekanter, hvilket giver:
Lx =
√L2v + y2 [m] (6.4)
Hvor:
Lx er længden af den ukendte katete [m]
73
(x,y)
Centrum x
yLt
Sensor HSensor V
Figur 6.7. Ud fra x og y-koordinaten kan denne trekant dannes, hvorfra afstand og vinkel kan
beregnes.
Der tages højde for at origo ligger mellem sensorene og x-koordinaten er da givet ved:
x = Lx −Ls2
[m] (6.5)
Hvor:
x er x-koordinaten [m]
X og y-koordinaten giver en vektor, som giver afstanden samt vinklen i forhold til origo, ogderved afstanden mellem target og centrum af stalker. Længden er givet ved:
Lt =√x2 + y2 [m] (6.6)
Hvor:
Lt er afstanden til target [m]
Vinklen kan ndes ved:
Vt = arcsin
(y
Lt
)− 90 [°] (6.7)
Hvor:
Vt er vinklen til target, fra -90 til 90 grader [°]
74
Ud fra de opstillede ligninger fremstilles følgende pseudokode for afstands- og vinkelbereg-ningen ud fra sensortider.
Beregn afstand for venstresensor
Beregn afstand for højresensor
Beregn x og y-koordinat
Hvis venstre sensorafstand mindre end højre
x = x * -1
Beregn afstand
Beregn vinkel
Sæt afstandsregulator i kø
Sæt vinkelregulator i kø
Beregningerne udføres som kommatalsberegninger ud fra formlerne i dette afsnit. Tidernefra de to sensorer ligger globalt, ligesom denne funktion sætter afstand og vinkel som globalevariabler. Vinklen udregnes i grader, og afstanden i cm, begge som heltal.
Efter beregningen af vinkel og afstand mellem bilerne sættes henholdsvis funktionen tilafstands- og vinkelregulatoring i kø til at blive kørt, så snart som muligt. Disse 2 regula-torer beskrives i kommende afsnit.
6.4 Regulering
I afsnit 5.1 og 5.2 blev der dimensioneret regulatorer til afstands- og vinkelregulering af stalker.
I dette afsnit vil det blive beskrevet hvordan de to funktioner, som håndterer dette, implemen-
teres.
Efter en endt afstands- og vinkelberegning, sættes begge regulatorer i kø til at blive kørtumiddelbart efter beregningsfunktionen, som blev beskrevet i foregående afsnit.
Begge regulatorer er opbygget som proportionalregulatorer, hvilket betyder at reguleringenudgøres af at gange en faktor på fejlen mellem det ønskede, og det målte.
75
6.4.1 Afstandsregulator
Her beskrives det, hvordan afstandsregulatoren er implementeret på stalker.
Afstandsregulatoren bliver sat i kø efter endt beregning af afstand og vinkel, og afstanden,som der skal reguleres på, ligger som global variabel. Den målte afstand trækkes fra reference-afstanden der er bestemt for systemet, og regulatorfaktoren ganges på.
Stalker regner i cm, for øget præcision, og regulatorerne er beregnet ud fra meter. Derfordeles der med 100 efter reguleringen.
Regulatoren er beregnet ud fra at der sættes en faktor mellem -100% og 100% af den tilgæn-gelige hastighed på motoren, efter reguleringen.
Efter denne beregning begrænses systemet til at arbejde imellem -100% og 100%, da regu-latoren ellers ikke ser en begrænset acceleration og hastighed. Alle tal under -100, bliver sattil -100, og alle tal over 100 bliver sat til 100.
Dette ganges med en faktor, der er udryk for det arbejdsområde PWM systemet i mikrocon-trolleren har at abejde indenfor, og til sidst lægges der et oset på, som er den duty-cycle,hvor stalker står stille.
Regulatoren implementeres på følgende måde:
midlertidig_beregning = (reference_afstand - afstand_målt) * afstandsregulatoren
midlertidig_beregning = midlertidig_beregning / 100
Hvis midlertidig_beregning er mindre end -100:
midlertidig_beregning = -100
Hvis midlertidig_beregning er større end 100:
midlertidig_beregning = 100
midlertidig_beregning = NULPUNKT + (midlertidig_beregning * PWM_hastigheds_faktor)
hastighedPWM = midlertidig_beregning
Variablen midlertidig_beregning er introduceret for at kunne lave mellemregninger tilbegrænsningen mellem -100 og 100 på reguleringen. uden denne begrænsning vil det væremuligt at skrive den nye duty-cycle direkte i hastighedPWM, som er det benyttede PWMregister på mikrocontrolleren.
76
6.4.2 Retningsregulator
Her beskrives det hvordan retningsregulatoren er implementeret på stalker.
Retningsregulatoren bliver sat i kø efter endt beregning af afstand og vinkel, og retningen,som der skal reguleres på, ligger som global variabel. Den målte vinkel til target trækkes frareference-vinklen der er bestemt for systemet, og regulatorfaktoren ganges på.
Regulatoren er ligesom den for afstand beregnet ud fra, at der sættes en faktor melem -100%og 100% af den tilgængelige vinkel på hjulene, efter reguleringen.
Retningsregulatoren er implementeret på følgende måde:
midlertidig_beregning = (reference_vinkel - vinkel_målt) * retningsregulatoren
Hvis midlertidig_beregning er mindre end -100:
midlertidig_beregning = -100
Hvis midlertidig_beregning er større end 100:
midlertidig_beregning = 100
midlertidig_beregning = NULPUNKT + (midlertidig_beregning * PWM_retning_faktor)
retningPWM = midlertidig_beregning
Det gælder på samme måde som ved afstandsregulatoren, at midlertidig_beregning erindført for at kunne lave mellemregninger, uden at ændre den oprindelige systemvariabel.
77
6.5 Kommunikation
Den trådløse kommunikation mellem stalker og pc med brugerade, foregår over en WiFi
forbindelse, hvor håndteringen af netværkspakkerne bliver varetaget af WiFi modulet. Der vil
i dette afsnit blive beskrevet hvilke funktioner der er tilgængelig fra PC og stalkeren samt den
tilhørende kommunikationsprotokol. Der vil også blive beskrevet opsætning af WiFi modulet.
De funktioner, der er tilgængelige til kommunikation mellem stalker og PC vil her blive listetog efterfølgende beskrevet. Der listes først de funktioner, der er tilgængelige fra stalkerensside af. Funktionerne er her vist grask.
Stalker
kommando send
Figur 6.8. Flowchart over stalkerens funktioner.
Den handling, som funktionerne udfører, er beskrevet her:
Funktion Handling
kommando Stalker modtager kommando fra PC og udfører dennesend Stalker sender status besked eller forespurgt værdi til PC
Stalkeren skal altså have nogle funktioner, der styres af kommandoer fra PCen. Disse kom-mandoer skal udføre en handling og give svar vha. funktionen send. De funktioner der ertilgængelige fra PCen er her vist grask.
start stop fetch set Modtag
PC
Figur 6.9. Flowchart over funktioner tilgængelig fra PC.
78
Den handling funktionerne udfører er her beskrevet:
Funktion Handling
start PCen fortæller stalker, at den skal begynde forfølgelsen af targetstop PCen fortæller stalkeren, at den skal stoppe alt kørselfetch PCen forespørger en given værdi fra stalkerens softwareset PCen sætter eller ændrer en værdi i stalkerens softwaremodtag PCen modtager tekstbesked fra stalkeren
i form af statusbeskeder eller forespurgte værdier
Der er nu dannet et overblik over strukturen af den trådløse kommunikation og de forskelligefunktioners handling. De forskellige funktioner fungerer ud fra kommunikationsprotokollensom nu beskrives.
6.5.1 Kommunikationsprotokol
Kommunikationsprotokollen denerer, hvordan kommunikation mellem stalker og PC skal
håndteres. Den denerer, hvilke kommandoer der kan gives, hvordan de angives samt hvil-
ke parametre der medtages. Yderligere denerer protokollen også håndtering af kommunika-
tionsfejl, f.eks. kommandoer angivet i forkert syntaks. De overordnede regler for protokollen
vil blive præsenteret, efterfulgt af eksempler på syntaksen.
For at stalkeren skal kunne identicere kommandoen, skal kommandoens parametre kommei en bestem rækkefølge, således bliver syntaksen som følgende:
Beskeden skal starte med en bestemt start byte. Beskedens første ord er kommandoen. Beskedens andet ord er variabelen. Beskedens trede ord er værdien. Beskeden skal slutte med en bestemt slut byte.
Følgende er et eksempel på syntaksen for at ændre værdien af en variabel i systemet, samthvordan denne vil se ud for at ændre den ønskede afstand mellem stalker og target. Dettegøres med kommandoen set efterfulgt af variabelen der skal ændres, samt den nye værdiaf variablen. Det antages her at afstanden er oplyst i centimeter, hvorved kommandoen vilændre den ønskede afstand til 50 cm mellem bilerne.
kommando variabel værdi → set afstand 50
79
Alt kommunikation via protokollen mellem PC og systemet er underlagt følgende:
Alt kommunikation startes med STX (ASCII karakter 0x02) Alt kommunikation afsluttes med ETX (ASCII karakter 0x03)
Hertil kommer yderlige denitioner som er specikke for de enkelte elementer.
For kommandoen gælder:
Der benyttes kun små karakterer Kan maximalt være 10 karakterer lang Adskilles med mellemrum
For en fetch kommando gives ingen værdi. Der afsluttes istedet efter variablens navn.
For variabel navne gælder det samme som kommandoer med følgende undtagelser:
Kan yderlige indeholde _ (bundstreg) Kan maximalt være 30 karakterer lang
For værdier gælder:
Kan kun angives som heltal Kan maximalt være 5 karakter lang
For en send kommando gælder det samme, som for de andre kommandoer. Denne adskildersig fra de andre kommandoer, ved at blive efterfulgt af en tekststreng. For denne tekststrenggælder følgende:
Kan maximalt indeholde 50 karakterer Kan indeholde variabel navn, værdier samt:
Store bogstaver Komma Punktum Tal Mellemrum
80
Her er et eksempel på en fetch kommando, som henter værdien af variablen kaldet speed.For brugeren af PCen vil den angives som:
fetch speed
PCen vil sørge for at tilføje STX og ETX, så hele kommandoen vil være følgende:
kommando STX f e t c h s p e e d ETX
ASCII (hex) 02 66 65 74 63 68 20 73 70 65 65 64 03
Stalkeren vil, hvis kommandoen modtages korrekt, returnere værdien af speed på følgendemåde:
data STX s p e e d 5 0 ETX
ASCII (hex) 02 73 70 65 65 64 20 35 30 03
Det gælder generelt at der ved modtagelse af en ukorrekt kommando vil blive sendt enfejlmeddelelse retur.
Der er nu opstillet en protokol, som skal implementeres på stalkers mikroprocessor og i bru-geraden. Stalkers håndtering af kommunikationen beskrives i afsnit 6.5.3 efter en beskrivelseaf den trådløse opsætning.
6.5.2 WiFi opsætning
I dette afsnit beskrives den trådløse opsætning af netkort, mikrocontroller og pc, så der kan
sendes kommandoer og svar mellem stalker og PC.
Stalker er koblet til et WiFi modul fra Roving Networks [Roving Networks, Inc, 2010], somstår for kommunikationen med en PC. Den er som standard sat op til at vise sig som enTCP server, hvor den benytter port 2000 til modtagelse af data. For at kunne komme ikontakt med den altid, er den blevet sat op til automatisk at forbinde sig til det trådløsenetværk ES-LAB som er et skjult trådløst netværk, der er tilgængelig overalt på den delaf universitetet som gruppen benytter. Ved at koble stalker op på dette netværk, kan denkontaktes på adressen stalker.lab.es.aau.dk fra PCer på universitetets netværk.
Når WiFi modulet er forbundet til et netværk virker den som broforbindelse mellem UARTpå mikrocontrolleren og 802.11g ethernet. Dette betyder at PC'en kan kommunikere v.h.a.TCP til WiFi modulet, som så sender kommunikationen videre via UART til microcontrol-leren og omvendt.
81
PCen vil anvende kommunikationen over en standard TCP socket forbindelse, hvilket kanimplementeres på ere måder, alt efter hvilket operativsystem og eksekveringsmiljø der arbej-des i. Hvordan forbindelsen er implementeret bliver beskrevet i afsnit 6.6, hvor brugeradenbeskrives.
6.5.3 Send/Modtag
Den trådløse kommunikation på stalker skal anvendes til at modtage kommandoer fra PCen,
samt afsende status tilbage til PCen. Syntaksen for kommunikationsprotokollen er beskrevet
i afsnit 6.5 på side 78, og i dette afsnit beskrives funktionerne til implementering af denne
protokol på systemet.
Det er speciceret at start byteen er STX og stop byteen er ETX. En kommando består af optil tre ord, hvor det første ord er kommandotypen, det næste ord er den eventuelle variabel,mens det sidste ord er den eventuelle variabels værdi.
Når der sendes data til WiFi modulet, får systemet et interrupt på en receive port. Dettemedfører, at funktionen rxByte kaldes. Denne tjekker for om en kommando har den rigtigestart og stop byte, henter den ind i en buer, og derefter sætter en funktion i kø, som agererpå kommandoen. Dette er beskrevet i pseudokode:
Hvis det er "STX" og modtagerBesked's værdi er 0
sæt modtagerBesked's værdi til 1
Hvis det er "ETX" og modtagerBesked's værdi er 1
indsæt et \0 til sidst i bufferen
sæt Bufferposition til 0
kald funktionen "recive"
Hvis modtagerBesked's værdi er 1
sæt karakteren ind i bufferen
Hvor:bufferposition er en variabel, der indikerer den aktuelle plads i buerenmodtagBesked er en variabel, der indikerer om stalkeren behandler en kommandobuffer er en buer til midlertidig lagring af kommandoerSTX er start byteenETX er stop byteen
82
Når hele kommandoen er lagret i bueren, sættes funktionen recive i kø, hvor der kontrolleresfor hvilken kommando der er modtaget. Som det fremgår af afsnit 6.5.1 er kommandoen altiddet første ord i strengen. Systemet identicerer kommandoer ved at sammenligne modtagedekommandoer med predenerede strenge.
Send kommandoen tilbage til PCen
Hvis det første ord i bufferen er "start"
kald "start" funktionen
meld tilbage til brugeren at stalker er startet
sæt modtagerBesked's værdi til 0
Hvis det første ord i bufferen er "stop"
kald "stop" funktionen
meld tilbage til brugeren at stalker er stoppet
sæt modtagerBesked's værdi til 0
Hvis det første ord i bufferen er "fetch"
sæt bufferposition til 6
sæt getvar funktionen i kø
Hvis det første ord i bufferen er "set"
sæt bufferposition til 4
sæt getvar funktionen i kø
Ellers send en fejlbesked
Hvor:start identicer start kommandoenstop identicer stop kommandoenfetch identicer fetch kommandoenset identicer set kommandoen
83
Funktionen getvar er en fælles funktion for fetch og set kommandoen, som kontrollererhvilken variabel brugeren enten ønsker at hente eller sætte, og enten sender variablens værditilbage til PCen eller kalder en funktion, som ændrer variablens værdi.
Hvis det andet ord i bufferen er "ref_afstand" og den blev kaldt med "set"
kald funktionen "setvar"
Hvis det andet ord i bufferen er "ref_afstand" og den blev kaldt med "fetch"
send stalkerens reference afstand tilbage til PCen
sæt modtagerBesked's værdi til 0
Hvis det andet ord i bufferen er "ref_vinkel" og den blev kaldt med "set"
kald funktionen "setvar"
Hvis det andet ord i bufferen er "ref_vinkel" og den blev kaldt med "fetch"
send stalkerens reference vinkel tilbage til PCen
sæt modtagerBesked's værdi til 0
Hvis det andet ord i bufferen er "hastighed"
send stalkers hastighed til PCen
sæt modtagerBesked's værdi til 0
Hvis det andet ord i bufferen er "afstand"
send afstand til target til PCen
sæt modtagerBesked's værdi til 0
Hvis det andet ord i bufferen er "vinkel"
send stalkerens vinkel til PCen
sæt modtagerBesked's værdi til 0
Ellers send en fejlbesked
Hvor:ref_afstand er stalkerens afstands reference variabelref_vinkel er stalkerens vinkel reference variabelhastighed er stalkerens hastigheds variabelafstand er stalkerens afstands til target variabelvinkel er stalkerens vinkel variabel
84
Funktionen setvar overskriver den nuværende referenceværdi med brugerens input værdi.
Sæt det sidste af bufferen ind i variablen "nyReference"
Hvis "setvar" blev kaldt med ref_afstand
så ændres afstands referencen til værdien af nyReference
send den nye værdi til PCen
Hvis den blev kaldt med ref_vinkel
så ændres vinkel referencen til værdien af nyReference
send den nye værdi til PCen
Hvor:
nyReference er en variabel til at indeholde brugerens ønskede værdi
Der er nu opstillet psedokode for implementering af protokollen til kommunikation mellem
stalker og PC. Opsætningen af brugeraden på PC beskrives i følgende afsnit.
85
6.6 Brugerade
Brugeraden skal fungere på PC og håndtere inputs fra en bruger, samt vise outputs fra
stalkeren.
Brugeraden designes ud fra følgende udgangspunkt:
Output fra stalker
OkKommando Variabel Input
Start Stop
Figur 6.10. Brugeraden indeholder seks inputs, Kommando, Variabel, Input, start, stop og Ok,
hvor den ønskede kommando til stalkeren kan blive speciceret. Yderligere er der et
outputvindue, hvor stalkerens output printes.
Brugeren giver kommandoer til stalkeren vha. to dropdown menuer, et input vindue, en okknap, en start knap og en stop knap. I den første dropdown menu, kan brugeren vælge mellemkommandoerne set og fetch. Disse kommandoer er speciferet i afsnit 6.5.
Den anden dropdown menu bruges til at vælge de forskellige variabler, der kan ændres medset og fetch kommandoerne. Dette vindue er kun aktivt ved brug af disse kommandoer.Hvis kommandoen set vælges sammen med en variabel, vil input vinduet blive aktivt, ogher kan der så skrives den ønskede værdi. For at sende den ønskede kommando til stalkeren,anvendes ok knappen.
Når brugeren har sendt en kommando til stalkeren, vil den blive bekræftet af stalkeren,ved at den sender kommandoen tilbage til brugeren. Herefter udfører stalkeren den ønskedekommando, og sender en bekræftelse eller et output tilbage.
Den valgte brugerade implementeres med en backend, der ligger bag ved brugeraden ogstår for forbindelsen, og de er begge bygget på PHP.
86
Backenden er skrevet som et terminalprogram, der står for at holde en forbindelse til stalker,og for at gemme det stalker sender i en l, samtidig med at den sender indholdet i en anden ltil stalker. Dette er programmeret som et sekventielt program i en uendelig løkke. Backendenstår for at oprette de to ler til in- og output fra brugerade og stalker.
Brugeraden er skrevet i HTML, og bruger javascript til asynkron indlæsning og fremsendelseaf data. Dette bevirker at brugeraden kan virke uden genindlæsning af alt ved ændringer oghandlinger. Brugeraden er knyttet til en funktion, der kan skrive til og læse fra de to ler,som backenden opretter og benytter. Til dette oprettes et PHP script, som kører på sammemaskine som backenden igennem en webserver.
De forskellige moduler er nu beskrevet, i det kommende afsnit beskrives implementeringen af
kernen og dens virkemåde.
6.7 Kerne
Styringen af hvilke funktioner, der skal køre på et givet tidspunkt, er implementeret vha. enkombineret dispatcher og scheduler, kaldet en kerne. Dennes opgave består mere specikt iat sortere funktioner, der gerne vil køre, i en kø, så de er klar til at blive startet, samtidigtmed at den vil starte funktionerne i køen fra en ende af. Overordnet er kernen delt op i tofunktionaliteter. Den ene er at starte funktioner, som står i kø til at blive kørt, mens denanden er at indsætte funktioner i køen.
6.7.1 Valg af kerne-type og scheduling-metode
En kerne kan deles op i to typer, Preemptive og Nonpreemptive. En preemptive kerne harmulighed for dynamisk at skifte mellem forskellige funktioner under en igangværende ek-sekvering. Dette sørger for at funktioner med højest prioritet og kortest deadline vil bliveeksekveret så tidligt som muligt, samtidigt med at funktioner med lang eksekveringstid ikkeopholder processoren fra at eksekvere andre funktioner. En nonpreemptive kerne har derimodikke muligheden for at skifte funktion, når eksekveringen af en funktion er i gang. Dette gør,at hvis funktioner med højere prioritet bliver klar til at køre, mens en funktion med lavereprioritet allerede eksekveres, må den vente indtil den igangværende funktion er eksekveretfærdig.
Da stalkernes primære opgave er at følge efter target, vil reguleringsfunktionerne have denhøjeste prioritet, og det vil derfor ikke være nødvendigt at skifte funktion imens en af dissebliver eksekveret. Det vil derfor kun være aktuelt at skifte funktion, hvis send/modtag deleneksekveres, mens der kommer inputs fra sensorene. Det ses i afsnit 6.8, at de forskelligefunktioners eksekveringstid er i en størrelsesorden, hvor det vurderes fra gruppens side at ennonpreemptive kerne er tilstrækkelig.
87
Til at bestemme hvilken rækkefølge funktionerne skal eksekveres i, og dermed den rækkefølgede skal have i en kø, bruges en scheduler. Til denne tages udgangspunkt i metoden FixedPriorities, hvor alle funktioner har en fastsat prioritet, som der altid sorteres efter. Prioritetenbliver dog her i form af funktionernes deadlines, således at metoden bliver en nonpreemptiveudgave af Earliest Deadline First (EDF). Elementer med samme deadline bliver sorteret efterderes eksekveringstid, således at de funktioner der hurtigst skal være færdige og hurtigst bliverfærdige, også vil være de første til at blive eksekveret.
Der skal altså implementeres en nonpreemptive kerne til håndtering af funktionerne i softwa-
ren. Der anvendes en scheduler til håndtering af afviklingsrækkefølgen af funktioner, funk-
tionerne tildeles en fast prioritet udfra deres eksekveringstid og dermed implementeres EDF.
Der skal nu implementeres en kø til håndtering af funktioner der skal afvikles, en funktion til
indsættelse af funktioner i denne kø samt en dispatcher som skal starte funktioner fra køen.
6.7.2 Initialisering af køen
I de efterfølgende afsnit vil det blive beskrevet hvorledes kernen er opbygget og implementeret.
Når kernen startes, skal funktions-køen, der er implementeret som en dobbelt linket liste,initialiseres. Der er valgt at bruge en dobbelt linket liste, da det i sådan en liste er muligt atindsætte elementer i et enkelt gennemløb af listen. Denne initialiseres ved først at denereen overordnet struktur for køen indeholdende følgende elementer:
*Første element *Sidste element Længde
Hvor:*Første element er en pointer der peger på det første element i køen*Sidste element er en pointer der peger på det sidste element i køenLængde er køens længde
88
Herefter deneres en struktur for hvad elementerne i køen skal indeholde:
*Forrige element *Næste element Funktions id Klartid Eksekveringstid Deadline Arrayplads
Hvor:*Forrige element er en pointer der peger på forrige element*Næste element er en pointer der peger på næste elementFunktions id er en integer, hvor hver funktion har sit eget unikke idKlartid er tiden der skal gå inden funktionen må startesEksekveringstid er et overslag over funktionens eksekveringstidDeadline er det tidspunkt funktionen skal være færdigArrayplads angiver det område i hukommelsen som elementet benytter
Sidst skal der deneres deadlines og eksekveringstider for de forskellige funktioner og køenskal initialiseres. Hvordan køen initialiseres, kan ses ud af følgende pseudokode:
kø->Længde sættes til 0
kø->*Første element sættes til NULL
kø->*Sidste element sættes til NULL
89
6.7.3 Sæt i kø
For at indsætte en funktion der gerne vil køre, i køen, kaldes en funktion, som søger i køenefter en passende plads til funktionen, således at køen er sorteret efter deadlines. Dettegøres da det er valgt at bruge nonpreemtive Earliest Deadline First (EDF) til systemetsscheduler. I tilfældet, hvor der ndes ere funktioner med samme deadline, sorteres derindbyrdes efter eksekveringstid for at mindske den gennemsnitlige ventetid for funktionerne,da de der hurtigst er færdige så kommer først. Funktionen der indsætter i køen, tager toinputs (Funktions id og Klartid), som sammen med de predenerede konstanter for deadlineog eksekveringstid, denerer et element (herunder kaldet elementNy), der skal indsættes ikøen.
StartEr køentom?
Indsætsom førsteog sidste
Pointerpeger påførsteelement
Peger =NULL?
Deadline< ny
deadline?
Pointerpeger på*næsteelement
Indsætefter sidsteelement
Sæt somsidsteelement
Tæl køenslængde op
Afslut
Deadline= ny
deadline?
cost<
ny cost?
Indsæt førnuværendeelement
peger =*førsteelement?
Sæt somførsteelement
ja
nej
nej
ja
ja
nej
ja
ja
nej
nej
ja
nej
Figur 6.11. Flowchart over hvordan en funktion sættes i kø.
90
Figur 6.11 på forrige side viser programowet for indsætning af en funktion i køen. Herefterbeskrives owchartet med pseudokode som minder om den endelige implementering i software:
NULL er deneret som en pointer til adresse 0
Hvis køen er tom (kø->længde = 0):
ElementNy indsættes som både *Første element og *Sidste element
og køens Længde tælles op.
Ellers hvis køen ikke er tom (kø->længde > 0):
ElementGammel er en pointer der peger på *Første element i køen.
Sålænge at ElementGammel != NULL
og ElementGammel->Deadline < ElementNy->Deadline:
ElementGammel = ElementGammel->Næste element
Sålænge at ElementGammel != NULL
og ElementGammel->Deadline = ElementNy->Deadline
og ElementGammel->Eksekveringstid < ElementNy->Eksekveringstid:
ElementGammel = ElementGammel->Næste element
Hvis ElementGammel == NULL:
ElementNy indsættes efter *Sidste element i køen
og sættes derefter til at være *Sidste element
og køens Længde tælles op.
Ellers:
ElementNy indsættes i køen før det nuværende ElementGammel.
og køens Længde tælles op.
Hvis ElementGammel == Første element:
ElementNy sættes til at være Første element
91
6.7.4 Start
Når kernen er initialiseret startes dispatcheren, som sørger for at starte funktioner til derigtige tider. Den ser altid på det første element i køen, og sørger for at opdatere køen mht.klartider og deadlines, ud fra en timer kaldet releasetimer. En illustration af hvordan dennetimer virker fremgår her:
1 2 3
deadlines1
2
3
releasetimer
2 3
deadlines23
tid
tid
tR
tR
Figur 6.12. Illustration af releasetimerens funktion. Timeren tæller, mens funktion 1 kører, hvor-
efter deadlines og klartider opdateres for funktion 2 og 3 vha. timeren. Klartiden for
funktion 2 og 3 er angivet tR.
Øverst i gur 6.12 vises en kø af funktionerne 1, 2 og 3 sammen med deres relative deadlines.Når funktion 1 kører, begynder releasetimeren at tælle. Når funktion 1 er færdig med atkøre, tages denne ud af køen, hvorefter funktion 2 og 3's deadlines og klartider opdateresvha. releasetimeren. Klartiderne i køen tælles ned indtil klartiden for funktion 2 er nul,hvorefter den startes, som det er illustreret på den nederste gur. Dette betyder, at deadlinesog klartider altid er relative til det pågældende tidspunkt.
Når dispatcheren starter en funktion, sørger den for at sætte en timer op, kaldet deadlineti-mer, der tæller ned fra funktionens deadline, og hvis denne når nul genereres en fejlbeskedom, at funktionen ikke har nået sin deadline.
92
Dispatcheren er sammen med initialiseringen af kernen illustreret på gur 6.13.
Opstartaf system
Initialiseringaf kernen
Dispatcherkøres
Release-timer >
0
Opdaterkø vha.
releasetimer
Nulstilreleasetimer
Hvisklartid =
0
Sæt dead-linetimer
Startfunktion
ja
nej
nej
ja
Figur 6.13. Flowchart over kernens opbygning.
Funktionaliteten i gur 6.13 er her beskrevet vha. pseudokode.
Kører i et uendeligt loop:
Hvis køen ikke er tom (kø->længde > 0):
Hvis releasetimer > 0:
Opdater kø vha releasetimer
Reset releasetimer
Hvis kø->*Første element->Klartid == 0:
Deadlinetimer sættes
Funktion fjernes fra køen
Funktion eksekveres
ellers:
releasetimer = 0
Der er nu blevet beskrevet hvordan kernen håndtere funktionerne der skal afvikles på stalkers
mikroprocessor. Der vil i kommende afsnit blive opstilles deadline for funktionere på stalker,
så der kan implementeres EDF schedueling i kernen.
93
6.8 Eksekveringstider og deadlines
For at den valgte kerne kan køre, og for at systemet kan betragtes som kørende i realtid, skal
der sættes nogle krav til deadlines. Disse krav sættes ud fra de enkelte funktioners eksekve-
ringstider. Der bliver i dette afsnit regnet i en tidsenhed kaldet eksekveringstid som bliver
beskrevet efter de målte eksekveringstider er præsenteret.
Eksekveringstiderne for de enkelte funktioner er estimeret ved at kalde dem med forskelligevariabler og inputs, hvorefter den der har taget længst tid, bliver valgt ud. Tiderne er beregnetved at have en tæller på mikrocontrolleren til at tælle alle clockcyklusser imellem start ogslut af funktionen.
De aæste tider er som følger:
Funktion: Cyklusser: Kommentar:
afstands- og vinkelberegning 9393 højeste tid ved forskellige sensortiderafstandsregulator 1423 testet med afstand: 70 cmretningsregulator 902 testet med vinkel: 22 graderreceive 1127 testet med 50 ukendte karakterergetvar 4150 testet med "fetch ref_afstand"setvar 3867 testet med "set ref_afstand 070"
Release- og deadlinetimerne i kernen kører med en prescaler på 256, som giver anledning tilden tidsenhed der benyttes igennem resten af afsnittet, kaldet eksekveringstid. Derfor bliveralle de ovenstående funktioner normeret til dette, og rundet op, hvor nødvendigt. Det giveranledning til følgende eksekveringstider:
Funktion: Eksekveringstid:
afstands- og vinkelberegning 37afstandsregulator 6retningsregulator 4receive 5getvar 17setvar 16
Deadlines bliver brugt som prioritering, derfor vil lavere deadlines betyde at funktionen harhøjere prioritet. Funktionerne til afstands- og vinkelberegning og regulering, har højere pri-oritet end dem der benyttes til kommunikation.
94
Det er valgt at kommunikationsfunktionerne skal køres, fra receive startes til at alle funktio-ner kaldt af den er færdige, på under 20 ms. Dette betyder at deadlines for receive, getvarog setvar sammenlagt skal være under dette. Sammenlagt har de tre funktioner en eksekve-ringstid på 38, og hvis der benyttes en deadline på 50 gange deres eksekveringstid, vil dettegive anledning til en samlet deadline på 1900, hvilket svarer til ca. 15 ms ved 32 MHz. Endeadline på 50 gange eksekveringstiden for alle kommunikationsfunktioner ser ud som følger:
Funktion: Eksekveringstid: Deadline:
receive 5 250getvar 17 850setvar 16 800
For at sikre at afstands- og vinkelberegning samt regulatorer så vidt muligt kommer ind ikøen inden kommunikationsfunktionerne, skal deres deadlines være relativt mindre. Deresdeadlines bliver derfor som udgangspunkt sat til at være fem gange større end deres eksekve-ringstider. Da afstands- og vinkelberegning er den funktion der tager længst tid at afvikle, oger kritisk for reguleringen, vælges dennes deadline til kun at være dobbelt sin eksekveringstid.Dette giver anledning til følgende deadlines:
Funktion: Eksekveringstid: Deadline:
afstands- og vinkelberegning 37 74afstandsregulator 6 30retningsregulator 4 20
95
For at teste om de valgte deadlines kan overholdes, bliver et scenarie sat op. receive bliversat i kø med en kommando, der betyder at både getvar og setvar skal kaldes efter hinanden.Til den tid setvar startes, sættes afstands- og vinkelberegning i kø. Scenariet kan ses på gur6.14.
Tid
Funktion
0 10 20 30 40 50 60 70 80 90 100 110
receive
getvar
setvar
afstands- og vinkelberegning
retningsregulator
afstandsregulator
Figur 6.14. Figur over handlingsforløb, hvor afstands- og vinkelberegning sættes i kø på samme tid
som setvar starter eksekveringen. Stiplede linier repræsenterer de enkelte funktioners
klartider, og røde linier deres deadlines. De funktioner hvor der ikke ses klartider er
startet til deres klartid. Deadlines der er udenfor tidsaksen er ikke vist. Tiden er vist
som eksekveringstid.
Da gur 6.14 viser at afstands- og vinkelberegning er i stand til at overholde sin deadline,selvom den er nødt til at vente på en anden funktion inden den kan starte eksekveringen,anses de valgte deadlines for at kunne fungere på stalker.
Det er nu vist at ved at lave software der bygger på earliest deadline rst princippet, med
en non-preemptive kerne, er det muligt at køre systemet inden for de valgte deadlines, og
systemet kan derfor kaldes et realtidssystem.
96
Kapitel 7
Afslutning
Der er nu implementeret hardware og software på stalker og target, således det er muligtat opfylde de i kravspecikationen stillede krav. Der vil nu blive beskrevet de justeringer,der er blevet foretaget under testkørsel af stalker, efterfulgt af en beskrivelse af den udførteaccepttest. Resultatet af accepttesten vurderes i vurderingen, efterfulgt af en konklusion pårapporten og produktet. Der afsluttes med en perspektivering, som ser på andre anvedelses-muligheder af den benyttede teknologi i produktet.
7.1 Implementering
Dette afsnit dækker implementering af regulatorerne i softwaren. Der beskrives hvilke æn-
dringer der er foretaget for at opnå stabil kørsel, samt begrundelser for disse ændringer.
Regulatorerne for afstand og vinkel har ved implementering givet problemer. Der vil her bliveopsummeret på, hvad der ligger til grund for problemet, og hvilke ændringer der er foretagetfor at mindske problemerne.
Ved implementering har det vist sig at bilen accelererer for hurtigt. Dette gør, at stalker kørerind i target, når target accelererer og afstanden derved øges. Derfor blev afstandsregulatorenved tests nedjusteret til 45, så bilen accelererer langsommere. Grunden til denne nødvendigeændring er, at den fundne tidskonstant for motoren er for lille. Den fundne tidskonstant eruden friktion, og i virkeligheden vil tidskonstanten derfor være større, idet bilen accelerererlangsommere, når den skal slæbe sin egen vægt. En øget tidskonstant giver anledning til atregulatorværdien skal nedjusteres.
97
Retningsregulatoren har ved kørsel vist sig at overstyre, hvilket betyder at stalker i svingkommer på afveje. Dette blev løst ved at nedjustere regulatoren til en forstærkning på 4,hvorved den holder sig på rette kurs. Der er nogle unøjagtigheder og antagelser, som kanligge til grund for dette. Først og fremmest forudsætter modellen, der ligger til grund forretningsreguleringen, at hjulene kan dreje momentant. Dette gælder ikke i virkeligheden, dader ved kørsel kan observeres en forsinkelse ved drejning af hjulene. Havde hastigheden, somhjulene ændrer vinkel med, indgået i modellen ville det have ført til en lavere regulatorværdiud fra beregningerne. Hjulene er også begrænsede til at kunne dreje ± 20°, hvor modellenantager at der kan drejes ± 90°.
Efter overstående ændringer, har det vist sig, at stalker kan køre ind i target ved pludseligdecelleration. Dette skyldes manglende bremseevne. Problemet er forbedret, men ikke elimi-neret, ved at øge den ønskede referance afstand til 60 cm. Herved får stalker yderlige 10 cmat løbe på, inden sammenstød med target.
98
7.2 Accepttest
I kapitel 1.3 er der opstillet krav til systemet. Disse krav vil i denne sektion blive testet som
beskrevet i afsnit 1.3.1.
Systemet underlægges tests for at kontrollere om de stillede krav er overholdt.
Der vil blive vurderet på resultatet af disse tests, og dermed om kravene er overholdt.
Krav 1: Stalker skal være i stand til at forfølge target ved en hastighed på mindst 5 km/t.
Testen blev udført og resultatet af testen kan ses i den lmede dokumentation accept-
test/accepttest_krav1.MTS . Testen viste at stalker var i stand til at følge target ved enhastighed på mindst 5 km/t, i fem sammenhængende minutter, og vurderes derfor som be-stået.
Krav 2: Stalker skal forfølge target uden sammenstød.
I testen af krav 1 fulgte stalker efter target uden sammenstød. Der blev efterfølgende la-vet en start/stop test, hvor target re gange accelereres op til mindst 5 km/t og derefterstoppes ved at afbryde motoren. Resultatet af denne test ndes på cden accepttest/ac-
cepttest_krav2.MTS . Denne test fejlede da stalker kørte ind i target en enkelt gang.
Krav 3: Stalker skal regulere sin kørselsretning, så den holder sig bag target.
Dette krav blev testet i forbindelse med krav 1. Stalker var i stand til at holde sig bag targetunder de fem minutter testen varede. Det fremgår af videoen at stalker på intet tidspunktmistede target af syne. Dette krav vurderes som overholdt .
Krav 4: Den trådløse kommunikation skal have en rækkevidde på mindst 40 meter Den tråd-løse kommunikation foregår over det trådløse netværk i området hvor produktet er udviklet,derfor er kravet til rækkevide opfyldt. Der er sendt 100 kommandoer, som alle er modtagetog returneret korrekt af stalker, hvilket opfylder kravet til stabiliteten af forbindelsen.
99
7.3 Vurdering
I dette afsnit vurderes det, om produktet overholder kravene, der blev opstillet i kravspeci-
kationen. Der vil først blive vurderet på stalkers evne til at følge efter target, hvorefter der
bliver vurderet på kommunikationsegenskaberne.
Der blev i kravspecikationen opstillet nogle generelle krav til stalker. Disse blev kontrolleretved en accepttest. Der skulle implementeres et realtids system. Dette blev gjort vha. ennon-preemptive kerne.
Der skulle være mulighed for trådløs kommunikation med en rækkevidde på mindst 40 meter.Dette blev overholdt, idet stalker blev tilkoblet et trådløs netværk, som dækker den del afuniversitetet, hvor produktet blev udviklet og anvendt. Dette har gjort stalker i stand til atreagere på kommandoer, udføre dem korrekt og sende status beskeder til PCen.
Der blev opstillet et scenarie, hvor stalker skulle forfølge target indendørs på et plant underlag.Det skulle foregå ved en hastighed på mindst 5 km/t, og stalker måtte ikke miste target afsyne eller køre ind i target. Dette blev testet ved krav 1-3 i accepttesten, hvor stalker holdtesig bagved target og regulerede sin kørselsretning derefter. Der skete under konstant kørselingen sammenstød mellem de to biler. Ved en test hvor target accelereres og standses, var deret enkelt sammenstød. Dette skyldtes en høj acceleration som resulterede i en stor afstandmellem de to biler. Denne afstand betød at stalker accelererede kraftigt, hvorved den ikkekunne nå at standse inden kollision.
Dette problem skyldes, at stalkeren vil blive ved med at accelerere, indtil den når referenceafstanden. Stalkeren har ingen bremser, men vil forsøge at bakke for igen at opnå reference-afstanden. Dette kan den ikke altid nå inden den kommer så tæt på target, at den bendersig uden for afstands- og vinkelmålerens virkeområde, og derfor rammer target.
Afstandsregulatorens oversving og indsvingningstid kan også have indvirkning på dette pro-blem. Et oversving kan resultere i at stalker kommer for tæt på target, inden den opnår densatte referenceafstand. Indsvingningstiden resulterer i, at reguleringen af hastigheden går forlangsomt. Oversving kan forbedres ved at implementere en PD-regulator, hvorved oversvin-get kan mindskes. Indsvingningstiden kan forbedres ved implementering af en H-bro, som erstyret med en kortere periodetid end H-broen, der er anvendt i projektet.
Stalker vurderes derfor til at overholde de i kravspecikationen stillede krav, pånær at der ibestemte situationer kan opstå sammenstød mellem target og stalker.
Udover problemet observeret i accepttesten, er der også observeret et problem ved testkørselinden accepttest. Hvis target f.eks. bevæger sig tæt på en væg eller anden ade, kan der fore-komme en reektion af ultralydssignalerne. Dette bevirker, at signalet, som target udsender,bliver reekteret af væggen, og derefter bliver opfanget af stalker. Dette kan få stalkeren tilat opfatte væggen som var den target, som derfor kører ind i væggen.
101
7.4 Konklusion
Der skulle i dette projekt designes en autonom forfølgerbil, kaldet stalker, som autonomtskulle efterfølge en anden bil, kaldet target. Ydermere skulle trådløs kommunikation mellemstalker og en PC muliggøres. Der bliver her konkluderet på, hvordan dette blev opnået.
Det blev, ud fra et opstillet scenarie, speciceret, at stalker altid bender sig bag target.Derfor skal der holdes en fast afstand og vinkel mellem de to biler under kørsel. Der blevvalgt to fjernstyrede biler, hvorpå der var implementeret både en PWM-styret servomotorog en DC-motor med tilhørende PWM-styret H-bro. Disse blev anvendt til henholdsvis ret-ningsstyring og hastighedsstyring. Der skulle til den ene bil, stalker, implementeres hardwareog software for at gøre den autonom, mens den anden styres manuelt.
Der blev valgt bilateration til at lokalisere target relativt til stalker. Denne lokaliserings-metode gav anledning til, at afstand og vinkel mellem bilene kunne bestemmes ved brugaf sensorer, og at der disse kunne foretages regulering af stalkers hastighed og retning. Derblev opstillet modeller for stalkers bevægelse ud fra målinger, teoretiske betragtninger ogantagelser. Dette blev gjort med henblik på anvendelse i reguleringen.
Der blev designet hardware til target. Denne hardware muliggjorde implementering af lokali-seringsmetode, beregning, regulering og trådløs kommunikation. Lokalisering blev muliggjortved brug af ultralyd og radiobølger som sensorsystem, beregning og regulering blev imple-menteret ved brug af en mikrocontroller og den trådløse kommunikation blev implementeretvha. et WiFi modul. Derefter blev der bestemt to proportionalregulatorer ud fra sensorsyste-met, PWM-styring og de opstillede modeller for bilens bevægelse. Den ene regulator skullesørge for, at afstanden mellem bilerne holdes konstant ved at regulere på stalkers hastighed,og den anden skulle sørge for, at vinklen mellem bilerne holdes konstant ved at regulere påstalkers hjulvinkel.
Der blev til mikrocontrolleren udviklet softwarefunktioner til beregning og regulering af af-stand og vinkel mellem de to biler, samt håndtering af trådløs kommunikation. De udvikledefunktioner blev håndteret af en non-premptive kerne, hvor realtidsprogrammering blev rea-liseret ved brug af en udgave af Earliest Deadline First (EDF) scheduling.
Der blev til sidst, efter testkørsel med stalker, foretaget justeringer af regulatorerne og af-standen mellem bilerne, for at opnå mere stabil kørsel. Der blev derefter udført en accepttest,hvor det viste sig, at stalker kunne forfølge target næsten uden problemer. Kun ved hårdeopbremsninger af target kunne der opstå sammenstød.
De læringsmæssige mål for dette semester blev dermed opfyldt, idet der blev opstillet fysiskemodeller for stalkers bevægelse, foretaget regulering af stalkers hastighed og retning i realtidog implementeret trådløs kommunikation mellem stalker og PC.
103
Bilag
105
Bilag A
Målejournal - Stalker bil
Udført af:Dato:Sted:
Anders Wittendor og Thomas Laursen26-10-2010El-lab, C2-104
Formål
Formålet er at undersøge hvordan bilens motor og styrtøj fungerer, så der kan opstilles enmodel for bilens bevægelse. Der måles direkte på hjulet af bilen, dvs. der ses bort fra bl.a.intern gearing så hjulet kan betragtes som akse på motoren. Der undersøges:
Antal omdrejninger hjulene tager i frit løb sammenholdt med spænding og strøm påmotor. Mhb. bestemmelse af motorkonstanter.
Antal omdrejninger hjulene tager sammenholdt med tid ved acceleration fra stilstandtil max hastighed. Mhb. bestemmelse af tidskonstant.
Hvordan PWM styringen af bilens hastighed og vinkel fungerer. Mhb. anvendelse vedregulering.
Fysiske parametre (Hjuldiameter, aksel længde, afstand mellem hjul og masse) til an-vendelse i model.
Den indre modstand i motoren.
Testobjekt
HBX 4WD R/C racing car(stalker bilen).
106
Anvendt udstyr
Anvendt apparatur ses i følgende tabel.
Tabel A.1. Anvendt apparatur
Instrument Model AAU-nummer
Oscilloskop Agilent DSO6034A 64572Strømklemme Fluke i30 78550Omdrejningstæller Laser Compact Instruments A2108 77087Signalgenerator Agilent 33220A 75486Probe - -Vægt PJ1220 08432Skydelære - -Vinkelmåler - -Strømforsyning PS 7032-100 77076
Måleprocedure
Omdrejninger hjulene tager i frit løb sammenholdt med spændingog strøm på moter
Oscilloscopet kobles op så der måles følgende på hver sin kanal:
Spænding på moteren vha. en probe. Strøm vha. en strøm klemme, der monteres omkring den ene af ledningerne til motoren,som giver 100 mV per 1 A.
Omdrejnigner vha. omdrejningstæller som giver 1 V per 1000 rpm.
Bilen placeres på en kasse, således at alle hjul kan løbe frit rundt. Et af hjulene i den frie sidepåmonteres en sort papskive med en hvid reeks på, så tachometeret kan måle omdrejningerved at pege vinkelret ind mod hjulet.
Stalker accelereres fra stilstand til fuld hastighed over intervaller, hvori hastigheden er kon-stant. Dette gøres ved at variere spænding over motoren. Der måles spænding, strøm ogomdrejninger ved hvert interval. Dette gøres ved at anvende funktionen på scopet, der kansample data og gemme det på en usb disk. Der tages 1000 samples af det aktuelle datavinduesom efterfølgende midles.
107
Omdrejninger, hjulene tager sammenholdt med tid ved accelerationfra stilstand til max hastighed
Der anvendes samme opstilling som i foregående forsøg, hvor der nu kun måles omdrejningersom funktion af tiden. Bilen accelereres fra stilstand til fuld hastighed mens, oscilloscopetmåler omdrejninger som funktion af tid.
PWM styring af bilens hastighed og vinkel
Først måles der på den medfølgende trådløse modtager hvilke pulsbredder, amplituder ogperiodetider der gives videre fra denne til controlleren ved ændring af hastighed eller vinkelvha. den trådløse sender, der styrer bilen. PWM signalet anvendes efterfølgende til at målesammenhæng mellem input og output på H-Bro.
Der måles spænding på udgangen af H-broen, som går til motoren, sammenholdt med detPWM-signal der sendes ind på på controlleren til H-broen. Dette gøres ved at at anvendesignalgenerator til at sende en PWM puls ind på controlleren og derefter måle DC-spændingpå output fra H-broen. PWM pulsens pulsebredde øges fra en pulsbredde der giver stilstandtil den pulsbredde der giver maks hastighed på bilens hjul.
Der måles også på servomotoren. Dette gøres ved at måle sammenhæng mellem pulsbreddenaf det PWM-signal der sendes til servoen og den vinkel som et af forhjulene står i. Dennevinkel måles ved at påmontere en pind midt på den aksel hjulet drejer om, som står på 90grader når hjulene er i neutral position.
Indre modstand i motoren
Motoren tages ud af bilen, hvorefter den kobles på strømforsyningen. Strøm og spændingaæses indenfor det område det er muligt, uden forsyningen går i strømbegrænsning.
108
Resultater
Omdrejninger hjulene tager i frit løb sammenholdt med spændingog strøm på motoren
Der blev målt omdrejninger, spændinger og strømme for bilen ved 9 forskellige hastigheder.Disse er noteret i denne tabel:
Omdrejninger[rpm] Spænding[V] Strøm[A]1. måling 36 0,0114 0,94372. måling 25,75 0,1598 2,17193. måling 216 0,7227 2,25694. måling 518 1,7306 2,26725. måling 804,1 2,7031 2,43306. måling 1121,1 3,7027 2,99987. måling 1450,3 4,7658 2,99988. måling 1699,4 5,5862 3,29339. måling 2032,1 6,6205 3,6938
Figur A.1. Tabel over målte omdrejninger, spændinger og strømme.
Værdier af denne test ndes på gur A.2 og A. Filen til plot samt måledata ndes påmaaledata/stalker/fritloeb .
Figur A.2. Grafen viser hvordan hjulets hastighed, målt i RPM, ændrer sig efter hvilken spænding,
målt i volt, der påtrykkes.
109
Figur A.3. Grafen viser hvordan strømstyrken, målt i ampere, ændrer sig efter hvilken spænding,
målt i volt, der påtrykkes.
Omdrejninger hjulene tager sammenholdt med tid ved accelerationfra stilstand til max hastighed
Der blev tre gange målt omdrejninger som funktion af tid, hvor den ene måling måtte kasserespga. fejl i målingen af omdrejningshastigheden. Resultatet af denne test er plottet i gur A.Filen der blev anvendt, samt data ndes på maaledata/stalker/tidskonstant .
Figur A.4. Grafen viser hjulets hastighed, målt i % hvor 100% er bilens topfart, som funktion af
tiden. Hvor tidskonstanten τ kan aæses i der hvor grafen passerer 63% til henholdsvis
0,162s og 0,234s.
Tidskonstanten blev målt til to forskellige værdier, derfor anvendes gennemsnittet som er0,198s.
110
PWM styringen af bilens hastighed
Det blev målt at den trådløse enheden giver et PWM signal med en amplitude på +4 volt,periodetiden 19,40 ms og varierende pulsbredder videre til controlleren. Pulsbredden blev vedfuld hastighed målt til 2 ms, mens der ved stilstand er 1,45ms. Servoen er i neutral positionved 1,6ms, i fuld udsving til højre ved 1,05ms og i fuld udsving til venste ved 2,2ms
Der blev foretaget en måling for sammenhæng mellem PWM pulsebredde og spænding overmotor. Disse målinger er vist her:
Pulsbredde[ms] Spænding[V]1,5 0,01141,525 0,15981,6 0,74861,7 1,30731,8 4,04311,9 5,18782,0 5,92812,1 6,95412,2 6,702
Figur A.5. Tabel over målte pulsbredder samt spændinger over motoren.
Der blev foretaget målinger for sammenhæng mellem pulsebredde og vinkel på hjulene. Resul-tatet af denne test vises i gur A.6. Fil til plot samt data ndes på maaledata/stalker/pwm
.
Figur A.6. Grafen viser hvordan hjulets vinkel ændrer sig efter hvilken PWM pulsbredde der
påtrykkes H-broen. Hjulenes vinkel er orienteret således at når vinklen er 90 °, peger
hjulene lige frem.
111
Fysiske parametre
De fysiske parametre er målt med vægt og skydelærer til følgende:
Parameter værdiMasse 1658,7 gHjul diamter 8,15 cmAkselængde 25,9 cmHjulastand 22.4 cm
Indre modstand i motoren
Følgende blev målt i forhold til strøm, spænding og modstand:
Spænding [V] Strøm [A] Modstand [Ω]1 5,4 0,18521,5 8,3 0,18071,9 10,2 0,1863
Gennemsnit 0,1841
Måleusikkerhed
Måleinstumenters påvirkning af måleobjekt. Tidskonstantmålingen er ukorrekt, da den blev målt uden bilen var i kontakt medunderaden og derfor ikke skulle slæbe sin egen vægt eller overvinde friktion. Derforvil den reelle tidskonstant værer større.
Tachometerets aæsning kan blive påvirket af lys og vinkel i forhold til den reekterendeade.
112
Bilag B
Beregning på modellering af
stalker
Overføringsfunktion for bilen
Der er ud fra elektriske og mekaniske modeller opskrevet følgende udtryk.
K ·(Ua(s)−K · ωhjul(s)
Ra + s · La
)= s · J · ωhjul(s) + b · ωhjul(s) + τc + mbil · s · ωhjul(s) · rh2
(B.1)
I udtryk B.1 indgår tørfriktionen τc, denne vælges der at ses bort fra idet denne er uliniær.Dette udtryk reduceres her, så er overførinsfunktion, G(s), fåes.
K ·(Ua(s)−K · ωhjul(s)
Ra + s · La
)= ωhjul(s)(s · J + b + s ·mbil · rh2) (B.2)
(K · Ua(s)−K2 · ωhjul(s)
)· 1
Ra + s · La= ωhjul(s)
(s · J + b + s ·mbil · rh2
)(B.3)
K · Ua(s)−K2 · ωhjul(s) = ωhjul(s)(s · J + b + s ·mbil · rh2
)(Ra + s · La
)(B.4)
K · Ua(s) = ωhjul(s)(s · J + b + s ·mbil · rh2
)(Ra + s · La
)+ K2 · ωhjul(s) (B.5)
113
K · Ua (s) = ωhjul (s)((
s · J + b + s ·mbil · rh2)(
Ra + s · La)
+ K2
)(B.6)
Omdrejningshastigheden ωhjul(s) erstattes nu, udfra formel 3.14 på side 19, medVbil(s)rh
Ua(s) =Vbil(s)rh
·
(s · J + b + s ·mbil · rh2
)(Ra + s · La
)+ K2
K(B.7)
Vbil(s)Ua (s)
=K · rh(
s · J + b + s ·mbil · rh2)(
Ra + s · La)
+ K2(B.8)
Det antages nu at induktansen La i motoren er meget lille, og at der derfor kan ses bort fraden. Dermed fåes:
Vbil(s)Ua(s)
=K · rh(
s · J + b + s ·mbil · rh2)· Ra + K2
(B.9)
Motorkonstanter
Den opstillede overføringsfunktion B.9 indeholder de 4 motorkonstanter modstanden Ra, denviskose friktion b, inertimomentet J og motorkonstanten K. For at kunne anvende denne,skal disse konstanter bestemmes. Modstanden Ra er bestemt til 0,184 Ω i A. De resterendekonstanter bestemmes ved at foretage målinger af omdrejningshastighed på bilens hjul, samtstrøm gennem motoren ved forskellige spændinger. Disse målinger er dokumenteret i appendixA.
Der opstilles en mekanisk og elektrisk ligning til hver måling, hvor strømmen Ia, spændin-gen Ua og omdrejningshastigheden ω anvendes til bestemmelse af den viskose friktion b,tørfriktionen τc og motorkonstanten K. Den elektriske ligning er:
ω ·K + Ia · Ra = Ua (B.10)
Denne ligning er opstillet ud fra ligning 3.2 på side 14, hvor der ses bort fra induktansenLa, idet der foretages steady-state målinger og induktansen derved ikke ændres over tid. Denmekaniske ligning er:
Ia ·K− τc − ω · b = τb (B.11)
Denne ligning er opstillet ud fra ligning 3.10 på side 17 hvor τhjul X er erstattet med belast-ningsmomentet τb. Inertimomentet medtages ikke da der foretages steady-state målinger.
114
Ud fra opstilling af elektrisk og mekanisk ligning for hver steady-state måling er konstanterne,vha. matlab, fundet til:
K = 0,0276
[NmA
](B.12)
τc = 0,0524 [Nm] (B.13)
b = 0,0002
[Nmrad/s
](B.14)
Til bestemmelse af inertimomentet anvendes formel B.15 for tidskonstanten τ , som blevbestemt i appendix A til 0,198s.[Tom S. Pedersen, 2010]
τ =Ra · J
Ra · b + K2[s] (B.15)
Ud fra denne kan inertimomentet isoleres til:
J =τ · (K2 + b · Ra)
Ra
[kg·m2
](B.16)
Indsættes tidskonstanten, den viskose friktion, modstanden og motorkonstanten i ligningB.16 fåes 0,8593 E-3 kg ·m2.
115
Bilag C
Målejournal - Positionering af
target
Udført af:Dato:Sted:
Henrik Juul Pedersen & Palle Ravn19-11-2010Elektronik, B1-101
Formål
Formålet er at eftervise, at den konstruerede hardware, som skal generere interrupts til stal-kerens mikrocontroller, er tilstrækkelig nøjagtig til at kunne bestemme positionen af target.Følgende måles:
Interrupt signal fra radiomodtageren.
Interrupt signal fra venstre ultralydssensor.
Interrupt signal fra højre ultralydssensor.
Testobjekt
Interruptgenereringshardware. Kredsløbsdiagram for testobjektet kan ndes i gur 4.3 påside 39.
117
Forsøgopstilling
y [m]
x [m]27 cm
Centrum Sensor1Sensor2
123
456
Figur C.1. Forsøgsopstilling, hvor de seks placeringer af target (sender) er illustreret ved de røde
cirkler.
Anvendt udstyr
Anvendt apparatur ses i følgende tabel.
Tabel C.1. Anvendt apparatur
Instrument Model AAU-nummer
Oscilloskop Agilent 54624A 33843Probe-clips (3 stk.) Agilent 10074C -Strømforsyning Hameg HM7042 33907
118
Måleprocedure
Tidsforskellen mellem de tre interrupts måles ved seks forskelligeplaceringer af target.
De to ultralydssensorer placeres 27 cm fra hinanden, som illustret på gur C.1. Oscilloscopetkobles til output fra de to 555 IC'er samt AM-modtageren. Target placeres på position 1og tidsforskellene mellem de tre interrupts noteres. Target yttes til position 2 og den nyetidsforskel logges. Dette gentages for alle seks positioner. Alle positioner angives i forholdtil centrum, som er midt mellem de to ultralydssensorer. De første tre målinger er forskudt0,5 meter på x-aksen, hvor der måles i centrum samt ±0,5 meter på x-aksen. Det vil sigeat position 1 er givet ved (-0,5 ; 0,5). Måling re til seks er foretaget 1.5 meter forskudt påy-aksen samt ±1 meter på x-aksen.
Resultater
De målte tidsforskelle omregnes til afstande, som sammenlignesmed de opmålte afstande.
Tid H [µs] Tid V [µs] Udregnet ForventetAfstand1/Afstand2 [cm] Afstand/Afstand [cm]
1. måling 1920 2550 66,4/88,1 61,9/80,82. måling 1570 1600 54,3/55,3 51,8/51,83. måling 2570 1930 88,8/66,7 80,8/61,94. måling 5240 5710 181,1/197,3 173,2/188,15. måling 4520 4500 156,1/155,5 150,6/150,66. måling 5800 5310 200,4/183,4 188,1/173,2
Figur C.2. Tabel over målinger, tilsvarende afstand er ved en rumtemperatur på 24°C, samt den
forventede afstand.
119
Måleusikkerhed
Temperatur svingninger. Unøjagtig placering af target (sender). Unøjagtig placering af sensorer. Måleinstumenters påvirkning af måleobjekt. Usikkerhed i aæsningen på scopet.
Afvigelserne i målingerne kan meget vel skyldes placering af sender og modtager, hvor opmå-linger er foretaget med et målebånd. Det er ikke utænkeligt at et par centimeters afvigelseskyldes en forkert placering af sender. Yderligere giver et svagt ultralydssignal anledning tilen forsinkelse, hvor en enkelt periodes forskydning ved 40 kHz giver anldning til en afstands-forøgelse på 0,863 cm.
120
Bilag D
Målejournal - Hastighedssensor
Udført af:Dato:Sted:
Thomas Laursen19-11-2010El-lab, C2-104
Formål
Formålet er, at eftervise at den konstruerede hastigheds sensor fungerer korrekt, samt ndeet forhold mellem hjulenes og akslens omdrejninger. Der måles på følgende parametre:
Antal omdrejninger af akslen målt med hastigheds sensoren. Antal omdrejninger af akslen målt med omdrejningstæller. Antal omdrejninger af hjulet målt med omdrejningstæller.
Testobjekt
HBX 4WD R/C racing car(stalker bilen) med påmonteret hastigheds sensor.
121
Anvendt udstyr
Anvendt apparatur ses i følgende tabel.
Tabel D.1. Anvendt apparatur
Instrument Model AAU-nummer
Oscilloskop Agilent 54621 64572Omdrejningstæller Shimpo DT-205 8246Strømforsyning til bil Danica PS 7032 77076Strømforsyning til sensor Hameg HM7042-3 52756Probe Agilent 10074C -
Måleprocedure
Omdrejninger af akslen samt omdrejningerne af hjulene taget i fritløb sammenholdt med omdrejningerne målt af hastighedssensoren
Oscilloscopet kobles til sensorens output ben. Bilen placeres på ryggen, således at alle hjulkan løbe frit rundt og bilen ikke kører nogen vegne. Et af hjulene påmonteres en sort papskivemed en hvid reeks på, så tachometeret kan måle omdrejninger ved at pege vinkelret ind modhjulet.
Bilen accelereres fra stilstand til fuld hastighed over intervaller, hvori hastigheden er konstant.Dette gøres ved at variere spændingen over motoren. Der måles omdrejninger på hjulet ogakslen med tachometeret ved hvert interval. Frekvensen på hastighedssensoren aæses påscobet.
122
Resultater
Omdrejninger af akslen samt omdrejningerne af hjulene taget i fritløb sammenholdt med omdrejningerne målt af hastighedssensoren
Der blev målt omdrejninger på aksel og hjul med tachometer, samt omdrejninger på akslenmed hastighedssensoren.
Sensor[Hz] Sensor[RPM] Aksel[RPM] Hjul[RPM] Forhold[Aksel/Hjul]1. måling 16,4 984 1025 501 2,04592. måling 26,3 1578 1650 785 2,10193. måling 30,8 1848 1824 877 2,07984. måling 43,5 2610 2636 1286 2,04985. måling 51,5 3090 3117 1517 2,05476. måling 61,5 3690 3640 1793 2,0301
Gennemsnit 2,0603
Figur D.1. Tabel over resultater af måling på hastighedssensoren.
Måleusikkerhed
Måleinstumenters påvirkning af sensoren. Usikkerhed i frekvensaæsningen på scobet. Usikkerhed i tachometeret.
Tachometeret vurderes til at give den største usikkerhed. Tachometeret stod og svingede iet interval på op til ±50. Desuden er akslen meget lille, så den stribe hvor lys reekteres ermeget stor i forhold til hvor hurtig denne drejer rundt.
Det vurderes, at hastighedsmåleren er mere præcis end tachomeretet, grundet at denne erisoleret fast på akslen, således den ikke bliver forstyret af lys udefra, som tachomeretet gør.
123
Bilag E
Kredsløbsdiagrammer
I dette bilag ndes en oversigt over kredsløbsdiagrammer anvendt i projektet.
125
Target
1 2 3 4
D D
C C
B B
A A
Title
Number RevisionSize
A4
Date: 12-Nov-10 Sheet of
File: C:\Users\..\target.SchDoc Drawn By:
Target - Sender kredsløb
1 1
10GR501
1 1
D2
D1
C1
100µF
C2
100µF
C3
100µF
GND
GND
C4
10µF C5
1µF
C6
100nF
C7
10nF
C8
10nF
GND
GND
VCC
+12
-12
6v til +15/-15v
C9
1µF
+12-12
C11
1µF
-12
R1 200
Sinus Generator
1 2
3
Pot1
500k
12
3
Pot2
10k
GND
VCC
C12
10µF
R2
1k
1 2
3
Pot3
2k
C10
15nF
L2
100µH
L1
100µH
8 5
2 3
4
6
7
1
Buffer
OPA27GP
+12 -12
Rfb
1k
VCC
GND
GND
GND
GND
GND
µController
MISO1
VCC2
SCK3
MOSI4
RESET5
GND6
ISP
AVR ISP connector
+5
+5
GND1
DATA2
VCC3
ANT4
QAM-TX1
433 MHz
AM Transmitter
GND
+5
VCC1
GND14
CLKI2
XTAL23
RESET4
CKOUT5
ICP6
MOSI7
MISO8
USCK9
T010
AIN111
AIN012
AREF13
µC
ATtiny24
Vin1
GND2
5V3
DC regulator
LM78L05
GND
VCC
+5
Konnektorer
5v generator
AfkoblingTiny
100nF
AfkoblingAM
100nF
CC+1
GND2
AV+3
V+4
V+5
VREF6
SS7
CC-8
FB-9
LX-10
12/1511
V+12
V+13
GND14
LX+15
FB+16
MAX743
MAX743
AfkoblingISP
100nF
AMSI1
STO2
MO3
Vcc4
TC15
TC26
TR17
TR28
SYMA216
SYMA115
WAVEA113
WAVEA214
GND12
FSKI9
BIAS10
SYNCO11
Sinus Generator
EXAR XR-2206
SigA
1
SigB
7
GND
6O/C
13
SigA
14
SigB
8
Gûnter
Relay
GND
AfkoblingBAT1
100nF
1
2
Batteri
Connector
1
2
Ultralyd
Connector
AfkoblingBat2
470µF
AfkoblingDCGEN
100µF
AfkoblingDCIN
100nF
126
Stalker
11
22
33
44
DD
CC
BB
AA
Title
Num
ber
Rev
isio
nSi
ze A4
Dat
e:25
-Nov
-10
Shee
tof
File
:C:\W
indo
ws\Sy
stem
32\sta
lker
.Sch
Doc
Dra
wn
By:
1 2
Vcc
Bat
t
Con
nect
or
1 2
Inte
rrup
ts
Con
nect
or
12
Spee
dSen
sor
Con
nect
or
3.3V
GN
D
ISP1ISP1
ISP2ISP2
ISP3ISP3
ISP4ISP4
ISP5ISP5
ISP6ISP6
PA0
PA0
PA1
PA1
PA2
PA2
PA3
PA3
PA4
PA4
PA5
PA5
PA6
PA6
PA7
PA7
PB0
PB0
PB1
PB1
PB2
PB2
PB3
PB3
PB4
PB4
PB5
PB5
PB6
PB6
PB7
PB7
PC0
PC0
PC1
PC1
PC2
PC2
PC3
PC3
PC4
PC4
PC5
PC5
PC6
PC6
PC7
PC7
PD0PD0
PD1PD1
PD2PD2
PD3PD3
PD4PD4
PD5PD5
PD6PD6
PD7PD7
PE0PE0
PE1PE1
PE2PE2
PE3PE3
PE4PE4
PE5PE5
PE6PE6
PE7PE7
PF0PF0
PF1PF1
PF2PF2
PF3PF3
PF4PF4
PF5PF5
PF6PF6
PF7PF7
GNDGND1
GNDGND2
GNDGND3
GNDGND4
PH0
PH0
PH1
PH1
PH2
PH2
PH3
PH3
PH4
PH4
PH5
PH5
PH6
PH6
PH7
PH7
PJ0
PJ0
PJ1
PJ1
PJ2
PJ2
PJ3
PJ3
PJ4
PJ4
PJ5
PJ5
PJ6
PJ6
PJ7
PJ7
PQ0PQ0
PQ1PQ1
PQ2PQ2
PQ3PQ3
PR0PR0
PR1PR1
PK0
PK0
PK1
PK1
PK2
PK2
PK3
PK3
PK4
PK4
PK5
PK5
PK6
PK6
PK7
PK7
VCCVCC
AVCCAVCC
Xm
ega1
00Sp
arkf
un
Sens
e-6
1
Sens
e-4
2
Sens
e-5
3
Sens
e-7
4
Res
et5
EPC
-A6
EPC
-B7
Supe
rcap
8
F-A
wak
e9
GPI
O-1
310
GPI
O-1
211
RX
12
TX
13
MO
SI14
CLK
15
MIS
O16
3.3V
-RO
UT
173.
3V-R
IN18
GN
D19
VD
D-B
att
20
DM
A-T
X22
DM
A-R
X23
GPI
O-9
24G
PIO
-825
GPI
O-7
26G
PIO
-627
GPI
O-5
28G
PIO
-429
Sens
e-1
30
Sens
e-2
31
Sens
e-3
32
Sens
e-PW
R33
Sens
e-0
34
VD
D-IN
21W
ifi
Spar
kFun
3.3V
GN
D1
DA
TA
2
DA
TA
3
+5V
4+5V
5G
ND
6G
ND
7A
NT
8Q
AM
-RX
1
433
MH
z
GN
DG
ND
GN
D3.
3V
MIS
O1
VCC
2
SCK
3M
OSI
4
RESE
T5
GN
D6
ISP
AV
RIS
Pco
nnec
tor
11
Stal
ker
10G
R50
11
1
5V
5V
100n
FA
fkob
ling3
.3A
100n
FA
fkob
ling5
A
100µ
FA
fkob
ling3
.3B
100µ
FA
fkob
ling5
BG
ND
GN
D
100n
FA
fkob
lingU
HF
100n
FA
fkob
lingI
SP10
0nF
Afk
oblin
gWifi
Gre
enD
iode
Lam
pY
ello
wD
iode
Lam
pR
edD
iode
Lam
p
GN
D
GN
D
100n
F
Afk
oblin
gMC
GN
D
AM
-AN
T
AM
data
1M
UH
Fspl
it1
20k
UH
Fspl
it2
30k
Blu
eDio
de
Lam
p
12
PWM
Con
nect
or
Afk
oblin
gUH
F247
µF
123
AdH
oc
Jum
per
3.3V
127
Litteratur
Analog devices, 2004. Analog devices. Low Cost Low Power Instrumentation Amplier,2004. CD: datablade/AD620.pdf - Downloadet: 10-12-2010.
Atmel, 2009. Atmel. ATxmega64A1/128A1/192A1/256A1/384A1 Preliminary, 2009. CD:datablade/xMegaA1.pdf - Downloadet: 29-11-2010.
Atmel, 2010. Atmel. Microcontroller, 2010. CD: datablade/attiny24.pdf - Downloadet:10-12-2010.
Bluetooth SIG, Inc, 2010. Bluetooth SIG, Inc. Bluetooth, Compare with other Technolo-
gies. URL: http://www.bluetooth.com/English/Technology/Works/Pages/Compare.aspx, 2010. Downloadet: 30-09-2010.
Darren Burnhill, 2009. Darren Burnhill. Ackerman Steering Principle. URL: http://www.rctek.com/technical/handling/ackerman_steering_principle.html, 2009. Downlo-adet: 20-10-2010.
EXAR, 1997. EXAR. Voltage-Controlled Oscillator, 1997. CD: datablade/XR2209v202.pdf- Downloadet: 10-12-2010.
Gene F. Franklin, J. David Powell, Abbas Emami-Naeini, 2010. Gene F. Franklin, J.David Powell, Abbas Emami-Naeini. Feedback Control of Dynamic systems, Sixth Edition,2010.
MaxStream, Inc, 2006. MaxStream, Inc. XBee/XBee-PRO OEM RF Modules, 2006. CD:datablade/XBeeManual.pdf - Downloadet: 29-11-2010.
Philips, 2003. Philips. Hex inverting Schmitt trigger, 2003. CD: datablade/74HC14.pdf -Downloadet: 10-12-2010.
Quasar, 1990. Quasar. Dual-Output, Switch-Mode Regulator, 1990. CD: datablade/-MAX743.pdf - Downloadet: 10-12-2010.
129
Quasar, 2006. Quasar. AM TRANSMITTER MODULE, 2006. CD: datablade/QAM-TX2.pdf - Downloadet: 10-12-2010.
Roving Networks, Inc, 2010. Roving Networks, Inc. WiFly GSX 802.11 b/g Wireless
LAN Module, 2010. CD: datablade/WiFi.pdf - Downloadet: 29-11-2010.
Roving Networks, Inc - Homepage, 2010. Roving Networks, Inc - Homepage. RN-131G.URL: http://www.rovingnetworks.com/wiflygsx.php, 2010. Downloadet: 24-11-2010.
SGS-Thomson, 1997. SGS-Thomson. Low power dual CMOS timers, 1997. CD: databla-de/TS556.pdf - Downloadet: 10-12-2010.
Siemens, N/A. Siemens. GaAIAs infrared emitter, N/A. CD: datablade/SFH487P.pdf -Downloadet: 10-12-2010.
Texas Instruments, 2009. Texas Instruments. Single Chip Very Low Power RF Transcei-
ver, 2009. CD: datablade/TI-UHF.pdf - Downloadet: 29-11-2010.
Texas instruments, 2000. Texas instruments. Excalibur low-noise high-speed JFET-input
operational ampliers, 2000. CD: datablade/tle2072.pdf - Downloadet: 10-12-2010.
Tom S. Pedersen, N/A. Tom S. Pedersen. Retningsmodellen, N/A. CD: slides/Retnings-model.pdf - Downloadet: 17-10-2010.
Tom S. Pedersen, 2010. Tom S. Pedersen. Motormodellering slides, 2010. CD: slides/sli-desengmm5.pdf - Downloadet: 17-10-2010.
Vishay, 2008. Vishay. Silicon PIN Photodiode, RoHS Compliant, 2008. CD: databla-de/BPW34.pdf - Downloadet: 10-12-2010.
130
top related