• Nebyly nalezeny žádné výsledky

AutomatickátvorbamodelutensegritickéstrukturyvprostředíMATLABSIMULINKaSIMSCAPEAutomaticassemblingofatensegriticstructuremodelinMATLABSIMULINKandSIMSCAPE ČeskévysokéučenítechnickévPrazeFakultastrojní

N/A
N/A
Protected

Academic year: 2022

Podíl "AutomatickátvorbamodelutensegritickéstrukturyvprostředíMATLABSIMULINKaSIMSCAPEAutomaticassemblingofatensegriticstructuremodelinMATLABSIMULINKandSIMSCAPE ČeskévysokéučenítechnickévPrazeFakultastrojní"

Copied!
56
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

České vysoké učení technické v Praze Fakulta strojní

Ústav mechaniky, biomechaniky a mechatroniky Obor: bez oboru

Automatická tvorba modelu

tensegritické struktury v prostředí MATLAB SIMULINK a

SIMSCAPE

Automatic assembling of a tensegritic structure model in

MATLAB SIMULINK and SIMSCAPE

BAKALÁŘSKÁ PRÁCE

Vypracoval: Martin Prokop

Vedoucí práce: Ing. Jan Zavřel, Ph.D.

Rok: 2021

(2)

ZADÁNÍ BAKALÁŘSKÉ PRÁCE

I. OSOBNÍ A STUDIJNÍ ÚDAJE

483277 Osobní číslo:

Martin Jméno:

Prokop Příjmení:

Fakulta strojní Fakulta/ústav:

Zadávající katedra/ústav: Ústav mechaniky, biomechaniky a mechatroniky Teoretický základ strojního inženýrství

Studijní program:

bez oboru Studijní obor:

II. ÚDAJE K BAKALÁŘSKÉ PRÁCI

Název bakalářské práce:

Automatická tvorba modelu tensegritické struktury v prostředí MATLAB SIMULINK a SIMSCAPE Název bakalářské práce anglicky:

Automatic assembling of a tensegritic structure model in MATLAB SIMULINK and SIMSCAPE Pokyny pro vypracování:

1) Seznamte se s modelováním v prostředí MATLAB SIMULINK a SIMSCAPE, zejména s možností tvorby modelu založené na jeho generování pomocí programového kódu.

2) Seznamte se s vlastnostmi tensegritických struktur a s jejich modelováním.

3) Algoritmus automatického generování v prostředí MATLAB SIMULINK a SIMSCAPE aplikujte na vytvoření tensegritické struktury. Strukturu simulujte.

Seznam doporučené literatury:

R. E. Skelton a M. C. Oliveira. Tensegrity Systems.Springer, Boston, 2009. ISBN 978-0-387-74241-0

Jméno a pracoviště vedoucí(ho) bakalářské práce:

Ing. Jan Zavřel, Ph.D., odbor mechaniky a mechatroniky FS

Jméno a pracoviště druhé(ho) vedoucí(ho) nebo konzultanta(ky) bakalářské práce:

Termín odevzdání bakalářské práce: 13.08.2021 Datum zadání bakalářské práce: 28.04.2021

Platnost zadání bakalářské práce: _____________

___________________________

___________________________

___________________________

prof. Ing. Michael Valášek, DrSc.

podpis děkana(ky)

doc. Ing. Miroslav Španiel, CSc.

podpis vedoucí(ho) ústavu/katedry

Ing. Jan Zavřel, Ph.D.

podpis vedoucí(ho) práce

III. PŘEVZETÍ ZADÁNÍ

Student bere na vědomí, že je povinen vypracovat bakalářskou práci samostatně, bez cizí pomoci, s výjimkou poskytnutých konzultací.

Seznam použité literatury, jiných pramenů a jmen konzultantů je třeba uvést v bakalářské práci.

.

Datum převzetí zadání Podpis studenta

(3)

Prohlášení

Prohlašuji, že jsem svou bakalářskou práci vypracoval samostatně a použil jsem pouze podklady (literaturu, projekty, SW atd.) uvedené v přiloženém seznamu.

V Praze dne ... ...

(4)

Poděkování

Děkuji vedoucímu práce Ing. Janu Zavřelovi, Ph.D. za neocenitelné rady a pomoc při tvorbě bakalářské práce. Dále bych chtěl poděkovat své rodině za podporu při studiu, bez které bych to nezvládl.

Martin Prokop

(5)

Název práce:

Automatická tvorba modelu tensegritické struktury v prostředí MATLAB SIMULINK a SIMSCAPE

Autor: Martin Prokop

Studijní program: Teoretický základ strojního inženýrství Druh práce: Bakalářská práce

Vedoucí práce: Ing. Jan Zavřel, Ph.D.

Odbor mechaniky a mechatroniky

Abstrakt: Práce se zabývá problematikou automatického ge- nerování modelů tensegritických struktur v pro- středí SIMSCAPE MBS pomocí kódu v prostředí MATLAB. V práci jsou popsány potřebné části softwaru a proces automatického generování sys- témů v prostředí SIMSCAPE. Dále jsou vymode- lovány hlavní části tensegritických struktur. Z vy- tvořených modelů jsou následně pomocí softwaru vytvořeny struktury a je odsimulováno jejich zatí- žení.

Klíčová slova: Tensegrity, Simscape MBS, Automatické genero- vání modelů

Title:

Automatic assembling of a tensegritic structure model in MATLAB SI- MULINK and SIMSCAPE

Author: Martin Prokop

Abstract: This thesis deals with the problem of automatic generation of tensegrity structure models in SIM- SCAPE MBS environment using MATLAB code.

The paper describes the necessary parts of the soft- ware and the process of automatic generation of systems in the SIMSCAPE environment. Further- more, the main parts of tensegrity structures are modeled. From the generated models, the structu- res are subsequently created using the software and their loads are simulated.

Key words: Tensegrity, Simscape MBS, Automatic model assembly

(6)

Obsah

Seznam použitých zkratek 8

Seznam obrázků 9

Cíle práce 2

Úvod 3

1 Simscape MBS 7

1.1 Modelování v Simscape MBS . . . 7

1.1.1 Solver bloky. . . 7

1.1.2 Modely absolutně tuhých těles . . . 8

1.1.3 Transformace souřadnicových systémů . . . 9

1.1.4 Kinematické dvojice. . . 10

1.1.5 Blok Matlab funkce . . . 11

1.1.6 Interní síla . . . 11

1.1.7 Subsystémy . . . 11

1.1.8 Vlastní knihovny bloků . . . 13

1.2 Generování Simscape MBS z Matlab skriptu . . . 15

1.2.1 Inicializační příkazy. . . 15

1.2.2 Přidání bloků . . . 16

1.2.3 Spojení bloků . . . 17

1.2.4 Práce se subsystémy . . . 17

1.2.5 Spuštění soustavy . . . 19

2 Modelování tensegiritcké strukury 20 2.1 Modelování základních prvků . . . 21

2.1.1 Modelování tlačných prvků . . . 21

2.1.2 Modelování tažných prvků . . . 23

2.2 Bloky hybridní struktury . . . 26

2.2.1 Blok stupně . . . 26

2.2.2 Blok mezistupně . . . 28

2.2.3 Blok rámu . . . 29

2.2.4 Blok efektoru . . . 29

2.3 Čistě tensegritická struktura. . . 30

2.3.1 Použité modely . . . 30

2.3.2 Blok efektoru . . . 31

3 Simulace tensegritické struktury 33 3.1 Simulace hybridní struktury . . . 33

3.1.1 Dopočet počátečních podmínek . . . 33

3.1.2 Parametry simulace . . . 34

3.1.3 Nastínění kódu softwaru . . . 35

(7)

3.1.4 Výsledky . . . 36

3.2 Generování čistě tensegritické struktury . . . 39

3.2.1 Nastínění postupu generování. . . 39

3.2.2 Struktura softwaru . . . 40

3.2.3 Výsledky simulace . . . 42

Závěr 45 Seznam použitých zdrojů 46 Přílohy 47 A První příloha . . . 47

(8)

Seznam použitých zkratek

PKM Paralelní kinematické mechanismy S.S. Souřadnicový systém

WF World Frame - S.S. rámu LR2 Langrangeovi rovnice 2. druhu

RT Rigid Transform - blok transformace S.S.

TS Transform Sensor - senzor transformace KD Kinematická dvojce

(9)

Seznam obrázků

Obr. 1 Ikona Matlabu [3] . . . 3

Obr. 2 Příklad tensegritické konfigurace a systému [1] . . . 5

Obr. 3 Příklady tensegrity 2. a 3. třídy [1] . . . 5

Obr. 4 Snelsonova struktura (tensegrita 1. třídy) [1] . . . 6

Obr. 5 Tensegrita 2. třídy pro rameno a 3. třída pro loket [1] . . . 6

Obr. 6 Tensegrita 2. třídy užitá ta vazech chodidla [1] . . . 6

Obr. 1.1 Ukázka modelu dvojkyvadla a jeho simulace . . . 8

Obr. 1.2 Solver Configuration block . . . 8

Obr. 1.3 Mechanism Configuration block . . . 8

Obr. 1.4 Brick solid block . . . 9

