sterowanie silnikiem bldc przy pomocy...

16
Sterowanie silnikiem BLDC przy pomocy MC9S08MP16 1 Marcin Dmochowski Jan Kędzierski Marek Wnuk wer. 1.0 Wroclaw 2013 1 Dokument stanowi element instrukcji do ćwiczenia w ramach kursu Sterowniki robotów.

Upload: others

Post on 27-Jan-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Sterowanie silnikiem BLDC przy pomocy MC9S08MP161

Marcin DmochowskiJan KędzierskiMarek Wnuk

wer. 1.0Wrocław 2013

1Dokument stanowi element instrukcji do ćwiczenia w ramach kursu Sterowniki robotów.

Wprowadzenie

Silniki BLDC są coraz częściej używane w robotyce oraz elektronice amatorskiej. Trend tenutrzymuje się głównie ze względu na niewielkie wymiary silników bezszczotkowych w stosunkudo osiąganej mocy oraz momentu obrotowego i wysoką niezawodność w porównaniu do silnikówszczotkowych, gwarantowaną przez brak szybko zużywających się i iskrzących elementów me-chanicznych, którymi są właśnie szczotki. Ich osiągi są ograniczane praktycznie wyłącznie przezilość wydzielanego w uzwojeniu ciepła. Podobnie jak w przypadku pozostałych silników prądustałego, ich zaletą jest osiąganie największego momentu obrotowego przy zatrzymanym wirniku.

W laboratorium wykorzystano zestaw 3–Phase BLDC/PMSM Low–Voltage MotorControl Drive firmy Freescale Semiconductor. W zakres ćwiczenia wchodzi obserwacja charak-terystyk silnika bezszczotkowego zawartego w zestawie przy zmianie wartości zadanej prędkościobrotowej bądź przy wprowadzeniu ograniczenia prądowego, a także przy zmianie wzmocnieńregulatora PI dla prędkości obrotowej. Działanie zestawu oraz elementy niniejszej instrukcjizbadano w ramach projektu inżynierskiego [1].

Silniki BLDC –– podstawowe cechy

Silnik BLDC jest maszyną trójfazową synchroniczną. Do sterowania nim niezbędny jest falownik,wytwarzający trzy przebiegi napięciowe, podawane na uzwojenia stojana. W ten sposób odbywasię komutacja elektroniczna. Na rys. 1 przedstawiono przykładowy cykl komutacji.

Rysunek 1: Cykl komutacji elektronicznej [4]

Zawsze równocześnie zasilane są tylko dwa z trzech uzwojeń, natomiast pomiar napięcia indu-kowanego w trzecim może być wykorzystywany do ustalenia pozycji wirnika (komutacja bezsen-soryczna). Silnik BLDC może być też wyposażony w halotrony (czujniki wykorzystujące efektHalla) – w takim przypadku pomiar napięcia jest zbędny, gdyż pozycję wirnika ustala się dziękitym czujnikom (komutacja sensoryczna). Jeden mechaniczny obrót wirnika odpowiada liczbiecykli komutacji równej liczbie par biegunów stojana na jedną fazę zasilania [3]. Na rys. 2 przed-stawiono przekrój silnika BLDC z trzema parami biegunów na fazę.

Rozważając sterowanie od strony elektroniki, może się ono odbywać na kilka sposobów. Parytranzystorów mogą być przełączane bipolarnie lub unipolarnie. W pierwszym przypadku sy-gnały sterujące generowane są w taki sposób, że podczas jednego cyklu PWM najpierw załą-czane są pożądane tranzystory, a następnie jest załączana para do nich komplementarna, o ilezadany współczynnik wypełnienia sygnału PWM jest mniejszy od 100%. Drugim sposobem jestprzełączanie unipolarne, podczas którego tranzystor strony dolnej jest cały czas wysterowany,a sygnałem PWM wysterowywany jest tranzystor strony górnej i (jeżeli zadany współczynnikwypełnienia jest mniejszy od 100%) odpowiadający mu tranzystor strony dolnej.

2

Rysunek 2: Przekrój silnika BLDC [4]

