"kondycjonowanie" sygnału dla przetwornika A/C

Witam Buduję układ, którego główną cześcią będzie czujnik ćiśnienia MPX4115a, i właśnie jego wskazania chciałbym monitorować. Z racji tego, że potrzebna jest jak najlepsza rozdzielczość chciałbym się zapytać jakie przeprowadzić zabiegi, żeby uzyskać jak najlepszy, najbardziej precyzyjny wynik pomiaru napiecia, dla przetwornika A/C o rozdzielczości 20bit. Zakres użyteczny w moim projekcie wyjścia czujnika to jakieś 3-4,8 V.

Przetworniki zwykle mają zakres wejścia 0-5V. Jak ogólnie można dopasować wyjście z czujnika, tak, by obejmowało jak największą część "skali" przetwornika? Czy stosować jakieś specjalne źródła napięcia odniesienia, czy wystarczy wyjście z LM-a (czy napięcie Vref bedzie odpowiedniej jakości?) ?

Co już wiem?

  1. Trzymać ścieżki tej czesci układu jak najdalej od ścieżek szybko zmieniajacych stan (z ang. "hi-speed switching tracks")
  2. Scieżki miedzy czujnikiem, a przetwornikiem jak najkrótsze.
  3. Im większa rozdzielczość przetwornika tym lepiej.

Pomiary nie będą zbyt częste - myślę, maxymalnie 5 razy na sekundę, a wystarczyłoby w ostatecznosci 2-3.

Czy stosować jakies filtry czy inne układy, tak by przetwornik nie wariował mi na kliku najmniej znaczących bitach?

Pozdrawiam, Kuba

Reply to
invalid unparseable
Loading thread data ...

Też bawię się podobnym czujnikiem, tyle ze mnie zadowala pomiar 12 bitowy. Zrobienie tak precyzyjnego układu pomiarowego to nie lada wyzwanie. Napisz sobie aplikację pozwalającą na obróbkę statystyczną danych to będziesz miał wgląd na jakość pomiaru. Do celów określenia parametrów samego układu pomiarowego wstaw na jeden kanał przetwornika jakieś precyzyjne źródło napiecia. Będziesz wiedział o ile Ci pływa wynik.

Po prostu odejmij od sygnału wartość stałą np 3V. Robi się to na wzmacniaczu operacyjnym. Klasyczny układ wzmacniacza odwracajacego, przy czym na wejście nieodwracające zamiast zera podajesz napięcie odejmowane. Jeżeli wzmacniacz ma wzmocnienie większe niż 1 to napięcie odejmowane podziel przez wzmocnienie. Do zabawy w konfigurację takch rzeczy, projektowanie filtrów itp polecam program symulujacy np LT Spice. Jeżeli nie masz doświadczenia to symulacje w komputerze szybciej pozwolą zrozumieć istotę sprawy.

Nie wiem co masz na myśli pisząc i LM-ie. Po prostu musisz zastosować źródło o stabilności pozwalającej zmierzyć te 20 bitów. Plicz jakiemu napięciu odpowiada 1 bit w takiej rozdzieczości i szukaj odpowiednio dokadnego źródła. Jest szansa że coś znajdziesz na stronie np. Analog Devices.Pamiętaj też o stabilności w funkcji temperatury, jeżeli Twój układ będzie pracował warunkach zmiennej temperatury.

Przefiltruj sygnał filtrem dolnoprzepustowym o częstotliwości odcięcia rzędu pojedyńczych herców. Jeżeli możesz próbkować częściej to filtruj też cyfrowo już uzyskane wyniki.

Generalnei poro informacji znajdziesz w notach aplikacyjnych dotyczących czujnika, oraz przetwornika.

Reply to
Piotr "PitLab" Laskowski

Jakub Gocaliński napisał(a):

Czujnik ma Accuracy =1.5%. Jeśli ustabilizujesz go termicznie na poziomie +-1C to zjedziesz z błędami temperaturowymi do ok 20Pa. Dochodzą błędy histerezy, liniowość i stabilność (efekty starzeniowe). Na przetworniku nie uzyskasz więc lepszej dokładności niż 0.2%. Wystarczyłby przetwornik 10 bitowy ale możesz dać 12.