Obr. 1.5 Cylindrical solid block . . . 9

Obr. 1.6 Extruded solid block . . . 9

Obr. 1.7 World frame . . . 10

Obr. 1.8 Rigid transform . . . 10

Obr. 1.9 Blok senzoru transformací . . . 10

Obr. 1.10 Revolute joint block . . . 10

Obr. 1.11 Prismatic joint block . . . 10

Obr. 1.12 Blok Matlab funkce . . . 11

Obr. 1.13 Internal force block . . . 12

Obr. 1.14 Blok subsystému . . . 12

Obr. 1.15 Vytváření masky subsystému . . . 13

Obr. 1.16 Ukázka masky subsystému . . . 13

Obr. 1.17 Vytváření souboru vlastní knihovny . . . 14

Obr. 1.18 Ukázka dvou bloků vlastní knihovny . . . 14

Obr. 1.19 Vytvoření systému . . . 15

Obr. 1.20 Argumenty funkce add_block() . . . 16

Obr. 1.21 Poloha bloku . . . 16

Obr. 1.22 Argumenty funkce add_line() . . . 17

Obr. 1.23 Ukázka Simulinkového subsystému a označení portů pro auto- matické spojování . . . 18

Obr. 1.24 Ukázka Simscapového subsystému a označení portů pro auto- matické spojování . . . 18

Obr. 1.25 Kódové spuštění simulace systému . . . 19

Obr. 2.1 Hybridní 3 stupňový tensegritický robot . . . 20

Obr. 2.2 Čistě tensegritický robot třídy 3 . . . 20

Obr. 2.3 Schema tyče . . . 21

Obr. 2.4 Bloková reprezentace tyče . . . 21

Obr. 2.5 Struktura subsystému tyče . . . 22

Obr. 2.6 Schema lana . . . 23

(10)

Obr. 2.7 Bloková reprezentace lana . . . 23

Obr. 2.8 Struktura subsystému lana . . . 24

Obr. 2.9 Kód funkce lana . . . 25

Obr. 2.10 Schema Stupně . . . 27

Obr. 2.11 Bloková reprezentace stupně . . . 27

Obr. 2.12 Obecná maska . . . 27

Obr. 2.13 Indexová maska . . . 28

Obr. 2.14 Schema mezitupně . . . 28

Obr. 2.15 Bloková reprezentace mezistupně . . . 28

Obr. 2.16 Schema rámu . . . 29

Obr. 2.17 Bloková reprezentace rámu . . . 29

Obr. 2.18 Schema efektoru . . . 30

Obr. 2.19 Bloková reprezentace efektoru . . . 30

Obr. 2.20 Blok efektoru čistě tensegritické struktury . . . 31

Obr. 2.21 Struktura bloku efektoru čistě tensegritické struktury . . . 32

Obr. 3.1 Schema pro dopočet počátečních hodnot . . . 35

Obr. 3.2 Inicializační část softwaru . . . 36

Obr. 3.3 Hlavní cyklus softwaru . . . 37

Obr. 3.4 Výsledné simulinkové schema . . . 37

Obr. 3.5 Průběh souřadnice X . . . 38

Obr. 3.6 Průběh souřadnice Y . . . 38

Obr. 3.7 Průběh souřadnice X . . . 38

Obr. 3.8 Průběh souřadnice Y . . . 38

Obr. 3.9 Průběh souřadnice X . . . 38

Obr. 3.10 Průběh souřadnice Y . . . 38

Obr. 3.11 Průběh souřadnice X . . . 39

Obr. 3.12 Průběh souřadnice Y . . . 39

Obr. 3.13 Hybridní tensegrita při vytvoření . . . 39

Obr. 3.14 Hybridní tensegrita při zatížení . . . 39

Obr. 3.15 Inicializace softwaru čisté tensegrity . . . 40

Obr. 3.16 Přidání tyčí a propojení s rámem . . . 40

Obr. 3.17 Funkce propojení tyčí lany . . . 41

Obr. 3.18 Ukázka tabulky konektivity . . . 41

Obr. 3.19 Simulinkové schema čistě tensegritické struktury . . . 42

Obr. 3.20 Průběh souřadnice X . . . 43

Obr. 3.21 Průběh souřadnice Y . . . 43

Obr. 3.22 Průběh souřadnice X . . . 43

Obr. 3.23 Průběh souřadnice Y . . . 43

Obr. 3.24 Tensegrita při vytvoření . . . 44

Obr. 3.25 Tensegrita při zatížení . . . 44

(11)

Cíle práce

V této části jsou uvedeny jednotlivé cíle práce.

Seznámení se s modelováním v prostředí Matlab Simulink a Sims- cape, se zaměřením na možnosti generování modelů pomocí progra- mového kódu

První část kapitoly 1 se zabývá funkcemi jednotlivých bloků prostředí Simulinku a Simscapu potřebných pro vytvoření simulované tensegritické struktury. Druhá část je pak věnována možnostem generování struktur pomocí programového kódu.

Modelování v Simscape MBS (1.1)

Generování struktur z programového kódu (1.2)

Seznámení se s modelováním tensegritických struktur

V kapitole 2 je probráno modelování vybrané struktury s popisem jednotlivých prvků.

Modelování základních prvků (2.1) Modelování hybridních struktur (2.2)

Modelování čistě tensegritických struktur (2.3)

Simulace tensegritické struktury

V poslední kapitole (3) jsou popsány postupy generování hybridních a čistě tensegritických struktur společně s výsledky simulace.

Simulace hybridní struktury (3.1)

Simulace čistě tensegritické struktury (3.2)

(12)

Úvod

Co je Matlab? [3], [4], [5]

Matlab je vývojové prostředí a zároveň programovací jazyk navržený čtvrtou generací programovacích jazyků. I přes to, že někteří experti skrze programování ho neuznávají jako programovací jazyk, v některých aplikacích, zejména na akademické půdě, se jedná o nepostradatelný výpočetní nástroj. [5]

První vydání Matlabu vznikalo na přelomu 70. a 80. let kdy se Stranfordský pro- fesor Cleve Moler snažil svým studentům usnadnit používání knihoven LINPACK a EISPACK vytvořených pro programovací jazyk Fortran. Jeho cílem bylo napsat pro- gram zpřístupňující zmíněné knihovny bez nutnosti vytváření si svého programu pro jejich konkrétní problém. Knihovna LINPACK umožňuje používat základní operace s maticemi a vektory, EISPACK poté výpočet vlastních čísel a vektorů.

Jméno Matlab dostal díky svému použití a to počítání s maticemi - Maticová laboratoř (ang. MATrix LABoratory). Jediným použitelným datovým typem v této první verzi byly matice a vektory. Pro přidání nové funkce do této aplikace, v základu sčítající 71 základních funkcí, bylo třeba přepsat zdrojový kód programu.

Moler na svých kurzech matematiky v letech 1979-1980 představil svou no- vou maticovou "kalkulačku" svým studentům. Operace s maticemi nebyly omezeny pouze pro matematiku. Maticové výpočty byly potřebné i v oblastech jako je auto- matické řízení, mechanika atd. Díky tomu se Matlab stal velice populární a účinnou pomůckou při výpočtech.

Obr. 1: Ikona Matlabu [3]

V roce 1983 mu jeden ze studentů Stanfordu (Jack Little) navrhl vytvořit Matlab pro komerční účely. Společně se Stevem Bangertem Little vytvořil nový Matlab, již nepsaný ve Fortranu, ale nově v programovacím jazyku C. V prosinci

(13)

1984 představili na konferenci "IEEE Conference on Decision and Control"první ko- merční verzi Matlabu zvanou PC-MATLAB (ikona Matlabu na obr. 1).

Od vydání první komerční verze se do Matlabu přidávalo mnoho rozšíření tzv.

Toolboxů. Jedná se o knihovny nástrojů zaměřených na konkrétní odvětví vědy, techniky, ekonomiky a dalších. Z pohledu řízení za zmínku stojí Control System Toolbox (1985) umožňující práci s přenosovými funkcemi a jejich analýzou, Toolbox ODEs (1987) pro snadné řešení obyčejných diferenciálních rovnic a Symbolic Math Toolbox (1993) pro symbolické řešení rovnic a úprav výrazů. Důležitým milníkem byl i rok 2000, kdy vyšla podoba prostředí Matlabu tak, jak ji známe dnes.

Společně s Toolboxy bylo postupně vyvíjeno i grafické prostředí Simulink za- ložené na Matlabu. To umožňuje uživatelům modelovat systémy pomocí skládání bloků realizujících určitou funkci. Tyto bloky jsou následně propojovány, díky čemuž mohou vzniknout komplexní systémy. Při řešení dopředné a inverzní dynamiky je největší problém Simulinku nutnost mít vyjádřené pohybové rovnice popisující kon- krétní systém a tyto rovnice až následně v Simulinku modelovat pomocí integračních a jiných bloků. Vyjádření pohybových rovnic není často jednoduché, obzvláště pro paralelní kinematické mechanismy (PKM), kterým se tato práce věnuje.

