You are on page 1of 73

Politechnika Łódzka

Wydział Elektrotechniki, Elektroniki, Informatyki i Automatyki


Instytut Automatyki

PRACA DYPLOMOWA INŻYNIERSKA

Tytuł pracy: Implementacja podstawowych algorytmów sterowania


silnikiem indukcyjnym.

Title: Implementation of a basic control algorithms for induction motor.

Autor: Patryk Sosnowski


Numer albumu: 194584

Kierujący pracą: dr inż. Piotr Chudzik


Opiekun pomocniczy: mgr inż. Grzegorz
Lisowski

Łódź, luty 2018


1
Spis treści
Streszczenie _______________________________________________________ 4

1. Wstęp _______________________________________________________ 5

1.1 Wprowadzenie ______________________________________________ 5

1.2 Cel i założenia projektu _______________________________________ 6

1.3 Sprzęt i oprogramowanie użyte w projekcie _______________________ 6


1.3.1 Silnik indukcyjny _________________________________________ 6
1.3.2 3-fazowy przemiennik częstotliwości ________________________ 12
1.3.3 Platforma do programowania_______________________________ 20
2 Sterowanie silnikiem indukcyjnym _________________________________ 23

2.1 Transformacja Clarka i Parka _________________________________ 23

2.2 Metody sterowania silnikiem indukcyjnym ______________________ 25

3 Inicjalizacja urządzeń ___________________________________________ 32

3.1 Inicjalizacja timerów ________________________________________ 32

3.2 Inicjalizacja i konfiguracja portów GPIO ________________________ 35

3.3 Zabezpieczenia falownika ____________________________________ 37

4 Implementacja algorytmów w programie ____________________________ 39

4.1 Zadawanie napięcia _________________________________________ 39

4.2 Metoda SoftStart ___________________________________________ 41

4.3 Metoda U/F = const _________________________________________ 43

4.4 Dodanie trzeciej harmonicznej ________________________________ 45

5 Przeprowadzone badania_________________________________________ 48

5.1 Badanie Generowanego sygnału PWM __________________________ 48

5.2 Analiza rozruchu U/f ________________________________________ 54

5.3 Analiza rozruchu soft-start ___________________________________ 58

5.4 Komutacja ________________________________________________ 61

5.5 Modulacja THIPWM ________________________________________ 63

6 Podsumowanie i wnioski ________________________________________ 68


2
7 Bibliografia ____________________________________________________ 69

8 Spis obrazów __________________________________________________ 71

3
Streszczenie
Tytuł: Implementacja podstawowych algorytmów sterowania silnikiem indukcyjnym.

Praca skupia się na implementacji oraz opisie 2 metod rozruchu silnika indukcyjnego i
metody modulacji z dodaniem trzeciej harmonicznej, na mikrokontrolerze STM32F411 oraz na
opisie teoretycznym zorientowanego polowo sterowania silnikiem indukcyjnym. Pod uwagę
zostały wzięte również przebiegi elektryczne, generowane podczas testowania metod na 2
różnych silnikach. Oprócz omówienia poszczególnych metod, praca objęła również opis silnika
asynchronicznego czy pośredniego przemiennika częstotliwości.

Abstract
My thesis focuses on the implementation and description for 2 basic methods of starting
an induction motor as well as on the modulation with injection of the third harmonic. The
application is based on STM32F411 microchip. My work also describes the field oriented
control of the induction motor. In addition to this, electrical waveforms generated by
implemented methods on 2 different induction motors are characterized. What is more, the
thesis includes a description of the asynchronous motor and the frequency converter.

4
1. Wstęp
1.1 Wprowadzenie

Przez wiele ostatnich lat, liderem wśród silników elektrycznych stosowanych w


przemyśle są silniki asynchroniczne (indukcyjne). Obecnie szacuje się, że 40% światowej
konsumpcji energii elektrycznej pochłaniane jest przez silniki indukcyjne, a stanowią one
około 90% silników używanych w przemyśle [1]. Te statystyki jasno pokazują jak istotną
rolę w przemyśle odgrywają silniki indukcyjne. Maszyny te znajdują swoje zastosowanie
również w innych dziedzinach takich jak energetyka, budownictwo, rolnictwo, transport
czy sprzęt domowy. Jeden z pierwszych wirujących silników indukcyjnych zbudowany
został w 1887r. przez znakomitego wynalazcę Nikola Teslę. Był on jednak zasilany
napięciem 2-fazowym i dlatego zawierał szereg wad. Co ciekawe, 2 lata później Polak
Michał Doliwo-Dobrowolski skonstruował 3-fazowy odpowiednik wynalazku Tesli
cechujący się sporo lepszymi właściwościami. W 2 połowie XX wieku, ze względu na
rozwój w dziedzinach technik mikroprocesorowych i energoelektroniki powstało wiele
metod sterowania silnikami indukcyjnymi, pozwalających na regulację prędkości, rozruch
silnika, lub hamowania go [2]. Obecnie metody te znajdują swoje zastosowanie zarówno w
zaawansowanych aplikacjach, gdzie wymagane są dobre właściwości dynamiczne,
energooszczędność i precyzyjna kontrola prędkości, jak i w aplikacjach prostych.

Wybór tematu pracy przede wszystkim podyktowany był chęcią zgłębienia wiedzy
zakresu silników, energoelektroniki oraz programowania systemów wbudowanych. Temat
pozwala na stworzenie programu i zastosowaniu go na rzeczywistym obiekcie, a takie
doświadczenie może być bardzo przydatne w późniejszym życiu zawodowym. Innym
powodem jest wspomniana wcześniej popularność silników indukcyjnych. Praca dotyczy
tematu, który jest bardzo ważny z punktu widzenia przemysłu, a zatem może odpowiedzieć
na istotne problemy z którymi spotyka się ta dziedzina.

5
1.2 Cel i założenia projektu

Celem pracy jest opis teoretyczny oraz implementacja w systemie mikroprocesorowym


STM32F411 3 metod:
 Rozruch silnika typu soft-start
 Rozruch silnika przy pomocy zachowania stałego stosunku U/f
 Podwyższenie napięcia wyjściowego falownika za pomocą modulacji z
dodawaniem trzeciej harmonicznej
Praca ma również na celu teoretyczne opisanie metody sterowania silnikiem
indukcyjnym zorientowanej polowo (FOC).

1.3 Sprzęt i oprogramowanie użyte w projekcie


1.3.1 Silnik indukcyjny
1.3.1.1 Ogólne informacje

Silnik indukcyjny zwany inaczej silnikiem asynchronicznym – jest maszyną


zamieniającą energię elektryczną w energię mechaniczną. Charakteryzuje się tym, że jest
zasilany napięciem przemiennym, generującym wirujące pole magnetyczne. Zaletami
silnika indukcyjnego są prosta budowa, dobre właściwości ruchowe, niewysoka cena, oraz
łatwość obsługi. Silniki indukcyjne można podzielić ze względu na różne kryteria.
Najczęściej można spotkać się z podziałem ze względu na:
1) Sposób zasilania:
a) Silniki jednofazowe
b) Silniki dwufazowe
c) Silniki trójfazowe – najpopularniejsze
d) Silniki wielofazowe – zasilane napięciem o liczbie faz większej niż 3
2) Moc:
a) Silniki małej mocy
b) Silniki średniej mocy
c) Silniki dużej mocy
3) Rodzaj wirnika:
a) Silniki klatkowe
b) Silniki pierścieniowe

6
1.3.1.2 Budowa silnika indukcyjnego

Silnik indukcyjny skonstruowany jest z dwóch części: nieruchomego stojana oraz


obracającego się wirnika. Na wewnętrznej stronie rdzenia stojana i na zewnętrznej stronie
rdzenia wirnika wykonane są rowki, zwane żłobkami, w których umieszczone są uzwojenia.
Część rdzenia pomiędzy poszczególnymi żłobkami nazywana jest zębem. Pomiędzy stojanem
a wirnikiem znajduje się możliwie mała szczelina powietrzna [3]. Schemat ideowy silnika
indukcyjnego zamieszczony jest poniżej:

Rysunek 1 Schemat ideowy budowy silnika indukcyjnego [4]

Obwód magnetyczny wirnika wykonany jest w postaci pakietu izolowanych blach


elektrotechnicznych, złożonych jedna na drugą. Ze względu na sposób wykonania wirnika
można wyróżnić 2 rodzaje silników indukcyjnych – pierścieniowy i klatkowy. W przypadku
silnika pierścieniowego uzwojenia wirnika wykonane są w sposób podobny do uzwojeń
stojana. W żłobkach umieszczone są uzwojenia wirnika. Początki poszczególnych faz
uzwojenia wirnika pierścieniowego są przyłączone na stałe do pierścieni ślizgowych,
osadzonymi na wale wirnika, a następnie poprzez szczotki wyprowadzone są na tablicę
zaciskową na stojanie silnika [5]. Końce poszczególnych faz uzwojenia wirnika są zwarte w
wirniku. Taka konstrukcja pozwala na dołączanie dodatkowej rezystancji do uzwojeń wirnika.
Schemat przedstawiający budowę wirnika pierścieniowego umieszczony jest poniżej:

7
Rysunek 2 Schemat ideowy budowy wirnika pierścieniowego [6]

Jest to jednak konstrukcja współcześnie używana bardzo rzadko, głownie ze względu


na skomplikowaną budowę [3]. Sporo częściej spotkać się można z wariantem silnika
klatkowego. W tym przypadku uzwojenia wykonane są z nieizolowanych prętów o dużym
przekroju, połączonych po obu stronach wirnika pierścieniami zwierającymi. Klatka stanowi
wielofazowe uzwojenie wirnika, o liczbie faz równej liczbie prętów, z których jest wykonana
[5]. Silnik indukcyjny klatkowy nie posiada szczotek, czyli jednego z bardziej wadliwych
elementów maszyn elektrycznych. Nie pozwala to jednak na dołączanie rezystancji do uzwojeń
wirnika. Schemat klatki wirnika klatkowego umieszczony jest poniżej:

Rysunek 3 Schemat ideowy budowy klatki wirnika klatkowego [3]

8
1.3.1.3 Zasada działania silnika indukcyjnego trójfazowego

Przyłączone do uzwojeń stojana trójfazowe napięcie generuje wirujące pole


magnetyczne wewnątrz stojana. Prędkość kątowa z którą wiruje pole zwana jest prędkością
synchroniczną. Linie pola magnetycznego przecinają uzwojenia wirnika i tym samym indukują
w nim siłę elektromotoryczną. W konsekwencji w uzwojeniach wirnika płynie prąd. Prąd
wirnika powoduje powstanie pola magnetycznego wirnika. Wzajemne oddziaływanie pól
wywołuje powstanie momentu elektromagnetycznego działającego na wirnik i, w
konsekwencji, momentu obrotowego odpowiedzialnego za ruch wirnika [4]. Warto zauważyć,
że w przypadku, gdy wirnik wirowałby z prędkością synchroniczną, w jego uzwojeniach nie
popłynąłby prąd, a zatem na wale nie powstałby żaden moment. Taki przypadek zwany jest
biegiem jałowym. W rzeczywistości jednak występują siły tarcia i inne straty które spowodują,
że wirnik w większości przypadków będzie wirował z prędkością mniejszą niż synchroniczną.
Różnica między prędkością synchroniczną a prędkością wirnika zwana jest poślizgiem.

