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

AVR - Zasilacz z mikrokontrolerem: PWM czy przetwornik D/A do sterowania?

PGrzesiek 08 Maj 2014 08:13 2355 9
REKLAMA
  • #1 13580907
    PGrzesiek
    Poziom 10  
    Posty: 30
    Witam,
    chcę zrobić zasilacz sterowany mikrokontrolerem AVR.
    Założenie jest takie, aby nie używać do tego żadnych układów typu uA723 itp.

    Zabezpieczenie przeciwzwarciowe (nie wiem czy akurat to jest dobrym pomysłem, żeby realizować na uPC?), ograniczenie prądowe, sterowanie tranzystorem mocy (regulacja napięcia) i wszystko inne miałoby odbywać się przy użyciu uPC.

    Tylko teraz tak, z AVR nie za bardzo (chyba) posteruję tranzystorem w sposób liniowy. Pozostaje PWM lub przetwornik D/A - dobrze myślę?

    Czy PWM jest dobrym pomysłem do tego typu zastosowania? Coś na zasadzie przetwornicy z mosfetem. Jakie wady/zalety będą z tego rozwiązania?

    Jeżeli przetwornik D/A to jaki wybrać? Ma to jakieś znaczenie, czy obojętne?

    "Początek zasilacza" będzie standardowy, tzn. transformator, gretz, filtr a za nimi elektronika sterująca i wykonawcza a na końcu filtracja.

    Regulacja napięcia w zakresie 0...20V, prąd maks. 5A.

    Pozdrawiam,
    Grzegorz.
  • REKLAMA
  • #2 13580916
    Steryd3
    Poziom 33  
    Posty: 1641
    Pomógł: 241
    Ocena: 301
    Wszystko zależy jakie parametry napięć oraz prądów chcesz uzyskać budując taki zasilacz. Jeżeli chcesz zbudować zasilacz "tyle o ile"- czyli co najwyżej średnio słaby, to to jest całkiem dobra droga.
    Obawiam się jednak, że Twoja koncepcja nawet nie zbliży się parametrami szumowymi i tętnieniami do zasilacza opartego o układ uA723 który chcesz wyeliminować.

    Mikrokontroler -a zwłaszcza stosunkowy wolny mikrokontroler jakim jest AVR, nie jest wstanie odpowiednio szybko zareagować na zmiany napięcia na wyjściu. Dodatkowa kwestia to kwestia rozdzielczości ( PWM czy DAC) którą będzie sterowany element wykonawczy (tranzystor).
  • REKLAMA
  • #3 13580955
    Futrzaczek

    VIP Zasłużony dla elektroda
    Posty: 7824
    Pomógł: 538
    Ocena: 521
    PGrzesiek napisał:
    Zabezpieczenie przeciwzwarciowe (nie wiem czy akurat to jest dobrym pomysłem, żeby realizować na uPC?)

    To jest bardzo zły pomysł. Mikrokontoler jest zbyt wolny, tranzystory mocy lub diody w prostowniku zdążą eksplodować.

    PGrzesiek napisał:
    Jeżeli przetwornik D/A to jaki wybrać? Ma to jakieś znaczenie, czy obojętne?

    Rozdzielczość chociażby...

    PGrzesiek napisał:
    Założenie jest takie, aby nie używać do tego żadnych układów typu uA723 itp.

    Sprzęgnij mikrokontroler z układami analogowymi. To da Ci wygodę nastaw i szybkość zasilacza.
    Przetwornikiem C/A generuj napięcia podawane na komparatory, a potem przetwornikami A/C odczytuj wartość prądu i napięcia do pokazania na wyświetlaczu.
    Konto firmowe:
    F-TECH Michał Kurzela
    Zacisze 20B, Serock, 05-140 | Strona WWW: https://elektronika.top/
  • #4 13581758
    jarek_lnx
    Poziom 43  
    Posty: 22617
    Pomógł: 4179
    Ocena: 6058
    Rozwiązanie analogowe jest lepsze od cyfrowego, lepsza szybkość reakcji na zmianę obciążenia, lepsza dokładność regulacji i tłumienie tętnień, mniejsze szumy, lepsza niezawodność i upraszcza się program w uC, nie wiem dlaczego ktokolwiek chciał by to robić cyfrowo?
    Zamiast 723 lepiej dać dwa wzmacniacze operacyjne i źródło napięcia odniesienia.
  • REKLAMA
  • #5 13581862
    korrus666
    Poziom 40  
    Posty: 5219
    Pomógł: 584
    Ocena: 476
    Źródłem napięcia odniesienia może być DAC sterowany z procesora. Takie rozwiązanie ma kilka zalet poz oczywistymi wadami oczywiście.
    1. Można sobie zapamiętać kilka najczęściej używanych napięć i mieć szybkie i wygodne ustawianie.
    2. Można programowo ograniczyć napięcie lub zablokować regulację żeby przypadkiem nie podkręcić sobie napięcia i nie uszkodzić układu.
    Układ wykonawczy zostaje szybki analogowy a sterowanie wygodne cyfrowe. Wadą jest oczywiście ogranoczona rozdzielczość ale w większości przypadków 12 bitowy DAC w zupełności wystarczy. Przy zasilaczu 40 V można uzyskać rozdzielczość 10mV. Z dokładnością może być różnie a i DAC ma pewną nieliniowość. Niemniej jednak wygoda użytkowania jest większa.
  • #6 13582398
    miszaa88
    Poziom 15  
    Posty: 368
    Pomógł: 9
    Ocena: 9
    Mogą koledzy wytłumaczyć dlaczego mikroprocesor jest za wolny jako zabezpieczenie przeciwzwarciowe? Jakich czasów reakcji, byście tutaj oczekiwali? Poza tym przecież tętnienia napięcia zależą głównie od częstotliwości.
  • #7 13583020
    CosteC
    Poziom 39  
    Posty: 5302
    Pomógł: 399
    Ocena: 1634
    Aktualnie w moich zasilaczach czas reakcji na zwarcie jest rzędu 100ns. Ale to układy analogowe lub mieszane. Masz słabe szanse zrobić coś podobnego na mikrokontolerze.
    ATmega128 ma ADC z czasem konwersji 13us min. pełną dokładność ma od 67us. To przy założeniu że ADC nic nie robi poza czekaniem na zwarcie. Jak chcesz multipleksować będzie dużo gorzej.

    Do tego dolicz obsługę zwarcia w programie. Jeśli kilka kiloherców pasma w zasilaczu cię satysfakcjonuje - to OK. ale 723 ma kilkadziesiąt kiloherców pasma i będzie zwyczajnie szybszym (lepiej reagującym) zasilaczem niż taki na procesorze.

    Jeśli ci nie przeszkadza zasilacz który taki czas reakcji - proszę bardzo - buduj.
  • #8 13583284
    jarek_lnx
    Poziom 43  
    Posty: 22617
    Pomógł: 4179
    Ocena: 6058
    Przyjmując bardziej realistyczną wersję procesor będzie musiał bez przerw czy większych opóźnień wykonywać spory kawałek kodu odpowiedzialny za stabilizację prądu i napięcia czyli:
    -przetworzyć dane z co najmniej dwóch kanałów ADC (prąd i napięcie)
    -wykonać kod regulatorów (mnożenia sumowania) niby niewiele ale na 8bit AVR to też trwa.
    -porównać wartości z regulatorów i wysłać dane do DAC'a
    potem musi zostać choć trochę czasu na wykonywanie reszty programu (interfejs użytkownika itp)
    Jak szybko uda ci się to wykonać? kiedyś liczyłem że czas ten bardzo łatwo dochodzi do ms. (oczywiście jest tu pole do optymalizacji ale jak się zaczyna od 1000 razy gorszych parametrów dynamicznych trudno liczyć na sukces).

    Jeśli zwarcie nastąpi w najbardziej niekorzystnej chwili -cały ten kod będzie musiał się wykonać, zanim procesor zmniejszy/odetnie prąd.

    A i jeśli porównujemy z zasilaczem laboratoryjnym to tam jest stabilizacja prądu, robiąc prosty i szybki warunek jeśli większe to wyłącz uzyskasz generator relaksacyjny, więc lepiej zrobić regulator cyfrowy, a ten do ustabilizowania prądu będzie wymagał kilku(nastu) iteracji a to trwa długo.

    Dlaczego napisałem o tętnieniach bo to przykład na to że nie pobijesz analogówki rozdzielczością, zasilacz analogowy ma tętnienia <1mVpp (na kondensatorze nawet kilka V) żeby procesor mógł je zniwelować musi mieć najpierw przetworniki którymi da radę je zmierzyć 20V/1mV=20000 czyli 15bit, na wewnętrznym przetworniku 10bit "śmieci" o poziomie 20mV będą "nieusuwalne".

    Cytat:
    Poza tym przecież tętnienia napięcia zależą głównie od częstotliwości.
    Tętnienia w zasilaczu tłumi stabilizator, zwykły LM317 daje 80dB czyli 1V stłumi do 100µV, a przy okazji odpowiedź impulsowa LM317 mieści się w 5µs,

    Wygląda na to ze żeby pobić stabilizator za złotówkę cyfrową techniką potrzebujesz szybkich 18bit przetworników i procesora DSP (;
  • REKLAMA
  • #9 13583485
    Futrzaczek

    VIP Zasłużony dla elektroda
    Posty: 7824
    Pomógł: 538
    Ocena: 521
    Niestety, ale układy analogowe są szybsze (w większości zastosowań, nie mówię o patologiach) i tego się nie pobije.
    Część cyfrową można zaprząc do sterowania analogową, ale to układ analogowy powinien "trzymać łapę" na kluczowych elementach, jakimi są stabilizacja napięcia, prądu i zabezpieczenie nadprądowe.
    jarek_lnx napisał:
    Zamiast 723 lepiej dać dwa wzmacniacze operacyjne i źródło napięcia odniesienia.

    723 ma wzmacniacze operacyjne i bardzo dobre źródło napięcia odniesienia. Wadą tego źródła jest to, że ma rozrzuty produkcyjne, ale to można sobie skalibrować do konkretnego egzemplarza. Badałem niedawno 723 i jego stabilność w funkcji napięcia zasilania i temperatury jest niesamowita.
    Konto firmowe:
    F-TECH Michał Kurzela
    Zacisze 20B, Serock, 05-140 | Strona WWW: https://elektronika.top/
  • #10 13942707
    nsvinc
    Poziom 35  
    Posty: 2870
    Pomógł: 262
    Ocena: 88
    Cytat:
    Niestety, ale układy analogowe są szybsze (w większości zastosowań, nie mówię o patologiach) i tego się nie pobije.

    Sprzeciw. W układach analogowych kompensacja na tyle potrafi przyciąć pasmo sprzęzenia zwrotnego, że odpowiedź regulatora w większości przypadków nie przekracza 2/3fs w najlepszym przypadku.
    dyskusja
    Cyfrowy regulator w przeciwienstwie do analogowego, moze zawierać algorytmy fuzzy logic.

    Cytat:
    ale to układ analogowy powinien "trzymać łapę" na kluczowych elementach, jakimi są stabilizacja napięcia, prądu i zabezpieczenie nadprądowe.

    Cyfrowy układ radzi sobie równie dobrze, o ile detekcja sytuacji krytycznych jest zrealizowana analogowo (komparatory) a juz 'zdigitalizowany' wynik jest wprowadzany do procka w postaci przerwan.

    Konwertery na mikroklockach buduję od cca 5 lat i wiem, że magia analogowych kontrolerów wcale nie jest tak znacznie lepsza niz twardy cyfrowy algorytm. A i w większosci przypadków przegrywa z DSP.
    Wbrew pozorom, aby sterować głupim tranzystorem nie potrzeba BlackFin'a ani Cortex-M4F czy FPGA - wystarczy tez Cortex-M0+ w odpowiednio zaprojektowanym układzie, aby zasilacz po prostu spełniał swoją funkcję.

    Dodano po 6 [minuty]:

    Cytat:
    -przetworzyć dane z co najmniej dwóch kanałów ADC (prąd i napięcie)
    -wykonać kod regulatorów (mnożenia sumowania) niby niewiele ale na 8bit AVR to też trwa.
    -porównać wartości z regulatorów i wysłać dane do DAC'a

    Nope. Korzystając z DSC liczysz tylko czas S-H i konwersji ADC i wykonanie algorytmu regulatora. A DSC sam w sobie generuje sygnał sterujący tranzystorami.

    Cytat:
    Jak szybko uda ci się to wykonać? kiedyś liczyłem że czas ten bardzo łatwo dochodzi do ms.

    dsPIC33F16GS502, w aplikacji PFC i histerezowym regulatorem prądu w jednym cyklu w postaci PIDa - algorytm uwija się w mniej niz 30us. A w aplikacji PFC regulator napięcia chodzący szybciej niż 100Hz i tak nie ma racji bytu, więc rdzeń ma wakacje.

Podsumowanie tematu

✨ Dyskusja dotyczy budowy zasilacza sterowanego mikrokontrolerem AVR, z naciskiem na wybór metody regulacji napięcia: PWM czy przetwornik D/A. Uczestnicy podkreślają, że mikrokontrolery AVR mogą być zbyt wolne do efektywnego sterowania tranzystorami mocy, co może prowadzić do problemów z czasem reakcji na zmiany obciążenia. Wskazują na zalety układów analogowych, takich jak uA723, które oferują lepszą szybkość reakcji, dokładność regulacji oraz mniejsze szumy. Proponują również użycie DAC do wygodnego ustawiania napięcia, ale z ograniczoną rozdzielczością. Wskazują na konieczność sprzężenia mikrokontrolera z układami analogowymi dla lepszej wydajności i stabilności zasilacza.
Wygenerowane przez model językowy.
REKLAMA