Řešení nabídla Simulinková nástavba zvaná Simscape spadající do kategorie Multibody Simulation/Software (MBS). Ta k modelování používá bloky reprezentu- jící konkrétní prvky, jako jsou tělesa nebo vazby a ne integrační, sčítací a násobící bloky jako v případe Simulinku. Simscape je následně schopný z propojených bloků vytvořit pohybové rovnice a dokonce za určitých podmínek automaticky dopočítat inverzní dynamiku. Získání reakcí z kinematických dvojic nebo průběhů zrychlení jednotlivých prvků je v tomto prostředí také velice jednoduché.

Tensegritické struktury [1], [2]

Pojem tensegrity vznikl jako spojení dvou slov tension (napětí) a integrity (soudržnost, integrita). Tensegritické systémy vznikají přidáním tažných prvků k tzv. tensegritické konfiguraci (Tensegrity Configuration). Tensegritická konfigurace je takové rozmístění tuhých těles v prostoru pro které platí, že existuje kombinace tažných prvků, které uvedou daná tělesa do stabilní rovnováhy. Důležité přitom je, jak jsou tělesa rozmístěna. Dvě tělesa mohou a nemusí být tensegritickou konfigurací, viz obr. 2 a,b. Na obr. 2 c je vidět výsledný stabilní tensegritický systém/struktura.

Tensegritický systém může být jak stabilní, tak nestabilní. Z definice musí exis- tovat takové uspořádání tažných prvků, které systém přivede do rovnováhy, ale ak- tuální konfigurace stabilní být nemusí. Stability lze pak dosáhnout přidáním dalších spojů.

Velkou výhodou tensegrit je způsob namáhání členů. Tažné členy jsou namáhány pouze tahovou sílou. Tlačné členy jsou namáhány prostým tlakem nebo v případě kritické štíhlosti jsou namáhány na vzpěr. V případě prostých tahových nebo tla-

(14)

Obr. 2: Příklad tensegritické konfigurace a systému [1]

kových sil vzniká v prvcích jednoosá napjatost. Ta na rozdíl od víceosé napjatosti, která vzniká u běžných strojů, dává daleko lepší predikci materiálového selhání.

Tensegritická konfigurace jejíž tuhé prvky se navzájem nedotýkají se klasifikuje jako tensegritický systém 1. třídy. Tensegritický systém, ve kterém se k-tuhých členů dotýká je označen jako tensegritický systém k-té třídy. Rozdělení je možno vidět na obr. 3

Obr. 3: Příklady tensegrity 2. a 3. třídy [1]

Prvním člověkem, kdo vytvořil prostorovou tensegritickou strukturu skládající se ze dvou těles, byl pravděpodobně Kenneth Snelson. Těmi tělesy byly dva kusy dřeva ve tvaru X, které se navzájem nedotýkaly (obr. 4). Jde tedy o tensegritu první třídy. Vytvořený tensegritický systém měl přesný počet tažných členů pro získání stabilní rovnováhy, kdyby jen jedno z vláken chybělo, struktura by se zřítila.

Tensegrity ale nejsou jen lidským výmyslem. Lidská ruka je příkladem tense- gritického kloubu, kdy kosti vytváří tlačné členy a šlachy tažné (obr. 5). Ovládání prstů je také příkladem tensegrit (obr. 6). Jednotlivé šlachy, které jsou ovládány svaly, tahají za prsty a realizují pohyb prstů.

(15)

Obr. 4: Snelsonova struktura (tensegrita 1. třídy) [1]

Obr. 5: Tensegrita 2. třídy pro rameno a 3.

třída pro loket [1]

Obr. 6: Tensegrita 2. třídy užitá ta vazech chodidla [1]

Tensegritity zasahují i do odvětví jako je umění a architektura. Pro strojní in- ženýry je ovšem hlavní aplikace v technických oborech jako je robotika. Výsledná tensegritická struktrura spadá do kategorie paralelních kinematických mechanismů (PKM), pro které jsou typické jejich vlastnosti jako je vysoká tuhost, malý moment setrvačnosti. PKM jsou často porovnávány se sériovými strukturami, které zase dis- ponují velkým pracovním prostorem vůči velikosti samotného robota a jednoduchým řešením dopředné i inverzní dynamiky. Hybridní struktury vznikají jako kombinace PKM se sériovými strukturami. Výsledné vlastnosti jsou pak kombinací vlastností obou druhů.

Cílem této práce je vytvořit software pro generování různých tensegritických struktur a zjišťování jejich vlastností.

(16)

Kapitola 1

Simscape MBS

V první části této kapitoly budou popsány jednotlivé prvky - bloky softwaru Simscape MBS, potřebné pro následné vymodelování tensegritických struktur. Druhá část kapitoly se věnuje způsobu vytváření Simscapových modelů z programového kódu Matlabu.

1.1 Modelování v Simscape MBS

Stejně jako v mechanice i v multibody softwarech se mechanické soustavy mo- delují pomocí těles (Solid) spojených mezi sebou kinematickými dvojicemi (Joint) nebo jsou zavazbeny vazbovými rovnicemi (Constraint). Celé těleso pak musí být připojeno k rámu (World frame - WF).

Simscape MBS používá ke spojování bloků jiný druh signálů než Simulink. Jde o fyzikální signál reprezentující jeden konkrétní souřadnicový systém (Frame - S.S.).

K přesunu nebo natočení S.S. se používá blok transformace (Rigid Transform RT).

Pro ukázku jednoduchosti modelování v Simscape MBS lze použít příklad jed- noduchého dvojkyvadla (obr. 1.1). V případě běžného postupu výpočtu pohybu ky- vadla je nejprve třeba vyjádřit Lagrangián soustavy a ten následně použít v Lagran- geových rovnicích 2. druhu (LR2). Získané pohybové rovnice je nutné řešit numericky a výsledky publikovat buď ve formě grafů nebo z nich vytvořit simulaci. V případě použití Simscape MBS stačí celý problém popsat pomocí 11 bloků (v kompaktnější podobě dokonce jen 8). Výsledkem je přímo simulace soustavy včetně grafů průběhů úhlových souřadnic a jejich derivací. Další výhodou je možnost získat i reakce v kinematických dvojicích, které LR2 neumožňují. [6]

1.1.1 Solver bloky

Každý blok, který spadá pod knihovnu Simscape MBS, musí být připojen k právě dvěma blokům obsahujícím nastavení řešičů diferenciálních rovnic mechanismů a vlastnosti mechanismu. Blok s nastavením řešiče se nazývá Solver Configuration

(17)

Obr. 1.1: Ukázka modelu dvojkyvadla a jeho simulace

a jeho blokové schema je možno vidět na obr. 1.2.

Druhým potřebným blokem je Mechanism Configuration, jehož bloková repre- zentace je na obr. 1.3. Nejužitečnějším nastavením bloku je nastavení tíhového zrych- lení. V nabídce je vypnutí, konstantní působení a časově závislé působení.

Obr. 1.2: Solver Configuration block

Obr. 1.3: Mechanism Configuration block

1.1.2 Modely absolutně tuhých těles

V mechanice se k modelování těles používá jejich idealizace a to absolutně tuhé těleso. V Simscape MBS jsou absolutně tuhá tělesa modelována pomocí bloků kon- čících slovem Solid. Příklady těchto bloků jsou Brick Solid (těleso ve tvaru kvádru), Cylindrical Solid (těleso ve tvaru válce) a Extruded Solid (těleso ve tvaru vytaže- ného profilu), jejichž blokové reprezentace v prostředí Simscape MBS lze vidět na obr. 1.4, obr. 1.5 a obr. 1.6.

(18)

Obr. 1.4:Brick solid block Obr. 1.5:Cylindrical solid block

Obr. 1.6: Extruded solid block

Bloky umožňují nastavit rozměrové charakteristiky tělesa jako je délka hrany, průměr válce, nebo uzavřený profil tvořený soustavou bodů.

Pro zadání hmotnostních charakteristik, kterými jsou hmotnost tělesa, matice setrvačnosti vztažená k těžišti a poloha těžiště, lze použít buď model homogenního tělesa s konstantní hustotou, nebo zadat tyto parametry přímo. V případě homo- genního tělesa jsou prvky matice setrvačnosti automaticky dopočteny z rozměrových charakteristik a hustoty. Přímé zadání hmotnostních charakteristik umožňuje mo- delovat těleso jako hmotný bod, nebo posunout těžiště do jiného bodu, než by bylo vypočítáno z homogenního modelu. Díky tomu lze například modelovat tyč s nasa- zenými aktuátory.

V případě potřeby použití speciálního tvaru tělesa, které by šlo ze základních tvarů složit obtížně nebo dokonce vůbec, lze nahrát těleso vymodelované v běžně používaných CADech nebo ve nativních formátech jako je STL nebo OBJ. Automa- tický dopočet hmotnostních charakteristik je i v tomto případě možný.

V základním nastavení je z bloku vyveden pouze jeden Simscapový výstup re- alizující střed hmotnosti tělesa. V některých aplikacích je výhodné mít připojovací porty na krajích objektu a ne v jeho středu. To lze realizovat buď pomocí transfor- mací souřadnicového systému středu hmotnosti na kraje nebo přímo v masce bloku přidáním dalších Simscapových portů realizujících kraje tělesa.