𝑛1 − 𝑛
𝑠=
𝑛1

Gdzie:
s – poślizg
n1 – prędkość synchroniczna
n – prędkość wirnika

1.3.1.4 Rodzaje pracy i charakterystyka mechaniczna silnika


indukcyjnego

Charakterystyką mechaniczną nazywamy zależność momentu generowanego na wale


silnika do jego prędkości obrotowej. Charakterystykę mechaniczną silnika indukcyjnego
można wyznaczyć z następującego równania:

𝑀 2
= 𝑠 𝑠
𝑀𝑚𝑎𝑥 𝑘
𝑠𝑘 + 𝑠
Gdzie:
9
𝑀 – Moment na wale silnika
𝑀𝑚𝑎𝑥 – Moment krytyczny
𝑠 – Poślizg
𝑠𝑘 – Poślizg krytyczny

Rysunek 4 Charakterystyka mechaniczna silnika indukcyjnego [7]

W całym zakresie charakterystyki możemy wyróżnić 3 rodzaje pracy – hamulcową,


silnikową oraz prądnicową.
Praca hamulcowa to praca, podczas której energia elektryczna ze źródła zasilania oraz
energia mechaniczna na wale silnika przekazywane są do maszyny.
Oznacza to, że obie te energie muszą zostać wytracone na stratach w silniku.

Rysunek 5 Transfer energii przy pracy hamulcowej

Pel – Moc elektryczna


Pm – Moc mechaniczna
ΔP – Moc wydzielona na stratach w silniku
10
Z fizycznego punktu widzenia taka praca charakteryzuje się tym, że moment
elektromagnetyczny jest skierowany przeciwnie do kierunku obrotu wału. Jako że cała energia
docierająca do maszyny przekazywana jest na straty, unika się pracy w tym obszarze.
Praca silnikowa to praca, podczas której energia elektryczna ze źródła dostarczana jest
do silnika, a energia mechaniczna jest z niego odbierana.

Rysunek 6 Transfer energii przy pracy silnikowej

Praca prądnicowa to praca, w której energia mechaniczna dostarczana jest do maszyny,


a energia elektryczna oddawana jest do źródła (pod warunkiem, że pozwala na to przekształtnik,
który zasila maszynę).

Rysunek 7 Transfer energii przy pracy prądnicowej

W przypadku silnika indukcyjnego, praca taka zachodzi w sytuacji, gdy prędkość


kątowa wirnika jest większa niż prędkość wirowania pola magnetycznego.

11
1.3.1.5 Silnik używany w projekcie

W pracy zostały użyte 2 silniki indukcyjne. Pierwszy to silnik SZJe 24a, w dalszej części
pracy, nazywany będzie silnikiem A. Jego parametry znamionowe to:

𝑃𝑒𝑙 = 1,5 𝑘𝑊; 𝑈𝑛 = 220/360 𝑉; 𝐼𝑛 = 6/3,5 𝐴;


𝑐𝑜𝑠φ = 0,8; η = 1420 obr/min

Drugim silnikiem jest model s371-26, w następnych rozdziałach, nazywany silnikiem B. Jego
parametry znamionowe to:

𝑃𝑒𝑙 = 0,53 𝑘𝑊; 𝑈𝑛 = 220/400 𝑉; 𝐼𝑛 = 2,30/1,32 𝐴;


𝑐𝑜𝑠φ = 0,8; η = 2745 obr/min

W obu przypadkach pierwsza wartość napięcia i prądu dotyczy połączenia uzwojeń stojana w
trójkąt, a druga – w gwiazdę.

1.3.2 3-fazowy przemiennik częstotliwości


1.3.2.1 Budowa 3-fazowego przemiennika częstotliwości

Do zasilania i regulacji prędkości kątowej 3-fazowego silnika indukcyjnego najczęściej


stosuje się 3-fazowy pośredni przemiennik częstotliwości. Jest to układ energoelektroniczny,
który najpierw, za pomocą prostownika 6D lub 6T, zamienia 3-fazowe napięcie przemienne na
napięcie stałe, a następnie przy pomocy 3-fazowego falownika zmienia napięcie stałe na 3-
fazowe napięcie zmienne. Schemat elektryczny 3-fazowego przemiennika częstotliwości
wygląda następująco:

12
Rysunek 8 Ideowy schemat elektryczny przemiennika częstotliwości [8]

Jak widać, cały układ, składa się z trzech części – prostownika 6D lub 6T, układu
pośredniczącego oraz falownika 3-fazowego.
W pierwszej części układu wyróżnia się 2 warianty. W pierwszym prostownik zwany jest
prostownikiem niesterowanym i nie jest możliwe sterowanie wartością napięcia wyjściowego,
natomiast w drugim – sterowanym, czyli składającym się na ogół z tyrystorów. Sterując kątem
wyzwalania tyrystorów, możliwa jest regulacja wartości napięcia wyjściowego.
Drugą częścią jest układ pośredniczący, który jest filtrem LC. Eliminuje on tętnienia
napięcia oraz prądu, powstałe w wyniku działania prostownika.
Trzecią częścią układu jest 3-fazowy falownik mostkowy. Topologia takiego falownika
wygląda następująco:

Rysunek 9 Ideowy schemat elektryczny falownika 3-fazowego [9]

13
1.3.2.2 Kształtowanie napięcia w falowniku

Kształtowanie napięcia w 3-fazowym falowniku mostkowym odbywa się za pomocą


załączania górnych lub dolnych tranzystorów gałęzi falownika. Aby nie dopuścić do zwarcia
należy zadbać o to, żeby w danym momencie, w danej gałęzi przewodził co najwyżej jeden
tranzystor. Przy założeniu, że punkt neutralny obciążenia N, nie jest połączony z punktem
zerowym źródła M, napięcie na fazach odbiornika będą przyjmować postać fali schodkowej o
𝑈𝑑 2𝑈𝑑
napięciach 0, ± ,± . Aby wyznaczyć napięcie na każdej z faz odbiornika można skorzystać
3 3

z zależności:

𝑢𝐴 2 −1 −1 𝑢𝐴𝑀
𝑢
[ 𝐵 ] = [−1 2 −1 ] ∗ 𝑢
[ 𝐵𝑀 ]
𝑢𝐶 −1 −1 2 𝑢𝐶𝑀

Wprowadzając następujące oznaczenia:

𝑆𝐴 – Oznacza stan tranzystorów w fazie A, przy czym 𝑆𝐴 = 1 oznacza przewodzenie górnego


tranzystora, 𝑆𝐴 = 0 – dolnego.
𝑆𝐵 – Oznacza stan tranzystorów w fazie B, przy czym 𝑆𝐵 = 1 oznacza przewodzenie górnego
tranzystora, 𝑆𝐵 = 0 – dolnego.
𝑆𝐶 – Oznacza stan tranzystorów w fazie C, przy czym 𝑆𝐶 = 1 oznacza przewodzenie górnego
tranzystora, 𝑆𝐶 = 0 – dolnego.

Napięcia fazowe odbiornika możemy również wyznaczyć taką zależnością:


𝑢𝐴 𝑆𝑎
𝑈𝑑 2 −1 −1
[𝑢𝐵 ] = [−1 2 −1 ] ∗ [𝑆𝑏 ]
𝑢𝐶 3 𝑆𝑐
−1 −1 2

Korzystając z tych samych oznaczeń, napięcia międzyfazowe wyznaczyć można z zależności:

𝑢𝐴𝐵 1 −1 0 𝑆𝑎
𝑢
[ 𝐵𝐶 ] = 𝑈𝑑 [ 0 1 −1 ] ∗ [𝑆𝑏 ]
𝑢𝐶𝐴 −1 0 1 𝑆𝑐

14
Falownik można także opisać za pomocą tzw. zespolonych wektorów przestrzennych.
Wszystkie trzy składowe fazowych napięć odbiornika w 3-osiowym układzie współrzędnych
można przedstawić jako jeden wypadkowy wektor na płaszczyźnie zespolonej za pomocą
przekształcenia:

2 2π 4π
̅=
𝑈 (𝑈𝐴 + 𝑈𝐵 𝑒 𝑗 3 + 𝑈𝑐 𝑒 𝑗 3 )
3

Tym samym 8 różnym stanom falownika można przyporządkować 8 różnych


wypadkowych wskazów napięcia.

Rysunek 10 Możliwe stany falownika wyrażone za pomocą wektorów [10]

Na powyższym rysunku wskaz U0 wygenerowany jest dla wartości Sa, Sb, Sc równych
kolejno 0 0 0, U1 dla 1 1 0, U2 dla 0 1 0, U3 dla 0 1 1, U4 dla 0 0 1, U5 dla 1 0 1, U6 dla 1 1 0,
U7 dla 1 1 1. Wskazy U0 oraz U7 nie są widoczne na grafice, gdyż są wektorami zerowym –
czyli o zerowej długości.

1.3.2.3 Sterowanie falownikiem

Matematyczny model falownika, zarówno skalarny jak i wektorowy, pozwala na


implementowanie w nim różnych metod sterowania. Najprostszą ideową metodą sterowania
tranzystorów, jest sterowanie symetryczne. Polega ono na załączaniu tranzystorów w takiej
konfiguracji (poniżej przykładowy przebieg dla wypełnienia równego 50%):

15
Rysunek 11 Przebiegi napięć w falowniku [11]

Jest to przykład modulacji jednopulsowej, gdyż w całym półokresie napięcie jest kształtowane
z pojedynczego pulsu prostokątnego. Wadą takiego sterowania jest fakt, że sygnał wyjściowy
zawiera dużo wyższych harmonicznych, co skutkować może przeciążeniem sieci zasilającej,
przeciążeniem przewodu neutralnego, czy przedwczesnym starzeniem się izolacji.
W celu zniwelowania tego problemu stosuje się szereg innych metod sterujących
tranzystorami. Jedną z tych metod jest metoda modulacji SPWM (sinusoidal pulse width
modulation), która jest przykładem sterowanie wielopulsowego. Oznacza to, że napięcie w
półokresie kształtowane będzie z wielu pulsów prostokątnych. Polega ona na porównywaniu
przez mikroprocesor sygnału trójkątnego/piłokształtnego z 3 sygnałami sinusoidalnym
przesuniętymi od siebie o 120º.

16
Rysunek 12 Modulacja sinusoidalna PWM [10]

Metodę to charakteryzują 2 parametry – współczynnik głębokości modulacji m, i względna


pulsacja r. Współczynnikiem głębokości modulacji nazywamy stosunek amplitudy przebiegu
sinusoidalnego do amplitudy przebiegu trójkątnego.
𝐴𝑠𝑚
𝑚=
𝐴𝑠𝑛
Gdzie:
Asm – amplituda przebiegu sinusoidalnego
Asn – amplituda przebiegu nośnego
Pulsacją względna natomiast nazywamy stosunek pulsacji przebiegu nośnego (trójkątnego)
do pulsacji przebiegu sinusoidalnego.
ω
𝑟=