Niezależnie od tego możliwa jest praca dwukwadrantowa (dwućwiartkowa) oraz czterokwadran-towa (czteroćwiartkowa) [4]. W pierwszym przypadku tranzystory komplementarne do wystero-wywanych w danej cześci cyklu komutacji tranzystorów nie są załączane. Implikacją jest moż-liwość pracy jedynie silnikowej (z obrotami w jedną oraz drugą stronę, stąd operacja dwu-kwadrantowa). Jeżeli zaś tranzystory komplementarne mogą być załączane, możliwa staje sięrównież praca prądnicowa lub hamowanie silnika. Zaletą takiego rozwiązania jest liniowa pracawe wszystkich czterech ćwiartkach (rys. 3). W takim przypadku przy przełączaniu bipolarnym

Rysunek 3: Praca dwu- i czteroćwiartkowa [4]

wartość średnia natężenia prądu płynącego przez zasilane uzwojenia równa zero osiągana jestprzy połowie maksymalnego wypełnienia sygnału PWM, zaś przy unipolarnym następuje to przywypełnieniu równym zero. Praca czterokwadrantowa pociaga za sobą konieczność wprowadzeniaczasu martwego pomiędzy przełączeniami, aby zabezpieczyć elementy mocy przed przepływemprądu wyłącznie przez nie (z pominięciem uzwojeń silnika), co grozi ich zniszczeniem.

3

Podstawowe cechy zestawu

Wykorzystywany zestaw 3–Phase BLDC/PMSM Low–Voltage Motor Control Drivezawiera płytę główną z trójfazowym mostkiem z tranzystorów typu MOSFET, sterowanymukładem MC33927 [5], złączem przeznaczonym na płytkę z mikrokontrolerem oraz pozostałymielementami elektronicznymi niezbędnymi do działania. Oprócz użytego w ćwiczeniu mikrokon-trolera MC9S08MP16 dostępny jest również MC56F8006. Programowanie parametrów pracy układuMC33927 odbywa się za pośrednictwem magistrali SPI. Diagram blokowy zestawu przedstawionona rys. 4.

Rysunek 4: Schemat blokowy zestawu [2]

Wykorzystany w zestawie silnik ma moc znamionową 40 W oraz napięcie znamionowe 24 V i jestwyposażony w hallotrony. Zestaw jest przystosowany do pracy przy napięciu do 24 V oraz przyprądzie do 4 A. Możliwa jest komutacja bezsensoryczna [4] lub z wykorzystaniem halotronów [6].

Domyślne oprogramowanie zestawu pozwala na zmianę prędkości zadanej, ograniczenia prądo-wego oraz parametrów regulatorów PI dla tych wielkości. Producent załączył pliki źródłoweoprogramowania, co umożliwia łatwą modyfikację działania zestawu pod kątem indywidualnychpotrzeb. Dedykowanym narzędziem jest środowisko CodeWarrior.

Komunikacja z zestawem odbywa się przez interfejs USB za pomocą programu FreeMASTER,dostępnego tylko dla systemów z rodziny Windows. Przy pierwszym podłączeniu zestawu po-winien zostać zainstalowany sterownik dla HC9S08JM60. Jest to mikrokontroler odpowiadającyza komunikację z komputerem. Zaimplementowano na nim urzadzenie USB klasy CDC, widocznew systemie jako port transmisji szeregowej (COM).

Powinien również być zainstalowany program FreeMASTER (do zestawu załączona jest wer-sja 1.3.10.1). Program ten służy do komunikacji przez port szeregowy, który w zestawie jestemulowany przez układ HC9S08JM60.

4

Rysunek 5: Główna płytka z oznaczonymi przyciskami oraz przełącznikiem [2]

Praca z mikrokontrolerem MC9S08MP16

Wygląd płytki–córki przedstawiono na rys. 6. Podstawowym elementem niezbędnym do pracy

Rysunek 6: Płytka–córka z mikrokontrolerem MC9S08MP16