To zależy jaki LM. LM385 wystarczyłby (ale nie dla 20 bitów).

Filtr dolnoprzepustowy RC.

Reply to
Mariusz Dybiec

Piotr "PitLab" Laskowski napisał(a):

Ale te napięcie też musi być wzięte ze stabilnego źródła. Trzeba by ocenić czy więcej straci na dokładności mierząc pelny zakres sygnału (traci trochę ponad 1bit rozdzielczosci) czy odejmując napięcia na wzmacniaczu. Jeśli przetwornik A/D nie obciąża źródła sygnału to dałbym wprost z MPX bez wzmacniacza. Tylko RC i ewentualny dzielnik (jeśli przetwornik np ma Vin= 2.5V.

Jeśli pracuje w temperaturze pokojowej i nie ma stabilizacji termicznej źródła to należałoby przyjąć np +-10C. Żeby zachować te 20 bitów musiałby mieć źródło 0.05ppm/C.

Reply to
Mariusz Dybiec

Jasne. Ja na przykłąd używam napięcia referencyjnego.

Fakt. Mając taki przetwornik nie ma się co szczypać. U siebie mierząc z rozdzieczością 12 bitów potrzebowałem zawęzić zakres żeby uzyskać rozsądną rozdzielczość. Sprzętowo ograniczam zakres wejściowy do 2 bitów bo interesuje mnie tylko wąski odcinek pomiarowy - mierzę wysokość i zakres 2km spokojnie mi wystarczy. W ten sposób stosunkowo tanim kosztem (porządny wzmacniacz kosztuje mniej niż >14 bitowy przetwornik) zbliżam siedo 14 bitów. Jeżeli liczyć wzrost rozdzieczości metodami statystyczmymi (oversampling) to zbliżam się do 15-16 bitów co mne satysfakcjonuje. Nie ukrywam że cały ukłąd analogowy jest dokładnie przeliczony, przesymulowany i wielokrotnie sprawdzany w praktyce. Np. tutaj jest porównanie pomiarów z urządzeniem referencyjnym

formatting link

Zapytałem google co sądzi o tej aplikacji autora wątku i widzę że urządzenie docelowe nie będzie pracowało w temperaturze pokojowej. Będzie latało aż pod chmury a tam są spore gradienty temperatur, zwłaszcza gdy wylatuje się z ciepłego komina ;-)

Reply to
Piotr "PitLab" Laskowski

Na wykresie widać, że oba piki są równej wysokości a na opadającym zboczu lokalne osobliwości na cienkiej linii są o ok 6m wyżej niż na grubej (np. te na wysokości ok 260m). To jest około 80Pa różnicy. Byc może to także wina przyrządu referencyjnego :) Tak czy inaczej to 12 bitów wystarczyłoby. Chyba że używasz słabszej wersji przetwornika gwarantującej 11 bitów to wtedy warto walczyć o dodatkowy bit.

Jakby nie kombinował wyjdzie mu nie lepiej niż 0.5%.

Reply to
Mariusz Dybiec

Trudno powiedzieć gdzie jest problem, chociaż urządzeie referencyjne jest leszej klasy niż moje - przynajmniej ma 16 bitowy przetwornik i większe możliwości kompensacji nieliniowości samego przetwornika. O ile autor niczego nie skopał powinno być dokładniejsze. Te różnice mogą wynikać z różnych algorytmów linearyzacji krzywej h(P), ale może to być problem sprzętowy. Na pewno nie jest idealnie u mnie, bo widać że po wylądowaniu wysokość rozjechała się o ok. 2m. W tej chwili zajmujęsięczym innym, ale niedługo wrócę do tego problemu i jeszcze będę go wałkował. Muszę rozgryźć sposób przechowywania danych przez to urządzenie i pobawić się na poziomie liczb i najlepiej kilku lotów. Wtedy powinno być widać ewentualne zafalowania charakterystyki w funkcji wysokości spowodowane błędami linearyzacji.

Rozwiń temat, bo nie bardzo rozumiem o co chodzi z tą słabszą wersją przetwornika. Według not katalogowych nie ma lepszych i gorszych. Chyba że mówimy o różnych czujnikach. Autor wątku wspominał o MPX4115A.