Gdzie:
Ω – pulsacja przebiegu sinusoidalnego
𝛚 – pulsacja przebiegu trójkątnego
Schemat blokowy modulacji sinusoidalnej PWM wygląda następująco:

17
Rysunek 13 Schemat blokowy modulacji sinusoidalnej PWM [12]

Stosując metodę sinusoidalnej modulacji PWM, otrzymuje się liniową zależność


między średnim, fazowym napięciem wyjściowym Ux, a współczynnikiem głębokości
modulacji m, zakładając, że m należy do przedziału <0 ; 1>. Obliczając trzecią harmoniczną
sygnałów modulujących, mnożąc ją przez stały współczynnik, a następnie dodając ją do
sygnałów modulujących uzyskuje się modulację zwaną THIPWM (third harmonic injected
PWM). Jeśli odbiornik jest 3-fazowy i nie posiada przewodu neutralnego, to dodanie trzeciej
harmonicznej nie wpływa na napięcia fazowe, a jedynie zmniejsza współczynnik modulacji do
wartości około 0,866. Oznacza to, że metoda ta zwiększa zakres liniowości głębokości
modulacji o około 15%. Sygnały modulujące po dodaniu do nich 3 harmonicznej przemnożonej
przez współczynnik 0,5 wyglądają następująco:

18
Rysunek 14 Przebiegi modulujące w modulacji THIPWM

Schemat blokowy realizujący tą metodę umieszczony jest poniżej:

Rysunek 15 Schemat blokowy modulacji THIPWM [12]

19
1.3.3 Platforma do programowania
1.3.3.1 Płytka ewaluacyjna Discovery

Rysunek 16 Płytka rozwojowa Discovery [13]

Platformą, która posłuży mi do implementacji omawianych przeze mnie metod


sterowania jest zestaw uruchomieniowy Discovery oparty na mikrokontrolerze
STM32F411VET6. Wspomniany mikrokontroler wyposażony jest w rdzeń Cortex M4F, 512
kB pamięci Flash i 128 kB pamięci RAM. Procesor może taktować maksymalnie z
częstotliwością 100 MHz. Dodatkowo na płytce ewaluacyjnej umieszczony jest Debugger ST-
Link/V2 z możliwością pracy jako oddzielne urządzenie z wyjściem SWD (Serial Wire
Debuger) oraz złącze micro-AB USB. Płytka Discovery jest bardzo rozbudowaną platformą i
zawiera sporo więcej układów peryferyjnych, jednak nie zdecydowałem się na wypisywanie
ich wszystkich, gdyż tylko niewielka ich część została użyta w tym projekcie. Wybór
mikrokontrolera STM32F411VET6 podyktowany był występowaniem wielu układów
ułatwiających programowanie systemów wbudowanych, możliwością zaawansowanej
konfiguracji układów peryferyjnych procesora, jak i również odpowiednio wysoką
częstotliwością taktowania. Najistotniejszymi dla projektu układami były:
 Koprocesor STM32F4 FPU (floating point unit) pozwalającą na szybkie wykonywanie
operacji na liczbach zmiennoprzecinkowych.
 10 timerów ogólnego przeznaczenia i 2 timery proste.
 2 zaawansowane timery umożliwiające generowanie trzech komplementarnych
sygnałów PWM. Możliwość ustawienia dead time’u – czasu pomiędzy zmianą stanu
na jednym z wyjść PWM, a zmianą stanu na wyjściu komplementarnym.

20
 Specjalne układy pozwalające na wyłączenie generowanego sygnału PWM (ustawienia
na wyjściach sterujących tranzystorami stanu niskiego), za pomocą sygnału
zewnętrznego, jak i również wewnętrznego.
 19 multipleksowanych kanałów przetwornika ADC z maksymalną rozdzielczością 12
bitów.
 Kontroler przerwań NVIC.
Wszystkie opisane powyżej cechy wraz z możliwością używania bibliotek HAL, oraz programu
STM32CubeMX sprawiają, że wykorzystana przeze mnie platforma bardzo dobrze nadaje się
do sterowania maszynami elektrycznymi.

1.3.3.2 Oprogramowanie

Użytym przeze mnie środowiskiem programistycznym jest System Workbench for


STM32 zwany skrótowo SW4STM32. Jest to środowisko stworzone przez firmę ST, oparte na
środowisku Eclipse. Posiada wbudowany kompilator GCC C/C++ oraz debuger. Dodatkowo
wspiera każdy mikroprocesor STM oraz wszystkie płytki rozwojowe na których mikroprocesor się
znajduje.
Do konfiguracji warstwy sprzętowej oraz inicjalizacji urządzeń posłużyłem się
programem STM32CubeMX.

Rysunek 17 Zdjęcie interfejsu programu STM32CubeMX

Pozwala on na konfiguracje i inicjalizacje układów peryferyjnych za pomocą programu


graficznego, poprzez wygenerowanie kodu w języku C. Wygenerowany kod korzysta z

21
bibliotek HAL, zawierających funkcje obsługujące wszystkie układy wewnętrzne procesora
STM32F411VET6.

22
2 Sterowanie silnikiem indukcyjnym

2.1 Transformacja Clarka i Parka

Transformacja Clarka jest operacją matematyczną pozwalającą na przeniesienie wektora


przedstawionego w 3-osiowym układzie współrzędnych do układu 2-osiowego
(kartezjańskiego). Jest to równoznaczne z możliwością przedstawienia wektora wyrażonego za
pomocą 3 współrzędnych osiowych używając 2 współrzędnych. Możliwa jest również operacja
odwrotna, a zatem przedstawienie wektora za pomocą 3 współrzędnych osiowych w przypadku,
gdy znane są jego współrzędne kartezjańskie. Operacja ta nazywa się odwrotną transformacją
Clarka.

Rysunek 18 Graficzna interpretacja transformacji Clarka [14]

Transformacja Clarka w postaci macierzowej:

1 0 0 𝐷𝑎
𝐷𝛼
[𝐷 ] = [ √3 √3] ∗ [𝐷𝑏 ]
𝛽 0 − 𝐷𝑐
3 3

Odwrotna transformacja Clarka w postaci macierzowej:

1 0
𝐷𝑎 1 √3
− 𝐷𝛼
[𝐷𝑏 ] = 2 3 ∗ [𝐷 ]
𝛽
𝐷𝑐 1 √3
[− 2 − 3 ]

23
Oznaczenia:
𝐷𝛼 , 𝐷𝛽 – składowe wektora w kartezjańskim układzie współrzędnych
𝐷𝑎 , 𝐷𝑏 , 𝐷𝑐 – składowe wektora w 3-osiowym układzie współrzędnych

W dziedzinie sterowania silnikami indukcyjnymi transformacja ta pozwala na wyznaczenie


wypadkowego wektora prądu, na który wpływ mają 3 trójfazowe prądy wygenerowane z
uzwojeń przesuniętych względem siebie o 120º.

Rysunek 19 3-osiowy układ współrzędnych nałożony na przekrój stojana [15]

Warto zauważyć, że wyznaczony, wypadkowy wektor przedstawiony jest w układzie


współrzędnym związanym ze stojanem. W związku z tym faktem, w układzie tym wektor
będzie krążył z prędkością kątową równą ω1 (prędkością synchroniczną). Aby unieruchomić
wektor należy przedstawić go w układzie współrzędnych wirującym z taką samą prędkością
kątową. Służy do tego operacja Parka.

24
Rysunek 20 Graficzna interpretacja transformacji Parka [7]

Transformacja Parka w postaci macierzowej: β α

𝐷1 𝑐𝑜𝑠𝜽 𝑠𝑖𝑛𝜽 𝐷𝛼
[ ]= [ ] ∗ [𝐷 ]
𝐷2 −𝑠𝑖𝑛𝜽 𝑐𝑜𝑠𝜽 𝛽

Operacja ta również może zostać wykonana w drugą stronę, a zatem może służyć również do
przedstawienia wektora znajdującego się w wirującym układzie współrzędnych, przy pomocy
niewirującego układu współrzędnych.
Odwrotna transformacja Parka w postaci macierzowej:

𝐷𝛼 𝑐𝑜𝑠𝜽 −𝑠𝑖𝑛𝜽 𝐷
[𝐷 ] = [ ] ∗ [ 1]
𝛽 𝑠𝑖𝑛𝜽 𝑐𝑜𝑠𝜽 𝐷2

2.2 Metody sterowania silnikiem indukcyjnym

Metody sterowania silnikiem indukcyjnym można podzielić na skalarne oraz


wektorowe. Metody skalarne nazywane są również zewnętrznymi, a metody wektorowe –
wewnętrznymi [7].

25
Rysunek 21 Podział metod sterowania silnikiem indukcyjnym [7]

Metody skalarne polegają na tym, że na podstawie zależności obowiązujących dla


stanów ustalonych zmieniane są tylko amplitudy i prędkości kątowe wektorów przestrzennych
napięć, prądów i strumieni. W konsekwencji układ sterowania nie oddziałuje na wzajemne
położenie wektorów w stanach dynamicznych. Najczęściej stosowanym układem sterowania
skalarnego są układy, w których stabilizacja strumienia obywa się za pomocą zachowania
stałego stosunku U/f [16]. Charakterystyka takiego sterowania może wyglądać następująco:

26
Rysunek 22 Przykładowa charakterystyka sterowania silnikiem indukcyjnym

Jak widać, stosunek U/f jest stały w zakresie napięć mniejszych bądź równych napięciu
nominalnemu. Jeśli potrzebne jest uzyskanie prędkości większej niż nominalna to podwyższa
się tylko częstotliwość napięcia zasilania. Wynika to z faktu, że podanie napięcia większego
niż nominalnie na silnik, mogłoby skutkować jego uszkodzeniem. Przy stosowaniu takiej
charakterystyki sterowania, charakterystyki mechaniczne silnika indukcyjnego dla różnych
napięć i częstotliwości zasilania wyglądają następująco:

Rysunek 23 Charakterystyki mechaniczne silnika indukcyjnego przy sterowaniu U/f = const

Sterując silnikiem tak, aby uzyskać prędkość wyższą niż nominalna (podwyższać
jedynie częstotliwość), zmniejsza się moment krytyczny maszyny. Przy zadawaniu prędkości
niższej od nominalnej, zachowujemy stały stosunek U/f, a zatem moment krytyczny pozostaje
stały.
Innym układem sterowania skalarnego jest układ soft-start. Układ ten wykorzystywany
jest do rozruchu silnika indukcyjnego. Polega on na stopniowym zwiększaniu napięcia

27
zasilającego silnik przy zachowaniu stałej częstotliwości. Aby rozważyć wpływ zmieniania
amplitudy napięcia zasilania silnika indukcyjnego na jego właściwości, należy przeanalizować
jego charakterystyki mechaniczne dla różnych wartości napięć.

Rysunek 24 Charakterystyki mechaniczne silnika indukcyjnego przy różnych napięciach zasilania