jest archiwum samorozpakowujące się z projektem FreeMASTER, znajdujące się w podfolde-rze Software Sources. Po jego rozpakowaniu należy uruchomić program FreeMASTER orazotworzyć projekt BLDC Sensorless S08MP16.pmp, znajdujący się w folderze freemaster wśródwypakowanych plików. Po uruchomieniu programu niezbędne jest ustawienie właściwego portuCOM we właściwościach projektu (menu Project → Options. Numer portu można sprawdzićw menedżerze urządzeń, jak pokazano na rys. 7. Największa prędkość transferu danych, jakąmoże osiągnąć zestaw, to 9600 bitów na sekundę i taką właśnie wartość należy ustawić. Kolej-nym krokiem jest upewnienie się, że komunikacja jest aktywna, to jest przycisk STOP znajdującysię na pasku narzędzi pod menu głównym programu nie jest wciśnięty. Po wykonaniu tych krokówdiody przy złączu USB powinny zacząć migać.

5

Rysunek 7: Menedżer urządzeń z wyszczególnionym HC9S08JMxx

Uruchomienie silnika na płytce (rys. 5)

W celu uruchomienia silnika, konieczne jest przestawienie kontrolki ON/OFF w projekcie (rys. 8)w pozycję ON lub przełącznika TOGGLE w pozycję bliższą przyciskom UP/DOWN. Ponowne klik-nięcie kontrolki lub przestawienie przełącznika w przeciwną pozycję zatrzymuje działanie.

Od tego momentu można swobodnie ustwiać prędkość obrotową silnika w zakresie zaznaczonymw projekcie jako zielony obszar na obrotomierzu, czyli od 500 min−1 do 4500 min−1. W tymcelu można użyć przycisków UP/DOWN, które w przypadku używania mikrokontrolera MC9S08MP16spełniają rolę zwiększania prędkości obrotowej w lewo lub w prawo (jeżeli wirnik aktualnie obracasię w przeciwną do zadawanej stronę, prędkość obrotowa maleje); drugą opcją jest kliknięciena tarczę obrotomierza w projekcie.

Projekt oferuje także możliwość ustawienia ograniczenia prądowego przez kliknięcie na tarczęamperomierza. Wskazówka w położeniu 0 oznacza brak miękkiego (programowego) ograniczeniaprądu.

W razie wystąpienia błędu, zgłaszanego jako zmiana stanu na ERROR (informacja ta jest wy-świetlana w miejscu podpisanym Application Mode), należy użyć przycisku RESET na płytcelub w projekcie i od nowa zainicjować działanie.

Zapisywanie wartości chwilowych prędkości obrotowej i prądu

Narzędzie rejestrator

W projekcie domyślnie znajdują się rejestratory (ang. recorders), dzięki którym można zapi-sać pewną liczbę punktów pomiarowych dowolnego przebiegu, który jest mierzony w zestawie(na przykład prędkość obrotowa zadana i rzeczywista oraz wartość prądu płynącego przez sil-nik). Są one jednak niepraktyczne do badania zachowania się silnika przy zmienianiu zadanejprędkości obrotowej ze względu na ich zasadę działania. Dane pomiarowe nie są od razu przesy-łane do programu FreeMASTER, lecz są przechowywane w pamięci mikrokontrolera, co znaczącoogranicza maksymalną liczbę punktów pomiarowych. Ponadto nowa sesja zapisywania punktównie może zostać zaczęta, zanim mikrokontroler nie prześle całego poprzedniego zestawu danych.Operacja ta zajmuje około pół sekundy, wobec czego niemożliwe jest uzyskanie ciągłej charak-terystyki.

Narzędzie rejestrator znajduje zastosowanie przy obserwacji zmian chwilowych wartości sygnału

6

Rysunek 8: Program FreeMASTER z załadowanym projektem dla mikrokontrolera HC9S08MP16

Rysunek 9: Przykład użycia narzędzia rejestrator

7

przy pracy silnika w stanie ustalonym. Zapisana seria pomiarów jest po przesłaniu przez mi-krokontroler wizualizowana w formie wykresu. Narzędzia typu rejestrator są oznaczone ikonąlornetki oraz znajdują się w lewej części okna programu FreeMASTER. W celu uruchomieniapomiaru, wystarczy kliknąć rejestrator zapisujący wartość pożądanej wielkości. Aby ponowićzapis dla tej samej wielkości, należy użyć przycisku Run, znajdującego się w prawej dolnej częściokna. Istnieje także możliwość automatycznego rozpoczynania zapisu kolejnych serii –– odpo-wiada za to opcja Auto run. Wyłączenie opcji Auto stop daje natomiast możliwość ręcznegozatrzymywania zapisu.

Narzędzie oscyloskop

Drugą z możliwości zapisu wartości chwilowych przebiegów oferowaną przez program jest narzę-dzie oscyloskop (ang. scope). Jest ono znacznie bardziej wszechstronne, gdyż zapisuje wszystkiepunkty pomiarowe danej wielkości w czasie rzeczywistym. W tym przypadku mikrokontrolerna bieżąco przesyła dane do programu. Nie ma więc ograniczeń obecnych w przypadku narzę-dzia typu rejestrator, a równocześnie oscyloskop może spełniać rolę rejestratora. Jedyną wadąscope jest fakt, że nie można zatrzymać przesuwania się wykresu w miarę odczytu kolejnychdanych, wobec czego analiza zmian wartości chwilowych przy pracy w stanie ustalonym jestutrudniona.

Aby dodać do projektu FreeMASTER narzędzie oscyloskop, należy kliknąć prawym przyciskiemmyszy na jedną z głównych pozycji listy widocznej w oknie programu po lewej stronie –– są oneoznaczone trzema prostokątami –– lub na Sensorless BLDC using HCS08MP16 (tak postą-piono w widocznym na rys. 12 przykładzie) oraz wybrać opcję Create Scope. Następnie należydodać do utworzonego narzędzia wielkości do obserwowania. Dokonać tego można przez klik-nięcie prawym przyciskiem myszy na oscyloskop i wybór Properties..., a następnie przejściedo zakładki setup. Teraz można wybrać wielkości z listy, jak pokazano na rys. 10.

Rysunek 10: Wybór wielkości obserwowanych za pomocą narzędzia oscyloskop

Aby dana wielkość była wyświetlana, konieczne jest jej zaznaczenie. W przykładzie obserwowa-nymi wielkościami będą prędkość obrotowa zadana, prędkość obrotowa rzeczywista oraz wartośćprądu płynącego przez uzwojenia silnika. Pożądane jest wyświetlanie dwóch pierwszych wielkościrazem, a prądu osobno, wobec czego należy zaznaczyć prąd na liście wybranych wielkości, za-znaczyć BLOCK 1 w okienku na prawo od tejże listy, po czym kliknąć przycisk Assign vars toblock. Dzięki temu oscyloskop zostanie podzielony w poziomie na wykres prędkości oborotwej

8

zadanej i rzeczywistej oraz wykres wartości prądu. Prawidłowe ustawienia przedstawia rys. 11.

Rysunek 11: Wybór wielkości obserwowanych za pomocą narzędzia oscyloskop i podział na dwawykresy

Oprócz dodania wielkości do obserwowania należy także ustawić odstęp czasu, co który mazostać wykonany ich pomiar. Dokonać tego można w zakładce Main, gdzie parametr Periodnależy ustawić na 10 ms. Istnieje możliwość dalszego zmniejszenia odstępu przez wybór opcji0 ms, ale nie jest wtedy znana podstawa czasu dla uzyskanych punktów, co ma znaczenie przyrysowaniu wykresów przy pomocy zewnętrznego oprogramowania.

W celu analizy przebiegów wielkości mierzonych pożądany jest zapis punktów pomiarowychdo pliku. Kiedy w oknie programu wyświetlany jest utworzony oscyloskop, w menu głównympojawia się nowa pozycja o tejże nazwie. Znajduje się tam opcja Data capture setup, gdziemożna wybrać folder do zapisu punktów pomiarowych. Teraz wystarczy wybrać opcję ToggleData Capture On/Off z tegoż menu lub kliknąć ikonę tej opcji na panelu pod menu głównym,aby rozpocząć zapis danych do pliku. Ponowne wybranie tej opcji kończy zapis do pliku.

W przedstawionym na rys. 12 przykładzie działania narzędzia oscyloskop zmieniono zadanąwartość prędkości obrotowej z 600 przez wpisanie 4500 jako Value dla velocityDesired. Tensposób oraz użycie przycisków UP/DOWN na płytce głównej są zalecane do zmiany wartości zada-nej prędkości obrotowej, gdyż wyjście z okna scope powoduje zaprzestanie pobierania punktówpomiarowych.

Zadajniki szybkich zmian zadanej wartości prędkości obrotowej

Projekt posiada funkcjonalność automatycznej szybkiej zmiany zadanej wartości prędkości ob-rotowej w dwóch wariantach. Pierwszym z nich jest zmiana na maksymalną wartość prędkościobrotowej, po czym cyklicznie następuje zmiana na tę samą wartość, ale przy obrotach w prze-ciwną stronę (zmieniany jest znak wartości zadanej). Drugim wariantem jest zmiana wartościzadanej do minimum, a następnie z powrotem do maksimum. Obydwa zadajniki po aktywowaniudziałają bez przerwy, jednak zasadniczo różnią się sposobem działania. Pierwszy z nich skokowozmienia zadaną wartość prędkości obrotowej, po czym następuje oczekiwanie na osiągnięcieprzez silnik tej wartości oraz kolejna zmiana. Drugi rozpoczyna działanie od testu, podczas któ-rego badana jest szybkość zmian rzeczywistej prędkości obrotowej silnika. Następnie przechodzido normalnego działania, podczas którego wartość zadana jest zmieniana w sposób ciągły, takaby rzeczywista wartość prędkości obrotowej nadążała za zmianami wartości zadanej. Obydwa

9

Rysunek 12: Przykład użycia narzędzia oscyloskop z oznaczonym menu Scope oraz przyciskiemzapisu danych do pliku

zadajniki znajdują się w lewym dolnym narożniku okna projektu FreeMASTER, zaś włączyćlub wyłączyć je można z ich menu kontekstowego.

Zmiana parametrów regulatora PI prędkości obrotowej

W celu zmiany parametrów regulatora, należy wybrać pozycję Speed regulator z menu w le-wej części okna projektu, a następnie wprowadzić pożądaną wartość dla wybranych parametrów,np. regSpeedPIparams.propGain lub regSpeedPIparams.intGain. Wartość maksymalna dlaobydwu to 0,99. Modyfikacja przesunięć fazowych dla poszczególnych członów regulatora jestniewskazana, gdyż może spowodować niestabilne działanie bądź zakleszczenie zestawu w staniebłędu. Możliwa jest także modyfikacja parametrów regulatora wartości prądu, który działa przyaktywnym ograniczeniu prądowym.

Elementy implementacji projektu demo dla FreeMASTER

Definicje i struktury danych

Stan, w którym znajduje się automat (rys. 13) realizujący sterowanie silnikiem BLDC, jestreprezentowany przez zmienną bldcStateIndex, typu BLDC STATE ENUM:

typedef enum{ BLDC_APP_INIT, /* BLDC AppInit */BLDC_STOP, /* BLDC Stop */BLDC_ALIGNMENT, /* BLDC Alignment */BLDC_START_VECTOR, /* BLDC Start Vector */BLDC_OPEN_LOOP_START, /* BLDC Open Loop Start */BLDC_SHIFT_VECTOR, /* BLDC Shift Vector */BLDC_SL_RUN_DIRECT, /* BLDC SlRun DirCmt */BLDC_SL_RUN_SYNC_PLL, /* BLDC SlRun SyncPLL */

10

BLDC_SL_RUN_FORCED_PLL, /* BLDC SlRun ForcedPLL */BLDC_FAULT, /* BLDC Fault */BLDC_RESTART /* BLDC Restart */

} BLDC_STATE_ENUM;

Flagi bitowe zebrano w zmiennych: appControlFlags, typu APP CONTROL FLAGS

typedef union {byte Byte;struct {byte BldcStart :1; /* BLDC motor Start rq */byte FaultClear :1; /* Fault Clear request */byte InfinitAlignment :1; /* Infinite Alignment rq */byte StartSwitchState :1; /* strt stp switch state */byte Bit4 :1; /* */byte Bit5 :1; /* */byte Bit6 :1; /* */byte Bit7 :1; /* */} Bits;} APP_CONTROL_FLAGS;

bldcIntTimBFlags, typu BLDC INTTIMB FLAGS:

typedef union {byte Byte;struct {byte AlignmentTimeout :1; /* Alignment Timeout */byte AlignmentIsTimed :1; /* Alignment is Timed */byte InitTimBDone :1; /* Timer Base Init Done */byte CurLimit :1; /* Current Limitation */byte RestartTimeout :1; /* Restart Timeout */byte RestartIsTimed :1; /* Restart is Timed */byte Bit6 :1; /* */byte Bit7 :1; /* */} Bits;} BLDC_INTTIMB_FLAGS;

oraz bldcMainFlags, typu BLDC MAIN FLAGS:

typedef union {byte Byte;struct {byte Dir024 :1; /* motor rotation dir */byte TimeAlignmentRq :1; /* time Alignment rq */byte StartVectorSet :1; /* Start Vector flag */byte Bit3 :1;byte ShftVector :1; /* Shift Vector */byte ForcedPLLModeRq :1; /* Forced PLL Mode rq */byte LowSpeed :1; /* Not Used */byte SyncPLLModeRq :1; /* PLL feedbk Mode rq */} Bits;} BLDC_MAIN_FLAGS;

11

Rysunek 13: Diagram stanów automatu skończonego zrealizowanego w przykładzie na MC9S08MP16 [4].

12

Implementacja regulatorów PI

Parametry dla regulatorów typu PI są zebrane w strukturach, w zależności od implementowanejdługości słów:

typedef struct{unsigned char propGain;signed char propGainShift;unsigned char intGain;signed char intGainShift;signed int lowerLimit;signed int upperLimit;SWord32HL16 integralPortionK_1_32;} CTR_sPIparams;

typedef struct{unsigned char propGain;signed char propGainShift;unsigned char intGain;signed char intGainShift;signed int lowerLimit;signed int upperLimit;signed int integralPortionK_1;}CTR_sPIparams8;

typedef struct{unsigned char proportionalGainConst8;unsigned char integralGain8;unsigned char gainShift;UWord24H16L8 integralPortionK_1_24;unsigned int lowerLimit;unsigned int upperLimit;

} REG_SYNC_PARAMS;

Wzmocnienie dla części proporcjonalej wyraża się wzorem:

KP = propGain ∗ 2propGainShift

a dla całkującej:KI = intGain ∗ 2intGainShift

Pamięć części całkującej jest zaimplementowana jako integralPortionK 1. Sumowanie w częścicałkującej jest ograniczone przez wartości lowerLimit i upperLimit. Te same wartości służą doograniczenia wartości wyjściowej regulatora.

Alfabetyczny spis zmiennych

W projekcie BLDC Sensorless S08MP16.pmp dla aplikacji FreeMASTER dostępne są do obser-wowania, modyfikowania i rejestrowania wybrane zmienne aplikacji zaprogramowanej na mikro-kontrolerze MC9S08MP16:

appControlFlags.Bits.BldcStart - żądanie startu silnika

13

appControlFlags.Bits.InfinitAlignment - żądanie ciągłego wyrównywania (wyłączone)

bldcIntTimBFlags.Bits.CurLimit - włączenie ograniczenia prądowego

bldcMainFlags.Bits.ForcedPLLModeRq - włączenie trybu Forced PLL

bldcMainFlags.Bits.SyncPLLModeRq - włączenie trybu Sync PLL

bldcStateIndex - stan silnika BLDC (BLDC STATE ENUM)

cmtCounterModeThreshold - próg przejścia do trybu PLL

cmtCounter - licznik komutacji

cmtFaultCounterThreshold - próg ustawienia flagi błędu komutacji

cmtFaultCounter - licznik błędnych komutacji

cmtStabilizedCounterThreshold - próg uznania stabilności komutacji

coefCmtPreset - wydłużenie okresu komutacji przy braku ZC

coefZcOff - względna martwa strefa wykrywania ZC

coefZcToCmt - względna pozycja komutacji w okresie ZC

delayPWMOnZCEnbl - opóźnienie początku okna ZC po PWM

delayZCDisPWMOff - wyprzedzenie końca okna ZC przed PWM

dutyCyclePWMU16 - wynikowe wypełnienie PWM

dutyCycleU16 - robocza wartość wypelnienia PWM

iDCBAlignment - prąd wyrównania

iDCBLimit - ograniczenie prądu zasilania silnika

iDcbZcFilt - prąd zasilania filtrowany

iDcb - prąd zasilania silnika

periodBLDCZcFlt - okres przejść przez zero (filtrowany)

periodBLDCZc - okres przejść przez zero (chwilowy)

periodErrorThresholdToDirectSL - próg błędu okresu ZC przy przejściu do DCC

PeriodErrorZCFrac - odchylenie okresu przejścia przez zero (ułamek)

PeriodErrorZC - odchylenie okresu przejścia przez zero

pllVelocity16 - estymowana częstotliwość ZC dla SyncPLL

rampAccelCL - nachylenie rampy prędkości

readHSCMP2CR0 - wartość odczytana z rejestru HSCMP2CR0

readHSCMP2FPR - wartość odczytana z rejestru HSCMP2FPR

regCurrPIparams.intGainShift - wykładnik wzmocnienia członu I

regCurrPIparams.intGain - wartość wzmocnienia członu I

14

regCurrPIparams.lowrLimit - dolne ograniczenie członu I i wyjścia

regCurrPIparams.propGainShift - wykładnik wzmocnienia członu P

regCurrPIparams.propGain - wartość wzmocnienia członu P

regCurrPIparams.upperLimit - górne ograniczenie członu I i wyjścia

regForcedPLLParams.gainShift - wykładnik wzmocnienia

regForcedPLLParams.integralGain8 - wartość wzmocnienia członu I

regForcedPLLParams.integralPortionK 1 24.H16L8.H16 - pamięć członu I (górne 16b.)

regForcedPLLParams.integralPortionK 1 24.H16L8.L8 - pamięć członu I (dolne 8b.)

regForcedPLLParams.lowerLimit - dolne ograniczenie członu I i wyjścia

regForcedPLLParams.proportionalGainConst8 - wartość wzmocnienia członu P

regForcedPLLParams.upperLimit - górne ograniczenie członu I i wyjścia

regSpeedPIparams.integralPortionK 1 32 - pamięć członu I (32b.)

regSpeedPIparams.intGainShift - wykładnik wzmocnienia członu I

regSpeedPIparams.intGain - wartość wzmocnienia członu I

regSpeedPIparams.lowerLimit - dolne ograniczenie członu I i wyjścia

regSpeedPIparams.propGainShift - wykładnik wzmocnienia członu P

regSpeedPIparams.propGain - wartość wzmocnienia członu P

regSpeedPIparams.upperLimit - górne ograniczenie członu I i wyjścia

regSyncPLLParams.integralGain8 - wartość wzmocnienia członu I

regSyncPLLParams.integralPortionK 1 24.H16L8.H16 - pamięć członu I (górne 16b.)

regSyncPLLParams.integralPortionK 1 24.H16L8.L8 - pamięć członu I (dolne 8b.)

setHSCMP2FPR - wartość do wpisania do rejestru HSCMP2FPR z HSCMP

setHSCMPRQ - wartość do wpisania do rejestru HSCMPRQ z HSCMP

setZC COMP FILT CNT - parametr filtru dla HSCMP

uDcbFlt - napięcie zasilania filtrowane

uDcb - napięcie zasilania chwilowe

velocityActU - prędkość rzeczywista (bez znaku)

velocityAct - prędkość rzeczywista

velocityDesiredStart - prędkość zadana startu

velocityDesired - prędkość zadana (-4500, 4500) min−1

velocityErrDirToPLLMode - próg błędu prędkości przy uruchamianiu PLL

velocityRampActU - prędkość rzeczywista rampy (bez znaku)

15

velocityRampAct - prędkość rzeczywista rampy

velocityThresholdOLtoRunU - próg prędkości przejścia z OpenLoop do RUN

velocityThresholdRuntoOLU - próg prędkości przejścia z RUN do OpenLoop

zcErrorCounterThreshold - próg licznika błędów ZC

zcErrorCounter - licznik błędów wykrywania ZC

zcSeqCorrectCounter - licznik korekt błędów ZC

Literatura

[1] Marcin Dmochowski. Sterowanie silnikiem BLDC przy pomocy wybranych mikrokontrolerów(projekt dyplomowy). 2012.

[2] Freescale Semiconductor. 3-phase BLDC/PMSM Motor Control Drive Fact Sheet. 2006.

[3] Freescale Semiconductor. Design Reference Manual (DRM108 Rev. 0): BLDC SensorlessReference Design Using MC56F8006. 2009.

[4] Freescale Semiconductor. Design Reference Manual (DRM117 Rev. 0): 3-Phase SensorlessBLDC Motor Control Using MC9S08MP16. 2009.

[5] Freescale Semiconductor. MC33927 Software Driver (datasheet Rev. 0). 2009.

[6] Freescale Semiconductor. BLDC Motor Control with Hall Effect Sensors Using the 9S08MP(AN4058 Rev. 0). 2010.

16