MENDELOVA UNIVERZITA V BRNĚ AGRONOMICKÁ FAKULTA
DISERTAČNÍ PRÁCE
BRNO 2013
TOMÁŠ KRUMPHOLC
Mendelova univerzita v Brně Agronomická fakulta Ústav techniky a automobilové dopravy
Matematický model kinematických a dynamických vlastností kloubové jízdní soupravy Disertační práce
Vedoucí práce:
Vypracoval:
Doc. RNDr. Stanislav Bartoň, CSc.
Ing. Tomáš Krumpholc
Brno 2013
PROHLÁŠENÍ Prohlašuji, že jsem disertační práci na téma Matematický model kinematických a dynamických vlastností kloubové jízdní soupravy vypracoval samostatně a použil jen pramenů, které cituji a uvádím v přiloženém seznamu literatury. Souhlasím, aby práce byla uložena v knihovně Mendelovy univerzity v Brně a zpřístupněna ke studijním účelům. Disertační práce je školním dílem a může být použita ke komerčním účelům jen se souhlasem vedoucího disertační práce a děkana Agronomické fakulty Mendelovy univerzity v Brně.
dne: podpis autora
27. června 2013
PODĚKOVÁNÍ Rád bych tímto poděkoval vedoucímu disertační práce Doc. RNDr. Stanislavu Bartoňovi, CSc. za jeho ochotu, přístup, cenné rady a připomínky, které mi pomohly při zpracování této disertační práce.
Anotace Předkládaná disertační práce zahrnuje matematický model pohybu autobusu při jízdě ve směrovém oblouku. Je zde položen základ pro nový přístup k vyhodnocení všech kinematických veličin, které ovlivňuje řidič svými aktivními zásahy do řízení. Práce je rozdělena do čtyř hlavních částí. V první části jsou odvozeny pohybové rovnice hmotného bodu pro případ, že jsou známy zásahy řidiče do řízení jako funkce udávající křivost trajektorie a rychlosti jako funkce času. Ve druhé části jsou tyto rovnice vyřešeny a je dokázána správnost řešení pro jednodušší případy. V další části je řešení zobecněno pro pohyb autobusu a je určena poloha řídícího bodu autobusu, tedy bodu, jehož pohyb odpovídá pohybu popsanému řešením pohybových rovnic. V poslední části jsou dosažené výsledky zobecněny pro pohyb kloubového autobusu. Výsledky řešení jsou použity pro výpočty trajektorií, a vektorů rychlostí důležitých bodů autobusu. Dále jsou provedeny výpočty průjezdních profilů a úhlu zalomení kloubu autobusu. Celý model je vystaven v prostředí programu Maple 13 a umožňuje provádět všechny uvedené výpočty pro libovolný typ autobusu a lze jej zobecnit i pro výpočty kinematických a dynamických veličin i složitějších jízdních souprav.
Klíčová slova: křivost trajektorie, pohybová rovnice, numerická integrace, diferenciální rovnice, řídící bod, průjezdní profil
Annotation This PhD. thesis encloses the mathematical model of bus locomotion when passing the directional arc. There is stated the new approach to assess the entire kinematics magnitudes affected by drivers active intervention. The thesis is divided into four major parts. In the first part there are derived the locomotive equations determining the trajectory curvature and velocity as a function of time. In the second part these equations are solved in practice and the accuracy of solution is proved on simple calculations. In the following part the solution is generalized for the bus traction and also is defined the location of the directional point of the bus, meaning the point in which the motion is according to the issue described by solving the proposed locomotion equations. In the last part the obtained results are generalized to describe the motion of an articulated bus. The results are further used to calculate trajectories and velocity vectors of important points of a bus. Furthermore, there are also calculations solved for determination of clearance zones and the cranking angles of a bus joint. The entire model is built in the Maple 13 environment and allows conducting the abovementioned calculation for any type of a bus and it can also be generalized for calculations of kinematic and dynamic magnitudes as well as for more complicated vehicle combinations.
Key words: Trajectory curvature, locomotion calculations, numeric integration, differential equation, directional point, clearance zones
OBSAH 1 ÚVOD
23
2 CÍL PRÁCE
25
3 ŘIDIČ
27
3.1
Řidič autobusu MHD . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4 AUTOBUS 4.1
29
Rozdělení autobusů . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1.1
Podle přepravní kapacity . . . . . . . . . . . . . . . . . . . . . 29
4.1.2
Podle konstrukčního uspořádání . . . . . . . . . . . . . . . . . 30
5 KLOUBOVÝ AUTOBUS 5.1
33
Systém tlumení a blokování točny . . . . . . . . . . . . . . . . . . . . 34
6 JÍZDA SMĚROVÝM OBLOUKEM
37
6.1
Jízdní stabilita v zatáčce . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2
Vliv pneumatik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.3
Autobus při zatáčení . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7 MATEMATICKÉ MODELOVÁNÍ
45
7.1
Význam matematického modelování . . . . . . . . . . . . . . . . . . . 45
7.2
Rozdělení matematických modelů . . . . . . . . . . . . . . . . . . . . 45
7.3
Interpretace a verifikace řešení . . . . . . . . . . . . . . . . . . . . . . 46
7.4
Stručný popis programu Maple 13 . . . . . . . . . . . . . . . . . . . 47 7.4.1
Základní použité příkazy Maple 13 . . . . . . . . . . . . . . . 47 13
8 ZÁKLADNÍ PROBLÉM KINEMATIKY 8.1
49
Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8.1.1
Vektory zrychlení . . . . . . . . . . . . . . . . . . . . . . . . . 49
8.2
Oskulační kružnice trajektorie . . . . . . . . . . . . . . . . . . . . . . 51
8.3
Pól rychlosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
8.4
Polodie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
9 INVERZNÍ PROBLÉM KINEMATIKY
59
9.1
Odvození systému pohybových rovnic . . . . . . . . . . . . . . . . . . 59
9.2
Analytické řešení systému pohybových rovnic . . . . . . . . . . . . . 61 9.2.1
9.3
Verifikace řešení . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Řešení pohybových rovnic pro pravoúhlou brzděnou zatáčku . . . . . . . . . . . . . . . . . . . . 66 9.3.1
Analytické řešení . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.3.2
Řešení Eulerovou metodou . . . . . . . . . . . . . . . . . . . . 69
9.3.3
Řešení řadou . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.3.4
Numerické řešení metodou Runge-Kutta . . . . . . . . . . . . 76
10 KŘIVOST TRAJEKTORIE PODROBNĚJI
83
10.1 Křivost trajektorie při ukončení zatáčky . . . . . . . . . . . . . . . . 83 10.2 Křivost trajektorie zadaná polynomem . . . . . . . . . . . . . . . . . 85 10.3 Porovnání řešení pohybových rovnic pro obě funkce křivosti . . . . . 88 10.4 Vliv zpomalení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 11 STANOVENÍ ŘÍDÍCÍHO BODU
105
11.1 Trajektorie libovolného bodu autobusu . . . . . . . . . . . . . . . . . 105 11.2 Střed přední nápravy jako řídící bod . . . . . . . . . . . . . . . . . . 106 11.2.1 Vytvoření systému diferenciálních rovnic . . . . . . . . . . . . 107 11.2.2 Iterační procedura pro jeden časový krok . . . . . . . . . . . . 108 11.3 Střed zadní nápravy jako řídící bod . . . . . . . . . . . . . . . . . . . 115 11.4 Jízda konstantní rychlostí po kružnici . . . . . . . . . . . . . . . . . . 118 11.4.1 Střed přední nápravy jako řídící bod . . . . . . . . . . . . . . 120 11.4.2 Řídícím bodem je střed zadní nápravy . . . . . . . . . . . . . 122 14
11.5 Vyhodnocení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 12 KLOUBOVÝ AUTOBUS
127
12.1 Přípravná část . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 12.1.1 Zobecnění procedury BOD . . . . . . . . . . . . . . . . . . . . . 129 12.1.2 Funkce rychlosti a křivosti trajektorie řídícího bodu . . . . . . 131 12.2 Iterace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 12.3 Výsledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 12.3.1 Trajektorie jednotlivých kol . . . . . . . . . . . . . . . . . . . 134 12.3.2 Rychlosti jednotlivých kol . . . . . . . . . . . . . . . . . . . . 138 12.3.3 Zrychlení jednotlivých kol . . . . . . . . . . . . . . . . . . . . 141 12.3.4 Tečné a normálové zrychlení . . . . . . . . . . . . . . . . . . . 142 12.3.5 Křivosti trajektorie a oskulační kružnice . . . . . . . . . . . . 146 12.4 Úhlová rychlost rotace obou částí autobusu . . . . . . . . . . . . . . . 151 12.5 Průjezdní profil autobusu . . . . . . . . . . . . . . . . . . . . . . . . . 152 12.6 Úhel zalomení kloubu . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 12.7 Dynamika průjezdu zatáčkou . . . . . . . . . . . . . . . . . . . . . . . 158 13 POUŽITÍ MODELU A VERIFIKACE
163
13.1 Verifikace I - vybočení zadní nápravy . . . . . . . . . . . . . . . . . . 164 13.2 Verifikace II - vnější vybočení zadní části . . . . . . . . . . . . . . . . 168 13.3 Využití modelu pro návrh konstrukce . . . . . . . . . . . . . . . . . . 170 14 VÝSLEDKY A DISKUSE
173
15 ZÁVĚR
177
15
16
SEZNAM OBRÁZKŮ 4.1
Podvozek malého autobusu . . . . . . . . . . . . . . . . . . . . . . . 31
4.2
Podvozek klasického autobusu
4.3
Podvozek kloubového autobusu . . . . . . . . . . . . . . . . . . . . . 32
4.4
Podvozek dvoukloubového autobusu . . . . . . . . . . . . . . . . . . 32
5.1
Kulový čep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2
Kuličková točna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3
Blokování kloubu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.1
1. způsob průjezdu zatáčkou . . . . . . . . . . . . . . . . . . . . . . . 38
6.2
2. způsob průjezdu zatáčkou . . . . . . . . . . . . . . . . . . . . . . . 38
6.3
Vrchol zatáčky-apex . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.4
Adhezní elipsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.5
Vliv výšky dezénu pneumatiky na vznik aquaplaningu . . . . . . . . 41
6.6
Průjezd zatáčkou dvounápravového autobusu . . . . . . . . . . . . . 43
6.7
Průjezd zatáčkou kloubového autobusu s neřízenou zadní nápravou . 44
6.8
Průjezd zatáčkou kloubového autobusu s řízenou zadní nápravou . . 44
8.1
Odvození polohy pólu rychlosti . . . . . . . . . . . . . . . . . . . . . 54
8.2
Polodie pevná a hybná, trajektorie vrcholů a jejich evoluty . . . . . . 56
9.1
Přibližné určení V x(t) = 0 . . . . . . . . . . . . . . . . . . . . . . . . 68
9.2
Trajektorie průjezdu pravoúhlou zatáčkou . . . . . . . . . . . . . . . 71
9.3
Konec trajektorie průjezdu pravoúhlou zatáčkou . . . . . . . . . . . 72
9.4
Nepřesnost polohy v závislosti na počtu iteračních kroků . . . . . . . 74
. . . . . . . . . . . . . . . . . . . . . 31
17
9.5
Závislost relativní chyby času ukončení zatáčky na počtu iteračních kroků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.6
Trajektorie pro výsledky řešené mocninnými řadami . . . . . . . . . 76
9.7
Rozdíl poloh numerického a analytického řešení . . . . . . . . . . . . 79
9.8
Rozdíl poloh numerického a analytického řešení v závislosti na čase . 81
9.9
Vzdálenost polohy určené analyticky a numericky v závislosti na čase 81
10.1 Přibližné určení t a ω . . . . . . . . . . . . . . . . . . . . . . . . . . 86 10.2 Porovnání funkcí sinus a P2 . . . . . . . . . . . . . . . . . . . . . . . 86 10.3 Časové závislosti křivosti trajektorií pro κ1 a κ2
. . . . . . . . . . . 89
10.4 Porovnání trajektorií pro κ1 a κ2 . . . . . . . . . . . . . . . . . . . . 89 10.5 Časové závislosti x(t) a y(t) pro κ1 a κ2 . . . . . . . . . . . . . . . . 91 10.6 Fázový prostor rychlostí pro křivosti κ1 a κ2 . . . . . . . . . . . . . 91 10.7 Závislost V x(t), V y(t) a |V (t)| pro křivosti κ1 a κ2 . . . . . . . . . . 93 10.8 Fázový prostor zrychlení pro křivosti κ1 a κ2 . . . . . . . . . . . . . 93 10.9 Závislost Ax(t), Ay(t) a |A(t)| pro křivosti κ1 a κ2 . . . . . . . . . . 94 10.10 Evoluty a apexy trajektorií pro křivosti κ1 a κ2 . . . . . . . . . . . . 94 10.11 Trajektorie pro různé hodnoty zpomalení . . . . . . . . . . . . . . . 99 10.12 Průběh souřadnic v závislosti na čase
. . . . . . . . . . . . . . . . . 99
10.13 Fázový prostor vektoru rychlostí pro různé hodnoty zpomalení . . . . 101 10.14 Průběh souřadnic vektoru rychlosti v závislosti na čase . . . . . . . . 101 10.15 Fázový prostor vektoru zrychlení pro různé hodnoty zpomalení . . . 102 10.16 Průběh souřadnic vektoru zrychlení v závislosti na čase . . . . . . . . 102 10.17 Trajektorie a evoluty pro různé hodnoty zrychlení . . . . . . . . . . . 104 11.1 Průběh iterace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 11.2 Průjezd zatáčkou pro řídící bod – střed přední nápravy . . . . . . . . 116 11.3 Průjezd zatáčkou pro řídící bod – střed zadní nápravy . . . . . . . . 119 11.4 Vzájemné porovnání obou průjezdů zatáčkou . . . . . . . . . . . . . 120 11.5 Jízda po kružnici pro řídící bod – střed přední nápravy . . . . . . . . 123 11.6 Jízda po kružnici pro řídící bod – střed zadní nápravy . . . . . . . . 124 12.1 Kloubový autobus Irisbus Citelis 18m . . . . . . . . . . . . . . . . . 127 18
12.2 Trajektorie jednotlivých kol . . . . . . . . . . . . . . . . . . . . . . . 136 12.3 Výjezd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 12.4 Okolí apexu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 12.5 Závislost souřadnic jednotlivých kol na čase . . . . . . . . . . . . . . 138 12.6 Fázový prostor rychlostí jednotlivých kol . . . . . . . . . . . . . . . . 140 12.7 Závislost souřadnic vektorů rychlosti jednotlivých kol na čase . . . . 140 12.8 Fázový prostor zrychlení jednotlivých kol . . . . . . . . . . . . . . . 143 12.9 Závislost souřadnic vektorů rychlosti jednotlivých kol na čase . . . . 143 12.10 Normálové zrychlení jednotlivých kol v závislosti na čase . . . . . . . 145 12.11 Tečné zrychlení jednotlivých kol v závislosti na čase
. . . . . . . . . 145
12.12 Vektor zrychlení ve fázovém prostoru tečného a normálového zrychlení . . . . . . . . . . . . . . . . . . . . . . . 147 12.13 Křivosti trajektorií jednotlivých kol v závislosti na čase . . . . . . . . 150 12.14 Evoluty trajektorií jednotlivých kol a pevné polodie v okolí apexu . . 150 12.15 Úhlová rychlost rotace obou částí kloubového autobusu . . . . . . . . 152 12.16 Trajektorie rohů karoserie a pozice autobusu uvnitř zatáčky . . . . . 154 12.17 Obrysové obálky levých částí autobusu . . . . . . . . . . . . . . . . . 157 12.18 Průjezdní profil kloubového autobusu . . . . . . . . . . . . . . . . . 157 12.19 Úhel zalomení kloubu . . . . . . . . . . . . . . . . . . . . . . . . . . 159 12.20 Úhel zalomení kloubu v závislosti na křivosti trajektorie . . . . . . . 159 12.21 Kammovy elipsy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 13.1 Stopy pneumatik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 13.2 Stopy pneumatik – verifikace . . . . . . . . . . . . . . . . . . . . . . 167 13.3 Vybočení zadní části – verifikace . . . . . . . . . . . . . . . . . . . . 168 13.4 Rozjezd autobusu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 13.5 Vybočení zadní části – prostorové zobrazení . . . . . . . . . . . . . . 172 13.6 Vybočení zadní části – plošné zobrazení . . . . . . . . . . . . . . . . 172
19
20
SEZNAM TABULEK 6.1
Součinitel adheze na různém povrchu . . . . . . . . . . . . . . . . . . 40
11.1 Polohy kol a obrysu karoserie vzhledem k ose přední nápravy . . . . 114 11.2 Polohy kol a obrysu karoserie vzhledem k ose zadní nápravy . . . . . 117 12.1 Souřadnice kol autobusu Citelis 18m . . . . . . . . . . . . . . . . . . 135 12.2 Souřadnice rohů karoserie autobusu Irisbus Citelis 18m . . . . . . . . 153
21
22
Kapitola 1 ÚVOD Důležitosti dopravy odpovídá její definice:
Doprava je důležitá a cílevědomá lidská činnost při přemísťování osob, zvířat, věcí a informací v proměnném čase a prostoru. Dopravu můžeme přirovnat k cévám v lidském těle, kde je stejně jako zde důležité spojení míst výroby a míst spotřeby. Hromadná doprava ve městě se stala neoddělitelnou a nutnou součástí člověka, jako projev života a jeho potřeb, proto je velmi intenzivní logistickou záležitostí. Denně zajišťuje přepravu velkého množství cestujících směřující za prací, povinnostmi, školou, nákupy, sportem, kulturou apod. Dle konkrétních požadavků a potřeb základní obslužnosti města existují druhy hromadných doprav jakožto závislá trakce (metro, tramvaj, trolejbus) a nezávislá trakce (autobus). V komplexním systému člověk – dopravní prostředek – dopravní prostředí hraje ústřední roli člověk v roli řidiče. Řízení motorových vozidel ve stále sílícím provozu se stává čím dál tím náročnější činností. Většina zvýšených nároků a plná zodpovědnost je kladena přímo na řidiče vozidla. I přes všechny elektronické systémy používané v dnešním moderních vozidlech, které napomáhají řidiči při ovládání vozidla, nebyl prozatím uveden systém, který by řidiče nahradil a převzal tak zcela kontrolu nad vozidlem, řidič je tak stále klíčovým prvkem pro zajištění bezpečnosti v silničním provozu. Z pohledu silniční dopravy je možné považovat za nejvyšší řidičskou profesi řízení autobusů. Řidič autobusu je určitou formou společenské práce, jde o poslední článek doprav23
ního cyklu v přepravě osob. Jeho hlavní činností je přeprava cestujících při dodržení jízdního plánu, který však nesmí být na úkor bezpečnosti či komfortu jízdy. Dochází zde tedy k přímé konfrontaci člověka a techniky, respektive člověka a uplatnění fyzikálních zákonů při ovládání autobusu. Základy mechaniky a fyziky jízdy, jsou proto velice důležité. Při řešení mechaniky však nestačí vyšetřit pouze mechaniku autobusu, nýbrž je potřeba matematicky popsat reakce a jednání řidiče. Matematický popis aktivit řidiče však nemůže být dostatečně přesný, především z toho důvodu, že se nepodařilo jednoznačně stanovit souvislost mezi různými jízdními manévry a tzv. subjektivní ovladatelností, což představuje ovládání autobusu z hlediska lidských schopností. Matematické modelování pohybu autobusu s ohledem na zásahy řidiče do ovládání tohoto vozu sehrává v oblasti bezpečnosti silničního provozu důležitou úlohu a to nejen pro možnosti simulace chování autobusu s analýzou silového působení na autobus, na řidiče, na cestující, ale také z hlediska pochopení mechanismů a dějů, k nimž při jízdě dochází a v neposlední řadě pak i z hlediska homologačních zkoušek nových typů autobusů.
24
Kapitola 2 CÍL PRÁCE Tato práce je založena na předpokladu, že ovládání vozidla řidičem je možné popsat pomocí posloupnosti jednoduchých matematických funkcí. Vzhledem k tomu, že řidič ovládá jakékoliv vozidlo pomocí volantu, brzdového a plynového pedálu a volbou rychlostního stupně lze základní předpoklad této práce splnit volbou těchto funkcí: Pokud budeme popisovat pohyb vozidla v rovinném pravoúhlém souřadném systému lze za tyto základní funkce zvolit:
v(t) – absolutní velikost rychlosti, na kterou má vliv volba rychlostního stupně a poloha plynového, resp. brzdového pedálu.
κ(t) – křivost trajektorie vozidla, kterou řidič ovládá natočením volantu, kterým řídí natočení předních kol vozidla. Další parametry, které mají na pohyb vozidla vliv, ale nebudou zahrnuty do uvažovaného idealizovaného matematického modelu jsou: 1. Pohyb po nakloněné rovině – jízda do kopce nebo z kopce 2. Nerovinný pohyb – projíždění údolím nebo přejezd vrcholu 3. Změna povrchu vozovky 4. Náhodné vnější síly, např. větrné poryvy Vliv těchto parametrů bude diskutován v závěru práce. Taktéž nebude uvažováno rozložení hmotnosti autobusu, závislé na poloze těžiště, tyto údaje podléhají utajení.
25
Cíle této práce jsou:
1. Nalézt přesné řešení inverzního problému kinematiky. Jde o výpočet trajektorie tělesa a dalších významných kinematických veličin pokud známe průběh rychlosti v(t) a křivosti trajektorie κ(t) v závislosti na čase. 2. Provést verifikaci tohoto řešení na jednoduchých případech pohybu. 3. Model popisující pohyb tělesa zobecnit na model pohybu vozidla – např. autobusu. 4. Provést verifikaci odvozeného matematického modelu autobusu. 5. Verifikovaný model zobecnit na matematický model pohybu kloubového autobusu, včetně zohlednění klíčových konstrukčních parametrů. 6. Matematický model kloubového autobusu použít pro výpočty kinematických veličin, které charakterizují pohyb kloubového autobusu, zejména: (a) Trajektorie libovolného bodu autobusu (b) Vektory rychlosti a zrychlení kteréhokoliv bodu autobusu. (c) Úhel zalomení kloubu 7. Na základě znalosti výše uvedených kinematických veličin stanovit stopovou a obrysovou trajektorii kloubového autobusu a to jak v závislosti na ovládání autobusu řidičem, tak i na konstrukčních parametrech autobusu. 8. Stanovit velikosti tečných a normálových zrychlení uvnitř autobusu, což je důležité z hlediska sil, které působí na cestující. 9. Stanovit tečné a normálové zrychlení v místech styku jednotlivých kol s vozovkou, což je důležité z hlediska předcházení smyku. Tento model bude konkrétněji odvozen pro stanovení chování nízkopodlažního autobusu Irisbus Citelis 12m a kloubového autobusu Irisbus Citelis 18m a to pro průjezd směrovým obloukem, kdy výsledkem bude určení základních kinematických veličin. 26
Kapitola 3 ŘIDIČ Řízení motorového vozidla je činností kladoucí vysoké nároky na psychické i fyzické schopnosti člověka, což především znamená neustále reagovat na proměnlivé dopravní prostředí. Řidič přijímá v každém okamžiku jízdy informace z provozu, které musí správně a rychle vyhodnotit a přizpůsobit jim své chování, což v tomto smyslu představuje zátěž. Únava jako důsledek zátěže, kterou lze charakterizovat jako fyziologický stav organismu, který je reakcí na vyčerpání zásob energie ve svalových a nervových buňkách je přirozená obrana organismu po dlouhodobé namáhavé fyzické či mentální činnosti, (HAVLÍK, 2005).
3.1
Řidič autobusu MHD
Práce řidiče autobusu v městské hromadné dopravě je do značné míry ovlivněna častými zastávkami, kdy považujeme za důležité, aby řidič dokonale ovládal vozidlo, plynule akceleroval či deceleroval při současném otáčení volantem, jízda se tak stane bezpečnou, efektivní a zároveň komfortní. Jeho práce je psychology charakterizovaná jako velmi stresová se zodpovědností jak materiální, (za vozidlo), tak morální, (za cestující). Řidič autobusu přispívá k bezpečnosti v silničním provozu a to jak aktivně, (odvracením možných střetů), tak pasivně (jeho chování nepřímo ovlivňuje velké množství převážených osob). Řízení autobusu v městské hromadné dopravě s sebou nese určitá specifika jízdy. Z pohledu řidiče zde hrají velmi důležitou roli rozměry vozidla. Pro dosažení vysoké obratnosti autobusu je konstruován tak, že má značné převisy karoserie, které však 27
značně ovlivní především jízdu v průběhu zatáčky. Při průjezdu zatáčkou dochází v důsledku převisů ke značným rozdílům ve stopové a obrysové trajektorii. Moderní městské autobusy používané ve městech jsou vybaveny elektronickými a automatizačními prvky, což značně ulehčuje práci řidiče, avšak přináší to s sebou také vlastnosti, kterým se řidič musí přizpůsobit a neustále měnit své chování vzhledem k ovládání autobusu. Hlavní příčinou je časová prodleva reakce autobusu na korekce do řízení a její zpětná vazba. Nutnost přizpůsobení se platí dvojnásob u různých typů autobusů, kdy řidiči musí velice často typ autobusu střídat a rychle se přizpůsobovat více či méně jim nevyhovujícím ergonomickým hlediskům. Svými schopnostmi a možnostmi tak musí kompenzovat nevhodné vlastnosti a parametry stroje. Ochranu osob i vozidla zabezpečují aktivní i pasivní bezpečnostní prvky. Standardním vybavením dnešních městských autobusech je použití protiblokovacího brzdového systému (ABS), který rozděluje brzdné síly působící na jednotlivá kola tak, aby při plném brzdění nebylo žádné kolo delší dobu zablokované a zůstala tak zachována řiditelnost a optimální ovladatelnost autobusu. Se systémem ABS je úzce spojen systém regulace prokluzu kol (ASR), který brání prokluzu kol při rozjezdu na kluzkém povrchu vozovky, zamezuje protáčení některého z hnacích kol a to snížením výkonu motoru případně dávkovanými zásahy do brzdového systému. Elektronický brzdový systém (EBS) nabízí elektronickou regulaci brzdného účinku při použití pneumatických brzd. Během brzdného procesu řídící jednotka nejprve zaktivuje zpomalovací brzdu (retardér), pokud je potřeba výraznějšího zpomalení zajistí řídící jednotka optimální brzdový tlak pro každou nápravu. Elektronický brzdový systém umožňuje dosáhnout podstatně kratší brzdné dráhy spolu s výrazně nižším opotřebením brzdového systému. Rozmístění cestujících, případně jejich zavazadel není v autobusu vždy rovnoměrné, to má za následek, že výška vozu má rozdílnou úroveň u různých kol. Systém elektronické regulace úrovně (ENR) automaticky řídí výšku vozidla u každého kola tak, aby nástupní výška zůstala stále stejná, (MERCEDES, 2013).
28
Kapitola 4 AUTOBUS Název autobus vznikl z dřívějšího označení pro nekolejové vozidlo veřejné hromadné dopravy tažené koňmi Omnibus, složením slov automobilní omnibus. Autobus je považován za jeden z nejbezpečnějších dopravních prostředků na světě. Z pohledu konstrukce se autobusy v mnohém neliší od nákladních automobilů, autobus je vlastně nákladní vůz přepracovaný pro přepravu osob.
4.1
Rozdělení autobusů
Rozdělení vychází z vyhlášky č. 341/2002 Sb. Ministerstva dopravy a spojů o schvalování technické způsobilosti a o technických podmínkách provozu vozidel na pozemních komunikacích, přesněji z přílohy č.18 týkající se podrobného rozdělení druhů silničních a zvláštních vozidel, jejich kategorií a jejich dalšího provedení.
4.1.1
Podle přepravní kapacity
Vozidla s obsaditelností nepřesahující 22 cestujících, kromě místa řidiče:
Třída A: Autobusy určené pro přepravu sedících i stojících cestujících. Třída B: Autobusy určené pouze pro sedící cestující. Vozidla s obsaditelností přesahující 22 cestujících, kromě místa řidiče: 29
Třída I: Městské autobusy, určené pro hromadnou dopravu osob s častými zastávkami ve městě, čemuž odpovídá rozmístění sedadel, více míst ke stání, madla a tyče na držení za jízdy, většinou disponují třemi dvoukřídlými dveřmi umístěnými v pravé bočnici karoserie, bývají vybaveny automatickými převodovkami a jejich maximální rychlost činí 80 km/h. Třída II: Meziměstské autobusy, určené pro provoz v blízkostech měst a mezi městy. Jsou vyrobeny v zásadě pro sedící cestující, ale umožňují i přepravu stojících cestujících, většinou jsou vybaveny manuální převodovkou a jejich maximální rychlost dosahuje rychlosti 90 km/h. Třída III: Dálkové autobusy (autokary), určeny pro provoz na střední a dlouhé trasy. Prostor pro cestující je řešen tak, aby nabízel co největší pohodlí při cestování, jsou určeny výhradně pro přepravu sedících cestujících a jejich zavazadla. Maximální rychlost dosahuje rychlosti 100 km/h.
4.1.2
Podle konstrukčního uspořádání
Malé autobusy: Většinou jsou odvozeny od karosářských provedení dodávkových automobilů s velkým rozvorem náprav, zadní náprava bývá osazována zdvojenými pneumatikami a délka vozu se pohybuje okolo šesti metrů. Sedadla jsou obvykle uspořádána ve třech řadách a přístup do vozu zajišťují boční posuvné dveře. Může se také jednat o běžné autobusy menších rozměrů určené pro provoz v úzkých uličkách s menší přepravní kapacitou než u klasických autobusů, viz.obrázek 4.1. Klasické autobusy: Nejčastěji se jedná o dvounápravové vozidlo, dlouhé dvanáct metrů. Jsou dvojího typu, konvenční konstrukce, kdy se jedná o starší typy vozidel s výškou podlahy cca. 890 mm a dveřmi s výkyvnými křídly směrem ven. Druhým typem je nízkopodlažní konstrukce, použití u novějších vozidel, které nemají schody a výška podlahy vozidla dosahuje cca. 350 mm (za nízkopodlažní se považuje autobus, jehož minimálně 35 % plochy prostoru pro stojící cestující je dosažitelné ze země jedním stupněm), viz.obrázek 4.2. Velkokapacitní autobusy: Vznikly z požadavku větší přepravní kapacity. Patří 30
Obrázek 4.1: Podvozek malého autobusu, (VOLVO, 2012)
Obrázek 4.2: Podvozek klasického autobusu, (VOLVO, 2012) sem autobusy patrové, mající dvě podlaží, díky nimž je zvětšena celková kapacita přepravy, tudíž mají větší výšku vozu a délka vozu je srovnatelná s klasickými autobusy. Dalším typem jsou autobusy kloubové, větší kapacity je dosaženo zvětšenou délkou vozidla, nejčastěji osmnáct metrů, kvůli této délce však musí být rozděleny kloubem, který umožňuje natočení přední části vozu vůči části zadní, viz.obrázek 4.3. Spojovací část vozu bývá chráněna měchem, vyrobeným z tkaniny oboustranně povrstvené polyvinylchloridem (PVC). Existují také kloubové autobusy se dvěma klouby, kdy se jedná o uspořádání až čtyřnápravového vozidla označovaného jako metrobus, dlou31
hého až dvacet čtyři metrů, kdy spojnice jednotlivých částí je spojena dvěma klouby, viz. obrázek 4.4.
Obrázek 4.3: Podvozek kloubového autobusu, (VOLVO, 2012)
Obrázek 4.4: Podvozek dvoukloubového autobusu, (VOLVO, 2012)
32
Kapitola 5 KLOUBOVÝ AUTOBUS Je silniční motorové vozidlo určené pro hromadnou přepravu osob, skládající se ze dvou, (případně více), odpružených částí, které jsou trvale spojeny natáčivou konstrukcí nazývanou kloub. Obě části karoserie jsou považovány za tuhá tělesa, která jsou s nápravami spojena vzduchovými pružinami. Přední náprava je řídící, poháněnou nápravou může být náprava střední nebo náprava zadní, ta může být navíc pevná nebo nuceně řízená. Prostor pro cestující je společný, průchozí po celé délce vozidla. Tím je docíleno vysoké přepravní kapacity soupravy při zachování manévrovatelnosti autobusu. Existují dvě základní rozdělení kloubových autobusů podle konstrukčního uspořádání kloubového spojení: Spojení kulovým čepem: Tento typ uspořádání se používal především u autobusů starší konstrukce, které byly tzv. tažné, kde motor byl umístěn v předním díle vozidla a poháněná byla prostřední náprava. Nevýhodou tohoto uspořádání však byla problematická údržba motoru. V tomto uspořádání má zadní náprava hlavní funkci v přenosu hmotnosti vleku autobusu, její provedení je relativně jednoduché a levné, stejně tak, jako možná zástavba řízení závislého na natočení kloubu, např. pomocí mechanické vazby, kdy se kola zadní nápravy natáčela v opačném směru, než kola na nápravě přední. Spojení kulovým čepem je znázorněno na obrázku 5.1. Spojení kuličkovou točnou: Tato koncepce používající se u novějších vozidel je řešena, jako tzv. tlačná, motor se nachází v zadní části vleku a poháněná je 33
zadní náprava. V tomto případě je zástavba řízení zadní nápravy již značně komplikovaná a tedy finančně náročná. Spojení kuličkovou točnou je znázorněno na obrázku 5.2.
Obrázek 5.1: Kulový čep
5.1
Obrázek 5.2: Kuličková točna (KLOUB, 2013)
Systém tlumení a blokování točny
Mezi oběma částmi kloubového autobusu mohou být umístěny hydraulické nebo třecí tlumiče, které tlumí boční kmitání soupravy. Systém tlumení zajišťuje směrové utlumení v podélném směru, zejména při působení bočního větru a při výjezdu ze zatáček tak, aby nedocházelo ke směrovému rozkmitání soupravy. Odstranění rázů, vznikajících při přejíždění příčných nerovností je zajištěno pomocí silentblokových dorazů. Funkci tlumení zajišťuje ve většině případech dvojice hydraulických válců a regulační blok kloubu s elektronickou regulací, skládající se ze dvou typů snímačů, snímače úhlu natočení točny a snímače rychlosti otáčení. Tlačné autobusy mají obvykle blokovací zařízení, které je umístěno mezi předním a zadním vozem, viz. obrázek 5.3. U této koncepce, kdy jsou poháněna kola zadní nápravy, tlačí zadní vůz na vůz přední, a proto zvláště při zatáčení vznikne příčná síla ve spojení obou vozů. Nestačí-li boční vodící síly pneumatik na prostřední nápravě zachytit tuto sílu, dojde ke smyku prostřední nápravy a k tzv. zlomení kloubového autobusu. Z tohoto důvodu se pro zajištění jízdní stability při extrémních jízd34
Obrázek 5.3: Blokování kloubu, (KLOUB, 2013) ních podmínkách (zledovatělá vozovka, uježděný sníh) používá blokovací zařízení. Blokování zamezuje nekontrolovatelnému zlomení soupravy, zejména při snížených adhezních podmínkách, které by mělo za následek porušení spoje. Během blokování se kloubový autobus chová jako jedno tuhé těleso. K zapnutí a vypnutí blokování soupravy slouží dva snímače, které jsou umístěny na rámu před točnicovým kruhem. První snímač bývá umístěn proti delšímu náběhu točny, signalizuje zlomení soupravy zpravidla o úhel 46 stupňů, což oznamuje řidiči (světelně i zvukově), že nesmí pokračovat v ”lámání” a je třeba vůz vyrovnat. Druhý snímač, umístěný proti kratšímu náběhu točny, slouží k zablokování vozidla při zlomení o úhel 48 stupňů. Správná funkce tlumení a blokování točny závisí na těsnosti a odvzdušnění hydraulické soustavy, správné funkci elektroniky, správném seřízení a připojení tlaku vzduchu, (KRUMPHOLC, 2010).
35
36
Kapitola 6 JÍZDA SMĚROVÝM OBLOUKEM Odstředivá síla je základním faktorem ovlivňující např. převrácení vozidel, vzniká při jízdě obloukem a to buď při jízdě zatáčkou nebo střídavou změnou směru jízdy např. při změně jízdního pruhu. Odstředivá síla je násobkem hmotnosti vozidla a odstředivého zrychlení. Právě toto zrychlení je možno relativně snadno měřit a použít jako signál pro vyhodnocení jízdní situace jako nebezpečné a hrozící převrácením vozidla, kdy je překročeno tzv. mezní nebezpečné zrychlení. Jedná se především o případy, kdy vozidlo jede obloukem příliš rychle a dostane se na mez, která je určena fyzikálními zákony, které nelze obejít. Z předchozího je jasně, že zmenšení zrychlení lze docílit dvěma způsoby, a to snížením rychlosti jízdy nebo zvětšením poloměru zatáčky. Pokud řidič nesníží rychlost, druhou možností je jet v zatáčce po dráze, jejíž rádius je větší než poloměr zatáčky, (PTÁČEK, 2012). Řidič má průjezd zatáčkou ve své režii, je to právě on, kdo určuje způsob vedení vozidla a ovlivňuje jeho nájezd do zatáčky, začátek a intenzitu brzdění, volbu jízdní trajektorie a místo i intenzitu akcelerace na výjezdu ze zatáčky. To vše závisí nejvíce na jeho cviku, zkušenostech, talentu a odvaze. Jakkoliv se může průjezd zatáčkou jevit jako jednolitý úkon, který musí řidič provést, ve skutečnosti se musí naučit rozdělovat průjezd každou zatáčkou na tři úseky, které jsou znázorněny na obrázku 6.1 a obrázku 6.2.
37
Obrázek 6.1: 1. způsob průjezdu zatáčkou Obrázek 6.2: 2. způsob průjezdu zatáčkou (ZATÁČKA1, 2012)
Tři úseky každé zatáčky jsou:
Nájezd do zatáčky: První úsek, pro který je charakteristické brzdění před zatáčkou, na obrázcích 6.1 a 6.2 je znázorněn červenou barvou.
Průjezd zatáčkou: Následující úsek, pro který je důležité vedení vozidla volantem po jízdní trajektorii, na obrázcích 6.1 a 6.2 je znázorněn modrou barvou.
Výjezd ze zatáčky: Konečný úsek, kdy řidič plynule zvyšuje rychlost vozidla pomocí plynového pedálu a vozidlo vede směrem k výjezdu ze zatáčky, na obrázcích 6.1 a 6.2 je znázorněn barvou zelenou.
Důležitým bodem každé zatáčky je její vrchol, vžilo se pro něj anglické slůvko apex. Jedná se o bod, kdy je vozidlo nejblíže vnitřní části zatáčky. Z matematického hlediska je apex bodem, ve kterém je křivost trajektorie vozidla maximální. V okamžiku, kdy se vozidlo tzv. dotkne apexu, měla by být zatáčka ukončena, řidič musí zvětšovat poloměr zatáčky a plynule zvyšovat rychlost vozidla. Problémem ovšem zůstává nalezení správného místa, kde si apex zvolit. Každá zatáčka má geometrický vrchol a stopu, která je nejpřímější a nejkratší, ovšem ne vždy se jedná o ideální vrchol a zvolenou stopu z pohledu bezpečnosti a plynulosti, celkové rychlosti nebo času, viz. obrázek 6.3. 38
Obrázek 6.3: Vrchol zatáčky-apex, (ZATÁČKA2, 2013)
6.1
Jízdní stabilita v zatáčce
Jízdní stabilita v zatáčce a dobrá ovladatelnost vozidla v kritických situacích patří k prvotním předpokladům aktivní bezpečnosti. Základní podmínkou je přitom přilnavost kol k vozovce, které zajišťují pneumatiky. Každá pneumatika má stanovený limit trakce při akceleraci, při brzdění a při zatáčení. Je to právě pneumatika, která zajišťuje jediný kontakt mezi vozidlem a vozovkou, proto musí nabízet ideální rovnováhu mezi přilnavostí, záběrem, komfortem, tichostí, dlouhou životností, energetickou úsporností a cenou. Hlavním úkolem pneumatiky je přenášet síly, které pohánějí, brzdí a vedou vozidlo a dále nést určitou část tíhy vozidla. Při plnění tohoto hlavního úkolu musí být ještě pneumatika schopná absorbovat nerovnosti na vozovkách s různým charakterem povrchu a zajišťovat při tom hladkou a bezpečnou jízdu, (VLK, 2000). Dynamické vlastnosti vozidla jsou omezeny adhezními podmínkami mezi kolem a vozovkou, které udává µ – součinitel adheze, (koeficient tření). Součinitel adheze závisí hlavně na vlastnostech pneumatiky a druhu povrchu vozovky, viz tabulka 6.1, dále pak na rychlosti jízdy a tvaru povrchu. Pneumatika a její omezené možnosti spočívají v tom, že pokud řidič mění směr jízdy vozidla a zároveň vozidlo zpomaluje nebo zrychluje, dostane se pneumatika rychleji na svůj limit a dojde tak ke ztrátě adheze. 39
Povrch vozovky beton
suchý
µ 0.8 – 1.0
Povrch vozovky suchá
0.4 – 0.6
mokrá
0.3 – 0.4
suchá
0.4 – 0.6
mokrá
0.2 – 0.5
suchá
0.6 – 0.9 hluboký písek, sníh
0.2 – 0.4
mokrá
0.3 – 0.5
0 ◦C
0.05 – 0.1
suchý
0.6 – 0.8 náledí
-10 ◦ C
0.08 – 0.15
-20 ◦ C
0.15 – 0.20
polní cesta
mokrý 0.5 – 0.8 asfalt
suchý
0.6 – 0.9
tráva
mokrý 0.3 – 0.8 dlažba
makadam
µ
mokrý 0.3 – 0.5
Tabulka 6.1: Součinitel adheze na různém povrchu, (BRADÁČ, 1999) Ztrátu adheze lze vysvětlit na diagramu složení sil, které na pneumatiku působí. Graficky je představuje tzv. adhezní elipsa, ohraničující oblast stability jednotlivého kola vozidla. Velikost a směr jednotlivých sil vyjadřují vektory, které se znázorňují šipkami a sčítají se geometrickým skládáním. Výsledný vektor pak udává maximální využitelnou adhezi v požadovaném směru. Síly působící v průběhu jízdy na vozidlo lze rozdělit na: Podélné síly: Vznikají buď hnacím momentem motoru – akcelerací, nebo brzděním – decerelací. Boční síly: Vznikají především při jízdě v zatáčkách vlivem odstředivé síly působící na vozidlo a také při bočním sklonu vozovky nebo v důsledku působení bočního větru. Přilnavost kola k vozovce je dána vektorovým součtem využité adheze ve směru podélném µx a směru příčném µy . Hodnota vektorového součtu těchto dvou sil nesmí překročit mezní hodnotu µ, jinak dojde ke ztratě směrové stability vozidla, viz obrázek 6.4. Celkovou adhezní sílu vozidla udává součet adhezních sil jednotlivých kol, které se mohou lišit v důsledku dynamického zatížení náprav, (BRADÁČ, 1999, cit. VIČÍK, 2011). Adhezní podmínky musí brát řidič v potaz a přizpůsobit jim svou jízdu. Zásahy do řízení je schopen regulovat jak síly podélné, tak příčné a zajistit tak maximální 40
Obrázek 6.4: Adhezní elipsa, (BRADÁČ, 1999) možnou přilnavost pneumatik v dané situaci a na daném povrchu. Významný vliv hraje také případná výška vodního sloupce na vozovce. Pokud dezén pneumatiky nestačí vodu odvádět, dochází k tzv. aquaplaningu, ten představuje ztrátu adhezní síly mezi pneumatikami a vozovkou (tzv. klouzání na vodě) způsobené řádově nižší adhezní schopnosti vody, kdy je síla adheze nepatrná, viz grafy na obrázku 6.5, (BRADÁČ, 1999, cit. VIČÍK, 2011).
Obrázek 6.5: Vliv výšky dezénu pneumatiky na vznik aquaplaningu, (ZATAČKA3, 2013)
6.2
Vliv pneumatik
Pneumatiky mají mimořádný význam pro jízdní bezpečnost každého silničního vozidla, nejinak je tomu u autobusů. Jedním z možných aspektů, které může ovlivnit řidič svými zásahy do řízení je životnost pneumatik, která závisí na vlastní pneumatice a na provozních podmínkách. K nim náleží rychlost jízdy, teplota a kvalita povrchu vozovky a síly působící ve stopě pneumatiky. Životností rozumíme nejčastěji 41
kilometrický průběh, který pneumatika za daných podmínek vydrží do stavu opotřebení dezénových drážek na zákonem stanovenou hloubku nebo do stavu poruchy pláště. Do životnosti pneumatiky se počítá i protektorování. Autobusové pneumatiky jsou pro městské použití upraveny k obrovskému počtu zastavení a rozjíždění. Pneumatiky musí odolat nárazům od výmolů, kontaktům s obrubníky, včetně občasného najetí na ně a také velmi častým a intenzivním změnám v zatížení. Vyznačují se speciálně utvořenými bočnicemi s širokými rameny, dezénem zabraňujícím zasekávání kamínků, vyšší odolností dezénu proti otěru a za samozřejmost se považuje jejich nízká úroveň hlučnosti. Je zde kladen vysoký důraz na bezpečnost a hospodárnost. Pneumatiky musí zajistit především optimální přenos sil na vozovku, což představuje zajištění spolehlivé adheze u hnacích a brzdných sil, přesné držení stopy a přesnost řízení a v neposlední řadě umožnit maximální kilometrový výkon, (ČERNÝ, 2013).
6.3
Autobus při zatáčení
Základními parametry ovlivňující chování autobusu v zatáčce jsou jeho rozměry. Stejně jako u jakéhokoliv vozidla se jedná o délku, šířku a výšku vozidla, dále pak obzvláště důležitými parametry autobusu je rozvor jeho náprav. Oproti jiným vozidlům jsou vyjímečnými parametry značný přední převis karoserie, kdy řídící kola jsou posunuta až daleko za řidiče a také značný zadní převis karoserie, kde se nachází pohonné ústrojí. U kloubového autobusu jsou to navíc parametry určující vzdálenost kloubového spoje od prostřední nápravy a také vzdálenost spoje od nápravy zadní. Při jízdě autobusů v zatáčce sledujeme především šířku jízdního pruhu, vnější obrysový poloměr zatáčení, vnitřní stopový poloměr zatáčení a také vybočení předního a zadního čela. Parametrem ovlivňující šířku jízdního pruhu je velikost předního převisu. Čím menší tato hodnota bude, tím menší bude také vnější obrysový poloměr zatáčení a tím i celková šířka jízdního pruhu. Je zde však omezený prostor pro optimalizaci tohoto parametru, hlavně pak z důvodu šířky předních vstupních dveří do vozidla. Dalším významným faktorem ovlivňující chování autobusu v zatáčce je velikost maximálního úhlu natočení kol přední nápravy, (HERDA, 2008). 42
V praxi těžko odhadnutelným parametrem u autobusů je vybočení zadního čela, respektive poloměr, který opisuje vnější hrana zadního čela autobusu, viz. obrázek 6.6, to platí dvojnásob u autobusů kloubových a autobusů s řízenou zadní nápravou. Tato veličina je závislá v prvé řadě na velikosti zadního převisu karoserie a dále pak u kloubových autobusů na vzdálenosti prostřední nápravy od kloubového spojení autobusu. Šířka jízdního pruhu je dána rozdílem poloměrů a to vnějšího předního obrysového poloměru zatáčení a vnitřního poloměru zadní nápravy autobusu, (HERDA, 2008).
Obrázek 6.6: Průjezd zatáčkou dvounápravového autobusu, (MERCEDES, 2013) V případě kloubového autobusu s neřízenými koly zadní nápravy, má zadní náprava tendenci vybočovat více ke středu zatáčení, viz. obrázek 6.7 a tím dochází ke zvětšení šířky jízdního pruhu. Tomuto efektu nelze bez řízení kol zadní nápravy zabránit, lze ho však eliminovat krátkou zadní částí a umístěním kloubu dostatečně daleko od prostřední nápravy. Zamezit zvětšení šířky jízdního pruhu a vybočování zadní části kloubového autobusu směrem ke středu zatáčení je možné pomocí systému řízení kol zadní nápravy, viz obrázek 6.8. Takto je chování zadní nápravy pro řidiče snadněji odhadnutelné, avšak nevýhodou je větší vybočování zadní části autobusu směrem ven ze zatáčky, které je pro řidiče ve zpětném zrcátku obtížně registrovatelné a tudíž značně rizikové, (HERDA, 2008).
43
Obrázek 6.7: Průjezd zatáčkou kloubového autobusu s neřízenou zadní nápravou, ( MERCEDES, 2013)
Obrázek 6.8: Průjezd zatáčkou kloubového autobusu s řízenou zadní nápravou, (KAROSA ŠM 16,5 M, 2013)
44
Kapitola 7 MATEMATICKÉ MODELOVÁNÍ Jedná se o tvorbu matematického aparátu, kde je použito pro popis chování soustavy (systému) matematických rovnic. V případě složitých modelů je využito na diferenciálního a integrálního počtu. Používá se především v přírodních vědách (fyzika, chemie, biologie), inženýrských odvětvích (strojnictví, stavebnictví), ale i v sociálních vědách (ekonomie, sociologie, psychologie). Při tvorbě matematického modelu se snažíme celou problematiku řešit pro jednotlivé úseky tzn., že celý děj rozdělíme na jednotlivé části a tyto části matematicky popisujeme. Z částí dále skládáme celkový matematický model. V podstatě lze modelovat veškeré děje, které můžeme a umíme matematicky popsat, (HAKL, 2005).
7.1
Význam matematického modelování
Využití matematického modelování má v praxi široký význam, zejména z důvodu možnosti opakované simulace děje při jednoduché změně počátečních (doplňkových) podmínek a možnost vybrat jednoduše vyhovující řešení při dosažení optimálních parametrů.
7.2
Rozdělení matematických modelů
Matematické modely můžeme posuzovat mnoha různými systémy, (ŠMÍD, 2011). Lineární a nelineární: Pokud jsou funkce a limity reprezentované lineárními rovnicemi, označuje se model jako lineární. Pokud je alespoň jedna z podmínek 45
nebo limit reprezentovaná nelineární rovnicí, označuje se model jako nelineární.
Deterministické a stochastické: Deterministický model vykazuje při opakování pokusu za stejných počátečních i provozních podmínek stejné výsledky, kdežto u stochastického (pravděpodobnostního), modelu je přítomna náhoda, i když jsou počáteční i provozní podmínky stejné.
Statické a dynamické: Při statickém modelu se neuvažuje prvek času, kdežto u dynamického modelu ano. Dynamické modely jsou obyčejně reprezentované rekurentními nebo diferenciálními rovnicemi.
S parametry soustředěnými nebo rozloženými: Pokud je model homogenní, (v stále stejném stavu v každé části systému), parametry jsou soustředěné. Pokud je model heterogenní, (v různém stavu v různých částech systému), jsou parametry rozložené. Rozložené parametry jsou obyčejně reprezentované parciálními diferenciálními rovnicemi.
7.3
Interpretace a verifikace řešení
Z hlediska řešitelnosti není každý matematický model řešitelný, z tohoto důvodu je nutné zavádět jednotlivá zjednodušení, která vedou k řešitelnosti daného problému. Vyřešený matematický model je většinou představován ve formě analytické, tedy soustavou rovnic. V případech, kdy postačuje numerické řešení modelu je interpretace číselnými hodnotami. Po vyřešení modelu je potřeba zvážit, jak velkou měrou byly ovlivněny výsledné hodnoty předchozími zjednodušeními a provést tak vhodně zvolenou formu verifikace řešení. Verifikace slouží k experimentálnímu ověření, zda vyřešený model prezentuje správné údaje. V případě neshody se provede korekce tohoto matematického modelu a celý postup řešení se opakuje, dokud výsledky modelu nebudou v dobré shodě s realitou, (BARTOŇ, 2006). 46
7.4
Stručný popis programu Maple 13
Maple je univerzální matematický program, sdružující numerický i symbolický počet a grafické prostředí. Slouží k matematickým výpočtům, k simulacím (matematickým, fyzikálním, chemickým apod.) a k programování převážně matematických algoritmů. Hlavní nasazení programu Maple najdeme v řešení mnoha matematických i inženýrských problémů. Výsledkem těchto výpočtů mohou být vzorce, rovnice, systémy rovnic, výsledné hodnoty, grafy a animace. Struktura příkazů programu Maple 13 a způsob jejich použití je naprosto nezávislý na operačním systému a druhu počítače na kterém program pracuje. Jediné omezení je dáno použitým hardwarem a softwarem, které limitují velikost a rozsah řešeného problému a tím i způsob řešení, (BUCHAR, 1994).
7.4.1
Základní použité příkazy Maple 13
assign: Přiřadí hodnoty více proměnným nebo množině proměnných. diff: Vypočte derivaci výrazu podle proměnných, které jsou zadány jako parametry. Digits: Nastaví numerickou přesnost programu na požadovaný počet platných cifer. dsolve: Řeší diferenciální rovnice a jejich soustavy. Jedním z parametrů mohou být i počáteční podmínky pro určení integračních konstant. Řešení může být analytické, řadou nebo numerické. evalf: Příkaz, který vyčíslí numericky zadaný výraz na požadovaný počet platných cifer. fsolve: Numerické řešení rovnic, nebo jejich soustav s přesností zadanou příkazem Digits. Řešení probíhá pomocí Newtonovy iterační metody a to i v komplexním oboru. help: Velmi podrobně vysvětlí a popíše příkaz, včetně několika ukázek jeho použití. solve: Příkaz pro řešení algebraických rovnic nebo jejich soustav. Pokud existuje více řešení, tak jednotlivá řešení oddělí čárkou. 47
int Počítá určitý nebo neurčitý integrál zadaného výrazu. Pokud integrál nemá analytické řešení, opíše daný příkaz na obrazovku. limit: Provádí výpočet limity funkcí nebo výrazů. Můžeme požadovat limitu zleva nebo zprava. Pokud limita neexistuje, dává hlášení undefined. Nelze-li limitu spočítat, opíše příkaz na obrazovku podobně jako u integrace. plot Vykreslí plošný graf požadované funkce. Jedním z mnoha parametrů je druh souřadného systému, např. pravoúhlý, polární. Graf může být zadán i parametricky. Grafy je možné uložit do grafických souborů běžných formátů. plot3d: Prostorový graf v pravoúhlých, cylindrických nebo kulových souřadnicích. Umožňuje tvorbu drátěného modelu, plošného modelu, výmaz neviditelných hran, osvětlení, stínování, řeší perspektivu. series: Provádí transformaci požadovaného výrazu nebo funkce do Taylorovy řady. Je možné i specifikovat počet členů řady a počáteční bod řady. simplify: Provede zjednodušení zadaného příkazu. Jednoduché výrazy jsou zjednodušovány automaticky, složitější podle vnitřních parametrů příkazu. subs: Ve funkci nebo proměnné nahradí proměnnou jinou proměnnou nebo výrazem. sum: Provádí výpočet součtu řad. Nelze - li součet určit, opisuje příkaz na obrazovku. Lze - li součet vyjádřit funkcí, vrací tuto funkci. Kromě těchto základních příkazů existuje celá řada dalších příkazů používaných pro řešení komplikovanějších problémů, (BARTOŇ, 1993).
48
Kapitola 8 ZÁKLADNÍ PROBLÉM KINEMATIKY 8.1
Úvod
Kinematika popisuje pohyb těles, bez ohledu na jeho příčiny. Při zanedbání rozměrů a tvaru studovaného tělesa je těleso nahrazeno hmotným bodem. Sledujeme geometrii pohybu hmotného bodu po dráze, kdy hmotný bod mění v průběhu času svoji polohu, tzn. mění se i jeho polohový vektor, tedy v pravoúhlé souřadné soustavě platí P~ (t) = [X(t), Y (t)]. Při znalosti polohového vektoru jsme schopni odvodit i další základní kinema~ tické veličiny, představující vektory rychlosti V~ (t) a zrychlení A(t). Dále se stanovuje tečné zrychlení At(t), které mění absolutní velikost vektoru rychlosti a normálové zrychlení An(t), které mění směr rychlosti tělesa. Závěrem se odvozují vztahy pro polohový vektor středu oskulační kružnice trajektorie, tedy evoluta trajektorie ~ = [Sx(t), Sy(t)] a pro poloměr oskulační kružnice R(t). S(t)
8.1.1
Vektory zrychlení
Pomocí programu Maple odvodíme základní matematické vztahy popisující vektory rychlosti a zrychlení. Provedeme start programu Maple a zpřístupníme knihovnu grafických příkazů. Pro zkrácení a zvýšení přehlednosti odpovědí programu Maple použijeme následu49
jící substituce: 2 2 ¨ = d Y (t) , Y˙ = d Y (t) , Y = Y (t) . ¨ = d X(t) , X˙ = d X(t) , X = X(t) , Y X dt2 dt dt2 dt
(8.1)
Obdobné substituce použijeme i pro proměnné x(t) a y(t) a jejich derivace podle času. Dále provedeme definici polohového vektoru P0, viz rovnice (8.2) a vypočteme vektory rychlosti V – (8.3), zrychlení A – (8.4), zároveň vypočteme absolutní velikost vektoru rychlosti A V – (8.5) a absolutní velikost vektoru zrychlení A A – (8.6). > restart; with(plots): > P0:=[X(t),Y(t)]; V:=map(u->diff(u,t),P0); > A:=map(u->diff(u,t,t),P0); A_V:=sqrt(add(u^2,u=V)); > A_A:=sqrt(add(u^2,u=A));
P 0 := [X , Y ]
(8.2)
:= [X˙ , Y˙ ]
(8.3)
¨ ,Y ¨] A := [X
(8.4)
V
q
AV
X˙ 2 + Y˙ 2
:=
(8.5)
q
¨2+Y ¨2 X
A A :=
(8.6)
Tečné zrychlení, At, viz rovnice (8.7) vypočteme jako derivaci absolutní velikosti vektoru rychlosti podle času. Normálové zrychlení, An – (8.8) je na tečné zrychlení kolmé. Je tak možné jej vypočítat z absolutní velikosti vektoru zrychlení – (8.6) a z již vypočteného tečného zrychlení – (8.7). > At:=simplify(diff(A_V,t)); > An:=simplify(sqrt(A_A^2-At^2),symbolic);
At := An :=
¨ + Y˙ Y ¨ X˙ X q
X˙ 2 + Y˙ 2 ¨ X˙ − X ¨ Y˙ Y q
50
X˙ 2 + Y˙ 2
(8.7) (8.8)
8.2
Oskulační kružnice trajektorie
V průběhu výpočtu parametrů oskulační kružnice bude nutné opakovaně provést výpočet vzdálenosti dvou bodů. Pro tento výpočet si vytvoříme v Maple funkci ~ a Q2: ~ D2. Jejím vstupem budou polohové vektory bodů Q1 > D2:=unapply(sqrt((Q1[1]-Q2[1])^2+(Q1[2]-Q2[2])^2),Q1,Q2);
D2 := (Q1 , Q2 ) 7→
q
Q1 1 2 − 2 Q1 1 Q2 1 + Q2 1 2 + Q1 2 2 − 2 Q1 2 Q2 2 + Q2 2 2 .
Trajektorie bodu je křivka, která je zadána jako parametrická funkce času t. V libovolném čase t bude jeho poloha P 0, v čase t+Dt bude jeho poloha P 1 a v čase t − Dt byla jeho poloha P 2. Polohu bodů P 1 a P 2 je možné pro Dt → 0 odvodit pomocí Taylorova rozvoje: > P1:=[X(t)+Dt*diff(X(t),t)+Dt^2/2*diff(X(t),t,t), Y(t)+Dt*diff(Y(t),t)+Dt^2/2*diff(Y(t),t,t)]; > P2:=[X(t)-Dt*diff(X(t),t)+Dt^2/2*diff(X(t),t,t), Y(t)-Dt*diff(Y(t),t)+Dt^2/2*diff(Y(t),t,t)];
Dt 2 ¨ Dt 2 ¨ P 1 := X + Dt X˙ + X , Y + Dt Y˙ + Y 2 2
#
Dt 2 ¨ Dt 2 ¨ ˙ ˙ P 2 := X − Dt X + X , Y − Dt Y + Y 2 2
#
"
"
Nyní máme definované tři body trajektorie P0, P1 a P2. Vzhledem k tomu, že tři body definují kružnici je možné těmito body proložit kružnici se středem na souřadnicích [Sx, Sy] a poloměrem ρ. K výpočtu souřadnic středu kružnice a jejího poloměru je možné využít definici kružnice – všechny její body mají od středu stejnou vzdálenost. > S:=[Sx,Sy]:
e0:=D2(S,P0)^2=rho^2;
> e1:=D2(S,P0)^2=rho^2; e2:=D2(S,P0)^2=rho^2;
e0 := Sx 2 − 2 Sx X + X 2 + Sy 2 − 2 Sy Y + Y 2 = ρ2 e1 := Sx 2 − 2 Sx 2
+Sy − 2 Sy
(8.9) !2
Dt 2 ¨ Dt 2 ¨ X + X + Dt X˙ + X 2 2 ! !2 2 2 Dt Dt ¨ + Y + Dt Y˙ + ¨ Y + Dt Y˙ + Y Y 2 2 !
X + Dt X˙ +
51
(8.10)
!2
Dt 2 ¨ Dt 2 ¨ e2 := Sx − 2 Sx X − Dt X˙ + X + X − Dt X˙ + X 2 2 ! !2 Dt 2 ¨ Dt 2 ¨ 2 ˙ ˙ +Sy − 2 Sy Y − Dt Y + Y + Y − Dt Y + Y . 2 2 !
2
(8.11)
Rovnice (8.10) a (8.9) je možné od sebe odečíst. Podobně lze odečíst rovnice (8.11) a (8.9). Dostaneme tak systém dvou lineárních rovnic pro Sx a Sy, který je snadno řešitelný. > e11:=expand(e1-e0); > e21:=expand(e2-e0); > Sol:=solve(e11,e21,Sx,Sy);
¨ + 2 XDt X˙ + XDt 2 X ¨ + Dt 2 X˙ 2 + Dt 3 X˙ X ¨ e11 := −2 Sx Dt X˙ − Sx Dt 2 X 4 Dt ¨ 2 ¨ + 2 Y Dt Y˙ + Y Dt 2 Y ¨ + Dt 2 Y˙ 2 + X − 2 Sy Dt Y˙ − Sy Dt 2 Y 4 4 ¨2=0 ¨ + Dt Y +Dt 3 Y˙ Y 4 ¨ − 2 XDt X˙ + XDt 2 X ¨ + Dt 2 X˙ 2 − Dt 3 X˙ X ¨ e21 := 2 Sx Dt X˙ − Sx Dt 2 X 4 Dt ¨ 2 ¨ − 2 Y Dt Y˙ + Y Dt 2 Y ¨ + Dt 2 Y˙ 2 X + 2 Sy Dt Y˙ − Sy Dt 2 Y 4 4 ¨2=0 ¨ + Dt Y −Dt 3 Y˙ Y 4
Sol :=
˙ X ¨ 2 + 2Y ¨ X˙ X ¨ +Y ¨ 2 Y˙ Dt 2 − Y Sx = ¨ ˙ ¨ ˙ 4 Y X − X Y 3 2 ˙ X ¨ + XY ¨ X˙ − Y˙ − X˙ Y˙ −X Y + , ¨ ˙ ¨ ˙ Y X −X Y ¨ 2 X˙ + X ¨ 2 X˙ + 2 X ¨ Y˙ Y ¨ Dt 2 − Y Sy = − ¨ X˙ − X ¨ Y˙ 4 Y ¨ Y Y˙ − X˙ Y˙ 2 − X˙ 3 − X˙ Y Y ¨ X −
¨ X˙ − X ¨ Y˙ Y
V případě, kdy Dt → 0, jedná se o tři sousední body trajektorie a v tomto případě se odpovídající kružnice stává kružnicí oskulační. Stačí proto provést lim Dt → 0 a přiřadit výsledek. > Sol:=map(u->limit(u,Dt=0),Sol); > assign(Sol):
52
¨ X˙ − Y˙ 3 − X˙ 2 Y˙ − X Y˙ X ¨ XY , Sx = ¨ X˙ − X ¨ Y˙ Y Sol := ¨ Y Y˙ + X˙ Y˙ 2 + X˙ 3 + X˙ Y Y ¨ −X Sy = ¨ ˙ ¨ ˙
(8.12)
Y X −X Y Poloměr oskulační kružnice ρ vypočteme jako vzdálenost středu oskulační kružnice S od bodu P0. V následujících výpočtech však budeme více využívat jeho převrácenou hodnotu – křivost, k = 1/ρ, viz (8.13). > rho:=simplify(D2(S,P0),symbolic); > k:=simplify(1/rho,symbolic): > save P0, V, A, A_V, A_A, At, An, S, Sx, Sy, k, SU, "Kinem_1.sav"; 3/2 X˙ 2 + Y˙ 2 ρ= . ¨ X˙ − X ¨ Y˙ Y
8.3
(8.13)
Pól rychlosti
V případě rovinného pohybu tuhého tělesa je v každém okamžiku možné popsat pohyb tělesa jako otáčení okolo okamžitého středu otáčení, tedy okolo bodu jehož okamžitá rychlost je nulová. Tento bod se nazývá Pólem rychlosti, resp. Pólem polohy. Poloha pólu rychlosti bodu se samozřejmě mění s časem a je jí možné určit podle obrázku 8.1. Předpokládejme, že úsečka délky L, jejíž poloha je určena body [P 1, P 2] se za časový okamžik dt přesune do polohy zadané body [P 1d, P 2d], jejichž vzájemná vzdálenost je samozřejmě také L. Pól rychlosti je pak možné nalézt jako průsečík os o1 a o2 úseček P 1P 2 a P 1dP 2d pro dt → 0. Nejprve odvodíme polohu bodů P 1d a P 2d > P1:=[X(t),Y(t)]; P2:=[x(t),y(t)]; > P1d:=expand(P1+dt*diff(P1,t)/2); > P2d:=expand(P2+dt*diff(P2,t)/2);
P 1 := [X, Y ] h
P 1d := X˙ dt + X, Y˙ dt + Y
P 2 := [x, y] i
P 2d := [x˙ dt + x, x˙ dt + x] .
Osy úseček určíme zadáme pomocí parametrů p1 a p2 s využitím vektorů N 1 a N 2, které jsou kolmé k úsečkám o1 a o2 53
Obrázek 8.1: Odvození polohy pólu rychlosti > N1:=[diff(Y(t),t),-diff(X(t),t)]: N2:=[diff(y(t),t),-diff(x(t),t)]: > o1:=expand((P1d+P1)/2+p1*N1); o2:=expand((P2d+P2)/2+p2*N2);
Y˙ dt X˙ dt + X, −X˙ p1 + +Y o1 := Y˙ p1 + 2 2 "
"
x˙ dt y˙ dt o2 := y˙ p2 + + x, −x˙ p2 + +y 2 2
#
#
. Pól rychlosti PR vypočteme jako průsečík přímek o1 a o2 pro dt → 0. > p12:=solve(o1-o2,p1,p2): PR:=simplify(subs(p12,dt=0,o1));
−Y˙ x˙ x − Y˙ y y˙ + Y˙ Y yt + X y˙ X˙ y˙ X˙ − Y˙ x˙
P R :=
−
. −x˙ xX˙ + x˙ X X˙ − y y˙ X˙ + xt Y Y˙
y˙ X˙ − Y˙ x˙
Ještě je nutné určit úhlovou rychlost rotace ω. Pro výpočet je možné použít vztah mezi úhlovou a a obvodovou rychlostí V = ω r, kde r = poloměr otáčení, tedy vzdálenost od pólu rychlosti. Nejprve vypočteme vzdálenosti DP1 a DP2 bodů P1 a P2 od pólu rychlosti PR. Úhlovou rychlost prvního bodu označíme jako ω1, druhého ω2.
> DP1:=simplify(D2(PR,P1),symbolic): DP2:=simplify(D2(PR,P2),symbolic): > e1:=DP1*omega1=sqrt(diff(X(t),t)^2+diff(Y(t),t)^2); > e2:=DP2*omega2=sqrt(diff(x(t),t)^2+diff(y(t),t)^2);
54
q
(−x˙ x + x˙ X − y y˙ + Y y) ˙ X˙ 2 + Y˙ 2 ω1 q ˙ 2 e1 := = X + Y˙ 2 y˙ X˙ − Y˙ x˙ √ x˙ 2 + y˙ 2 ω2 √ −xX˙ + Y˙ Y + X X˙ − Y˙ y = x˙ 2 + y˙ 2 e2 := y˙ X˙ − Y˙ x˙ > omega1:=solve(e1,omega1); omega2:=solve(e2,omega2);
ω1 :=
y˙ X˙ − Y˙ x˙ −x˙ x + x˙ X − y y˙ + Y y˙
ω2 :=
y˙ X˙ − Y˙ x˙ . −xX˙ + Y˙ Y + X X˙ − Y˙ y
(8.14)
Je zřejmé, že v tomto případě ω1 a ω2 jsou různé. Nicméně, je možné využít vztah
q
(x − X)2 + (y − Y )2 = L a z tohoto vztahu vyjádřit např. y a odpovídající
derivaci y, ˙ které je možné dosadit do ω1 a ω2 a tyto vztahy upravit. > e0:=D2(P1,P2)=L: > e1:=y(t)=solve(e0,y(t))[1]; > e2:=map(u->factor(diff(u,t)),e1);
e1 := y = Y + e2 := y˙ = −
−Y˙
√
−X 2 + 2 Xx − x2 + L2
. (X − x + L) (−X + x + L) + X X˙ − xX˙ − x˙ X + x˙ x
q
q
(X − x + L) (−X + x + L)
> omega1:=simplify(eval(subs(e1,e0,omega1)),symbolic) assuming Y(t)>y(t); > omega2:=simplify(eval(subs(e1,e0,omega2)),symbolic) assuming Y(t)>y(t);
ω1 :=
X˙ − x˙ Y −y
ω2 :=
X˙ − x˙ . Y −y
Nyní je již zcela jasné, že oba dva body rotují stejnou úhlovou rychlostí. Výslednou úhlovou rychlost rotace dosadíme do proměnné Omega a všechny důležité vztahy, které byly odvozeny v této části uložíme do souboru Kinem 1.sav, který využijeme v dalších kapitolách. > Omega:=omega1; > save P0, V, A, A_V, A_A, At, An, S, Sx, Sy, k, SU, PR, Omega, D2, "Kinem_1.sav";
55
8.4
Polodie
Množina bodů v rovině, které se v průběhu pohybu tělesa staly póly rychlosti vytvoří křivku, která se nazývá polodie pevná. Projekce pólů rychlosti do souřadného systému, který je pevně spojen s pohybujícím se tělesem se nazývá polodie hybná. Obě dvě polodie jsou znázorněny na obrázku 8.2, který znázorňuje pohybující se obdélník.
Trajektorie vrcholu Evoluta trajektorie vrcholu Oskulacni kruznice Polodie pevna Polodie hybna
Pol rychlosti Prubezne pozice vrcholu Aktualni pozice vrcholu Stred oskulacni kruznice
Obrázek 8.2: Polodie pevná a hybná, trajektorie vrcholů a jejich evoluty
Na obrázku 8.2 jsou dále znázorněny trajektorie jednotlivých vrcholů obdélníku a evoluty trajektorií vrcholů. Pro vyznačenou polohu obdélníku jsou vykresleny i oskulační kružnice a jejich středy. Pohyb tělesa je pak možné chápat jako valení po56
lodie hybné, která je pevně spojená s pohybujícím se tělesem, po polodii pevné. Bod dotyku obou polodií je okamžitým pólem rychlosti, okolo kterého se celé těleso právě otáčí. Nicméně, pokud prostudujeme polohu středů oskulačních kružnic, je zřejmé, že pro každý vrchol je střed oskulační kružnice na jiné křivce. Oskulační kružnice má s odpovídající křivkou dotyk třetího řádu, tzn. křivka a oskulační kružnice mají v bodě dotyku shodné souřadnice, a jejich první i druhé derivace. Kružnice, které mají střed v pólu rychlosti mají shodné pouze souřadnice bodu dotyku a jejich první derivace. Oskulační kružnice tedy lépe aproximují trajektorii vrcholů. Protože v dalších částech této práce budeme sledovat trajektorie významných bodů, budeme více preferovat trajektorie a jejich evoluty oproti polodiím, viz např. část 12.5 na straně 152 a graf 12.14 na straně 150.
57
58
Kapitola 9 INVERZNÍ PROBLÉM KINEMATIKY V předchozí kapitole byly odvozeny základní kinematické charakteristiky pohybu pro případ, kdy byl zadán polohový vektor tělesa jako funkce času, tedy P~ (t) = [X(t), Y (t)]. V případě inverzního problému jsou zadány hlavní kinematické charakteristiky pohybu a úkolem je určit trajektorii pohybu a dopočítat zbývající kinematické charakteristiky. Řidič ovládá vozidlo pomocí plynového a brzdového pedálu, pomocí kterých určuje aktuální absolutní velikost rychlosti vozidla v(t). Pomocí volantu určuje aktuální poloměr oblouku, po kterém se vozidlo právě pohybuje, pomocí volantu tedy ovládá aktuální křivost trajektorie κ(t). Předpokládejme tedy, že známe matematický popis aktivity řidiče, tedy známe matematickou formulaci časové závislosti funkcí v(t) a κ(t) a můžeme vytvořit diferenciální rovnice, ve kterých se využije ˙ Y˙ , X ¨ a Y¨ , které jsou uvedeny v rovnicích (8.3) závislost těchto funkcí na X, Y, X, a (8.13).
9.1
Odvození systému pohybových rovnic
Protože všechny důležité proměnné byly uloženy na disk do souboru Kinem 1.sav je možné použít nový worksheet programu Maple a tyto proměnné načíst.
59
> restart; with(plots): read "Kinem_1.sav": > e1 := k=kappa(t); > e2 := A_V^2 = v(t)^2;
¨ Y˙ − X ¨ Y˙ Y e1 := 3/2 = κ (t) Y˙ 2 + Y˙ 2
(9.1)
e2 := X˙ 2 + Y˙ 2 = v(t)2 .
(9.2)
Problém, že rovnice (9.2) neobsahuje druhé derivace proměnných podle času je snadno řešitelný. Celou rovnici zderivujeme podle času a tato nová rovnice (9.3) spolu s rovnicí (9.1) vytvoří systém dvou diferenciálních rovnic, ze kterého již bude ¨ a Y¨ vyjádřit. možné proměnné X > e2t:=diff(e2,t);
¨ + Y˙ Y ¨ = v (t) d v (t) . e2t := X˙ X dt
(9.3)
> sol:=solve(e1,e2t,diff(X(t),t,t),diff(Y(t),t,t)); 3/2 d 2 2 ˙ ˙ ˙ ˙ Y κ (t) X + Y − v (t) dt v (t) X ¨ =− , X 2 2 ˙ ˙ X + Y . sol := 3/2 d ˙ ˙ + κ (t) X˙ 2 + Y˙ 2 X v (t) Y v (t) ¨ dt Y = ˙2 ˙2
(9.4)
X +Y
Systém (9.4) je možné před řešením ještě zjednodušit. Ke zjednodušení je možné použít rovnici (9.2). > sol:=simplify(subs(e2,sol),symbolic); ˙ κ (t) (v (t))2 + d v (t) X˙ − Y dt ¨ X = v (t) sol := d ˙ + κ (t) (v (t))2 X˙ v (t) Y dt Y ¨ =
v (t)
.
(9.5)
Takovýto systém obyčejných diferenciálních rovnic druhého řádu je z hlediska Newtonových pohybových zákonů možné nazvat systémem pohybových rovnic, protože po vynásobení obou rovnic hmotností tělesa M , obě rovnice svým tvarem odpovídají struktuře Newtonova zákona síly. Na levé straně rovnic jsou složky vektoru 60
¨ M Y¨ ] a na pravé straně rovnic jsou funkční závislosti síly ve tvaru F~ (t) = [M X, vektoru síly na absolutní velikosti rychlosti pohybu v(t), křivosti trajektorie κ(t) ˙ Y˙ ], které jsou násobeny a vektoru okamžité rychlosti pohybu tělesa, V~ (t) = [X, hmotností tělesa M .
9.2
Analytické řešení systému pohybových rovnic
Pro jednoznačné řešení pohybových rovnic (9.5) je nutné definovat počáteční podmínky. Beze ztráty obecnosti lze předpokládat, že těleso je v čase t = 0 na souřadnicích X(0) = x0 a Y (0) = y0 a dále, že jeho vektor rychlosti je V (0) = [V x0, V y0]. Pro řešení systému (9.5) použijeme příkaz programu Maple dsolve. > Ini:=D(X)(0)=Vx0,D(Y)(0)=Vy0,X(0)=x0,Y(0)=y0: > Dsol1:=dsolve(sol[],Ini[],X(t),Y(t));
Dsol1 :=
Z t v( z1) W e−iF ( z1) − i W eiF ( X(t) = 2 v(0) 0 Z t v( z1) W e−iF ( z1) + i W eiF (
Y (t) =
2 v(0)
0
d z1 + x0 z1) z1)
d z1 + y0
W = V x0 − i V y0 kde F ( z1) =
Z
z1
κ ( z1 ) v ( z1 ) d z1
0
.
(9.6)
Maple nalezl řešení v komplexním oboru. Ze struktury řešení je ale zřejmé, že konverze (9.6) do reálného oboru je možná. > Dsol1:=evalc(Dsol1); Z t Vx0 cos(F ( z1 ))−Vy0 sin(F ( z1 )) X(t) = v ( z1 ) z1 +x0 d v (0) 0 Z t
Dsol1 := Y (t) =
v ( z1 )
0
Vy0 cos(F ( z1 ))+Vx0 sin(F ( z1 )) . (9.7) d z1 +y0 v (0) Z z1
kde
F ( z1) =
κ ( z1 ) v ( z1 ) d z1
0
Řešení (9.7) je možné dále zjednodušovat, nyní za použití substitucí z1 = √ τ a v(0) = V x02 + V y02 . V dalším kroku je možné použít substituci V x0 = V 0 cos(φ0) a V y0 = V 0 sin(φ0), kde V 0 je počáteční rychlost a φ0 udává její směr.
61
> su1:=[v(0)=sqrt(Vx0^2+Vy0^2),_z1=tau]: > Dsol1:=simplify(subs(su1,Dsol1)): > su2:=[Vx0=V0*cos(phi0),Vy0=V0*sin(phi0)]; > Dsol1:=simplify(subs(su2,Dsol1),symbolic);
Dsol1 :=
Z t X(t) = v (τ ) (cos(φ0 ) cos(F (τ ))−sin(φ0 ) sin(F (τ ))) dτ +x0 0 Z t Y (t) = v (τ ) (sin(φ0 ) cos(F (τ ))+cos(φ0 ) sin(F (τ ))) dτ +y0 0
kde F (τ ) =
Z
. (9.8)
τ
κ (τ ) v (τ ) dτ
0
Na závěr je možné využít vztahy pro siny a cosiny součtu dvou úhlů a převést řešení (9.8) do jednoduchého finálního tvaru. > Dsol1:=combine(Dsol1);
Dsol1 :=
Z τ Z t κ (τ ) v (τ ) dτ dτ + x0 , v (τ ) cos φ0 + X(t) = Y (t) =
9.2.1
0
0
t
Z
v (τ ) sin φ0 +
Z
τ
κ (τ ) v (τ ) dτ
0
0
(9.9)
dτ + y0
Verifikace řešení
Kontrolu správnosti řešení provedeme tak, že výsledek (9.9) dosadíme do výchozích rovnic (9.1) a (9.2). Po úpravě musí být obě rovnice splněny. > e1s:=subs(Dsol1,e1): > e2s:=subs(Dsol1,e2): > e1s:=value(e1s); > e2s:=value(e2s);
e1s := +
(v (t))3 (cos (F (t)))2 κ (t) (v (t))2 (cos (F (t)))2 + (v (t))2 (sin (F (t)))2 (v (t))3 (sin (F (t)))2 κ (t)
(v (t))2 (cos (F (t)))2 + (v (t))2 (sin (F (t)))2
3/2 +
3/2 = κ (t)
e2s := (v (t))2 (cos (F (t)))2 + (v (t))2 (sin (F (t)))2 = v (t)2 kde F (t) = φ0 +
Z
t
κ (τ ) v (τ ) dτ .
0
62
> e1s:=simplify(e1s,symbolic); > e2s:=simplify(e2s);
v (t)2 = v (t)2 .
κ(t) = κ(t)
Z výsledku je zřejmé, že řešení (9.9) splňuje vstupní diferenciální rovnice (9.1) a (9.1).
Verifikace řešení pro zvláštní případy Nyní je možné zkusit, zda řešení (9.9) umožňuje nalézt explicitní analytické závislosti polohového vektoru na čase pro speciální případy pohybu. Přímočarý pohyb: V případě přímočarého pohybu platí κ(t) ≡ 0. Řešení (9.9) v tomto případě musí nabýt tvaru, který odpovídá obecnému přímočarému pohybu, tedy trajektorií pohybu musí být přímka. > Fsu00:=kappa=unapply(0,t); > P00:=eval(subs(Dsol1,Fsu00,[X(t),Y(t)])); > P00:=simplify(value(P00))
F su00 := (τ 7→ 0) Z
P 00 :=
t
v (τ ) cos φ0 + 0
Z
τ
0dτ
dτ + x0 ,
P 00 := cos(φ0 )
t
v (τ ) sin φ0 +
Z
t
v (τ ) dτ + x0 , sin(φ0 )
0
Z
τ
0 dτ dτ + y0
.
0
0
0
Z
Z
t
v (τ ) dτ + y0
0
Nyní je možné z polohového vektoru vytvořit popis parametrické křivky a vyloučením parametru t získat rovnici trajektorie. > ex:=x=P00[1]; ey:=y=P00[2]; > exy:=convert(lhs(ey-y0)/lhs(ex-x0)=rhs(ey-y0)/rhs(ex-x0),tan); > exy:=exy*(x-x0)+y0;
63
t
Z
ex := x = cos(phi0 )
v (τ ) dτ + x0
0
ey := y = sin(phi0 )
Z
t
v (τ ) dτ + y0
0
exy :=
y − y0 = tan(φ0 ) x − x0
exy := y = (x − x0 ) tan(φ0 ) + y0 .
(9.10)
Poslední rovnice, (9.10), je rovnicí přímky, která prochází bodem o souřadnicích [x0, y0] a s osou x svírá úhel φ0. Pohyb po kružnici: V případě pohybu po kružnici jde o pohyb po trajektorii s konstantní křivostí, která je rovna převrácené hodnotě poloměru kružnice, tedy κ(t) = R−1 . Funkci κ dosadíme do řešení uložené v proměnné Dsol1, viz (9.9) a z výsledku vyjmeme oba integrály, které bude nutné vyřešit. Protože oba integrály si jsou velmi podobné, bude je vhodné řešit společně. > Fsu01:=kappa=unapply(1/R,t); > Dsol01:=eval(subs(Fsu01,Dsol1)); > IXY_1:=[select(has,selectfun(Dsol01,Int),[sin,cos])[]]; ! Z τ Z t v (τ ) v (τ ) cos φ0 + dτ dτ + x0 , X (t) = R 0 0 ! Dsol01 := Z t Z τ v (τ ) v (τ ) sin φ0 + dτ dτ + y0 Y (t) = 0
IXY 1 :=
"Z
t
v(τ ) cos φ0 +
0
Z 0
0
τ
R
!
(9.11)
!
#
Z t Z τ v (τ ) v (τ ) dτ dτ , v(τ ) sin φ0 + dτ dτ . (9.12) R R 0 0
Oba určité integrály bude výrazně jednodušší řešit jako integrály neurčité a integrační meze dosadit až do výsledné primitivní funkce, protože použití příkazu value(IXY 1) assuming v(tau)>0, R>0, tau>=0, phi0>0; nevede k výsledku. > IXY_2:=subs((tau=0..tau)=tau,(tau=0..t)=tau,IXY_1); > IXY_3:=value(IXY_2);
IXY 2 :=
"Z
v (τ ) cos φ0 +
Z
!
!
Z Z v (τ ) v (τ ) dτ dτ , v (τ ) sin φ0 + dτ dτ R R
64
#
"
IXY 3 := R sin φ0 +
Z
!
!
#
Z v (τ ) v (τ ) dτ , − cos φ0 + dτ R . R R
Je zřejmé, že oba integrály mají jednoduché analytické řešení. Pro jeho převod na určité integrály je ho však nutné převést na určitý společný integrál v obou částech výsledku, takže řešení pro určité integrály, viz (9.12) přejde do tvaru > isu:=selectfun(IXY_3,int)[]=subsop(2=(tau=0..t), selectfun(IXY_3,int)[]); > IXY_4:=subs(isu,IXY_3)-subs(isu,t=0,IXY_3);
isu := IXY 4 :=
Z
Z t v (τ ) v (τ ) dτ = dτ R R 0 !
tv
!
Z 0 (τ ) v (τ ) R sin φ0 + dτ − R sin φ0 + dτ R R 0 0 ! ! Z 0 Z t v (τ ) v (τ ) dτ R + cos φ0 + dτ R − cos φ0 + R R 0 0 Z
.
Druhou část posledních integrálů lze zjednodušit, takže výsledné řešení integrálů (9.12) je > ISU:=zip((u,v)->u=v,IXY_1,value(IXY_4)); Z ! ! Z τ Z t t v (τ ) v (τ ) v (τ ) cos φ0 + dτ dτ = −R sin(φ0 )+R sin φ0 + dτ 0 R R! 0 0 ! ISU := Z t Z τ Z t v (τ ) v (τ )
v (τ ) sin φ0 +
0
0
R
dτ dτ = cos(φ0 ) R−cos φ0 +
0
R
dτ R
.
Nyní je možné provést zpětnou substituci do proměnné Dsol01, viz (9.11). > Dsol02:=simplify(subs(ISU,Dsol01)); Z t φ0 R + 0 v (τ ) dτ + x0 , X (t) = −R sin (φ0 ) + R sin R Z t Dsol02 := φ0 R + v (τ ) dτ 0 R + y0 Y (t) = cos(φ0 ) R − cos R
Výsledek je vlastně parametrickým popisem trajektorie. Vyloučením parametru t z obou rovnic získáme rovnici trajektorie. 65
> ex:=x=subs(Dsol02,X(t)); > ey:=y=subs(Dsol02,Y(t)); > ex:=ex-remove(has,rhs(ex),int); > ey:=ey-remove(has,rhs(ey),int); > exy:=lhs(ex)^2+lhs(ey)^2=simplify(rhs(ex)^2+rhs(ey)^2);
φ0 R +
ex := x = −R sin (φ0 ) + R sin
Z
t
0
v (τ ) dτ
+ x0
R
φ0 R +
ey := y = cos(φ0 ) R − cos
Z
t
0
v (τ ) dτ
R + y0
R
φ0 R +
0
ex := x + R sin (φ0 ) − x0 = R sin
φ0 R +
ey := y − cos (φ0 ) R − y0 = − cos
t
Z
R Z
t
0
v (τ ) dτ
v (τ ) dτ
R
R
exy := (x + R sin(φ0 ) − x0 )2 + (y − cos(φ0 ) R − y0 )2 = R2 Na závěr můžeme konstatovat, že v tomto případě se těleso pohybuje po kružnici o poloměru R, která má střed na souřadnicích [x0 − R sin(φ0), y0 + R cos(φ0)].
9.3
Řešení pohybových rovnic pro pravoúhlou brzděnou zatáčku
Pohybové rovnice (9.5) je možné řešit mnoha dalšími způsoby. V této části si uvedeme nejčastěji užívané postupy. Pro jiná, než analytická řešení je nutné definovat vstupní funkce v(t) a κ(t) a odpovídající počáteční podmínky. Předpokládejme, že rychlost pohybu tělesa rovnoměrně klesá z hodnoty V 0 = 15 m s−1 se zpomalením a = 2 m s−2 , a že křivost trajektorie na čase závisí podle vztahu κ(t) = ω=
π 8
rad s−2 a nejmenší poloměr zatáčky ρ = 20 m.
> Fsu:=kappa=unapply(sin(omega*t)/rho,t),v=unapply(V0-a*t,t); > Nsu:=omega=Pi/8,rho=20,V0=15,a=2,x0=0,y0=0,phi0=0:
66
sin(ω t) , ρ
kde
N su := ω =
π , ρ = 20, V 0 = 15, a = 2, x0 = 0, y0 = 0, φ0 = 0 8
(9.13)
#
"
sin (ω t) , v = t 7→ V0 − a t F su := κ = t 7→ ρ
9.3.1
(9.14)
Analytické řešení
Substituce funkcí v(t) a κ(t) dosadíme do analytického řešení Dsol1, (9.9). > DsolA:=value(eval(subs(Fsu,Dsol1)));
DsolA :=
X (t) = Y (t) =
t
Z
Z
(V0 − aτ ) cos (F (τ )) dτ + x0 ,
0 t
− (V0 − aτ ) sin (F (τ )) dτ + y0
0
kde ω V0 − V0 cos(ω τ ) ω − a sin(ω τ ) + aω τ cos(ω τ ) F (τ ) = −φ0 − 2
ρω
.
Průjezd zatáčkou bude ukončen, když rychlost v ose x bude nulová. Vypočteme tedy složku rychlosti v ose x a určíme čas, T F A, ukončení průjezdu zatáčky. > VSA:=eval(subs(DsolA,V));
V SA := [(V0 − at) cos (F (t)) , − (V0 − at) sin (F (t))] kde ω V0 − V0 cos(ω t) ω − a sin(ω t) + aω t cos(ω t) F (t) = −φ0 − . ρ ω2 Rychlost v ose x bude rovna nule, když nastane cos(F (t)) = 0. Řešení pro V 0 − a t = 0 nemá význam použít, protože odpovídá okamžiku zastavení, tedy okamžiku, který by mohl nastat ještě před ukončením průjezdu zatáčkou. Proto je důležitá volba správných numerických hodnot. Musíme tedy nalézt řešení > ev1:=op(2,VSA[1])=0;
−ω V0 + V0 cos(ω t) ω + a sin(ω t) − aω t cos(ω t) ev1 := cos −φ0 + ρ ω2
67
!
=0.
Tato rovnice je pro t transcendentní a nemá proto algebraické řešení. Musíme jej proto nalézt numericky. Do rovnice dosadíme číselné hodnoty a nakreslíme graf závislosti její levé strany na čase t, který použijeme pro odhad přibližného okamžiku ukončení zatáčky. > ev1s:=subs(Nsu,ev1); > plot(lhs(ev1s),t=0..8,thickness=2,labels=["t [s]","cos(f(t))"]);
15 πt πt 15 πt 1 16 − 8 π + 8 cos 8 π + 2 sin 8 − 4 π t cos 8 ev1s := cos 5 π2
= 0 (9.15)
1 cos(f(t)) 0.8
0.6
0.4
0.2 t [s] 0
1
2
3
4
5
6
7
8
-0.2
Obrázek 9.1: Přibližné určení V x(t) = 0
> TFA:=fsolve(ev1s,t=5);
T F A := 5.072520449 .
(9.16)
Nyní časový interval < 0, T F A > rozdělíme na 400 časových kroků, ve kterých postupně vypočteme polohu – XYA, vektor rychlosti – VA a vektor zrychlení – AA. 68
Tyto proměnné později použijeme pro grafické srovnání analytického řešení s řešením pohybových rovnic (9.5) pomocí jiných metod. > Nu:=400: > TF:=TFA/Nu*[$0..Nu]: > P0s:=evalf(subs(DsolA,Nsu,P0)): > XYA:=[seq(P0s,t=TF)]: > VSAs:=evalf(subs(Nsu,VsA)): > VA:=[seq(VSAs,t=TF)]: > AAS:=evalf(eval(subs(DsolA,Nsu,A))): > AA:=[seq(AAS,t=TF)]:
9.3.2
Řešení Eulerovou metodou
Metoda je založena na tom, že je známa závislost vektoru zrychleni na čase a na ~ ¨ X, ˙ Y˙ ), Y¨ (t, X, ˙ Y˙ )], dále vektoru rychlosti, A(t) = [Ax(t, V~ (t)), Ay(t, V~ (t)] ≡ [X(t, ˙ je znám vektor rychlosti v čase t = 0, V~ (0) = [V x(0), V y(0)] ≡ [X(0), Y˙ (0)] a počáteční polohový vektor P~ (0) = [X(0), Y (0)]. Toto zadání je totožné se zadáním počátečních podmínek, které jsou uloženy v proměnné Ini. Zvolí se časový krok ∆t a vypočte se nový polohový vektor P~ (∆t) a vektor rychlosti V~ (∆t) pro čas t = ∆t podle vztahů 2
~ (∆t) , P~ (∆t) = P~ (0) + V~ (0) ∆t + A(0) 2
~ ∆t . V~ (∆t) = V~ (0) + A(0)
Z výše uvedených vztahů lze odvodit, že pro ntý časový krok bude platit 2
(∆t) ~ P~ (n∆t) = P~ ((n − 1)∆t) + V~ ((n − 1)∆t) ∆t + A((n − 1)∆t) 2 ~ ~ ~ V (n∆t) = V ((n − 1)∆t) + A((n − 1)∆t) ∆t .
Pro řešení pohybových rovnic Eulerovou metodou použijeme jako vstupy počáteční podmínky a systém pohybových rovnic (9.5), do kterých je nutné dosadit zvolené funkce, uložené v proměnné Fsu a číselné hodnoty, které jsou uloženy v proměnné Nsu. Pro zkrácení výpisu programu Maple je stále používána symbolika uvedená v (8.1). > Ini:=X(0)=0,Y(0)=0,D(X)(0)=V0,D(Y)(0)=0: > Inis:=subs(Nsu,Ini); > sols:=eval(subs(Fsu,Nsu,sol));
69
Inis := {X (0) = 0, Y (0) = 0, D (X) (0) = 15, D (Y ) (0) = 0}
sols :=
πt 1 (15 − 2 t)2 − 2 Xt − Yt sin 20 8 Xtt =
15 − 2 t 1 πt −2 Yt + sin (15 − 2 t)2 Xt 20 8 Ytt = 15 − 2 t
(9.17)
(9.18)
Procedura EULER programu Maple , která provádí řešení, provede výpočet pro stejnou velikost časového kroku, jako byla použita při analytickém řešení. Procedura ukončí výpočet v okamžiku, kdy rychlost v ose x bude nulová. Výstupem z procedury je seznam, ve kterém jsou za sebou uloženy ve tvaru uspořádaných ntic časové okamžiky a vektory polohy, rychlosti a zrychlení. Proměnné, které jsou použity uvnitř procedury jsou definovány jako lokální, to znamená, že mají smysl pouze uvnitř procedury EULER a v dalších výpočtech prováděných později se nemohou projevit. EULER:=proc(sols,Inis,DT) local xtt,ytt,fa,tau,p,v,a,tt; xtt:=subs(sols,diff(X(t),t)=xt,diff(Y(t),t)=yt,diff(X(t),t,t)); ytt:=subs(sols,diff(X(t),t)=xt,diff(Y(t),t)=yt,diff(Y(t),t,t)); fa:=unapply(evalf([xtt,ytt]),t,xt,yt); v:=[[subs(Inis,D(X)(0)),subs(Inis,D(Y)(0))]]; p:=[[subs(Inis,X(0)),subs(Inis,Y(0))]]; tau:=0: tt:=[tau]; a:=[fa(tau,v[-1][])]; while v[-1][1]>0 do; tau:=tau+DT; p:=[p[],p[-1]+v[-1]*DT+a[-1]*DT^2/2]; v:=[v[],v[-1]+a[-1]*DT]; a:=[a[],fa(tau,v[-1][])]; tt:=[tt[],tau]; end do: [tt,p,v,a]; end proc:
70
Nyní můžeme spočítat polohu hmotného bodu pro časové intervaly shodné s analytickým řešením. Po výpočtu je možné vykreslit trajektorii hmotného bodu vypočtenou analytickým řešením a Eulerovou metodou. Červenou barvou vykreslíme analytické řešení – XYA a modrou barvou řešení Eulerovou metodou – XYE, viz obrázek (9.2). > XYE:=EULER(sols,Inis,TFA/(Nu+1))[2]: > display(plot(XYA,thickness=7,color=red), plot(XYE,thickness=2,color=blue),labels=["x [m]","y [m]"]);
y [m] 20
15
10 Analyticke
5
Euler
x [m] 0
5
10
15
20
25
30
35
Obrázek 9.2: Trajektorie průjezdu pravoúhlou zatáčkou Je zřejmé, že v rámci přesnosti vykreslení obrázku jsou obě trajektorie prakticky totožné. Případné rozdíly jsou menší než je tloušťka použitých čar. Proto vykreslíme obě trajektorie pro posledních 50 časových kroků, viz obrázek (9.3). > plot(XYA[-50..-1],XYE[-50..-1],thickness=[4,2], color=[red,blue],labels=["x [m]","y [m]"]);
71
23
y [m]
22.5
22
Analyticke
21.5
Euler 21
20.5
20 x [m] 37.9
37.95
38
38.05
38.1
38.15
Obrázek 9.3: Konec trajektorie průjezdu pravoúhlou zatáčkou Z tohoto obrázku je již zcela jasně patrné, že mezi analytickým a Eulerovým řešením došlo k rozdílu, který pro koncové body průjezdu zatáčkou vypočtené z analytického výsledku a Eulerovou metodou činí několik centimetrů. Proto se pokusíme o zpřesnění Eulerovy metody tak, že zkrátíme časový krok na polovinu, čtvrtinu, atd. původní hodnoty. Eulerova metoda tak vypočte trajektorii v dvoj, čtyř, atd. násobném počtu časových kroků. Bude pak možné pro časové kroky, které odpovídají časovým krokům analytického řešení nakreslit graf rozdílu polohy mezi analytickým řešením a řešením Eulerovou metodou. Křivky, udávající vektor posunutí z bodu na trajektorii počítané analyticky do bodu, který odpovídá stejnému časovému okamžiku, ale trajektorie počítané Eulerovou metodou od sebe odlišíme barevně, podle celkového počtu iteračních kroků, viz obrázek (9.4). Dále nakreslíme graf, zobrazující závislost relativní chybu času ukončení průjezdu zatáčkou na počtu iteračních kroků, viz obrázek (9.5).
72
> tn:=[]:CLR:=[black,orange,yellow,green,blue,red]: > for n from 0 to 5 do; XYE:=EULER(sols,Inis,TFA/(2^n*(Nu+1))): xye:=[seq(‘if‘(i-1 mod 2^n
= 0,XYE[2][i],NULL),
i=1..nops(XYE[2]))]: GR[n+1]:=plot([zip((u,v)->100*(u-v),XYA,xye)], color=CLR[n+1],thickness=2): tn:=[tn[],XYE[1][-1]]: print(’n’=n,’t’=XYE[1][-1]): end do:
n = 0, t = 5.059870792 n = 1, t = 5.066195317 n = 2, t = 5.069357721 n = 3, t = 5.070940218 n = 4, t = 5.071730823 n = 5, t = 5.072120974
> display(seq(GR[i+1],i=0..5),labels=["x [cm]","y [cm]"]); > plot([seq([2^i*(Nu+1),100*(TFA-tn[i+1])/TFA],i=0..5)], labels=["Pocet iteracnich kroku","Relativni chyba [%]"], labeldirections=[horizontal,vertical],thickness=2);
Z obrázku (9.4) je zřejmé, že s rostoucím počtem iteračních kroků – klesajícím časovým krokem rozdíl polohy určené analytickým řešením a Eulerovou metodou klesá. Nicméně i pro velký počet iteračních kroků, neklesá konečná odchylka pod zanedbatelnou mez, i když její velikost je pouze několik centimetrů. Snížení odchylky je však vykoupeno stoupající výpočetní náročností – doba trvání výpočtu se neúměrně zvyšuje. Z obrázku (9.5) je patrné, že s klesající délkou časového kroku – s nárustem počtu iteračních kroků se čas ukončení zatáčky blíží k času určenému analytickým řešením. Nicméně na relativní chybu pod hranici 0.05% bylo zapotřebí provést 12800 73
8
N=800
N=400
6 N=1600
y [cm]
N=3200 N=6400 N=12800
4
2
–2
–1
0
x [cm] 1
2
3
4
5
Obrázek 9.4: Nepřesnost polohy v závislosti na počtu iteračních kroků iteračních kroků, což klade velmi vysoké nároky na spotřebu počítačového času. Eulerova metoda je proto pouze částečně vyhovující.
9.3.3
Řešení řadou
Program Maple je schopen řešit systém diferenciálních rovnic s okrajovými podmínkami, které jsou uloženy v proměnných sols, viz (9.18) a inis, viz (9.17) na straně 70 pomocí mocninných řad. V tomto případě je nutné použít příkaz Maple dsolve s parametrem series. Řád mocninné řady určuje systémová proměnná programu Maple Order. Jako řešení vrátí Maple mocninné řady pro X(t) a Y (t), které obsahují zbytek po ntém členu. Tyto řady je nutné převést na polynom, se kterým je možné dále pracovat běžným způsobem. Provedeme proto řešení systému pohybových rovnic (9.18) s počátečními podmínkami (9.17) pomocí mocninných řad řádu 4, 6, 8, 10, 12 a 14. Graficky pak 74
0.25
0.2
Relativni chyba [%]
0.15
0.1
0.05
Pocet iteracnich kroku 4000 6000 8000
2000
10000
12000
Obrázek 9.5: Závislost relativní chyby času ukončení zatáčky na počtu iteračních kroků znázorníme průběh trajektorie tělesa pro různé řády výsledných mocninných řad. Trajektorie mezi sebou odlišíme barevně, trajektorii, která odpovídá analytickému řešení zvýrazníme silnější čarou, viz obrázek (9.6). Pro názornost zde uvedeme výsledek řešení pro mocninnou řadu šestého řádu. Uvedené řešení je již převedeno na odpovídající polynom, který z mocninné řady vznikne tak, že se odstraní zbytek po šestém členu O(t6 ). Stupeň polynomu je tak o jedna nižší než je řád mocninné řady, která byla použita pro řešení. > for n from 1 to 6 do; Order:=(n+1)*2; Psol:=dsolve(sols[],Inis[],X(t),Y(t),series); XYP:=subs(convert(Psol,polynom),[X(t),Y(t)]); GR[n]:=plot([XYP[],t=0..TFA],thickness=2,color=CLR[n]); end do:
P 5 = 15 t − t2 −
27 2 5 15 3 5 1 3 π t, πt − π t4 + π− π 3 t5 8192 64 128 600 16384
75
> display(plot(XYA,color=red,thickness=4),seq(GR[i],i=1..6), view=[-10..40,0..30],labels=["x [m]","y [m]"]); 30
y [m]
P11 P3 Analyticke
25
20 P5 P13
15 P9
10 P7 5
–10
0
x [m] 10
20
30
40
Obrázek 9.6: Trajektorie pro výsledky řešené mocninnými řadami Z obrázku (9.6) je zcela zřejmé, že mocninné řady jsou použitelné pouze pro malé časy od začátku pohybu, tzn. jsou schopny aproximovat přesnou trajektorii pouze v okolí výchozího bodu pohybu. Pro větší vzdálenosti od výchozího bodu, tedy pro delší časy trvání pohybu jsou mocninné řady zcela nevhodné.
9.3.4
Numerické řešení metodou Runge-Kutta
Numerické řešení v prostředí programu Maple je možné provést pomocí mnoha metod z nichž je nejznámější a také nejčastěji používaná metoda Runge-Kutta. Tato metoda se v Maple stala standardem pro numerické řešení obyčejných diferenciálních rovnic, takže její použití v příkazu dsolve spolu s parametrem numeric není nutné dále upřesňovat pomocí dalších parametrů. Proto, pokud se při použití 76
programu Maple hovoří o numerickém řešení bez dalšího vysvětlení, jde o řešení metodou Runge-Kutta. Použití této metody je velmi podobné řešení pomocí mocninných řad, pouze se v příkazu dsolve zvolí parametr numeric. Program Maple pak vytvoří numerickou proceduru, která pro zadanou hodnotu času t vrátí číselné hodnoty souřadnic X a Y a také jejich prvních derivací X˙ a Y˙ . Vzhledem k tomu, že systém diferenciálních rovnic i odpovídajících počátečních podmínek je již připraven v proměnných sols a Inis, viz (9.18) a (9.17) nic nebrání v řešení. Vytvořenou proceduru programu Maple nazveme Nsol. > Nsol:=dsolve(sols[],Inis[],X(t),Y(t),numeric);
N sol := proc(x rkf 45) . . . end proc .
Pokud chceme zjistit X a Y v čase t = 2, stačí spustit proceduru Nsol s argumentem 2. > Nsol(2);
d t = 2.0, X(t) = 25.4547052656722706, X(t) = 9.85176707295959630, dt . d Y (t) = 3.91969501333238845, Y (t) = 4.89312681958930362 dt
Vzhledem k tomu, že procedura vrací i numerické hodnoty derivací je možné ji použít k numerickému stanovení času ukončení průjezdu zatáčkou pomocí Newtonovy iterační metody. Průjezd zatáčkou skončí v okamžiku, kdy rychlost v ose x bude nulová. Předpokládejme tedy, že přibližná hodnota konečného času je ti . Procedura Nsol je schopna pro tento čas vrátit rychlost v ose x. K této rychlosti je ˙ X, ¨ takže jsme schopni možné spočítat opravu času dtn podle vztahu dtn = −X/ stanovit nový přibližný čas ti+1 = ti + dtn. Pro nový čas jsme opět schopni spočítat novou opravu a pokračovat tak dlouho, dokud absolutní hodnota opravy neklesne pod předem zvolenou mez. Předpokládejme tedy, že přibližný čas ukončení průjezdu zatáčkou je TN = 2 sekundy a na základě výše uvedeného postupu určeme skutečný čas s přesností na 10−6 sekundy. Iterační procedura bude v průběhu své činnosti vypisovat pořadí iteračního kroku a velikost opravy. 77
> TN:=2: dtn:=1: n:=0: > while abs(dtn) > 1e-6 do; dx:=subs(Nsol(TN),diff(X(t),t)); ddx:=evalf(subs(sols,Nsol(TN),diff(X(t),t,t))); dtn:=-dx/ddx; TN:=TN+dtn; n:=n+1; print(Krok=n,oprava=dtn); end do:
Krok = 1, oprava = 2.666812870 Krok = 2, oprava = 0.3261282512 Krok = 3, oprava = 0.07546913253 Krok = 4, oprava = 0.004097868114 Krok = 5, oprava = 0.00001186688949 Krok = 6, oprava = −0.1773096624 10−10 . Nyní můžeme vypsat konečný čas určený iterací a porovnat jej s časem, který odpovídá analytickému řešení, TFA, viz (9.16), na straně 68. > TFA, TN, 100*(TFA-TN)/TFA;
5.072520449, 5.072519989, .9068470095 10−5 .
Je zřejmé, že oba časy jsou prakticky shodné, jejich relativní rozdíl činí pouhých 10−5 %. Dá se proto očekávat, že i trajektorie odpovídající analytickému řešení a numerickému řešení budou velmi podobné. > display(plot(XYA,color=red,thickness=6), odeplot(Nsol,[X(t),Y(t)],0..TFA,color=blue,thickness=2), labels=["x [m]","y [m]"]);
Graf trajektorií je natolik podobný grafu, na kterém je porovnána trajektorie odpovídající analytickému řešení s trajektorií počítanou Eulerovou metodou, viz graf (9.2) na straně 71, že nemá smysl jej zde znovu zobrazovat. 78
Pokusme se proto vypočítat polohu tělesa pro stejné okamžiky, jako byla počítána při analytickém řešení a graficky zobrazit rozdíly poloh. Protože rozdíly poloh jsou velmi malé vynásobíme je 106 , to znamená, že na grafu (9.7) jsou souřadnice v mikrometrech. O tom, že jde skutečně o rozdíly poloh počítané různými metodami a nikoliv o chyby, které vznikly kumulací zaokrouhlovacích chyb je možné se přesvědčit tak, že obě polohy se vypočtou znovu se zvýšenou numerickou přesností, např. Digits:=24. Rozdíly poloh a tedy i graf (9.7) se nezmění, pouze jeho vykreslení spotřebuje více času. > XYN:=map(u->subs(Nsol(u),P0),TF): > plot(zip((u,v)->1e6*(u-v),XYA,XYN),thickness=2, labels=["Dx [um]","Dy [um]"]);
0.5 ∆x [µm]
–1.5
–1
–0.5 0
–0.5
–1
–1.5
–2
–2.5 ∆y [µm]
Obrázek 9.7: Rozdíl poloh numerického a analytického řešení Sledovat, jak se rozdíl poloh vyvíjí v čase umožňuje graf, který je prostorovou křivkou, zadanou vztahem [t, ∆x(t), ∆y(t)], viz graf na obrázku (9.8). Graf na ob79
rázku (9.9) zobrazuje, jak závisí vzdálenost mezi body udávající polohu podle analytického řešení a numerického řešení na čase. Oba grafy je možné sestrojit pomocí následujících příkazů. > spacecurve([seq([TF[i],(1e6*(XYA[i]-XYN[i]))[]],i=1..Nu+1)], color=red,thickness=2,axes=boxed,labels=["t [s]","DX [um]", "DY [um]"],axes=normal,orientation=[-60,70]); > plot([seq([TF[i],1e6*sqrt(add(u^2,u=XYA[i]-XYN[i]))],i=1..Nu)], thickness=2);
Z grafů 9.7, 9.8 a 9.9 je zřejmé, že poloha počítaná numericky se od polohy určené analyticky liší, a že tento rozdíl se s rostoucím časem zvyšuje. Nicméně rozdíl obou poloh je nepatrný a v praxi zcela neměřitelný. Proto je možné konstatovat, že výsledky výpočtu numerickou metodou jsou rovnocenné s výsledky analytickými. Výsledky vypočtené v této kapitole uložíme do souboru Kinem 2.sav > save Dsol1, Fsu, Nsu, TFA, "Kinem_2.sav";
80
0.5 ∆y [µm] 1
–0.5 –1
2
3
4
–0.5
–1.5 ∆x [µm]
5 t [s]
–1 –1.5 –2 –2.5
Obrázek 9.8: Rozdíl poloh numerického a analytického řešení v závislosti na čase
|XYA-XYN| [µm] 2.5
2
1.5
1
0.5
0
t [s] 1
2
3
4
5
Obrázek 9.9: Vzdálenost polohy určené analyticky a numericky v závislosti na čase
81
82
Kapitola 10 KŘIVOST TRAJEKTORIE PODROBNĚJI
10.1
Křivost trajektorie při ukončení zatáčky
Pokud si podrobněji prostudujeme trajektorii průjezdu pravoúhlou zatáčkou, který je na obrázku 9.2, na straně 71, může se zdát, že je zatáčka projeta korektním způsobem. Co ale na grafu není na první pohled zcela jasně patrné, je ta skutečnost, že zatáčka není ukončena. Hmotný bod se sice na konci zobrazené trajektorie pohybuje rovnoběžně s osou y, ale křivost jeho trajektorie v tomto okamžiku, který je uložen v proměnné T F A = 5.072520449, není nulová. V praxi to znamená, že pokud by pohyb pokračoval dále, trajektorie by se dále stáčela doleva. Pokud je zatáčka ukončena, musí být pokračování trajektorie přímka, to znamená, že v okamžiku ukončení zatáčky musí být křivost trajektorie v koncovém bodu zatáčky nulová. Křivost trajektorie na konci zatáčky můžeme vyčíslit pomocí Maple. Z důvodů zvýšení přehlednosti celé práce provedeme všechny výpočty v této kapitole v novém worksheetu programu Maple, který na závěr uložíme po jménem Kinem 3.mws. Nejprve program Maple spustíme a načteme potřebné proměnné z worksheetů Kinem 1.mws a Kinem 2.mws, uložené v souborech Kinem 1.sav a Kinem 2.sav.
83
> restart; > with(plots): > read "Kinem_1.sav": > read "Kinem_2.sav": > krivost=evalf(eval(subs(Fsu,Nsu,kappa(TFA)))); > polomer=1/%;
krivost = 0.04563040244 polomer = 21.91521325 .
Pokud požadujeme, aby křivost trajektorie na konci pravoúhlé zatáčky byla nulová nestačí vyřešit pouze rovnici (9.15), ale ještě je nutné stanovit správnou hodnotu proměnné ω z ve funkci Fsu, viz (9.14) na straně 67, která udává křivost trajektorie, tak aby ve stejný čas byly jak křivost trajektorie, tak rychlost ve směru osy y nulové. Z numerických substitucí Nsu, viz (9.3), je tedy nutné vyjmout předdefinovanou hodnotu ω = π8 , protože její správnou hodnotu stanovíme následujícím výpočtem. Musíme tedy vyřešit systém dvou rovnic > e1:=value(eval(subs(Dsol1,Fsu,[Nsu[2..-1]],V[1])))=0; > e2:=eval(subs(Fsu,[Nsu[2..-1]],kappa(t)))=0;
15 ω − 15 cos (ω t) ω − 2 sin (ω t) + 2 cos (ω t) ω t e1 := (15 − 2 t) cos 20 ω 2
e2 :=
!
=0
sin (ω t) =0. 20
Protože první rovnice je transcendentní, je nutné ji řešit numericky. V takovémto případě je nejjednodušší numericky řešit obě rovnice a přibližné řešení stanovit graficky, viz graf na obrázku 10.1. > G1:=implicitplot(e1,t=1..7,omega=0.1..Pi/2,color=red, thickness=2,grid=[60,60]):
84
> G2:=implicitplot(e2,t=1..7,omega=0.1..Pi/2,color=blue, thickness=2,grid=[40,40]): > display(G1,G2,labels=["t [s]","w [rad/s]"], labeldirections=[horizontal,vertical]);
Numerické řešení budeme hledat v okolí hodnot t = 5 a ω = 0.6. Výsledné hodnoty přiřadíme k proměnným Tf1 a omega1. > fsolve(e1,e2,t=5,omega=0.6); > Tf1,omega1:=subs(%,[t,omega])[]:
t = 4.872838415,
10.2
ω = 0.6447151303 .
Křivost trajektorie zadaná polynomem
Z geometrických parametrů motorového vozidla, ovlivňující poloměr otáčení, můžeme pro naše účely odvodit následující vztah
r=
d , sin(α)
kde
r = poloměr otáčení vozidla
d = rozvor náprav α = úhel natočení kol přední nápravy .
(10.1)
Proto by bylo vhodné vytvořit jednoduchý polynom, aby byl co nejpodobnější funkci sin a to na intervalu < 0, π >. Jako příklad takového polynomu je možné použít P2 =
4 t (π − t) . π2
(10.2)
Graf obou funkcí i jejich rozdílu je znázorněn na obrázku 10.2. Z obrázku je zřejmé, že průběh obou funkcí je hodně podobný. Funkce P2 by tak mohla být použita pro funkci popisující průběh křivosti trajektorie. Proto vytvoříme druhou substituci funkcí Fsu2 > Fsu2:=kappa=unapply(4*t*(Tf-t)/rho/Tf^2,t),v=unapply(V0-a*t,t);
F su2 := κ = t 7→ 4
t (Tf − t) , v = t 7→ V0 − at , ρ Tf 2 85
(10.3)
e2
e2
e2
1.4
1.2
ω [rad/s]
1
0.8 e1
0.6
0.4 t [s] 2
3
4
5
6
7
Obrázek 10.1: Přibližné určení t a ω 1
0.8 P2 sin 0.6
0.4
(P2-sin) .10
0.2
0
0.5
1
1.5
Obrázek 10.2: Porovnání funkcí sinus a P2
86
2
2.5
3
kde T f je čas ukončení pravoúhlé zatáčky a ρ je její minimální poloměr. Hodnotu T f určíme tak, aby v čase ukončení průjezdu pravoúhlou zatáčkou byla rychlost v ose x nulová. Přitom samotná konstrukce funkce P2 zajistí, že i křivost trajektorie v čase T f bude také nulová. Výhodou funkce P2 je, že čas ukončení zatáčky je možné určit analyticky. > e1:=value(eval(subs(Dsol1,Fsu2,V[1])))=0; > e1:=op(op(2,lhs(e1)))=Pi/2: > e1:=simplify(subs(t=Tf,e1)); > Tfs:=[solve(e1,Tf)];
(−V0 − aTf ) t3 V0 t2 at4 + 4/3 + 2 e1 := (V0 − at) cos φ0 + Tf ρ ρ Tf 2 ρ Tf 2
e1 :=
!
=0
3 φ0 ρ − aTf 2 + 2 V0 Tf π = 3ρ 2
q
q
2 V0 + 4 V0 2 +12 aφ0 ρ−6 aπ ρ 2 V0 − 4 V0 2 +12 aφ0 ρ−6 aπ ρ . T f s := , 2a 2a Analytické řešení nabízí dvě možnosti. Výběr správného řešení nám usnadní dosazení numerických hodnot, které jsou uloženy v proměnné Nsu. > Tff:=evalf(subs(Nsu,Tfs)); > TF2:=zip((u,v)->‘if‘(u=min(Tff),v,NULL),Tff,Tfs)[]; > Tf2:=evalf(subs(Nsu,TF2)):
T f f := [10.52094525, 4.479054752]
q
2 V0 − 4 V0 2 +12 aφ0 ρ−6 aπ ρ T F 2 := . 2a
87
(10.4)
10.3
Porovnání řešení pohybových rovnic pro obě funkce křivosti
Vytvoříme funkce κ1 a κ2 popisující křivost trajektorie pro obě dvě možnosti. První pro křivost zadanou pomocí funkce sinus, viz funkční substituce Fsu, druhou pro křivost zadanou polynomem 2. stupně, viz funkční substituce Fsu2. Pro obě dvě funkce také určíme časy TRm1 a TRm2, kdy jsou křivosti trajektorie maximální. V tomto okamžiku se pohybující těleso nachází v takzvaném vrcholu zatáčky – apexu. Jako první porovnáme průběhy křivosti obou trajektorií v čase, viz graf na obrázku 10.3. > kappa1:=unapply(eval(subs(Fsu,[Nsu[2..-1]], omega=omega1,kappa(t))),t); > TRm1:=fsolve(D(kappa1)(t)=0,t); > kappa2:=unapply(eval(subs(Fsu2,[Nsu[2..-1]],Tf=Tf2,kappa(t))),t); > TRm2:=fsolve(D(kappa2)(t)=0,t); > plot([[t,kappa1(t),t=0..Tf1],[t,kappa2(t),t=0..Tf2]], color=[red,blue],thickness=2,labels=["t [s]","k [1/m]"]);
κ1 := t 7→
sin(0.6447151303t) 20
κ2 := t 7→ 0.009969129856t(4.479054752 − t)
T Rm1 := 2.436419207
(10.5)
T Rm2 := 2.239527376 . (10.6)
Z grafu na obrázku 10.3 je zřejmé, že maximální křivosti obou trajektorií jsou shodné, ale průjezd pravoúhlou zatáčkou je pro křivost κ2 rychlejší. Zároveň je jasné, že křivosti obou trajektorií jsou v bodech vstupu a výstupu do zatáčky nulové. V dalším kroku vykreslíme trajektorie průjezdu zatáčkou. Vykreslení provedeme pro 400 časových okamžiků mezi počátkem pohybu a ukončení průjezdu zatáčkou. Graf trajektorií, viz obrázek 10.4 uložíme do proměnné G1, protože jej vykreslíme ještě jednou při vykreslování evolut a apexu obou trajektorií. Je také možné vykreslit průběh souřadnic x(t) a y(t) v čase, viz graf na obrázku 10.5. > Nu:=400: IT1:=Tf1/Nu*[$0..Nu]: > IT2:=Tf2/Nu*[$0..Nu]: > P1:=value(eval(subs(Dsol1,kappa(tau)=kappa1(tau),Fsu,Nsu,P0))): > P2:=value(eval(subs(Dsol1,kappa(tau)=kappa2(tau),Fsu,Nsu,P0)));
88
0.05 κ [m-1] 0.04
κ2
0.03
κ1
0.02
0.01
t [s] 0
1
2
3
4
Obrázek 10.3: Časové závislosti křivosti trajektorií pro κ1 a κ2
25 y [m]
20
15 κ2 10
κ1
5
0
5
10
15
Obrázek 10.4: Porovnání trajektorií pro κ1 a κ2
89
20
25
x [m] 30
> p1:=[seq(P1,t=IT1)]: > p2:=[seq(P2,t=IT2)]: > G1:=plot([p1,p2],color=[red,blue],thickness=2, labels=["x [m]","y [m]"]):
G1;
> plot([zip((u,v)->[u,v[1]],IT1,p1),zip((u,v)->[u,v[2]],IT1,p1), zip((u,v)->[u,v[1]],IT2,p2),zip((u,v)->[u,v[2]],IT2,p2)], thickness=2,color=[red,orange,blue,navy],labels=["t [s]", "x,y [m]"],labeldirections=[horizontal,vertical]);
Z grafu obou trajektorií, viz obrázek 10.4 je zřejmé, že trajektorie pro křivost zadanou funkcí κ2 je více uzavřená, což je v souladu s grafem na obrázku 10.3, ze kterého je patrné, že střední hodnota funkce κ2 je vyšší než střední hodnota funkce κ1. Průběhy rychlostí pro obě křivosti je možné vykreslit buď ve fázovém prostoru rychlostí, tedy průběhy jako parametrický graf V y(t) oproti V y(t), viz graf na obrázku 10.6 nebo jako časové závislosti V y(t), V y(t) a |V (t)|, viz obrázek 10.7. > V1:=diff(P1,t): V2:=diff(P2,t): > v1:=[seq(V1,t=IT1)]: v2:=[seq(V2,t=IT2)]: > plot([v1,v2],color=[red,blue],thickness=2, labels=["Vx [m/s]","Vy [m/s]"]); > plot([zip((u,v)->[u,v[1]],IT1,v1),zip((u,v)->[u,v[2]],IT1,v1), zip((u,v)->[u,sqrt(add(w^2,w=v))],IT1,v1), zip((u,v)->[u,v[1]],IT2,v2),zip((u,v)->[u,v[2]],IT2,v2), zip((u,v)->[u,sqrt(add(w^2,w=v))],IT2,v2)], thickness=[2,2,2,2,2,6],color=[red,orange,"Tomato", blue,navy,"SteelBlue"],labels=["t [s]", "Vx,Vy,|V| [m/s]"],labeldirections=[horizontal,vertical]);
Z obrázku 10.6 je velmi dobře patrné, že pohyb v případě křivosti zadané funkcí κ2 probíhá vyšší průměrnou rychlostí. Tuto skutečnost potvrzuje i graf na obrázku 10.7, na kterém je velmi dobře vidět, že pohyb po obou trajektoriích probíhá ze stejné počáteční rychlosti, se stejným zpomalením, ale pro křivost zadanou funkcí κ2 je dříve ukončen. Výjezd ze zatáčky popsané křivostí κ2 se uskuteční vyšší rychlostí. 90
κ1-x κ2-x
x,y [m]
30
25
20 κ2-y 15
κ1-y
10
5 t [s]
0
1
2
3
4
Obrázek 10.5: Časové závislosti x(t) a y(t) pro κ1 a κ2
Vy [m/s] 8 κ1 κ2 6
4
2
Vx [m/s] 0
2
4
6
8
10
Obrázek 10.6: Fázový prostor rychlostí pro křivosti κ1 a κ2
91
12
14
Podobným způsobem je možné zobrazit i průběhy zrychlení. Nejprve ve fázovém prostoru, tedy Ax(t) oproti Ay(t), viz obrázek 10.8, nebo jako závislosti Ax(t), Ay(t), normálového zrychlení An(t) a absolutní velikosti zrychlení |A(t)| na čase, viz obrázek 10.9. Z tohoto obrázku je patrné, že průjezd zatáčkou pro křivost zadanou polynomem, tedy κ2 viz (10.6), probíhá při vyšším celkovém zrychlení, a že maximum zrychlení nastává dříve než pro průjezd zatáčkou, který je popsán funkcí sinus, tedy κ1 viz (10.5). > A1:=diff(V1,t): A2:=diff(V2,t): > a1:=[seq(A1,t=IT1)]: a2:=[seq(A2,t=IT2)]: > plot([a1,a2],color=[red,blue],thickness=2, labels=["Ax [m/s2]","Ay [m/s2]"]); > plot([zip((u,v)->[u,v[1]],IT1,a1),zip((u,v)->[u,v[2]],IT1,a1), zip((u,v)->[u,sqrt(add(w^2,w=v))],IT1,a1), zip((u,v)->[u,v[1]],IT2,a2),zip((u,v)->[u,v[2]],IT2,a2), zip((u,v)->[u,sqrt(add(w^2,w=v))],IT2,a2)], thickness=2,color=[red,orange,gold,blue,navy,violet], labels=["t [s]","Ax,Ay,|A|, [m/s]"], labeldirections=[horizontal,vertical]);
10.4
Vliv zpomalení
Vzhledem k tomu, že funkce κ2, viz rovnice (10.6), umožňuje průjezd zatáčky vyšší průměrnou rychlostí, ale také proto, že pro křivost κ2 je možné analytické určení času ukončení průjezdu pravoúhlou zatáčkou, budeme dále studovat kinematiku pohybu pro křivost zatáčky zadané touto funkcí. Dále zohledníme vliv změny rychlosti v době průjezdu zatáčkou. Nejprve stanovíme maximální zpomalení, Amax , při kterém v čase T f 2 – (10.4) na straně 87, tedy v okamžiku ukončení zatáčky bude absolutní velikost rychlosti nulová. Znamená to, že těleso na konci zatáčky zastaví. Pokud by zpomalení mělo větší hodnotu, došlo by k zastavení ještě před ukončením zatáčky. Dále ještě vyjmeme proměnnou a z numerických substitucí Nsu.
92
12
10
Vx,Vy,|V| [m/s]
14
κ2-|V|
8
6 κ2-Vy 4
κ1-|V|
κ2-Vx
κ1-Vy κ1-Vx
2 t [s]
0
1
2
3
4
Obrázek 10.7: Závislost V x(t), V y(t) a |V (t)| pro křivosti κ1 a κ2
Ay [m s-2]
5 κ2
4
3 κ1 2
1 Ax [m s-2] –5
–4
–3
–2
–1
0 –1
–2
Obrázek 10.8: Fázový prostor zrychlení pro křivosti κ1 a κ2
93
4
Ax,Ay,|A|, [m s-2]
6
κ2-|A|
κ1-|A| κ2-Ay
2 κ1-Ay t [s] 0
1
2
3
4
–2 κ1-Ax –4 κ2-Ax
y [m]
κ1-evoluta
50
κ2-evoluta
Obrázek 10.9: Závislost Ax(t), Ay(t) a |A(t)| pro křivosti κ1 a κ2
40
30
20
κ2-Sapex
κ1-Sapex κ1-ρmin κ2-ρmin
10
κ2-apex κ2-trajektorie
–10
0
κ1-apex
κ1-trajektorie x [m]
10
20
30
Obrázek 10.10: Evoluty a apexy trajektorií pro křivosti κ1 a κ2
94
> nsu:=remove(has,[Nsu],[omega,a])[]: > e1:=subs(nsu,TF2=solve(subs(Fsu2,v(t)),t)); > Amax:=solve(e1,a);
e1 := −
−2 V 0 +
√
4 V 02 − 6 a π ρ V0 = 2a a
2 V 02 . Amax := 3πρ
(10.7)
Nyní je možné určit T F 2q, čas ukončení průjezdu pravoúhlé zatáčky popsané průběhem křivosti κ2 v závislosti na velikosti aktuálního zpomalení a, pro které bude platit a = Amax q s podmínkou 0 ≤ q ≤ 1. Dále odvodíme funkce popisující průběh rychlosti v závislosti na čase a zpomalení vq a křivost kq. > TF2q:=simplify(subs(nsu,a=Amax*q,TF2),symbolic); > vq:=unapply(eval(subs(Fsu2,a=Amax*q,v(t))),t,q); > kq:=unapply(simplify(eval(subs(Fsu2,Tf=TF2q,kappa(t))), symbolic),t,q);
T F 2q := −
3 −1 +
√
1−q πρ
2 V0 q
vq := (t, q) 7→ V0 −
2 V0 2 q t 3πρ
√ 8 t −3 π ρ + 3 π ρ 1 − q + 2 tV0 q V0 q kq := (t, q) 7→ − . 2 √ 9 ρ3 −1 + 1 − q π 2
Pro kreslení evolut trajektorií bude nutné znát T rq – čas průjezdu vrcholem zatáčky – apexem. > Trq:=subs(solve(diff(kq(t,q),t),t)); > trq:=evalf(subs(nsu,Trq));
T rq := −
3 −1 +
√
4 V0 q 95
1−q πρ
trq := −
3.141592654 −1.0 +
√
1.0 − 1.0 q
q
.
Studium tvaru trajektorií začneme tím, že do polohového vektoru P0 dosadíme za křivost funkci kq a za rychlost funkci vq. > PQ:=subs(Dsol1,v(tau)=vq(tau,q),kappa(tau)=kq(tau,q),P0); Z t
P Q :=
Z t 15 q τ 15 q τ V 0− V 0− cos(φ0+f (τ ))+x0, sin(φ0+f (τ ))+y0 2π 2π 0 0 kde √ Z τ 1 − q + q τ q −2 π + 2 π 15 q τ dτ . f (τ ) = − V0− τ 2 √ 2π 0 ρ −1 + 1 − q π 2
Vnitřní integrál v polohovém vektoru PQ lze vyjádřit > Pq:=value(PQ); Z t
Z t 15 q τ 15 q τ cos(−φ0−F (τ ))+x0, sin(φ0−F (τ ))+y0 V 0− 2π 2π 0 0 kde √ √ qτ 2 24 −1+ 1−q π 2 V0 + 8 V0 π+120 1− 1−q π q−45 q 2 τ τ F (τ ) = . 2 √ 3 24 π ρ −1 + 1 − q
P q :=
V 0−
Pro vykreslení jednotlivých kinematických veličin použijeme substituci numerických hodnot nsu. > Pq:=subs(nsu,evalf(value(PQ))): Vq:=map(u->diff(u,t),Pq): > Aq:=map(u->diff(u,t,t),Pq): tf2q:=evalf(subs(Nsu,TF2q)):
Protože kinematické veličiny budeme vykreslovat i pro mezní hodnotu q = 0, je nutné jejich hodnoty stanovit výpočtem odpovídajících limit. > tf20:=limit(tf2q,q=0);
tr0:=limit(trq,q=0);
> p0:=map(u->limit(u,q=0),Pq):
v0:=map(u->limit(u,q=0),Vq):
> a0:=map(u->limit(u,q=0),Aq):
tf 20 := 3.141592654
tr0 := 1.570796327
Pro nebrzděnou zatáčku je čas průjezdu 3.14 s a vrchol zatáčky je dosažen v polovičním čase 1.57 s. Pro nebrzděný průjezd dále vypočteme souřadnice bodu – xy0, 96
rychlost – vxy0 a zrychlení – axy0 a to pro časy, které jsou zadány vektorem IT0. Dále ještě určíme polohu vrcholu – apexu zatáčky – apx0, rychlost a zrychlení ve vrcholu zatáčky vpx0 a apx0 a také polohu středu křivosti trajektorie pro vrchol zatáčky - spx0. Tyto proměnné slouží jak pro informaci, tak pro pozdější detailní vykreslení trajektorií. > IT0:=tf20/Nu*[$0..Nu]:
xy0:=[seq(p0,t=IT0)]:
> vxy0:=[seq(v0,t=IT0)]:
axy0:=[seq(a0,t=IT0)]:
> apx0:=evalf(subs(t=tr0,p0));
vapx0:=evalf(subs(t=tr0,v0));
> aapx0:=evalf(subs(t=tr0,a0)); sxy0:=SXY(apx0[],vapx0[],aapx0[]);
apx0 := [21.89928923, 6.617435279] vapx0 := [10.60660172, 10.60660172] aapx0 := [−7.954951281, 7.954951283] sxy0 := [7.757153587, 20.75957092] .
Nyní je možné vypočítat všechny potřebné kinematické veličiny pro hodnoty zpomalení a = q Amax pro hodnoty q = [ 51 , 52 , 35 , 45 ,
21 22 23 24 , , , , 25 25 25 25
počteme i souřadnice apexu a odpovídající polohu středu křivosti. > Q:=[1/5*[$1..4][],1/25*[$21..25][]]: > n:=0: > for q in Q do; n:=n+1; ITQ[n]:=tf2q/Nu*[$0..Nu]; xy[n]:=[seq(Pq,t=ITQ[n])]: apx[n]:=subs(t=trq,Pq); vxy[n]:=[seq(Vq,t=ITQ[n])]: vapx:=subs(t=trq,Vq); axy[n]:=[seq(Aq,t=ITQ[n])]: aapx:=subs(t=trq,Aq); sxy[n]:=SXY(apx[n][],vapx[],aapx[]); print(’n’=n,’q’=q,apex=apx[n],hrot=sxy[n]); end do:
97
1]. Zároveň vy-
n = 1, q = 15 , apex = [22.448794, 6.9025591], hrot = [8.0764558, 20.810681] n = 2, q = 52 , apex = [23.145279, 7.2751939], hrot = [8.4841118, 20.878508] n = 3, q = 53 , apex = [24.091890, 7.8023854], hrot = [9.0437360, 20.976338] n = 4, q = 54 , apex = [25.574507, 8.6781926], hrot = [9.9341557, 21.143319] n = 5, q =
21 apex 25
n = 6, q =
22 , apex 25
= [26.531761, 9.2777875], hrot = [10.518879, 21.260591]
n = 7, q =
23 , apex 25
= [27.202327, 9.7145475], hrot = [10.933455, 21.347423]
n = 8, q =
24 , apex 25
= [28.166877, 10.368035], hrot = [11.537484, 21.479440]
= [26.007795, 8.9461760], hrot = [10.197820, 21.195449]
n = 9, q = 1, apex = [31.029128, 12.497790], hrot = [13.390703, 21.925724] . Vykreslení zahájíme znázorněním trajektorií a průběhu souřadnic v čase, přitom hodnoty odpovídající mezním hodnotám zrychlení a = 0 a a = Amax zvýrazníme. > G0:=display(plot([xy0,xy[n]],color=[orange,maroon], thickness=3), plot([seq(xy[i],i=1..n-1)],color=red), labels=["x [m]","y [m]"]):
G0;
> G1:=plot([seq(zip((u,v)->[u,v[1]],ITQ[i],xy[i]),i=1..n-1)], color=red): > G2:=plot([zip((u,v)->[u,v[1]],IT0,xy0),zip((u,v)->[u,v[1]], ITQ[n],xy[n])],color=[orange,maroon],thickness=3): > G3:=plot([seq(zip((u,v)->[u,v[2]],ITQ[i],xy[i]),i=1..n-1)], color=blue): > G4:=plot([zip((u,v)->[u,v[2]],IT0,xy0),zip((u,v)->[u,v[2]], ITQ[n],xy[n])],color=[navy,violet],thickness=3): > display(G1,G2,G3,G4,labels=["t [s]","x,y [m]"]);
Dále vykreslíme vektory rychlostí ve fázovém prostoru rychlostí a dále průběh souřadnic vektoru rychlostí v závislosti na čase. > display(plot([vxy0,vxy[n]],color=[orange,maroon],thickness=3), plot([seq(vxy[i],i=1..n-1)],color=red), labels=["Vx [m/s]","Vy [m/s]"]); > G1:=plot([seq(zip((u,v)->[u,v[1]],ITQ[i],vxy[i]),i=1..n-1)], color=red):
98
A=0
y [m] 25
20
15
10
Amax
5
x [m]
0
5
10
15
20
25
30
Obrázek 10.11: Trajektorie pro různé hodnoty zpomalení x,A=Amax
x,y [m] 30
x,A=0
25
y,A=Amax y,A=0
20
15
10
5
0
t [s] 1
2
3
4
Obrázek 10.12: Průběh souřadnic v závislosti na čase
99
5
6
> G2:=plot([zip((u,v)->[u,v[1]],IT0,vxy0),zip((u,v)->[u,v[1]], ITQ[n],vxy[n])],color=[orange,maroon],thickness=2): > G3:=plot([seq(zip((u,v)->[u,v[2]],ITQ[i],vxy[i]),i=1..n-1)], color=blue): > G4:=plot([zip((u,v)->[u,v[2]],IT0,vxy0),zip((u,v)->[u,v[2]], ITQ[n],vxy[n])],color=[navy,violet],thickness=2): > G5:=plot([seq(zip((u,v)->[u,sqrt(add(w^2,w=v))],ITQ[i],vxy[i]), i=1..n-1)],color=green): > G6:=plot([zip((u,v)->[u,sqrt(add(w^2,w=v))],IT0,vxy0), zip((u,v)>[u,sqrt(add(w^2,w=v))],ITQ[n],vxy[n])], color=["DarkGreen","DarkOliveGreen"],thickness=2): > display(G1,G2,G3,G4,G5,G6,labels=["t [s]","Vx,Vy,|V| [m/s]"], labeldirections=[horizontal,vertical]);
Stejným způsobem vykreslíme vektory zrychlení, nejprve ve fázovém prostoru zrychlení a později průběh souřadnic zrychlení v čase. > display(plot([axy0,axy[n]],color=[orange,maroon],thickness=3), plot([seq(axy[i],i=1..n-1)],color=red), labels=["Ax [m/s2]","Ay [m/s2]"]); > G1:=plot([seq(zip((u,v)->[u,v[1]],ITQ[i],axy[i]), i=1..n-1)],color=red): > G2:=plot([zip((u,v)->[u,v[1]],IT0,axy0),zip((u,v)->[u,v[1]], ITQ[n],axy[n])],color=[orange,maroon],thickness=3): > G3:=plot([seq(zip((u,v)->[u,v[2]],ITQ[i],axy[i]),i=1..n-1)], color=blue): > G4:=plot([zip((u,v)->[u,v[2]],IT0,axy0),zip((u,v)->[u,v[2]],ITQ[n], axy[n])],color=[navy,violet],thickness=3): > G5:=plot([seq(zip((u,v)->[u,sqrt(add(w^2,w=v))], ITQ[i],axy[i]),i=1..n-1)],color=green): > G6:=plot([zip((u,v)->[u,sqrt(add(w^2,w=v))],IT0,axy0), zip((u,v)->[u,sqrt(add(w^2,w=v))],ITQ[n],axy[n])], color=["DarkGreen","DarkOliveGreen"],thickness=3): > display(G1,G2,G3,G4,G5,G6,labels=["t [s]","Ax,Ay,|A| [m/s2]"], labeldirections=[horizontal,vertical]);
100
14 Vy [m/s] 12 A=0 10
8
6
A=Amax
4
2 Vx [m/s] 0
2
4
6
8
10
12
14
Obrázek 10.13: Fázový prostor vektoru rychlostí pro různé hodnoty zpomalení
14
12
10
Vx,Vy,|V| [m/s]
|V|,A=0
|V|,A=Amax
8 Vy,A=0 6
4
Vy,A=Amax
2
0
Vx,A=0
Vx,A=Amax
t [s] 1
2
3
4
5
Obrázek 10.14: Průběh souřadnic vektoru rychlosti v závislosti na čase
101
6
Ay [m s-2]
A=0
8
6 Ay [m/s2] 4
2
A=Amax
Ax [m s-2] –8
–6
–4
0
–2
–2
10
Ax,Ay,|A| [m s-2]
Obrázek 10.15: Fázový prostor vektoru zrychlení pro různé hodnoty zpomalení
|A|,A=0
5 Ay,A=0 |A|,A=Amax
Ay,A=Amax 0
1
2
3
4
5
6
Ax,A=Amax –5
Ax,A=0 t [s]
Obrázek 10.16: Průběh souřadnic vektoru zrychlení v závislosti na čase
102
Na závěr vykreslíme trajektorie společně s odpovídajícími evolutami. V obrázku znázorníme apexy trajektorií a odpovídající středy křivosti. > G1:=plot([seq([seq(SXY(xy[j][i][],vxy[j][i][],axy[j][i][]), i=2..Nu)],j=1..n-1)],color=red): > G2:=plot([[seq(SXY(xy0[i][],vxy0[i][],axy0[i][]),i=2..Nu)], [seq(SXY(xy[n][i][],vxy[n][i][],axy[n][i][]),i=2..Nu)]], view=[-15..35,0..50],color=[black,maroon],thickness=2): > G3:=plot([[sxy0,apx0],seq([sxy[i],apx[i]],i=1..n-1), [sxy[n],apx[n]]],color=[black,seq(red,i=1..n-1),maroon], linestyle=3): > G4:=plot([[sxy0,apx0],seq([sxy[i],apx[i]],i=1..n-1), [sxy[n],apx[n]]],color=[black,seq(red,i=1..n-1),maroon], style=point,symbol=circle,symbolsize=20): > display(subs(COLOUR(RGB,.80000000,.19607843,.19607843) =COLOUR(RGB,0,0,0),G0),G1,G2,G3,G4,view=[-15..35,0..50], scaling=constrained);
Z výpočtů provedených v této části je zřejmé, průjezd brzděnou zatáčkou vede k trajektorii s vyšším průměrným poloměrem křivosti. Čím více je brzdění silnější, tím více se trajektorie rozevírá. Zároveň je však nebrzděná zatáčka projížděna s vyšší absolutní velikostí zrychlení. Na závěr této kapitoly uložíme proměnné, které budou zapotřebí pro další výpočty do souboru Kinem 3.sav. > save Fsu2, TF2, Amax, "Kinem_3.sav";
103
evoluta,A=Amax
40
evoluta,A=0
50 y [m]
30
Sapex,A=Amax Sapex,A=0
10 apex,A=0
–10
0
x [m] 10
20
Obrázek 10.17: Trajektorie a evoluty pro různé hodnoty zrychlení
104
apex,A=Amax
20
30
Kapitola 11 STANOVENÍ ŘÍDÍCÍHO BODU Při průjezdu zatáčky libovolným vozidlem jsou rozměry vozidla srovnatelné s délkou trajektorie vozidla. Proto není možné považovat vozidlo za hmotný bod. Tím se ale dostáváme k otázce stanovení polohy tzv. řídícího bodu, jehož trajektorie odpovídá již dříve vypočtené trajektorii, zadanou [X(t), Y (t)]. Je možné volit ze dvou možností. První je položit řídící bod do středu přední nápravy, druhou možností je střed zadní nápravy (u kloubového autobusu střed prostřední nápravy). Trajektorie řídícího bodu pak určí trajektorii všech bodů autobusu.
11.1
Trajektorie libovolného bodu autobusu
V případě, že položíme řídící bod do středu jedné z náprav je nutné stanovit vektor polohu středu druhé nápravy. Poté je možné provést zobecnění pro výpočet trajektorie libovolného bodu uvnitř autobusu, protože poloha libovolného bodu uvnitř autobusu je vůči polohám středů obou náprav jednoznačné definována. Zvolíme lokální souřadný systém s počátkem ve středu vybrané nápravy. Osu x tohoto souřadného systému budeme orientovat ve směru spojnice středů obou náprav, tedy osa vozidla leží na ose x lokálního souřadného systému. Kladný směr osy x zvolíme ve směru jízdy vozidla, tedy ve směru od zadní k přední nápravě. Osa y lokálního souřadného systému bude s osou x svírat pravý úhel a její kladný směr bude orientován vlevo vzhledem k ose vozidla – kladnému směru osy x. V globálním souřadném systému, ve kterém budeme řešit pohyb vozidla pak směr osy x lokálního souřadného systému bude určen jednotkovým vektorem E1, směr osy y lokálního 105
souřadného systému bude v globálním souřadném systému určen vektorem kolmým na vektor E1. V lokálním souřadném systému autobusu je pak možné určit polohový vektor Pos libovolného bodu uvnitř autobusu jednoduchým zaměřením souřadnic [x, y] na stojícím autobuse, nebo odečtením souřadnic klíčových bodů autobusu - jednotlivá kola a vrcholy obrysu autobusu z technické dokumentace autobusu. Je tak možné vytvořit proceduru BOD programu Maple, která určí polohu libovolného bodu uvnitř autobusu v globálním souřadném systému. Tvorbu procedury provedeme v novém worksheetu Kinem 4. > restart; with(plots): > BOD:=proc(R_Bod,E1,Pos); R_Bod+Pos[1]*E1+Pos[2]*[-E1[2],E1[1]]; end proc;
11.2
Střed přední nápravy jako řídící bod
V případě, že řídícím bodem je střed přední nápravy, pak vektor rychlosti středu zadní nápravy musí mířit do středu přední nápravy. Přitom vzdálenost obou bodů je konstantní – jde o rozvor náprav vozidla, který označíme jako L. Pokud poloha řídícího bodu je dána [X(t), Y (t)], je možné polohu zadní nápravy označit [x(t), y(t)]. Mezi těmito souřadnicemi musí platit následující vztahy, viz (GANDER, 2004): "
dx(t) dy(t) , dt dt
#
v !2 !2 = u u dx(t) dy(t) t +
dt
[x(t) − X(t), y(t) − Y (t)] L
(11.1)
dt
q
(x(t) − X(t))2 + (x(t) − X(t))2 = L .
Jak je ukázáno v citované publikaci, nemá systém (11.1) obecné analytické řešení pro [x(t), y(t)], kromě elementárních případů [X(t), Y (t)]. Proto je nutné v Maple vypracovat proceduru, která provede numerické řešení systému (11.1). Není totiž možné použít standardní příkaz dsolve,numeric, protože výrazy X(t) a Y (t) v (11.1) je nutné nejprve numericky integrovat. Vnitřní konstrukce příkazu dsolve,numeric tento postup neumožňuje. 106
11.2.1
Vytvoření systému diferenciálních rovnic
Pro zkrácení výstupů programu Maple doplníme substituce (8.1) o: ¨x =
d2 y(t) d2 x(t) d x(t) d y(t) , x = x(t) , ¨ y = , y = y(t) . , x ˙ = , y˙ = 2 2 dt dt dt dt
(11.2)
Nejprve do nového worksheetu načteme výsledky dosažené v předešlých částech.
> read "Kinem_1.sav": read "Kinem_2.sav": read "Kinem_3.sav":
Nyní vektorovou rovnici z (11.1) rozepíšeme do složek. > W:=sqrt(diff(x(t),t)^2+diff(y(t),t)^2): > ex:=diff(x(t),t)/W=-(x(t)-X(t))/l; > ey:=diff(y(t),t)/W=-(y(t)-Y(t))/l;
x−X x˙ = − l x˙ 2 + y˙ 2 y˙ y−Y ey := √ 2 . =− l x˙ + y˙ 2 ex := √
(11.3)
Pokud rovnici ey podělíme rovnicí ex, viz (11.3) dostaneme po další úpravě velmi jednoduchou rovnici: > e1:=lhs(ex)/lhs(ey)=rhs(ex)/rhs(ey); > e1:=e1*denom(lhs(e1))*denom(rhs(e1));
x−X x˙ = y˙ y−Y e1 := (y − Y ) x˙ = y˙ (x − X) . e1 :=
(11.4)
Problémem je, že rovnice (11.4) je nelineární diferenciální rovnicí prvního řádu, ale pro dvě proměnné – x˙ a y. ˙ Druhou diferenciální rovnici pro tyto proměnné získáme derivací druhé rovnice systému (11.1) podle času t. > e2:=simplify((map(u->u^2,ex)+map(u->u^2,ey))*l^2); > e2d:=map(u->diff(u,t),e2);
e2 := l2 = x2 − 2 xX + X 2 + y 2 − 2 yY + Y 2
e2d := 0 = 2 x˙x − 2 x˙ X − 2 xX˙ + 2 X X˙ + 2 y y˙ − 2 y˙ Y − 2 y Y˙ + 2 Y Y˙ .
(11.5)
Rovnici e2d - (11.5) a rovnici e1 –(11.4) je možné použít pro vyjádření x˙ a y. ˙ 107
> Sxy:=factor(solve(e1,e2d,diff(x(t),t),diff(y(t),t))): > Sxy:=subs(rhs(e2)=lhs(e2),Sxy); (x − X) xX˙ − X X˙ + y Y˙ − Y Y˙ x˙ = l2 Sxy := ˙ − X X˙ + y Y˙ − Y Y˙ (y − Y ) x X y˙ =
l2
(11.6)
.
V dalších výpočtech bude výhodné znát i průběh druhých derivací x¨ a y¨, které budou využity zejména pro výpočty křivostí trajektorií. > Sxyt:=map(u->diff(u,t),Sxy); ˙ ˙ −X X˙ +y Y˙ −Y Y˙ x ˙ − X x X ¨x = l2 ˙ ¨ − X˙ 2 −X X ¨ + y˙ Y˙ +y Y ¨ − Y˙ 2 −Y Y ¨ (x−X) x ˙ X +x X + l2 Sxyt := ˙ ˙ ˙ ˙ ˙ y ˙ − Y x X −X X +y Y −Y Y y= ¨ l2 ˙ ¨ − X˙ 2 −X X ¨ + y˙ Y˙ +y Y ¨ − Y˙ 2 −Y Y ¨ (y−Y ) x ˙ X +x X +
l2
. (11.7)
Vztahy pro (11.6) a (11.7) využijeme pro vytvoření iterační procedury RK45, která provede výpočet hodnot [x, y], [x, ˙ y] ˙ a [¨ x, y¨] v čase t + ∆t, pokud je známa hodnota všech proměnných – počátečních podmínek pro čas t. Výpočet je založen na použití numerického řešení diferenciálních rovnic metodou Runge-Kutta, viz (RALSTON, 1978) a (REKTORYS, 2000).
11.2.2
Iterační procedura pro jeden časový krok
Vztahy (11.6) a (11.7) jsou definovány pro funkce X(t), Y (t), x(t) a y(t) a jejich první a druhé derivace. Proto je nutné tyto vztahy převést na funkce okamžitých časových hodnot X(ti ), Y (ti ), x(ti ) a y(ti ). > SU2:=[diff(x(t),t,t)=xtt,diff(x(t),t)=xt,x(t)=x, diff(y(t),t,t)=ytt,diff(y(t),t)=yt,y(t)=y]: > Fxy:=subs(Sxy,SU,SU2,[diff(x(t),t),diff(y(t),t)]): > Fxyt:=subs(Sxyt,SU,SU2,[diff(x(t),t,t),diff(y(t),t,t)]):
108
Nyní je již možné vytvořit iterační proceduru RK45. Protože proměnné Fxy a Fxyt bude nutné použít i mimo tuto proceduru, je nejjednodušším řešením tyto proměnné definovat uvnitř procedury ještě jednou jako lokální proměnné. Je tak možné aby tyto proměnné nabývaly různé a na sobě nezávislé hodnoty uvnitř a vně iterační procedury. Vstupy procedury jsou polohový vektor řídícího bodu XY F = [X(ti ), Y (ti )],
vektor rychlosti řídícího bodu XY tF =
cího bodu XY ttF =
d2 X(t) dt2
t=ti
2 , d dtY2(t)
d X(t) dt t=ti
,
d Y (t) dt t=ti
, vektor zrychlení řídí-
t=ti
, polohový vektor středu zadní nápravy
xy0 = [x(ti ), y(ti )], vzdálenost středu zadní nápravy od řídícího bodu l, okamžitý čas T = ti a časový krok dT = ∆t. Výstupy procedury jsou polohový vektor xy = [x(ti+1 ), y(ti+1 )], vektor rychlosti
xyt =
d x(t) dt t=ti+1
,
d y(t) dt t=ti+1
, vektor zrychlení xytt =
d2 x(t) dt2 t=ti+1
,
d2 y(t) dt2 t=ti+1
středu zadní nápravy a polohový vektor XYS2 = [X(ti+1 ), Y (ti+1 )], vektor rych
losti XYtS2 =
d2 X(t) dt2
t=ti+1
d X(t) dt t=ti+1
2 , d dtY2(t)
,
d Y (t) dt t=ti+1
, vektor zrychlení řídícího bodu XYttS2 =
t=ti+1
. Všechny výstupní hodnoty jsou vypočteny pro násle-
dující časový krok, tedy pro časový krok ti+1 = ti + ∆t. > RK45:=proc(XYF,XYtF,XYttF,xy0,l,T,dT) local Fxy, Fxyt, XYS0, XYtS0, XYttS0, XYS1, XYtS1, XYS2, XYtS2, XYttS2, V1, V2, V3, V4, xy, xyt, xytt; Fxy:=unapply([(Y*Yt-x*Xt+X*Xt-y*Yt)*(-x+X)/l^2, (-y+Y)*(Y*Yt-x*Xt+X*Xt-y*Yt)/l^2],x,y,X,Y,Xt,Yt); Fxyt:=unapply([(Yt^2+Y*Ytt-xt*Xt-x*Xtt+Xt^2+X*Xtt-yt*Yt-y*Ytt) *(-x+X)/l^2+(Y*Yt-x*Xt+X*Xt-y*Yt)*(-xt+Xt)/l^2, (-yt+Yt)*(Y*Yt-x*Xt+X*Xt-y*Yt)/l^2+(-y+Y)*(Yt^2+Y*Ytt-xt*Xt -x*Xtt+Xt^2+X*Xtt-yt*Yt-y*Ytt)/l^2],x,y,xt,yt,X,Y,Xt,Yt,Xtt,Ytt); XYS0:=XY[-1];
XYtS0:=XYt[-1]; XYttS0:=XYtt[-1];
XYS1:=eval(XYF,t=T+dT/2); XYtS1:=eval(XYtF,t=T+dT/2); XYS2:=eval(XYF,t=T+dT); XYtS2:=eval(XYtF,t=T+dT); XYttS2:=eval(XYttF,t=T+dT);
V1:=Fxy(xy0[],XYS0[],XYtS0[]);
V2:=Fxy((xy0+V1*dT/2)[],XYS1[],XYtS1[]); V3:=Fxy((xy0+V2*dT/2)[],XYS1[],XYtS1[]); V4:=Fxy((xy0+V3*dT)[],XYS2[],XYtS2[]);
109
xy:=xy0+dT/6*(V1+2*V2+2*V3+V4);
xyt:=Fxy(xy[],XYS2[],XYtS2[]);
xytt:=Fxyt(xy[],xyt[],XYS2[],XYtS2[],XYttS2[]); [xy,xyt,xytt,XYS2,XYtS2,XYttS2]; end proc:
Iterační procedura RK45 spočte všechny potřebné kinematické veličiny pro následující časový krok, neřeší ale jeho velikost. Časový krok je určí v průběhu iterace celé trajektorie středu zadní nápravy, které provede procedura ITER, metodou půlení časového kroku. Procedura ITER využívá skutečnost, že pro řídící bod je známa doba průjezdu zatáčkou, která je uložena v proměnné tf. Časový interval 0 ≤ t ≤ tf se rozdělí na N = 8 časových kroků, pro které se vypočtou polohy středu zadní nápravy. Po té se o polovinu zvýší počet časových kroků a celý výpočet se zopakuje a vypočte se vzdálenost finální polohy pro základní počet a od polohy pro zvýšený počet časových kroků. Pokud je počet časových kroků N < 100 a > 10−5 , pak se opět zvýší o polovinu počet časových kroků, N:=round(N*1.5) a celý výpočet se zopakuje. Procedura ITER, která je uvedena na straně 111, nepracuje se vstupními ani výstupními hodnotami, protože všechny rozhodující proměnné jsou definovány jako globální. Tyto proměnné si tak udržují své hodnoty uvnitř procedury i mimo ní. V průběhu své činnosti procedura ITER vytvoří seznamy – vektory numerických hodnot polohového vektoru, vektoru rychlosti a zrychlení středu zadní nápravy – xy, xyt, xytt a řídícího bodu – XY, XYt, XYtt pro N časových okamžiků, které jsou rovněž uloženy v samostatném seznamu. Počet časových kroků, diference polohy a spotřeba počítačového času pro jednotlivé iterační kroky jsou ukládány do další globální proměnné, která dokumentuje průběh iterace a zvyšování její přesnosti. Nyní je vše připraveno pro výpočet konkrétních trajektorií. Použijeme funkce a numerické hodnoty z předešlé části, které jsou uloženy v proměnných Fsu2, TF2 a nsu. Ještě zvolíme konkrétní hodnotu zpomalení a = 1 m s−2 . Nejprve vypočteme dosazení konkrétních funkcí a numerických hodnot do proměnných udávajících počáteční polohu, vektor rychlosti a zrychlení řídícího bodu – středu přední nápravy. Výpočet provedeme s přesností na 18 platných cifer. Výpis odpovědí programu Maple zkrátíme z důvodů přehlednosti na 5 platných cifer. 110
> Digits:=18: > XYS:=evalf(value(subs(Dsol1,Fsu2,Tf=TF2,a=1,nsu,[X(t),Y(t)])),18); > XYtS:=map(u->diff(u,t),XYS); > XYttS:=map(u->(diff(u,t)),XYtS); > ITER:=proc() global xy,xyt,xytt,XY,XYt,XYtt,T, DE; local epsilon, N, dT, w, xy1, xy2, tt; N:=8; dT:=tf/N; epsilon:=1; xy2:=xy0; tt:=time(); while N<100 or epsilon>1e-5 do T:=[0.]; N:=round(N*1.5); dT:=tf/N; xy:=[xy0]; XY:=[eval(XYS,t=T[-1])]; XYt:=[eval(XYtS,t=T[-1])]; XYtt:=[eval(XYttS,t=T[-1])]; xyt:=[eval(Fxy,[x=xy[-1][1],y=xy[-1][2],X=XY[-1][1],Y=XY[-1][2], Xt=XYt[-1][1],Yt=XYt[-1][2],l=L0])]; xytt:=[eval(Fxyt,[x=xy[-1][1],y=xy[-1][2],xt=xyt[-1][1], yt=xyt[-1][2],X=XY[-1][1],Y=XY[-1][2],Xt=XYt[-1][1], Yt=XYt[-1][2],Xtt=XYtt[-1][1],Ytt=XYtt[-1][2],l=L0])]; while T[-1]+dT/2
111
Z
t
0 XYS := Z t
0
(15 − τ ) cos (F1 (τ )) dτ (15 − τ ) sin (F1 (τ )) dτ
(15 − t) cos (F1 (t))
XYtS :=
(15 − t) sin (F1 (t))
cos(F 1(t)) − (15 − t) sin(F1 (t)) F2 (t) XYttS := − sin(F1 (t)) + (15 − t) cos(F1 (t)) F2 (t)) kde F1 (u) = 0.0013112 u2 (3 u2 − 74.261 u + 320.88) F2 (u) = 0.0026223 u (3 u2 − 74.261 u + 320.88) + 0.0013112 u2 (6 u − 74.261) .
Před spuštěním iterace je ještě nutné určit konečný čas průjezdu zatáčkou tf, zadat počáteční podmínky – polohový vektor středu zadní nápravy xy0 vzhledem k poloze středu přední nápravy – řídícího bodu v čase t = 0, určit vzdálenost středu zadní nápravy od řídícího bodu – L0 a inicializovat proměnnou DE, která bude sledovat průběh iterace. Vzhledem k tomu, že na počátku zatáčky je autobus orientován rovnoběžně s osou x souřadného systému a řídící bod – střed přední nápravy se nachází v počátku souřadného systému lze polohu středu zadní nápravy xy0 snadno odečíst z technické dokumentace autobusu, např. (IRISBUS Citelis). > DE:=[]: tf:=evalf(subs(nsu,a=1,TF2)); > xy0:=[-6.12,0]: L0:=sqrt(add(u^2,u=xy0));
tf := 3.5653062834063542
L0 := 6.12000000000000000
Nyní je již možné spustit iterační proceduru ITER. V průběhu své činnosti procedura vypisuje informace o počtu iteračních kroků, velikosti časového kroku iterace a rozdíl finální polohy středu zadní nápravy. > ITER();
112
N = 12,
cas = 1.359,
dT = 0.29711,
= 40.812
N = 18,
cas = 3.265,
dT = 0.19807,
= 0.0013937
N = 27,
cas = 6.156,
dT = 0.13205,
= 0.00022872
N = 41,
cas = 10.656, dT = 0.086959, = 0.000041257
N = 62,
cas = 17.687, dT = 0.057505, = 0.0000072539
N = 93,
cas = 27.921, dT = 0.038337, = 0.0000013230
N = 140, cas = 43.687, dT = 0.025466, = 0.00000025570 . Průběh iterace je možné znázornit jako prostorovou křivku [t(N ), dT [N ], (N )], kde N = počet iteračních kroků v průběhu průjezdu zatáčkou, t = spotřeba computerového času pro aktuální počet iteračních kroků a = rozdíl finálních poloh aktuálního a předešlého iteračního kroku, viz obrázek 11.1. > spacecurve(map(u->[u[1],u[2],log10(u[3])],DE),color=red,thickness=3, axes=boxed,labels=["t [s]","dT [s]","e"],tickmarks=[4,6,4], orientation=[-30,60]);
1
ε [m]
10-2
10-4
10-6
10 20 t [s]
30 40
0.05
Obrázek 11.1: Průběh iterace 113
0.1
0.15 dT [s]
0.2
0.25
0.3
Iterační procedura vypočetla polohu středu obou náprav. Proto je možné vypočítat směrový vektor osy autobusu a za pomoci procedury BOD, viz. str. 106, určit polohy jednotlivých kol a vrcholů obrysu autobusu pro každý časový okamžik. Z technické dokumentace autobusu Citelis 12m, viz. (IRISBUS Citelis) je možné zjistit souřadnice těchto bodů vůči středu zadní nápravy, viz tabulka 11.1. Označení
Maple proměnná x [m]
y [m]
Kolo, levé, zadní, vnější
KLZe
-6.120 1.064
Kolo, pravé, zadní, vnější
KPZe
-6.120 -1.064
Kolo, levé, zadní, vnitřní
KLZi
-6.120 0.931
Kolo, pravé, zadní, vnitřní
KPZi
-6.120 -0.931
Kolo, levé, přední
KLP
0
1.044
Kolo, pravé, přední
KPP
0
-1.044
Roh, pravý, přední
RPP
2.710
-1.250
Tabulka 11.1: Polohy kol a obrysu karoserie vzhledem k ose přední nápravy Pro výpočet poloh rozhodujících bodů je nutné znát jednotkový vektor e1, udávající směr osy autobusu. Ve shodě s rovnicí (11.1) pro tento vektor lze použít: e1(t) =
xy(t) − XY (t) . L0
Protože souřadnice řídícího bodu, středu přední nápravy – XY i středu zadní nápravy – xy jsou již pro každý časový krok vypočteny, je možné pokračovat ve výpočtu poloh rozhodujících bodů, uvedených v tabulce 11.1. Dále vypočteme polohu obrysu autobusu pro pět časových okamžiků. Pro stejné časové okamžiky znázorníme i polohy středů obou náprav. Vše vykreslíme v jednom grafu společně s trajektoriemi jednotlivých kol a pravého předního rohu obrysu autobusu. Trajektorie tohoto bodu je velmi důležitá pro stanovení průjezdního profilu autobusu, protože trajektorie tohoto bodu je v maximální vzdálenosti od trajektorií jednotlivých kol. > e1:=zip((u,v)->(u-v)/L0,XY,xy): > nu:=nops(T): > KLZe:=[seq(BOD(XY[i],e1[i],[-6.120,1.064]),i=1..nu)]: > KPZe:=[seq(BOD(XY[i],e1[i],[-6.120,-1.064]),i=1..nu)]: > KLZi:=[seq(BOD(XY[i],e1[i],[-6.120,0.931]),i=1..nu)]:
114
> KPZi:=[seq(BOD(XY[i],e1[i],[-6.120,-0.931]),i=1..nu)]: > KLP:=[seq(BOD(XY[i],e1[i],[0,1.044]),i=1..nu)]: > KPP:=[seq(BOD(XY[i],e1[i],[0,-1.044]),i=1..nu)]: > RPP:=[seq(BOD(XY[i],e1[i],[2.710,-1.250]),i=1..nu)]: > Obrys1:=[seq([BOD(XY[i],e1[i],[-9.280,1.250]), BOD(XY[i],e1[i],[-9.280,-1.250]), BOD(XY[i],e1[i],[2.710,-1.250]), BOD(XY[i],e1[i],[2.710,1.250])],i=map(u->u*35+1,[$0..4]))]: > G1:=polygonplot(Obrys1,filled=true,color="Yellow",transparency=1): > G2:=plot([XY,xy,KLZe,KPZe,KLZi,KPZi,KLP,KPP,RPP], color=[brown,"DarkGreen",red,red,red,red,blue,blue,violet], thickness=[3,3,1,1,1,1,1,1,1]): > G3:=polygonplot([seq([seq(XY[i]+0.3*[cos(f),sin(f)], f=expand(Pi/6*[$0..11]))],i=map(u->u*35+1,[$0..4]))], filled=true,color=brown): > G3a:=polygonplot([seq([seq(xy[i]+0.3*[cos(f),sin(f)], f=expand(Pi/6*[$0..11]))],i=map(u->u*35+1[$0..4]))], filled=true,color="DarkGreen"): > display(G1,G2,G3,G3a,scaling=constrained,labels=["x [m]","y [m]"]);
11.3
Střed zadní nápravy jako řídící bod
Pokud je řídícím bodem střed zadní nápravy, pak v rovnicích (11.3) je zapotřebí zaměnit proměnné, x = X, y = Y, X = x, Y = y a substituované rovnice vyřešit pro q x a y. V průběhu výpočtu lze ještě použít další substituci X˙ 2 + Y˙ 2 = v(t). Pro zkrácení výpisu Maple opět použijeme substituce (8.1) a (11.2). > su1:=[x(t)=X(t),y(t)=Y(t),Y(t)=y(t),X(t)=x(t)]: > su2:=1/sqrt(diff(X(t),t)^2+diff(Y(t),t)^2)=1/v(t): > EX:=subs(su1,su2,ex); > EY:=subs(su1,su2,ey); > EY:=subs(su,ey);
EX :=
X˙ x−X =− v(t) l
EY :=
115
Y˙ y−Y =− v(t) l
30 Trajektorie osy predni napravy Trajektorie osy zadni napravy
25
Trajektorie zadnich kol Trajektorie prednich kol Trajektorie praveho predniho rohu
20
y [m]
15
10
5
x [m] –10
0
10
20
30
Obrázek 11.2: Průjezd zatáčkou pro řídící bod – střed přední nápravy > xyS:=subs(solve(EX,EY,x(t),y(t)),[x(t),y(t)]);
X˙ Y˙ xyS := X + l ,Y + l v(t) v(t) "
#
.
(11.8)
Je zřejmé, že výpočet polohy přední nápravy, pokud je řídícím bodem střed zadní nápravy, je výrazně jednodušší, než postup v předešlém případě. Navíc je možné vztah (11.8) velmi snadno rozšířit i na výpočet globálních souřadnic [XA , YA ] libovolného bodu autobusu, pokud jsou známy jeho lokální souřadnice [xa , ya ] uvnitř autobusu, viz str. 106: "
[XA , YA ] = [X, Y ] + xa
X˙ Y˙ Y˙ X˙ + ya − , , v(t) v(t) v(t) v(t) #
"
#
,
(11.9)
což je výraz, který odpovídá struktuře procedury BOD, uvedené na str. 106. Protože trajektorie řídícího bodu je již vypočtena v minulé části, stačí pouze provést posunutí počátku souřadnic do výchozí polohy řídícího bodu, to znamená, že všechny prvky seznamu XY stačí posunout o [−6.120, 0] a střední bod zadní nápravy 116
se pak nachází v počátku souřadného systému. Předchozí trajektorie středů přední i zadní nápravy přejmenujeme na XY1 a xy1, protože je později použijeme pro vzájemné porovnání. Souřadnice významných bodů autobusu vzhledem ke středu zadní nápravy, které lze snadno získat z technické dokumentace autobusu, viz (IRISBUS Citelis), jsou vypsány v tabulce 11.2. Označení
Maple proměnná x [m]
y [m]
Kolo, levé, zadní, vnější
KLZe
0
1.064
Kolo, pravé, zadní, vnější
KPZe
0
-1.064
Kolo, levé, zadní, vnitřní
KLZi
0
0.931
Kolo, pravé, zadní, vnitřní
KPZi
0
-0.931
Kolo, levé, přední
KLP
6.120
1.044
Kolo, pravé, přední
KPP
6.120
-1.044
Roh, pravý, přední
RPP
8.830
-1.250
Tabulka 11.2: Polohy kol a obrysu karoserie vzhledem k ose zadní nápravy > XY1:=XY: xy1:=xy: XY:=map(u->u-[6.120,0],XY): > e1:=map(u->u/sqrt(add(v^2,v=u)),XYt): > xy:=[seq(BOD(XY[i],e1[i],[6.120,0]),i=1..nu)]: > KLZe:=[seq(BOD(XY[i],e1[i],[0,1.064]),i=1..nu)]: > KPZe:=[seq(BOD(XY[i],e1[i],[0,-1.064]),i=1..nu)]: > KLZi:=[seq(BOD(XY[i],e1[i],[0,0.931]),i=1..nu)]: > KPZi:=[seq(BOD(XY[i],e1[i],[0,-0.931]),i=1..nu)]: > KLP:=[seq(BOD(XY[i],e1[i],[6.120,1.044]),i=1..nu)]: > KPP:=[seq(BOD(XY[i],e1[i],[6.120,-1.044]),i=1..nu)]: > RPP:=[seq(BOD(XY[i],e1[i],[8.830,-1.250]),i=1..nu)]: > Obrys2:=[seq([BOD(XY[i],e1[i],[-3.160,1.250]), BOD(XY[i],e1[i],[-3.160,-1.250]),BOD(XY[i],e1[i],[8.830,-1.250]), BOD(XY[i],e1[i],[8.830,1.250])],i=map(u->u*35+1,[$0..4]))]: > G4:=polygonplot(Obrys2,filled=true,color="LightBlue",transparency=1): > G5:=plot([XY,xy,KLZe,KPZe,KLZi,KPZi,KLP,KPP,RPP], color=[orange,gold,red,red,red,red,blue,blue,violet], thickness=[3,3,1,1,1,1,1,1,1]):
117
> G6:=polygonplot([seq([seq(XY[i]+0.3*[cos(f),sin(f)], f=expand(Pi/6*[$0..11]))],i=map(u->u*35+1,[$0..4]))], filled=true,color=orange): > G6a:=polygonplot([seq([seq(xy[i]+0.3*[cos(f),sin(f)], f=expand(Pi/6*[$0..11]))],i=map(u->u*35+1,[$0..4]))], filled=true,color=gold): > display(G4,G5,G6,G6a,scaling=constrained,labels=["x [m]","y [m]"]);
Trajektorie řídícího bodu – středu zadní nápravy, středu přední nápravy, jednotlivých kol a pravého předního rohu karoserie, spolu s vyznačením obrysu autobusu v pěti časových okamžicích jsou vyznačeny na obrázku 11.3. Porovnáním obrázků 11.3 a 11.2 zjistíme, že oba dva průjezdy zatáčkou se od sebe výrazně liší, přestože trajektorie řídících bodů jsou vzájemně pouze posunuty tak, aby výchozí polohy autobusu byly v obou případech shodné. Rozdíly ještě více vyniknou ve společném zobrazení, viz obrázek 11.4. Barvy jednotlivých křivek i obrysů autobusu jsou shodné s obrázky 11.3 a 11.2. > display(G1,G3,G3a,G4,G6,G6a,plot([XY,XY1,xy,xy1], color=[orange,brown,gold,"DarkGreen"],thickness=3), scaling=constrained,labels=["x [m]","y [m]"]);
Z obrázku 11.4 je zřejmé, že v případě, kdy je řídícím bodem střed zadní nápravy je autobus na konci zatáčky zcela vyrovnán do přímého směru, což pro případ, kdy je řídící bodem střed přední nápravy nenastalo. Zdá se tedy, že řídícím bodem autobusu v reálném případě měl být střed zadní nápravy. Nicméně definitivní potvrzení tohoto předpokladu provedeme pomocí jednoduchého testu.
11.4
Jízda konstantní rychlostí po kružnici
Předpokládejme, že autobus se bude pohybovat tak, že řídící bod se bude pohybovat proti směru pohybu hodinových ručiček konstantní rychlostí po kružnici, tedy rovnoměrně a to po trajektorii s konstantní křivostí. Připravíme proto nové funkční a numerické substituce a vypočteme polohový vektor a vektory rychlosti a zrychlení řídícího bodu. Za dobu trvání pohybu zvolíme 1.2 násobek času, který by při zadaných podmínkách odpovídal době potřebné pro objetí celé kružnice. 118
35 Trajektorie osy predni napravy 30
Trajektorie osy zadni napravy Trajektorie zadnich kol Trajektorie prednich kol
25
Trajektorie praveho predniho rohu
20 y [m] 15
10
5 x [m] –5
0
5
10
15
20
Obrázek 11.3: Průjezd zatáčkou pro řídící bod – střed zadní nápravy > RC:=10: > Fsu3:=kappa=unapply(1/RC,t), v=unapply(2,t);
F su3 := κ = (t 7→ 1/10) , v = (t 7→ 2)
> XYS:=evalf(value(subs(Dsol1,Fsu3,nsu,[X(t),Y(t)])),18); > XYtS:=map(u->diff(u,t),XYS); > XYttS:=map(u->(diff(u,t)),XYtS);
119
25
35
30
25
20 y [m] 15
10
5
–10
0
10
20
x [m] 30
Obrázek 11.4: Vzájemné porovnání obou průjezdů zatáčkou > tf:=1.2*evalf(2*Pi*RC/2);
XYS := [10 sin(0.2t), 10 − 10 cos(0.2t)] XYtS := [2 cos(0.2t), 2 sin(0.2t)] XYttS := [−.4 sin(0.2t), 0.4 cos(0.2t)] tf := 37.69911
11.4.1
Střed přední nápravy jako řídící bod
Před spuštěním iterace je nutné vynulovat proměnnou DE, která sleduje průběh iterace, definovat počáteční polohu středního bodu zadní nápravy a vzdálenost tohoto 120
bodu od řídícího bodu. Předpokládáme, že počáteční poloha autobusu je stejná jako v části 11.2. > DE:=[];
xy0:=[-6.120,0]:
L0:=sqrt(add(u^2,u=xy0)): ITER();
N = 12,
cas = 0.015, dT = 3.1415,
= 11.268
N = 18,
cas = 0.031, dT = 2.0944,
= 0.13271
N = 27,
cas = 0.062, dT = 1.3963,
= 0.017902
N = 41,
cas = 0.125, dT = 0.91949, = 0.0028090
N = 62,
cas = 0.203, dT = 0.60805, = 0.000445491
N = 93,
cas = 0.328, dT = 0.40537, = 0.0000755480
N = 140, cas = 0.593, dT = 0.26928, = 0.000013883 N = 210, cas = 0.890, dT = 0.17952, = 0.2558210−5 Stejným postupem, jako v části 11.2 vypočteme a zobrazíme polohy a trajektorie rozhodujících bodů autobusu, viz obrázek 11.5 a tabulka 11.1. Smysl barevného označení zůstává shodný s obrázkem 11.2. Polohu autobusu, pro časy, které jsou větší než je perioda oběhu tf odlišíme barevnou výplní obrysu. > e1:=zip((u,v)->(u-v)/L0,XY,xy): nu:=nops(T); > KLZe:=[seq(BOD(XY[i],e1[i],[-6.120,1.064]),i=1..nu)]: > KPZe:=[seq(BOD(XY[i],e1[i],[-6.120,-1.064]),i=1..nu)]: > KLZi:=[seq(BOD(XY[i],e1[i],[-6.120,0.931]),i=1..nu)]: > KPZi:=[seq(BOD(XY[i],e1[i],[-6.120,-0.931]),i=1..nu)]: > KLP:=[seq(BOD(XY[i],e1[i],[0,1.044]),i=1..nu)]: > KPP:=[seq(BOD(XY[i],e1[i],[0,-1.044]),i=1..nu)]: > RPP:=[seq(BOD(XY[i],e1[i],[2.710,-1.250]),i=1..nu)]: > Obrys1:=[seq([BOD(XY[i],e1[i],[-9.280,1.250]), BOD(XY[i],e1[i],[-9.280,-1.250]),BOD(XY[i],e1[i],[2.710,-1.250]), BOD(XY[i],e1[i],[2.710,1.250])],i=map(u->u*35+1,[$0..6]))]: > G1:=polygonplot(Obrys1[1..-2],filled=true,color="Yellow"): > G1a:=polygonplot(Obrys1[-1],filled=true, color=COLOR(RGB, 0.9, 0.9, 1)):
121
> G2:=plot([XY,xy,KLZe,KPZe,KLZi,KPZi,KLP,KPP,RPP], color=[brown,"DarkGreen",red,red,red,red,blue,blue,violet], thickness=[3,3,1,1,1,1,1,1,1]): > G3:=polygonplot([seq([seq(XY[i]+0.2*[cos(f),sin(f)], f=expand(Pi/6*[$0..11]))],i=map(u->u*35+1,[$0..6]))], filled=true,color=brown): > G3a:=polygonplot([seq([seq(xy[i]+0.2*[cos(f),sin(f)], f=expand(Pi/6*[$0..11]))],i=map(u->u*35+1,[$0..6]))], filled=true,color="DarkGreen"): > display([G3,G3a,G1,G1a,G2],scaling=constrained, labels=["x [m]","y [m]"]);
11.4.2
Řídícím bodem je střed zadní nápravy
Trajektorii rozhodujících bodů autobusu vypočteme naprosto stejným postupem jako v části 11.3, včetně využití tabulky 11.2. Výsledky výpočtů jsou znázorněny na obrázku 11.6, významy jednotlivých barev čar a výplní jsou shodné s obrázkem 11.3. > e1:=map(u->u/sqrt(add(v^2,v=u)),XYt): > xy:=[seq(BOD(XY[i],e1[i],[6.120,0]),i=1..nu)]: > KLZe:=[seq(BOD(XY[i],e1[i],[0,1.064]),i=1..nu)]: > KPZe:=[seq(BOD(XY[i],e1[i],[0,-1.064]),i=1..nu)]: > KLZi:=[seq(BOD(XY[i],e1[i],[0,0.931]),i=1..nu)]: > KPZi:=[seq(BOD(XY[i],e1[i],[0,-0.931]),i=1..nu)]: > KLP:=[seq(BOD(XY[i],e1[i],[6.120,1.044]),i=1..nu)]: > KPP:=[seq(BOD(XY[i],e1[i],[6.120,-1.044]),i=1..nu)]: > RPP:=[seq(BOD(XY[i],e1[i],[8.830,-1.250]),i=1..nu)]: > Obrys2:=[seq([BOD(XY[i],e1[i],[-3.160,1.250]), BOD(XY[i],e1[i],[-3.160,-1.250]),BOD(XY[i],e1[i],[8.830,-1.250]), BOD(XY[i],e1[i],[8.830,1.250])],i=map(u->u*35+1,[$0..6]))]: > G3:=polygonplot(Obrys2[1..-3],filled=true,color="LightBlue"):
122
20
15
y [m] 10
5
x [m] –10
–5
0
5
Obrázek 11.5: Jízda po kružnici pro řídící bod – střed přední nápravy > G3a:=polygonplot(Obrys2[-2..-1],filled=true, color=COLOR(RGB, 0.9, 0.9, 1)): > G4:=plot([XY,xy,KLZe,KPZe,KLZi,KPZi,KLP,KPP,RPP], color=[orange,gold,red,red,red,red,blue,blue,black], thickness=[3,3,1,1,1,1,1,1,1]): > G5:=polygonplot([seq([seq(XY[i]+0.2*[cos(f),sin(f)], f=expand(Pi/6*[$0..11]))],i=map(u->u*35+1,[$0..6]))], filled=true,color=orange):
123
10
> G5a:=polygonplot([seq([seq(xy[i]+0.2*[cos(f),sin(f)], f=expand(Pi/6*[$0..11]))],i=map(u->u*35+1,[$0..6]))], filled=true,color=gold): > display(G3,G3a,G4,G5,G5a,scaling=constrained, labels=["x [m]","y [m]"]);
20
15 y [m] 10
5
x [m] –10
–5
0
5
10
Obrázek 11.6: Jízda po kružnici pro řídící bod – střed zadní nápravy
124
11.5
Vyhodnocení
Již grafické zobrazení průjezdu zatáčkou naznačilo, že pokud řídícím bodem je střed přední nápravy, tak i po ukončení průjezdu zatáčkou, kdy dále řídící bod již pokračuje po přímé trajektorii, není autobus zcela přesně vyrovnán do přímého směru. Výpočty pro pohyb řídícího bodu po kružnici pak zcela jasně prokázaly, že řídícím bodem musí být střed zadní nápravy, protože v tomto případě se celý autobus pohybuje po kružnici, a že jeho polohy se periodicky opakují. Proto je na obrázku 11.6 autobus zobrazen pouze v pěti polohách, protože šestá a sedmá poloha splývají s polohou první a druhou – jak naznačuje odlišná barevná výplň. Pokud je řídícím bodem střed přední nápravy, pak se po kružnici pohybuje pouze tento řídící bod, ale ostatní body autobusu se pohybují po spirálách, které se postupně, po několika obězích, ale nikoliv po prvním, limitně přiblíží ke kružnicím, jak znázorňuje obrázek 11.6. Takový pohyb je v rozporu s realitou a proto je možné konstatovat, že řídícím bodem autobusu je střed zadní nápravy, jehož pohyb je popsán rovnicemi (9.9) ze kterých lze odvodit polohu a tedy i pohyb libovolného bodu pomocí procedury BOD, na straně 106. Na závěr této kapitoly uložíme procedury odvozené ve workshheetu Kinem 4, programu Maple do souboru Kinem 4.sav pro budoucí využití. > save BOD, Fxy, Fxy, RK45, ITER, "Kinem_4.sav":
125
126
Kapitola 12 KLOUBOVÝ AUTOBUS
Výpočty, které jsou obsahem této kapitoly jsou obecně použitelné pro jakýkoliv typ kloubového autobusu s pevnou střední nápravou. Konkrétní numerické hodnoty jsou převzaty z technické dokumentace autobusu Irisbus Citelis 18m, (IRISBUS 18m). Základní rozměry autobusu jsou uvedeny na obrázku 12.1, ze kterého lze určit i význam hlavních proměnných programu Maple a dále přiřazení barev v následujících grafech.
Obrázek 12.1: Kloubový autobus Irisbus Citelis 18m Základní proměnné jsou: Řídící bod: Polohový vektor středu prostřední nápravy. Pro tento bod platí všechny výpočty odvozené v předešlých částech. Proměnné, které popisují polohu tohoto bodu, případně odpovídající první až třetí derivace podle času jsou: RXY, RXYt, RXYtt, RXYttt. Konkrétní číselné hodnoty po provedené iteraci jsou uloženy v proměnných XYR, XYRt, XYRtt, XYRttt. V následujících grafech nejsou proměnné, které souvisí s tímto bodem vykreslovány. 127
Střed kloubu: Polohový vektor osy kloubového spoje. Polohu tohoto bodu je možné vypočítat ze znalosti polohy řídícího bodu, jeho vektoru rychlosti a rozměrů autobusu za pomoci procedury BOD, viz strana 106. Funkce popisující jeho polohový vektor a odpovídající derivace jsou: XYS, XYSt, XYStt, proměnné obsahující konkrétní číselné hodnoty jsou XY, XYt, XYtt. V následujících grafech není tento bod zobrazován. Střed zadní nápravy: Polohový vektor středu zadní nápravy. Pomocí iterační procedury ITER, viz str. 111, jsou vypočteny numerické hodnoty jeho polohového vektoru, vektoru rychlosti a vektoru zrychlení, které jsou uloženy v proměnných xy, xyt, xytt. Kola prostřední nápravy: Prostřední náprava je čtyřkolová. Polohové vektory jednotlivých kol jsou odvozeny z označení KS, které je doplněno písmenem P – pravá nebo L – levá, pokud následuje v názvu proměnné jedno nebo dvě písmena t, pak tato proměnná označuje první nebo druhou derivaci podle času. Vnitřní nebo vnější kolo jednotlivé strany označuje poslední písmeno tt e – vnější nebo i – vnitřní. Například proměnná KSPe označuje pravé vnější kolo střední nápravy, KSLtti označuje vektor zrychlení levého vnitřního kola prostřední nápravy. Ve všech grafech jsou průběhy proměnných, které odpovídají této nápravě vykresleny červenou barvou. Silná čára označuje průběhy funkcí, které odpovídají pravé straně, slabá levé. V grafech, ve kterých je vykreslována absolutní velikost vektoru rychlosti 12.7 nebo zrychlení 12.9 je silnou čarou označen průběh absolutní velikosti, plnou slabou čarou průběh složky x a čárkovanou čarou průběh složky y odpovídající veličiny. Kola zadní nápravy: Zadní náprava je hnací, rovněž čtyřkolová. Proměnné, které souvisí s touto nápravou jsou uvedeny písmeny KZ, význam dalších dalších znaků je totožný s proměnnými odpovídající střední nápravě. Průběhy odpovídajících proměnných jsou vykreslovány zelenou barvou. Kola přední nápravy: Proměnné, které souvisí s touto nápravou jsou uvedeny písmeny KP, význam dalších dalších znaků je totožný s proměnnými odpovídající střední nápravě. Tato náprava je řídící, dvoukolová, proto není nutné 128
používat rozlišovací znaky e a i. Průběhy odpovídajících proměnných jsou vykreslovány modrou barvou. Rohy karoserie: Polohové vektory rohů karoserie jsou důležité pro stanovení průjezdního profilu autobusu. Odpovídající proměnné jsou uvedeny písmenem R, které je doplněno číslem a dále písmenem P – pravý nebo L – levý. Číslo 1 odpovídá rohu čela přední části, číslo 2 odpovídá vnitřnímu rohu přední části u kloubu, číslo 3 odpovídá vnitřnímu rohu zadní části u kloubu a číslo 4 odpovídá rohu čela zadní části. Na obrázku 12.16 je trajektorie rohu R1P vyznačena silnou červenou čarou. Trajektorie rohů R1L, R2L, R3L, R4L jsou na tomto obrázku vyznačeny slabou fialovou čarou, rohů R2P, R3P, R4P jsou vyznačeny slabou zelenou čarou.
12.1
Přípravná část
12.1.1
Zobecnění procedury BOD
Procedura BOD, uvedená na straně 106, počítá polohový vektor libovolného bodu autobusu, pokud je znám polohový vektor řídícího bodu autobusu, [X, Y ], vektor ˙ Y˙ ] a poloha tohoto bodu uvnitř autobusu, zadaná polohovým jeho rychlosti, [X, vektorem tohoto bodu vzhledem k řídícímu bodu a ose autobusu. Tuto proceduru je možné beze změny použít pro výpočet polohy libovolných bodů přední části autobusu. Pro výpočet polohy bodů zadní části autobusu je zapotřebí tuto proceduru mírně upravit, ve smyslu rovnice (11.1). Polohový vektor řídícího bodu se nahradí polohovým vektorem osy kloubu a jednotkový vektor [Ex , Ey ], který udává směr osy ˙
˙
autobusu a pro přední část se počítá podle vztahu [Ex , Ey ] = [ Xv , Yv ] je možné nahradit vztahem pro výpočet směru osy zadní části [Ex , Ey ] = [ X−x , Y L−y ], kde X, Y L jsou souřadnice osy kloubu, x, y jsou souřadnice středu osy zadní nápravy a L je vzdálenost středu zadní nápravy od osy kloubu. Pokud provedeme první a druhé derivace výstupů původní upravené procedury podle času, je tak možné získat vektory rychlostí a zrychlení libovolných bodů autobusu. Proto na začátku práce v novém worksheetu Maple nazvaném Kinem 5 129
vytvoříme nové procedury BODP, BODPt, BODPtt pro výpočet vektorů polohy, rychlosti a zrychlení přední části autobusu a obdobné procedury BODZ, BODZt, BODZtt pro zadní část autobusu. Nejprve je ale nutné načíst klíčové vztahy, odvozené v předešlých částech. Vzhledem k tomu, že výstupy programu Maple v této části jsou značně dlouhé, uvedeme všechny potřebné příkazy, ale ve většině případů výstupy programu nebudeme uvádět nebo pro jejich zkrácení použijeme substituce ve smyslu (8.1) a (11.2).
> restart; with(plots): read "Kinem_1.sav": read "Kinem_2.sav": > read "Kinem_3.sav": read "Kinem_4.sav": > bod:=BOD([X(t),Y(t)],[Ex(t),Ey(t)],[Px,Py]);
bod := [X, Y ] + P x [Ex(t), Ey(t)] + P y [−Ey(t), Ex(t)] .
(12.1)
Proměnnou bod upravíme tak, aby vznikl základ pro procedury BODP a BODZ > BODP:=normal(expand(subs(Ex(t)=diff(X(t),t)/v(t), Ey(t)=diff(Y(t),t)/v(t),bod))); > BODZ:=collect(expand(subs(Ex(t)=(X(t)-x(t))/L0, Ey(t)=(Y(t)-y(t))/L0,bod)),[L0,Px,Py]); "
−Yt Py + Xt Px + Xv(t) Xt Py + Yt Px + Y v(t) BODP := , v(t) v(t)
#
"
(X −x) Px +(y−Y ) Py (Y −y) Px +(X −x) Py BODZ := +X, +Y L0 L0
(12.2) #
.
(12.3)
S využitím substituce SU3 je možné proměnné BODP a BODZ využít k tvorbě procedur BODP, BODPt, BODPtt a BODZ, BODZt, BODZtt. Vstupy všech procedur upravíme tak, aby odpovídaly vektorům polohy, rychlosti a zrychlení, aniž by bylo nutné dále upravovat. Protože v proměnné BODP se vyskytuje rychlost řídícího bodu v(t), musí být i tato veličina a její derivace vstupem těchto procedur. > SU3:=[diff(X(t),t,t,t)=Rttt[1],diff(Y(t),t,t,t)=Rttt[2], diff(X(t),t,t)=Rtt[1],diff(Y(t),t,t)=Rtt[2], diff(X(t),t)=Rt[1],diff(Y(t),t)=Rt[2],X(t)=R[1],Y(t)=R[2], diff(x(t),t,t)=rtt[1],diff(y(t),t,t)=rtt[2], diff(x(t),t)=rt[1],diff(y(t),t)=rt[2],x(t)=r[1],y(t)=r[2], Px=P[1],Py=P[2],diff(v(t),t,t)=vtt,diff(v(t),t)=vt,v(t)=v];
130
> BODPtt:=unapply(simplify(subs(SU3,diff(BODP,t,t))), Rttt,Rtt,Rt,P,vtt,vt,v): > BODPt:=unapply(simplify(subs(SU3,diff(BODP,t))),Rtt,Rt,P,vt,v): > BODP:=unapply(subs(SU3,BODP),Rt,R,P,v): > BODZtt:=unapply(subs(SU3,diff(BODZ,t,t)),Rtt,rtt,P): > BODZt:=unapply(subs(SU3,diff(BODZ,t)),Rt,rt,P): > BODZ:=unapply(subs(SU3,BODZ),R,r,P):
12.1.2
Funkce rychlosti a křivosti trajektorie řídícího bodu
Předpokládejme, že řídící bod autobusu se pohybuje nejprve po přímce. V čase t = 0 vstoupí do zakřivené části dráhy, ze které vystoupí v čase t = T F a po té se opět pohybuje po přímce, přičemž zakřivená část dráhy spojitě navazuje na oba dva přímé úseky a to včetně spojitosti druhého i třetího řádu. Dále předpokládejme, že po zakřivené části dráhy se autobus pohybuje s počátečním zpomalením a a postupně snižuje svoji rychlost a to až do apexu trajektorie. V apexu trajektorie je křivost trajektorie rovna ρ1 . Z toho bodu se dále pohybuje se zvyšující se rychlostí tak, že na konci zakřiveného úseku má stejnou rychlost V 0 jako na jeho počátku. Je zřejmé, že funkce udávající závislost křivosti trajektorie na čase, která je uložená v proměnné Fsu2, viz (10.3), na straně 86, není možné použít. Nejjednodušší funkce, které těmto požadavkům vyhoví mají tvar > Fsu3:=kappa=unapply(16*t^2*(TF-t)^2/TF^4/rho,t), v=unapply(V0-a*t+c*t^2/2,t);
c t2 16 t2 (TF − t)2 F su3 := v = t 7→ V0 − a t + , κ = t 7→ . 2 TF 4 ρ
(12.4)
Nejprve je nutné určit hodnotu konstanty c, tak aby platilo v(0) = v(TF ). c:=solve(eval(subs(Fsu3,v(TF)))=V0,c);
c :=
2a . TF
131
Nyní je nutné určit TF , časový okamžik výjezdu ze zakřiveného úseku. Postup výpočtu je velmi podobný určení času Tf ve funkci (10.3). > e1:=simplify(op(op(2,value(eval(subs(Dsol1,Fsu3,V[1]))))))=Pi/2: > e1:=simplify(subs(t=TF,e1)); > TFS:=[solve(e1,TF)];
e1 := −
−105 φ0 ρ + 12 aTF 2 − 56 V0 TF π = 105 ρ 2 #
"
q 28 V0 + %1 28 V0 − %1 , , kde %1 = 784 V0 2 + 1260 aφ0 ρ − 630 aπ ρ . TFS := 12 a 12 a
Správnou hodnotu času TF určíme dosazením numerických hodnot, odpovídajících reálné situaci. > nsu3:=rho=15,V0=6,x0=0,y0=0,phi0=0,a=0.75: > evalf(subs(nsu3,TFS));
[27.24309291, 10.09024041]
> TFS:=TFS[2]:
Na závěr je možné vytvořit funkční substituci Fsu3, odpovídající požadavkům zadání. Jako nejjednodušší se jeví použití po částech definované funkce. Do substituce numerických hodnot nsu3 ještě doplníme číslenou hodnotu časového okamžiku TF . > Fsu3:=kappa=unapply(piecewise(t<=TF,16*t^2*(TF-t)^2/rho/TF^4,0),t), v=unapply(V0-a*t+c*t^2/2,t); > nsu3:=nsu3,evalf(subs(nsu3,TF=TFS)); 2
F su3 := v = t 7→ V0 − at +
at , TF
κ = t 7→
2 16 t2 (TF − t)
t ≤ TF
otherwise
TF 4 ρ
0
nsu3 := ρ = 15, V 0 = 6, x0 = 0, y0 = 0, φ0 = 0, a = .75, TF = 10.09024041 .
132
12.2
Iterace
Pokud polohový vektor středu kloubu uložíme do proměnné XYS pak je možné pro výpočet vektoru polohy, rychlosti a zrychlení středu zadní nápravy bez dalších úprav použít proceduru ITER, odvozenou na straně 111. Před spuštěním iterace je nutné do proměnné L0 uložit vzdálenost středů kloubu a zadní nápravy – 4.625 m, viz obrázek 12.1 a definovat počáteční polohu středu zadní nápravy, která je [−6.575, 0] m. Nesmíme totiž zapomenout na to, že v čase t = 0 s se v počátku souřadného systému nachází řídící bod, kterým je střed prostřední nápravy a že střed kloubu je od něho vzdálen 1.95m v záporném směru osy x, viz obrázek 12.1. Současně vytvoříme proměnné RXY, RXYt, RXYtt, RXYttt, které budou obsahovat vektory polohy, rychlosti, zrychlení a derivace zrychlení podle času – trh řídícího bodu. Výpočty budeme provádět s přesností na 24 platných cifer, po ukončení iterační procedury se vrátíme na standardní přesnost 10 platných cifer. > Digits:=24; > XYS:=value(eval(subs(Dsol1,Fsu3,nsu3, BODP([diff(X(t),t),diff(Y(t),t)],[X(t),Y(t)],[-1.950,0.],v(t))))): > XYtS:=diff(XYS,t): > XYttS:=diff(XYS,t,t): > RXY:=value(eval(subs(Dsol1,Fsu3,nsu3,[X(t),Y(t)]))): > RXYt:=diff(RXY,t): > RXYtt:=diff(RXY,t,t): > RXYttt:=diff(RXY,t,t,t): > DE:=[]; tf:=evalf(subs(nsu3,TF))+0.5; xy0:=[-6.575,0]; L0:=4.625; > ITER();
N = 12, cas = 1.593, dT = 0.88252003416666, = 42.2368248227723 N = 18, cas = 3.968, dT = 0.58834668944444, = 0.12580201325078 N = 27, cas = 7.515, dT = 0.39223112629629, = 0.01360935630876 N = 41, cas = 13.109, dT = 0.2582985465853, = 0.00206617890353 N = 62, cas = 21.515, dT = 0.1708103291935, = 0.00032634436354 N = 93, cas = 33.953, dT = 0.1138735527956, = 0.00005528542890 N = 140, cas = 53.203, dT = 0.075644574357, = 0.00001012451770 N = 210, cas = 80.750, dT = 0.050429716238, = 0.18715807441290 10−5 .
133
Časové okamžiky jednotlivých iteračních kroků jsou uloženy v proměnné T a proto můžeme pro tyto okamžiky dopočítat numerické hodnoty vektorů RXY, RXYt, RXYtt, RXYttt, které uložíme do proměnných XYR, XYRt, XYRtt, XYRttt. Do proměnných vs, vst, vstt uložíme velikosti rychlosti, zrychlení a první derivace zrychlení podle času řídícího bodu. > XYR:=[seq(RXY,t=T)]: XYRt:=[seq(RXYt,t=T)]: > XYRtt:=[seq(RXYtt,t=T)]: XYRttt:=[seq(RXYttt,t=T)]: > vs:=[seq(eval(subs(Fsu3,nsu3,v(t))),t=T)]: > vst:=seq(eval(subs(Fsu3,nsu3,D(v)(t))),t=T): > vstt:=eval(subs(Fsu3,nsu3,(D@@2)(v)(t))); > Digits:=10:
12.3
Výsledky
12.3.1
Trajektorie jednotlivých kol
Pro výpočet trajektorie jednotlivých kol přední části autobusu použijeme proceduru BODP. Souřadnice jednotlivých kol přední části autobusu vzhledem k řídícímu bodu – střednímu bodu a souřadnice jednotlivých kol zadní části vzhledem k ose kloubu udává tabulka 12.1. Vykreslíme trajektorii jednotlivých kol – graf 12.2 a detaily trajektorie pro okolí apexu – graf 12.3 a pro ukončení výjezdu ze zatáčky – graf 12.4. Oblasti zvětšených detailů jsou na základním grafu 12.2 vyznačeny. > KSLe:=[seq(BODP(XYRt[i],XYR[i],[0,1.064],vs[i]),i=1..N)]: > KSLi:=[seq(BODP(XYRt[i],XYR[i],[0,0.931],vs[i]),i=1..N)]: > KSPe:=[seq(BODP(XYRt[i],XYR[i],[0,-1.064],vs[i]),i=1..N)]: > KSPi:=[seq(BODP(XYRt[i],XYR[i],[0,-0.931],vs[i]),i=1..N)]: > G1:=plot([KSLe,KSLi,KSPe,KSPi],color=red,thickness=[1,1,2,2]): > KPL:=[seq(BODP(XYRt[i],XYR[i],[5.355,1.044],vs[i]),i=1..N)]: > KPP:=[seq(BODP(XYRt[i],XYR[i],[5.355,-1.044],vs[i]),i=1..N)]: > G2:=plot([KPL,KPP],color=blue,thickness=[1,2]): > KZLe:=[seq(BODZ(XY[i],xy[i],[-4.625,1.064]),i=1..N)]: > KZLi:=[seq(BODZ(XY[i],xy[i],[-4.625,0.931]),i=1..N)]:
134
> KZPe:=[seq(BODZ(XY[i],xy[i],[-4.625,-1.064]),i=1..N)]: > KZPi:=[seq(BODZ(XY[i],xy[i],[-4.625,-0.931]),i=1..N)]: > G3:=plot([KZLe,KZLi,KZPe,KZPi],color="DarkGreen",thickness=[1,1,2,2]): > G4:=plot([[[26,20],[30,20],[30,25],[26,25],[26,20]], [[20,5.5],[29,5.5],[29,10.5],[20,10.5],[20,5.5]]], color=black,linestyle=2): > display(G1,G2,G3,G4,labels=["x [m]","y [m]"], labeldirections=[horizontal,vertical],scaling=constrained);
Kolo
Maple V.B. x [m] y [m]
Trajektorie
Střední levé vnější
KSLe
SSN
0
1.064
červená slabá
Střední levé vnitřní
KSLi
SSN
0
0.931
červená slabá
Střední pravé vnější
KSPe
SSN
0
-1.064
červená silná
Střední pravé vnitřní
KSPi
SSN
0
-0.931
červená silná
Přední levé
KPL
SSN
5.355
1.044
modrá slabá
Přední pravé
KPP
SSN
5.355
-1.044
modrá silná
Zadní levé vnější
KZLe
OKL
-4.625
1.064
zelená slabá
Zadní levé vnitřní
KSLi
OKL
-4.625
0.931
zelená slabá
Zadní pravé vnější
KZPe
OKL
-4.625
-1.064
zelená silná
Zadní pravé vnitřní
KZPi
OKL
-4.625
-0.931
zelená silná
V.B. = vztažný bod, SSN = střed přední nápravy, OKL = osa kloubu Tabulka 12.1: Souřadnice kol autobusu Citelis 18m Dále ještě vykreslíme průběh souřadnic x(t), y(t) v čase. Vzhledem k tomu, že v jednotlivých proměnných, které udávají polohu jednotlivých kol jsou tyto souřadnice uloženy jako polohové vektory – uspořádané dvojice, použijeme pro vykreslení těchto průběhů proceduru TPlot, která dále umožní vykreslení absolutní hodnoty vstupního vektoru a umožní odlišit jednotlivé křivky typem čáry. Vstupem procedury je proměnná, ve které je uložen časový průběh souřadnic zobrazovaného vektoru, hodnota f alse nebo true, která určuje, zda požadujeme vykreslit průběh absolutní velikosti vektoru, barva použitá pro zobrazení a seznam požadovaných 135
y [m]
35
30
25
20
15
10
5 x [m] 0
10
20
30
Obrázek 12.2: Trajektorie jednotlivých kol y [m]
25
y [m]
10
24
9 23
8 22
7 21
6 20 26
x [m]
x [m] 27
28
29
Obrázek 12.3: Výjezd
30
20
22
Obrázek 12.4: Okolí apexu
136
24
26
28
typů jednotlivých čar. Výstupem z procedury je graf, odpovídající zadaným parametrům. Proceduru je možné použít i pro znázornění průběhů rychlostí nebo zrychlení, proto bude použita opakovaně. Její použití významně zrychlí práci s programem Maple. > TPlot:=proc(W,ABS,CLR,TH,ST); plot([zip((u,v)->[u,v[1]],T,W),zip((u,v)->[u,v[2]],T,W), ‘if‘(ABS,zip((u,v)->[u,sqrt(v[1]^2+v[2]^2)],T,W),NULL)], color=CLR,thickness=TH,linestyle=ST): end proc;
Časové průběhy souřadnic jednotlivých kol budeme ukládat do dílčích grafů, které na závěr zobrazíme společně. > G1:=TPlot(KSLe,false,red,[2,1],1): G2:=TPlot(KSLi,false,red,[2,1],1): > G3:=TPlot(KSPe,false,red,[2,1],1): G4:=TPlot(KSPi,false,red,[2,1],1): > G5:=TPlot(KPL,false,blue,[2,1],1): G6:=TPlot(KPP,false,blue,[2,1],1): > G7:=TPlot(KZLe,false,"DarkGreen",[2,1],1): > G8:=TPlot(KZLi,false,"DarkGreen",[2,1],1): > G9:=TPlot(KZPe,false,"DarkGreen",[2,1],1): > G0:=TPlot(KZPi,false,"DarkGreen",[2,1],1): > display(G1,G2,G3,G4,G5,G6,G7,G8,G9,G0,labels=["t [s]","x, y, [m]"], labeldirections=[horizontal,vertical]);
Z grafu na obrázku 12.2 je zřejmé, že obě kola přední nápravy se v průběhu zatáčky pohybují po výrazně odlišných trajektoriích oproti zbývajícím kolům. Z detailního obrázku na grafu 12.4 je patrné, že v okolí apexu zatáčky je vzdálenost trajektorií pravého předního kola a pravého vnějšího kola prostřední nápravy přibližně 90 cm. Dále je na grafu 12.2 patrné, že i když po výjezdu ze zatáčky se přední i prostřední náprava již pohybují přímočaře, tak zadní náprava svůj pohyb v ose x stále ještě neukončila, což potvrzuje i detail výjezdu na grafu 12.3. Tuto skutečnost potvrzuje i graf na obrázku 12.5, který zobrazuje průběh x(t), y(t) souřadnic v závislosti na čase. Je z něho patrné, že po ukončení zatáčky v čase t ≥ 10.1s se souřadnice x kol přední nápravy zobrazené silnou modrou čarou a kol střední nápravy 137
x, y, [m] 30
20
10
t [s] 0
2
4
6
8
10
Obrázek 12.5: Závislost souřadnic jednotlivých kol na čase zobrazené silnou červenou čarou překryly, zatímco souřadnice x kol zadní nápravy se k x souřadnicím přední a střední nápravy pouze přiblížily.
12.3.2
Rychlosti jednotlivých kol
Vektory rychlosti kol přední části je možné vypočítat pomocí procedury BODPt, pokud se jí jako vstupní parametry zadají vektory rychlosti a zrychlení řídícího bodu, lokální souřadnice jednotlivých kol vzhledem k řídícímu bodu, viz tabulka 12.1, absolutní velikosti vektorů rychlosti a zrychlení řídícího bodu. Vektory rychlosti kol zadní nápravy se vypočtou pomocí procedury BODZt, jejíž vstupní parametry jsou vektory rychlostí středu kloubu, středu zadní nápravy a lokální souřadnice jednotlivých kol zadní části vzhledem k ose kloubu. Nejprve vykreslíme ve společném grafu 12.6 vektory rychlostí jednotlivých kol ve fázovém prostoru rychlosti, tedy průběh Vy t proti Vx t pro jednotlivá kola. > KSLte:=[seq(BODPt(XYRtt[i],XYRt[i],[0,1.064],vst[i],vs[i]),i=1..N)]: > KSLti:=[seq(BODPt(XYRtt[i],XYRt[i],[0,0.931],vst[i],vs[i]),i=1..N)]: > KSPte:=[seq(BODPt(XYRtt[i],XYRt[i],[0,-1.064],vst[i],vs[i]),i=1..N)]:
138
> KSPti:=[seq(BODPt(XYRtt[i],XYRt[i],[0,-0.931],vst[i],vs[i]),i=1..N)]: > G1:=plot([KSLte,KSLti,KSPte,KSPti],color=red,thickness=[1,1,2,2]): > KPLt:=[seq(BODPt(XYRtt[i],XYRt[i],[5.355,1.044],vst[i],vs[i]),i=1..N)]: > KPPt:=[seq(BODPt(XYRtt[i],XYRt[i],[5.355,-1.044],vst[i],vs[i]),i=1..N)]: > G2:=plot([KPLt,KPPt],color=blue,thickness=[1,2]): > KZLte:=[seq(BODZt(XYt[i],xyt[i],[-6.575,1.064]),i=1..N)]: > KZLti:=[seq(BODZt(XYt[i],xyt[i],[-6.575,0.931]),i=1..N)]: > KZPte:=[seq(BODZt(XYt[i],xyt[i],[-6.575,-1.064]),i=1..N)]: > KZPti:=[seq(BODZt(XYt[i],xyt[i],[-6.575,-0.931]),i=1..N)]: > G3:=plot([KZLte,KZLti,KZPte,KZPti], color="DarkGreen",thickness=[1,1,2,2]): > display(G1,G2,G3,scaling=constrained,labels=["Vx[m/s]", "Vy[m/s]"],labeldirections=[horizontal,vertical],axes=framed);
V dalším grafu 12.7, za pomoci procedury TPlot, uvedené na straně 137, vykreslíme časové průběhy souřadnic a absolutní velikosti vektorů rychlostí jednotlivých kol. V grafu 12.7 je průběh Vx (t) vyznačen slabou čarou, průběh Vy (t) je vyznačen slabou přerušovanou čarou a průběh |V (t)| je vyznačen silnou čarou. Barvy čar jsou v souladu s tabulkou 12.1. > G1:=TPlot(KSLte,true,red,[1,1,2],[1,4,1]): > G2:=TPlot(KSLti,true,red,[1,1,2],[1,4,1]): > G3:=TPlot(KSPte,true,red,[1,1,2],[1,4,1]): > G4:=TPlot(KSPti,true,red,[1,1,2],[1,4,1]): > G5:=TPlot(KPLt,true,blue,[1,1,2],[1,4,1]): > G6:=TPlot(KPPt,true,blue,[1,1,2],[1,4,1]): > G7:=TPlot(KZLte,true,"DarkGreen",[1,1,2],[1,4,1]): > G8:=TPlot(KZLti,true,"DarkGreen",[1,1,2],[1,4,1]): > G9:=TPlot(KZPte,true,"DarkGreen",[1,1,2],[1,4,1]): > G0:=TPlot(KZPti,true,"DarkGreen",[1,1,2],[1,4,1]): > display(G1,G2,G3,G4,G5,G6,G7,G8,G9,G0,labels=["t [s]","Vx, Vy, |V| [m/s]"],labeldirections=[horizontal,vertical],axes=framed);
Z obou grafů 12.6 i 12.7 je delmi dobře vidět, že průběh vektoru rychlosti předních kol je výrazně odlišný od průběhu vektorů rychlostí zbývajících kol. Je velmi dobře 139
6
5
3
Vy [m/s]
4
2
1
Vx [m/s]
0 0
1
2
3
4
5
6
Obrázek 12.6: Fázový prostor rychlostí jednotlivých kol
6
4
3
Vx, Vy, |V| [m/s]
5
2
1
0
t [s] 0
2
4
6
8
10
Obrázek 12.7: Závislost souřadnic vektorů rychlosti jednotlivých kol na čase
140
patrné, že v závěru zatáčky mají obě přední kola směr rychlosti v ose x záporný. Na obou grafech je také patrné, že při nájezdu do zatáčky je směr rychlosti kol zadní nápravy v ose y po krátký okamžik záporný. To znamená, že i když autobus zatáčí vlevo, tak zadní část kloubového autobusu po krátký časový okamžik vybočuje vpravo.
12.3.3
Zrychlení jednotlivých kol
Zrychlení v osách x a y; Vektory zrychlení kol přední části vypočteme pomocí procedury BODPtt, vektory zrychlení kol zadní části za pomocí procedury BODZtt. Použití obou procedur i vytvoření všech grafů je velmi podobné jako v části 12.3.2, pouze je nutné použít správné vstupní proměnné. Nejprve vykreslíme společný graf vektorů zrychlení ve fázovém prostoru zrychlení, viz graf 12.8. > KSLtte:=[seq(BODPtt(XYRttt[i],XYRtt[i],XYRt[i],[0,1.064], vstt[i],vst[i],vs[i]),i=1..N)]: > KSLtti:=[seq(BODPtt(XYRttt[i],XYRtt[i],XYRt[i],[0,0.931], vstt[i],vst[i],vs[i]),i=1..N)]: > KSPtte:=[seq(BODPtt(XYRttt[i],XYRtt[i],XYRt[i],[0,-1.064], vstt[i],vst[i],vs[i]),i=1..N)]: > KSPtti:=[seq(BODPtt(XYRttt[i],XYRtt[i],XYRt[i],[0,-0.931], vstt[i],vst[i],vs[i]),i=1..N)]: > G1:=plot([KSLtte,KSLtti,KSPtte,KSPtti],color=red, thickness=[1,1,2,2]): > KPLtt:=[seq(BODPtt(XYRttt[i],XYRtt[i],XYRt[i],[5.355,1.044], vstt[i],vst[i],vs[i]),i=1..N)]: > KPPtt:=[seq(BODPtt(XYRttt[i],XYRtt[i],XYRt[i],[5.355,-1.044], vstt[i],vst[i],vs[i]),i=1..N)]: > G2:=plot([KPLtt,KPPtt],color=blue,thickness=[1,2]): > KZLtte:=[seq(BODZtt(XYtt[i],xytt[i],[-6.575,1.064]),i=1..N)]: > KZLtti:=[seq(BODZtt(XYtt[i],xytt[i],[-6.575,0.931]),i=1..N)]: > KZPtte:=[seq(BODZt(XYtt[i],xytt[i],[-6.575,-1.064]),i=1..N)]: > KZPtti:=[seq(BODZt(XYtt[i],xytt[i],[-6.575,-0.931]),i=1..N)]: > G3:=plot([KZLtte,KZLtti,KZPtte,KZPtti],color="DarkGreen", thickness=[1,1,2,2]):
141
> display(G1,G2,G3,labels=["Ax [m/s2]","Ay [m/s2]"], labeldirections=[horizontal,vertical]);
Oba zobrazené grafy 12.8 i 12.9 potvrzují závěry provedené při výpočtech vektorů rychlostí jednotlivých kol. Zejména z grafu 12.9 je velmi dobře patrné, že na začátku průjezdu zatáčkou je zrychlení kol zadní nápravy ve směru osy y záporné a dále, že těsně před ukončením výjezdu ze zatáčky je zrychlení kol přední nápravy ve směru osy x záporné.
12.3.4
Tečné a normálové zrychlení
Tečné a normálové zrychlení je velmi významné, protože určuje síly, které na autobus působí ve směru podélné osy – tečné zrychlení At a ve směru kolmém na podélnou osu – normálové zrychlení An. Vztahy pro tato zrychlení již byla odvozena v části 8.1.1, viz rovnice (8.7) a (8.8) na straně 50, proto je nutné je pouze převést na vhodné funkce, použitelné pro výpočty zrychlení jednotlivých kol. > FAn:=unapply(subs(SU3,An),Rtt,Rt); > FAt:=unapply(subs(SU3,At),Rtt,Rt);
F An := (Rtt, Rt) 7→
Rtt 2 Rt 1 − Rtt 1 Rt 2 q
Rt 1 2 + Rt 2 2
, F At := (Rtt, Rt) 7→
Rt 1 Rtt 1 + Rt 2 Rtt 2 q
Rt 1 2 + Rt 2 2
.
Nyní je již možné vykreslit průběh normálového zrychlení jednotlivých kol v závislosti na čase, viz graf 12.10. > G1:=plot([seq([T[i],FAn(KSLtte[i],KSLte[i])],i=1..N)],color=red): > G2:=plot([seq([T[i],FAn(KSLtti[i],KSLti[i])],i=1..N)],color=red): > G3:=plot([seq([T[i],FAn(KSPtte[i],KSPte[i])],i=1..N)],color=red, thickness=2): > G4:=plot([seq([T[i],FAn(KSPtti[i],KSPti[i])],i=1..N)],color=red, thickness=2): > G5:=plot([seq([T[i],FAn(KPLtt[i],KPLt[i])],i=1..N)],color=blue):
142
Ay [m/s2]
1
0.8
0.6
0.4
0.2
Ax [m/s2] –1
–0.8
–0.6
–0.4
–0.2
0.2
1
Ax, Ay, |A| [m/s2]
Obrázek 12.8: Fázový prostor zrychlení jednotlivých kol
0.5
0
t [s] 2
4
6
8
10
–0.5
–1
Obrázek 12.9: Závislost souřadnic vektorů rychlosti jednotlivých kol na čase
143
> G6:=plot([seq([T[i],FAn(KPPtt[i],KPPt[i])],i=1..N)],color=blue, thickness=2): > G7:=plot([seq([T[i],FAn(KZLtte[i],KZLte[i])],i=1..N)], color="DarkGreen"): > G8:=plot([seq([T[i],FAn(KZLtti[i],KZLti[i])],i=1..N)], color="DarkGreen"): > G9:=plot([seq([T[i],FAn(KZPtte[i],KZPte[i])],i=1..N)], color="DarkGreen",thickness=2): > G0:=plot([seq([T[i],FAn(KZPtti[i],KZPti[i])],i=1..N)], color="DarkGreen",thickness=2): > display(G1,G2,G3,G4,G5,G6,G7,G8,G9,G0,labels=["t [s]","An [m/s2]"], labeldirections=[horizontal,vertical]);
Průběh tečného zrychlení v závislosti na čase vykreslíme naprosto stejným postupem jako v případě normálového zrychlení, pouze použijeme místo funkce FAn funkci FAt. Proto tyto příkazy vynecháme, stejně jako poslední příkaz, který provede společné vykreslení všech grafů tečných zrychlení, viz graf 12.11. Tento příkaz se od příkazu pro vykreslení grafů normálového zrychlení liší pouze formátem popisu svislé osy, kde je nutné uvést labels=["t [s]","At [m/s2]". Na závěr této části je ještě možné vykreslit průběh vektoru zrychlení jednotlivých kol ve fázovém prostoru zrychlení, nyní ovšem ve složkách tečné zrychlení ve směru osy x a normálové zrychlení ve směru osy y. Protože výsledný graf ještě využijeme později, pro tvorbu grafu 12.21 v části 12.7, uložíme jej do proměnné GAnAt pro pozdější použití. > G1:=plot([seq([FAt(KSLtte[i],KSLte[i]),FAn(KSLtte[i],KSLte[i])], i=1..N)],color=red): > G2:=plot([seq([FAt(KSLtti[i],KSLti[i]),FAn(KSLtti[i],KSLti[i])], i=1..N)],color=red): > G3:=plot([seq([FAt(KSPtte[i],KSPte[i]),FAn(KSPtte[i],KSPte[i])], i=1..N)],color=red,thickness=2): > G4:=plot([seq([FAt(KSPtti[i],KSPti[i]),FAn(KSPtti[i],KSPti[i])], i=1..N)],color=red,thickness=2):
144
1.2
An [m/s2]
1.4
1 0.8 0.6 0.4 0.2 t [s]
0
2
4
6
8
10
–0.2
0.8 0.6
At [m/s2]
Obrázek 12.10: Normálové zrychlení jednotlivých kol v závislosti na čase
0.4 0.2
0
t [s] 2
4
6
8
–0.2 –0.4 –0.6
Obrázek 12.11: Tečné zrychlení jednotlivých kol v závislosti na čase
145
10
> G5:=plot([seq([FAt(KPLtt[i],KPLt[i]),FAn(KPLtt[i],KPLt[i])], i=1..N)],color=blue): > G6:=plot([seq([FAt(KPPtt[i],KPPt[i]),FAn(KPPtt[i],KPPt[i])], i=1..N)],color=blue,thickness=2): > G7:=plot([seq([FAt(KZLtte[i],KZLte[i]),FAn(KZLtte[i],KZLte[i])], i=1..N)],color="DarkGreen"): > G8:=plot([seq([FAt(KZLtti[i],KZLti[i]),FAn(KZLtti[i],KZLti[i])], i=1..N)],color="DarkGreen"): > G9:=plot([seq([FAt(KZPtte[i],KZPte[i]),FAn(KZPtte[i],KZPte[i])], i=1..N)],color="DarkGreen",thickness=2): > G0:=plot([seq([FAt(KZPtti[i],KZPti[i]),FAn(KZPtti[i],KZPti[i])], i=1..N)],color="DarkGreen",thickness=2): > GAnAt:=display(G1,G2,G3,G4,G5,G6,G7,G8,G9,G0,GE, labels=["At [m/s2]","An [m/s2]"], labeldirections=[horizontal,vertical],scaling=constrained); > GAnAt;
Z grafu 12.10 je velmi dobře patrné jak celý autobus postupně projíždí apexem zatáčky. Je zřejmé že poloha maxima normálového zrychlení v čase přibližně korespondují s okamžikem průjezdu jednotlivých kol apexem své trajektorie. Z grafu průběhu tečného zrychlení je zřejmé, že průběh tečného zrychlení všech kol je přibližně stejný. Z grafu zrychlení ve fázovém prostoru tečného a normálového zrychlení je zřejmé, že směry maximálního zrychlení kol přední a zadní nápravy se významně liší. Maximální zrychlení pro kola přední nápravy jsou orientována nalevo od směru jízdy, maximální zrychlení kol zadní nápravy jsou orientována vpravo vzhledem ke směru jízdy. Maximální zrychlení prostřední nápravy jsou orientována rovnoběžně se směrem jízdy. Dále je zřejmé, že celkové rychlení uvnitř autobusu dosahuje maxima v pravém předním rohu autobusu a nejnižší v zadní části autobusu.
12.3.5
Křivosti trajektorie a oskulační kružnice
Křivosti trajektorie a poloha středu oskulační kružnice odpovídající trajektoriím jednotlivých kol vypočteme podle vztahů odvozených v části 8.2, které jsou ulo146
1.4 1.2
0.8 0.6
An [m/s2]
1
0.4 0.2
–0.6
–0.4
–0.2
At [m/s2]
0
0.2
0.4
0.6
0.8
–0.2
Obrázek 12.12: Vektor zrychlení ve fázovém prostoru tečného a normálového zrychlení ženy v proměnných k, Sx, Sy., viz rovnice (8.13) a (8.12), které jsou odvozeny na straně 53. Tyto proměnné byly do aktuálního worksheetu Maple načteny v souboru Kinem 1.sav. Proto je stačí pouze převést na vhodné funkční tvary. > FK:=unapply(subs(SU3,k),Rtt,Rt); > FSo:=unapply(subs(SU3,S),Rtt,Rt,R);
Rtt 2 Rt 1 − Rtt 1 Rt 2 F K := (Rtt, Rt) 7→ 3/2 Rt 1 2 + Rt 2 2 R1 Rt 2 Rtt 1 − R1 Rtt 2 Rt 1 + Rt 2 3 + Rt 1 2 Rt 2 − Rtt 2 Rt 1 − Rtt 1 Rt 2
F so := (Rtt, Rt, R) 7→
. −Rtt 1 R2 Rt 2 + Rt 1 Rt 2 2 + Rt 1 R2 Rtt 2 + Rt 1 3
Rtt 2 Rt 1 − Rtt 1 Rt 2 Pro porovnání evolut trajektorií a pevné polodie ještě vytvoříme proceduru FPR pro vykreslení pevné polodie. > FPR:=unapply(subs(SU3,PR),Rt,R,rt,r);
147
F P R := (Rt, R, rt, r) → 7
−Rt 2 rt 1 r1 − Rt 2 r2 rt 2 + Rt 2 R2 rt 2 + R1 rt 2 Rt 1 rt 2 Rt 1 − Rt 2 rt 1 −rt 1 r1 Rt 1 + rt 1 R1 Rt 1 − r2 rt 2 Rt 1 + rt 1 R2 Rt 2 − rt 2 Rt 1 − Rt 2 rt 1
.
Nejprve vykreslíme časové závislosti křivosti trajektorií jednotlivých kol, viz graf 12.13. > G1:=plot([seq([T[i],FK(KSLtte[i],KSLte[i])],i=1..N)],color=red): > G2:=plot([seq([T[i],FK(KSLtti[i],KSLti[i])],i=1..N)],color=red): > G3:=plot([seq([T[i],FK(KSPtte[i],KSPte[i])],i=1..N)], color=red,thickness=2): > G4:=plot([seq([T[i],FK(KSPtti[i],KSPti[i])],i=1..N)], color=red,thickness=2): > G5:=plot([seq([T[i],FK(KPLtt[i],KPLt[i])],i=1..N)],color=blue): > G6:=plot([seq([T[i],FK(KPPtt[i],KPPt[i])],i=1..N)], color=blue,thickness=2): > G7:=plot([seq([T[i],FK(KZLtte[i],KZLte[i])],i=1..N)],color="DarkGreen"): > G8:=plot([seq([T[i],FK(KZLtti[i],KZLti[i])],i=1..N)],color="DarkGreen"): > G9:=plot([seq([T[i],FK(KZPtte[i],KZPte[i])],i=1..N)], color="DarkGreen",thickness=2): > G0:=plot([seq([T[i],FK(KZPtti[i],KZPti[i])],i=1..N)], color="DarkGreen",thickness=2): > display(G1,G2,G3,G4,G5,G6,G7,G8,G9,G0,labels=["t [s]","k [1/m]"], labeldirections=[horizontal,vertical]);
Nyní vykreslíme polohy středů křivosti – evoluty trajektorií jednotlivých kol, viz graf na obrázku 12.14. Protože trajektorie kol přední části po výjezdu ze zatáčky je přímá a v čase t = 0 se autobus také pohybuje přímo, omezíme se při tvorbě grafu pouze na časový a prostorový interval, který odpovídá průjezdu okolí apexů trajektorií jednotlivých kol. Pro přímé úseky jsou totiž středy křivosti nekonečně vzdáleny, což by v program Maple v grafech znázornil sérií rovnoběžných čar procházejících grafem, kvůli kterým by byl výsledný graf nepřehledný. Současně vykreslíme pro stejnou oblast silnější čarou pevnou polodii pro obě dvě části autobusu.
148
> IN:=[$2..N-5]: > G1:=plot([seq(FSo(KSLtte[i],KSLte[i],KSLe[i]),i=IN)],color=red): > G2:=plot([seq(FSo(KSLtti[i],KSLti[i],KSLi[i]),i=IN)],color=red): > G3:=plot([seq(FSo(KSPtte[i],KSPte[i],KSPe[i]),i=IN)], color=red,thickness=2): > G4:=plot([seq(FSo(KSPtti[i],KSPti[i],KSPi[i]),i=IN)], color=red,thickness=2): > G5:=plot([seq(FSo(KPLtt[i],KPLt[i],KPL[i]),i=IN)],color=blue): > G6:=plot([seq(FSo(KPPtt[i],KPPt[i],KPP[i]),i=IN)], color=blue,thickness=2): > G7:=plot([seq(FSo(KZPtte[i],KZPte[i],KZPe[i]),i=IN)], color="DarkGreen",thickness=2): > G8:=plot([seq(FSo(KZPtti[i],KZPti[i],KZPi[i]),i=IN)], color="DarkGreen",thickness=2): > G9:=plot([seq(FSo(KZLtte[i],KZLte[i],KZLe[i]),i=IN)],color="DarkGreen"): > G0:=plot([seq(FSo(KZLtti[i],KZLti[i],KZLi[i]),i=IN)],color="DarkGreen"): > GA:=plot([[seq(FPP(XYt[i],XY[i],XYRt[i],XYR[i]),i=IN)], [seq(FPP(XYt[i],XY[i],xyt[i],xy[i]),i=IN)]], view=[9..13.5,15..19.5],thickness=7,color=[pink,green]): > display(G1,G2,G3,G4,G5,G6,G7,G8,G9,G0,GA,labels=["x [m]","y [m]"], labeldirections=[horizontal,vertical],view=[9..13.5,15..19.5], scaling=constrained,axes=framed);
Z obrázku 12.14 je názorně vidět, že křivost trajektorie kol přední nápravy je maximální a zadní nápravy je nejnižší. Na první pohled je možné se domnívat, že tento výsledek je v rozporu se zobrazením trajektorie jednotlivých kol, viz graf 12.2, ze kterého se zdá, že křivost kol přední nápravy je nejnižší, protože jejich trajektorie tvoří dolní a pravý okraj grafu. Ve skutečnosti přední kola opisují podstatně delší trajektorii a v jejím apexu se stáčí do nového směru rychleji, než kola zbývajících náprav. Průběh křivosti trajektorií a jejich evolut toto tvrzení jednoznačně dokazují. Hroty evolut, jejichž poloha odpovídá středům oskulačních kružnic s maximální křivostí – minimálním poloměrem, jsou pro přední nápravu výrazně posunuty vpravo, tedy k vnější straně zatáčky, viz graf 12.14. 149
k [1/m] 0.06
0.04
0.02
t [s] 0
2
4
6
8
10
19
y [m]
Obrázek 12.13: Křivosti trajektorií jednotlivých kol v závislosti na čase
18
17
16
Polodie pevna, zadni cast Polodie pevna, predni cast
x [m] 15
10
11
12
13
Obrázek 12.14: Evoluty trajektorií jednotlivých kol a pevné polodie v okolí apexu 150
Z tohoto grafu je dále patrné, že evoluty obou kol přední nápravy jsou výrazně odlišné, zatímco evoluty obou kol prostřední nápravy splývají a zadní nápravy se odlišují pouze nepatrně. Dále je zřejmé, že přední část autobusu se vždy otáčí okolo bodu, který leží na přímce procházející zadní nápravou, protože pevná polodie přední části a evoluty všech kol prostřední nápravy splývají. Pevná polodie zadní části se více podobá pevné polodii přední části, než evoluty kol zadní nápravy evolutám kol prostřední nápravy, tvary všech křivek, jsou si ale velmi podobné. Z průběhu obou pevných polodií je možné usuzovat, že zadní část se otáčí okolo bodu, který je dosti blízko bodu, okolo něhož se otáčí přední část autobusu, ale nesplývá s ním.
12.4
Úhlová rychlost rotace obou částí autobusu
V části 8.1 na straně 55 byl odvozen vztah (8.14) udávající úhlovou rychlost rotace pohybujícího se tělesa, který je možné použít pro vytvoření odpovídající procedury FW. Tuto proceduru použijeme pro stanovení maximální velikosti úhlové rychlosti obou částí autobusu a také k vykreslení časové závislosti úhlové rychlosti, viz graf 12.15. > FW:=unapply(subs(SU3,Omega),Rt,R,rt,r,L); > w1:=zip((u,v)->[u,evalf(v*180/Pi)],T, [seq(FW(XYt[i],XY[i],XYRt[i],XYR[i]),i=1..N)]): > w2:=zip((u,v)->[u,evalf(v*180/Pi)],T, [seq(FW(XYt[i],XY[i],xyt[i],xy[i]),i=1..N)]): > Omega1:=max(map(u->u[2],w1[2..-1])); > Omega2:=max(map(u->u[2],w2[2..-1])); > plot([w1,w2],thickness=2,labels=["t [s]","w [deg/s]"], labeldirections=[horizontal,vertical]);
Ω1 := 15.69170504
Ω2 := 15.36311853
Z grafu na obrázku 12.15 je naprosto zřejmé, že zadní část autobusu okamžitě po zahájení průjezdu zatáčkou míří mírně pomalu do protisměru a teprve později začíná rotovat ve směru zatáčky. Maximální úhlové rychlosti obou částí se příliš 151
14
ω [deg/s]
16
12 10
Predni cast
8 6 Zadni cast
4 2
t [s] 0
2
4
6
8
10
Obrázek 12.15: Úhlová rychlost rotace obou částí kloubového autobusu neliší, ale zadní část autobusu dosahuje maxima později. Tento rozdíl je přibližně úměrný podílu délky autobusu a jeho rychlosti. Je ale důležité zjištění, že i když přední část autobusu již ukončila průjezd zatáčkou a pohybuje se přímočaře bez rotace, tak zadní část stále ještě rotuje. To znamená, že autobus zůstává na konci zatáčky ještě mírně zalomen. Teoreticky, v případě pokračování jízdy v přímém směru, by mělo dojít k vyrovnání autobusu a zastavení rotace zadní části až za nekonečně dlouhý čas. V praxi již ale krátce po výjezdu ze zatáčky je úhel zalomení a úhlová rychlost rotace zadní části již za krátký čas zanedbatelná – v závislosti na rychlosti jízdy.
12.5
Průjezdní profil autobusu
Při studiu průjezdního profilu autobusu nejprve vykreslíme trajektorie jednotlivých rohů karoserie autobusu a současně vykreslíme polohu obou částí autobusu na začátku a konci časového intervalu a ve čtyřech mezi-polohách. Jednotlivé polohy autobusu odlišíme barevně, zároveň přerušovanou čarou odlišíme harmonikový spoj 152
obou částí autobusu. Souřadnice rohů karoserie podle obrázku 12.1, vzhledem ke vztažným bodům, viz tabulka 12.1, jsou uvedeny v tabulce 12.2. Vzhledem k tomu, že pravý okraj průjezdního profilu bude omezovat pravý přední roh, v Maple proměnná R1P vyznačíme jeho trajektorii silnější červenou čarou, zatímco trajektorie zbývajících pravých rohů vyznačíme světle zelenou barvou a trajektorii všech levých rohů označíme fialovou barvou, viz obrázek 12.16.
Roh
Maple
V.B.
x [m]
y [m]
Přední čelo
R1L, R1P
SSN
8.065
± 1.250
Vnitřní přední
R2L, R2P
SSN
-0.975
± 1.250
Zadní vniřní
R3L, R3P
OKL
-0.710
± 1.250
Zadní čelo
R4L, R4P
OKL
-8.235
± 1.250
V.B. = vztažný bod, SSN = střed přední nápravy, OKL = osa kloubu
Tabulka 12.2: Souřadnice rohů karoserie autobusu Irisbus Citelis 18m
> R1P:=[seq(BODP(XYRt[i],XYR[i],[8.065,-1.250],vs[i]),i=1..N)]: > R1L:=[seq(BODP(XYRt[i],XYR[i],[8.065,1.250],vs[i]),i=1..N)]: > R2P:=[seq(BODP(XYRt[i],XYR[i],[-0.975,-1.250],vs[i]),i=1..N)]: > R2L:=[seq(BODP(XYRt[i],XYR[i],[-0.975,1.250],vs[i]),i=1..N)]: > R3P:=[seq(BODZ(XY[i],xy[i],[-0.710,-1.250]),i=1..N)]: > R3L:=[seq(BODZ(XY[i],xy[i],[-0.710,1.250]),i=1..N)]: > R4P:=[seq(BODZ(XY[i],xy[i],[-8.235,-1.250]),i=1..N)]: > R4L:=[seq(BODZ(XY[i],xy[i],[-8.235,1.250]),i=1..N)]: > G1:=plot([R1P,R1L,R2P,R2L,R3P,R3L,R4P,R4L], color=[red,green,green,maroon,green,maroon,green,maroon], labels=["x [m]","y [m]"],labeldirections=[horizontal,vertical], scaling=constrained): > nu:=map(u->u*42+1,[$0..5]): > G2:=plot([seq([R4L[i],R3L[i],R3P[i],R4P[i],R4L[i]],i=nu)], color=[red,black,blue],thickness=2): > G3:=plot([seq([R2L[i],R1L[i],R1P[i],R2P[i],R2L[i]],i=nu)], color=[red,black,blue],thickness=2):
153
> G4:=plot([seq([R3L[i],R2L[i]],i=nu)],color=[red,black,blue], thickness=6,linestyle=2): > G5:=plot([seq([R3P[i],R2P[i]],i=nu)],color=[red,black,blue], thickness=6,linestyle=2): > display(G1,G2,G3,G4,G5,scaling=constrained,labels=["x [m]","y [m]"],
y [m]
labeldirections=[horizontal,vertical]);
30
20
10
x [m] –10
0
10
20
30
Obrázek 12.16: Trajektorie rohů karoserie a pozice autobusu uvnitř zatáčky Z obrázku 12.16 je zřejmé, že průjezdní profil je z vnější strany zatáčky skutečně ohraničen trajektorií pravého předního rohu. Ovšem z vnitřní strany bude obrys obálkou úseček, které tvoří levé části boků karoserie. Z matematického hlediska jde 154
o systém úseček, které jsou závislé na parametru - času t. Pokud společný bod obálky a úsečky bude na úsečce určené dvěma rohy karoserie určen parametrem p, pak obálku úseček lze nalézt jako obálku dvouparametrického systému křivek. Označme koncové body úsečky jako R1 ≡ [R11 , R12 ] a R ≡ [R21 , R22 ]. Při řešení tohoto problému použijeme řešení odvozené v (BARTOŇ, 2013). Obecné souřadnice bodu dotyku úsečky a obálky ex, ey, které závisí na parametrech p a t jsou: > ex:=R1[1](t)+p*(R2[1](t)-R1[1](t)); > ey:=R1[2](t)+p*(R2[2](t)-R1[2](t));
ex := R1 2 (t) + p (R2 2 (t) − R1 2 (t)) ,
ey := R1 1 (t) + p (R2 1 (t) − R1 1 (t)) .
Parametry p a t musí vyhovět rovnici > eqp:=diff(ey,t)/diff(ex,t)=diff(ey,p)/diff(ex,p); !
d R1 (t)2 d R2 (t)2 d R1 (t)2 +p − dt dt dt R2 (t)2 − R1 (t)2 ! = eqp := R2 (t)1 − R1 (t)1 d R2 (t)1 d R1 (t)1 d R1 (t)1 +p − dt dt dt Poslední rovnice je pro parametr p snadno řešitelná, proto za použití substitucí su a ssu vytvoříme proceduru PF, které bude počítat hodnotu parametru p v závislosti na poloze levých hran karoserie autobusu – parametru t. > su:=diff(R1[1](t),t)=R1t[1],diff(R1[2](t),t)=R1t[2], diff(R2[1](t),t)=R2t[1],diff(R2[2](t),t)=R2t[2], R1[1](t)=R1[1],R1[2](t)=R1[2],R2[1](t)=R2[1],R2[2](t)=R2[2]; > ssu:=[R2t[2]-R1t[2]=Dt2,R2t[1]-R1t[1]=Dt1,R2[2]-R1[2]=D2, R2[1]-R1[1]=D1]: > eqp:=subs(su,ssu,eqp);
eqp :=
R1t 2 + pDt2 D2 = R1t 1 + pDt1 D1
> PF:=unapply(subs(map(u->rhs(u)=lhs(u),ssu),solve(eqp,p)),R1t,R2t,R1,R2);
155
P F := (R1t, R2t, R1 , R2 ) 7→
(R1 1 −R2 1 ) R1t 2 +(R2 2 −R1 2 ) R1t 1 . (R2 1 −R1 1 )(R2t 2 −R1t 2 )−(R2 2 −R1 2 )(R2t 1 −R1t 1 )
Vzhledem k tomu, že R1t odpovídá vektoru rychlosti prvního rohu a R2t vektoru rychlosti druhého rohu a tyto vektory je možné pomocí procedur BODPt, BODP pro přední část a BODZt, BODZ pro zadní část i pro všechny iterační časy snadno spočítat, můžeme takto snadno vytvořit obálky úseček, které tvoří levé strany přední a zadní části. Obě obálky vykreslíme, viz graf 12.17. > R1Lt:=[seq(BODPt(XYRtt[i],XYRt[i],[8.065,1.250], vst[i],vs[i]),i=1..N)]: > R2Lt:=[seq(BODPt(XYRtt[i],XYRt[i],[-0.975,1.250], vst[i],vs[i]),i=1..N)]: > R3Lt:=[seq(BODZ(XYt[i],xyt[i],[-0.710,1.250]),i=1..N)]: > R4Lt:=[seq(BODZ(XYt[i],xyt[i],[-8.235,1.250]),i=1..N)]: > P1:=[seq(PF(R2Lt[i],R1Lt[i],R2L[i],R1L[i],1),i=1..N)]: > P2:=[seq(PF(R4Lt[i],R3Lt[i],R4L[i],R3L[i],1),i=1..N)]: > O1:=[seq(R2L[i]+P1[i]*(R1L[i]-R2L[i]),i=1..N)]: > O2:=[seq(R4L[i]+P2[i]*(R3L[i]-R4L[i]),i=1..N)]: > plot([O1,O2],thickness=2,labels=["x [m]","y [m]"], labeldirections=[horizontal,vertical],view=[-8.5..26,1..17], scaling=constrained,color=[red,green));
Z obrázku 12.17 je zřejmé, že křivka, která určuje levou stranu průjezdního profilu je zelená křivka, tedy obálka O2. Nyní již můžeme vykreslit plný průjezdní profil, včetně několika pozic autobusu, viz obrázek 12.18. > G0:=polygonplot([[R4P[1],R1P[2],O2[2],R4L[1]], seq([R1P[i],R1P[i+1],O2[i+1],O2[i]],i=2..N-1), [R1P[-1],R1L[-1],O2[-1]]],color=COLOUR(RGB,0.85,0.85,0.85), style=patchnogrid): > display(G0,G2,G3,G4,G5,scaling=constrained, labels=["x [m]","y [m]"],labeldirections=[horizontal,vertical]);
Jak je zřejmé z obrázku 12.18, je maximální šířka průjezdního profilu kloubového autobusu přibližně rovna dvojnásobku jeho šířky. 156
y [m]
16 14 12 10 8 6 4 2 –5
x [m] 0
5
10
15
20
25
y [m]
Obrázek 12.17: Obrysové obálky levých částí autobusu
30
20
10
x [m] –10
10
Obrázek 12.18: Průjezdní profil kloubového autobusu
157
20
30
12.6
Úhel zalomení kloubu
Úhel zalomení kloubu je možné snadno spočítat, například jako úhel sevřený levými vnějšími hranami obou částí karoserie. Nejjednodušším postupem je vypočítat úhly, které tyto části svírají s osou x a po té stanovit jejich rozdíl. Průběh zalomení úhlu ve stupních je zobrazen na grafu 12.19. Na obrázku 12.20 je zobrazen průběh úhlu zalomení kloubu v závislosti na křivosti trajektorie. > uhel:=zip((u,v)->op(2,polar(u[1]-v[1]+I*(u[2]-v[2]))),R1L,R2L) -zip((u,v)->op(2,polar(u[1]-v[1]+I*(u[2]-v[2]))),R3L,R4L): > plot(zip((u,v)->[u,v*180/Pi],T,uhel),thickness=2,labels=["t [s]", "phi [deg]"],labeldirections=[horizontal,vertical]); > plot([zip((u,v)->[u,evalf(v*180/Pi)], [seq(evalf(eval(subs(Fsu3,nsu3,kappa(t)))),t=T[1..141])], uhel),zip((u,v)->[u,evalf(v*180/Pi)], [seq(evalf(eval(subs(Fsu3,nsu3,kappa(t)))),t=T)],uhel)], thickness=2,color=red,labels=["kappa [1/m]","phi [deg]"], labeldirections=[horizontal,vertical]);
Z obou obrázků 12.19 a 12.20 je velmi dobře patrné, že i když přední část autobusu se po výjezdu ze zatáčky pohybuje přímočaře, tak autobus zůstává stále mírně zalomený. Pokud řidič v průběhu další jízdy bude stále udržovat přímý směr, tak úhel zalomení kloubu φ se bude v závislosti na délce ujeté přímé vzdálenosti s, resp. době trvání přímé jízdy t, stále zmenšovat a bude se limitně blížit k nule φ∞ ≡ lim φ(s) = lim φ(t) = 0 . s→∞
t→∞
Tyto výsledky jsou v naprostém souladu s (GANDER, 2004). Z grafu na obrázku 12.20 je zřejmé, že maximální úhel zalomení nenastává současně s maximem křivosti trajektorie, ale o několik okamžiků později.
12.7
Dynamika průjezdu zatáčkou
Tečné zrychlení je zrychlení ve směru osy autobusu. Pokud autobus zrychluje nebo zpomaluje, pak tečná síla Ft , která na něj působí je dána vztahem Ft = m At , kde 158
φ [°] 20
15
10
5
t [s] 0
2
4
6
8
10
φ [°]
Obrázek 12.19: Úhel zalomení kloubu
20
15
10
5
κ [1/m] 0
0.01
0.02
0.03
0.04
0.05
0.06
Obrázek 12.20: Úhel zalomení kloubu v závislosti na křivosti trajektorie
159
At je zrychlení nebo zpomalení rychlosti jízdy a m je hmotnost autobusu. V případě více náprav, by m odpovídala hmotnosti, která zatěžuje danou nápravu, resp. kolo. Tečnou sílu Ft je ovšem nutné prostřednictvím adheze přenést na vozovku. Adhezní sílu, sílu tření, fa popisuje Coulombův zákon tření, Fa = µt Fn , kde µt je součinitel adheze, koeficient tření ve směru pohybu. Při pohybu ve vodorovné rovině je normálová síla dána vztahem Fn = m g, kde g je tíhové zrychlení. Protože třecí síla působí vždy proti směru pohybu, má vždy směr protiběžný se směrem rychlosti, tedy směr tečny k trajektorii. Proto je možné koeficient µt označit jako koeficient tečného třeni, resp. součinitel tečné adheze. Autobus zrychlí, nebo zbrzdí pokud adhezní síla bude rovna nebo větší než síla tečná, tedy At (12.5) . g Při rovnoměrném pohybu lze provést shodnou úvahu s (12.5) i pro změnu směru, Fa ≥ Ft
−→
µt m g ≥ m A t
−→
µt ≥
kdy je nutné aby došlo k působení normálových sil, Fn , tedy sil, které jsou kolmé na tečnu k trajektorii. Proto, aby došlo ke změně směru, lze napsat obdobnou podmínku k předešlému vztahu µn ≥
An , g
kde An je normálové zrychlení, zrychlení kolmé ke
směru jízdy a µn je koeficient normálového tření, resp. součinitel normálové adheze. Pokud se autobus pohybuje obecně, tedy nerovnoměrně křivočaře lze podmínky průjezdu zatáčkou, při kterých ještě nedojde ke smyku zobecnit
At ≤ g µt cos(ψ) ,
An ≤ g µn cos(ψ) ,
kde
At cos(ψ) = q A2t + A2n , (12.6) An q sin(ψ) = A 2 + A2 t
n
ψ je úhel sevřený mezi vektorem výsledného zrychlení a směrem rychlosti jízdy, tedy směrem tečny ke trajektorii. Vyloučením parametru ψ z rovnic (12.6) lze odvodit A2n A2t + ≤1. µ2n g 2 µ2t g 2
(12.7)
Rovnice (12.7) se nazývá Kammovou adhezní elipsou a udává podmínku, při které nedojde ke ztrátě adheze, to znamená k prokluzu kol nebo k bočnímu smyku, případně ke kombinaci obou možností. Pokud výsledný vektor zrychlení ve složkách [At , An ] leží uvnitř elipsy, pak je jízda stabilní, pokud leží vně elipsy, pak dojde ke smyku ve směru výsledného zrychlení. 160
Protože na obrázku 12.12 jsou vykresleny vektory zrychlení jednotlivých kol ve fázovém prostoru zrychlení [At , An ], je možné využít rovnic (12.6) a doplnit do tohoto grafu i Kammovy adhezní elipsy. Pro koeficienty platí µn < µt , viz (KAMM1, 2013 a KAMM2, 2013), proto do obrázku 12.12 doplníme elipsy pro µn =
9 10
µt , pro
µt ∈ < 0.10, 0, 16 > s krokem ∆µt = 0.01, viz graf 12.21. > GE:=plot([seq([mu*9.81*cos(f),mu*9.81*0.9*sin(f),f=0..Pi], mu=0.01*[$10..16])],color=black,linestyle=2): > display(GAnAt,GE,labels=["At [m/s2]","An [m/s2]"], labeldirections=[horizontal,vertical],view=[-0.75..0.9,default], scaling=constrained);
1.4 µt=0.16
1.2
µt=0.15 µt=0.14
1
µt=0.13 µt=0.12
0.8
0.4
0.2
µn=0.9µt
0.6
µt=0.10
An [m/s2]
µt=0.11
At [m/s2] –0.6
–0.4
0
–0.2
0.2
–0.2 Obrázek 12.21: Kammovy elipsy
161
0.4
0.6
0.8
Jak je patrné z obrázku 12.21, při zvoleném způsobu jízdy, který je zadán pomocí proměnných Fsu3 a nsu3, by došlo ke smyku všech kol kloubového autobusu, pokud by koeficient adheze klesl pod µt < 0.13, což je velmi nízká hodnota, která podle tabulky 6.1 odpovídá jízdě po náledí. Dále je zřejmé, že za stávajících podmínek by jako první došlo ke smyku přední nápravy a tento smyk by nastal před těsně průjezdem apexu. Šlo by téměř o čistý boční smyk, který by nastal při hodnotě . µt = 0.16. Jako druhá by se dostala do smyku zadní náprava. Šlo by o kombinovaný smyk, kdy by boční smyk byl doplněn prokluzem kol při zrychlování po průjezdu apexem zatáčky. Výsledný směr smyku se dá odečíst z grafu a svíral by se směrem jízdy úhel . přibližně 70◦ . Tento smyk by nastal při hodnotě µt = 0.15. V případě prostřední nápravy by došlo k čistému bočnímu smyku, který by nastal . při hodnotě µt = 0.13 a to v okamžiku průjezdu apexem zatáčky. Ve výše uvedených závěrech nejsou zahrnuty rozdíly v rozložení brzdných sil, nerovnoměrnosti rozložení hmotnosti cestujících nebo změny kvality povrchu vozovky.
162
Kapitola 13 POUŽITÍ MODELU A VERIFIKACE Verifikace vytvořeného modelu byla možná díky spolupráci s dopravním podnikem města Brna, kde byla provedena praktická jízdní zkouška u nízkopodlažního kloubového autobusu Irisbus Citelis 18 m na zasněžené odstavné ploše, viz obrázek 13.1. Obrázek zobrazuje vnitřní vybočení zadní nápravy autobusu Citelis 18m, které je
Obrázek 13.1: Stopy pneumatik, zdroj: DPMB, a.s. měřeno oproti stopě prostřední nápravy. Před pořízením snímku byl autobus vyrovnaný v přímé linii, po té bylo provedeno natočení předních řídících kol do téměř 163
maximálního vybočení vlevo a následoval rozjezd autobusu. V průběhu jízdy se úhel vybočení předních kol neměnil a pohyb se konal velmi nízkou, konstantní rychlostí, poté bylo provedeno měření maximálního rozdílu stopových poloměrů. Z fotografie 13.1 je zřejmé, že vzdálenost stop pneumatik prostřední a zadní nápravy činí 90 cm. Na tomto příkladu pohybu je možné demonstrovat použití hotového modelu a pokud výsledky výpočtu budou ve shodě s fotografií 13.1, tak i potvrdit jeho správnost.
13.1
Verifikace I - vybočení zadní nápravy
Nejprve načteme všechny soubory, které byly vytvořeny v průběhu tvorby matematického modelu. > restart; with(plots): > read "Kinem_1.sav": read "Kinem_2.sav": read "Kinem_3.sav": > read "Kinem_4.sav": read "Kinem_5.sav":
Současně zadáme i počáteční podmínky, pro kola prostřední nápravy byla zvolena hodnota poloměru 11m – vnější obrys stopy pneumatik. Ze šířky stop pneumatik a známého rozchodu kol prostřední nápravy je možné usoudit, že střed prostřední nápravy – řídící bod se pohyboval po kružnici o poloměru 9.8m. Vzhledem k tomu, že jde o pohyb konstantní rychlostí a se stálou křivostí trajektorie, jsou vstupní funkce v a κ velmi jednoduché. > Fsu4:=v=unapply(1,t),kappa=unapply(1/9.8,t): nsu4:=phi0=0,x0=0,y0=0:
Polohový vektor řídícího bodu a jeho první až třetí derivace podle času lze pro takto jednoduché vstupní funkce v a κ vyjádřit analyticky, protože v tomto případě mají rovnice (9.9) analytické řešení. > RXY:=simplify(value(eval(subs(Dsol1,Fsu4,nsu4,P0)))); > RXYt:=diff(RXY,t); RXYtt:=diff(RXY,t,t); RXYttt:=diff(RXY,t,t,t);
RXY := [9.8 sin(.102040816 t), 9.8 − 9.8 cos(.102040816 t)] RXY t := [1.000000000 cos(.102040816 t), 1.000000000 sin(.102040816 t)] RXY tt := [−.1020408163 sin(.102040816 t), .1020408163 cos(.102040816 t)] RXY ttt := [−.0104123281 cos(.102040816 t), −.0104123281 sin(.102040816 t)]
164
Dále vypočteme polohový vektor středu kloubu a jeho první a druhé derivace podle času. > w:=eval(subs(Fsu4,nsu4,v(t))): XYS:=BODP(RXYt,RXY,[-1.950,0.],w); > XYtS:=diff(XYS,t): XYttS:=diff(XYS,t,t):
XY S := [−1.95 cos(.1020408163 t) + 9.8 sin(.1020408163 t), 9.8 −1.95 sin(.1020408163 t) − 9.8 cos(.1020408163 t)] Zbývá doplnit počáteční polohu středu zadní nápravy a jeho vzdálenost od osy kloubu, stanovit čas ukončení iterace, resetovat vektor, který shromažďuje informace o průběhu iterace a iteraci je možné spustit. > DE:=[]: tf:=evalf(25): xy0:=[-6.575,0]: L0:=4.625: Digits:=24: > ITER();
N = 12, cas = 0.016, dT = 2.083333333333, = 19.52924594467 N = 18, cas = 0.047, dT = 1.388888888889, = 0.001764185348 N = 27, cas = 0.079, dT = 0.92592592592592, = 0.0002907806550497 N = 41, cas = 0.157, dT = 0.60975609756098, = 0.00005137714182887 N = 62, cas = 0.235, dT = 0.40322580645161, = 0.884278877930005 10−5 N = 93, cas = 0.375, dT = 0.26881720430107, = 0.158653952226585 10−5 N = 140, cas = 0.563, dT = 0.1785714285714, = 0.303069825942759 10−6 . Výpočet trajektorií kol provedeme naprosto stejným způsobem jako v předešlé kapitole. > N:=nops(T); > XYR:=[seq(RXY,t=T)]: XYRt:=[seq(RXYt,t=T)]: > XYRtt:=[seq(RXYtt,t=T)]: XYRttt:=[seq(RXYttt,t=T)]: > vs:=[seq(eval(subs(Fsu4,nsu4,v(t))),t=T)]: > vst:=[seq(eval(subs(Fsu4,nsu4,D(v)(t))),t=T)]: > vstt:=[seq(eval(subs(Fsu4,nsu4,(D@@2)(v)(t))),t=T)]: > Digits:=10: > KSLe:=[seq(BODP(XYRt[i],XYR[i],[0,1.064],vs[i]),i=1..N)]: > KSLi:=[seq(BODP(XYRt[i],XYR[i],[0,0.931],vs[i]),i=1..N)]: > KSPe:=[seq(BODP(XYRt[i],XYR[i],[0,-1.064],vs[i]),i=1..N)]: > KSPi:=[seq(BODP(XYRt[i],XYR[i],[0,-0.931],vs[i]),i=1..N)]:
165
> G1:=plot([KSLe,KSLi,KSPe,KSPi],color=red,thickness=[1,1,2,2]): > KPL:=[seq(BODP(XYRt[i],XYR[i],[5.355,1.044],vs[i]),i=1..N)]: > KPP:=[seq(BODP(XYRt[i],XYR[i],[5.355,-1.044],vs[i]),i=1..N)]: > G2:=plot([KPL,KPP],color=blue,thickness=[1,2]): > KZLe:=[seq(BODZ(XY[i],xy[i],[-4.625,1.064]),i=1..N)]: > KZLi:=[seq(BODZ(XY[i],xy[i],[-4.625,0.931]),i=1..N)]: > KZPe:=[seq(BODZ(XY[i],xy[i],[-4.625,-1.064]),i=1..N)]: > KZPi:=[seq(BODZ(XY[i],xy[i],[-4.625,-0.931]),i=1..N)]: > G3:=plot([KZLe,KZLi,KZPe,KZPi],color="DarkGreen",thickness=[1,1,2,2]):
Z trajektorií kol vybereme levá vnitřní kola prostřední a zadní nápravy a to jen ty body, které leží uvnitř první čtvrt kružnice levého vnějšího kola prostřední nápravy.
> kzle:=map(u->‘if‘((u[1]-1)*(10-u[2])>0,u,NULL),KZLe): > ksle:=map(u->‘if‘((u[1]-1)*(10-u[2])>0,u,NULL),KSLe): > nops(kzle),nops(ksle);
80,
81 .
Vybrané části trajektorií mají 80 a 81 bodů. Vložíme mezi ně 16 příček, které budou rovnoměrně rozděleny podle trajektorie levého vnějšího kola zadní nápravy a budou směřovat do nejbližšího bodu ležícího na trajektorii levého vnějšího kola prostřední nápravy. Vypočteme délky jednotlivých příček a příčky vykreslíme do společného grafu spolu s trajektoriemi ostatních kol. > nu:=map(u->u*5+3,[$0..15]): JL:=[]: DL:=[]: > for i in nu do; Dmin:=100; Jd:=max(1,i-5); Jh:=min(nops(ksle),i+5); for j from Jd to Jh do; d:=sqrt((kzle[i][1]-ksle[j][1])^2+(kzle[i][2]-ksle[j][2])^2); if d<=Dmin then Dmin:=d; Jm:=j; end if; end do; DL:=[DL[],Dmin]; JL:=[JL[],Jm]; end do:
166
> dl:=map(u->convert(0.01*round(u*100),string),DL): > dl:=map(u->‘if‘(u[1]=".",cat("0",u," m"),cat(u," m")),dl): > G5:=plot([ksle,kzle],scaling=constrained,thickness=2, color=[red,"DarkGreen"]): > G6:=plot(map(v->[kzle[v[1]],ksle[v[2]]],zip((u,v)->[u,v],nu,JL)), color=black): > G7:=textplot(zip((u,v)->[0.5*(kzle[v[1]]+ksle[v[2]])[],u],dl, zip((u,v)->[u,v],nu,JL)),align=ABOVE,RIGHT): > display(G1,G2,G3,G6,G7,labels=["x [m]","y [m]"], labeldirections=[horizontal,vertical],scaling=constrained, view=[1..12.5,1..10]); 10 y [m]
0.90 m 0.90 m 0.89 m
8
0.88 m 0.87 m 0.85 m
6
0.83 m 0.81 m 0.79 m
4
2
0.76 m 0.72 m 0.67 m 0.62 m 0.56 m 0.48 m 0.39 m 2
4
x [m] 6
8
10
12
Obrázek 13.2: Stopy pneumatik – verifikace Jak je z grafu na obrázku 13.2 jasně patrné, výsledky výpočtu matematického modelu jsou zcela ve shodě s fotografií 13.1. 167
13.2
Verifikace II - vnější vybočení zadní části
V tištěném dokumentu není možné předvést videozáznam. Proto je na obrázku 13.4 sekvence osmi fotografií, které zachycují rozjezd autobusu Citelis 18m. Počáteční podmínky testu, až na počasí, byly shodné s předešlým případem. Autobus byl vyrovnán podél 12cm široké bílé linie. Rozjel se stejným způsobem jako v předešlém testu. Na jednotlivých fotografiích jsou zachyceny jednotlivé pozice autobusu v průběhu testu. Na sedmé fotografii je dobře viditelný přesah pravého předního rohu zadní části autobusu přes orientační linii. Vzhledem k šířce linie je možné odhadnout přesah přibližně polovinu její šířky, tedy vybočení odpovídající části karoserie o 18cm. Budeme tedy dále pokračovat v práci s modelem tak, že stanovíme trajektorie levých rohů karoserie přiléhajících ke kloubu. Na těchto trajektoriích nalezneme body s minimálními hodnotami souřadnice y. Od této souřadnice odečteme poloviční šířku karoserie autobusu – 1.25m a dostaneme hodnotu maximálního vybočení. Výsledky samozřejmě znázorníme graficky, viz graf 13.3. > R2P:=[seq(BODP(XYRt[i],XYR[i],[-0.975,-1.250],vs[i]),i=1..N)]: > R3P:=[seq(BODZ(XY[i],xy[i],[-0.710,-1.250]),i=1..N)]: > ym:=min(map(u->u[2],R3P)); > YM:=map(u->‘if‘(u[2]=ym,u,NULL),R3P)[]; > G1:=plot(-1.25,x=-2.7..1,color=black): > G2:=plot([YM,[YM[1],-1.25]],color=black): > G3:=textplot([0.5*(YM+[YM[1],-1.25])[], cat(" 0",convert(evalf((-1.25-ym),3),string)," m")],align=right): > display(G1,G2,G3,plot([R2P,R3P],view=[-2.7..1,-1.5..-1.2], scaling=constrained));
0.17 m –2.5
–2
–1.5
–1
–0.5
Obrázek 13.3: Vybočení zadní části – verifikace
168
y [m] –1.2 –1.3 –1.4 –1.5
x [m] 0.5
1
Obrázek 13.4: Rozjezd autobusu, zdroj: DPMB, a.s.
169
13.3
Využití modelu pro návrh konstrukce
Jak bylo ukázáno v předešlé části, dochází při průjezdu zatáčkou k vybočení krycí části kloubového spojení u kloubového autobusu mimo linii vyrovnané soupravy. V této části si ukážeme jak modelovat závislost tohoto vybočení na konstrukčních parametrech. Pro všechny následující výpočty předpokládejme, že autobus se rozjíždí z vyrovnaného směru do zatáčky o konstantním poloměru r = 10m. Výpočty maximálního vybočení provedeme pro následující proměnné: d1 – vzdálenost osy kloubu od středu zadní nápravy. Použité hodnoty jsou d1 = [1.80, 1, 95, 2, 10]m. Pro autobus Citelis 18m tato hodnota činí 1.95m. d2 – vzdálenost přední hrany karoserie zadní části autobusu od osy kloubu. Použité hodnoty jsou d2 ∈< 0.50, 1.25 >m s krokem 0.10m. Pro autobus Citelis 18m tato hodnota činí 0.71m. L0 – vzdálenost středu zadní nápravy od osy kloubu. Výpočet bude proveden pro hodnoty L0 ∈< 3.50, 5.5 >m s krokem 0.10m. Pro autobus Citelis 18m tato hodnota činí 4.625m. Při konstantní křivosti zatáčky trajektorie nezávisí na rychlosti. Proto je možné volit konstantní rychlost a dobu trvání pohybu tf zvolit tak, aby souřadnice sledovaného bodu po ukončení výpočtu byly větší než záporná polovina šířky karoserie autobusu. Pro autobus Citelis 18m jde o hodnotu -1.25m. > Fsu5:=v=unapply(1,t),kappa=unapply(1/r,t): > nsu5:=phi0=0,x0=0,y0=0: > RXY:=simplify(value(eval(subs(Dsol1,Fsu5,nsu5,P0)))): > RXYt:=diff(RXY,t): RXYtt:=diff(RXY,t,t): RXYttt:=diff(RXY,t,t,t): > w:=eval(subs(Fsu4,nsu4,v(t))): > XYS:=BODP(RXYt,RXY,[-d1,0.],w): > XYtS:=diff(XYS,t): XYttS:=diff(XYS,t,t): > r:=10.; > D1:=[1.800,1.950,2.100]: > Colors:=[blue,red,"DarkGreen"];
170
> for n from 1 to nops(D1) do; R3LD:=[]; d1:=D1[n]; D2:=0.05*[$10..25]: for L0 from 3.5 to 5.5 by 0.1 do; DE:=[]: tf:=evalf(5): xy0:=[-1.950-L0,0]; print(’L0’=L0,’xy0’=xy0); ITER(); N:=nops(T); R3y:=zip((u,v)->1.250+BODZ(u,v,[-d2,-1.250])[2],XY,xy); R3LD:=[R3LD[],map(u->[L0,u,min(eval(R3y,d2=u))],D2)]; end do: M3[n]:=display(MESH(R3LD),axes=boxed,color=Colors[n],style=wireframe): G[n]:=plot(map(v->map(u->u[2..3],v),R3LD),color=Colors[n]): end do:
Výsledky výpočtů znázorníme ve společném prostorovém grafu, viz graf 13.5. > display(seq(M3[i],i=1..n-1),labels=["L0 [m]","d2 [m]","Dy [m]"], labeldirections=[horizontal,horizontal,vertical],orientation=[-60,75]);
A také ve společném plošném grafu, viz graf 13.6, který je přehlednější. > display(seq(G[i],i=1..n-1),labels=["d2 [m]","Dy [m]"], labeldirections=[horizontal,vertical]);
171
–0.14 Dy [m]
–0.15
d1 = 1.80 m
–0.16
–0.17
d1 = 1.95 m
d1 = 2.10 m
–0.18
d2 [m] 3.5
L0 [m] 4
4.5
5
0.6
5.5
0.7
0.8
0.9
1
1.1
–0.14
Dy [m]
Obrázek 13.5: Vybočení zadní části – prostorové zobrazení
–0.15
–0.16
d1 = 1.80 m
L0 =
5.5
m
3.5 m L0 = .5 m 5 = L0
–0.17 L0 =
3.5 m
L0
–0.18
d1 = 1.95 m
.5 m =5
d1 = 2.10 m L0 =
0.5
3.5 m
d2 [m] 0.6
0.7
0.8
0.9
Obrázek 13.6: Vybočení zadní části – plošné zobrazení
172
1
1.1
1.2
1.2
Kapitola 14 VÝSLEDKY A DISKUSE Je možné konstatovat, že cíle práce byly dosaženy. Pokud se vrátíme k cílům práce, tak jak byly definovány na straně 26, je možné provést jejich následující vyhodnocení. 1. Bylo nalezeno analyticky přesné řešení inverzního problému kinematiky, viz rovnice (9.9) na straně 62 a tyto rovnice byly verifikovány pro jednoduché případy. 2. Proběhla verifikace odvozeného analytického řešení. Toto řešení bylo postupně porovnáváno s výsledky numerického řešení založeného na Eulerově metodě, viz část 9.3.2, procedura Euler na straně 71 a graf 9.2. Dále proběhlo porovnání analytického řešení a řešení pomocí mocninných řad, viz část 9.3.3 a graf 9.6. Na závěr proběhlo porovnání výsledků analytického řešení oproti numerickému řešení, založenému na metodě Runge-Kutta, viz část 9.3.4 na straně 76. Je možné konstatovat, že obě řešení jsou zcela rovnocenná v oblasti přesnosti numerických výstupů, viz grafy 9.7, 9.8 a 9.9. Rozdíly jednotlivých řešení jsou pouze na úrovni zaokrouhlovacích chyb. Hlavním přínosem nalezeného řešení je ta skutečnost, že nalezené řešení je ve tvaru analytických funkcí, které je možné použít pro další analytické výpočty, zejména jako základ případných matematických modelů. 3. Byly odvozeny vhodné funkce popisující průběh křivosti trajektorie směrového oblouku a ukázány jejich výhody a nevýhody, viz kapitola 10, funkce (10.5) 173
a (10.6) na straně 88. K těmto funkcím byly nalezeny odpovídající trajektorie pohybu, viz grafy 10.3 a 10.4. 4. Odvozené analytické řešení bylo použito pro dva možné způsoby matematického modelování trajektorie autobusu, viz část 11 a výsledné grafy 11.2 a graf 11.3. Modely byly verifikovány pomocí výpočtu průjezdu směrového oblouku s konstantní křivostí, viz grafy 11.5 a 11.6. Z verifikace jednoznačně vyplynula poloha řídícího bodu, jehož polohový vektor je zadán rovnicemi (9.6), ve středu zadní nápravy autobusu. 5. V části 11.2 byly odvozeny základní vztahy pro kinematiku vlečných křivek, viz rovnice (11.6) na straně 108. Protože jde o integro-diferenciální rovnice, byl vytvořen algoritmus jejich numerického řešení využívající metodu RungeKutta, viz procedura RK45 na straně 110. Procedura RK45 byla ještě doplněna procedurou ITER, která počítá polohu autobusu v průběhu pohybu. Pro dosažení vysoké numerické přesnosti je procedura vybavena automatickou volbou časového kroku, viz strana 111. Nicméně následná verifikace prokázala nevhodnost použití obou procedur pro výpočet polohy klasického autobusu, viz graf 11.5. 6. Obě dvě procedury RK45 a ITER byly beze zbytku využity pro výpočet polohy zadní části kloubového autobusu, viz kapitola 12. (a) Byly odvozeny procedury, které umožňují výpočty vektorů polohy, rychlostí a zrychlení libovolného bodu autobusu, viz část 12.1.1 na straně 129. (b) Dále byly vytvořeny procedury pro výpočet tečného a normálového zrychlení libovolného bodu autobusu, viz část 12.3.4 na straně 142 a byly vytvořeny procedury pro stanovení křivosti, evoluty trajektorie libovolného bodu autobusu a také procedura pro stanovení pevné polodie pro obě dvě části autobusu, viz část 12.3.5 na straně 146. (c) Byla vytvořena procedura stanovující průjezdní profil klubového autobusu, viz část 12.5 na straně 152 a graf 12.18. 174
(d) Byly odvozeny procedury pro stanovení úhlové rychlosti rotace obou částí autobusu, viz část 12.4 na straně 151 a a graf 12.15, dále byla odvozena procedura určující úhel zalomení soupravy, viz část 12.6 na straně 158 a grafy 12.19 a 12.20. 7. Znalost průběhů tečných a normálových zrychlení byla využita pro vyhodnocení nebezpečí prokluzu nebo bočního smyku, viz část 12.7 na straně 158 a graf 12.21. 8. V části 13 na straně 163 byly výsledky matematického modelu konfrontovány s reálnými situacemi, které nastaly při jízdě autobusu Citelis 18m, viz grafy 13.2 a 13.3. V obou případech bylo dosaženo shody modelu s realitou. Zároveň byl v této části matematický model využit model ke stanovení jízdních vlastností kloubového autobusu v závislosti na jeho konstrukčních parametrech, viz grafy 13.5 a 13.6. Matematický model jízdních vlastností kloubové soupravy je vybudován modulárním systémem, což znamená, že je možné jej využívat jako celek, nebo pouze vybranou část. Je nezávislý na konstrukčních parametrech autobusu, což umožňuje jeho využití i pro studium jízdních vlastností virtuálních autobusů. Umožňuje studium chování autobusu na různé způsoby ovládání autobusu řidičem, ovšem za předpokladu, že je možné tyto manévry matematicky popsat. Navržený model je možné okamžitě použít i pro studii jízdních vlastností více kloubové jízdní soupravy. Složité manévry, je možné rozdělit na posloupnost elementárních manévrů, které je možné řešit postupně. Výsledné hodnoty z předešlého kroku je možné použít jako počáteční podmínky pro krok následující a tak řešit i složité situace. Zásadní výhodou matematického modelu je jeho implementace na prostředí programu Maple. Tento program computerové algebry je schopen provozu na téměř libovolném PC. Výhodou programu Maple je jeho univerzálnost a nízké pořizovací náklady. Implementace předloženého modelu na tento program tak umožňuje budoucí široké a velmi levné využívání modelu. Díky širokému uživatelskému zázemí lze předpokládat i další rozvoj modelu. Zobecnění modelu na nerovinný pohyb je možné, ale vzhledem k tomu, že model je založen na vztazích kinematiky rovinných pohybů lze očekávat významné kom175
plikace. Jízdu po nakloněné rovině je možné řešit jako rovinný pohyb, s podmínkou zohlednění složky tíhového zrychlení rovnoběžné s nakloněnou rovinou. Toto zrychlení by pak měnilo podmínky stability a dynamiky jízdy. Změnu povrchu vozovky charakterizuje změna koeficientu tření. Tuto změnu je možné zahrnout do závislosti velikosti rychlosti vozidla jako další změnu tečného zrychlení vozidla. Samozřejmě změna povrchu vozovky bude mít vliv i na podmínky stability a dynamiky jízdy, podobně jako náhodné vnější síly. Jako první rozšíření v budoucnosti je možné očekávat studii vlivu změny rychlosti vozidla při průjezdu zatáčkou nebo vlivu nerovnoměrného otáčení volantu, případně jejich kombinaci. Jako další budoucí využití lze předpokládat zpětnou analýzu chování řidiče. Do budoucna lze odvozený matematický model využít také ke studiu vlivu reakční doby řidiče na ovladatelnost autobusu.
176
Kapitola 15 ZÁVĚR Předložená disertační práce vznikla za velmi dobré spolupráce s dopravním podnikem města Brna, (DPMB a.s.), provozovatelem městské hromadné dopravy ve městě Brně, kde se podařilo získat dlouholeté osobní praktické zkušenosti s řízením autobusů přímo v městském provozu, na které výsledky této práce navazují. Výsledkem této práce je vytvořený matematický model pohybu kloubové jízdní soupravy založen na předpokladu, že průběh aktivit řidiče v čase je možné popsat pomocí matematických funkcí. Řidič ovládá autobus volantem, pomocí kterého určuje křivost trajektorie a brzdovým či plynovým pedálem, pomocí nichž přímo ovlivňuje absolutní velikost rychlosti, což jsou základními vstupními parametry vytvořeného matematického modelu, dalšími nedílnými vstupy musí být konstrukční parametry autobusu, zejména: převisy karoserie, poloha a uspořádání náprav a poloha spojovacích bodů (u jízdních souprav). Důležitou proměnnou je koeficient tření, hrající důležitou roli při řešení dynamiky jízdy, obzvláště při změně rychlosti jízdy nebo změně směru jízdy. Na základě našich předložených výsledků je možné stanovit velikost vektorů sil, které mohou působit na řidiče, cestující, tak i celý autobus a použít tyto výsledky pro objektivní stanovení optimální rychlosti při průjezdu zatáčkou z hlediska bezpečnosti cestujících s ohledem na technické parametry autobusu. Další přínos modelu je analýza jízdního manévru plnící nezastupitelnou úlohu při vývoji autobusů, pneumatik a při vyhodnocení dopravních nehod, kde je cílem výpočtů také zjištění odezev autobusu v mezních stavech (smyk). Volba vhodné technické koncepce auto177
busu má výrazný vliv na jeho výsledné jízdní vlastnosti a to jak při přímé jízdě, tak zejména při průjezdu zatáčkou, je to dáno především systémem pohonu a rozměry autobusu. Při návrhu rozměrů skutečného autobusu je však problém splnit protichůdné požadavky vycházející z maximálně možných hodnot rozměrů autobusu dané předpisy a co největší možnou kapacitou, při zachování minimální potřebné šířky jízdního pruhu a minimálního poloměru zatáčení autobusu, zvláště pak u autobusů kloubových. Využití matematického modelu pohybu autobusu nám umožnilo komplexnější pohled na studovaný problém, kde jsme schopni sledovat, napodobovat a předpovídat chování a vlastnosti soupravy s možností minimalizovat důsledky chybných rozhodnutí řidiče. Výsledky tento předpoklad jednoznačně potvrdily. Je tak možné konstatovat, že cíle práce byly beze zbytku naplněny a z hlediska dalších aplikací v oblastech, které souvisí s obsahem práce dokonce překročeny.
178
SEZNAM LITERATURY ARSENIN, V.S., 1977: Matematická fyzika-základné rovnice a špeciálné funkce. Bratislava, 425 s. ARFKEN, G.B., WEBER, H.J.,1995: Mathematical methods for physicists. Academic press, ISBN 0-12-059816-7. BAJER, J., 2004: Mechanika 2. Univerzita Palackého v Olomouci, Olomouc, 444 s., ISBN 80-244-0884-8. BARTOŇ, S., 1993: Habilitační práce – Využití symbolického počtu v zemědělství. Vysoká škola zemědělská v Brně, s. 24-27. BARTOŇ, S. a kol., 1999: MAPLE V 4. STU Bratislava, 161 s., ISBN 80-227-1196-9. BARTOŇ, S., 2006: Podíl fyziky a matematiky na pochopení světa. In Věda a příroda, mezioborový pohled na přírodní vědy s příklonem k biotechnické - bionické problematice. Kostelec nad Černými lesy, Lesnická práce, s. 36-40., ISBN 8086386-79-1. BARTOŇ, S., 2013: Publikace připravována do tisku. BLAŤÁK, O., 2010: Analýza měření jízdní dynamiky vozidel s vyžitím matematického modelování. Disertační práce, Vysoké učení technické v Brně, 91 s. Databáze online [cit. 2012-8-15]. Dostupné na: https://dspace.vutbr.cz/bitstream/handle/11012/4388/dizertacni prace Blatak 2010.pdf?sequence=2. 179
BLAŽEK, J., 2002: Chování autobusu při brzdění. Článek ve sborníku, Vysoká škola báňská - Technická univerzita Ostrava, ISBN 80-248-0155-8. BRADÁČ, A. a kol., 1999: Soudní inženýrství. Brno, Akademické nakladatelství CERM, ISBN 80-7204-133-9. BRAND, L., 1947: Vector and Tensor Analysis. John Wiley, New York, p. 121-124. BUCHAR J., 1994: Úvod do programového souboru Maple V. Vysoká škola zemědělská v Brně, Brno, ISBN 80-7157-117-2. ČERNÝ, L., 2013: Pneumatiky pro městské autobusy a regionální nákladní dopravu. s.34-43, únor, Autoprofi. DĚMIDOVIČ, B.P., MARON, J.A.,1966: Základy numerické matematiky. Praha, 721 s. DVOŘÁK, F., 2011: Patrové autobusy by se měly zakázat, říkají odborníci na bezpečnost. Databáze online [cit. 2011-7-21]. Dostupné na: http://auto.idnes.cz/patrove-autobusy-by-se-mely-zakazat-rikaji-odbornici-nabezpecnost-1fy-/automoto.aspx?c=A110718 135127 automoto fdv DVOŘÁK, F., 2011: K chorvatskému moři v pohodlí limuzíny. Moderní bus umí sám zabrzdit. Databáze online [cit. 2011-6-8]. Dostupné na: http://auto.idnes.cz/k-chorvatskemu-mori-v-pohodli-limuziny-moderni-bus-umisam-zabrzdit-1g6-/auto testy.aspx?c=A110607 105726 auto testy fdv GANDER, W., BARTOŇ, S., HŘEBÍČEK, J., 2004: The tractrix and similar curves. In: Gander, W., Hřebíček, J.: Solving problems in Scientific Computing using Maple and Matlab. 4. ed., Heidelberg: Springer, p. 1–26. ISBN 3-540-21127-6 HAKL Z., 2005: Matematické modelování biologických a technologických procesů v zemědělství. Disertační práce (in MS, dep. knihovna MENDELU v Brně), Mendelova univerzita v Brně, Brno, 97 s. HALLIDAY, D., RESNICK, R., WALKER, J., 2003: Fyzika: Vysokoškolská učebnice obecné fyziky – Mechanika. Brno, VUTIUM, 328 s., ISBN 80-214-1868-0. 180
HAVLÍK, K., 2005: Psychologie pro řidiče. Portál, Praha, 223 s., ISBN 80-7178-542-3. HERDA, V., 2008: Rozbor vlivu konstrukčního uspořádání kloubových vozidel na jejich jízdní vlastnosti. Diplomová práce, Univerzita Pardubice, dopravní fakulta Jana Pernera, Databáze online [cit. 2012-11-10]. Dostupné na: http://dspace.upce.cz/bitstream/10195/29465/1/text.pdf, 69 s. HORÁK, Z.a kol., 1961: Technická knižnice inženýra. s. 51-457, Praha, HORÁK, Z., 1958: Praktická fysika. SNTL, Praha, 621 s. HORSKÝ, J. a kol., 2001: Mechanika ve fyzice. Academia, Praha, 401 s., ISBN 80-200-0208-1 HUŠEK, R., LAUBER,J., 1987: Simulační modely. SNTL, ALFA, Praha, 349 s. HECK, A., 1993: Introduction to Maple. Springer-Verlag, New York, 479 s., ISBN 0-387-97662-0 IRISBUS Citelis, 2008: Citelis obsluha a údržba. Iveco SpA, Customer service bus, Italy, Torino, 225 p. IRISBUS Citelis 18 m, 2012: Městské autobusy. online [cit. 2012-09-20], Dostupné na: http://web.iveco.com/czech/collections/technical sheets/Documents/Irisbus/ M%C4%9Bstsk%C3%A9%20autobusy/03 Citelis Diesel 18m CZ E5 Kv% C3%8Ften 2010.pdf. KAROSA ŠM 16,5 M, 2013: online, [cit. 2013-01-24]. Dostupné na: http://www.sx11.ic.cz/FOTKY/prospekt165/SMkloub.pdf KAMM1, 2013: online, [cit. 2013-03-18]. Dostupné na: http://cs.autolexicon.net/articles/kammova-kruznice-prilnavosti/ KAMM2, 2013: online, [cit. 2013-04-19]. Dostupné na: http://opvk.cdvinfo.cz/file/dynamika-jizdy-vozidel/ KEITH, D., 2004: Jazyk matematiky-jak zviditelnit neviditelné. Dokořán, Praha, 343 s., ISBN 80-65569-09-08. 181
KLOUB, 2013: online, [cit. 2013-01-10]. Dostupné na: http://www.hubner-germany.com/fahrzeuggelenksysteme.html. KLUVÁNEK, I., MIŠÍK, L., ŠVEC, M., 1961: Matematika II. Bratislava, 852 s. KOMPANĚJEC, A.S.,1960: Teoretická fysika. s. 11-67. In: Mechanika, SNTL, Praha, 493 s. KOTYZA, P., 2008: Požadavky na konstrukci náprav u vícečlánkových autobusů. Diplomová práce, Databáze online [cit. 2012-8-15]. Dostupné na: https://dspace.upce.cz/bitstream/10195/29257/1/text.pdf. KRUMPHOLC T., 2010: Autobusy mhd a bezpečnost silničního provozu. Diplomová práce (in MS, dep. Knihovna MENDELU v Brně), Mendelova a lesnická univerzita v Brně, Brno, 70 s. KRUMPHOLC, T., BARTOŇ, S., 2011: Stanovení trajektorie vozidla po zásahu řidiče do řízení. [CD-ROM]. Kvalita a spoľahlivosť technických systémov – Zborník vedeckých prác. p. 186-191. SPU Nitra, ISBN 978-80-552-0595-3 KRUMPHOLC, T., BARTOŇ, S., 2011: Studie trajektorie autobusu při brzděném průjezdu zatáčkou. [CD-ROM]. MendelNet 2011 – Proceedings of International Ph.D. Students Conference. p. 879-904. ISBN 978-80-7375-563-8 KRUMPHOLC, T. BARTOŇ, S., 2012: Matematický model řízené zatáčky autobusu. [CD-ROM]. Recent Advances in Agriculture, Mechanical Engineering and Waste. p. 120-125. SPU Nitra, ISBN 978-80-552-0781-0 KRUMPHOLC, T., BARTOŇ, S. 2013: Driver‘s influence on kinematics of articulated bus. Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis, LXI, No. 3, pp. 683-689. KVASNICA, J., 1997: Matematický aparát fyziky. 383 s., ISBN 80-200-0088-7 KVASNICA, J. a kol., 2004: Mechanika. Academia, Praha, 2.vyd., 476 s., ISBN 80-200-1268-0 LEECH, J.W., 1970: Klasická mechanika. SNTL, Praha, 131 s. 182
LIDE, D. R., 1992: CRC Handbook of chemistry and physics. In: Praktikal laboratory data-section 15. Coeficient of fiction, ISBN 0-8493-0565-9 MADELUNG, E., 1975: Příručka matematiky pre fyzikou. Bratislava, 636 s. MAPLE, 2009: Maple User Manual. p. 147, Waterloo Maple, ISBN 978-1-897310-69-4 MCGRAW, H., 1992: Encyklopedia of physics. New York, 1624 s. ISBN 0-07-051400-3 MD ČR, 2004: Vlečné křivky pro ověřování průjezdnosti prvků pozemních komunikací. CDV, Brno, ISBN 80-86502-14-7 MERCEDES, 2013 : online, [cit. 2012-11-29]. Dostupné na: http://www.mercedes-benz.cz/content/czechia/mpc/mpc czechia website/ czng/home mpc/bus/home/services accessories/services online/ download brochures.0003.html. PTÁČEK, P., 2012: Elektronická zábrana proti převrácení. s.48-49, březen, Autoprofi, 58 s. RALSTON, A., 1978: Základy numerické matematiky. Academia Praha REKTORYS, K. 2000: Přehled užité matematiky II. 7. vyd., Praha: Prometheus, 2000, xxxii, 874 p. ISBN 80-7196-181-7 SEMELA, M., 2007: Softwarová podpora pro obrázkovou prezentaci výsledku analýzy silniční nehody. Ústav soudního inženýrství VUT v Brně, Databáze online [cit. 2012-11-20]. Dostupné na: http://www.fce.vutbr.cz/veda/JUNIORSTAV2007/pdf/Sekce 7/ Semela Marek Cl.pdf SPALLEK, K., 1980: Kurven und Karten. Bibliographisches Institut Mannheim Wien Zürich, ISBN 3-411-01593-4 ŠAFRÁNEK, J., 2005: Biomechanika a modely. Ostatní účastníci dopravy. Vyhodnocení veličin působících na člověka. Praha 2005, Dílčí zpráva o řešení projektu č. FT-TA/024. Archiv autora 183
ŠMÍD V., 2011: Matematický model vybraného zemědělského mechanismu. Disertační práce (in MS, dep. knihovna MENDELU v Brně), Mendelova univerzita v Brně, Brno, 142 s. VIČÍK, P., 2011: Analýza dopravních nehod. Bakalářská práce, Vysoké učení technické v Brně, Databáze online [cit. 2012-11-8]. Dostupné na: https://dspace.vutbr.cz/bitstream/handle/11012/6245/Anal%C3%BDza dopravn%C3%ADch nehod%20-%20Petr%20Vi%C4%8D%C3%ADk.pdf? sequence=1, 60 s. VLK, F., 2000: Podvozky motorových vozidel. 1.vyd., Nakladatelství Vlk, Brno, 392 s., ISBN 80-238-5273-6 VLK, F., 2003: Dynamika motorových vozidel. 2.vyd., Nakladatelství Vlk, Brno, 432 s., ISBN 80-239-0024-2 VOLVO, 2012: online, [cit. 2012-11-13]. Dostupné na: http://images.volvobuses.com/#1372004594093 1 VYHLÁŠKA č. 341/2002 Sb. O schvalování technické způsobilosti a o technických podmínkách provozu vozidel na pozemních komunikacích. (příloha č. 18). WEBFYZIKA, 2012: online [cit. 2012-09-25] Dostupné na: http://webfyzika.fsv.cvut.cz/PDF/webFyzikavztahy/mechanika.pdf. WOLFRAM, S., 1959: Mathematica-A system for doing mathematics by computer. 961 s., ISBN 0-201-51502-4 ZATÁČKA1, 2012: online, [cit. 2012-11-20]. Dostupné na: http://rcautaliberec.webnode.cz/technicky-koutek/technika-jizdy/ ZATÁČKA2, 2013: online, [cit. 2013-01-20]. Dostupné na: http://www.autoweb.cz/skola-jizdy-zatacky-stopa-a-apex/ ZATAČKA3, 2013: online, [cit. 2013-03-23]. Dostupné na: http://cs.autolexicon.net/articles/aquaplaning/
184