1.1.3 Transformace souřadnicových systémů

Každý Simscape multibody systém musí obsahovat blok rámu WF obr. 1.7.

Tento blok reprezentuje pevný S.S., vůči kterému se vše pohybuje. Při modelování je zapotřebí umisťovat tělesa a kinematické dvojice na jiná místa, než je základní rám. K posunu a natočení S.S. jsou využívány transformační bloky RT. Ty umožňují právě potřebný posun nebo natočení jednoho S.S. vůči druhému.

Blok RT pracuje tak, že na S.S., který je do bloku přiváděn levou stranou (port B na obr. 1.8), aplikuje transformační matice (posun a rotace). Výstupem je pak nový S.S., se kterým lze pracovat dále na portu F, který je k vidění na stejném obrázku.

V některých případech je potřeba vyšetřovat vzájemnou polohu dvou S.S.. K tomu lze použít blok Transform Sensor (TS) obr. 1.9. Blok dokáže vypočítat hodnoty vzdáleností, natočení a jejich rychlosti se zrychlením mezi přivedenými S.S..

(19)

Obr. 1.7: World frame Obr. 1.8: Rigid transform

Obr. 1.9: Blok senzoru transformací

1.1.4 Kinematické dvojice

Pro kinematické spojení dvou těles jsou používány bloky kinematických dvojic (KD). Každý z bloků KD reprezentuje konkrétní pohyb. Z nejpoužívanějších kine- matických spojů se jedná o blok rotační vazby (Revolute joint obr. 1.10) a posuvné vazby (Prismatic Joint obr. 1.11). Rotační KD umožňuje otáčení S.S. přiváděného na port F okolo osy Z S.S., připojeného k portu B. V případě posuvného spojení do- chází k posuvu opět podél osy Z S.S. na portu B. Písmeno B je zkratkou anglického Base neboli základna a F je zkratkou anglického Follower.

Obr. 1.10: Revolute joint block Obr. 1.11: Prismatic joint block

(20)

Stejně jako blok TS (popsaný v sekci 1.1.4) dokáže vytvořit signál s informací o vzájemné poloze dvou S.S. i samotné bloky kinematických vazeb tuto možnost nabí- zejí. Navíc dokáží předat informaci o reakci v KD. Výstupem bloku jsou informace o souřadnicích, jejich změnách a silových reakcích. Jako příklad lze uvést u bloku rotační vazby možnost sledování úhlu natočení mezi S.S., příslušné časové derivace a velikosti reakčních účinků.

Simscape kromě KD nabízí i sadu bloků vazeb (Constraint). Jedná se o bloky jako je pevná úhlová vazba dvou tuhých těles, pevná vzdálenost dvou tuhých těles nebo blok pohybu po křivce.

1.1.5 Blok Matlab funkce

Simulink ve své základní knihovně obsahuje blok umožňující vytvoření vlastní Matlab funkce. Do bloku se vloží kód funkce, kterou má blok realizovat a podle množství vstupů a výstupů zadaných v kódu funkce Simulink připraví signálové vstupy a výstupy. Příklad bloku bude ukázán v sekci 2.1.2. Na obr. 1.12 je ukázka bloku Matlab funkce v prostředí Simulinku.

Obr. 1.12:Blok Matlab funkce

1.1.6 Interní síla

Pro budoucí potřeby modelování komponentů tensegritických struktur je po- třeba popsat blok interní síly (Internal Force obr. 1.13). Blok simuluje přivedení síly mezi dva S.S. (porty B a F obr. 1.13). Velikost aplikované síly je získána z fyzikálního signálu velikosti síly přivedené do portu fm.

V případě potřeby modelování vnějšího silového účinku lze použít blok External Force, který má obdobné chování.

1.1.7 Subsystémy

Společně se složitostí modelovaného systému roste i počet potřebných bloků k vytvoření modelu systému. Při velkém množství bloků se model stává velice ne- přehledný a orientace v něm náročnou. Tomuto problému lze předejít rozdělením

(21)

Obr. 1.13:Internal force block

modelované soustavy na menší celky neboli subsystémy (blok Subsystem viz obr.

1.14). Příkladem rozdělení je rozdělení simulace robota na subsystémy jeho mecha- nické a řídící části.

Dalším častým použitím subsystémů je v systémech, ve kterých se větší skupiny bloků opakují. Například v následně modelovaných tensegrických strukturách je po- užito mnoho tažných a tlačných prvků, pro které je aplikace subsystému výhodná.

Obr. 1.14: Blok subsystému

Subsystémy disponují velice užitečným prvkem, kterým je tzv. maska bloku.

Ta umožňuje změnu konkrétní proměnné používané v subsystému. Například při modelování tyče je snaha vytvořit jeden univerzální model. Toho lze docílit vytvo- řením modelu tyče s maskou. Tento model lze pak použít ve více místech systému a konkrétní délku tyče nastavit v příslušné masce. Tato možnost změny parametru bloku bude v dalších částech použita pro modelování tažných prvků různé tuhosti a různé délky tlačných prvků.

Masku lze vytvořit klávesovou zkratkou CTRL+M, kde kromě parametrů masky lze nastavit i ikonu subsystému. Použití ikony tyče pro blok tlačného prvku zlep- šuje orientaci v modelu. Na obr. 1.15 lze vidět proces vytváření parametrů masky.

Editační nástroj umožňuje parametry rozdělit do jednotlivých skupin (na obrázku pod označním Container, pro volbu běžné složky lze použít Group box). Následuje výběr způsobu zadávání parametru v masce. Obvyklým způsobem je běžné textové pole (Edit), ale v nabídce jsou i jiné možnosti jako je výběr z jednoho prvku (Popup

(22)

Obr. 1.15: Vytváření masky subsystému

nebo Radio button). Zbylé možnosti jsou ve sloupci Parameter k vidění na obr. 1.15.

Obr. 1.16: Ukázka masky subsystému

Výsledek po vytvoření masky je k vidění na obr. 1.16. V tomto případě se maska skládá ze dvou parametrů v podobě běžného textového pole. Parametry jsou dále uspořádány ve skupině označené jako Vlastnosti tyčí.

1.1.8 Vlastní knihovny bloků

Jak již bylo zmíněno v sekci 1.1.7 při modelování se často vyskytuje velké množ- ství stejných bloků s rozdílnými parametry v masce. Je vhodné mít pro všechny stejné bloky jeden vzor uschovaný v knihovně bloků. Ta dokáže uzamknout struk- turu bloků a dovoluje pouze přepsat masku. Uchování bloků v knihovně přináší dvě výhody. První výhodou je nemožnost změny jednoho bloku soustavy, který by se

(23)

následně choval jinak než ostatní bloky a druhou výhodou je propojení bloku v mo- delu s blokem v knihovně. V případě ponechání propojení (Link) bloku v soustavě s blokem v knihovně lze upravit všechny bloky soustavy pouhou úpravou bloku knihovny.

Pro knihovny se používá Simulinkový soubor určený přímo pro knihovny Si- mulinku a Simscapu (Library obr. 1.17). Na rozdíl od běžného souboru modelu neumožňuje spustit simulaci. Je určen pouze pro uchovávání vzorových bloků a pro následné použití v jiných soustavách. K uzamknutí bloků knihovny lze použít funkci uzamknutí knihovny, která se nachází v horní části Simulinkového prostředí.

Obr. 1.17:Vytváření souboru vlastní knihovny

Obr. 1.18: Ukázka dvou bloků vlastní knihovny

Pro následnou práci s prvky knihovny je důležité, aby měl každý blok svůj unikátní název (obr. 1.18). Jména bloků lze libovolně upravovat. Jsou důležitá při generování modelů z kódu, protože jméno bloku je jedinečný identifikátor, na který se odkazuje.

(24)

1.2 Generování Simscape MBS z Matlab skriptu

Při zkoušení systémů s konstantní topologií prvků, ale odlišnými parametry, lze celou soustavu modelovat za pomocí subsystémů s maskami nebo parametry zapi- sovat přímo do bloků. V případě potřeby změny topologie soustavy je nutné spoje mezi bloky ručně změnit. Při zjišťování vlastností různých topologických struktur nepřichází k úvahu ruční přepojování bloků, ať už z časových důvodů, tak z dů- vodu velké pravděpodobnosti lidského selhání. Z toho důvodu bylo cílem vytvořit generátor různých topologií.

Při automatickém generování Simulinkových nebo Simscapových systémů se v první řadě vytvoří samotný model/systém. Následně je do něj možné přidávat jednotlivé bloky modelovaného systému. Bloky lze přidávat buď z připravených nebo vlastních knihoven. Další fází je vytvoření příslušných spojů mezi bloky. Nakonec lze systém ze skriptu uložit do souboru a odsimulovat.

V následujících sekcích budou popsány jednotlivé fáze generování, které budou následně aplikovány i v praktické části.

1.2.1 Inicializační příkazy

Prvním krokem při generování modelů je vytvoření samotného systému, do kterého budeme model vytvářet. Je třeba podchytit situace, kdy soubor nebo systém, do kterého je model zapotřebí vytvořit, již existuje nebo je systém již vytvořen. Za povšimnutí stojí, že soubor a systém není to samé. Nejprve se vyváří systém modelu a až po následném uložení systému vzniká soubor modelu. Ukázka vytvoření nového systému na obr. 1.19.

