ˇ ´ vysoke ´ uc ˇen´ı technicke ´ v Praze Cesk e ´ Fakulta elektrotechnicka
´ RSK ˇ ´ PRACE ´ BAKALA A Programov´ e vybaven´ı pro drive-by-wire
Praha, 2009
Autor: Radek Beneˇ s
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem svou bakal´aˇrskou pr´aci vypracoval samostatnˇe a pouˇzil jsem pouze podklady (literaturu, projekty, SW atd.) uveden´e v pˇriloˇzen´em seznamu. Nem´am z´avaˇzn´ y d˚ uvod proti uˇzit´ı tohoto ˇskoln´ıho d´ıla ve smyslu § 60 Z´akona ˇc.121/2000 Sb., o pr´avu autorsk´em, o pr´avech souvisej´ıc´ıch s pr´avem autorsk´ ym a o zmˇenˇe nˇekter´ ych z´akon˚ u (autorsk´ y z´akon).
V Praze dne podpis
i
Podˇ ekov´ an´ı Dˇekuji pˇredevˇs´ım vedouc´ımu pr´ace ing. Janu Mal´ınsk´emu za odborn´ y dohled nad celou mou prac´ı. D´ale dˇekuji kolektivu katedry mˇeˇren´ı, kteˇr´ı byly s moji prac´ı nˇejak vzpjati. V neposledn´ı ˇradˇe dˇekuji sv´e rodinˇe za podporu a d˚ uvˇeru, kterou ve mˇe vloˇzili.
ii
Abstrakt C´ılem pr´ace je vytvoˇren´ı programov´eho vybaven´ı pro komunikaˇcn´ı moduly s podporou sbˇernice FlexRay. Moduly zajiˇst’uj´ı implementaci techniky drive-by-wire slouˇz´ıc´ı ˇ ızen´a n´aprava je za u k natoˇcen´ı kol pˇredn´ı n´apravy vozidla. R´ ´ˇcelem simulace byl vytvoˇren vhodn´ ym simulinkov´ ym modelem a doplnˇena navrˇzen´ ym regul´atorem zaruˇcuj´ıc´ı jej´ı bezchybn´ y chod a korektn´ı ovlad´an´ı.
Abstract The main objective of this bachelor thesis is programming software for communications modules with FlexRay bus support. The implementation of drive-by-wire technology is provided by created hardware modules, serving for front axle steer wheel. The front axle for simulations is defined by suitable simulink model and contains designed controller warranting fault tolerant running and correct handling.
iii
iv
vloˇzit origin´aln´ı zad´an´ı !!!!!
v
vi
Obsah Seznam obr´ azk˚ u
ix
Seznam tabulek
xi
´ 1 Uvod
1
1.1
1
Problematika drive-by-wire . . . . . . . . . . . . . . . . . . . . . . . . . .
2 FlexRay
3
2.1
Popis standardu FlexRay . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2
Komunikace na sbˇernici
. . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.3
Komunikaˇcn´ı r´amec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4
Typy stanic na sbˇernici . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.5
Synchronizace stanic . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.6
Start sbˇernice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3 Model a ˇ r´ızen´ı
11
3.1
Re´aln´ y model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.2
N´avrh modelu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.3
Poˇzadavky na regul´ator a jeho n´avrh . . . . . . . . . . . . . . . . . . . .
13
4 Ovl´ adac´ı prvky modelu
17
4.1
Senzor natoˇcen´ı volantu a kontroln´ı senzor natoˇcen´ı kol . . . . . . . . . .
17
4.2
Motor pro natoˇcen´ı kol . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.3
Technick´e vybaven´ı ovl´adac´ıch modul˚ u . . . . . . . . . . . . . . . . . . .
18
4.3.1
Mikroprocesor ARM7 - STR710FZ . . . . . . . . . . . . . . . . .
19
4.3.2
FlexRay ˇradiˇc - MFR4310 . . . . . . . . . . . . . . . . . . . . . .
19
4.3.3
H-m˚ ustek pro ˇr´ızen´ı motoru - VNH2SP30-E . . . . . . . . . . . .
20
vii
5 Programov´ an´ı modul˚ u
21
5.1
Pˇrevod hodnoty senzoru natoˇcen´ı volantu . . . . . . . . . . . . . . . . . .
21
5.2
Naˇc´ıt´an´ı hodnoty ze senzoru . . . . . . . . . . . . . . . . . . . . . . . . .
22
5.3
Programov´a podoba regul´atoru . . . . . . . . . . . . . . . . . . . . . . .
24
5.4
Porovn´an´ı s navrˇzen´ ym modelem . . . . . . . . . . . . . . . . . . . . . .
26
6 Z´ avˇ er
27
Literatura
29
A V´ yvojov´ e diagramy obsluˇ zn´ eho programu B Obsah pˇ riloˇ zen´ eho CD
I V
C N´ avrh zapojen´ı senzorov´ eˇ c´ asti modulu
viii
VII
Seznam obr´ azk˚ u 2.1
Komunikaˇcn´ı cyklus na sbˇernici FlexRay . . . . . . . . . . . . . . . . . .
5
2.2
Porovn´an´ı statick´eho a dynamick´eho segmentu . . . . . . . . . . . . . . .
5
2.3
Komunikaˇcn´ı r´amec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4
V´ ypoˇcet koneˇcn´e odchylky pro korekci . . . . . . . . . . . . . . . . . . .
8
2.5
8
2.6
Uk´azka korekce rychlosti a offsetu . . . . . . . . . . . . . . . . . . . . . . ˇ Casov´ e sch´ema startu sbˇernice . . . . . . . . . . . . . . . . . . . . . . . .
9
2.7
Blokov´ y diagram startupu s´ıtˇe . . . . . . . . . . . . . . . . . . . . . . . .
10
3.1
Fotografie simulaˇcn´ıho voz´ıtka - bugina . . . . . . . . . . . . . . . . . . .
11
3.2
Obecn´e sch´ema ˇr´ızen´ı po dr´atech . . . . . . . . . . . . . . . . . . . . . .
12
3.3
Integrace sbˇernice FlexRay do buginy
. . . . . . . . . . . . . . . . . . .
12
3.4
Zapojen´ı PI regul´atoru s Anti-Windup kompenzac´ı . . . . . . . . . . . .
14
3.5
Odezva na skok regulovan´e soustavy s PI regul´atorem s Anti-Windup kompenzac´ı a bez n´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6
15
Odezva na skok obsahuj´ıc´ı ˇsum vstupuj´ıc´ı do regulovan´e soustavy s PI regul´atorem s Anti-Windup kompenzac´ı . . . . . . . . . . . . . . . . . .
15
3.7
V´ ysledn´a pozice p´ol˚ u v sisotool . . . . . . . . . . . . . . . . . . . . . . .
16
4.1
Deska modulu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
A.1 V´ yvojov´ y diagram obsluhy pˇreruˇsen´ı FlexRay . . . . . . . . . . . . . . .
I
A.2 V´ yvojov´ y diagram obsluhy senzoru volantu . . . . . . . . . . . . . . . . .
II
A.3 V´ yvojov´ y diagram regul´atoru natoˇcen´ı kol . . . . . . . . . . . . . . . . .
III
C.1 Sch´ema zapojen´ı senzorov´e ˇca´sti 1.d´ıl . . . . . . . . . . . . . . . . . . . .
VII
C.2 Sch´ema zapojen´ı senzorov´e ˇca´sti 2.d´ıl . . . . . . . . . . . . . . . . . . . . VIII
ix
x
Seznam tabulek 2.1
Stanoveni parametru k . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4.1
Vlastnosti procesoru . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.2
Pˇripojen´ı m˚ ustku k procesoru . . . . . . . . . . . . . . . . . . . . . . . .
20
4.3
Ovl´ad´an´ı m˚ ustku - Pˇri ENA =ENB = 1 . . . . . . . . . . . . . . . . . . .
20
5.1
Pˇripojen´ı senzoru k procesoru . . . . . . . . . . . . . . . . . . . . . . . .
23
xi
xii
Kapitola 1 ´ Uvod T´ımto u ´vodem je nast´ınˇeno hlavn´ı t´ema pr´ace. N´asleduj´ıc´ı kapitola je vˇenov´ana sbˇernici FlexRay, jeˇz byla vyuˇzita pro komunikaci mezi jednotliv´ ymi moduly. D´ale pˇrich´az´ı na ˇradu popis samotn´eho re´aln´eho modelu, na kter´em se bude technologie drive-by-wire prezentovat. Navazuje kapitola s popisem jednotliv´ ych akˇcn´ıch ˇclen˚ u a senzor˚ u potˇrebn´ ych k bezprobl´emov´e funkˇcnosti modelu. Nakonec je zaˇrazena kapitola vˇenovan´a programov´an´ı jednotliv´ ych modul˚ u.
1.1
Problematika drive-by-wire
ˇ ızen´ı po dr´atech, jak zn´ı doslovn´ R´ y pˇreklad, patˇr´ı do skupiny metod x-by-wire. Tyto metody se vˇseobecnˇe zab´ yvaj´ı nahrazen´ım ˇci doplnˇen´ım klasick´ ych, mechanick´ ych prvk˚ u za prvky z ˇrad elektroniky a elektromechaniky. Jiˇz nˇekolik let se bezpeˇcnˇe pouˇz´ıv´a v leteck´e dopravˇe metoda fly-by-wire. Jej´ım zaveden´ım do bˇeˇzn´eho provozu se odstranilo mnoho mechanick´ ych komplikac´ı jak v samotn´em n´avrhu letadel, tak pˇri jejich bˇeˇzn´em denn´ım provozu. Fakt niˇzˇs´ı poruchovosti a vˇetˇs´ıho bezpeˇc´ı se jistˇe kladnˇe podepsal i na n´akladech spojen´ ych s leteckou dopravou. Cel´a skupina drive-by-wire pod sebe sluˇcuje tˇri syst´emy ˇr´ızen´ı. Steer-by-wire zajiˇst’uje pˇrenos u ´hlu natoˇcen´ı z volantu na natoˇcen´ı n´apravy s koly, brake-by-wire je syst´em pro obsluhu brzd bez pˇr´ıtomnosti centr´aln´ıch brzdn´ ych okruh˚ u a pod pojmem drive-by-wire se skr´ yv´a stabilizace podvozku a kooperace s pˇredchoz´ımi dvˇema metodami. Kompletn´ı u zjednoduˇs´ı konstrukci a sn´ıˇz´ı poruchovost nejd˚ uleˇzitˇejˇs´ıch prvk˚ u spojen´ı tˇechto syst´em˚ v automobilu. 1
´ KAPITOLA 1. UVOD
2
Zd´anlivˇe nejjednoduˇsˇs´ı se pro projekt zd´ala realizace metody steer-by-wire, proto tak´e byla zvolena pro tuto pr´aci. V praxi steer-by-wire znamen´a rozpojen´ı ˇr´ıd´ıc´ı tyˇce, kter´a vede od volantu k ˇr´ızen´e n´apravˇe. K volantu se pˇripoj´ı senzor natoˇcen´ı a k ˇr´ızen´e n´apravˇe se pˇripoj´ı elektromotor a kontroln´ı senzor natoˇcen´ı kol.
Kapitola 2 FlexRay 2.1
Popis standardu FlexRay
Standard FlexRay byl prioritnˇe vytvoˇren pro automobilov´ y pr˚ umysl, ale je moˇzn´e jej vyuˇz´ıt i v jin´ ych odvˇetv´ıch (Waraus, D., 2008). U jeho zrodu st´aly pˇredn´ı znaˇcky automobilismu a v´ yrobci elektroniky jako Daimler-Chrysler, BMW, Ford, Volkswagen, Freescale, Bosch a Phillips. Jmenovan´e znaˇcky zaloˇzily konsorcium spravuj´ıc´ı standard FlexRay, jehoˇz nejnovˇejˇs´ı verze (V2.1) je vyladˇena k naprost´e dokonalosti a je plnˇe podporov´ana ˇradiˇcem MFR4310 od firmy Freescale. Mezi nejvˇetˇs´ı pˇrednosti standardu patˇr´ı nekolizn´ı pˇr´ıstup na sbˇernici pomoc´ı metody ´k, J., 2004), vysok´a pˇrenosov´a rychlost aˇz 10 Mbps, TDMA1 (Kocourek, P. a Nova garance doruˇcen´ı pˇren´aˇsen´ ych dat a moˇznost pouˇzit´ı zdvojen´e komunikaˇcn´ı cesty. V nˇekter´ ych pˇr´ıpadech ale nen´ı potˇreba pouˇz´ıt tak vyspˇelou sbˇernici. Nask´ yt´a se zde moˇznost vyuˇzit´ı komunikaˇcn´ıch most˚ u na starˇs´ı typy sbˇernic jako je napˇr´ıklad hojnˇe vyuˇz´ıvan´ y CAN2 nebo LIN3 . ´r ˇ, M., 2008), Tato pr´ace navazuje na bakal´aˇrskou pr´aci Michala Vinkl´aˇre (Vinkla kter´ y mˇel za u ´kol vytvoˇrit technick´e vybaven´ı pro drive-by-wire. Z tohoto d˚ uvodu je zde rozebr´ana programov´a ˇc´ast standardu FlexRay.
1
TDMA = Time Division Multiple Access CAN = Controller Area Network 3 LIN = Local Interconnect Network 2
3
KAPITOLA 2. FLEXRAY
4
2.2
Komunikace na sbˇ ernici
Z´akladn´ı rozdˇelen´ı komunikace je na statickou a dynamickou ˇc´ast. Statick´ y segment komunikaˇcn´ıho cyklu je zprostˇredkov´an pomoci metody TDMA. Jak jiˇz bylo uvedeno, d´ıky t´eto pˇr´ıstupov´e metodˇe je garantov´an pˇrenos dat a je vyuˇz´ıv´an pˇrev´aˇznˇe pro data s vysokou y prioritou. Pro dynamick´ y segment je pouˇzita pˇr´ıstupov´a metoda FTDMA4 . Dynamick´ segment je urˇcen pro data, kter´a nevyˇzaduj´ı n´ızkou hodnotu zpoˇzdˇen´ı. Pˇri komunikaci je nutn´e pouˇz´ıt alespoˇ n dva sloty statick´eho segmentu, maxim´alnˇe vˇsak 1023 slot˚ u. Dynamick´ y segment nemus´ı b´ yt v˚ ubec pouˇzit. D´ale je v komunikaˇcn´ım cyklu zaˇclenˇeno symbolov´e okno a m´ısto pro klidov´ y stav. Symbolov´e okno je vyuˇz´ıv´ano pro tˇri stavov´e symboly:
• CAS – Collision Avoidance Symbol se vyuˇz´ıv´a na coldstart nodech pˇri startov´an´ı komunikace na sbˇernici
• MTS – Media Access Test Symbol je k´odov´an´ım totoˇzn´ y se symbolem CAS, ale tento symbol mohou pouˇz´ıvat vˇsechny stanice bez rozd´ılu. Rozliˇsen´ı, o jak´ y symbol se jedn´a, se zjist´ı aˇz v protocol statusu.
• WUS – WakeUp Symbol probouz´ı stanice pˇred vlastn´ım spuˇstˇen´ım s´ıtˇe
´kol Na konci kaˇzd´eho komunikaˇcn´ıho cyklu je um´ıstˇen Network Idle Time. Ten m´a za u korigovat lok´aln´ı chyby ˇcasov´ ych z´akladen jednotliv´ ych stanic. Jeho d´elka se zmˇen´ı na z´akladˇe vyhodnocen´ı t´eto chyby o urˇcit´ y poˇcet mikrotik˚ u. Vˇse je vidˇet na pˇrehledn´em obr´azku obr. 2.1.
4
FTDMA = Flexible Time Division Multiple Access
ˇ 2.2. KOMUNIKACE NA SBERNICI
5
Obr´ azek 2.1: Komunikaˇcn´ı cyklus na sbˇernici FlexRay
Nejmenˇs´ı spoleˇcnou komunikaˇcn´ı jednotkou vˇsech stanic um´ıstˇen´ ych na sbˇernici je jeden makrotik (1 MT). Tento makrotik je d´ale rozdˇelen na celistv´ y poˇcet menˇs´ıch jednotek nazvan´ ych mikrotik (1 μT). Jak je vidˇet z obr. 2.1, odpov´ıd´a 1 μT = 12,5 - 200 ns. Mikrotik je v komunikaci zaveden kv˚ uli zpˇresnˇen´ı velikosti makrotiku. Z makrotik˚ u jsou sloˇzeny komunikaˇcn´ı sloty a ze slot˚ u jsou vytvoˇreny komunikaˇcn´ı segmenty. N´azorn´e pouˇzit´ı segment˚ u je vidˇet z obr. 2.2
Obr´ azek 2.2: Porovn´ an´ı statick´eho a dynamick´eho segmentu
KAPITOLA 2. FLEXRAY
6
2.3
Komunikaˇ cn´ı r´ amec
Kaˇzd´emu slotu n´aleˇz´ı maxim´alnˇe jeden komunikaˇcn´ı r´amec. Ten je sloˇzen ze tˇr´ı ˇca´st´ı hlaviˇckov´eho, datov´eho a kontroln´ıho segmentu. V hlaviˇckov´em segmentu je prvn´ıch 5 bit˚ u vyhrazeno jako indikaˇcn´ıch (viz n´ıˇze). Dalˇs´ıch 11 bit˚ u tvoˇr´ı ID r´amce, n´asledov´ano 7 bity, kter´e urˇcuj´ı, kolik dat je v r´amci pˇren´aˇseno. Aby bylo moˇzn´e hlaviˇcku zkontrolovat, je zde 11 bitov´ y CRC segment. Nakonec je zaˇrazeno 6 bit˚ u, kter´e oznaˇcuj´ı ˇc´ıslo cyklu. V datov´em segmentu je prostor pro pˇren´aˇsen´a data, kter´ y je pˇredem oznaˇcen´ y v hlaviˇckov´em segmentu. Jeho maxim´aln´ı velikost je 127 dvoubyt˚ u. Do kontroln´ım segmentu se dosad´ı kontroln´ı CRC souˇcty pro pˇren´aˇsen´a data.
Obr´ azek 2.3: Komunikaˇcn´ı r´ amec
Zde jsou uvedeny indikaˇcn´ı bity hlaviˇckov´eho segmentu: • I1–Rezervovan´ y bit je urˇcen pro budouc´ı rozliˇsen´ı verz´ı. • I2–Indik´ ator preambule datov´ eho segmentu svoji aktivitou rozhoduje o tom, co se nach´az´ı na zaˇca´tku datov´eho segmentu. U dynamick´eho segmentu je na zaˇc´atku dat ID zpr´avy a data statick´eho segmentu zaˇc´ınaj´ı network managment vektorem. • I3–Indik´ ator nulov´ eho r´ amce indikuje, ˇze r´amec nenese ˇz´adn´a data. • I4–Indik´ ator synchronizaˇ cn´ıho r´ amce slouˇz´ı k synchronizaci ˇcasov´ ych z´akladen vˇsech stanic, kter´e tuto zpr´avu akceptuj´ı. Mus´ı b´ yt odesl´ana pouze statick´ ym segmentem a na oba kan´aly souˇcasnˇe. • I5–Indik´ ator startovac´ıho r´ amce se pouˇz´ıv´a se pˇri startu s´ıtˇe. V´ yluˇcnˇe s I4.
ˇ 2.4. TYPY STANIC NA SBERNICI
2.4
7
Typy stanic na sbˇ ernici
• Normal node – Bˇeˇzn´a stanice pˇripojen´a na sbˇernici bez zvl´aˇstn´ıch u ´kol˚ u v˚ uˇci sbˇernici.
• Coldstart node – Stanice vyuˇz´ıvan´a pro start neaktivn´ı s´ıtˇe. Vys´ıl´a ve statick´em slotu r´amec s pˇr´ıznaky startup a sync. R´amec je vys´ıl´an na oba kan´aly A i B. Pro start s´ıtˇe je nutn´e m´ıt alespoˇ n dvˇe tyto stanice.
• Sync node – Vys´ıl´a na oba kan´aly s´ıtˇe ve statick´em slotu r´amec s pˇr´ıznakem sync. Maxim´aln´ı poˇcet stanic je 15.
2.5
Synchronizace stanic
Jak bylo v u ´vodu zm´ınˇeno, standard FlexRay vyuˇz´ıv´a nekolizn´ı pˇr´ıstup na sbˇernici. K tomu aby byla komunikace na sbˇernici opravdu nekolizn´ı, je zapotˇreb´ı vˇsechny stanice ˇcasovˇe synchronizovat. Synchronizace se prov´ad´ı na z´akladˇe mˇeˇren´ı odchylky mezi skuteˇcn´ ym a pˇredpokl´adan´ ym pˇr´ıchodem synchronizaˇcn´ıho r´amce. Tyto odchylky se vyhodnocuj´ı podle algoritmu FTM (Fault-Tolerant Midpoint). Smysl algoritmu spoˇc´ıv´a v sestupn´em seˇrazen´ı vˇsech odchylek a n´asledn´em vyˇskrtnut´ı k maxim´aln´ıch a minim´aln´ıch odchylek. Parametr k se vol´ı dle tabulky 2.1. Ze zbyl´ ych odchylek se vybere maxim´aln´ı a minim´aln´ı hodnota a vypoˇcte se aritmetick´ y pr˚ umˇer. Nejl´epe je vˇse vidˇet na obr. 2.4, kde je k = 2. V´ ysledkem tohoto v´ ypoˇctu je poˇcet mikrotik˚ u, kter´ y jsou povaˇzov´an za odchylku od glob´aln´ı ˇcasov´e z´akladny.
Poˇcet hodnot Hodnota parametru k 1 .. 2
0
3 .. 7
1
>7
2
Tabulka 2.1: Stanoveni parametru k
KAPITOLA 2. FLEXRAY
8
Obr´ azek 2.4: V´ ypoˇcet koneˇcn´e odchylky pro korekci
Kdyˇz je odchylka vypoˇctena, je potˇreba prov´est pˇr´ısluˇsn´e korekce rychlosti a offsetu. V´ yznam tˇechto korekc´ı je vidˇet na obr. 2.5.
Obr´ azek 2.5: Uk´ azka korekce rychlosti a offsetu
2.6
Start sbˇ ernice
Trendem dneˇsn´ı doby je nutnost usp´avat vˇsechny stanice, aby odeb´ıraly minim´aln´ı klidov´ y proud. Proto i u tˇechto modul˚ u je potˇreba nejdˇr´ıve vyslat WakeUp symbol aby se probudily vˇsechny stanice na s´ıti. Po tomto probuzen´ı stanice nastaven´e jako coldstart zaˇcnou monitorovat komunikaci na sbˇernici. Pokud se bˇehem jednoho komunikaˇcn´ıho cyklu nezaznamen´a ˇz´adn´ y pˇrenos na sbˇernici, vyˇsle pˇr´ıznak CAS StartUp r´amec a st´av´a se leading coldstart node. Stanice vˇsak st´ale monitoruje komunikaci na sbˇernici, aby detekovala moˇznou kolizi a to po dobu minim´alnˇe 4 komunikaˇcn´ıch cykl˚ u. Detekuje-li komunikaˇcn´ı kolizi s jinou coldstart stanic´ı, ukonˇc´ı komunikaci a odmlˇc´ı se na urˇcitou dobu, neˇz zaˇcne znovu startovac´ı proceduru. Je d˚ uleˇzit´e oˇsetˇrit, aby kaˇzd´a stanice mˇela jinou dobu ˇcekan´ı, jinak by se totiˇz s´ıt’ nedok´azala nastartovat. Pokud kolize nenastane, pˇr´ıˇst´ı dva odvys´ılan´e r´amce inicializuj´ı ˇcasov´e sch´ema. Podˇr´ı-
ˇ 2.6. START SBERNICE
9
zen´a coldstart stanice zkontroluje, zda toto ˇcasov´e sch´ema odpov´ıd´a a pokud ano, pˇripoj´ı se k vedouc´ı stanici. Mus´ı vˇsak synchronizovat svoj´ı ˇcasovou z´akladnu podle vedouc´ı stanice. Od t´eto chv´ıle zaˇcne podˇr´ızen´a stanice komunikovat a vys´ılat sv´e synchronizaˇcn´ı r´amce. S´ıt’ je t´ımto u ´spˇeˇsnˇe nastartovan´a. Kdyby ale podˇr´ızen´a stanice coldstart nezaˇcala vys´ılat, vedouc´ı stanice by cel´ y proces startovan´ı ukonˇcila a pokouˇsela se o spojen´ı znovu.
Pˇripojen´ı dalˇs´ıch stanic na sbˇernici prob´ıh´a tak, ˇze se nejprve podle synchronizaˇcn´ıch r´amc˚ u sjednot´ı ˇcasov´a z´akladna a pot´e je moˇzn´e vys´ılat. Nejl´epe je vidˇet start na obr. 2.7, kde jsou jednotliv´e f´aze startu s´ıtˇe rozkresleny. ´, J., 2008), (Pokorny ´, V., Veˇsker´e tyto informace byly nastudov´any z (Malinsky 2007), (Waraus, D., 2008) a v neposledn´ı ˇradˇe z (FlexRay, 2005).
ˇ Obr´ azek 2.6: Casov´ e sch´ema startu sbˇernice
10
KAPITOLA 2. FLEXRAY
Obr´ azek 2.7: Blokov´ y diagram startupu s´ıtˇe
Kapitola 3 Model a ˇ r´ızen´ı 3.1
Re´ aln´ y model
Pro potˇreby prezentace drive-by-wire byl zakoupen model buginy, kter´a je vyfocena na obr. 3.1. Jedn´a se o konstrukˇcnˇe jednoduch´e dvoustop´e vozidlo s ˇriditelnou pˇredn´ı n´apravou a hnanou zadn´ı n´apravou. Na simulaˇcn´ım vozidle nen´ı ˇz´adn´a dalˇs´ı pokroˇcil´a elektronika, protoˇze pˇredpokladem je v´ yhledovˇe osadit vozidlo vˇsemi dostupn´ ymi technologiemi x-by-wire. Na modelu byly provedeny nutn´e u ´pravy, aby bylo moˇzn´e pˇripojit potˇrebn´e senzory a elektromotor.
Obr´ azek 3.1: Fotografie simulaˇcn´ıho voz´ıtka - bugina
11
12
ˇ ´IZEN´I KAPITOLA 3. MODEL A R Proveden´e u ´pravy odpov´ıdaj´ı sch´ematu na obr. 3.2. Je zde vidˇet fyzick´e rozpojen´ı
volantu od ˇr´ızen´e n´apravy. Pouˇzit´e senzory a elektromotor jsou rozebr´any pozdˇeji v dalˇs´ı kapitole. Na obr. 3.3 je naznaˇceno propojen´ı jednotliv´ ych modul˚ u pomoc´ı sbˇernice FlexRay.
Obr´ azek 3.2: Obecn´e sch´ema ˇr´ızen´ı po dr´ atech
Obr´ azek 3.3: Integrace sbˇernice FlexRay do buginy
Ve sch´ematech jsou naznaˇceny dva elektromotory. Jeden pro natoˇcen´ı kol a druh´ y pro zpˇetnou vazbu k volantu. Tento druh´ y elektromotor nen´ı v pr´aci pouˇzit, protoˇze ˇcasovou n´aroˇcnost´ı by znaˇcnˇe zat´ıˇzil jiˇz tak n´aroˇcnou bakal´aˇrskou pr´aci.
´ 3.2. NAVRH MODELU
3.2
13
N´ avrh modelu
Pro simulace a n´avrh regul´atoru bylo zapotˇreb´ı nal´ezt pˇresn´ y model re´aln´eho vozidla. Po nastudov´an´ı materi´al˚ u ze Stanfordsk´e univerzity (Yih, P., 2004) jsem zvolil pˇrenos soustavy druh´eho ˇr´adu v obecn´em tvaru: G(s) =
1 Jw s2 + b w s
(3.1)
V pˇrenosu jsou vyuˇzity dvˇe konstanty z ˇr´ızen´e n´apravy vozidla. Jw je moment setrvaˇcnosti na ose ˇr´ızen´ı kol a bw je tlumen´ı osy ˇr´ızen´ı kol a ozuben´eho koleˇcka na hˇrebenov´e tyˇci. Z parametr˚ u motoru a pˇrevodovky zn´am pˇribliˇznou dobu pˇrebˇehu z jedn´e krajn´ı polohy do druh´e Tp ≈ 2 s. D´ıky symetrii ˇr´ızen´ı mohu tento ˇcas rozdˇelit na dvˇe poloviny. Z toho vypl´ yv´a, ˇze doba ust´alen´ı pro skok ze stˇredov´e polohy do jedn´e z mezn´ıch je Ts ≈ 1 s. Ust´alenou hodnotu budu povaˇzovat pro 2% rozptyl. Za pomoci MATLABu a teorie identifikace pˇrenos˚ u (Franklin, G. F. et al., 2006) jsem urˇcil hodnoty parametr˚ u rovnice simulaˇcn´ıho modelu 3.1. G(s) =
3.3
1 + 0.3s
0.01s2
(3.2)
Poˇ zadavky na regul´ ator a jeho n´ avrh
M´ame vhodn´ y simulaˇcn´ı model ˇr´ızen´ı a ted’ je potˇreba model vhodnˇe ˇr´ıdit. Nejprve je tˇreba stanovit, co od regul´atoru budeme potˇrebovat. Prioritnˇe to mus´ı b´ yt regul´ator bez pˇrekmitu. D´ale by mˇel m´ıt co nejkratˇs´ı dobu ust´alen´ı a nulovou ust´alenou odchylku. V neposledn´ı ˇradˇe mus´ı odol´avat ruˇsiv´ ym vliv˚ um, b´ yt robustn´ı. Pro tento u ´ˇcel se hod´ı regul´atory typu P, PI a PID. Regul´ator typu PD nen´ı vhodn´ y, protoˇze zan´aˇs´ı do soustavy kmity nepˇrimˇeˇren´ ymi z´asahy derivaˇcn´ı sloˇzky. Regul´ator P je velmi jednoduch´ y, ale bohuˇzel v´ ysledky regulace nebyly v simulac´ıch nijak oslniv´e. Proto jsem navrhl PID regul´ator. Ten byl o pozn´an´ı lepˇs´ı, bohuˇzel derivaˇcn´ı sloˇzka regul´atoru zp˚ usobovala tak´e y m´a velmi velk´e kmity a n´aslednou oscilaci kol jako PD. Zb´ yv´a uˇz jen PI regul´ator, kter´ poˇca´teˇcn´ı maximum, pˇrekmit aˇz 50 %. Vˇsechny ostatn´ı vlastnosti tohoto typu regul´atoru jsou perfektn´ı. Proto regul´ator dopln´ıme o Anti-windup kompenzaci (Franklin, G. F. et al., 2006), kter´a zabr´an´ı tˇemto velk´ ym pˇrekmit˚ um. V´ ysledn´e sch´ema je na obr. 3.4. Cel´a soustava je doplnˇen´a o prvky, kter´e ji dˇelaj´ı v´ıce re´alnou. Jedn´a se o saturaˇcn´ı prvky a o prvky mrtv´ ych m´ıst, kter´e symbolizuj´ı r˚ uzn´e v˚ ule v mechanick´ ych ˇca´stech vozidla.
ˇ ´IZEN´I KAPITOLA 3. MODEL A R
14
Konstanty regul´atoru jsem navrhnul pomoc´ı metody geometrick´eho m´ısta koˇren˚ u1 (Franklin, G. F. et al., 2006), podrobnˇejˇs´ı pohled na n´avrh regul´atoru je vidˇet na obr. 3.7, kde jsou zn´azornˇeny v´ ysledn´e polohy p´ol˚ u pro nejkratˇs´ı moˇznou dobu ust´alen´ı a pˇrimˇeˇren´ y akˇcn´ı z´asah. Obecn´ y a v´ ysledn´ y pˇrenos PI regul´atoru je v rovnici 3.3. V´ ysledn´e konstanty regul´atoru jsou kP = 4 a kI = 20. C(s) = kD ·
1 + 0.2s TI + s = 20 · s s
(3.3)
To by byl obyˇcejn´ y PI regul´ator, jeho odezva na jednotkov´ y skok je na obr. 3.5 vyznaˇcena ˇcervenou barvou. Je na n´ı vidˇet opravdu velk´ y pˇrekmit. Proto regul´ator dopln´ıme jiˇz zm´ınˇenou Anti-Windup kompenzac´ı. Pˇrenos regul´atoru v saturaci akˇcn´ıho ˇclenu je pops´an rovnic´ı 3.4, mimo p´asmo saturace plat´ı pˇrenos s pˇredeˇslou rovnic´ı 3.3. Na obr. 3.4 je toto tvrzen´ı dobˇre patrn´e. Pˇri r˚ uzn´ ych hodnot´ach akˇcn´ıho z´asahu pˇred a za saturaˇcn´ım ˇclenem se jejich rozd´ıl zes´ıl´ı respektive vyn´asob´ı konstantou kA a odeˇcte se od vstupn´ı veliˇciny pˇripojen´e do regul´atoru. Pokud jsou veliˇciny stejn´e tak, jejich rozd´ıl je roven nule a ze vstupu regul´atoru se nic neodeˇcte. V programov´e interpretaci regul´atoru je moˇzn´e v dobˇe saturace integraˇcn´ı sloˇzku u ´plnˇe vypnout a odstranit tak neˇza´douc´ı pˇrekmitnut´ı. C(s)Anti−W indup =
k P s + kI s + kI · kA
(3.4)
Obr´ azek 3.4: Zapojen´ı PI regul´ atoru s Anti-Windup kompenzac´ı
Pouh´ ym okem je z obr. 3.5 patrn´e, ˇze kompenzace regul´atoru m´a obrovsk´ y v´ yznam. Na grafu jsou tˇri pr˚ ubˇehy. Zelen´ y je vstupn´ı hodnota do regulovan´e soustavy, ˇcerven´ y pr˚ ubˇeh 1
V anglick´e literatuˇre a v MATLABu je tato metoda zn´am´a pod n´ azvem Root Locus
ˇ ´ ´ 3.3. POZADAVKY NA REGULATOR A JEHO NAVRH
15
je odezva regulovan´e soustavy na skokovou vstupn´ı veliˇcinu bez pouˇzit´ı kompenzace AntiWindup a nakonec modr´ y pr˚ ubˇeh je odezva s kompenzac´ı.
Obr´ azek 3.5: Odezva na skok regulovan´e soustavy s PI regul´ atorem s AntiWindup kompenzac´ı a bez n´ı
Obr´ azek 3.6: Odezva na skok obsahuj´ıc´ı ˇsum vstupuj´ıc´ı do regulovan´e soustavy s PI regul´ atorem s Anti-Windup kompenzac´ı
Regul´ator je navrˇzen opravdu kvalitnˇe. V simulac´ıch m´a vskutku dobr´e v´ ysledky. Jenˇze tam jsou pouˇzity ide´aln´ı vstupn´ı sign´aly, a to v re´aln´em modelu nen´ı moˇzn´e. Do regulace vstupuje spousta ˇsum˚ u a nepˇresnost´ı mˇeˇren´ı. Pokud se do simulace pˇrid´a ˇsum o hodnotˇe zhruba tˇrech spodn´ıch bit˚ u na inkrement´aln´ım senzoru, coˇz odpov´ıd´a pˇribliˇznˇe 1 − 2◦
16
ˇ ´IZEN´I KAPITOLA 3. MODEL A R
natoˇcen´ı kol, regul´ator nest´ıh´a pˇresnˇe zasahovat. Na obr. 3.6 je to dobˇre vidˇet. Pokud tedy budou ˇsumy a mechanick´e v˚ ule ovlivˇ novat regulaci pˇres 1 − 2◦ , PI regul´ator nebude nejvhodnˇejˇs´ı. V tom pˇr´ıpadˇe by byl vhodnˇejˇs´ı obyˇcejn´ y regul´ator typu P, kter´ y m´a regulaˇcn´ı v´ ysledky v simulac´ıch o nˇeco horˇs´ı, ale to uk´aˇze aˇz mˇeˇren´ı na re´aln´em modelu.
Obr´ azek 3.7: V´ ysledn´ a pozice p´ol˚ u v sisotool
Kapitola 4 Ovl´ adac´ı prvky modelu Jak bylo jiˇz nˇekolikr´at zm´ınˇeno, steer-by-wire potˇrebuje ke sv´e ˇcinnosti elektromechanick´e aktu´atory a senzory. V t´eto kapitole bl´ıˇze pop´ıˇsi jednotliv´e senzory a servomotor. Uvedu zde jejich d˚ uleˇzit´e vlasnosti a pˇrednosti, kv˚ uli kter´ ym byly vybr´any.
4.1
Senzor natoˇ cen´ı volantu a kontroln´ı senzor natoˇ cen´ı kol
Aby mohlo b´ yt kdykoliv bez zbyteˇcn´ ych kalibrac´ı a nepˇresnost´ı zjiˇstˇeno, jak jsou volant nebo kola natoˇceny, je nutn´ y senzor s absolutn´ım stavem natoˇcen´ı. V´ ystup ze senzoru je realizov´an 12-ti ˇzilov´ ym kabelem. Dva vodiˇce jsou pouˇzity pro nap´ajen´ı a zbyl´ ych deset tvoˇr´ı 10-bitovou datovou sbˇernici. Rozliˇsitelnost senzoru je pˇri pouˇzit´ı vˇsech 10 bit˚ u rovna um. Senzor je jednoot´aˇckov´ y, tud´ıˇz dok´aˇze pokr´ yt 360◦ . Pro jeden stav 210 = 1024 stav˚ tedy pˇripad´a
360◦ 1024
= 0.351◦ . Dalˇs´ı d˚ uleˇzitou vlastnost´ı senzoru je jeho datov´ y v´ ystup.
Jedn´a se o v´ ystup v nehazardn´ım Grayovˇe k´odu. K´od zaruˇcuje pˇri pˇrechodu mezi dvˇema sousedn´ımi stavy zmˇenu pouze v jednom bitu na datov´em v´ ystupu. Tato zmˇena zabr´an´ı velk´ ym energetick´ ym ˇspiˇck´am, kter´e by vznikaly pˇri pouˇzit´ı bin´arn´ıho k´odu. N´aroky na oba senzory natoˇcen´ı jsou stejn´e, proto byly pouˇzity stejn´e senzory. Jedn´a se o typ ARC 415 od firmy LARM. 17
´ ´I PRVKY MODELU KAPITOLA 4. OVLADAC
18
4.2
Motor pro natoˇ cen´ı kol
Servomotor pro natoˇcen´ı kol pˇredn´ı n´apravy mus´ı splˇ novat dvˇe nejd˚ uleˇzitˇejˇs´ı vlastnosti. Mus´ı m´ıt dostateˇcn´ y krout´ıc´ı moment a mus´ı b´ yt dostateˇcnˇe rychl´ y. Vˇsechny tyto parame´r ˇ, M., 2008), proto je zde jen pro try byly zmˇeˇreny v pr´aci Michala Vinkl´aˇre (Vinkla pˇripomenut´ı zm´ın´ım. Pouˇzit´ y elektromotor m´a s pˇripojenou pˇrevodovkou v´ ystupn´ı s´ılu F = 800 N a ot´aˇcky 250 ot/min. D´ıky pokus˚ um, kter´e byly provedeny bˇehem oˇzivov´an´ı steer-by-wire syst´emu, mohu ˇr´ıci, ˇze motor je vybr´an opravdu dobˇre a bez sebemenˇs´ıch probl´em˚ u dok´aˇze natoˇcit kola do krajn´ıch mez´ı. Spotˇreba cel´eho syst´emu pˇri tˇechto pokusech nepˇres´ahla I = 15 A. Jednalo se o nezat´ıˇzenou, stoj´ıc´ı buginu.
4.3
Technick´ e vybaven´ı ovl´ adac´ıch modul˚ u
V pˇredchoz´ı kapitole byly zm´ınˇeny moduly, kter´e zajiˇst’uj´ı veˇskerou ˇr´ıd´ıc´ı ˇcinnost cel´eho syst´emu. V t´eto pr´aci jsou pouˇzity dva stejn´e moduly navrˇzen´e Michalem Vinkl´aˇrem. Pojem modul by se dal pˇrirovnat k pojmu blackbox. Co se tedy pod pojmem modul skr´ yv´a? Navrˇzen´ y modul obsahuje tyto d˚ uleˇzit´e prvky: • ARM7 - Mikroprocesor ˇ c • MFR4310 - FlexRay Radiˇ • VNH2SP30-E - H-m˚ ustek pro ˇr´ızen´ı motoru
Obr´ azek 4.1: Deska modulu
´ VYBAVEN´I OVLADAC ´ ´ICH MODULU ˚ 4.3. TECHNICKE
4.3.1
19
Mikroprocesor ARM7 - STR710FZ J´ adro
ARM7TDMI 32-bit RISC Procesor
Pamˇ eti
Periferie
Pamˇet’ programu (Flash) Pamˇet’ dat (Flash)
256 KB
Pamˇet’ RAM
64 KB
A/D pˇrevodn´ık ˇ ˇ ıtaˇce Casovaˇ ce/C´
4 x 12-bit
Vstupy/V´ ystupy
48 pin˚ u
Komunikaˇcn´ı rozhran´ı
10 druh˚ u
Vstupy pˇreruˇsen´ı
16
16KB
4 x 16-bit
Tabulka 4.1: Vlastnosti procesoru
Analogovˇe ˇc´ıslicov´e pˇrevodn´ıky maj´ı vstupn´ı napˇet´ı od 0 − 2.5 V a maxim´aln´ı frekvenci 1 kHz. Mezi komunikaˇcn´ı rozhran´ı procesoru patˇr´ı napˇr´ıklad CAN (ver. 2.0B Active), 4 x UART, USB 2.0 Full speed (12 Mbps). V´ ykon procesoru je 59 MIPS pˇri 66 MHz za pouˇzit´ı programov´e pamˇeti typu flash (STMicroelectronics, 2008a), (STMicroelectronics, 2008b). V´ ypoˇcetn´ı v´ ykon a perif´erie procesoru jsou v´ıce neˇz dostateˇcn´e. Hlavn´ı prac´ı procesoru je udrˇzov´an´ı komunikace po sbˇernici FlexRay prostˇrednictv´ım kontrol´eru MFR4310. D´ale zpracov´an´ı sign´al˚ u ze senzor˚ u a v´ ypoˇcet sign´al˚ u pro akˇcn´ı ˇcleny.
4.3.2
FlexRay ˇ radiˇ c - MFR4310
ˇ c FlexRay sbˇernice MFR4310 podporuj´ıc´ı protokol FlexRay v2.1 pouˇzit´ Radiˇ y v t´eto pr´aci, m´a n´asleduj´ıc´ı vlastnosti (Freescale, 2008): • Dvoukan´alov´a a jednokan´alov´a komunikace s moˇznost´ı v´ ybˇeru kan´alu A nebo B • Pˇrenosov´a rychlost aˇz 10 Mbps • 128 konfigurovateln´ ych buffer˚ u pro zpr´avy, kaˇzd´ y s velikost´ı od 0 do 254 byt˚ u • Dva nez´avisl´e message a FIFO buffery s moˇznost´ı filtrace podle ID fr´amu, ID kan´alu nebo dle ˇc´ıtaˇce cykl˚ u • Dva ˇcasovaˇce - jeden absolutn´ı a druhy volitelnˇe nastaviteln´ y jako absolutn´ı nebo relativn´ı
´ ´I PRVKY MODELU KAPITOLA 4. OVLADAC
20
4.3.3
H-m˚ ustek pro ˇ r´ızen´ı motoru - VNH2SP30-E
Jedn´a se o integrovan´ y H-m˚ ustek pro sp´ın´an´ı proudu IOU T = 30 A (STMicroelectronics, 2008, Feb). V´ ystupn´ı v´ ykon je regulov´an pomoc´ı PWM1 sign´alu z procesoru. Ovl´adan´ı smˇeru toˇcen´ı se prov´ad´ı bity INA a INB . D´ale jsou zapotˇreb´ı povolovac´ı bity ENA a u je uvedeno v tabulce 4.2. Tabulka 4.3 obsahuje moˇzn´e ENB . Pˇripojen´ı ovl´adac´ıch pin˚ zp˚ usoby ovl´adan´ı motoru. Pin Funkce P1.4 ENB - Povolen´ı ˇr´ızen´ı kan´alu B P1.5 INA - Urˇcov´an´ı smˇeru P1.6 INB - Urˇcov´an´ı smˇeru P1.7 PWM - PWM sign´al P2.9 ENA - Povolen´ı ˇr´ızen´ı kan´alu A Tabulka 4.2: Pˇripojen´ı m˚ ustku k procesoru
INA
INB
Funkce
0
0
Motorov´a brzda (VCC)
0
1
Ot´aˇcen´ı ve smˇeru hodinov´ ych ruˇciˇcek (Vpravo)
1
0
Ot´aˇcen´ı proti smˇeru hodinov´ ych ruˇciˇcek (Vlevo)
1
1
Motorov´a brzda (GND)
Tabulka 4.3: Ovl´ ad´ an´ı m˚ ustku - Pˇri ENA =ENB = 1
1
PWM = Pulse Width Modulation - Pulznˇe ˇs´ıˇrkov´ a modulace
Kapitola 5 Programov´ an´ı modul˚ u Moduly se programuj´ı za pomoci v´ yvojov´eho prostˇred´ı IAR Embedded Workbench IDE 4.03 v programovac´ım jazyce C. Spojen´ı s jednotliv´ ymi moduly zajiˇst’uje In-System program´ator J-Link se s´eriov´ ym rozhran´ım JTAG1 . Tato pr´ace vyuˇz´ıv´a podstatnou ˇca´st zdrojov´ ych k´od˚ u z Diplomov´e pr´ace ing. Denise Warause (Waraus, D., 2008). Jedn´a se o knihovnu FlexRay, jej´ı nastaven´ı pro komunikaci s dalˇs´ımi moduly na sbˇernici a obsluˇzn´ y k´od pro komunikaci mezi ˇradiˇcem MFR4310 a procesorem. D´ale byla z Diplomov´e pr´ace pˇrevzata jmenn´a konvence a datov´e typy. Do k´odu byly dops´any funkce pro vyˇcten´ı aktu´aln´ı hodnoty ze senzoru, regulaˇcn´ı smyˇcka pro nastaven´ı natoˇcen´ı kol a v neposledn´ı ˇradˇe zmˇena parametr˚ u FlexRay knihovny pro poˇzadovanou konfiguraci s´ıtˇe. Zdrojov´e k´ody jsou v jednom projektu v´ yvojov´eho prostˇred´ı IAR. Protoˇze je velk´a ˇca´st k´odu pro vˇsechny moduly stejn´a a pˇri kaˇzd´e zmˇenˇe tohoto spoleˇcn´eho k´odu by se musela zmˇena aplikovat ve vˇsech projektech, je k´od rozdˇelen pomoc´ı definic pro jednotliv´e stanice a v souboru FRconfig.c je nutn´e nastavit, jak´ y modul pr´avˇe programujeme. Na v´ ybˇer jsou pouze dva, modul NODE_STEER, reprezentuj´ıc´ı modul obsluhuj´ıc´ı volant a modul NODE_MOTOR zajiˇst’uj´ıc´ı spr´avn´e natoˇcen´ı kol.
5.1
Pˇ revod hodnoty senzoru natoˇ cen´ı volantu
Pro pˇrevod hodnoty ze senzoru natoˇcen´ı z Grayova k´odu do k´odu bin´arn´ıho je zapotˇreb´ı jednoduch´ y obsluˇzn´ y k´od, kter´ y jsem pouˇzil z Wikipedie (Gray code, 2008, Prosinec). 1
JTAG = Joint Test Action Group
21
´ ´I MODULU ˚ KAPITOLA 5. PROGRAMOVAN
22
Zdrojov´ y k´od byl upraven z pseudo k´odu do jazyka C. D´ale bylo zapotˇreb´ı k´od upravit podle jmenn´e konvence a dostupn´ ych datov´ ych typ˚ u. V´ ysledn´ y zdrojov´ y k´od je uveden pod t´ımto textem i s definic´ı konstanty d´elky pˇrevodu. V principu se konverze prov´ad´ı na z´akladˇe bitov´eho posunu vpravo o jednu pozici vstupn´ı promˇenn´e input kaˇzd´ ym opakov´an´ım cyklu. Takto upraven´a vstupn´ı promˇenn´a se bitovˇe vyn´asob´ı s v´ ystupn´ı promˇennou output. Do v´ ystupn´ı promˇenn´e output byla na zaˇca´tku pˇrevodu dosazena hodnota vstupn´ı promˇenn´e input.
#DEFINE G2B_LENGTH 10 uint16 Gray2Bin(uint16 input){ uint16 output = input; uint8 length = G2B_LENGTH; while(length > 0) { input >>= 1; output ^= input; length--; } return output;}
5.2
Naˇ c´ıt´ an´ı hodnoty ze senzoru
Hodnota ze senzoru se odeˇc´ıt´a v pravideln´ ych intervalech s pˇreteˇcen´ım ˇcasovaˇce vyhrazen´ ym pro vzorkov´an´ı. Odeˇcet ze sbˇernice se prov´ad´ı v obsluze pˇreruˇsen´ı vzorkovac´ıho ˇc´ıtaˇce. Vzorkovac´ı interval se vypoˇcte podle rovnice 5.1. Naˇcten´a data se posl´eze pˇrekonvertuj´ı do bin´arn´ı soustavy a pokud je nav´az´ano spojen´ı s druh´ ym modulem, data se poˇslou na sbˇernici. Minim´alnˇe se musej´ı poslat dvˇe 16 bitov´a ˇc´ısla, protoˇze jak jiˇz bylo ˇreˇceno v kapitole vˇenovan´e sbˇernici FlexRay, je to minimum dynamick´eho segmentu. Prvn´ı hodnota je rovna hodnotˇe odeˇcten´e ze senzoru a druh´a, kontroln´ı, obsahuje procentu´aln´ı natoˇcen´ı volantu. Na z´akladˇe tˇechto dvou hodnot jde bez probl´emu zrekonstruovat u ´hel natoˇcen´ı kol. Datov´e bity senzoru jsou k procesoru pˇrpojeny na piny podle tabulky 5.1. Datov´e bity nejsou pˇripojeny nejˇsikovnˇeji, v pˇr´ıˇst´ı revizi je zapotˇreb´ı opti-
ˇ ´ITAN ´ ´I HODNOTY ZE SENZORU 5.2. NAC
23
malizovat poˇrad´ı jednotliv´ ych bit˚ u k pin˚ um procesoru. TSAM P LE = 216 ·
2 fP CLK2
= 216 ·
2 = 5.461 ms 24 Mhz
(5.1)
Pin procesoru Bit senzoru P1.3
D0
P1.2
D1
P1.1
D2
P1.0
D3
P2.15
D4
P2.14
D5
P2.13
D6
P2.12
D7
P2.11
D8
P2.10
D9
Tabulka 5.1: Pˇripojen´ı senzoru k procesoru
Pod t´ımto textem je k´od pro vyˇcten´ı vˇsech bit˚ u senzoru natoˇcen´ı. Vzhledem k faktu stejn´ ych senzor˚ u natoˇcen´ı je i k´od pro jejich odeˇcet stejn´ y. uint16 KolaActual; KolaActual = GPIO_BitRead(GPIO1,3); KolaActual += GPIO_BitRead(GPIO1,2) << G2B_LENGTH-9; KolaActual += GPIO_BitRead(GPIO1,1) << G2B_LENGTH-8; KolaActual += GPIO_BitRead(GPIO1,0) << G2B_LENGTH-7; KolaActual += GPIO_BitRead(GPIO2,15) << G2B_LENGTH-6; KolaActual += GPIO_BitRead(GPIO2,14) << G2B_LENGTH-5; KolaActual += GPIO_BitRead(GPIO2,13) << G2B_LENGTH-4; KolaActual += GPIO_BitRead(GPIO2,12) << G2B_LENGTH-3; KolaActual += GPIO_BitRead(GPIO2,11) << G2B_LENGTH-2; KolaActual += GPIO_BitRead(GPIO2,10) << G2B_LENGTH-1; Po u ´pravˇe datov´eho kabelu bude vypadat k´od n´asledovnˇe: KolaActual = GPIO_ByteRead(GPIO1,LSB); KolaActual |= GPIO_ByteRead(GPIO2,MSB) >> 6;
´ ´I MODULU ˚ KAPITOLA 5. PROGRAMOVAN
24
5.3
Programov´ a podoba regul´ atoru
Navrhnout regul´ator pro simulaˇcn´ı model nebylo aˇz tak tˇeˇzk´e. Pˇrev´est samotn´ y regul´ator ze symbolick´eho jazyka do programovac´ıho jazyka C tak´e nebyl probl´em. Nejobt´ıˇznˇejˇs´ı ˇca´st´ı bylo propojen´ı regul´atoru s elektromotorem, respektive s jeho ovl´adac´ımi prvky. Samotn´ y regul´ator totiˇz vypoˇc´ıt´a jen akˇcn´ı z´asah na kola. Tento akˇcn´ı z´asah je potˇreba pˇrepoˇc´ıtat do stˇr´ıdy PWM sign´alu PWMPower, kter´ y je potˇreba poslat na ovl´adac´ı m˚ ustek motoru. Nemluvˇe o tom, ˇze v´ ykon elektromotoru m´a sv˚ uj limit, pˇres kter´ y akˇcn´ı z´asah nem˚ uˇze j´ıt. Proto je potˇreba oˇsetˇrit, aby akˇcn´ı z´asah nepˇrekroˇcil mezn´ı v´ ykon. D´ale je potˇreba zvolit smˇer ot´aˇcen´ı motoru pomoc´ı nastavovac´ıch pin˚ u. Smˇer je zvolen podle polarity odchylky mezi aktu´aln´ı pozic´ı kol KolaActual a poˇzadovanou pozic´ı kol KolaRequest. Jak je uvedeno v tabulce 4.2, motor se d´a uv´est do stavu zabrzdˇen´ı. Tento fakt vyuˇzijeme ve chv´ıli, kdy se odchylka mezi aktu´aln´ı a poˇzadovanou pozic´ı bude rovnat nule nebo nˇejak´e maxim´aln´ı povolen´e odchylce definovan´e jako KOLA_DEAD. Tato maxim´aln´ı odchylka od ust´alen´e hodnoty je velmi potˇrebn´a protoˇze v cel´em re´aln´em syst´emu je mnoˇzstv´ı mechanick´ ych v˚ ul´ı a bez n´ı by mohla cel´a soustava zaˇc´ıt oscilovat. Zp˚ usoben´e kmity by neefektivnˇe zatˇeˇzovaly elektromotor a zbyteˇcnˇe ho opotˇrebov´avaly. // Nastaven´ ı maxim´ aln´ ı a minim´ aln´ ı pozice kol if (KolaRequest > KOLA_MAX) KolaRequest = KOLA_MAX; if (KolaRequest < KOLA_MIN) KolaRequest = KOLA_MIN; // V´ ypoˇ cet odchylky Odchylka = KolaRequest - KolaActual; // Nastaven´ ı smˇ eru ot´ ac ˇen´ ı motoru if (KolaRequest > KolaActual) { // Konfigurace pinu pro sniˇ zov´ an´ ı hodnoty aktu´ aln´ ıho natoˇ cen´ ı kol GPIO_BitWrite(GPIO1,4,0x0); GPIO_BitWrite(GPIO2,9,0x0); GPIO_BitWrite(GPIO1,5,0x1); GPIO_BitWrite(GPIO1,6,0x0); } else {
´ PODOBA REGULATORU ´ 5.3. PROGRAMOVA
25
// Konfigurace pinu pro zvyˇ sov´ an´ ı hodnoty aktu´ aln´ ıho natoˇ cen´ ı kol GPIO_BitWrite(GPIO1,4,0x0); GPIO_BitWrite(GPIO2,9,0x0); GPIO_BitWrite(GPIO1,5,0x0); GPIO_BitWrite(GPIO1,6,0x1); } // P´ asmo necitlivost if (abs(Odchylka) < KOLA_DEAD) { // Konfigurace pinu pro zabrzdˇ eni motoru GPIO_BitWrite(GPIO1,4,0x1); GPIO_BitWrite(GPIO2,9,0x1); GPIO_BitWrite(GPIO1,5,0x1); GPIO_BitWrite(GPIO1,6,0x1); OdchylkaSum = 0; } // Odchylka pro v´ ypoˇ cet integraˇ cn´ ı sloˇ zky OdchylkaSum = OdchylkaSum + Odchylka; // V´ ypoˇ cet akˇ cn´ ıho z´ asahu ControllerOutput = (abs(Odchylka) * K_PRO) + (OdchylkaSum / K_INT); // Pˇ revod akˇ cn´ ıho z´ asahu na stˇ rı ´du PWM PWMPower = 30 + ControllerOutput / 10; // V´ ykonov´ e omezen´ ı if (PWMPower > POWER_MAX) { PWMPower = POWER_MAX; OdchylkaSum = 0; } // Aktualizace PWM sign´ alu TIM_PWMOModeConfig(TIM1, PWMPower/2, TIM_HIGH, 50, TIM_LOW);
´ ´I MODULU ˚ KAPITOLA 5. PROGRAMOVAN
26
5.4
Porovn´ an´ı s navrˇ zen´ ym modelem
V´ yˇse navrˇzen´ y regul´ator se v simulac´ıch choval opravdu skvˇele, ale jak je na tom v praxi? Bohuˇzel PI regul´ator i pˇrestoˇze byl velmi dobˇre navrˇzen, nedosahoval takov´ ych v´ ysledk˚ u jako obyˇcejn´ y P regul´ator. D˚ uvody jsou zˇrejm´e. Pˇri n´avrhu a specifikaci regul´atoru se braly v u ´vahu nejpˇr´ısnˇejˇs´ı podm´ınky tj. nulov´a ust´alen´a odchylka od poˇzadovan´e hodnoty a minim´aln´ı respektive ˇz´adn´ y pˇrekmit pˇres poˇzadovanou hodnotu. Re´aln´ y model ale sk´ yt´a mnoh´a u ´skal´ı, kter´a regul´ator nedok´aˇze vyˇreˇsit. Zajist´e by pomohlo navrhnout sloˇzitˇejˇs´ı model, ale to bohuˇzel nen´ı moˇzn´e, protoˇze mnoh´e nelinearity a mechanick´e v˚ ule nejdou zmˇeˇrit. Nemluvˇe o tom, ˇze se tyto v˚ ule mohou v pr˚ ubˇehu regulace mˇenit. Pro bezprobl´emov´ y chod je proto integraˇcn´ı sloˇzka v regul´atoru rovna nule. Regul´ator n P regul´atoru. Pˇretoˇcen´ı kol z jedn´e krajn´ı meze do druh´e je je degradov´an na u ´roveˇ pˇribliˇznˇe rovno ˇcasu T ≈ 1.5 s. Tento ˇcas se velmi podob´a ˇcasu pˇretoˇcen´ı kol z jedn´e meze do druh´e s pouˇzit´ım klasick´eho ˇr´ızen´ı.
Kapitola 6 Z´ avˇ er Seznam c´ıl˚ u bakal´aˇrsk´e pr´ace byl vytyˇcen pˇrev´aˇznˇe v u ´vodu. Dalˇs´ı drobn´e detaily byly doplnˇeny v pr˚ ubˇehu cel´e pr´ace. Proto si je pro u ´plnost nyn´ı zopakujme. Prvn´ım u ´kolem pr´ace bylo oˇziven´ı a kontrola funkˇcnosti modulu pro komunikaci, navrˇzen´e a vytvoˇren´e Michalem Vinkl´aˇrem v jeho bakal´aˇrsk´e pr´aci. Kontrola a oˇziven´ı skr´ yvaly mnoh´a u ´skal´ı a zabraly nemalou ˇc´ast ˇcasu vˇenovan´eho m´e pr´aci. Bˇehem oˇzivov´an´ı bylo nalezeno nˇekolik drobn´ ych chyb v n´avrhu zapojen´ı modul˚ u. Tyto chyby a nedostatky byly samozˇrejmˇe neprodlenˇe odstranˇeny a korekce zaneseny do pˇr´ısluˇsn´ ych pl´an˚ u a n´avrh˚ u. D´ale bylo zapotˇreb´ı zprovoznit senzorovou ˇc´ast modul˚ u, kter´a byla navrˇzena a zkonstruov´ana aˇz v pr˚ ubˇehu m´e bakal´aˇrsk´e pr´ace. N´avrh zapojen´ı ani osazovac´ı pl´an nebyly dosud nikde publikov´any, a proto je uv´ad´ım v pˇr´ıloze C. I zde bylo oˇsetˇreno nˇekolik drobn´ ych nedostatk˚ u v n´avrhu a konstrukci. Nakonec byla senzorov´a a v´ ypoˇcetn´ı ˇc´ast modulu spojena a mohlo se zaˇc´ıt pracovat na nav´az´an´ı komunikace mezi moduly. Ta se obeˇsla bez v´aˇznˇejˇs´ıch komplikac´ı. D˚ uleˇzitou ˇc´ast´ı bylo bezpochyby vhodn´e nastaven´ı H-m˚ ustku, respektive ovl´ad´an´ı elektromotoru. To bylo spoleˇcnˇe s ovˇeˇren´ım funkˇcnosti senzoru natoˇcen´ı asi nejjednoduˇsˇs´ı ˇcinnost´ı cel´e pr´ace. O pozn´an´ı horˇs´ı ale bylo implementovat navrˇzen´ y regul´ator. Podaˇrilo se jej zaˇclenit do zdrojov´eho k´odu, ale kv˚ uli d˚ uvod˚ um popsan´ ym v p´at´e kapitole, byl regul´ator znaˇcnˇe zmˇenˇen oproti navrhovan´emu. Jak je ale v kapitole vyzdviˇzeno, regul´ator typu P funguje na vozidle znamenitˇe a bezprobl´emovˇe. u je zavrˇsen t´ım opravdu nejvˇetˇs´ım a nejd˚ uleˇzitˇejˇs´ım, tj. funkˇcn´ı Cel´ y tento v´ yˇcet c´ıl˚ implementac´ı steer-by-wire. Bylo dosaˇzeno vskutku vˇern´eho napodoben´ı bˇeˇzn´eho typu ˇr´ızen´ı, na jak´e jsou ˇridiˇci v automobilech zvykl´ı. T´ım se dost´av´am k ˇca´sti, kdy je potˇreba ˇr´ıci, co v pr´aci chyb´ı a ˇc´ım je moˇzn´e ji 27
28
´ ER ˇ KAPITOLA 6. ZAV
d´ale obohatit a vylepˇsit. Aby zp˚ usob ˇr´ızen´ı plnˇe odpov´ıdal tomu bˇeˇzn´emu, je potˇreba doplnit k volantu servomotor pro vytvoˇren´ı zpˇetn´e vazby od kol. Ta ale potˇrebuje ke sv´e funkˇcnosti u ´daj o tom, zda se simulaˇcn´ı vozidlo pohybuje ˇci stoj´ı, popˇr´ıpadˇe jakou rychlost´ı jede. Aby bylo moˇzn´e senzor pˇripojit, je nutn´e vytvoˇrit dalˇs´ı modul, kter´ y jej bude obsluhovat. T´ım by mˇela b´ yt implementace steer-by-wire kompletn´ı.
Literatura FlexRay (2005), FlexRay Communications System Protocol Specification V2.1 rev. A. Freescale (2008), MFR4310 - Reference Manual rev. 2. Gray code (2008, Prosinec), http://en.wikipedia.org/wiki/Gray_code. STMicroelectronics (2008, Feb), Automotive fully integrated H-bridge motor driver VNH2SP30-E, rev. 7. STMicroelectronics (2008a), ARM7 - Reference Manual. STMicroelectronics (2008b), ARM7 - User Manual. Franklin, G. F., Powell, J. D. a Emami-Naeini, A. (2006), Feedback Control of Dynamic systems, fifth edition, New Jersey: Pearson Education, Inc. ˇ ´k, J. (2004), Pˇrenos informace, Praha: Vydavatelstv´ı CVUT. Kocourek, P. a Nova ´, J. (2008), ‘Standard flexray 2.1 - prezentace’. Malinsky ´, V. (2007), Metody mˇeˇren´ı vybran´ Pokorny ych parametr˚ u komunikaˇcn´ıho standardu ˇ flexray a jejich implementace, Diplomov´a pr´ace, CVUT Praha. ˇ ´r ˇ, M. (2008), Technick´e vybaven´ı pro drive-by-wire, Bakal´aˇrsk´a pr´ace, CVUT Vinkla Praha. ˇ Waraus, D. (2008), Mˇeˇr´ıc´ı syst´em na b´azi sbˇernice flexray, Diplomov´a pr´ace, CVUT Praha. Yih, P. (2004), ‘Steer-by-wire: Implications for vehicle handling and safety [online]’.
29
30
LITERATURA
Pˇ r´ıloha A V´ yvojov´ e diagramy obsluˇ zn´ eho programu
Obr´ azek A.1: V´ yvojov´ y diagram obsluhy pˇreruˇsen´ı FlexRay
I
II
ˇ ´ILOHA A. VYVOJOV ´ ´ DIAGRAMY OBSLUZN ˇ EHO ´ PR E PROGRAMU
Obr´ azek A.2: V´ yvojov´ y diagram obsluhy senzoru volantu
III
Obr´ azek A.3: V´ yvojov´ y diagram regul´ atoru natoˇcen´ı kol
IV
ˇ ´ILOHA A. VYVOJOV ´ ´ DIAGRAMY OBSLUZN ˇ EHO ´ PR E PROGRAMU
Pˇ r´ıloha B Obsah pˇ riloˇ zen´ eho CD Adres´aˇrov´a struktura disku: • Datasheety ARM7 - Reference manual ARM7 - User manual FlexRay - Protocol specification V2.1 H-M˚ ustek VNH2SP30-E - Datasheet MFR4310 - Reference manual • Fotogalerie Fotografie z v´ yvoje re´aln´eho modelu • Zdroje Bakal´aˇrsk´a pr´ace - Vinkl´aˇr Michal 2008 Diplomov´a pr´ace - Waraus Denis 2008 Diplomov´a pr´ace - Pokorn´ y Viktor 2007 Prezentace Flexray - Malinsk´ y Jan 2008 Prezentace steer-by-wire -Yih Paul 2004 • Zdrojov´e k´ody Projekt v´ yvojov´eho prostˇred´ı IAR pouˇzit´ y pro naprogramov´an´ı modul˚ u
V
VI
ˇ ´ILOHA B. OBSAH PRILO ˇ ˇ EHO ´ PR ZEN CD
Pˇ r´ıloha C N´ avrh zapojen´ı senzorov´ eˇ c´ asti modulu
Obr´ azek C.1: Sch´ema zapojen´ı senzorov´e ˇc´asti 1.d´ıl
VII
VIII
ˇ ´ILOHA C. NAVRH ´ ´C ˇ ASTI ´ PR ZAPOJEN´I SENZOROVE MODULU
Obr´ azek C.2: Sch´ema zapojen´ı senzorov´e ˇc´asti 2.d´ıl