FIWR – Frekvenční identifikace s rekonstruktorem
Symbol blokuPotřebná licence: ADVANCED
Popis funkce
Blok FIWR realizuje identifikační experiment frekvenční charakteristiky procesu. Soustava je
buzena harmonickým signálem se stejnosměrnou složkou ubias, amplitudou uampb a frekvencí
postupně
probíhající interval wb,
wf.
Pokud je povolena adaptivní změna amplitudy (adaptive_amp = on), pak budicí
signál nabývá takových hodnot, aby se amplituda výstupu blížila hodnotě
dy_max/2. Rychlost změny (rozmítání) frekvence je dána stavem cp (pokud není
adaptivní - viz dále, zadává se do parametru bloku cpb), který udává:
- v logaritmickém režimu (mode = 1) relativní zmenšení počáteční periody
budicí
sinusovky za čas ,
tedy:
- v lineárním režimu (mode = 2) přírůstek frekvence za jednotku času.
Hodnota parametru cp se obvykle pohybuje v intervalu v logaritmickém režimu. Pro lineární režim je potřeba parametr volit vzhledem k zadanému frekvenčnímu rozsahu a požadované změně frekvence. Pokud je povolena adaptivní změna rychlosti rozmítání (adaptive_cp = on), pak dojde k přepočítání parametru cp v závislosti na „chybné“ poloze bodu frekvenční charakteristiky před jeho konvergencí při každém plánovaném zastavení rozmítání (daným vektorem StopVal). Aktuální hodnota parametru cp je kopírována na výstup cp, jeho počáteční hodnotu cpb lze zvolit. Minimální a maximální hodnota parametru cp cp_min a cp_max se bere v potaz pouze v režimu adaptive_cp = on, jinak se na výstup cp kopíruje hodnota cpb. V kombinovaném režimu (mode = 3) je cpb rychlost rozmítání v logaritmických úsecích a lineární úseky včetně rychlostí rozmítání jsou definovány maticí WL. Tato matice může být definována:
- 1: Explicitně: [ , , ..., ], kde velikost matice je [1x3N].
- 2: Alternativně: [
... ;
... ;
],
kde velikost matice je [3xN].
je začátek i-tého lineárního intervalu, je konec i-tého lineárního intervalu a je přírůstek frekvence.
Amplituda buzení je v adaptivním módu měněna rovněž plynulým rozmítáním. Poměr parametru rychlosti rozmítání amplitudy ku rychlosti rozmítání frekvence je dán samostatným parametrem cp_ratio. Rozmítání amplitudy probíhá vždy logaritmicky a poměr se vztahuje ke skutečné (pro mode = 1) nebo teoretické (pro mode = 2) logaritmické rychlosti rozmítání frekvence cp. Ideální je rozmítat amplitudu rychleji než frekvenci - cp_ratio , čímž je zajištěna dostatečně rychlá úprava budicí amplitudy pro případné rezonance. Doporučená hodnota je cp_ratio .
Identifikace systému se spouští nastavením vstupu TUNE = on. Po uplynutí rmi vteřin (předpokládaná doba trvání přechodového děje) startuje výpočet aktuálního bodu frekvenční charakteristiky. Jeho reálná a imaginární část se průběžně kopíruje na výstupy xre a xim. Fázové zpoždění na dané frekvenci se kopíruje na výstup phase. Během procesu identifikace se rozmítání zastaví pokaždé, kdy jsou dosaženy požadované zastavovací body určené v závislosti na parametru stopBy: stopBy = 1 fázovým zpožděním , nebo stopBy = 2 frekvencí . Doba zastavení souvisí s hodnotami parametrů q_crit a np. q_crit udává prahovou hodnotu relativní změny středních hodnot odhadů dvou po sobě jdoucích okének pro opětovný start rozmítání. Čím menší parametr q_crit je, tím přesněji bude bod frekvenční charakteristiky určen, a doba zastavení rozmítání bude delší. Pro kratší vyhodnocovací okénko dané počtem vteřin np (obvykle se volí shodně s rmi) bude doba zastavení rozmítání kratší. Je možné zvolit maximální počet vyhodnocovacích okének cmi, přičemž běžná hodnota je cmi = 10. Vstupem HLD = on je možné ručně zastavit rozmítání frekvence, opětovné nastavení HLD = off vede k jeho pokračování. V případě potřeby je možné identifikační proces předčasně ukončit vstupem BRK = on. V takovém případě zůstanou na výstupu mxData poslední okamžité hodnoty, na výstupu pmpRef všechny přesně změřené body a systém je stále buzen stejnosměrnou složkou ubias. Ostatní výstupy jsou nastaveny na hodnotu 0.
Během vlastní identifikace je výstup TBSY = 1. Po skončení je nastaven na 0. Při bezchybném experimentu je výstup IDE = off. Jestliže identifikace skončí chybou, pak je IDE = on a číslo na výstupu iIDE specifikuje příslušnou chybu.
Vektor StopVal je možné vložit:
- 1: Explicitně: [], velikost vektoru je [1xM].
- 2: Alternativně: [],
kde
je počáteční fáze,
je krok mezi fázemi a
je konečná fáze. Velikost vektoru je [1x5].
Pro oba zápisy platí, že vektor fází (pro stopBy = 1) musí obsahovat klesající posloupnost a vektor frekvencí (pro stopBy = 2) musí obsahovat rostoucí posloupnost.
Parametr nmax udává maximální počet prvků vektoru StopVal, které je možné vložit. Současně se jedná o maximální šířku matice pmpRef, tedy maximální počet přesně změřených bodů, které lze uchovat.
Procesní signál pv je rekonstruován pomocí zabudovaného identického rekonstruktoru stavu, který předpokládá na výstupu stejnou frekvenci, jakou má budicí signál. Aby bylo možné odfiltrovat drobné nelineární projevy, mohou být rekonstruovány i vyšší harmonické složky s násobností f2-f4. V platnost se vždy berou první nenulové násobky. Speciální případ nastává pro dodatečné použití parametru f5, pak jsou násobky vždy fixně dané (f2=2, f3=3, f4=4, f5=5) bez ohledu na jejich zadané hodnoty. Pro čistě lineární systém mohou v důsledku rekonstrukce neexistujících vyšších harmonických složek některé stavy rekonstruktoru divergovat, pak je zapotřebí nastavit f2=0. Rychlost rekonstruktoru lze ladit pozorováním rekonstruované procesní veličiny epv prostřednictvím parametru alpha, který udává relativní polohu pólů rekonstruktoru.
V rámci jednoho experimentu lze identifikovat naráz až 5 signálů v případě systému s jedním vstupem a více výstupy. Experiment je řízen podle hlavního signálu pv, a v adaptivním režimu amplitudy buzení jsou kontrolovány všechny maximálně přípustné hodnoty odezev dané polem dy_max. V případě, že délka pole není dostatečná pro nsig zvolených signálů ke zpracování, je na všechny nedefinované pozice použita poslední hodnota pole. Jestliže mají všechny signály stejné omezení, stačí tedy zadat pouze jednu hodnotu.
Kód chyby iIDE:
101 | ... | vzorkovací frekvence je příliš nízká |
102 | ... | saturace výstupu během identifikace |
103 | ... | překročena velikost inicializovaných polí |
104 | ... | procesní veličina mimo povolený rozsah |
10 | ... | varování - vzorkovací frekvence je příliš nízká |
11 | ... | varování - cpb nevyhovuje nastaveným limitům |
12 | ... | varování - rozmítání obnoveno kvůli dosažení max. času |
13 | ... | varování - není možné uložit další přesně změřené body |
z důvodu vyčerpání inicializované paměti | ||
Tento blok propaguje kvalitu signálu. Více informací je uvedeno v sekci 1.4.
Vstup
pv | Řízená veličina | Double (F64) |
TUNE | Zahájení ladicího experimentu | Bool |
HLD | Pozastavení | Bool |
BRK | Ukončení ladicího experimentu | Bool |
Parametr
wb | Počáteční frekvence [rad/s] 0.0 1.0 | Double (F64) |
wf | Koncová frekvence [rad/s] 0.0 10.0 | Double (F64) |
cpb | Počáteční rychlost rozmítání 0.0 1.0 0.92 | Double (F64) |
alpha | Relativní poloha pólů rekonstruktoru 0.0 2.0 | Double (F64) |
mode | Režim rozmítání 1 | Long (I32) |
|
|
|
adaptive_cp | Variabilní rychlosti rozmítání on | Bool |
adaptive_amp | Variabilní amplituda buzení on | Bool |
nsig | Počet vstupních signálů 1 5 1 | Long (I32) |
np | Okno pro detekci konvergence [s] 0.0 3.0 | Double (F64) |
q_crit | Práh pro vyhodnocení konvergence [%] 0.001 100.0 5.0 | Double (F64) |
cp_min | Nejmenší rychlost rozmítání 0.0 1.0 0.8 | Double (F64) |
cp_max | Největší rychlost rozmítání 0.0 1.0 0.99 | Double (F64) |
cp_ratio | Poměr mezi rychlostí změny frekvence a amplitudy 0.0 1.0 0.8 | Double (F64) |
uampb | Počáteční amplituda budicího signálu 0.0 1.0 | Double (F64) |
uamp_max | Nejvyšší amplituda budicího signálu 0.0 5.0 | Double (F64) |
ubias | Stejnosměrná složka budicího signálu | Double (F64) |
hilim | Největší přípustná hodnota budícího signálu 10.0 | Double (F64) |
lolim | Nejnižší přípustná hodnota budícího signálu -10.0 | Double (F64) |
cmi | Maximální počet oken pro detekci konvergence (pro každou frekvenci) 1 10 | Long (I32) |
rmi | Čekaní na odeznění přechodového děje na startu [s] 0.0 10.0 | Double (F64) |
f2..f5 | Řád (číslo) další odhadované harmonické 2 1000 2 | Long (I32) |
nmax | Rezervovaná paměť pro pole 10 10000000 40 | Long (I32) |
stopBy | Ukončení rozmítání při 10 | Long (I32) |
|
|
|
StopVal | Body pro zastavení rozmítání (přesné měření) [-30 -90 -150] | Double (F64) |
WL | Matice lineárních úseků (jen v kombinovaném režimu) [2.2 | Double (F64) |
dy_max | Maximální přípustná amplituda měřených sgnálů (pv) [2.2 | Double (F64) |
Výstup
mv | Akční zásah regulátoru (manipulated variable) | Double (F64) |
TBSY | Příznak probíhajícího ladicího experimentu | Bool |
|
|
|
w | Aktuální frekvence [rad/s] | Double (F64) |
xre | Reálná složka frekvenční charakteristiky | Double (F64) |
xim | Imaginární složka frekvenční charakteristiky | Double (F64) |
phase | Fáze frekvenční charakteristiky [stupně] | Double (F64) |
epv | Odhad procesní veličiny | Double (F64) |
IDE | Příznak chyby | Bool |
iIDE | Kód chyby | Long (I32) |
cp | Aktuální rychlost rozmítání | Double (F64) |
thd | Celkové harmonické zkreslení | Double (F64) |
pmpRef | Přesně změřené body frekvenční charakteristiky (w im re) [2.2 | Double (F64) |
mxData | Průběžně odhadovaný přenos (všechny signály) [2.2 | Double (F64) |
[Předchozí] [Na začátek] [Výše] [Další]
2025 © REX Controls s.r.o., www.rexygen.com