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

Atmega16 - PWM zależne od ADC

archaniol40 15 Lut 2013 22:23 1104 5
  • #1 15 Lut 2013 22:23
    archaniol40
    Poziom 21  

    Witam.
    Proszę kolegów o podpowiedź jak zrobić regulator pwm od wartości zadanej napięcia.
    Powiedzmy 15V zadajemy, PWM na wyjściu-sterujemy tym nasz obiekt, z którego mamy 15V. Obciążamy obiekt spada napięcie na wyjściu i zwiększa się wypełnienie.
    Co objawia się wyrównaniem napięcia na wyjściu układu.
    Przepraszam za moje zawiłe wytłumaczenie.

    Z góry dziękuję za podpowiedzi.

    0 5
  • #2 15 Lut 2013 22:28
    piotrva
    Moderator na urlopie...

    Ale jakie jest Twoje konkretne pytanie?
    Pomijając odpowiedni układ wejścia/wyjścia (czyli odpowiednie elementy wykonawcze i np. dzielnik napięciowy do pomiaru napięcia) za pomocą ADC mierzysz napięcie i potem jeśli jest wyższe od zadanego to zmniejszasz PWM, jeśli niższe to zwiększasz PWM. Można jeszcze zaimplementować regulator PID, żeby wszystko działało jak należy.

    0
  • #3 15 Lut 2013 22:37
    archaniol40
    Poziom 21  

    Wiem jak zrealizować ADC i PWM. Nie wiem jak to połączyć w środku. Jaki algorytm można było by łatwo zaimplementować. Wiem jak zbudować woltomierz wystarczająco dokładny, ale nie wiem w jaki sposób kompensować to napięcie.

    0
  • #4 15 Lut 2013 22:43
    piotrva
    Moderator na urlopie...

    No napisałem Ci 2 opcje:
    1. Zastosować algorytm PID, tu nieco materiałów: http://igor.chudov.com/manuals/Servo-Tuning/PID-without-a-PhD.pdf
    2. Zastosować algorytm "łopatologiczny":

    Code:

    U=pomiar_ADC();
    if(U>U_zadane+histereza)PWM--;
    if(U<U_zadane-histereza)PWM++;
    delay(czas);

    0
  • #5 15 Lut 2013 22:45
    BlueDraco
    Specjalista - Mikrokontrolery

    No właśnie Ci człowiek napisał. W najprostszym przypadku mierzysz, i jeśli masz za mało, to zwiększasz wypełnienie, jeśli za dużo - zmniejszasz. Niestety dalej musisz się zmierzyć z teorią regulacji - bezwładność, stabilność. Rozwiązanie standardowe - to PID. Do niektórych prostszych przypadków wystarcza prosty filtr dolnoprzepustowy wartości mierzonej zrobiony w oprogramowaniu i powolna inkrementacja/dekrementacja wypełnienia - czasem to zadziała.

    0
  • #6 15 Lut 2013 22:49
    piotrva
    Moderator na urlopie...

    No właśnie - parametry układu (zarówno mojego algorytmu łopatologicznego jak i PID) trzeba dobrać w zależności od tego CZYM sterujesz i jak szybko układ ma reagować na zmiany. Do grzałki np. zmiany mogą być wolniejsze, ale w line-followerze już raczej zależy nam na czasie, no nie?

    0