Niech kombinuje, sporo się można nauczyć a do latania większej dokładności nie trzeba. Przynajmniej jest to sporo dokładniej niż mógłby to oszacować pilot.

Reply to
Piotr "PitLab" Laskowski

Piotr "PitLab" Laskowski napisał(a):

Na h(P) się nie znam :) ale może to być po prostu liniowość U(P).

Na pewno nie jest idealnie u mnie, bo widać

Histereza czujnika lub dryft temperaturowy. Musiałbyś pobadać go trochę. Np wysterować podciśnieniem 5kPa (chyba odpowiada 400m ) i potrzymać przez czas porównywalny z czasem lotu. Możesz też przymocować do czujnika bloczek metalowy z termometrem i mierzyć wpływ temperatury na wskazania a potem w locie obserwować zmianę temperatury.

Miałem na myśli przetwornik A/D. Np. zobacz sobie w 12 bitowym Max187 wersje ACP, BCP i CCP

formatting link

Reply to
Mariusz Dybiec

Racja:) Buduję wariometr, przyrząd mierzący prędkość wznoszenia, opadania np. paralotniarza, mierząc aktualnie panujące ciśnienie.

I tak naprawdę zależy mi tylko na tym, żeby co jakiś czas obliczyć wysokość, i porównać ją z poprzednio zczytaną, w ten sposób uzyskując prędkość w pionie. wystarczyłoby to 2-5 razy na sekunde.

Także problem działania w różnych temperaturach nie jest chyba tu kluczowy.. bo kolejne pomiary będą dokonywane w bardzo zblizonych warunkach. Nawet wspominając te kominy termiczne to różnica w temp powietrza nie jest duża, a sam czujnik jest odporny na wpływ temperatury w przedziale 0-85 oC, co wystaarcza w zupełności.

Kluczową kwestia jest wiec nie odczytanie dokładnego cisnienia, ale różnicy w cisnieniach z kolejnych pomiarów.

Pozdrawiam, Kuba

Reply to
invalid unparseable

Tak czy inaczej kiedyś trzeba będzie zbudować komorę ciśnieniową i zdjąć kilka charakterystyk, bo teraz można sobie tylko gdybać. :-)

Wpływ temperatury badałem wstawiając działający logger do zamrażarki. Bazując na wewnętrznym źródle napięcia odniesienia przetwornika wskazania wysokości potrafiły zmienić się nawet o 175m przy różnicy tempertur 40stC (+26 -14)!!! W późniejszych wersjach z obecnym źródłem napięciowym wpływ temperatury zmniejszył się do chyba (nie mogę znaleźć tego pomiaru) 2m na

40stC. Ponieważ w tym zastosowaniu pomiary są względne (wzgledem punktu i temperatury startowej) i w praktyce nie przekraczają 10stC taka dokładność mi wystarcza. W prezentowanym locie temperatura wahała sięmiedzy 4,8 a 9,8stC.

Jakby co używam przetwornika od Analoga w lepszej wersji (są dwie).

Reply to
Piotr "PitLab" Laskowski

No nie wiem czy wystarczy. Prawdopodobnie będziesz chciał generować sygnał akustyczny a skoki sygnału 2-5 razy na sekundę są mało przyjemne dla ucha. W swoim wariometrze pomiary (a w zasadzie serie pomiarów) robię co 50ms, właśnie po to aby uzyskać płynny dźwięk.

Do wariometru nie, ale pewnie będziesz chciał wiedzieć na jakiej jesteś wysokości a do tego porzebny jest układ stabilny temperaturowo.

Czujnik tak, ale na wynik ma wpływ całość układu pomiarowego.

Piotrek.

formatting link

Reply to
Piotr "PitLab" Laskowski

Ale sygnał można generować na podstawie tego jaka była ostatnio zmierzona prędkość... Co prawda zmiana częstotliwosci pikania następowalaby 2-5 razy na sekundę, ale nie było by i tak źle :) Sprawdzone :)

ale to raczej jako dodatek bym traktował. Jasne, że przydatny, ale nie kluczowy w dzialaniu.

Czyli po prostu wybrać dobre źródł referencyjne, tak?

Pozdraiwam, Kuba