Ważnym wnioskiem jest fakt, że zmniejszanie samej amplitudy napięcia zasilania silnika
znacząco zmniejsza moment krytyczny maszyny. Oznacza to, że podczas rozruchu
wykonanego przy użyciu układu soft-start, maszyna charakteryzuje się bardzo małym
momentem krytycznym. Z tego względu układu typu soft-start nie nadają się do urządzeń
wymagających dużego momentu rozruchowego. Jego zaletą natomiast jest brak konieczności
używania kosztownych falowników.
Drugą grupą metod sterowania są metody wektorowe. Do grupy tych metod należą
sterowanie FOC (zorientowane polowo), oraz DTC (z bezpośrednim sterowaniem momentem).
Stosując wektorowe metody sterowania, silnik indukcyjny analizuje się za pomocą
wektorowych równań obwodu elektromagnetycznego oraz równań ruchu:
 Równania obwodu elektromagnetycznego:
𝑑
𝑢̅𝑠 = 𝑟𝑠 𝑖̅𝑠 + 𝑇𝑁 ̅ + 𝑗ω𝑘 𝛹
𝛹 ̅𝑠
𝑑𝑡 𝑠
𝑑
𝑢̅𝑟 = 𝑟𝑟 𝑖̅𝑟 + 𝑇𝑁 ̅ + 𝑗(ω𝑘 − ω𝑚 )𝛹
𝛹 ̅𝑟
𝑑𝑡 𝑟
̅𝑠 = 𝑥𝑠 𝑖̅𝑠 + 𝑥𝑀 𝑖̅𝑟
𝛹
̅𝑟 = 𝑥𝑟 𝑖̅𝑟 + 𝑥𝑀 𝑖̅𝑠
𝛹

28
 Równania ruchu:
̅𝑠 × 𝑖̅𝑠 |𝑠𝑔𝑛{𝛹
𝑚𝑒 = |𝛹 ̅𝑠 × 𝑖̅𝑠 } = 𝐼𝑚{𝛹
̅𝑠 𝑖̅𝑠 }
𝑑ω𝑚 1
= (𝑚 − 𝑚0 )
𝑑𝑡 𝑇𝑀
Gdzie:
1
𝑇𝑁 = 2𝜋𝑓
𝑛

Oznaczenia:
𝑢̅𝑠 , 𝑢̅𝑟 – wektor napięcia skojarzonego kolejno ze stojanem i z wirnikiem
𝑖̅𝑠 , 𝑖̅𝑟 – wektor prądu skojarzonego kolejno ze stojanem i z wirnikiem
̅𝑠 , 𝛹
𝛹 ̅𝑟 – wektor strumienia magnetycznego skojarzonego kolejno ze stojanem i z
wirnikiem
𝑟𝑠 , 𝑟𝑟 – rezystancja zastępcza uzwojeń kolejno stojana i wirnika
𝑥𝑠 , 𝑥𝑟 , 𝑥𝑚 – kolejno indukcyjność uzwojeń stojana, wirnika i indukcyjność magnesująca
ω𝑘 , ω𝑚 – prędkość synchroniczna oraz prędkość kątowa wirnika
m𝑒 , 𝑚0 – moment elektromagnetyczny generowany przez maszynę oraz moment
obciążenia
T𝑀 , 𝑓𝑁 – mechaniczna stała czasowa i nominalna częstotliwość zasilania

Równania te wyprowadzone są przy następujących założeniach:


- Elektryczna i magnetyczna symetria uzwojeń stojana i wirnika
- Jednorodna szczelina powietrzna wirnika
- Pominięcie zjawisk nieliniowych
Sterowanie FOC pozwala na kontrolowanie wzajemnych położeń wektorów napięć
prądów i strumieni. Umożliwia to zbliżenie właściwości maszyny asynchronicznej do maszyny
prądu stałego [17]. Orientacja odbywa się względem wektora strumienia magnetycznego
skojarzonego z wirnikiem, dlatego też wektor ten leży na osi odciętych ruchomego układu
współrzędnych.

29
Rysunek 25 Idea sterowania FOC wyrażona w kartezjańskim układzie współrzędnych [7]

Schemat maszyny indukcyjnej zakładając powyżej przedstawioną orientację względem


strumienia magnetycznego skojarzonego z wirnikiem oraz zakładając sterowanie ze źródła o
regulowanym prądzie wygląda następująco:

Rysunek 26 Schemat blokowy silnika indukcyjnego przy sterowaniu FOC [7]

Gdzie:
𝑇𝑟 – stała czasowa wirnika

Na schemacie widać, że strumień Ψr zależy tylko od składowej prądu isx. Natomiast


zachowując stałe isx, możliwa jest regulacja samym momentem elektromagnetycznym m e za
pomocą składowej prądu isy. Składowe prądu isx i isy można porównać odpowiednio do prądu
wzbudzenia i prądu twornika w maszynie prądu stałego. Z powyższych rozważań, wynika że
sterowanie wektorowe wymaga transformacji wirującego wektora o 3 współrzędnych osiowych
w wektor nieruchomy umieszczony na płaszczyźnie 1, 2. Dlatego też w przypadku
transformacji FOC konieczna jest implementacja przekształceń Parka i Clarka. Co więcej, ze

30
względu na sposób uzyskania kąta obrotu wirującego układu współrzędnych, sterowanie można
podzielić na 2 warianty. Pierwszy to wariant bezpośredni, w którym kąt jest mierzony lub
odtwarzany ze składowych wektora strumienia w stacjonarnym układzie α, β. W drugim
wariancie wektor jest wyznaczany poprzez całkowanie pulsacji poślizgu. Schematy blokowe
przedstawiające oba warianty sterowanie pokazane są poniżej:
a) wariant bezpośredni

Rysunek 27 Schemat blokowy sterowania bezpośredniego FOC [7]

b) wariant pośredni

Rysunek 28 Schemat blokowy sterowania pośredniego FOC [7]

31
3 Inicjalizacja urządzeń

3.1 Inicjalizacja timerów

Na potrzeby implementacji metod sterowania użyte zostały 2 timery. Pierwszy


to Timer1 o zaawansowanych opcjach konfiguracji, natomiast drugi to Timer2 ogólnego
przeznaczenia. Timer1 posłużył do generacji sygnałów PWM. Jego inicjalizacje przebiegła za
pomocą utworzenia obiektu strukturalnego htim1 należącego do struktury TIM_HandleTypeDef
i wpisaniu w jego pola odpowiednich wartości. Warto zauważyć, że w polach struktury
TIM_HandleTypeDef znajdują się inne obiekty typu strukturalnego takie jak np. Init.
Inicjalizacja Timera1 wygląda następująco:

htim1.Instance = TIM1;
htim1.Init.Prescaler = 0;
htim1.Init.CounterMode = TIM_COUNTERMODE_CENTERALIGNED1;
htim1.Init.Period = 4800;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;

Timer ustawiony jest w tryb „center aligned” (przy pomocy pola strukturalnego
Init.CounterMode), co oznacza, że zlicza on najpierw w górę aż do wartości rejestru
określającego przepełnienie, a następnie w dół do 0. W ten sposób timer generuje symetryczny
sygnał trójkątny. Timer1 jest taktowany poprzez magistralę APB2, na której ustawiona jest
częstotliwość taktowania 96 MHz. Po ustawieniu preskalera i wewnętrznego dzielnika timera
na 0 (pole strukturalne Init.Prescaler oraz Init.ClockDivision) oraz wartości rejestru
przepełnienia na 960 (pole strukturalne Init.Period), okres sygnału trójkątnego wynosi 100
µs. Okres sygnału trójkątnego generowanego przez PWM, można wyznaczyć ze wzoru:

2(𝑃𝑟𝑒 + 1)(𝐴𝑅𝑅 + 1)(𝐶𝐷 + 1)


𝑇=
𝑓𝑐𝑙𝑘

Gdzie:
𝑃𝑟𝑒 – wartość preskalera
𝐴𝑅𝑅 – wartość rejestru przepełnienia
𝐶𝐷 – wartość rejestru wewnętrznego dzielnika timera
32
𝑓𝑐𝑙𝑘 – częstotliwość taktowania na magistrali timera

Za pomocą uzupełniania pól obiektu strukturalnego sConfigOC należącego do struktury


TIM_OC_InitTypeDef, zostały zainicjalizowane 3 kanały generujące komplementarne sygnały
PWM.

sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;

Pole struktury o nazwie Pulse określa wartość, z którą porównywany jest sygnał trójkątny
(wartość jest wpisywana do rejestru CCR). Wartość ta w każdym kanale została ustawiona na
0, gdyż w trakcie wykonywania programu będzie ona cyklicznie zmieniana. Pozostałe pola
pozwalają na konfigurację stanów logicznych wyjścia, po przekroczeniu wartości wpisanej do
pola Pulse. Taka konfiguracja oznacza, że na kanałach wyjściowych OCx licznika stan wysoki
utrzymywany jest, dopóki timer, licząc w górę, nie osiągnie wartości wpisanej do rejestru CCR.
Następnie stan niski utrzymywany jest dopóki licznik, licząc w dół, znowu nie osiągnie wartość
wpisanej do rejestru CCR. Oznacza to, że wzrost wartości wpisanej do CCR zwiększa
wypełnienie sygnału na wyjściu kanałów. Wyjścia komplementarne OCNx utrzymują stan
przeciwny do wyjść OCx.

33
Rysunek 29 Idea generowania sygnałów PWM [18]

Timer2 został skonfigurowany w celu wykonywania przerwania co 100 µs. W przerwaniu


umieszczone są wszystkie obliczenia związane z zaimplementowanymi metodami sterowania
silnika indukcyjnego. Po pierwsze, taki zabieg w porównaniu do umieszczania obliczeń w pętli
głównej, pozwala odciążyć procesor od wykonywania obliczeń bez przerwy. Po drugie,
pozwala to na dodawania do pętli głównej nowych zadań, nie zmieniając przy tym
częstotliwości wykonywania obliczeń związanych ze sterowaniem silnika. Konfiguracja
Timera2 została przeprowadzona za pomocą wpisywania odpowiednich wartości do pól
obiektu strukturalnego o nazwie htim2:

htim2.Instance = TIM2;
htim2.Init.Prescaler = 0;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 4800;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;

Timer2 ustawiony jest w tryb liczenia w górę, a zatem generuje on przebieg piłokształtny.

34
Rysunek 30 Tryb liczenia Timera2 [18]

Aby obliczyć okres takiego sygnału należy tym razem wykorzystać następujący wzór:

(𝑃𝑟𝑒 + 1)(𝐴𝑅𝑅 + 1)(𝐶𝐷 + 1)


𝑇=
𝑓𝑐𝑙𝑘

Jako że Timer2 jest umieszczone na magistrali APB1, na której częstotliwość taktowania zegara
wynosi 48 MHz, to aby uzyskać okres wynoszący 100 µs, wystarczyło ustawić rejestr
przepełnienia na wartość 4800.

3.2 Inicjalizacja i konfiguracja portów GPIO

Na potrzeby testowania metod na obiekcie rzeczywistym skonfigurowane zostało 5


pinów GPIO. 2 z nich to piny PC0, PC1 ustawione jako wyjściowe, a pozostałe 3 to piny PA2,
PA3 oraz PC5 ustawione jako wejściowe.

