7 POPIS PROGRAMU PRO DSP Navržený algoritmus pro řízení rychlosti ASM bez využití zpětné otáčkové vazby je prováděn signálovým procesorem Motorola DSP56F805. Samotný program jsem psal v jazyku C, přičemž některé bloky algoritmu byly napsány v assembleru a volány jako funkce. Kód přeložený programem CodeWarrior je pak do Flash paměti DSP nahrán z PC přes paralelní port prostřednictvím speciálního rozhraní JTAG. Komunikace programu PCMaster (ovládání pohonu a sledování vnitřních proměnných) se signálovým procesorem probíhá po standardní sériové lince. Při prvním seznámením s tvorbou kódu pro DSP56F805 jsem využíval několika demonstračních projektů dodaných s instalací vývojového prostředí CodeWarrior. Mnohem inspirativnější však pro mě byly demonstrační aplikace poskytnuté firmou Motorola v programovém balíku nazvaném SDK (Software Development Kit). Samotná filozofie této nadstavby CodeWarrioru je pro pohonářské aplikace nepraktická, jak jsem po nějakém čase sám rozpoznal a jak mi potvrdili zkušenější uživatelé. Nicméně jsem díky SDK získal cenné praktické zkušenosti. Mezi aplikacemi tohoto balíku byly kromě demonstrací nastavení a ovládání jednotlivých periferií DSP i projekty skalárního a vektorového řízení ASM. Z těchto projektů jsem vysledoval hrubou strukturu řídícího algoritmu, kterou jsem z části použil ve své práci. Vnitřní struktura SDK je však velice nepřehledná, a neumožňuje snadné a neomezené uživatelské změny či přizpůsobení. Proto jsem velice uvítal úzkou spolupráci s pracovníky firmy Motorola z vývojového centra v Rožnově pod Radhoštěm, kteří v roce 2003 představili uživatelům DSP Motorola řady 56800 svou variantu nadstavby programu CodeWarrior, která je určena speciálně pro vývoj pohonářských aplikací. Nadstavba byla nazvána DSP56800 QuickStart.
7.1 Nastavení jádra a periferií DSP Aby mohl DSP vykonávat správně vlastní regulační algoritmus, je třeba vhodně nastavit jeho základní parametry a inicializovat periferie, které chceme využívat.
7.1.1
Jádro procesoru
Signálový procesor Motorola DSP56F805 lze provozovat maximálně při rychlosti provádění 40 milionů instrukcí za sekundu (MIPS), což odpovídá taktovací frekvenci jádra 80MHz. Na obr.7-1 je zobrazeno nastavení parametrů jádra DSP pomocí konfiguračního programu ConfigTool.
7-2
Řízení asynchronního motoru bez použití snímače rychlosti
Obr.7-1: Nastavení parametrů jádra DSP
Sběrnice IP-BUS, po které probíhá komunikace jádra DSP s jeho periferiemi, je nastavena na polovinu maximální systémové frekvence, tedy 40MHz.
7.1.2
Analogově-číslicový převodník
V DSP je k dispozici osmikanálový analogově-číslicový (AD) převodník. Všechny kanály jsou v této aplikaci nakonfigurovány pro snímání unipolaritních (single-ended) signálů. V jeden okamžik lze vzorkovat naráz vždy dva vybrané kanály. Takt převodníku je nastaven na maximální hodnotu 5MHz. Spouštění vzorkování je synchronizováno s PWM modulátorem, respektive s momentem obnovení jeho referenčních hodnot. PWM modulace pracuje na frekvenci 16kHz, AD převod probíhá s poloviční frekvencí 8kHz. Po ukončení AD převodu spustí přerušení obslužnou funkci s názvem AdcCallBackISR (obr.7-2). V následující tabulce je uvedeno konkrétní využití kanálů AD převodníku při realizaci. Číslo kanálu
Číslo vzorku
Měřený signál
AN0
SMP2
Napětí DC meziobvodu UDC
AN1
SMP4 a SMP5
Signál pro eliminaci rušení fázových proudů
AN2
SMP0
Fázový proud Ia
AN3
SMP1
Fázový proud Ib
AN4
x
nevyužit
AN5
SMP6
Signál pro eliminaci rušení napětí UDC
AN6
SMP3
SINUS signál resolveru
AN7
SMP7
COSINUS signál resolveru
http://disertace.kadanik.cz
7-3
Popis programu pro DSP
Obr.7-2: Nastavení parametrů AD převodníku
7.1.3
PWM modulátor
Modulační frekvence modulátoru se zadává prostřednictvím tzv. MODULO registru. Zadané hodnotě 1250 odpovídá frekvence 16kHz (viz obr.7-3). Ochranná doba (deadtime) je zde nastavena na 3µs (modul se choval dobře i při 2µs). Obnovení hodnot zadaných do modulátoru probíhá stejně jako spouštění AD převodníku s frekvencí 8kHz (PWM Reload Frequency). Pokud se na některém z chybových registrů modulátoru objeví příznak chyby, vyvolá se přerušení (pokud je povoleno) a spustí se obslužná funkce PwmAFaultISR. Součástí čipu DSP56F805 je i druhý modulátor, který jsem ale nevyužil.
7.1.4
Ostatní periferie
V závislosti na potřebách konkrétní aplikace je samozřejmě nutné konfigurovat i další periferie. V mém případě šlo hlavně o časovače (příklad nastavení jednoho z nich je na obr.7-4). K dispozici jsou celkem 4 sady časovačů. Využil jsem je k synchronizaci spouštění AD převodníku s PWM (Timer C2), ke spouštění pomalé regulační smyčky (Timer C0) a k generování referenčního signálu pro resolver (Timer D0). Další důležitou periferií je rozhraní sériové komunikace (SCI), které zajišťuje spojení s PC. Nezbytností je samozřejmě i správné nadefinování priorit jednotlivých přerušení. K tomu slouží v konfiguračním programu ConfigTool složka ITCN – Interrupt Controller.
Disertační práce © Petr Kadaník, 2004
ČVUT Praha
7-4
Řízení asynchronního motoru bez použití snímače rychlosti
Obr.7-3: Nastavení parametrů PWM modulátoru
Obr.7-4: Nastavení parametrů časovače C2
7.2 Řídící algoritmus Po přivedení napětí na DSP, anebo po RESETu, proběhne nejprve oživení základních funkcí samotného procesoru a poté se již DSP chová dle instrukcí zdrojového kódu uloženého v paměti Flash.
http://disertace.kadanik.cz
Popis programu pro DSP
7.2.1
7-5
Inicializace
V první fázi se nastaví parametry jádra DSP a periferií, do proměnných jsou načteny výchozí hodnoty. Proběhne korekce ofsetu proudových čidel. Pohon je poté nastaven do módu manuálního ovládání. Po inicializaci vstupuje program do nekonečné smyčky, ve které očekává příslušná přerušení, která podle předem definovaných priorit obsluhuje.
7.2.2
Operační stavy pohonu
Pohon se může nacházet v jednom z těchto čtyř základních stavů: •
INIT – inicializační proces po RESETu DSP
•
STOP – pohon je připraven ke spuštění
•
RUN – probíhá regulační proces
•
FAULT – chybový stav
Během stavu STOP lze zvolit způsob ovládání pohonu buď pomocí tlačítek a přepínačů na řídící desce, anebo prostřednictvím programu PCMaster. Do stavu RUN lze pohon dostat pouze ze stavu STOP, a to jen v případě, že nejsou detekovány žádné chyby. Do stavu FAULT může přejít pohon kdykoliv se objeví chybové přerušení. Jednotlivé stavy jsou na řídící desce signalizovány různým blikáním zelené LED diody. Při INIT a STOP stavu bliká dioda pomalu, při FAULT stavu bliká rychle a při stavu RUN svítí nepřetržitě.
7.2.3
Přerušení
Po inicializaci vstupuje DSP do nekonečné smyčky a čeká na přerušení. Na pozadí probíhá testování chybových příznaků, nastavení ovládacích tlačítek a přepínačů, aktualizace uživatelem zadávané rychlosti a identifikace operačního stavu pohonu. Přerušení jsou obsluhována dle předem nadefinovaných priorit. Následující seznam řadí typy povolených přerušení od nejvyšší k nejnižší prioritě. • • • • •
PWM chybové přerušení – reaguje na nastavení příznaku v chybovém registru modulátoru (nadproud, přepětí) Ukončení AD převodu – spustí se jeden z typů rychlé regulační smyčky a AD převodník se připraví k dalšímu vzorkování (probíhá s taktem 125µs) Přerušení od časovače C0 – vykoná se pomalá regulační smyčka, která se spouští pravidelně po intervalu 1ms Přerušení od sériové komunikace – zajišťuje pravidelný a správný přenos dat mezi PC a řídící deskou Externí přerušení IRQA a IRQB – využíváno pro zadávání žádané rychlosti motoru prostřednictvím tlačítek na řídící desce
7.2.4
Rychlá regulační smyčka
Pokud se pohon nachází ve stavu RUN nebo STOP, je po každém ukončení AD převodu spouštěna rychlá regulační smyčka. AD převodník vzorkuje s frekvencí 8kHz, to znamená, že regulace probíhá v taktu 125µs. Následuje seznam hlavních úkonů prováděných během této regulační smyčky. Stav RUN • • •
Zpracování vzorků AD převodníku Vyhodnocení rychlosti resolveru Clarkova transformace (Iabc → Iαβ)
Disertační práce © Petr Kadaník, 2004
ČVUT Praha
7-6 • • • • • • • •
Řízení asynchronního motoru bez použití snímače rychlosti
Výpočet NFO modelu PI regulace proudu v souřadnicích dq Odvazbení signálů Ud a Uq Inverzní Parkova transformace (Udq → Uαβ) Kompenzace kolísání napětí DC meziobvodu Inverzní Clarkova transformace (Uαβ → Uabc) Výpočet spínacích časů pro modulaci Aktualizace referenčních hodnot PWM modulátoru Stav STOP
• • • • •
Zpracování vzorků AD převodníku Vyhodnocení rychlosti resolveru Nastavení parametrů pohonu pro přechod do stavu RUN Zadání nulové reference pro modulaci Aktualizace referenčních hodnot PWM modulátoru Pozn: Pokud se pohon dostane do chybového stavu FAULT, tak je okamžitě zablokován výstup PWM modulátoru. Časovač modulátoru se ale nezastaví, pouze nejsou aktivní jeho výstupy. AD převodník je i v tomto stavu spouštěn synchronně s tímto časovačem, což umožňuje monitorovat snímané signály před i po výskytu chybového stavu.
7.2.5
Pomalá regulační smyčka
Tuto smyčku spouští přerušení časovače C0 v pravidelných intervalech 1ms. Provádí se během ní následující úkony: • • • •
Omezení nárůstu/poklesu žádané hodnoty rychlosti dle předdefinované rampy PI regulace otáček Kompenzace nelinearity střídače (ochranných dob) PI regulace magnetizačního proudu
Ve stejném intervalu se také provádí aktualizace blikání signalizační zelené LED diody a kontrola aktuálního stavu ovládacích tlačítek.
7.3 Vstupní a výstupní signály Řídící deska s DSP56F805, popsaná v kapitole 6.2 obsahuje konektor označený UNI-3, který slouží k propojení s výkonovým měničem, respektive s jeho elektronickým rozhraním. Signály lze rozdělit do dvou skupin: • •
Digitální – 6x PWM signál, digitální zem Analogové – signály fázových proudů Ia a Ib, a napětí (UDC) stejnosměrného meziobvodu, analogová zem
Na konektoru UNI-3 je z DSP vyvedeno více signálů, které jsem ale ve své aplikaci nevyužil. Dále je k desce možné připojit inkrementální čidlo nebo resolver. Každý typ snímače rychlosti má na desce speciální konektor. Pozn.: Brzdný odpor nebyl při realizaci použit. Stejně tak nebylo využity logické signály pulzního napětí (kapitola 6.3.5).
7.4 Ochrany pohonu a jejich nastavení Pohon jen chráněn před překročením předem nadefinovaných limitních hodnot. Jedná se o ochranu před následujícími stavy: •
Přepětí DC meziobvodu
http://disertace.kadanik.cz
Popis programu pro DSP
• • •
7-7
Podpětí DC meziobvodu Nadproud Přetížení
Kromě přetížení je u všech ostatních stavů po překročení dané hranice vyvoláno přerušení, zablokován PWM výstup a identifikována chyba. Úroveň přepětí v DC meziobvodu a nadproudu se nastavuje odporovými trimry na řídící desce. Na řídící desce lze pomocí jumperu nastavit, zda bude nadproud vyhodnocován z proudu DC meziobvodu, anebo proudu fází A. Nastavená úroveň se srovnává s příslušným analogovým signálem vstupujícím do AD převodníku, a v momentě kdy se signály rovnají je nastaven příznak chyby v chybovém registru PWM modulátoru (pokud je toto přerušení povoleno). Úroveň podpětí DC meziobvodu se nastavuje parametrem konkrétního kanálu AD převodníku. Příznak přetížení nevyvolá přerušení, pouze uživateli signalizuje stav, kdy je žádaná velikost proudu regulátoru vyšší než povolená.
7.5 Korekce ofsetu Proudová čila měří okamžitý proud ve dvou fázích motoru. Měřený signál je dále upravován operačními zesilovači a vstupuje do AD převodníku signálového procesoru. U signálu měřeného střídavého proudu se předpokládá, že bude nulový proud reprezentován napěťovou úrovní 1.65V (3.3V/2), maximální okamžitá monitorovací hodnota bude odpovídat maximální bezpečné úrovni AD převodníku (asi 3.3V) a minimální hodnota se bude blížit potenciálu referenční země AD převodníku. Korekce ofsetu měřených proudů, tak aby byl u obou čidel stejný, probíhá během inicializačního procesu programu. Předpokládá se, že je motor v klidu a bez napájení. Z daného počtu nasnímaných vzorků signálu se vyhodnotí nový ofset pro příslušné kanály AD převodníku.
Disertační práce © Petr Kadaník, 2004
ČVUT Praha
7-8
Řízení asynchronního motoru bez použití snímače rychlosti
Obsah Kapitola Popis programu pro DSP 7.1
Nastavení jádra a periferií DSP ...................................................................1
7.1.1
Jádro procesoru ..................................................................................1
7.1.2
Analogově-číslicový převodník ..............................................................2
7.1.3
PWM modulátor ..................................................................................3
7.1.4
Ostatní periferie..................................................................................3
7.2
Řídící algoritmus ......................................................................................4
7.2.1
Inicializace.........................................................................................5
7.2.2
Operační stavy pohonu ........................................................................5
7.2.3
Přerušení ...........................................................................................5
7.2.4
Rychlá regulační smyčka ......................................................................5
7.2.5
Pomalá regulační smyčka .....................................................................6
7.3
Vstupní a výstupní signály .........................................................................6
7.4
Ochrany pohonu a jejich nastavení .............................................................6
7.5
Korekce ofsetu.........................................................................................7
Pozn.: Tento dokument je jednou z kapitol mé disertační práce nazvané “Řízení asynchronního motoru bez použití snímače rychlosti” na Katedře elektrických pohonů a trakce (FEL ČVUT Praha). Poslední aktualizace: 6. září 2004 Autor: Petr Kadaník Email:
[email protected]
http://disertace.kadanik.cz