MC_AccelerationProfile, MCP_AccelerationProfile –  Generování trajektorie (zrychlení)

Symboly blokůPotřebná licence: MOTION CONTROL
Qt SVG Document Exported by REXYGEN Studio uAxis Execute alg TimeScale AccelerationScale Offset BufferMode uTimes uValues BeginJerk EndJerk yAxis Done CommandAborted Busy Active Error ErrorID MC_AccelerationProfile Qt SVG Document Exported by REXYGEN Studio uAxis Execute yAxis Done CommandAborted Busy Active Error ErrorID MCP_AccelerationProfile

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(x) = a5x5 + a4x4 + a3x3 + a2x2 + a1x + a0, přičemž na začátku časového intervalu je x = 0, a na konci x = 1. Koeficienty ai 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: Vstup/Parametr uValues 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 2: 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 3: Dialog je jednotný pro MC_AccelerationProfile, MC_VelocityProfile, MC_PositionProfile Některé režimy (parametr alg nedávají pro AccelerationProfile smysl a nefungují (aproximace B-spline nefunguje, režimy 1,2,5,6 používají lineární interpolaci)

Poznámka 4: 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.axisRefuAxis nebo yAxisuAxis)

Reference

Execute

Náběžná hrana aktivuje blok

Bool

alg

Typ interpolace  2

Long (I32)

1 ....

tabulka čas/hodnota (interpolace polynomem 3. řádu)

2 ....

hodnoty ve stejném intervalu (interpolace polynomem 3. řádu)

3 ....

interpolace polynomy 5. řádu

4 ....

polynomy 5. řádu s ekvidistantními intervaly

5 ....

tabulka čas/hodnota + počáteční a koncová derivace

6 ....

hodnoty ve stejném intervalu + počáteční a koncová derivace

7 ....

hodnoty ve stejném intervalu (aproximace B-splinem 3. řádu)

8 ....

hodnoty ve stejném intervalu (aproximace B-splinem 5. řádu)

9 ....

tabulka čas/hodnota (lineární interpolace)

nmax

maximalni počet intervalů/bodů profilu  3

Long (I32)

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)

uTimes

vektor s časovými hodnotami

Reference

uValues

vektor s hodnotami zrychlení nebo koeficienty polynomů

Reference

1 ....

Aborting (nový blok se spustí okamžitě)

2 ....

Buffered (nový blok se spustí po dokončení předchozího)

3 ....

Blending low (nový blok se spustí po dokončení předchozího, původní pohyb skončí s nižší rychlostí z obou bloků)

4 ....

Blending high (nový blok se spustí po dokončení předchozího, původní pohyb skončí s vyšší rychlostí z obou bloků)

5 ....

Blending previous (nový blok se spustí po dokončení předchozího, původní pohyb skončí se svojí koncovou rychlostí)

6 ....

Blending next (nový blok se spustí po dokončení předchozího, původní pohyb skončí s počáteční rychlostí nového bloku)

Výstupy

yAxis

Odkaz na osu (přípustné je jen spojení RM_Axis.axisRefuAxis nebo yAxisuAxis)

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

i ....

obecná chyba systému REXYGEN

Příklad

image/svg+xmltimeScale 1.0 posScale 1.0 offset 0 mod1 2 Osa [osa] MC_AccelerationProfile uAxisExecuteTimeScaleAccelerationScaleOffsetBufferModeyAxisDoneCommandAbortedBusyActiveErrorErrorID Execute [execute]

image/svg+xml0 0.5 1 1.5 2 2.5 3 0 0.5 1 Spusteny bool 0 0.5 1 1.5 2 2.5 3 0 0.5 1 Aktivni bool 0 0.5 1 1.5 2 2.5 3 0 0.5 1 Ukonceny bool 0 0.5 1 1.5 2 2.5 3 −200 0 200 Prubeh zrychleni Zrychlení 0 0.5 1 1.5 2 2.5 3 −10 0 10 Prubeh rychlosti Rychlost 0 0.5 1 1.5 2 2.5 3 0 0.5 1 Pozadovany prubeh trajektorie polohyCas [s] Poloha

2024 © REX Controls s.r.o., www.rexygen.com