MC_PositionProfile, MCP_PositionProfile – Generování trajektorie (poloha)

Symboly blokůPotřebná licence: MOTION CONTROL
PIC PIC

Popis funkce

Bloky MC_PositionProfile a MCP_PositionProfile 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.

Blok MC_PositinProfile generuje takovou trajektorii, aby poloha byla požadovaná funkce času. Existují dvě možnosti, jak tuto funkci zadat:

1. tabulkou: zadávají se dvojice čísel čas a poloha. Mezi jednotlivými časy se poloha interpoluje polynomem třetího řádu (lineární interpolace není v tomto případě vhodná, protože na okrajích intervalu by byl skok v rychlosti). Hodnoty času (v sekundách) se zadávají do pole/parametru times, příslušné hodnoty polohy 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: 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 pátého řádu a nelze to nijak měnit. Polynomy na sebe musí hladce navazovat, jinak dochází ke skokům v rychlosti. 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: Block neobsahuje tzv. ramp-in mode. Pokud tedy rychlost nebo poloha osy v okamžiku spuštění profilu neodpovídá počáteční rychlosti a poloze profilu, blok skončí s chybou -707 (skok v rychlosti nebo poloze). Tomuto problému s rychlostí lze předejít, pokud se použije BufferMode=BlendingNext. Skok v poloze se musí řešit správně nastaveným parametrem Offset .

Poznámka6: 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

TimeScale

Konstanta násobení pro přepočet časové osy profilu

Double (F64)

PositionScale

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)

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

Parametry

alg

Typ interpolace  2

Long (I32)

1 ....

tabulka čas/hodnota

2 ....

hodnoty ve stejném intervalu

3 ....

aproximace polynomy

4 ....

polynomy s ekvidistantními intervaly

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
PIC

PIC

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