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

Próbkowanie napięcia "siekanego" sygnałem PWM 5 kH

michal2666 13 Lis 2008 17:20 1941 18
  • #1 13 Lis 2008 17:20
    michal2666
    Poziom 20  

    Witam !
    steruję grzałką prądu stałego poprzez przerywacz na tranzystorze IGBT na który podaję sygnał PWM o częstotliwości 5 kHz. Teraz chcę mierzyć wartość rms napięcia i prądu i tu pojawia się moje pytanie, czy jeśli rozpocznę próbkowanie w dowolnym momencie, wykonam powiedzmy 300 próbek (z odpowiednimi opóźnieniami tak by złapać cały okres trwający 0,2 ms) i uśrednie je to otrzymam poprawną wartość czy może konieczna jest synchronizacja z przebiegiem ? czy powinienem np. wykrywać rozpoczęcie narastania napięcia i dopiero wtedy rozpoczynać próbkowanie ?

    0 18
  • Arrow Multisolution Day
  • Pomocny post
    #2 13 Lis 2008 18:18
    dawid512
    Poziom 32  

    Twierdzenie o próbkowaniu mówi że... odsyłam do google.

    0
  • #3 13 Lis 2008 20:49
    michal2666
    Poziom 20  

    Dzięki wielkie, jakoś o tym nie pomyślałem :D ale mam jeszcze jedno pytanie: czy wie ktoś może ile czasu trwa obsługa instrukcji Getadc ?

    Dodano po 32 [minuty]:

    Pytam z tego względu, że będę na zmianę pobierał odpowiednie ilości próbek podczas obsługi przerwania następującego co 0,2s. chcę ten czas w większości wykorzystać na próbkowanie i tylko końcówkę na obliczenia, obsługę lcd i uart. Chcę obliczyć ile w tym czasie mogę zrobić próbek przy częstotliwości próbkowania zgodnej z w/w twierdzeniem, równej 10 kHz.

    0
  • #4 13 Lis 2008 21:03
    dawid512
    Poziom 32  

    Według symulatora ok. 0,00325ms.

    -1
  • #5 13 Lis 2008 23:06
    Dr.Vee
    VIP Zasłużony dla elektroda

    Jaki mikrokontroler? Jaka częstotliwość taktowania? Jaka częstotliwość taktowania przetwornika?

    Nie podałeś żadnych danych, ani w temacie, ani w poście, to nie spodziewaj się rzeczowej odpowiedzi.

    Tym bardziej dziwi, że Dawid512 na podstawie tak małej ilości danych potrafił dać tak precyzyjną odpowiedź :)

    Pozdrawiam,
    Dr.Vee

    0
  • Arrow Multisolution Day
  • #6 13 Lis 2008 23:10
    Freddie Chopin
    Specjalista - Mikrokontrolery
  • #7 14 Lis 2008 07:04
    michal2666
    Poziom 20  

    Eh.. tak to jest jak coś sie robi na szybko. Mikrokontroler to ATmega8 taktowany kwarcem 8MHz.

    0
  • Pomocny post
    #8 14 Lis 2008 07:46
    Dr.Vee
    VIP Zasłużony dla elektroda

    Zaglądając do datasheeta.....

    atmega8 datasheet napisał:
    By default, the successive approximation circuitry requires an input clock frequency between 50
    kHz and 200 kHz to get maximum resolution. If a lower resolution than 10 bits is needed, the
    input clock frequency to the ADC can be higher than 200 kHz to get a higher sample rate.

    When initiating a single ended conversion by setting the ADSC bit in ADCSRA, the conversion
    starts at the following rising edge of the ADC clock cycle. A normal conversion takes 13 ADC
    clock cycles. The first conversion after the ADC is switched on (ADEN in ADCSRA is set) takes
    25 ADC clock cycles in order to initialize the analog circuitry.


    Dodam jeszcze, że ADC clock możesz podkręcić nawet do 1MHz, co daje 13us na 1 konwersję (próbkowanie z częstotliwością 76kHz). Niestety wtedy trzeba się liczyć z błędem 3 LSB, czyli masz tak naprawdę 7-bitowy ADC.

    Pozdrawiam,
    Dr.Vee

    0
  • #9 14 Lis 2008 08:17
    michal2666
    Poziom 20  

    Dzięki za pomoc. Mam jeszcze jedno pytanko, do tej pory próbkowałem sygnały stosując pętlę For ... next i dokonywałem odpowiedniej ilość pomiarów. Czy jest na to może jakieś inne ciekawe polecenie w Bascom-ie?

    0
  • Pomocny post
    #10 14 Lis 2008 08:57
    94075
    Użytkownik usunął konto  
  • #11 14 Lis 2008 09:03
    Dr.Vee
    VIP Zasłużony dla elektroda

    Co do najszybszego próbkowania, to ustawiasz ADC w trybie automatycznej konwersji - wtedy co 13 cykli ADC dostaniesz przerwanie, w którym odczytasz wynik. Jak skończysz próbkowanie, to zatrzymujesz ADC i już.

    Pozdrawiam,
    Dr.Vee

    0
  • #12 14 Lis 2008 09:09
    94075
    Użytkownik usunął konto  
  • #13 14 Lis 2008 09:14
    michal2666
    Poziom 20  

    Dzięki Albertb za podpowiedź, pomiar wypełnienia (zresztą dobrze je znam w danej chwili) odpada bo ja chcę próbkować napięcie i natężenie prądu, który się zmienia. Nie chcę też budować oscyloskopu cyfrowego i odwzorowywać dokładnie sygnału więc chyba nie muszę stosować filtrów, chodzi mi o osiągnięcie możliwie dokładnej wartości średniej, coś jak RMS. Chcę pobrać odpowiednią ilość próbek i uśrednić ją.

    0
  • #14 14 Lis 2008 09:27
    94075
    Użytkownik usunął konto  
  • #15 14 Lis 2008 10:02
    michal2666
    Poziom 20  

    Z termistorem to chyba odpuszczę.

    Zrobię chyba w ten sposób, że przez powiedzmy 100 ms będę próbkował z maksymalną szybkością na zmianę napięcie i napięcie z przekładnika prądowego (złapie się co najmniej po kilkadziesiąt okresów) a później przez kolejne 100 ms zajmę się uśrednianiem, obliczeniami, wyświetlaniem na lcd i wysyłaniem przez UART. Da mi to odświeżanie co 0,2 s Wartości nie powinny być chyba obarczone dużym błędem.

    0
  • #16 14 Lis 2008 10:44
    94075
    Użytkownik usunął konto  
  • #17 14 Lis 2008 11:15
    michal2666
    Poziom 20  

    Oczywiście masz rację, w sumie po rozpoczęciu obsługi przerwania następującego co 0,2s mogę rozpocząć próbkowanie sygnału, ale dzięki instrukcji If Then, zbieranie danych do uśrednienia mogę rozpocząć dopiero gdy napięcie zacznie narastać. Tylko w takim wypadku muszę dokładnie obliczyć ilość próbek jakie mają zostać wykonane by przypadkiem nie złapać kawałka następnego okresu lub nie skończyć za wcześnie. Ewentualnie wykrywać zakończenie okresu.

    0
  • #18 14 Lis 2008 11:21
    sybulek
    Poziom 16  

    Przepraszam, a po kiego próbkować sygnał prostokątny?!
    Przecież chyba wiadomo, jaki jest rms prostokąta...
    Taki jak jego wartość średnia po scałkowaniu.
    Więc nie trzeba jakichś grubych kiloherców na próbkowanie wartości scałkowanej...
    No, chyba że to napięcie stałe zasilające IGBT nie jest tak naprawdę stałe.

    0
  • #19 30 Gru 2008 21:58
    michal2666
    Poziom 20  

    Witam, po dłuższej przerwie wróciłem do tematu czopera. Zmontowałem układ pomiarowy prądu i napięcia. pomiaru dokonuję w przerwaniu wyzwalanym sygnałem zewnętrznym z układu sterującego bramką modułu IGBT - w ten sposób zrobiłem synchronizację więc próbkowanie przebiegu zaczynam dokładnie w momencie komutacji, następnie wykonuję wyliczoną ilość próbek czyli 128 dla częstotliwości 4,5 kHz tak by pokryć cały okres i uśredniam. Wszystko pięknie tylko wyniki mają spory rozrzut. Pomiar wykonuję co 700 ms i wyniki mam np. od 4,1 do 4,4 A, biorąc pod uwagę, że to samo jest z napięciem wyliczona moc ma już bardzo duże odchyłki. Próbowałem zmieniać ilości próbek, uśredniać wyniki uśredniania z kilku okresów ale dalej mam spory odchyłki. Co zrobić by pomiar był naprawdę stabilny ???????

    0