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

Różnica fazy 2 sygnałów sinusoidalnych dla częstotliwości 50-5kHz

04 Sie 2016 22:56 2547 30
  • Poziom 9  
    Zastanawiam się nad tym jak zrobić pomiar różnicy fazy pomiędzy 2 przebiegami sinusoidalnymi. Każda sinusoida może mieć amplitudę z przedziału 5mV - 2000mV.

    Pomiar chciałbym realizować przez pomiar napięcia które będzie proporcjonalne do różnicy sygnałów.


    Zastanawiałem się nad użyciem 2 wzmacniaczy ARW po jednym dla każdej z sinusoid a następnie nad użyciem wzmacniacza różnicowego. Czy takie rozwiązanie ma sens?

    Czy są może jakieś dedykowane scalaki do pomiaru fazy sygnałów sinusoidalnych o różnym poziomie amplitud?
  • PCBway
  • Poziom 24  
    Niezależnie od poziomu amplitud oba sygnały mają jedną cechę wspólną - przejście przez zero. Najłatwiej mierzyć odstęp przejść przez zero. Jeżeli ma to być pomiar napięciowy, a nie np. cyfrowy pomiar czasu między przejściami przez zero, to najłatwiej wykorzystać dwa komparatory i przerzutnik ustawiany przejściem przez zero jednego przebiegu a zerowany przejściem przez zero drugiego. Wypełnienie przebiegu będzie proporcjonalne do różnicy faz. Jak je przepuścisz przez filtr dolnoprzepustowy uzyskasz napięcie proporcjonalne do różnicy faz.

    Rozwiązanie ma swoje niedoskonałości, dające się we znaki przy wartości różnicy faz zbliżonej do 0. ale też biorąc pod uwagę, że funkcja jest tam nieciągła musi tak być. Można co najwyżej przesunąć obszar nieciągłości w inny zakres.
  • Poziom 35  
    superviper napisał:
    Zastanawiałem się nad użyciem 2 wzmacniaczy ARW po jednym dla każdej z sinusoid a następnie nad użyciem wzmacniacza różnicowego. Czy takie rozwiązanie ma sens?

    Czy są może jakieś dedykowane scalaki do pomiaru fazy sygnałów sinusoidalnych o różnym poziomie amplitud?


    Moim zdaniem dużo łatwiej jest sprowadzić różne sinusoidy do prostokątów, bo do tego wystarczy właściwie tylko komparator. A temat typu pomiar fazy między dwoma sygnałami prostokątnymi, jest również dość zaawansowany w praktyce (n.p. układy PLL itp. ). Dla mniejszych częstotliwości można pomiary różnicy fazy realizować programowo.
  • Poziom 20  
    Jeśli zakres zmian fazy mały to możesz użyć detektora fazy z CD4046 wraz z filtrem dolnoprzepustowym - mierzysz tylko napięcie. Jeśli dodatkowo podzielisz częstość przebiegów przez 8 lub 16 (np. przerzutnik D) to zwiększysz zakres fazy dla której masz odpowiedź z detektora fazy.
    Dla słabych sygnałów musi wzmacnianie i formowanie (zdaje się że CD4046 ma jedno wejście z odpowiednim wzmacniaczem).
  • PCBway
  • Poziom 9  
    Witam.

    Czy istnieją układy scalone do takich zastosowań to nie wiem ale bez problemu zrealizujesz taki pomiar na dwóch wejściach ADC w uC choćby jakiejkolwiek ATmegi lub innej. Ja tak realizuję swoje testery fazowe sieci energetycznej. Sprawdzam kolejność faz i ze wzorów i tablic matematycznych i za pomocą timera programowego lub sprzętowego można bardzo łatwo sprawdzać kolejność faz lub wyprzedzenia czy opóźnienia fazowe lub międzyfazowe. Można też tę kwestię rozwiązać inaczej ale jak masz max 2000mV to Atmegi się spiszą spokojnie. Mam nadzieję, że oto Tobie chodzi jeśli nie to podaj więcej szczegółów i więcej informacji.

    Pozdrawiam Dawid
  • Poziom 9  
    Rozwiązanie z 2 komparatorami oraz przerzutnikiem brzmi interesująco. Rozwiązanie które poszukuję ma być typowo sprzętowe bez obróbki cyfrowej :)

    Czy zna ktoś może jakiś gotowy schemat lub gotowe tanie urządzenie które mogło by spełnić taki pomiar fazy?
  • Poziom 9  
    superviper napisał:
    Rozwiązanie z 2 komparatorami oraz przerzutnikiem brzmi interesująco. Rozwiązanie które poszukuję ma być typowo sprzętowe bez obróbki cyfrowej :)

    Czy zna ktoś może jakiś gotowy schemat lub gotowe tanie urządzenie które mogło by spełnić taki pomiar fazy?


    Noto niestety nie pomogę. Ja jak mam coś w podobie do skonstruowania to zapędzam nawet małe AVR i dają sobie ze spokojem rade. Z rozwiązań sprzętowych niestety nic nie pomogę bo nie wie i nie chcę zgadywać jakie układy.

    Pozdrawiam Dawid
  • Poziom 9  
    Wygląda na to że układ CD4046 jest eleganckim rozwiązaniem mojego problemu. Na wyjściu PC3OUT powinienem uzyskać napięcie proporcjonalne do różnicy faz w zakresie 0-360stopni.

    Przeglądam specyfikacje http://www.ti.com/lit/ds/symlink/cd54hc4046a.pdf
    natrafiłem na informacje że minimalny poziom SIGIN, COMPIN to 0,5V przy zasilaniu VCC 2V?
    Czy dobrze rozmieniam tą specyfikacje? Jeśli tak to przy małych sygnałach rzędu 50mV będę potrzebował wzmacniaczy celem ich wzmocnienia? Czy dobrze rozumiem, że w przypadku zastosowania tego układu brak jest konieczności aby sygnały SIGIN oraz COMPIN miały jednakową amplitudę?

    Przepraszam za mnóstwo pytań wynikających z tego iż jestem początkującym adeptem sztuki elektroniki ;)
  • Poziom 20  
    superviper napisał:
    Wygląda na to że układ CD4046 jest eleganckim rozwiązaniem mojego problemu. Na wyjściu PC3OUT powinienem uzyskać napięcie proporcjonalne do różnicy faz w zakresie 0-360stopni.


    Po uśrednieniu. Bezpośrednio na tym wyjściu będziesz miał przebieg prostokątny o wypełnieniu proporcjonalnym do różnicy faz.
    Nie czytałem dokładnie noty katalogowej ale tam każde wyjście ma jakiś wzmacniacz i układ dający podkład w okolicach przełączania. Zawsze można dać komparatory a wyjście z nich, już w postaci sygnałów prostokatnych, do 4046.
  • Poziom 24  
    superviper napisał:
    Przepraszam za mnóstwo pytań wynikających z tego iż jestem początkującym adeptem sztuki elektronik
    Nie podałeś podstawowych informacji:
    1) jaka ma być częstotliwość sygnałów?
    2) jaki ma być zakres zmian fazy?

    W związku z tym jedni wyobrażają sobie przebiegi 50Hz, inni 10kHz a jeszcze inni np. 27MHz. Nietrudno się domyślić, że podejście powinno być różne w każdym z tych przypadków. Dlatego podałem ci ogólne rozwiązanie. W 4046 jest m. in. taki komparator fazy, z tym , że to może 10% tego układu - co przy obecnych cenach nie oznacza od razu, że to zły pomysł, pod warunkiem, że częstotliwość nie przekracza maksymalnej dla tego układu (18MHz). Inaczej trzeba dodać zewnętrzne komparatory i dzielniki, do tego spadnie czułość i cała zabawa traci sens.

    Niezależnie od tego, czy to rozwiązanie byłoby realizowane na części układu 4046 czy inaczej trzeba pamiętać o jednym - jeżeli sygnał nie będzie czysty (np. przebieg 100kHz z przydźwiękiem 50Hz) to wywołane przez przydźwięk przesunięcie będzie dawało efekt dodatkowej modulacji fazy zmieniającej się w jego takt. Podobnie przesunięcie poziomu odniesienia (składowa stała) da efekt przesunięcia fazy, co prawda o wartość stałą ale zależną od poziomu sygnału - przy zmianie poziomu zmieni się błąd fazy. Pomyśl o tych pułapkach, żeby nie spotkało cię rozczarowanie.

    Przy trudnych sygnałach (z zakłóceniami, zmianami poziomu składową stałą...) trzeba się najpierw zająć oczyszczeniem sygnału.

    tikka.masala napisał:
    Jeśli dodatkowo podzielisz częstość przebiegów przez 8 lub 16 (np. przerzutnik D)
    jeden? a może kolega pokazać jak?
    Serwis Rybian napisał:
    ale jak masz max 2000mV to Atmegi się spiszą spokojnie
    A jak więcej to jakiś problem? Problem może być z większymi częstotliwościami, z większymi napięciami na pewno nie.
    superviper napisał:
    przy małych sygnałach rzędu 50mV będę potrzebował wzmacniaczy celem ich wzmocnienia
    Lepiej od razu dać komparatory bo 4046 i tak sprowadzi to do fali prostokątnej. Tyle, że jak już napisałem z 4046 w końcu użyjesz tylko przerzutnik
    superviper napisał:
    brak jest konieczności aby sygnały SIGIN oraz COMPIN miały jednakową amplitudę
    Pomijając kwestię zakłóceń (patrz wyżej) to bez znaczenia, bo i tak porównywane są tylko przejścia przez zero
    tikka.masala napisał:
    układ dający podkład w okolicach przełączania
    Może kolega wyjaśnić co to jest "podkład w okolicach przełączania"?
  • Poziom 20  
    jega napisał:

    tikka.masala napisał:
    Jeśli dodatkowo podzielisz częstość przebiegów przez 8 lub 16 (np. przerzutnik D)
    jeden? a może kolega pokazać jak?


    Poszukaj w internecie to nie jest miejsce na tlumaczenie podstaw.
  • Poziom 9  
    Dziękuję za odpowiedzi. Odnośnie częstotliwości to podałem ją w temacie i faktycznie skupiając się na opisie można to przeoczyć. Częstotliwości są z zakresu 50-5000Hz. Co więcej częstotliwość obu przebiegów zmienia się synchronicznie w czasie (taki sweep time dla zmiany od 50Hz do 5000Hz około 6 sekund).

    Układ ma mierzyć różnicę faz w zakresie od 0 do 360 stopni.
    Układ pomiaru fazy ma pracować ze sterownikiem PLC. Sterownik PLC 10 razy na sekundę będzie mierzył napięcie które ma być proporcjonalne do różnicy faz. Oprócz tego PLC rejestrował będzie częstotliwość co zrealizowane jest na gotowym komparatorze dostępnym dla sterowników PLC.

    PLC będzie mierzył częstotliwość i zmianę fazy 10 razy na sekundę i rejestrował taką parę danych w czasie.

    Przykładowy pomiar:

    50Hz; Faza 10
    500Hz; Faza 30
    1000Hz; Faza 20
    ........
    ........
    ........

    Cały pomiar Sweep jest powtarzany co 6 sekund.
  • Poziom 24  
    tikka.masala napisał:
    Poszukaj w internecie to nie jest miejsce na tlumaczenie podstaw.
    W internecie znalazłem tylko jak podzielić jeden przebieg i to tylko przez 2. Więc jak kolega zna sposoby, żeby na jednym przerzutniku D podzielić dwa niezależne przebiegi i to - cytuję: "przez 8 lub 16" to niech nie skąpi innym tej tajemnej wiedzy.

    Albo niech kolega przestanie mędrkować, przyzna się do błędu i przeprosi.

    Dodano po 22 [minuty]:

    superviper napisał:
    Częstotliwości są z zakresu 50-5000Hz.
    Zatem nie ma przeszkód, by skorzystać z komparatora fazy w 4046, choć jak pisałem nie jest to konieczne.

    Taki zakres oznacza, że jeżeli sygnały nie byłyby wolne od zakłóceń, zwłaszcza przydźwięku to mogą być kłopoty, o których pisałem poprzednio, tym bardziej, że nie możesz wyciąć 50Hz i niskich harmonicznych, bo pasmo robocze je obejmuje.

    Drugi problem wynika z szerokości zakresu częstotliwości (100:1). Nie możesz optymalizować filtru pod konkretną częstotliwość. W praktyce musisz zapewnić tłumienie tętnień dla minimalnej częstotliwości 50Hz. A to problem, bo przy 50Hz 1/10s to raptem 5 okresów. Dolnej części zakresu nie wyczyścisz porządnie nie powodując zarazem uśredniania sporego zakresu częstotliwości.

    Zakładam przy tym, że zmiana częstotliwości będzie logarytmiczna, bo przy liniowej to w ogóle byłaby porażka.

    Pytanie jakie znaczenie ma ten pomiar i jaka w związku z tym komplikacja układu jest akceptowalna. Znacznie lepsze wyniki być uzyskał skokowo zmieniając częstotliwość niż płynnie ją zmieniając. Jeszcze lepsze wyniki byś uzyskał budując układ o zmiennym filtrze, nic by to nie pomogło przy najniższych częstotliwościach ale przynajmniej poprawiło by reakcję dla wyższych. Gdyby ograniczeniem był łączny czas pomiaru (6s) a nie stały cykl zbierania danych (co 1/10s) to można by poświęcić więcej czasu na najniższe częstotliwości kosztem wyższych, gdzie czas pomiaru jest mniej krytyczny.

    Najlepsze wyniki IMHO uzyskałbyś wykorzystując uC który zawiadywał by całym procesem i podawał wyniki na wyjście dla PLC. Hardware ograniczyłby się do układów wstępnego przygotowania sygnałów, oczywiście do tego kawałek niezbyt skomplikowanego programu.
  • Poziom 9  
    OK z tego co widzę problem można próbować rozwiązać sprzętowo - jednakże w przypadku realnych przebiegów możemy spotkać się z różnego rodzaju zniekształconymi przebiegami. Tak też jest w moim przypadku gdy obserwuje przebiegi na oscyloskopie. Wykonanie typowo sprzętowego rozwiązania może być zatem dla mnie syzyfową pracą. Rozwiązania softwarowe wyglądają na bardziej elastyczne. Koledzy piszą że można do tego zaprząc Atmegę. Dysponuję https://botland.com.pl/plytki-zgodne-z-arduin...-ble-bluetooth-40-kompatybilny-z-arduino.html
    jednak z tego co widzę wejścia analogowe respektują tylko sygnały 0-5V i bez zewnętrznego przetwornika analogowo cyfrowego nie wiem czy sama atmega może pomóc mi rozwiązać problem. Dodatkowo nie mam pojęcia na temat FFT a gdy zaczynam wyszukiwać informacje to widzę że to bardzo rozległa dziedzina i ciężko mi to przełożyć na praktykę. Czy macie może jakieś pomysły gdzie mógłbym znaleźć informacje na temat pomiaru fazy 2 sinusoid oraz filtrowania ewentualnych zakłóceń. W analizowanym przypadku pewno dobrym rozwiązaniem byłby automatycznie przestrajany filtr pasmowo przepustowy którego środek pasma przypadałby na aktualną częstotliwość sinusoid na wejściu. Będę wdzięczny do odniesienia dla jakichś praktycznych realizacji podobnych rzeczy.
  • Poziom 24  
    Być może jestem w błędzie, ale sądzę, że koledzy myśleli o mniej ambitnym podejściu do tematu. Mianowicie bez FFT a nawet bez korzystania z przetwornika A/C a jedynie z wejść cyfrowych (lub A/C ale w ten sposób użytego). Wówczas uC może zmierzyć okres oraz odstęp czasowy miedzy przejściami przez zero obu sygnałów i z tego wprost masz różnicę faz. Oczywiście można jeszcze zrobić jakieś uśrednianie wyników z kilku okresów itp.

    Rozwiązuje to jedynie problem zmiany stałej czasowej filtru.
  • Poziom 9  
    Czyli przerzutnik Schmitt'a przed wejściami cyfrowymi i skorzystanie z pulseIn()?
  • Poziom 35  
    superviper napisał:
    Czyli przerzutnik Schmitt'a przed wejściami cyfrowymi i skorzystanie z pulseIn()?


    Koncepcja przerzutnika Schmitta wymaga koniecznie doprecyzowania.
    Właściwie to musisz mieć detektor przejścia przez zero (bo to jedyny punkt sinusoidy czasowo niezależny od amplitudy).
    Ale z uwagi na możliwość pojawienia się szumów w przebiegu cyfrowym, które zakłócały by pomiar, wskazana by była histereza (czyli Schmitt) ale tak dobrana by jeden z poziomów pętli histerezy wypadał dokładnie w zerze (rozumianym jako napięcie zero w przebiegu wejściowym). Czyli nie pierwszy lepszy Schmitt, ale da się to zrealizować n.p. na komparatorze.


    PulseIn się tu zupełnie nie nadaje. Po prostu w czasie trwania każdego okresu musisz mierzyć równocześnie dwa czasy, odstęp między tymi samymi zboczami obydwu sygnałów (czyli różnica fazy jako czas) i odstęp dwóch tych samych zboczy jednego sygnału (czyli okres).

    Z biblioteki Arduino jedynie co przydać się może to przerwania od zmiany poziomów czyli attachInterrupt(). W ten sposób że na dwa piny przychodzą sygnały z dwóch detektorów przejścia przez zero. Wtedy funkcje obsługi przerwań od zboczy na tych pinach wpisywały by aktualny czas n.p. z micros() do jakiś zmiennych, z których na końcu każdego okresu można by prosto wyliczać różnicę fazy w stopniach.

    Jak widzę masz tam górną granicę 5000Hz, czyli czasu jest 200µs na obliczenia i resztę zadań. Rozdzielczość funkcji micros() jest 4µs to przy górnych częstotliwościach zmaleje rozdzielczość pomiaru. Możliwe że będzie potrzeba bezpośredniego dojścia do timera.

    Oczywiście to tak w zarysie przedstawiam, bo nie chcę w tej chwili wchodzić głębiej w kwestię czy Arduino a ściślej jego biblioteka wyrobi się czasowo, tym bardziej że nie wiem jak ma wyglądać u Ciebie dalsza obróbka danych.
  • Poziom 24  
    Ja co prawda wyobrażałem to sobie trochę inaczej, bo zakładałem, że przynajmniej krytyczna sekcja pomiarów będzie oprogramowana w assemblerze na gołym procesorze (nawyki z dawnych czasów...) ale może istotnie nawet Arduino się wyrobi.

    W każdym razie część analogową z komparatorami proponowałbym zrobić niezależnie i podać już gotowe, uformowane sygnały cyfrowe. Rozdzielczością bym się nie przejmował, zawsze możesz skorzystać z uśredniania, ale gdyby te 4/200 miało stanowić problem to i tak byłby wielki sukces biorąc pod uwagę problemy w obszarze analogowym, o których pisałem wcześniej.

    W każdym razie to podejście + ewentualne rozbudowanie części analogowej, np. dwa (lub więcej) tory dla różnych zakresów częstotliwości pozwoli ci na uzyskanie dużej elastyczności i optymalizację pomiaru. Jeżeli tylko sygnały wejściowe będą dostateczni dobrej jakości to nie wygląda to źle.
  • Poziom 9  
    Różnica fazy 2 sygnałów sinusoidalnych dla częstotliwości 50-5kHz

    Posiadam w szufladzie LM324N-TI i zastanawiam się nad użyciem tego wzmacniacza w roli detektora przejścia przez zero. Czy waszym zdaniem powyższy schemat będzie ok jako detektor dla Arduino?

    Chciałbym uprościć układ i tak doszedłem do wniosku że skoro nie ma chyba sensu zasilać wzmacniacza napięciem symetrycznym? Przy pojedynczym zasilaniu mogę wykorzystać zasilanie 5V z płytki Arduino (ewentualnie dodając kondensator aby zapewnić bardziej stabilne napięcie dla wzmacniacza).
  • Poziom 35  
    superviper napisał:
    Posiadam w szufladzie LM324N-TI i zastanawiam się nad użyciem tego wzmacniacza w roli detektora przejścia przez zero.


    Główny problem tego układu to duży w stosunku do minimalnej amplitudy offset napięciowy wejścia wzmacniacza (do 7mV przy zasilaniu 5V). To oznacza że detektor może nawet w ogóle nie zadziałać dla Uwe=5mV a nawet jeśli przykładowo miał by offset 2mV (typowy dla LM324N) to błąd fazy wnoszony przez "niezerową detekcję zera" byłby już rzędu 45°.
    Czyli niezbędny jest jakiś układ kompensacji offsetu. Albo używając innego typu wzmacniacza, który ma specjalnie do tego celu wyprowadzenia do podłączenia potencjometru, albo z tą kostką ale po dodaniu układu pozwalającego na podanie regulowanego napięcia rzędu miliwoltów na te wejście, które masz teraz na masie.
    Ewentualnie też można by się rozejrzeć za precyzyjniejszym wzmacniaczem operacyjnym, lub wstępnym wzmocnieniem, choć jeśli zostać przy tym LM324N i pojedynczym zasilaniu to dużego wzmocnienia nie można dać (najwyżej x5 bo LM324N pracuje do -1V na wejściach).

    Druga sprawa że taki detektor jak narysowałeś, może generować przy przejściu przez punkt przełączania dodatkowe zbocza jeśli w sygnale jest szum. Szczególnie dla niższych (wolniej przechodzących przez zero) przebiegów. A to bardzo niekorzystne dla algorytmu pomiarowego. Ale dołożenie niesymetrycznej histerezy nie jest niczym trudnym tak że można się tym zająć później, jak już kwestie offsetu będą załatwione.
  • Poziom 24  
    superviper napisał:
    Posiadam w szufladzie LM324N-TI
    Na częściach z szuflady raczej się nie skończy a np. podobnej klasy poczwórny komparator LM339 kosztuje grosze, więc proponuję najpierw zająć się przygotowaniem sygnału a jeszcze wcześniej do sprawdzenia jaki ten sygnał właściwie będzie. LM339 to tylko przykład, cechuje się podobnymi parametrami wejściowymi jak LM324, więc uwagi rb401 mają i tu zastosowanie, ale zakładam, że wcześniej sygnał będzie wzmocniony więc to nie będzie krytyczne.

    Jeżeli sygnał nie będzie wymagał wstępnego wzmocnienia a wymagania nie będą zbyt wysokie to oczywiście można go podać wprost na wejścia, ograniczając od dołu diodami, żeby nie przekroczyć dopuszczalnej wartości na wejściu. Jednak weź pod uwagę, że (poza innymi problemami już omówionymi przez kolegę rb401) czasowa odpowiedź układu jest zależna od wielkości sygnału co może być źródłem dodatkowego błędu na skutek zmiany opóźnienia.
  • Poziom 35  
    jega napisał:
    czasowa odpowiedź układu jest zależna od wielkości sygnału co może być źródłem dodatkowego błędu na skutek zmiany opóźnienia.


    Z dokumentacji LM393 wynika że odpowiedź "małosygnałowa" jest o 1µs dłuższa niż "dużosygnałowa". Tak że może nie ma się czym przejmować, bo inne źródła błędu mogą być bardziej istotne. Mnie bardziej niepokoi pewna wypowiedź autora wątku tu wyżej:

    "OK z tego co widzę problem można próbować rozwiązać sprzętowo - jednakże w przypadku realnych przebiegów możemy spotkać się z różnego rodzaju zniekształconymi przebiegami. Tak też jest w moim przypadku gdy obserwuje przebiegi na oscyloskopie."

    Nie wiem czy to ma związek z sygnałami które mają być mierzone, bo jeśli tam są duże zniekształcenia a tym bardziej nałożone jakieś duże zakłócenia, to cała koncepcja z detekcją zera, obojętnie czy do sprzętowego detektora fazy czy programowego, lekko traci sens.
    To już bardziej kierunek zbieranie ADC i FFT z liczeniem kąta, no ale to już z pewnością nie na Arduino.
  • Poziom 9  
    Różnica fazy 2 sygnałów sinusoidalnych dla częstotliwości 50-5kHz

    Dziękuję za uwagi. Przeglądam notę LM339 i jest tam aplikacja Zero Crossing Detectora jak powyżej. Jeśli dobrze rozumiem dioda 1N4148 ogranicza napięcie na wejściu do ~0,6V obcinając napięcia powyżej co w moim przypadku będzie cięło część sinusoidy (to chyba nie będzie wadą gdyż do wykrywania przejścia przez zero ten zakres napięć nie jest potrzebny).

    Zastanawiam się nad wartościami R1 i R2 bo jeśli dobrze rozumiem jest to dzielnik napięcia który daje nam napięcie odniesienia (przy napięciu zasilania 5V jeśli dobrze obliczyłem 0,45V). W takim przypadku układ byłby całkiem dokładny dla wysokich napięć wejściowych. W moim przypadku zakres napięć na wejściu będzie od 5mV tak gdzieś do 2000mV dlatego zastanawiam się nad zmianą wartości R2 na 20 omów co powinno dać napięcie odniesienia na poziomie 1mV. Proszę o informację zwrotną gdyż jestem początkujący w elektronice i mogę popełniać wiele błędów.
  • Poziom 24  
    superviper napisał:
    nad zmianą wartości R2 na 20 omów
    Wybacz, ale to są trzeciorzędne kwestie. Sama zmiana R2 o tyle nie jest dobrym pomysłem, że pociąga za sobą konieczność zmiany R3 aby skorygować jej wpływ na zmianę wielkości histerezy oraz - gdyby być skrajnie dokładnym) oporników podanych na drugie wejście, żeby wyrównać spadki od prądów polaryzacji.

    Nie w tym rzecz, do twoich potrzeb układ powinien wyglądać nieco inaczej, ale to drobiazg i bez trudu ten efekt osiągniemy.

    Posłuchaj jednak gdzie zarówno Kolega rb401 jak i ja widzimy prawdziwy problem - w zakłóceniach i zniekształceniach sygnału wypaczających totalnie taki pomiar fazy. Dopóki nie uzyskasz czystych przebiegów na wejściu komparatora nie ma sensu brnąć dalej. Poszukaj sam rozwiązania tego problemu albo opisz dokładnie co właściwie robisz, bo inaczej dalsze dywagacje nie mają sensu.
  • Poziom 9  
    Różnica fazy 2 sygnałów sinusoidalnych dla częstotliwości 50-5kHz

    Powyżej przedstawiam jak mniej więcej wygląda przebieg. Jedna sinusoida jest w miarę czysta natomiast druga ma przebieg jaki ma. Co radzicie w takiej sytuacji?
  • Poziom 24  
    Przecież sam widzisz, że to się nie nadaje to użytku bez oczyszczenia.

    Napisz więcej o tym, co właściwie mierzysz, jakie masz pole manewru? Czy kontrolujesz sygnał wymuszający? Jakie są ograniczenia co do samego pomiaru? Jakiego rodzaju zakłócenia występują? Jaką dokładność chcesz/musisz uzyskać?
  • Poziom 9  
    Nie mam za ograniczeń co do opóźnienia - wyniki pomiaru fazy mogę poznać nawet kilka sekund po zakończeniu. Niestety na czystość przebiegu nie mam wpływu żadnego. Tak niestety wygląda przebieg i nic z tym się nie da zrobić. Dokładność pomiaru może być obarczona błędem 20 stopni.
  • Poziom 24  
    superviper napisał:
    Tak niestety wygląda przebieg i nic z tym się nie da zrobić
    To chyba zbytni pesymizm. Co jest źródłem sygnału? Jaka jest częstotliwość zakłócająca? Jedna możliwość to odfiltrowanie sygnału z zakłóceń. Druga to synchronizacja lokalnego generatora z przebiegiem.

    W pierwszym problemem może być nałożenie częstotliwości zakłóceń na zakres częstotliwości roboczych. W drugim konieczność nadążania za zmianą częstotliwości roboczej. Przy okazji czy konieczna jest płynna zmiana częstotliwości roboczej? Czy nie można zamiast tego zmieniać ją skokowo?
  • Poziom 9  
    Częstotliwość zmieniana jest płynnie i nie ma możliwości robić to skokowo. Przebieg sinusoidy to przebieg z czujnika i zakłócenia wynikają z mechanicznych właściwości badanego obiektu. Na wyjściu z czujnika jest sygnał z zakłóceniami. N
  • Poziom 35  
    superviper napisał:
    Tak niestety wygląda przebieg i nic z tym się nie da zrobić.


    Osobiście to w takich warunkach wiązał bym nadzieje z metodą zbierania danych przez ADC i obróbką FFT z wyliczeniem kąta prosto z jej wyników.
    Zastosowanie FFT pozwoliłoby przede wszystkim na radykalną filtrację znacznych zakłóceń, nieskorelowanych z częstotliwością pomiarową, bez obawy o przesunięcia kąta fazowego (co przy normalnej filtracji jest problemem).
    Przestają mieć znaczenie problemy n.p. offsetów, pływania zera itp. .
    W sumie też nie wymaga żadnej skomplikowanej matematyki (poza samym FFT, ale są gotowce).
    Co do sprzętowej strony, jeśli mogę coś podpowiedzieć, to widział bym w tej roli jakiś procesor ARM najlepiej Cortex-M4 bo ma sprzętowe funkcje DSP i takie obliczenia to dla niego żaden wysiłek.
    Zrobiłem nawet teraz test na NucleoF401, bo intrygowało mnie jak szybko wyrobi się z FFT przy przyjęciu Twoich uwarunkowań, a FFT to akurat najbardziej czasochłonna część obliczeń.
    Okazało się że FFT na 1024 próbkach zmiennoprzecinkowych, w zależności od algorytmu robi w... 1,2ms do 2,8ms (przy zegarze 84Mhz). A to szacunkowo tyle próbek ile było by potrzebne przy próbkowaniu 10kHz przez 100ms, bo co taki czas potrzebujesz wynik.
    Czyli jeśli przyjąć n.p. 10kHz zbieranie próbek z dwóch sygnałów, do dwóch buforów na przemian, te Nucleo bez problemu wyrobi się z FFT oraz z wszystkimi pozostałymi obliczeniami w czasie tych 100ms, kiedy napełniał się będzie drugi bufor.

    Jeśli by zastosować wewnętrzny ADC to pozostała by sprawa dopasowania zakresu napięć, ale tu nie potrzebna by była jakaś precyzja. Prosty układ powinien załatwić sprawę. Jedynie co ewentualnie wymagało by przemyślenia, to Twój duży zakres amplitud. I gdyby na 12bitach chodził by sygnał 2000mV to ten 5mV już tylko na 6 - 7. Ale może to wystarczy.

    Oczywiście z metody używającej FFT wynika nieuchronnie pewne opóźnienie wyniku, bo próbki trzeba zebrać i dopiero mając jakiś przedział czasowy zebrany, można przystąpić do obliczeń.
    Ale ten jednostkowy przedział czasowy nie może być za krótki, bo ograniczeniem jest to dolne 50Hz i selektywność wyliczeń dla tego zakresu.

    Tak że może było by sensowniej wysyłać jakoś do sterownika po prostu zestaw danych częstotliwość - faza, zamiast mierzyć częstotliwość sterownikiem.