Normalizace fyzikálních veličin pro číslicové zpracování Vypracoval: Petr Kadaník Aktualizace: 15. října 2003 Každý realizovaný řídící systém musel projít dvěmi hlavními stádii. Nejprve je to vlastní návrh. Na základě dostupných teoretických informací a získaných zkušeností navrhne vývojář základní řídící algoritmus. Často bývá jeho funkčnost ověřena více, či méně sofistikovanou simulací na osobním počítači. Potom následuje realizace, jejímž cílem je dokázat kvality navrženého řídícího systému. Nejlépe s využitím standardních průmyslových programových a přístrojových prostředků. Veškerý teoretický návrh a většinou i případná simulace jsou prováděny s veličinami udávanými ve standardních fyzikálních jednotkách a v téměř neomezeném číselném rozsahu. V řešených rovnicích se objevují napětí od desetin po stovky voltů, otáčky od −10000 po +10000 rad/s nebo konstanty PI regulátoru od 0.001 po 10000. V současnosti se v průmyslu pro číslicovou implementaci řídících algoritmů používá signálových procesorů (DSP) s pevnou desetinnou čárkou a 16-ti bitovým rozlišením. To znamená, že lze na této platformě vyjádřit oboupolaritní číslo ve formátu Integer pouze v rámci rozsahu −32768 až +32767, což odpovídá (−215) až (+215-1). Jak tedy převést volty, ampéry či frekvence, jenž figurují v teoretickém návrhu, na takové číselné formáty, kterým porozumí DSP a zároveň zachovat matematický a fyzikální smysl řešených rovnic?
Poměrné jednotky Řešením je zavedení tzv.poměrných (per-unit) jednotek. Fyzikální hodnota dané veličiny je vyjádřena jako poměr k předem zvolené referenční hodnotě. Velmi často je touto referencí jmenovitá hodnota dané veličiny (např.jmenovitý proud motoru). Takto normalizovaná veličina pak nabývá poměrné hodnoty 1 tehdy, je-li v daném okamžiku její fyzikální hodnota rovna referenční (např.jmenovité) hodnotě. Jde o to, zvolit referenční hodnotu tak vhodně, aby se celý rozsah dané veličiny, kterého může reálně nabývat, vměstnal do čísla v 16-ti bitové reprezentaci.
Desetinná aritmetika Chceme-li 16-ti bitové číslo uvažovat jako oboupolaritní, musíme jeho rozsah (216) rozdělit na kladnou a zápornou polovinu. Pokud uvažujeme číslo ve formátu Integer (decimální celé číslo), máme k dispozici rozsah −32768 až +32767. Velmi často se však v číslicovém zpracování signálů používá tzv.desetinná (fractional) aritmetika, kdy jsou veškeré operace s čísly prováděny v maximálním rozsahu −1.0 až +1.0. Tedy Integer hodnota +32767 odpovídá “desetinné“ hodnotě +1 (ve skutečnosti je to jen 0.999969482). Někdy bývá tento formát
Normalizace fyzikálních veličin pro číslicové zpracování
označován jako Q1.15, neboť z 16-ti bitového čísla je 1 bit vyhrazen pro znaménko a zbylých 15 bitů pro absolutní hodnotu čísla (215 = 32768). Pokud si zvolíme pro číslicovou reprezentaci signálů tuto desetinnou aritmetiku, je nutné zvolit vztažné hodnoty pro tvorbu poměrných hodnot tak, abychom se se signálem v celém jeho fyzikálním rozsahu vešli do rozmezí –1 až +1. Je tedy logické, že číslo 1 bude reprezentovat maximální fyzikální hodnotu, kterou může daná veličina reálně nabývat. Velmi často je tato nejvyšší hodnota určena rozsahem měřícího zařízení (např.proudové, napěťové nebo otáčkové čidlo) a další úpravou změřeného signálu před vstupem do AD převodníku.
Příklad normalizace s použitím desetinné aritmetiky V této podkapitole je princip použití desetinné (fractional) aritmetiky a tomu uzpůsobené normalizace veličin předveden na číslicovém řešení diferenciálních rovnic tzv.I-n modelu ASM. Vychází se z napěťových rovnic ASM ve statorových souřadnicích αβ. Vstupními veličinami jsou měřené fázové proudy a otáčky rotoru. Výsledkem řešení diferenciálních rovnic jsou složky vektoru rotorového toku ve statorových souřadnicích ΨRα a ΨRβ. Matematický model ASM Asynchronní motor s kotvou nakrátko lze popsat soustavou základních napěťových rovnic v souřadnicích αβ
u Sα = RS i Sα +
u Sβ = RS i Sβ + 0 = R R i Rα +
0 = R R i Rβ +
dΨSα dt
dΨSβ dt
dΨRα + ωΨRβ dt dΨRβ dt
− ωΨRα ,
kde
ΨSα = LS i Sα + Lm i Rα
ΨSβ = LS i Sβ + Lm i Rβ ΨRα = L R i Rα + Lm i Sα
ΨRβ = L R i Rβ + Lm i Sβ ω je elektrická úhlová rychlost otáčení rotoru. Z těchto rovnic odvodíme vztahy pro časové derivace složek rotorového toku
d ΨRα R R = Lm R iSα − R ΨRα − ωΨRβ dt LR LR d ΨRβ dt
Petr Kadaník © 2003
= Lm
RR R iSβ − R ΨRβ + ωΨRα LR LR
[N-1]
[N-2]
strana 2 z 6
Normalizace fyzikálních veličin pro číslicové zpracování
V odvozených diferenciálních rovnicích jsou zatím jak konstanty, tak proměnné ve formě reálných fyzikálních veličin. To znamená v ohmech, henry, weberech, rad/s a ampérech. Pro další zpracování v DSP je nutné proměnné normalizovat. V poměrných jednotkách bude každá veličina nabývat hodnoty –1 až +1, kde 1 reprezentuje její maximální možnou hodnotu. Maximální hodnota proudu, napětí a otáčky je dána rozsahem měřících čidel a maximální rozsah magnetického toku je na této volbě závislý. Volba rozsahu proudu Řekněme, že střídavý proud o amplitudě 9A protékající fází motoru měřený čidlem proudu vyvolá na výstupu tohoto čidla, respektive na vstupu AD převodníku, napěťový signál v rozsahu 0 – 3.3V. To znamená, že při okamžité hodnotě proudu 9A je na vstupu AD převodníku 3.3V a při nulovém proudu je na něm 1.65V. V současnosti bývají v DSP často AD převodníky s 12-ti bitovým rozlišením. Digitální výstup AD převodníku se tedy číselně vejde do kladného rozsahu 16-ti bitového čísla. Vstupní analogové napětí 0-3.3V na AD převodníku bude tedy v desetinné aritmetice vyjádřeno rozsahem 0-1 na jeho číslicovém výstupu. Aby však byl proud v DSP správně oboupolaritně reprezentován, je třeba posunout skutečnou “nulu“ proudu (v tomto okamžiku je to hodnota 0.5 v desetinné aritmetice) na “nulu“ oboupolaritní veličiny vyjádřené v desetinné aritmetice. Jinými slovy je výstup AD převodníku posunut o ½ níže do záporné části 16-ti bitového čísla. Reálný proudový rozsah čidla (-9 až +9 A) odpovídající napěťovému signálu 0-3.3V na vstupu AD převodníku bude v desetinné aritmetice reprezentován číslem −0.5 až +0.5. Ve výpočtech DSP tedy může proud nabývat maximální hodnoty ±1, která v reálu odpovídá proudu ±18A. Volba napěťového rozsahu Ačkoliv se v diferenciálních rovnicích [N-11] a [N-12] napětí přímo nevyskytuje, je vhodné normalizovat i tuto veličinu. V tomto konkrétním případě navíc použijeme napětí pro normalizaci časové derivace magnetického toku, neboť derivace toku není nic jiného než napětí. Číselný rozsah napětí je podobně jako u proudu dán volbou měřícího rozsahu napěťového čidla. Obvykle je měřeno napětí ve stejnosměrném meziobvodu střídače. Toto napětí je jednopolaritní (kladné) a proto není nutno posouvat výstup AD převodníku o ½ jako u střídavého fázového proudu. Napěťovému signálu 0-3.3V na vstupu AD převodníku bude odpovídat 0 až 1 v desetinné aritmetice na jeho výstupu. Pokud tedy bude napětí DC meziobvodu 630V odpovídat analogový signál o velikosti 3.3V, bude v DSP číselný rozsah −1 až +1 reprezentovat napětí –630 až +630V. Volba rozsahu otáček Měření otáček obstarává ve většině pohonů inkrementální čidlo, tachogenerátor nebo resolver. Jejich měřící rozsah je dán buď vlastním mechanickým omezením, následným elektronickým zpracováním nebo způsobem vyhodnocení jejich výstupních signálů v řídícím algoritmu uvnitř DSP. V každém případě je třeba zvolit, nebo vypočítat jakou maximální hodnotu bude v desetinné aritmetice reprezentovat číslo 1. Při řešení rovnic matematického modelu ASM v DSP je pak nutné pečlivě zvážit, zda se jedná o otáčky mechanické či elektrické, tedy, zda ve výpočtu figuruje, či nefiguruje počet pólpárů stroje. Volba rozsahu magnetického toku Magnetický tok je vnitřní veličinou ASM a nelze ji měřit standardními prostředky. Proto je vypočítáván na základě matematického modelu ASM z ostatních snadno měřitelných veličin (napětí, proud, otáčky). Volba číselného rozsahu magnetického toku tudíž závisí na volbě rozsahu těchto vstupních veličin. Platí, že časovou derivací magnetického toku je napětí, tedy dΨ/dt=U. V ustáleném stavu platí, že Ψ=U/ω. Maximální rozsah časové derivace toku je tedy dán rozsahem napětí a maximální rozsah toku je dán poměrem maximálního rozsahu napětí a otáček.
Petr Kadaník © 2003
strana 3 z 6
Normalizace fyzikálních veličin pro číslicové zpracování
V následující tabulce jsou uvedeny maximální hodnoty jednotlivých veličin konkrétního pohonu, jenž slouží pro výpočet poměrných hodnot v desetinné aritmetice. Veličina
Max.hodnota (reprezentovaná číslem 1.0)
Proud Imax
18A
Napětí Umax
630V
Mech. otáčky ωmax
2400 ot/min; 502.4 rad/s (elektrických; pp=2); max.frekvence=80Hz
Mg. tok Ψmax
Umax/ωmax = 630/502.4=1.254 Wb
Derivace mg. toku dΨmax
Umax=630 Wb/s
Maximální hodnotu derivace magnetického toku dΨmax lze také odvodit následovně:
⎡ d (Ψmax sin ωt ) ⎤ ⎡ dΨ ⎤ dΨmax = ⎢ =⎢ ⎥ = [Ψmaxω cos ωt ]max = Ψmaxω max = U max . ⎥ dt ⎣ dt ⎦ max ⎣ ⎦ max Při úpravě rovnic [N-1] a [N-2] je nutné zachovat jejich fyzikální i matematický smysl. Abychom získali derivaci toku v poměrných hodnotách, vydělíme celou rovnici členem dΨmax (maximální hodnota derivace toku). Zároveň převedeme do poměrných hodnot i proud a toky na pravé straně (člen s proudem vynásobíme jednotkovým poměrem Imax/Imax, toky poměrem Ψmax/Ψmax a otáčky poměrem ωmax/ωmax. Normalizované rovnice [N-1] a [N-2] pak nabudou tvaru
d ΨRα Ψ Ψ ω I R R = Lm R iSα max − R ΨRα max − ωΨRβ max max dt LR dΨmax LR dΨmax dΨmax d ΨRβ dt
= Lm
Ψ ω Ψ I R RR iSβ max − R ΨRβ max + ωΨRα max max dΨmax LR dΨmax dΨmax LR
[N-4]
[N-5]
Proměnné proudu (iS), toku (ΨR) a otáček (ω) v rovnicích [N-4] a [N-5] jsou již v poměrných jednotkách. Pro zpřehlednění rovnic zavedeme koeficienty A, B a C
d ΨRα = AiSα − BΨRα − CωΨRβ dt d ΨRβ dt
= AiSβ − BΨRβ + CωΨRα
kde A = Lm
Ψ ω R Ψmax RR I max , B= R a C = max max LR dΨmax dΨmax LR dΨmax
[N-6]
[N-7]
[N-8]
Řešení diferenciální rovnice Použijeme jednoduchou Eulerovu metodu. Derivace se převede na diferenci s časovým přírůstkem ∆T. Ψ(k-1) je hodnota toku z minulého integračního kroku.
ΨRα (k ) − ΨRα (k −1) ∆T ΨRβ (k ) − ΨRβ (k −1) ∆T
Petr Kadaník © 2003
= AiSα (k ) − BΨRα (k −1) − CωΨRβ (k −1)
[N-9]
= AiSβ (k ) − BΨRβ (k −1) + CωΨRα (k −1)
[N-10]
strana 4 z 6
Normalizace fyzikálních veličin pro číslicové zpracování
A po vyjádření toku Ψ(k) na levou stranu dostaneme
[
]
[N-11]
[
]
[N-12]
ΨRα (k ) = ∆T AiSα (k ) − BΨRα (k −1) − CωΨRβ (k −1) + ΨRα (k −1) ΨRβ (k ) = ∆T AiSβ (k ) − BΨRβ (k −1) + CωΨRα (k −1) + ΨRβ (k −1)
Integrační konstantu ∆T je nutné také normalizovat s přihlédnutím k taktovací frekvenci regulační smyčky a normalizaci rovnic I-n modelu ASM. Platí, že U = dΨ/dt = [Ψ(k)- Ψ(k-1)] / ∆T , tedy Ψ(k) = ∆T*U + Ψ(k-1). Poslední vztah podělíme maximálním tokem Ψmax a pak ještě znormalizujeme napětí (vynásobíme členem Umax/Umax). Dostaneme rovnici s poměrnými hodnotami Ψ a U a s normalizovanou integrační konstantou
∆T = Ttakt
U max , kde Ttakt je doba výpočetního taktu. Ψmax
[N-13]
Zavedení konkrétních hodnot Na závěr příkladu je uveden výpočet konstant, jenž potřebujeme znát pro výpočet rovnic [N−11] a [N−12]. Výpočet je proveden pro konkrétní motor 1.5kW / 400V / 3.4A / 50Hz s parametry náhradního obvodu RS=5.5 Ω, RR=4.2 Ω, LS=291.6 mH, LR=291.6 mH a Lm=277.2 mH. Výpočet provádí DSP na frekvenci 8kHz, čili Ttakt = 125µs. Konstanta Hodnota [-] A
0.11407
B
0.028669
C
1.0
∆T
0.06279
Konstanty jsou v rozmezí <-1;+1>, takže násobení s proměnnými v rovnicích [N-11] a [N-12] v DSP bude z hlediska desetinné aritmetiky bez problémů. K přetečení by ale mohlo dojít např. při sčítání, odčítání nebo dělení v mezivýpočtech. Pokud by konstanty A, B, C vyšly mimo rozsah <-1;+1>, musely by se podělit vhodným číslem tak, aby výsledek do tohoto rozsahu zapadl. Po použití takto modifikované konstanty v rovnicích [N−11] a [N−12] je pak nutné konečný, nebo průběžný výsledek stejným číslem vynásobit, aby byl zachován matematický smysl rovnic. Pozn.: Abychom násobením jednotlivých členů rovnic [N-11] a [N-12] integrační konstantou ∆T nezatěžovali výpočetní výkon DSP při každém taktu, lze ji již při inicializaci programu zohlednit (vynásobením) v konstantách A, B a C. Výpočet transformačního úhlu Ze získaných složek rotorového toku v souřadnicích αβ se potom vypočítají goniometrické funkce úhlu ϑ, který se používá pro transformaci statorového souřadného systému αβ do synchronního dq a naopak.
sin ϑ =
Petr Kadaník © 2003
ΨRβ ΨR
, cosϑ =
ΨRα , kde ΨR = ΨR2α + ΨR2β . ΨR
strana 5 z 6
Normalizace fyzikálních veličin pro číslicové zpracování
Dovětek Tento dokument vznikl jako pomocný text v rámci mé disertační práce nazvané “Řízení asynchronního motoru bez použití snímače rychlosti“. Navržený regulační algoritmus byl implementován na signálovém procesoru Motorola DSP56F805. Pokud v tomto textu naleznete chyby nebo nejasnosti, budu rád, když mi o tom napíšete na emailovou adresu
[email protected]. Na internetových stránkách http://disertace.kadanik.cz lze najít podrobnosti o celém projektu.
Petr Kadaník © 2003
strana 6 z 6