Reply to
invalid unparseable

Kwestia gustu. Mnie to drażniło.

Z tym zwykle jest największy problem. O ile przetwornik np ten MAX podawany przez Mariusza ma 0,8ppm/stC to wspominany LM385 ma 150ppm/stC. To pokazuje skalę problemu.

Reply to
Piotr "PitLab" Laskowski

Piotr "PitLab" Laskowski napisał(a):

Można użyć wewnętrzne źródło w Max187 ma 30ppm/st albo użyć zewnętrzne mające np 10ppm/st za 20zł. Tylko, że ograniczeniem może być jednak ten czujnik. Pracowałem z czujnikami na mniejszy zakres MPX5010 - też kompensowane ale gorsze bo miały 5% a nie 1.5. Niektóre miały temperaturowy dryft offsetu rzędu 50 inne 300ppm. Nie zdziwiłbym się gdyby te miały nawet 10ppm/st. Te wartości ppm to oczywiście od FS.

Reply to
Mariusz Dybiec

Sam już nie wiem jak to liczyć. Dokumentacja podaje ze bład czujnika liczy się jako:

+- (Pressure Error x Temp. Factor x 0.009 x VS). Czyli wpływ temperatury to (Temp factor =1) x 0,009 x (VS=5V), czyli błąd wynosi 0,045V full scale (~4,5V) czyli 100ppm w zakresie 0-85stC
Reply to
Piotr "PitLab" Laskowski

Piotr "PitLab" Laskowski napisał(a):

0,045V do 4,5V to nie 100ppm a 10000ppm czyli ok 1%. A zapomniałeś we wzorze o Pressure Error równym 1,5kPa czyli błąd wynosi1,5%. To oczywiście błąd maksymalny a tu przydałaby się zależność temperaturowa która może wynosić 20 albo i 100ppm/st (w poprzednim poscie zgubiłem jedno zero - miało być 100ppm/st). W przypadku offsetu dość łatwo ją zmierzyć i skalibrować jako liniową poprawkę temperaturową dla pomiaru ciśnienia. Wystarczy dołożyć LM35 albo jakiegoś DS.
Reply to
Mariusz Dybiec

Jasne, mój bład :-]

Celowo go pominąłem jako nieistotny ze względu na wpływ temperatury.

Z ciekawości właczyłem urzadzenie i wstawiłem na kilka minut do zamrażalnika (-17st) a potem do piekarnika wygrzanego do 58st. Wychodzi niezła kaszanka. O ile widać niewielki ale w miarę liniowy wpływ temperatury na pomiar napięcia (czyli być może dało by się skalibrować błąd nieliniowości układu pomiarowego) to wskazania ciśnienia są nieliniowe w funkcji temperatury. Po włożeniu do zamrażalnika widoczny był stromy skok wskazań ciśnienia w górę w ciagu 10s. Po 3:30 minutach ustabilizowała się temperatura, co widać jako lekkie siodełko na charakterystyce ciśnienia a potem jeszcze przez 7 minut ciśnienie rosło. To dało by się wytłumaczyć bezwładnością cieplną płytki drukowanej (czujnik temperatury jest poza płytką). Natomiast ciekawie zrobiło się po włożeniu do piekarnika. Ciśnienie gwałtownie spadło, temperatura ustaliła się po 1:30 min i od tej chwili ciśnienie zaczeło rosnąć. Być może jest to jakiś efekt działania wewnętrznego układu kompensacji. Będę musiał potestować jeszcze osobno sam czujnik ale to już nie dzisiaj.

Reply to
Piotr "PitLab" Laskowski

Piotr "PitLab" Laskowski napisał(a):

Ja badałem MPX5010D w jedynie zakresie 30 - 60 stC i efekt był dość liniowy. Liniową poprawką temperaturową dało się poprawić dokładność prawie o rząd. Poza tym ja miałem czujniki różnicowe, a te do pomiarów bezwzględnych mają jakąś objętość powietrza (?) po drugiej stronie i kłania się prawo Clapeyrona.

Po włożeniu do zamrażalnika widoczny był stromy skok

Przymocuj do niego na pastę jakiś kawałek aluminium i termometr.

Reply to
Mariusz Dybiec

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.