MC_AccelerationProfile, MCP_AccelerationProfile – Generování trajektorie (zrychlení)
Symboly blokůPotřebná licence: MOTION CONTROL
Popis funkce
Bloky MC_AccelerationProfile a MCP_AccelerationProfile mají naprosto shodnou
funkci, jediným rozdílem je, že MCP_ varianta bloku má méně vstupů a potřebné
konstanty se zadávají jako parametry bloku.
Popis funkce
Blok MC_AccelerationProfile generuje takovou trajektorii, aby zrychlení byla
požadovaná funkce času. Existují dvě možnosti, jak tuto funkci zadat:
1. tabulkou: zadávají se dvojice čísel čas a zrychlení. Mezi jednotlivými časy se hodnota zrychlení interpoluje lineárně. Hodnoty času (v sekundách) se zadávají do pole/parametru times, příslušné hodnoty zrychlení do pole/parametru values . Posloupnost časových okamžiků musí být stoupající a musí začínat od 0 (resp. může začínat i zápornými hodnotami, ale profil se vykonává od času 0).
2. polynomy: celá funkce se v časové ose rozdělí na několik intervalů a pro každý interval se zadá aproximující polynom pátého řádu. Časové intervaly se definují jako v předchozím případě v poli times. Polynom pro každý interval je ve tvaru , přičemž na začátku časového intervalu je , a na konci . Koeficienty jsou uloženy v poli values ve vzestupném pořadí (tj. pole values obsahuje 6 hodnot pro každý časový interval). Tato metoda umožňuje snížit počet intervalů a pro určení koeficientů polynomů existuje speciální grafický editor.
Pro obě varianty je možné zvolit rozdělení na stejně dlouhé intervaly. pak je v poli times jen počáteční (obvykle 0) a koncový čas.
Poznámka 1: Přestože vstup/odkaz TimePosition je v PLCopen označen jako povinný, není zde použit, protože všechna potřebná data jsou uložena v parametrech bloku.
Poznámka 2: Parametr values musí být ve všech případech vektor - nesmí to být matice, tj. jednotlivé hodnoty nesmí být odděleny středníkem (lze použít mezeru nebo čárku).
Poznámka 3: Nesprávný parametr cSeg (větší než skutečná velikost polí times a/nebo values) vede k nedefinovanému chování, v krajním případě nestandardnímu ukončení aplikace (závisí to na mnoha okolnostech, použití tohoto bloku v SIMULINKu vede k pádu MATLABu).
Poznámka 4: V režimu zadání funkce polynomem je hodnota polynomu poloha a polynom je vždy pátého řádu a nelze to nijak změnit. AccelerationScale a Offset je samozřejmě pro zrychlení. Vzhledem ke komplikovaným výpočtům je doporučeno v tomto režimu vždy používat existující speciální grafický editor.
Poznámka 5: Pokud na konci profilu je nenulová rychlost, osa se pohybuje dál touto rychlostí (to je v souladu se specifikací PLCopen ).
Vstupy
uAxis | Odkaz na osu (přípustné je jen spojení RM_Axis.axisRef–uAxis nebo yAxis–uAxis) | Reference |
Execute | Náběžná hrana aktivuje blok | Bool |
TimeScale | Konstanta násobení pro přepočet časové osy profilu | Double (F64) |
AccelerationScale | Konstanta násobení pro přepočet hodnotové osy profilu | Double (F64) |
Offset | Aditivní konstanta pro přepočet hodnotové osy profilu | Double (F64) |
BufferMode | Režim převzetí osy | Long (I32) |
|
|
|
Výstupy
yAxis | Odkaz na osu (přípustné je jen spojení RM_Axis.axisRef–uAxis nebo yAxis–uAxis) | Reference |
Done | Příznak dokončení algoritmu | Bool |
CommandAborted | Příznak přerušení funkce bloku | Bool |
Busy | Příznak, že algoritmus ještě neskončil | Bool |
Active | Příznak, že blok řídí osu | Bool |
Error | Příznak chyby | Bool |
ErrorID | Výsledek poslední operace | Error |
|
|
|
Parametry
alg | Typ interpolace 2 | Long (I32) |
|
|
|
cSeg | Počet segmentů profilu 3 | Long (I32) |
times | Posloupnost hraničních časů jednotlivých segmentů [0 30] | Double (F64) |
values | Hodnoty veličiny nebo koeficienty interpolačních polynomů (a0, a1, a2, ...) [0 100 100 50] | Double (F64) |
Příklad
[Předchozí] [Na začátek] [Výše] [Další]
2020 © REX Controls s.r.o., www.rexygen.com