logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

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

paladyn 08 Sie 2015 12:04 1914 18
  • #1 14906417
    paladyn
    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 ?
  • #2 14907436
    el2010tmp
    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ć.
  • #3 14907484
    paladyn
    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ć ?
  • #4 14908391
    Konto nie istnieje
    Poziom 1  
  • #5 14908565
    paladyn
    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.
  • #6 14908675
    Konto nie istnieje
    Poziom 1  
  • #7 14908874
    paladyn
    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
  • #8 14908890
    Konto nie istnieje
    Poziom 1  
  • #9 14908940
    paladyn
    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.
  • #10 14909071
    Konto nie istnieje
    Poziom 1  
  • #11 14909326
    paladyn
    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 ?
  • #12 14909516
    Konto nie istnieje
    Poziom 1  
  • #13 14909793
    paladyn
    Poziom 15  
    OK, ale co to daje ?
  • #14 14910308
    Konto nie istnieje
    Poziom 1  
  • #15 14912188
    paladyn
    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?
  • #16 14912225
    Konto nie istnieje
    Poziom 1  
  • #17 14912262
    paladyn
    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 ?
  • #18 14912755
    Pawel1812
    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
  • #19 14915250
    paladyn
    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.
REKLAMA