Piny wyjściowe zostały zainicjalizowane w celu obsłużenia wejść falownika (wejścia


blokującego, oraz wejścia resetu).

GPIO_InitStruct.Pin = WeB_Pin|ResetFalownika_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

35
Piny zostały ustawione w trybie push-pull. Oznacza to, że może na nich pojawić się tylko stan
wysoki albo niski. Wartość wpisana do pola Pull, oznacza że nie został podciągnięty ani do
napięcia zasilania, ani do masy. Stan wyjścia ResetFalownika zależy od jednego z wejść,
wyjście WeB jest ustawione w stan wysoki, gdyż w stanie niskim nie pozwala na kluczowanie
tranzystorów.

2 piny wejściowe służą do startowania i zatrzymywania sinika za pomocą przycisków.

GPIO_InitStruct.Pin = Stop_Pin|Start_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

Zostały one programowo ustawione w tryb pull-up, co oznacza że są połączone z napięciem


zasilania poprzez rezystor podciągający. Funkcje włączane przyciskami Stop i Start wyglądają
następująco:
void StopPWM (void)
{
TIM1-> BDTR &= 0x7fff; //Bit MOE = 0
}

Lub

void StartPWM (void)


{
TIM1-> BDTR |= 0x8000; //Bit MOE = 1
}
Zostają one wywołane tylko gdy przycisk znajdzie się w stanie niskim minimum 50 ms.
Zapobiega to wywołaniu funkcji spowodowanym drganiami styków lub zaszumieniami.
Funkcja StopPWM zeruje bit MOE (Main output enable). Taka opreacja wprowadza wyjścia, na
których generowany jest PWM w stan niski. Po ustawieniu tego bitu na 1, wyjścia znowu
zaczynają generować sygnał PWM. Warto zauważyć, że po wykonaniu funkcji StopPWM,
Timer1 nie zostaje zatrzymany i nadal generuje sygnał trójkątny.

36
Trzeci pin wejściowy jest skonfigurowany identycznie jak 2 omówione poprzednio i różni się
jedynie funkcjonalnością. Służy on do wysłania impulsu na wejście falownika resetujące go.
Jest to konieczne, aby uruchomić falownik po dostarczeniu do niego zasilania.

3.3 Zabezpieczenia falownika

Aby nie dopuścić do zwarcia gałęzi falownika, ustawiony został dead time, czyli czas
pomiędzy wprowadzeniem w stan nieprzewodzenia jednego z tranzystorów, a wprowadzeniem
w stan przewodzenia komplementarnego mu tranzystora.

sBreakDeadTimeConfig.DeadTime = 100;

Wpisana wartość 100 oznacza, że dead time wynosi 1 µs.


Kolejną istotną kwestią dotyczącą bezpiecznego używania falownika jest minimalny
czas impulsu podawanego na bramkę tranzystora. Aby tranzystory w falowniku nie ulegały
stopniowej degradacji należy zadbać o to, aby na jego bramce nie pojawiały się impulsy krótsze
niż 2 µs. Takie niebezpieczeństwo może pojawić się w dwóch wypadkach:
a) Sygnał PWM o wypełnieniu poniżej 2% i powyżej 98%

Generacja sygnału PWM o wypełnieniu mniejszym niż 2%, przy okresie


równym 100 µs, będzie skutkował impulsami krótszymi od 2 µs na wyjściu
podstawowym. Natomiast wypełnienie wyższe od 98% poskutkuje tym samym na
wyjściu komplementarnym. Rozwiązaniem tego problemu jest zadbanie o to, aby
wartość wpisana do rejestru CCRx, która jest porównywana z timerem zawierała się w
odpowiednim przedziale. W celu wyznaczenia wartości granicznych przedziału, użyty
został wzór określający, jaką wartość należy wpisać do rejestru CCRx, aby uzyskać
oczekiwaną długość impulsu.

𝐴𝑅𝑅 ∗ 𝑡𝑖
𝐶 = 𝐴𝑅𝑅 −
𝑇𝑃𝑊𝑀
Gdzie:
𝐶 – Szukana wartość, którą należy wpisać do rejestru CCRx, aby uzyskać oczekiwany
czas impulsu
𝑡𝑖 – Oczekiwany czas impulsu
37
𝑇𝑃𝑊𝑀 – Okres sygnału PWM

Dla znanej konfiguracji Timera1 wartość ta wynosi 4704 dla 2 µs oraz 96 dla 98 µs.

b) Przycisk „Stop” lub „Start” naciśnięty w momencie, gdy impuls jest krótszy niż 2 µs.

Aby wyeliminować ten problem komenda Stop lub Start wykonywana jest tylko
wtedy, gdy licznik Timera1 zrówna się z wartością wpisaną do rejestru ARR lub z
zerem. Z tego względu sygnał PWM, po wciśnięciu przycisku, zatrzymywany i
uruchamiany jest zawsze w połowie sygnałów wyjściowych. Oznacza to, że najkrótszy
możliwy sygnał wygenerowany po wciśnięciu przycisku Stop/Start będzie wynosić 1
µs. Niemniej jednak w zdecydowanej większości przypadków będzie to sygnał dłuższy
niż 2 µs.

W przypadku awarii programu, skutkującej brakiem możliwości wyłączenia sygnału


PWM za pomocą przycisku Stop, zainicjalizowany został pin BKIN (break input).

Rysunek 31 Wejścia typu break input [19]

Jest to pin, służący do sprzętowego wyłączenia sygnału PWM. Podanie na BKIN stanu
wysokiego skutkuje natychmiastowym wprowadzeniem wyjść PWM w stan niski. Widać
zatem, że ta funkcjonalność nie uwzględnia minimalnego czasu podawanego na bramkę
tranzystora i dlatego powinna być używana tylko w sytuacjach awaryjnych.

38
4 Implementacja algorytmów w programie

4.1 Zadawanie napięcia

W niniejszej pracy inżynierskiej zastosowana jest wektorowa metoda sterowania


falownikiem. Oznacza to, że potrzebna jest implementacja prostych oraz odwrotnych
przekształceń Parka i Clarka.
void ClarkTransform (float Da, float Db)
{
Dalfa = Da;
Dbeta = (sqrt(3)/3)*Da + (2*sqrt(3)/3)*Db;
}
void InversClarkTransform (float Dalfa, float Dbeta)
{
Da = Dalfa;
Db = -0.5*Dalfa + (sqrt(3)/2)*Dbeta;
Dc = -0.5*Dalfa - (sqrt(3)/2)*Dbeta;
}
void ParkTransform (float Dalfa, float Dbeta, float angle)
{
D1 = Dbeta*sinusA(angle, 1) + Dalfa*sinusA(90+angle, 1);
D2 = Dbeta*sinusA(90+angle, 1) - Dalfa*sinusA(angle, 1);
}
void InvertParkTransform (float D1, float D2, float angle)
{
Dalfa = D2*sinusA(angle, 1) - D1*sinusA(90+angle, 1);
Dbeta = D2*sinusA(90+angle, 1) + D1*sinusA(angle, 1);
}

Zadawanie napięcia odbywa się za pomocą funkcji


void Transform (float Dx, float Dy, float velocity)
{
InvertParkTransform (Dx, Dy, alfa_r);
InversClarkTransform (Dalfa, Dbeta);

v = 0.0001*velocity;
alfa_r = alfa_r + v;

39
if (alfa_r > 360 - v)
{
alfa_r = v - (360 - alfa_r);
}

comp_a = (TIM1->ARR)/2 + Da*(TIM1->ARR)/2;


comp_b = (TIM1->ARR)/2 + Db*(TIM1->ARR)/2;
comp_c = (TIM1->ARR)/2 + Dc*(TIM1->ARR)/2;

Spr (comp_a, comp_b, comp_c);

TIM1->CCR1 = comp_a;
TIM1->CCR2 = comp_b;
TIM1->CCR3 = comp_c;
}
Polega to na tym, że tworzony jest wektor napięcia, o współrzędnych Dx i Dy w 2 -osiowym
układzie współrzędnych. Zakłada się, że wektor i układ wspólnie wirują z tą samą, zadaną
prędkością obrotową określoną przez parametr velocity i dlatego względem siebie pozostają
nieruchome. Za pomocą odwrotnej transformacji Parka wektor wyrażony w wirującym
układzie współrzędnych przekształcony zostaje w wektor wyrażony w nieruchomym układzie,
a zatem wiruje względem niego. Aby wektor mógł krążyć względem stacjonarnego układu
współrzędnych, należy do funkcji InvertParkTransform przekazywać kąt, który jest tworzony
przez wektor i oś odciętych nieruchomego układu współrzędnych. Kąt ten jest zmienną, której
szybkość zmian liniowo zależy od prędkości ω1. Można zatem powiedzieć, że kąt obrotu
wektora jest całką z prędkości obrotowej wektora. Zostaje to zapisane za pomocą następującego
wyrażenia:

v = 0.0001*velocity;
alfa_r = alfa_r + v;

Współczynnik 0,0001 przez który przemnażany jest parametr velocity wynika z tego, że
funkcja wywoływana jest co 100 µs (przerwanie od Timera2) i w ciągu jednej sekundy zostanie
wywołana 10000 razy. Umożliwia to podanie do funkcji prędkości obrotowej wektora w
jednostce stopni na sekundę. Następnie przy użyciu odwrotnej transformacji Clarka, wektor ten
zostaje wyrażony w trójosiowym układzie współrzędnych. Współrzędne osiowe Da, Db i Dc
powstałego wektora, w dziedzinie czasu są 3 sinusoidami przesuniętymi od siebie w fazie o

40
120°, o pulsacji równej ω1 i amplitudzie równej długości zadanego wektora napięcia. W
następnym kroku do zmiennych comp_a, comp_b i comp_c wpisywane są następujące wartości:

comp_a = (TIM1->ARR)/2 + Da*(TIM1->ARR)/2;


comp_b = (TIM1->ARR)/2 + Db*(TIM1->ARR)/2;
comp_c = (TIM1->ARR)/2 + Dc*(TIM1->ARR)/2;

Zmienne te są przepisywane do rejestrów CCR1, CCR2 i CCR3, a funkcja Spr (comp_a,


comp_b, comp_c); nie dopuszcza do tego, żeby wypełnienie sygnału PWM było większe niż
98% lub mniejsze niż 2%. Przepisanie zmiennych do rejestrów spowoduje powstanie 3
sygnałów PWM, w którym każdy modulowany jest sinusoidą przesuniętą od siebie o 120°.
Poniżej umieszczony został schemat blokowy pokazujący zasadę działania funkcji Transform:

Rysunek 32 Schemat blokowy opisujące funkcję Transform

4.2 Metoda SoftStart

Rozruch SoftStart został zaimplementowany w następujący sposób:


void SoftStart (int time, float velocity, float amp_pocz)
{
if (amp == 0)
{
amp = amp_pocz;
}

41
Transform(amp, 0, velocity);

if (amp < velocity/v_nominal)


{
amp = amp + ((0.0001*velocity)/(time*v_nominal)) -
(amp_pocz*0.0001/time);
}
}