Systém se vytváří pomocí funkce new_system(’JmenoSystemu’), který vytvoří systém pojmenovaný jako JmenoSystemu. Po vytvoření systému do něj lze začít při- dávat bloky. Pro uložení systému do souboru se používá příkaz

save_system(’JmenoSystemu’,’JmenoSouboru’), který systém se jménem JmenoSys- temu uloží do souboru pojmenovaný jako JmenoSouboru.

Při vytváření systému nebo ukládání do souboru je zapotřebí mít zavřený sys- tém se jménem, který chceme vytvořit, a mít smazaný příslušný soubor.

System = ’Model1’; %Jméno vytvářeného modelu/systému new_system(System); %Pro vytvoření modelu/systému save_system(System);%Pro uložení modelu/systému

Obr. 1.19: Vytvoření systému

(25)

1.2.2 Přidání bloků

Do vytvořeného Simulinkového systému podle sekce 1.2.1 lze následně přidávat jednotlivé bloky. Pro přidání bloku je k dispozici funkce add_block(). Základním principem přidávání bloků je vzít existující vzorový blok z jedné z knihoven, ať už vlastní nebo základní, a tento vzorový blok zkopírovat a vložit do modelovaného systému pod určitým jménem, na určitou pozici (pro následnou přehlednost). Dále je možné rovnou vyplnit parametry masky. V případě nevyplnění některého z para- metrů masky se přebírá hodnota parametru masky ze vzorového bloku uloženého v knihovně. Na obr. 1.20 je ukázka kódu pro přidání bloku s vyplněním tří parametrů masky.

add_block(...

’Library/JmenoVzorovehoBloku’,... %Adresa vzorového bloku [System,’/JmenoVytvarenehoBloku’],... %Adresa vytvářeného bloku

’Position’, [100 100 180 180],... %Poloha vytvářeného bloku

’p1’,int2str(p1),... %Parametr1 masky

’p2’,int2str(p2),... %Parametr2 masky

’P3’,int2str(p3)) %Parametr3 masky

Obr. 1.20: Argumenty funkce add_block()

Pozice bloku

Každý blok je vhodné, z důvodu přehlednosti, vygenerovat na určité pozici. Po- lohu zároveň s velikostí bloku zajišťuje parametr ’Position’ (možno vidět na obr.1.20) Hodnota parametru je vektor o čtyřech prvcích reprezentující souřadnice levého hor- ního rohu a pravého dolního rohu vůči absolutnímu S.S. grafického schematu Simu- linku (pozice je naznačena na obr. 1.21).

’Position’, [𝑥

𝑦

𝑥

𝑑

𝑦

𝑑

],...

Obr. 1.21: Poloha bloku

(26)

1.2.3 Spojení bloků

Vytvořené bloky je třeba spojit. Spojují se vždy dva bloky resp. jejich dva porty pomocí funkce add_line(). Je důležité si uvědomit, že lze spojovat vždy jen dva bloky v rámci jednoho systému nebo subsystému. To znamená, že v případě potřeby spoje dvou bloků ze dvou různých subsystémů se musí v každém ze subsystémů vytvořit blok portu a subsystémy spojit v nadřazeném systému. Více v sekci 1.2.4.

Prvním argumentem funkce spojení bloků je adresa systému nebo subsystému v rámci kterého má dojít ke spojení dvou portů. Dalšími dvěma argumenty jsou adresy dvou spojovaných portů, přičemž první adresa je výstupního portu a druhá vstupního. To je důležité rozlišovat hlavně u Simulinkových bloků, u nichž je pod- statná orientace spoje. Adresa portů je stejná jako adresa bloků s rozšířením adresy o ’/1’, kde 1 je číslo výstupního nebo vstupního portu bloku. Toto číslování platí u Simulinkových bloků.

Simscapové systémy nemají signály orientované jako Simulink. Nerozlišují se u nich vstupní a výstupní porty, ale pouze nesou označení jako pravé ’Rconn1’ a levé ’Lconn1’. Pořadí argumentů je poté nepodstatné. Za zmínku také stojí, že porty nacházející se v horní části bloku jsou označovány jako levé a ty, které se nachází na spodní hraně bloku jsou označovány jako pravé.

Samotná ukázka syntaxe spojení pravého portu 1 bloku Blok1 a levého portu 1 bloku Blok2 na obr. 1.22.

add_line(...

System,... %Adresa systému, ve kterém

%se bloky spojují

[System,’/JmenoBloku1/Port’],... %Výstupní spojovaný port [System,’/JmenoBloku2/Port’]) %Vstupníí spojovaný port

Obr. 1.22: Argumenty funkce add_line()

1.2.4 Práce se subsystémy

Stejně jako u manuálního modelování soustav i u automatického vytváření mo- delů lze bloky seskupovat do subsystémů. Blok subsystémů se vytvoří pomocí funkce add_block() popsané v sekci 1.20. Největší rozdíl přichází v momentě vytváření bloků do subsystému. V případě, kdy je zapotřebí vytvořit blok uvnitř subsystému, změní se adresa, resp. adresa bude ve formátu JménoSystému/JménoBlokuSubsysté- mu/JménoVytvářenéhoBloku. Přidávat bloky z pohledu hlavního systému může být v některých případech zdlouhavé a neefektivní. Tento problém lze obejít otevíráním jednotlivých subsystémů přes příkaz open_system(’JménoSubsystému’) a násled- nou substitucí adresy otevřeného systému pomocí gcs. Příkladem by mohlo být zjednodušení z adresy bloku System/Sub1/Sub2/Sub3/Blok5 na pouhé gcs/Blok5.

(27)

Pro spojování subsystémů je do nich potřeba přidat správné porty. Simulinkové systémy používají pro příchozí signály bloky vstupního portu (In) a pro výstupní signály blok výstupního portu (Out). Na obr. 1.23 je ukázka Simulinkového subsys- tému s jedním vstupním portem označeným jako In1 a jedním výstupním portem označeným jako Out1.

Obr. 1.23: Ukázka Simulinkového subsystému a označení portů pro automatické spojo- vání

Simscape nerozlišuje vstupní a výstupní porty. Namísto toho rozlišuje pravé a levé porty na základě umístění na samotném bloku subsystému. Ukázka rozdělení a označení jednotlivých Simscapových portů je na obr. 1.24. Pozornost by měla být věnována tomu, že i přestože jsou pravé porty označeny čísly 3 a 4, jsou nazvány RConn1 a RConn2. Z toho plyne, že pravé a levé porty jsou číslovány nezávisle na sobě.

Obr. 1.24:Ukázka Simscapového subsystému a označení portů pro automatické spojování

(28)

1.2.5 Spuštění soustavy

Poté, co je systém hotový, je možné ho spustit pomocí příkazu sim(’JménoSystému’) (obr. 1.25). Tento příkaz není povinný v případech, kdy před samotným spuštěním je třeba systém ručně upravit.

sim(System);

Obr. 1.25: Kódové spuštění simulace systému

(29)

Kapitola 2

Modelování tensegiritcké strukury

Pro modelování konkrétních tensegritických struktur byly vybrány dvě rovinné varianty z důvodu menší náročnosti na dopočet počátečních poloh při následné simu- laci. První vybranou variantou je hybridní tensegritická struktura (obr. 2.1). Druhou variantou je čistě tensegritická struktura (obr. 2.2). Hlavním rozdílem mezi nimi je použití kloubů mezi jednotlivými tzv. stupni u hybridních struktur.

Obě varianty jsou tvořeny dvěma základními prvky. Těmi jsou tlačné prvky (dále již označovány jako tyče, vzhledem k jejich tvaru) a tažné prvky dále ozna- čované jako lana. Podrobnějšímu popisu modelů těchto dvou základních prvků je věnována následující sekce (2.1).

Effector

2. Stupeň

1. Stupeň Rám 1. Mezistupeň

2. Mezistupeň 3. Mezistupeň

Obr. 2.1:Hybridní 3 stupňový tensegri- tický robot

Obr. 2.2:Čistě tensegritický robot třídy 3

Tyče a lana tvoří v hybridní struktuře větší celky označované jako stupně a mezistupně. Celá struktura je posazena na základní rám a končí blokem stupně s efektorem. Při následném vytváření automatického generování hybridní struktury je kladen důraz na možnost zvolení si libovolného kladného celočíselného množství

(30)

stupňů. Popisem větších celků, kterými jsou právě blok stupně, mezistupně, rámu a efektoru se zabývá sekce 2.2.

Poslední část této kapitoly popisuje bloky použité v knihovně softwaru pro generování čistě tensegritických struktur.

Obrázky schemat jednotlivých bloků této kapitoly byly použity se svolením V. Halamky, za což mu velice děkuji.

2.1 Modelování základních prvků

Každá tensegritická struktura je tvořena dvěma základními kameny. Těmi jsou tlačné a tažné prvky. Následující sekce se věnují stavbě těchto dvou základních bloků nezbytných pro generování tensegit.

