Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Generowanie przebiegów do falownika 3-fazowego, prośba o sprawdzenie

08 Sie 2015 12:04 1671 18
  • Poziom 15  
    Witam.

    Jestem w trakcie budowania amatorskiego falownika trójfazowego jednak dotknął mnie problem generacji trzech przebiegów sinusoidalnych. Prawdopodobnie mój algorytm generacji jest o kant rozbić. Dlatego zwracam się do Was z prośbą o jego weryfikacje, ewentualne naprowadzenie na dobrą drogę.

    Sprzęt który generuje przebiegi to Atmega 128 taktowany zegarem 12MHz
    Na chwilę obecną algorytm wygląda tak: Mam trzy tablice sinusa za cały okres wygenerowane w Excelu Każda z tablic ma przesuniętą fazę względem siebie o 120 stopni, oraz składa się z 36 próbek. Próbki są przeskalowane względem 8 bitowego rejestru OCR i dla PWM = 0% próbka ma wartość 0 dla PWM 50% próbka przyjmuje wartość 127 itd. Timer 1 ładuje próbki do rejestrów OCR3A, OCR3B, OCR3C z tablic Zakładając częstotliwość wyjściową 50Hz, częstotliwość timera jest równa 36 próbek * 50Hz = 1800Hz.
    Timer 3 jest ustawiony w trybie korekcji fazy - 8bit , oraz częstotliwości 2930Hz

    Czy takie podejście jest poprawne ?
  • Poziom 25  
    1800Hz to możesz spróbować programowo. Potrzebujesz przecież 6 kanałów ponieważ trzema nie zrobisz martwych czasów.

    Proponuję zmianę MCU np na ARM które mają liczniki z odpowiednią ilość kanałów PWM, wyjściami komplementarnymi i obsługa martwych czasów.

    ATmega ledwo wyrobi z samym generowaniem sygnałów a przecież trzeba tym jeszcze jakoś sterować.
  • Poziom 15  
    To fakt, że brakuje czasów martwych czy wyjść komplementarnych, ale te kwestie da się obejść. Natomiast w tej chwili bardziej rozchodzi mi się o kwestie programowe czyli sam algorytm.

    el2010tmp Piszesz, że atmega ledwo wyrobi się z generowaniem sygnałów. W moim algorytmie to ona praktycznie nic nie robi bo wszystko dzieje się w Timerach, stąd mój wątek o algorytm bo każdy pisze o jakimś obciążeniu procesora, no ale co on ma tam robić ?
  • Poziom 43  
    Podejście jest poprawne, a czasy martwe może wygenerować zewnętrzny układ np. IR2104.
    Natomiast trochę nadmiarowe jest używanie 3 tablic. Wystarczy jedna i używanie innego indeksu podczas odczytu dla każdej z faz (index, index+12 i index+24 (i oczywiście przewijanie jak przekroczy 36, ale to i tak musisz mieć więc to nie problem)).
    Choć wersja z trzeba tablicami ma też zaletę: na pewno będzie najszybsza. A tablice są małe więc użycie trzech zamiast jednej niewiele tutaj zwiększa zużycie FLASHa.
  • Poziom 15  
    Ogólnie rzecz biorąc mam cały zestaw potrzebny do zakręcenia silnikiem, tj część sterująca czyli atmega 128 + układ na bramkach 74HC, którego zadaniem jest generowanie czasów martwych oraz generowanie 6 sygnałów PWM oraz sam mostek czyli 6 tranzystorów + drivery HCPL - 3120

    Algorytm, który opisałem w pierwszym poście owszem kręci silnikiem, ale wydaje mi się, że moment obrotowy nie jest stały, chwilowo brak algorytmu boost, ale mimo wszystko między 30Hz a 50Hz nie powinno być różnicy w momencie obrotowym , a u mnie widać ten defekt. Kolejna sprawa jest taka, że mostek tranzystorowy(tj 6 tranzystorów) zasilany jest szeregowo z żarówką 75W, to jest dodatkowe zabezpieczenie oprócz bezpiecznika 3A, który to pewnie zadziała, jak już wypali mi ścieżki na PCB w razie jakiś problemów z algorytmem. Przechodząc do sedna problemu:

    Obiekt badany to silnik 16W 380V gwiazda czyli nie osiągnę pełnej mocy na zasilaniu z 230V AC, przypomnę, że falownik, który buduje to 230V AC (325VDC) -> 3 fazy i co ciekawe każda zmiana tablic np z 36 próbek na 120 generuje inne świecenie żarówki. Podobna sprawa ma się podczas zmiany częstotliwości PWM. Ustawiając częstotliwość PWM na 11719Hz praktycznie cała moc idzie w żarówkę. Stąd zwróciłem się do Was o pomoc, by być może algorytm sterowania jest zły, a być może to generator czasów martwych jest trefny i prądy skrośne sprawiają, że żarówka świeci się mocniej niż powinna.
  • Poziom 43  
    Ja stawiam na trefny układ generujący czasy martwe. Może nie są one tak martwe jak powinny i płyną jakieś prądy Shoot-Thtu. Stąd wzrost częstotliwości daje zwiększenie prądu zwarcia a więc i mocniejsze świecenie żarówki.
  • Poziom 15  
    Panowie a dało by się zaadaptować układ IR2104 tak aby jego wyjście pracowało na wspólnej masie bez bootstrapu ? Czyli schemat podłączenia wyglądał by tak:

    Przebieg PWM -> IR2104 -> 2 przebiegi z dead time (wspólna masa)-> mostek tranzystorowy
  • Poziom 43  
    Dało by.
    Ale po co tak kombinować?
    Pokaż schemat.
    Już nie jeden robił 10 przeróbek i szedł w koszty zamawiając kolejne płytki, zamiast po prostu pokazać schemat przed zamówieniem pierwszej poprawionej płytki (jednocześnie mogącej być ostatnią, gdyby tylko pokazał schemat w celu weryfikacji i poprawienia).
  • Poziom 15  
    Algorytm sterowania opisałem, mostek wykonawczy to same tranzystory, drivery do nich oraz jeden schmiit, który pełni rolę bufora i tyle jest na tej PCB. Natomiast układ do generacji czasów martwych wygląda tak:

    Generowanie przebiegów do falownika 3-fazowego, prośba o sprawdzenie

    Kiedyś symulowałem ten układ i niby to działało, ale czy faktycznie działa to już inna sprawa.
  • Poziom 43  
    Zmierz oscyloskopem.
    Jak nie masz to możesz też sprawdzić jak się zmienia działanie po zmianie rezystorów na większe (czy żarówka ciemniej wtedy świeci).
  • Poziom 15  
    Najśmieszniejsze jest to, że gdy zmieniłem rezystory na 330 omów to ledwo można zauważyć ,że przez żarówkę płynie jakiś prąd. Gdy rezystory są większe od 660 omów to śmieci mocniej. Wniosek jest taki, że mniej = lepiej, ale dlaczego ?

    Spotkaliście się z takim określeniem jak trzecia harmoniczna dodana do przebiegu sin ?
  • Poziom 43  
    paladyn napisał:
    Najśmieszniejsze jest to, że gdy zmieniłem rezystory na 330 omów to ledwo można zauważyć ,że przez żarówkę płynie jakiś prąd. Gdy rezystory są większe od 660 omów to śmieci mocniej. Wniosek jest taki, że mniej = lepiej, ale dlaczego ?

    No to dość dziwne.

    paladyn napisał:
    Spotkaliście się z takim określeniem jak trzecia harmoniczna dodana do przebiegu sin ?

    No oczywiście. Z dodaną piątą, czy siódmą też :D
  • Poziom 15  
    OK, ale co to daje ?
  • Poziom 43  
    Kurcza, chciałem Cię zmusić do samodzielnego myślenia. Ale nie mam siły.
    Bo nie wyraziłeś się precyzyjnie. Trzeba było napisać że chodzi o dodawanie trzeciej harmonicznej do sinusa w falowniku. W jakimś celu. I wtedy by coś można myśleć.
    A tak zadałeś pytanie jak by chodziło ogólnie. Czyli o nic konkretnego.
    No ale dobra, powiem Ci :D
    Chodzi o to żeby uzyskać większe napięcie na wyjściu z tego samego napięcia na szynie HVDC.
    Bo gdy na sinusie jedna faza jest na maksimum napięcia, to pozostałe są na jakichś -1/2. Więc napięcie międzyfazowe wynosi tylko 1,5 HVDC.
    A można by zmodyfikować przebiegi żeby w momencie jak jedna faza będzie na maksimum to pozostałe żeby miały więcej niż -1/2. Ale oczywiście chodzi o takie modyfikacje żeby kształt napięcia międzyfazowego się nie zmienił.
    Napięcia fazowe się zmienią (nie będą to już sinusy) ale międzyfazowe dalej będą sinusami tyle że maksymalne napięcie to nie będzie 1.5 HVDC ale np. jakieś 1.7 HVDC.
    I jedną z takich metod modyfikacji jest właśnie dodanie trzeciej harmonicznej.
    Dobrze to widać tutaj:
    http://www.zilog.com/force_download.php?filep...wdlpHOWpjeTloY0hCdWIzUmxjeTlCVGpBek5qa3VjR1Jt
    Na stornie 3.
    Pierwsze kółko (Time1) gdyby je tylko obracać to by był zwykły sinus.
    Ale wtedy jak jedna strzałka dotyka +VBUS albo -VBUS to pozostałe są daleko od tych szyn.
    A dodanie trzeciej harmonicznej powoduje że to kółko nie tylko się obraca ale i przesuwa w górę i dół.
    Czyli na tym Time 1 można by obniżyć kółko. I wtedy będzie można wydłużyć wszystkie strzałki.
    Na kolejnych kółkach trochę źle to narysowali ale tak właśnie to wygląda (że poza obracaniem trzeba też przesuwać w górę i w dół).
    Tam akurat nie zastosowali trzeciej harmonicznej tylko taki przebieg z ostrym końcem.
    To się nazywa Space Vector. Ale idea ta sama jak z trzecią harmoniczną.
  • Poziom 15  
    Dodałem trzecią harmoniczną i faktycznie można zauważyć większy moment na wale. A jak by wygenerować przebieg trapezoidalny było by lepiej ?
    Tylko zastanawia mnie czy jest możliwa taka sytuacja, że silnik na 380V zasilany z falownika jak wyżej może mieć nieliniowy moment obrotowy?
  • Poziom 43  
    Trapez się nie nadaje do sterowania takim silnikiem.
    Co to znaczy nieliniowy moment obrotowy?
  • Poziom 15  
    Czuć różnicę w momencie obrotowym przy 10Hz a 50Hz. Algorytm V/f = const miał zapewnić stały moment obrotowy w całym zakresie sterowania. Moc będzie ulegała zmianie z racji innej prędkości obrotowej, ale moment miał pozostać bez zmian, czy nie tak ?
  • Poziom 26  
    Algorytm V/f nie zapewnia stałego momentu w całym zakresie prędkości z założenia. Ten algorytm zapewnia znikomy moment przy rozruchu. Konieczna jest stabilizacja strumienia głównego oraz kontrola poślizgu aby uzyskać duży moment przy zerowej prędkości obrotowej.
    Dlatego fabryczne falowniki posiadają procesory DSP w celu kontroli tych parametrów, sprzężenie zwrotne (tacho silnika) oraz realizowane sprzętowo PWM, tzn. impulsy PWM są generowane bez ingerencji MCU. Kolega zbudował falownik a nie wie takich podstaw? Warto poczytać, od czego zależy moment w silniku asynchronicznym.
    Nawet Atmel produkuje MCU do takich zastosowań (At90PWM)

    Czy Kolega czytał o układzie MC3PHAC, generującym przebieg falownika bez konieczności programowania timerów?

    Producenci na swoich stronach podają gotowe biblioteki i konfiguracje generujące przebieg 3 fazowy. Dlaczego Kolega nie chce skorzystać z doświadczenia i wiedzy mądrych ludzi? Naprawdę Atmega128 jest bardzo złym wyborem do tej aplikacji. Jedno zawieszenie procka i Kolega przy tej mocy ma fajerwerki z modułu IGBT.

    Niech Kolega poczyta tu:
    http://www.emcu.it/STM32/STM32-MotorControl/STM32-MotorControl.html
    http://akpc806a.blogspot.com/2011/12/variable-frequency-scalar-control-for-3.html
    http://arm-stm.blogspot.com/2015/01/3-phase-sinusoidal-pulse-width.html

    https://my.st.com/public/STe2ecommunities/mcu...4902C3CDE46A77F0FFD06506F5B¤tviews=3653
  • Poziom 15  
    Trochę poczytałem, ale wiadomo człowiek wszystkiego nie wie. At90PWM3 kojarzę w zasadzie taka atmega na sterydach bo ma 3 komplementarne PWM oraz czasy martwe. PC3PHAC również znam, aczkolwiek już chyba nie do kupienia.
    Cytat:
    Producenci na swoich stronach podają gotowe biblioteki i konfiguracje generujące przebieg 3 fazowy. Dlaczego Kolega nie chce skorzystać z doświadczenia i wiedzy mądrych ludzi?
    Powiem szczerze, że bardzo ciężko mi analizować takie biblioteki, pewnie dlatego, że brakuje mi jeszcze wiedzy a wejść szczebel wyżej w takim temacie jak falowniki to ciężki kawałek chleba. Mimo wszystko próbuje jak mogę. Dziękuje za linki, chętnie poczytam.