W funkcji, za pomocą parametrów można ustawić czas rozruchu, prędkość z jaką krążyć ma
wektor oraz początkową długość wektora. Funkcja w pierwszym wywołaniu przypisuje zadaną
wartość początkową długości wektora do zmiennej amplituda. Następnie wywołana jest funkcja
Transform, do której przekazywany jest wektor o długości amplitudy początkowej i wirujący z
zadaną prędkością. Przy każdym wywołaniu funkcji, długość wektora przekazywanego do
funkcji Transform jest zwiększana aż do momentu, gdy osiągnie wartość równą stosunkowi
zadanej prędkości do prędkości nominalnej silnika (50 obr/s). Wartość o którą zwiększana jest
długość wektora wyliczona jest tak żeby długość wektora osiągnęła wartość końcową po czasie
przekazanym w parametrze time. Poniżej wykres przedstawiający współrzędne wektora
przekazywanego do funkcji Transform, wyrażonego w nieruchomym, 2-osiowym układzie
współrzędnych:

Rysunek 33 Trajektoria wektora w nieruchomym układzie współrzędnych przy rozruchu soft-start

42
Jak widać wektor krąży ze stałą prędkością, zwiększając swoją długość. Charakterystyka
sterowania, przy użyciu tej metody, wygląda następująco:

Rysunek 34 Charakterystyka sterowania przy rozruchu soft-start

Gdzie:
𝑓𝑧𝑎𝑑 – zadana częstotliwość obrotów wektora (velocity/360)
𝑓𝑛 – nominalna częstotliwość obrotów wektora (50 obr/s)
𝑈𝑛 – nominalne napięcie maszyny

4.3 Metoda U/F = const

Rozruch U/f został zaimplementowany za pomocą następującej funkcji:

void UFConst (float time, float velocity, float amp_pocz, float amp_konc)
{
if (amp == 0)
{
amp = amp_pocz;
}

Transform(amp, 0, v2);

if (amp < amp_konc)


{
amp = amp + (amp_konc*0.0001/time) - (amp_pocz*0.0001/time);

43
}

if (v2 < velocity)


{
v2 = v2 + (velocity*0.0001/time);
}
}

Funkcja pozwala ustawić czas rozruchu, prędkość końcową z jaką ma wirować wektor po czasie
rozruchu, początkową długość wektora i końcową. Podobnie jak przy funkcji SoftStart po
pierwszym wywołaniu wektorowi zostaje nadana długość początkowa przekazana w
parametrze amp_pocz. Wektor zostaje przekazany do funkcji Transform, tym razem z prędkością
v2, która zainicjalizowana jest wartością 0. W następnych krokach zwiększane są wartości
prędkości wirowania i długości wektora aż do momentu osiągnięcia swoich wartości
końcowych określonych w parametrach przekazanych funkcji. Obie te wartości przestaną
rosnąć w tym samym momencie, po czasie przekazanym w parametrze time. Współrzędne
wektora napięcia wyrażonego w nieruchomym, 2-osiowym układzie współrzędnych w trakcie
rozruchu wyglądają następująco:

Rysunek 35 Trajektoria wektora w nieruchomym układzie współrzędnych przy rozruchu U/f = const

W tym przypadku wektor krąży z coraz wyższą prędkością obrotową, jednocześnie zwiększając
swoją długość. Charakterystyka sterowania wygląda w sposób następujący:

44
Rysunek 36 Charakterystyka sterowania przy rozruchu U/f = const

4.4 Dodanie trzeciej harmonicznej

Aby podwyższyć napięcie wyjściowe falownika zastosowana została metoda


dodawania sygnału trzeciej harmonicznej do przebiegów modulujących. Implementacja tej
metody polega na tym, że spośród 3 sinusoid tworzonych przez współrzędne Da, Db i Dc
wybierana jest ta, która w danej chwili ma wartości środkowe. Dobrze ilustruje to poniższa
grafika:

Rysunek 37 Wyszukiwanie środkowej sinusoidy [20]

45
Sygnał vmid przemnażany jest przez współczynnik 0,5, a następnie dodany do każdej ze 3
współrzednych wektora. Implementacja wymagała stworzenia nowej funkcji zadającej napięcie
Transform2. Wygląda ona w sposób następujący:

void Transform2 (float Dx, float Dy, float velocity)


{
D1 = Dx;
D2 = Dy;
InvertParkTransform (D1, D2, alfa_r);
InversClarkTransform (Dalfa, Dbeta);

v = 0.0001*velocity;
alfa_r = alfa_r + v;

if (alfa_r > 360 - v)


{
alfa_r = v - (360 - alfa_r);
}

Dmid = FindMid(Da, Db, Dc);

Da += 0.5*Dmid;
Db += 0.5*Dmid;
Dc += 0.5*Dmid;

comp_a = (TIM1->ARR)/2 + Da*(TIM1->ARR)/2;


comp_b = (TIM1->ARR)/2 + Db*(TIM1->ARR)/2;
comp_c = (TIM1->ARR)/2 + Dc*(TIM1->ARR)/2;

Spr2 (comp_a, comp_b, comp_c);

TIM1->CCR1 = comp_a;
TIM1->CCR2 = comp_b;
TIM1->CCR3 = comp_c;
}

W pierwszych linijkach kodu funkcja Transform2 jest taka sama jak funkcja Transform. Pojawia
się w niej natomiast wywołanie funkcji FindMid(Da, Db, Dc), używającej prostego algorytmu

46
do znalezienia wartości środkowej z 3 liczb. Wartość ta zostaje dodana do zmiennych Da, Db,
Dc. Zmienił się również algorytm sprawdzający czy wartość comp_x zawiera się w takim
przedziale aby na wyjściach PWM nie pojawiały się sygnały krótsze niż 2 µs. Jego działanie
przedstawia poniższy schemat blokowy, który uwzględnia że wartość rejestru TIM1->ARR
wynosi 4800:

Rysunek 38 Schemat blokowy funkcji Spr2

Schemat blokowy funkcji Transform2 jest bardzo podobny do schematu funkcji Transform,
dlatego też nie został on umieszczony w niniejszej pracy.
W następnym kroku stworzono funkcje UFConst2 i SoftStart2, które różnią się od
UFConst i SoftStart tylko tym, że zamiast zadawania napięcia przy pomocy funkcji Transform,
korzystają z funkcji Transform2.

47
5 Przeprowadzone badania

5.1 Badanie Generowanego sygnału PWM

Zanim układ mikroprocesorowy został podłączony do falownika, za pomocą


oscyloskopu sprawdzone zostały sygnały PWM generowane na wyjściach mikrokontrolera
OCx i OCNx. Jak już wcześniej wspomniano, okres sygnałów PWM wynosi 100 µs, a dead
time ustawiony został na 1 µs. Do funkcji Transform przekazany został wektor o długości 1,
wirujący z prędkością 20 obr/s. Pierwszy oscylogram przedstawia sygnały PWM generowane
na 3 różnych kanałach, sterujących górnymi tranzystorami:

Rysunek 39 Przebiegi napięć generowanych na wyjściach OCx

Oscylogram potwierdza, że okres sygnałów PWM wynosi 100 µs. Widać również, że w
momencie uchwycenia zdjęcia 2 z przebiegów mają równą wartość wypełnienia. Oznacza to,
że w chwili tej przebiegi modulujące się przecinały, a zatem trzeci z przebiegów przyjmował
swoje minimum. Dobrze obrazuje to poniższa ilustracja:

48
Rysunek 40 3-fazowa sinusoida [20]

A zatem przybliżając zielony przebieg, można zmierzyć najkrótszy impuls generowany na


wyjściu OCx:

Rysunek 41 Najkrótszy czas impulsu PWM

Najkrótszy generowany impuls, tak jak założono, wynosi 2 µs.

Kolejny oscylogram również przedstawia sygnały generowane na kanałach OCx, ale


tym razem z przedziałką czasową równą 100 ms.

49
Rysunek 42 Przebiegi napięć generowanych na wyjściach OCx

Dzięki takiej skali można zobaczyć, że obwód przebiegów wygląda jak wierzchołki sinusoidy
o częstotliwości 20 Hz, czyli takiej jak zadana pulsacja wektora. Linie czerwone (pokazujące
okres sinusoidy zaznaczonej na pomarańczowo) oraz czarna i niebieska (pokazujące
przesunięcie kolejnych sinusoid) pozwalając zobaczyć, że sinusoidy są przesunięte względem
siebie o 1/3 swojego okresu, czyli o 120º.

Następne 2 oscylogramy przedstawiają komplementarną parę wyjść PWM w celu


zmierzenia dead tme’ów:

50
Rysunek 43 Zmierzenie dead time'u

Jak widać na oscylogramach, dead time’y rzeczywiście wynoszą 1 µs, a zatem zapewniają
bezpieczne przełączanie między tranzystorami górnymi a dolnymi.

51
2 następne oscylogramy to przebieg 3 kanałów OCx, zaraz po wciśnięciu kolejno
przycisku Startu i Stopu.

Rysunek 44 Przebiegi napięć generowanych na wyjściach OCx po wciśnięciu przycisku Start

Rysunek 45 Przebiegi napięć generowanych na wyjściach OCx po wciśnięciu przycisku Stop


52
Zostało wykonane bardzo wiele prób, aby sprawdzić czy czas impulsu po wciśnięciu przycisku
nie może być krótszy od założonej 1 µs. W żadnej z prób nie udało się uzyskać czasu krótszego.
Po wykonaniu badań potwierdzających, że mikrokontroler jest gotowy do bezpiecznej
pracy z falownikiem, przeprowadzone zostały obserwacje napięć fazowych na odbiorniku. Na
potrzeby tych obserwacji użyty został filtr RC o parametrach R = 48kΩ i C = 23nF, który
uśrednia napięcie fazowe. Stworzona również została płytka ze złączem pozwalającym na
połączenie wyjść OCx i OCnx z odpowiadającymi im tranzystorami falownika. Co więcej, na
płytce umieszczone zostały przyciski pozwalające na wywołanie funkcji StartPWM i StopPWM
oraz wyzwalające sygnał resetujący falownik i sygnał blokujący generację sygnału PWM:

Rysunek 46 Płytka stworzona na potrzeby połączenia mikrokontrolera z falownikiem

Na początku, falownik został zasilony napięciem o wartości 30V. Oscylogram


przedstawia generacje sygnału PWM na jednym z kanałów oraz napięcie na odpowiadającej
mu fazie, odłożone na rezystorze filtru RC.

53
Rysunek 47 Przebiegi napięć – generowanego na wyjściu OCx oraz fazowego z filtrem RC

Można zobaczyć, że wygenerowane zostało napięcie sinusoidalne o częstotliwości 20 Hz.

5.2 Analiza rozruchu U/f

Zbadane zostały przebiegi prądu (fioletowy) i napięcia (różowy) jednej z faz podczas rozruchu
UFConst. W tym badaniu napięcie zasilania falownika zostało podniesione do wartości 150 V
oraz podłączone do zacisków stojana silnika B. Najistotniejszym parametrem silnika B z punktu
widzenia tego badania jest prąd nominalny który wynosi 1,32 A. Jest to wartość skuteczna, a
zatem dopuszczalna amplituda sinusoidalnego prądu może wynosić około 2 A. Oscylogramy
pokazane poniżej zostały wygenerowane dla parametrów ustawiających początkową długość
wektora na 0,1 (co odpowiada napięcie równemu 15 V), końcową na 1, końcową prędkością
wirowania wektora na 12,5 obr/s oraz czasu rozruchu na:

54
a) 2 s

Rysunek 48 Przebiegi napięcia i prądu przy rozruchu typu U/f = const, przy czasie rozruchu równym 2 s

Tak krótki czas rozruchu spowodował powstanie dużego prądu rozruchowego, którego
maksymalna amplituda wyniosła około 2,36A. Jest to prąd większy niż amplituda prądu
znamionowego o 18%. Taki prąd nie powinien być szkodliwy dla maszyny, ale skracanie
czasu rozruchu jeszcze bardziej mogłoby okazać się niebezpieczne.

55
b) 9 s

Rysunek 49 Przebiegi napięcia i prądu przy rozruchu typu U/f = const, przy czasie rozruchu równym 9 s

W tym przypadku maksymalna amplituda prądu to 1,25 A. Jest to prąd z całą


pewnością bezpieczny dla maszyny, niemniej jednak rozruch odbywał się bardzo długo.

56
c) 4 s

Rysunek 50 Przebiegi napięcia i prądu przy rozruchu typu U/f = const, przy czasie rozruchu równym 4 s

W tym przypadku prąd rozruchowy jest równy prądowi znamionowemu i


wynosi około 2 A. Oznacza to zatem, że jest to najmniejszy czas rozruchu, który nie
generuje prądu mogącego zaszkodzić maszynie.

Aby wpłynąć na prąd ustalony należy regulować długość lub prędkość wirowania
wektora. Znamionowy strumie magnetyczny uzyskuje się dla prądu ustalonego równemu 40%
prądu nominalnego. Oznacza to, że aby uzyskać znamionowy strumień magnetyczny należy
tak zmieniać długość lub prędkość wirowania wektora, aby prąd ustalony był równy 0,8 A. Taki
przypadek został zaobserwowany przy ustaleniu prędkości wirowania wektora równej 13,9
obr/s:

57
Rysunek 51 Przebiegi napięcia i prądu przy rozruchu typu U/f = const przy znamionowym strumieniu
magnetycznym

5.3 Analiza rozruchu soft-start

W kolejnym kroku, przy tych samych warunkach zasilania falownika, zbadany został
rozruch SoftStart. Tym razem rozruch wykonany był na silniku B o prądzie nominalnym
równym 3,5 A. Daje to maksymalną amplitudę prądu sinusoidalnego na poziomie około 5A.
Wektor napięcia w chwili włączenia rozruchu przyjmuje 0,1 swojej maksymalnej długości oraz
wiruje z prędkością 40 obr/s. Zbadane zostały przebiegi prądu oraz napięcia fazowego w
układzie dla różnych czasów rozruchu:
a) 4 s

58
Rysunek 52 Przebiegi napięcia i prądu przy rozruchu typu soft-start przy czasie rozruchu równym 4 s

Prąd podczas rozruchu uzyskał maksymalną wartość równą 4.1 A. Jest to wartość niższa
niż amplituda prądu znamionowego, dlatego też możliwe jest bezpieczne skrócenie czasu
rozruchu.

59
b) 1,5 s

Rysunek 53 Przebiegi napięcia i prądu przy rozruchu typu soft-start przy czasie rozruchu równym 1,5 s

Amplituda prądu w najwyższym momencie osiąga około 5 A. Jest wartość


równa znamionowej amplitudzie prądu, dlatego taki czas rozruchu przy takim
obciążeniu można uznać za optymalny.

Metoda soft-start pozwala na włączanie ponownie rozruchu, nawet gdy silnik jeszcze
nie został wyhamowany. Wynika to z faktu, że pole w tej metodzie wiruje zawsze ze stałą
prędkością, która jest większa od prędkości wirnika. Z tego powodu nie odbywa się tu proces
przekazywania energii do sieci. W przypadku metody U/f ponowne załączanie rozruchu, przy
jeszcze niezatrzymanym wirniku byłoby możliwe tylko jeśli przekształtnik częstotliwości
pozwalał na oddanie energii do sieci, ponieważ pole wiruje na początku z małą prędkością.
Taki przekształtnik musiałby składać się ze sterowanego prostownika oraz zawierać
kondensator magazynujący energię. Stosuje się również tranzystor zabezpieczający na
wypadek, gdy napięcie na kondensatorze wzrośnie do wartości mogących go uszkodzić. Jako
że używany przeze mnie przemiennik nie jest przystosowany do oddawania energii do sieci,
mogłem wykonać próby ponownego włączanie rozruchu, przy niewyhamowanym silniku, tylko
dla metody soft-start. Poniższy oscylogram przedstawia jedną z takich prób:

60
Rysunek 54 Wyłączenie i ponowne uruchomienie rozruchu typu soft-start

Powyższy oscylogram pokazuje, że ponowne włączenie rozruchu nie spowodowało dużego


prądu udarowego. Włączanie rozruchu bez czekania na zatrzymanie się maszyny jest zatem
bezpieczne dla przemiennika częstotliwości jak i dla silnika.

5.4 Komutacja

Zbadane zostało również opóźnienie jakie zachodzi pomiędzy wysłaniem impulsu


sterującego, a zmianą napięcia na fazie odbiornika. Na oscylogramach kolorem
pomarańczowym zaznaczony został sygnał PWM generowany na wyjściu OC1, zielonym – na
OCN1, kolorem różowym – napięcie fazowe na odbiorniku, a kolorem fioletowym – prąd
fazowy. Te obserwacje zostały przeprowadzone w stanie ustalonym maszyny:

61
Rysunek 55 Czas komutacji pomiędzy wysłaniem impulsu sterującego a zmianą napięcia fazowego

Czas pomiędzy wysłaniem sygnały wprowadzającego w stan przewodzenia dolny tranzystor, a


skokową zmianą napięcia fazowego wynosi około 3,7 µs. Czas ten spowodowany jest
opóźnieniami wprowadzanymi przez układ sterowania i przez czas załączania tranzystorów

Rysunek 56 Czas komutacji pomiędzy wysłaniem impulsu sterującego a zmianą napięcia fazowego
62
Co ciekawe czas pomiędzy wysłaniem impulsu wprowadzającego w stan przewodzenia
tranzystor górny, a zmianą napięcia fazowego jest krótszy i wynosi 0,88 µs. Aby zrozumieć to
zjawisko warto rozpatrzyć jedną z gałęzi falownika podczas trwania komutacji.

Rysunek 57 Jedna z gałęzi falownika [9]

Na rysunku 55, przedstawiona jest sytuacja, w której prąd i napięcie jednej z faz mają przeciwne
znaki. Oznacza to, że indukcyjność odbiornika, nie pozwalając na gwałtowną zmianę prądu,
spowodowała, że energia oddawana jest do sieci. W skutek tego, prąd płynie przez tranzystor
T1. Gdy tranzystor zostaje wprowadzony w stan nieprzewodzenia, przewodzić zaczyna dioda
D1, a zatem napięcie na odbiorniku pozostaje bez zmian. Dopiero gdy tranzystor T2 zostanie
wprowadzony w stan przewodzenia to napięcie na odbiorniku zmienia się i przyjmuje wartość
-Ud/2. Na rysunku 56 początkowo przewodzi tranzystor T2. Tym razem jednak wprowadzenie
łącznika w stan nieprzewodzenia zmienia napięcie fazowe, gdyż prąd zaczyna płynąć diodą D1
(a więc odbywa się to szybciej). Skutkuje to przejęciem napięcia przez diodę. Również sama
zmiana napięcia fazowego przebiega inaczej i nie jest skokowa (czas narastania również wynosi
0,88 µs). Ta różnica wynika z faktu, że dioda charakteryzuje się czasem magazynowania
ładunków w złączu p-n i dlatego napięcie na niej nie ma charakteru skokowego [21]. Wszystkie
3 oscylogramy zostały ujęte dla ujemnego prądu fazowego. Dla prądu dodatniego, zjawisko
nieskokowej zmiany napięcia oraz krótszego czasu komutacji odbywa się po wprowadzeniu w
stan przewodzenia dolnego tranzystora.

5.5 Modulacja THIPWM

Przebiegi służące do analizy modulacji THIPWM zostały wygenerowane przy napięciu


zasilania falownika równym 40 V i zastosowaniu filtru RC. Pierwsza obserwacja dotyczy
fazowego napięcia:

63
Rysunek 58 Napięcie fazowe na filtrze RC przy modulacji THIPWM

Dla porównania, sprawdzone zostało napięcie fazowe wygenerowane przy pomocy modulacji
SPWM:

Rysunek 59 Napięcie fazowe na filtrze RC przy modulacji SPWM

64
W kolejnym kroku zwarty został punkt gwiazdowy gwiazdy z punktem środkowym falownika,
aby sprawdzić jak wygląda badane napięcie w odniesieniu do punktu środkowego falownika:

Rysunek 60 Napięcie na filtrze RC odniesione względem punktu środkowego falownika

W przypadku modulacji SPWM zwarcie punktów gwiazdowego i środkowego falownika nie


zmieniło przebiegu napięcia. Widać zatem, że modulacja THIPWM nie wykorzystuje w pełni
źródła zasilania a i tak uzyskuje amplitudę napięcia fazowego na tym samym poziomie co przy
modulacji SPWM. Innym wnioskiem wysuwającym się z obserwacji powyższych
oscylogramów jest to, że potencjał punktu gwiazdowego przy modulacji THIPWM jest
ruchomy.
Poniższe oscylogramy przedstawiają napięcie fazowe na odbiorniku oraz to samo
napięcie odniesione względem punktu środkowego, po zwiększeniu amplitudy zadanego
wektora napięcia o 15%, przy modulacji THIPWM:

65
Rysunek 61 Napięcie fazowe na filtrze RC po podniesieniu zadanego napięcia o 15% przy modulacji THIPWM

Rysunek 62 Napięcie na filtrze RC odniesione względem punktu środkowego falownika po podniesieniu zadanego
napięcia o 15%

66
Amplituda napiecia fazowego na odbiorniku, tak jak przewidywano, wzrosła o około 15%,
natomiast amplituda napięcia mierzona względem punktu środkowego jest bliska 20 V, czyli
połowie napięcia zasilania. Oznacza to, że modulacja THIPWM, w tym wypadku, maksymalnie
wykorzystuje źródło zasilania.

67
6 Podsumowanie i wnioski