Při popisu jednotlivých prvků budou použity pojmy bloková reprezentace a bloková struktura. Blokovou reprezentací je myšlena podoba samotného bloku při pohledu z nadřazeného systému. Blokovou strukturou je myšleno uspořádání dílčích bloků tvořící subsystém.

2.1.1 Modelování tlačných prvků

Tlačné prvky tensegritické struktury neboli tyče jsou modelovány jako absolutně tuhá tělesa volitelných rozměrů a hmotnostních charakteristik. Důležitou poznám- kou je, že tyče dokáží přenášet tlak i tah. V této práci jsou ale označovány obecně jako tlačné prvky v souladu s [1]. Schema podle kterého byla tyč modelována je na obr. 2.3. Výsledná bloková reprezentace subsystému tyče s příslušnou maskou a ikonou tyče je na obr. 2.4.

Obr. 2.3: Schema tyče Obr. 2.4: Bloková reprezentace tyče

Na obr. 2.5 je bloková struktura subsystému tyče. Hlavní část modelu tyče tvoří blok tuhého tělesa Cylindrical Solid (popsaný v sekci 1.1.2) od kterého jsou S.S. posunuty na začátek a konec tyče pomocí transformačních bloků RT popsaných v sekci 1.1.3. Konce tyče jsou realizovány jako Simscapové porty a značeny jako Port E a Port F.

(31)

Pro dosažení dvourozměrného pohybu tyče je použita KD Planar joint, která zabraňuje pohybu v souřadnici Z a rotaci okolo os X a Y, odebírá tedy 3 stupně volnosti a simuluje rovinný pohyb tyče v rovině XY. Tato KD tedy umožňuje pohyb tyče vůči základnímu rámu WF. Pro uvedení tyče do počáteční polohy při spuštění simulace je použit transformační blok umístěný mezi WF a blokem KD.

Poslední částí modelu je blok s označením s.s -> pozice. Tento blok bez bliž- šího popisu vyhodnocuje reálnou polohu a natočení v prostoru vůči WF a výsledek reprezentuje jako Simulinkový signál, sloužící pro řízení struktury. Struktura bloku je k dispozici v bloku tyče.

Pro účely simulace v této práci, byl model tyče vytvořen jako homogenní těleso.

Obr. 2.5: Struktura subsystému tyče

Aby byl model tyče použitelný univerzálně v jakékoliv 2D tensegritické stuk- tuře, je třeba mít možnost některé z jeho parametrů libovolně měnit. K tomu lze

(32)

využít masky (sekce 1.1.7), ve které budou uvedeny parametry konkrétní tyče. Obec- nou cestou modelování by bylo uvést do masky všechny potřebné parametry a ty následně pro každou tyč vyplnit. Pro účely generování hybridních tensegritických soustav s pevnou topologií jednotlivých stupňů (podle schematu 2.10) byl z důvodu jednoduššího vyplňování jednotlivých parametrů tyče zaveden systém číslování tyčí čísly od 1 do 6, kdy každá z tyčí obsahuje ve své masce pouze parametr udávající její číslo neboli index. Toto číslo je následně použito pro výběr konkrétního prvku z nadřazených vektorů v masce bloku stupně. Detailnější vysvětlení bude v sekci stupně 2.2.1.

Ať už jsou parametry zapsány v masce obecně nebo pomocí indexů, musí jed- noznačně do bloku distribuovat potřebné hodnoty. Následující vlastnosti jsou třeba pro správný chod bloku:

• Délka tyče: 𝑡 [m]

• Průměr tyče: 𝑑 [m]

• Počáteční poloha ve směru osy x vůči WF: 𝑥0 [m]

• Počáteční poloha ve směru osy y vůči WF: 𝑦0 [m]

• Počáteční natočení vůči WF: 𝛼0 []

• Případně při odlišném materiálu tyče může rozhodnou o dané hustotě tyče:

𝜌 [kg·m−3]

Výstupem bloku tyče je informace o jeho poloze v prostoru vůči WF. Tento výstup slouží pro řídící program struktury.

2.1.2 Modelování tažných prvků

Obr. 2.6: Schema lana Obr. 2.7: Bloková reprezentace lana

(33)

Druhým základním stavebním kamenem tensegritických struktur jsou tažné prvky v této práci označované jako lana. Lana jsou modelována jako paralelní zapo- jení lineárního tlumiče a ideální lineární tuhosti. Schema lana je na obr. 2.6 a jeho bloková reprezentace je na obr. 2.7. Vzhledem k možnému prodloužení nebo zkrácení volné délky lan se mění jejich tuhost a tlumení. Z toho vyplývá, že lana nelze cha- rakterizovat jejich tuhostí nebo tlumením. Použitý konstantní parametr pro jejich popis je měrná tuhost a tlumení (k [𝑁·𝑚𝑚 ] pro měrnou tuhost a b [𝑁·𝑠·𝑚𝑚 ] pro měrné tlumení.

Pro výpočet síly v laně je třeba znát kromě dvou měrných parametrů i její aktuální volnou délku 𝑙0, skutečnou délku 𝑙 a změnu délky v čase ˙𝑙, potom se síla vypočte jako:

𝐹 = 𝑘 𝑙0

·Δ𝑙+ 𝑏 𝑙0

· 𝑑(Δ𝑙)

𝑑𝑡 (2.1)

Kde Δ𝑙 se vypočte jako

Δ𝑙 =𝑙𝑙0 (2.2)

Vnitřní struktura bloku (obr. 2.8) je tvořena třemi hlavními bloky. Je jím blok Internal Force (popsaný v sekci 1.1.6), blok TS (popsaný v sekci 1.1.3) a blok vlastní funkce napsané v jazyce Matlab (popsaný v sekci 1.1.5).

Obr. 2.8: Struktura subsystému lana

(34)

tovanou mezi porty G a H. K výpočtu síly je použit blok Matlab funkce s kódem, ve které je naprogramovaná rovnice 2.1. Kód programu přijme informace o aktu- ální volné délce lana, skutečné délce lana a rychlosti změny skutečné délky lana a vypočte z nich hodnotu velikosti síly. Velikost následně vynásobí -1, protože blok interní síly uvažuje kladnou sílu jako síly směřující od sebe. Lana dokáží přenášet tahovou sílu, ale v případě tlakové se prohne a nepřenáší žádný silový účinek. Z toho důvodu je důležité implementovat do kódu část hlídající ztrátu tahového napětí v laně. V případě, kdy skutečná vzdálenost mezi S.S. G a H je menší než volná délka lana, musí blok Matlab funkce vrátit velikost síly o hodnotě 0. O to se postará pod- mínka realizovaná pomocí if. Kód je k dispozici na obr. 2.9. Pro případy, kdybychom umožnili lanu přenášet i tlakové síly, je možné změnit tzv. MOD lana na hodnotu 0.

function F = fcn(l, v, l0, k, b, Mod) dl = l-l0;

F = 0;

if dl >=0

F = -(k/l0*dl + b/l0*v);

else

if Mod == 1 F = 0;

elseif Mod == 0

F = -(k/l0*dl + b/l0*v);

else

disp("Mod lana zadán špatně") end

end end

Obr. 2.9: Kód funkce lana

Hodnoty potřebné pro výpočet (popsané na začátku této subsekce) jsou zís- kávány právě z bloku Transform Senzor. Blok vyhodnotí vzdálenost portů G a H i rychlost její změny. To jsou údaje potřebné pro dopočet síly v laně. Volná délka lana je použita buď jako konstanta lana v případě neřízených lan, nebo v případě řízených lan je možné ji v čase měnit.

Pro správný chod blok lana potřebuje následující parametry:

• Nastavená volná délka lana 𝑙0[m]

• Měrná tuhost lana k [N·mm ]

• Měrné tlumení lana b [N·s·mm ]

• Nastavený mód použití lana Mod (pro případ, kdyby nevadilo chování lana i v tlakovém směru, hodnota Mod = 1 říká, že lano přenáší jen tahovou sílu)

(35)

Výpočet síly v laně pomocí Matlab funkce umožňuje použití i jiných než li- neárních modelů lan. Pro změnu chování by stačilo přepsat rovnici 2.1 na vlastní závislost.

Parametry subsystému lana lze stejně jako u lana zapisovat do masky. I v pří- padě lana lze jednotlivým lanům přidělit čísla, podle kterých budou vybírány pa- rametry z nadřazených vektorů. V případě modelu obecného lana, je potřeba do masky zapisovat jejich dva měrné parametry. Za povšimnutí stojí, že v čase řízené parametry jako je volná délka lan nelze uvádět do masky, ale musí být do bloku přivedeny externím portem.

Pro řízení struktury je potřeba znát informace o polohách jednotlivých členů.

Informace o změřené vzdálenosti ze senzoru je tedy potřeba předat řídícímu systému.

K tomu slouží výstupní Simulinkový port 1. V případě potřeby je možné mít jako výstup i vypočítanou sílu.

2.2 Bloky hybridní struktury

Model hybridní tensegritické struktury vyobrazené na obr. 2.1 lze rozdělit na menší subsystémy. Těmi jsou blok stupně, mezistupně, rámu a efektoru. Pomocí těchto větších celků lze poskládat celého robota. Jednotlivé bloky robota budou popsány v následujících částech.

Hlavní myšlenkou automatického generování hybridní struktury je vytvořit nad- řazené subsystémy a z nich poté vytvořit celou strukturu. Problematika zvětšování struktury se pak změní na přidávání určitého množství stupňů a mezistupňů.

2.2.1 Blok stupně

Blok stupně je největším stavebním kamenem modelované hybridní tensegrity.

Jde o tensegritickou konfiguraci šesti tyčí, která po propojení lan tvoří tensegritický systém 3. třídy. Pro zvolenou konfiguraci existuje více možných kombinací lan, které tvoří stabilní rovnováhu. Schema k vybranému rozmístění lan je k dispozici na obr.

2.10. Na obr. 2.11 je pak vidět vytvořená bloková reprezentace. Použité modely tyčí a lan jsou popsány v sekcích 2.1.1 a 2.1.2.

Stejně jako bloky tyče a lana, i blok stupně má masku. Ta slouží pro zápis vektorů s informacemi o jednotlivých tyčích a lanech. Podle schema 2.10 jsou v bloku stupně rozmístěny jednotlivé modely tyčí a lan s maskou obsahující pouze příslušný index podle konkrétního čísla dle zmíněného schematu. Příkladem může být vektor délek tyčí𝑡𝑖𝑖, který obsahuje 6 prvků. Tyč 1 bude jako svoji délku používat první prvek tohoto vektoru, tyč 2 druhý prvek atd. Pro lana potom funguje obdoba, jen vektory mají 10 prvků. Tento způsob zadávání prvků pomocí vektorů značně zjednodušuje distribuci parametrů do jednotlivých prvků subsystémů.

(36)

Obr. 2.10: Schema Stupně Obr. 2.11: Bloková reprezentace stupně

Pro větší názornost je tato problematika ještě ukázána na obr. 2.12 a obr. 2.13.

První obr. ukazuje propojení parametru v masce s parametrem bloku konstanty měrné tuhosti v modelu lana. Na druhém obr. je vidět maska stupně se všemi po- třebnými vstupními vektory. Z vektoru měrných tuhostí lan𝑘𝑖𝑖je následně pro kon- krétní lano vybrán prvek s číslem indexu uvedeném v masce bloku. Indexová maska je vhodná jako řešení pro stupně s pevnou topologií tyčí a lan, díky jednoduchému výběru prvků.

Obr. 2.12: Obecná maska

Blok stupně má, kromě 3 vstupních Simscapových a 3 výstupních Simscapových portů, jeden Simulinkový vstup a jeden výstup. Jako vstup je vyžadován signál o 10 prvcích pro ovládání volné délky jednotlivých lan. Výstupem je pak signál s informací

(37)

Obr. 2.13: Indexová maska

o polohách tyčí, skutečné délce lan a síle v nich.

2.2.2 Blok mezistupně

Pro spojování stupňů hybridní tensegritické struktury jsou využívány bloky me- zistupně. Ty jsou tvořeny dvěma lany a čepem zajišťujícím rotační spoj dvou stupňů.

Na obr. 2.14 je zobrazeno schema, podle kterého byl blok subsystému mezistupně modelován. Na obr. 2.15 je pak vidět bloková reprezentace mezistupně.

Obr. 2.14: Schema mezitupně Obr. 2.15:Bloková reprezentace mezistupně

Stejně jako pro blok stupně i pro blok mezistupně byla zvolena indexová maska.

Princip zapisování hodnot je identický. Ovládání lan je realizováno Simulinkovým signálem o dvou prvcích s informací o volné délce lan. Výstupem jsou pak informace o skutečné délce lan a silách v nich. Je možnost připojit úhel natočení čepu spojující jednotlivé stupně.

(38)

2.2.3 Blok rámu

Základem celé struktury je rám. Jde o nehybný blok (obsahuje WF), ke kterému je připojen první stupeň robota. Na obr. 2.16 je vidět schema, podle kterého byl subsystém rámu modelován. Obr. 2.17 pak ukazuje výslednou blokovou reprezentaci s jeho porty.

Obr. 2.16:Schema rámu

Obr. 2.17: Bloková reprezentace rámu

Maska bloku umožňuje nastavit polohy portů L, C a P vůči WF. Důležitou po- známkou je, že blok rámu obsahuje bloky s nastavením řešičů diferenciálních rovnic popsaných v sekci 1.1.1.

2.2.4 Blok efektoru

Posledním velkým vytvořeným subsystémem je efektor. Ten je umístěn jako po- slední stupeň hybridní struktury. Jeho struktura je téměř identická se subsystémem bloku. Liší se pouze tím, že blok efektoru obsahuje dvě lana a jednu tyč navíc, tzv.

efektor. To je prvek, u kterého je snaha ovládat jeho polohu. Schematická a bloková reprezentace jsou na obr. 2.18 a obr. 2.19.

Maska efektoru je tvořena identickými vstupy jako blok stupně (vektory s in- formace jsou jen rozšířeny o 1 prvek v případě tyčí a o 2 prvky v případě lan). Navíc jsou přidány možnosti upravení úhlu efektoru 𝛿𝐸, koncové hmotnosti 𝑚𝐸 a délky poslední tyče.

(39)

Obr. 2.18: Schema efektoru

Obr. 2.19:Bloková reprezentace efektoru

2.3 Čistě tensegritická struktura

Druhou vybranou modelovanou variantou je rovinný robot čistě tensegritické struktury. Od hybridní struktury se liší tím, že neobsahuje na sebe navazující bloky, jako v případě hydridní struktury na sebe navazovaly stupně. Celá struktura je tvořena pouze tyčemi a lany. Při automatickém generování těchto struktur nelze použít spojení nadřazených částí (stupňů, mezistupňů...), jako v případě hybridních struktur. Do modelu je nejprve nezbytné umístit všechny tyče a lana. Následně každému bloku zvlášť vyplnit jejich vlastnosti do masky. Indexová maska využívaná při stavbě hybridního modelu je v případě čisté tensegrity nepoužitelná (resp. velice obtížně). Z toho důvodu jsou použity základní prvky s obecnou maskou.

2.3.1 Použité modely

Při generování čistě tensegritických struktur jsou potřeba modely tyče a lana popsané v sekci 2.1.1 a 2.1.2. V této aplikaci je využito obecné masky.

Kromě dvou základních prvků je při sestavování knihovny generátoru čistě ten- segritických struktur potřeba použít i model rámu. Ten je identický s blokem pou- žitým u hybridních struktur (sekce 2.2.3).

Novým blokem při generování je blok efektoru, který je popsán v následující podsekci.

(40)

2.3.2 Blok efektoru

Pro knihovnu generátoru čistě tensegritických struktur bylo třeba vytvořit spe- ciální blok koncového efektoru. Ten se připojuje k poslední tyči struktury pod urči- tým úhlem. Samotný blok je tvořen efektorovou tyčí a hmotností koncového bodu efektoru. Bloková reprezentace efektoru je na obr. 2.20.

Obr. 2.20:Blok efektoru čistě tensegritické struktury

Vnitřní struktura bloku (obr. 2.21) je tvořena připojovacím portem sloužícím k připojení k poslední tyči generované struktury. Od něj je S.S. otočen o úhel 𝛿 a posunut o polovinu tyče, kde je vygenerována samotná tyč efektoru. Následně je S.S. posunut na konec tyče, kde se připojí blok realizující koncovou hmotnost. Na konec tyče je dále aplikována externí síla o velikosti Fx. Poloha koncového bodu je sledována pomocí bloku Transform Senzor a následně je pomocí bloků To Workspace exportována do Matlabového kódu, kde jsou následně vytvářeny grafy vývoje sou- řadnic v čase.

Samotná maska bloku efektoru nabízí možnost nastavit:

• Úhel natočení 𝛿 []

• Délku tyče efektoru 𝑡 [m]

• Průměr tyče efektoru 𝑑 [m]

• Hmotnost koncového bodu efektoru 𝑚 [kg]

• Velikost síly 𝐹𝑥 [N] ve směru osy x

(41)

Obr. 2.21: Struktura bloku efektoru čistě tensegritické struktury

(42)

Kapitola 3

Simulace tensegritické struktury

Kapitola 3 se věnuje struktuře softwaru pro automatické generování tensegri- tických struktur. První sekce 3.1 je zaměřena na generátor hybridních struktur.

Hlavním cílem sekce je ukázat proces generování s-stupňového hybridního robota s použitím knihoven bloků vymodelovaných v části 2.2.

Sekce 3.2 popisuje proces generování čistě tensegritických struktur resp. struk- tur s obecnou topologií prvků.

Výstupem obou sekcí jsou grafy průběhů souřadnic při různých typech zatěžo- vání.

3.1 Simulace hybridní struktury

Software pro generování hybridních tensegritických struktur byl navržen tak, aby na základě počtu zadaných stupňů struktury vytvořil příslušného robota s s- stupni včetně efektoru. Pro generování je využito bloků stupně, mezistupně, rámu a efektoru popsaných v předešlé kapitole.

Pro správný chod programu je třeba jako vstup dodávat parametry popsané v podsekci 3.1.2. Potřebné parametry jsou dodávány pomocí externího souboru v pří- loze pojmenovaného jako Hodnoty.m. Vstupními parametry jsou i počáteční polohy tyčí, které je třeba pro ukázku funkčnosti programu dopočítat (sekce 3.1.1)

3.1.1 Dopočet počátečních podmínek

Pro simulaci tensegritické struktury bylo zapotřebí vytvořit externí skript pro dopočet počátečních poloh tyčí a volných délek lan jednotlivých stupňů. Za účelem jednoduchosti byl zvolen model symetrického stupně obr. 3.1, ve kterém jsou tyče 1, 2, 5 a 6 stejně dlouhé.

Vstupními údaji dopočtu počátečních poloh jsou výška a šířka stupně, délky kratších tyčí a délky delších tyčí. Společně se dvěma symetriemi stupně jsou to postačující údaje pro získání počátečních poloh všech tyčí 𝑥0, 𝑦0 a 𝛼0 společně s

(43)

počátečními volnými délkami lan 𝑙0 takovými, aby struktura nebyla předepjatá.

K získání potřebných počátečních hodnot je nejprve třeba vypočítat úhel 𝛽 (obr. 3.1). Díky symetrii musí platit

cos(𝛽) = 𝑏𝑡1

(3.1) Stejným způsobem se dopočítá úhel 𝛼3 jako

cos(𝛼3) = 𝑏

𝑡3 (3.2)

S těmito úhly společně s předpokladem symetrie lze rozměr 𝑚 dopočítat jako = 2·𝑡1·sin(𝛽) +𝑡3·sin(𝛼3)−2·𝑚 (3.3)

𝑚= 1

2 ·(ℎ−2·𝑡1·sin(𝛽)−𝑡3·sin(𝛼3)) (3.4) Při znalosti těchto hodnot je pak velice jednoduché dopočítat zbylé úhly 𝛼0 a ostatní potřebné hodnoty. Hodnoty souřadnic ve směru osy X a natočení jsou pro všechny stupně stejné. Hodnoty souřadnicí ve směru osy Y budou u jednotlivých stupňů posunuty o hodnotu výšky stupně.

3.1.2 Parametry simulace

Pro simulaci byly použity následující parametry:

• Počet stupňů struktury 𝑠 = 3

• Nastavený mód lan 𝑀 𝑜𝑑 = 1 (pro přenášení pouze tahové síly lany)

• Hustota tyčí 𝜌 = 2700 kg·m−3

• Délky tyčí:

𝑡 = 0.225 m pro krajní tyče (tyče 1,2,5,6 na obr. 3.1) 𝑡 = 0.45 m pro prostřední tyče (tyče 3,4 na obr. 3.1)

• Průměr všech tyčí 𝑑 = 0.01 m

• Výška stupně = 0.45 m

• Šířka stupně 𝑏 = 0.35 m

• Počáteční polohy a natočení podle výpočtu ze sekce 3.1.1

• Měrné tuhosti všech lan 𝑘 = 10000 N·mm

(44)

𝑦 𝑥 𝑏 β

𝑡

1

𝑡

3

𝑡

5

𝑡

2

𝑡

4

𝑡

6

𝑚

𝑚

β

α

5

α

6

α

3

α

4

α

1

α

2

Obr. 3.1: Schema pro dopočet počátečních hodnot

• Natočení efektorové tyče 𝛿𝐸 = 30

• Hmotnost koncového bodu 𝑚𝐸 = 1 kg

• Všechny stupně jsou modelovány stejně velké

• Tíhové zrychlení o velikosti -9.8 ms−2 ve směru osy y

3.1.3 Nastínění kódu softwaru

Pro generování s-stupňového hybridního tensegritického robota byl vytvořen software využívající knihovnu prvků vytvořenou v druhé kapitole. Soubory softwaru jsou přiloženy v příloze. V této části je cílem nastínit proces automatického gene- rování s-stupňového robota, kdy za s lze zvolit jakékoliv přirozené číslo jako počet stupňů.

Pro větší přehlednost kódu byly vytvořeny dílčí funkce přidávání a spojování bloků. Jejich úkolem je zpřehlednit proces vytváření bloků a dosazování jednotlivých parametrů do masek bloků. Všechny části funkcí jsou po funkční stránce popsány v předchozích kapitolách stejně jako přidávané bloky. Použitými funkcemi jsou:

(45)

• pridejRobota() - funkce pro vytvoření subsystému, ve kterém se bude nacházet výsledná struktura

• pridejMezistupen() - funkce pro přidání bloku mezistupně

• pridejStupen() - funkce pro přidání bloku stupně

• pridejRam() - funkce pro přidání bloku rámu

• pridejEfektor() - funkce pro přidání bloku efektoru

• spojBloky() - funkce pro spojení dvou bloků

• pozice() - funkce pro získání vektoru pozice pro umístění prvků

Program se pak skládá z inicializační části (obr. 3.2), ve které se vytvoří mo- delovaný systém a uloží se do souboru. Samotný model tensegritické struktury je modelován ve vlastním subsystému zvaném Robot. V něm se také při inicializaci vytvoří blok rámu.

FileName = ’HybridniRobot’;

Robotpath = [FileName,’/’,’Robot’];

if isempty([FileName,’.slx’]) new_system(FileName) else

close_system(FileName,0) delete([FileName,’.slx’]) new_system(FileName) end

pridejRobota(Robotpath);

open_system(Robotpath);

pridejRam(L00,C00,P00);

Obr. 3.2: Inicializační část softwaru

Druhou částí programu je vytvoření s-stupňů robota (zjednodušený kód na obr. 3.3). K tomu je využit cyklus for, který se bude s-1 krát opakovat. Myšlenkou je vytvořit při každém opakování blok stupně a mezistupně a ty následně propojit.

Při posledním opakování je cílem vytvořit blok efektoru.

Funkce pozice je zde použita pouze pro přehlednost vytvářeného grafického schematu. Výsledná vnitřní struktura je na obr. 3.4.

3.1.4 Výsledky

Po spuštění hlavní části kódu se vytvoří Simulinkový soubor se Simscapovým modelem uvnitř subsystému robota obr. 3.4. Výsledek simulované stuktury je vidět

(46)

for i = 1:s-1

pos = pozice(i);

pridejMezistupen(i,pos(1,:),PARAMETRY) pridejStupen(i,pos(2,:),PARAMETRY) spojBloky(’Mezistupen’,i,’Stupen’,i) if i == 1

spojBloky(’Ram’,0,’Mezistupen’,1) else

spojBloky(’Stupen’,i-1,’Mezistupen’,i) end

if i == s-1 i = i+1

pos = pozice(i);

pridejMezistupen(i,pos(1,:), PARAMETRY);

pridejEfektor(pos(2,:), PARAMETRY) spojBloky(’Stupen’,i-1,’Mezistupen’,i) spojBloky(’Mezistupen’,i,’Efektor’,0) end

end

Obr. 3.3: Hlavní cyklus softwaru

Obr. 3.4: Výsledné simulinkové schema

Pro zkoušku odezvy struktury byly vybrány tři druhy zatížení. Prvním je za- tížení konstantní silou ve směru osy X o velikosti 100 N. Následuje zkouška odezvy systému na zmenšení volných délek lan bloků mezistupňů na jedné straně o 20 %.

Na závěr je předmětem studie reakce systému při nenulové počáteční rychlosti kon- cové hmoty efektoru. V této simulaci byla sledována zvolená počáteční rychlost o velikosti 5 ms−1. Ve všech třech studiích je předmětem sledování vývoj souřadnic X a Y koncového bodu efektoru v čase. Grafy těchto závislostí jsou na obr. 3.5 až obr.

3.10.

Odkazy

Související dokumenty

 Rodinná pouta jsou v Indii velmi důležitá a na sňatek se často pohlíží spíše jako na spojení dvou rodin než jako na svazek dvou lidí.  Je

• podporuje skupinové a všeobecné IP adresy (narozdíl od TCP, který vyžaduje navázání obousměrného spojení).. Protokoly

facies auricularis ossis sacri facies auricularis ossis ilii Kloubní pouzdro: krátké, tuhé

Rohen Johannes W, Yokochi Chihiro: Anatómia človeka, Osveta Martin 1991 / Schattauer Stuttgart NY 1988 © David Kachlík 30.9.2015 Čihák Radomír, Anatomie 1, Druhé, upravené

p.č.. Novostavba rodinného domu s provozovnou je částečně podsklepený objekt o dvou nadzemních podlažích, navržena ze systému cihelných bloků, suterénní stěny

• Je však otázkou, zda za parenteze můžeme považovat výpovědi vložené mezi dvě věty hlavní. Souvětí souřadné je spojení dvou výpovědí a další výpověď se nachází

Český lexém „jesle“ je tvořen substantivem. Španělské slovní spojení „jardín de infancia“ se skládá ze dvou substantiv a předložky. Po morfologické stránce

SEZNAM POUŽITÝCH SYMBOLŮ A ZKRATEK .... Závit je rozebíratelné spojení dvou nebo více součástí, jež při montáži plní velmi významnou funkci. Závity jsou také