Podsumowując, udało się wykonać wszystkie założone cele. W używanym przeze mnie
mikrokontrolerze udało się zaimplementować 2 metody rozruchu silnika indukcyjnego oraz
metodę modulacji pozwalającą na zwiększenie napięcia fazowego. Co więcej, praca zgłębiła
zagadnienie sterowania zorientowanego polowo od strony teoretycznej. Zaimplementowane
metody przetestowane zostały na dwóch różnych silnikach asynchronicznych, co pozwoliło na
sprawdzenie ich w różnych warunkach pracy. Dzięki sporej możliwości zmiany parametrów
rozruchu, metody mogą być implementowane w innych maszynach i przemiennikach
częstotliwości, i pozwala to na dalszy rozwój projektu, przy braku ingerencji w kodzie
programistycznym. Do połączenia mikrokontrolera z przemiennikiem częstotliwości stworzona
została płytka, która może posłużyć w przyszłości do stworzenia stanowiska dydaktycznego,
związanego z nauką sterowania falownika przy pomocy użytej przeze mnie płytki Discovery.
Warto również pomyśleć nad implementacją nowych metod, takich jak regulacja prędkości
przy stałym stosunku U/f, w przypadku gdy dostępny byłby przemiennik częstotliwości
pozwalający na zwracanie energii do sieci.

68
7 Bibliografia
[ „http://www.ime.pw.edu.pl/zme/pub/bienkow/mpsi99.pdf,” [Online].
1]
[ „http://portalnarzedzi.pl/artykul/krotka-historia-elektrycznego-silnika/,”
2] [Online].
[ „http://silnikielektryczne.prv.pl/html/asynchroniczne.html,” [Online].
3]
[ „http://www.ee.pw.edu.pl/~merchyy/,” [Online].
4]
[ „http://www.bezel.com.pl/index.php/maszyny-elektryczne/maszyny-
5] indukcyjne,” [Online].
[ „http://slideplayer.pl/slide/86322/,” [Online].
6]
[ „http://www.old.imnipe.pwr.wroc.pl/znemiap/dydaktyka/lan/instrukcja_automat
7] yka_napedu.pdf,” [Online].
[ „http://automatykaonline.pl/Artykuly/Technika-napedowa/falowniki-z-funkcja-
8] zwrotu-energii-do-sieci,” [Online].
[ J. T. M. Marian P. Kaźmierkowski, Wprowadzenie do elektroniki i
9] energoelektroniki, Warszawa: Oficyna Wydawnicza Politechniki Warszawskiej, 2005.
[ „http://www.imnipe.pwr.wroc.pl/files/prv/id35/zn/GT/Naped%20Elektryczny%
10] 20-%20Mechatronika/Instrukcje/Badanie%20ukladow%20modulacji%20PWM%20-
%20instrukcja.pdf,” [Online].
[ „http://www.ee.pw.edu.pl/~jrabkows/TP_W7.pdf,” [Online].
11]
[ „http://www.isep.pw.edu.pl/icg/vlab/pol/metody.html,” [Online].
12]
[ „https://forbot.pl/blog/kurs-stm32-f4-1-czas-poznac-hal-spis-tresci-kursu-
13] id14114,” [Online].
[ „http://www.komel.katowice.pl/ZRODLA/FULL/113/ref_03.pdf,” [Online].
14]
[ „https://pl.wikipedia.org/wiki/Transformacja_Clarka_i_Parka,” [Online].
15]

69
[ „https://cdn.pg.edu.pl/documents/184045/282792/udof.pdf,” [Online].
16]
[ „http://www.ti.com/lit/an/sprabp8/sprabp8.pdf,” [Online].
17]
[ „http://microchipdeveloper.com/pwr3101:pwm-edge-center-aligned-modes,”
18] [Online].
[ „http://www.st.com/content/ccc/resource/technical/document/application_note/
19] 1a/d5/a5/cd/98/4e/47/76/DM00080497.pdf/files/DM00080497.pdf/jcr:content/translati
ons/en.DM00080497.pdf,” [Online].
[ „https://elektronikab2b.pl/biznes/2189-3-fazowy-uklad-zasilajacy-z-
20] rownomiernym-podzialem-mocy#.Wm9AdqjiaUk,” [Online].
[ „https://ea.elportal.pl/diody.html,” [Online].
21]
[ „http://www.old.imnipe.pwr.wroc.pl/zme/zielinski/ELEKTROTECH%205.pdf,
22] ” [Online].
[ „https://botland.com.pl/stm32/3563-stm32f411e-disco-discovery-
23] stm32f411ediscovery.html,” [Online].
[ „https://eia.pg.edu.pl/documents/184045/282792/udof2.pdf,” [Online].
24]
[ „https://www.eal.ei.tum.de/fileadmin/tueieal/www/courses/PE/tutorial/2013-
25] 2014-W/07_PWM.pdf,” [Online].

70
8 Spis obrazów

Rysunek 1 Schemat ideowy budowy silnika indukcyjnego [4]...................................... 7


Rysunek 2 Schemat ideowy budowy wirnika pierścieniowego [6] ................................ 8
Rysunek 3 Schemat ideowy budowy klatki wirnika klatkowego [3] ............................. 8
Rysunek 4 Charakterystyka mechaniczna silnika indukcyjnego [7] ............................ 10
Rysunek 5 Transfer energii przy pracy hamulcowej .................................................... 10
Rysunek 6 Transfer energii przy pracy silnikowej ....................................................... 11
Rysunek 7 Transfer energii przy pracy prądnicowej .................................................... 11
Rysunek 8 Ideowy schemat elektryczny przemiennika częstotliwości [8] .................. 13
Rysunek 9 Ideowy schemat elektryczny falownika 3-fazowego [9] ............................ 13
Rysunek 10 Możliwe stany falownika wyrażone za pomocą wektorów [10] .............. 15
Rysunek 11 Przebiegi napięć w falowniku [11] ........................................................... 16
Rysunek 12 Modulacja sinusoidalna PWM [10] .......................................................... 17
Rysunek 13 Schemat blokowy modulacji sinusoidalnej PWM [12] ............................ 18
Rysunek 14 Przebiegi modulujące w modulacji THIPWM ......................................... 19
Rysunek 15 Schemat blokowy modulacji THIPWM [12] ........................................... 19
Rysunek 16 Płytka rozwojowa Discovery [13] ............................................................ 20
Rysunek 17 Zdjęcie interfejsu programu STM32CubeMX ......................................... 21
Rysunek 18 Graficzna interpretacja transformacji Clarka [14] .................................... 23
Rysunek 19 3-osiowy układ współrzędnych nałożony na przekrój stojana [15] ......... 24
Rysunek 20 Graficzna interpretacja transformacji Parka [7] ....................................... 25
Rysunek 21 Podział metod sterowania silnikiem indukcyjnym [7] ............................. 26
Rysunek 22 Przykładowa charakterystyka sterowania silnikiem indukcyjnym ........... 27
Rysunek 23 Charakterystyki mechaniczne silnika indukcyjnego przy sterowaniu U/f =
const ......................................................................................................................................... 27
Rysunek 24 Charakterystyki mechaniczne silnika indukcyjnego przy różnych
napięciach zasilania .................................................................................................................. 28
Rysunek 25 Idea sterowania FOC wyrażona w kartezjańskim układzie współrzędnych
[7] ............................................................................................................................................. 30
Rysunek 26 Schemat blokowy silnika indukcyjnego przy sterowaniu FOC [7] .......... 30
Rysunek 27 Schemat blokowy sterowania bezpośredniego FOC [7] .......................... 31
Rysunek 28 Schemat blokowy sterowania pośredniego FOC [7] ................................ 31
Rysunek 29 Idea generowania sygnałów PWM [18] ................................................... 34
Rysunek 30 Tryb liczenia Timera2 [18] ....................................................................... 35
Rysunek 31 Wejścia typu break input [19] .................................................................. 38
71
Rysunek 32 Schemat blokowy opisujące funkcję Transform ...................................... 41
Rysunek 33 Trajektoria wektora w nieruchomym układzie współrzędnych przy
rozruchu soft-start .................................................................................................................... 42
Rysunek 34 Charakterystyka sterowania przy rozruchu soft-start ............................... 43
Rysunek 35 Trajektoria wektora w nieruchomym układzie współrzędnych przy
rozruchu U/f = const ................................................................................................................. 44
Rysunek 36 Charakterystyka sterowania przy rozruchu U/f = const ........................... 45
Rysunek 37 Wyszukiwanie środkowej sinusoidy [20] ................................................. 45
Rysunek 38 Schemat blokowy funkcji Spr2 ................................................................ 47
Rysunek 39 Przebiegi napięć generowanych na wyjściach OCx ................................. 48
Rysunek 40 3-fazowa sinusoida [20] ........................................................................... 49
Rysunek 41 Najkrótszy czas impulsu PWM ................................................................ 49
Rysunek 42 Przebiegi napięć generowanych na wyjściach OCx ................................. 50
Rysunek 43 Zmierzenie ............................................................................................... 51
Rysunek 44 Przebiegi napięć generowanych na wyjściach OCx po wciśnięciu przycisku
Start .......................................................................................................................................... 52
Rysunek 45 Przebiegi napięć generowanych na wyjściach OCx po wciśnięciu przycisku
Stop........................................................................................................................................... 52
Rysunek 46 Płytka stworzona na potrzeby połączenia mikrokontrolera z falownikiem
.................................................................................................................................................. 53
Rysunek 47 Przebiegi napięć – generowanego na wyjściu OCx oraz fazowego z filtrem
RC............................................................................................................................................. 54
Rysunek 48 Przebiegi napięcia i prądu przy rozruchu typu U/f = const, przy czasie
rozruchu równym 2 s ................................................................................................................ 55
Rysunek 49 Przebiegi napięcia i prądu przy rozruchu typu U/f = const, przy czasie
rozruchu równym 9 s ................................................................................................................ 56
Rysunek 50 Przebiegi napięcia i prądu przy rozruchu typu U/f = const, przy czasie
rozruchu równym 4 s ................................................................................................................ 57
Rysunek 51 Przebiegi napięcia i prądu przy rozruchu typu U/f = const przy
znamionowym strumieniu magnetycznym ............................................................................... 58
Rysunek 52 Przebiegi napięcia i prądu przy rozruchu typu soft-start przy czasie
rozruchu równym 4 s ................................................................................................................ 59
Rysunek 53 Przebiegi napięcia i prądu przy rozruchu typu soft-start przy czasie
rozruchu równym 1,5 s ............................................................................................................. 60
Rysunek 54 Wyłączenie i ponowne uruchomienie rozruchu typu soft-start ................ 61

72
Rysunek 55 Czas komutacji pomiędzy wysłaniem impulsu sterującego a zmianą
napięcia fazowego .................................................................................................................... 62
Rysunek 56 Czas komutacji pomiędzy wysłaniem impulsu sterującego a zmianą
napięcia fazowego .................................................................................................................... 62
Rysunek 57 Jedna z gałęzi falownika [9] ..................................................................... 63
Rysunek 58 Napięcie fazowe na filtrze RC przy modulacji THIPWM ....................... 64
Rysunek 59 Napięcie fazowe na filtrze RC przy modulacji SPWM ............................ 64
Rysunek 60 Napięcie na filtrze RC odniesione względem punktu środkowego falownika
.................................................................................................................................................. 65
Rysunek 61 Napięcie fazowe na filtrze RC po podniesieniu zadanego napięcia o 15%
przy modulacji THIPWM......................................................................................................... 66
Rysunek 62 Napięcie na filtrze RC odniesione względem punktu środkowego falownika
po podniesieniu zadanego napięcia o 15% ............................................................................... 66

73

You might also like