Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Przetwornik: prąd->liczba

_Wojciech_
-
-
Posty:269
Rejestracja:1 kwie 2003, o 20:32
Lokalizacja:Bielsko-Biała
Przetwornik: prąd->liczba

Postautor: _Wojciech_ » 23 gru 2004, o 13:44

Mam urządzenie zasilane trójfazowo 3x230V i zero. Na każdej fazie jest przekładnik prądowy dający sygnał proporcjonalny do prądu w fazie w zakresie 0 do ok. 200mA (do ustawienia, może być inaczej). Znacie jakieś przetworniki: sygnał prądowy->postać cyfrowa (liczba 0-255 lub cos podobnego)? Szeregowe bądź równoległe. Chce to podłączyć do uC i mierzyć wartość chwilową prądu.

LucASWw
-
-
Posty:248
Rejestracja:23 sie 2003, o 18:26
Lokalizacja:UK

Postautor: LucASWw » 23 gru 2004, o 14:39

Najodpowiedniejszym przetwornikiem będzie ADC 8bitowy z wejściem prądowym. Przykładów jest dużo, choćby produkty firmy Burn-brown, dzisiejszy Texas Instruments.

_Wojciech_
-
-
Posty:269
Rejestracja:1 kwie 2003, o 20:32
Lokalizacja:Bielsko-Biała

Postautor: _Wojciech_ » 23 gru 2004, o 15:33

A jakiś konkretny typ/rodzina układu?

[ Dodano: 23-12-2004, 16:15 ]
Lekka zmiana koncepcji :D
Sprawa jest bardziej skomplikowana:To ma być pomiar wartości skutecznych. Moc sobie zmierzę układem ADE7752.
Pozostaje prąd i napięcie. W ofercie Analog Devices nie widziałem mierników wartości skutecznych U i I na wzór tego układu mierzącego moc.

LucASWw
-
-
Posty:248
Rejestracja:23 sie 2003, o 18:26
Lokalizacja:UK

Postautor: LucASWw » 23 gru 2004, o 16:49

Jeżeli chodzi Ci o przetworniki mające zastosowanie w energoelektronice to znalezienie odpowiedniego będzie bardzo trudne, ponieważ nie są popularne wśród konstruktorów amatorów. Atmel wypuścił kilka kostek umożliwiających pomiar mocy w układach prądu przemiennego. Są to kostki z serii AT 73500. Zmierzysz nimi wszystkie parametry elektryczne charakteryzujące sieć prądu przemiennego.

_Wojciech_
-
-
Posty:269
Rejestracja:1 kwie 2003, o 20:32
Lokalizacja:Bielsko-Biała

Postautor: _Wojciech_ » 23 gru 2004, o 17:19

Kurcze nie ma niczego takiego na stronie ATMELA! www.atmel.com Gdzie konkretnie się z tym spotkałeś?

LucASWw
-
-
Posty:248
Rejestracja:23 sie 2003, o 18:26
Lokalizacja:UK

Postautor: LucASWw » 23 gru 2004, o 20:28

Atmel zaklasyfikował ten układ jako niezalecany do nowych konstrukcji. Powód: nie wiem. Datasheet'y do tych układów znajdziesz w internecie.
Powracająć do ADE7752. Skoro on umożliwia pomiar mocy, to musi także mierzyć napięcia i prądy. A one nie są dostępne dla zewnętrznego mikrokontrolera w celu dalszej obróbki?

_Wojciech_
-
-
Posty:269
Rejestracja:1 kwie 2003, o 20:32
Lokalizacja:Bielsko-Biała

Postautor: _Wojciech_ » 23 gru 2004, o 21:39

Niby da się mierzyć prąd ale wydaje mi się to zdziebko skomplikowane... Wolałbym jakiś gotowy "kombajn" mierzący wszystko.
Albo ostatecznie przetworniki typu: wartość skuteczna U czy I->impulsy czy coś takiego.

LucASWw
-
-
Posty:248
Rejestracja:23 sie 2003, o 18:26
Lokalizacja:UK

Postautor: LucASWw » 23 gru 2004, o 23:18

Jak chcesz kombajn mierzący wszystko to musisz sam pomyśleć. Jak chcesz to podłączyć do uC, to wystarczy w uC dodać obsługę zewnętrznych ADC'ów oraz arytmetykę wyliczającą z odtrzymanych danych z ADC: prąd, napięcie i moc. Rozwiązanie Atmel'a załatwia to wszystko, ale Atmel znikł z tym rozwiązaniem. Może pracuje nad ulepszoną wersją, chociaż nie wiem co było w tym złe, mi ten układ bardzo pomógł. Jeżeli układ oparłeś na AVR'rze, to jest nota aplikacyjna AVR465 pokazująca jak mierzyć moc odbiorników jednofazowych, ale po drobnych przeróbkach nadaje się także do trójfazowych.

_Wojciech_
-
-
Posty:269
Rejestracja:1 kwie 2003, o 20:32
Lokalizacja:Bielsko-Biała

Postautor: _Wojciech_ » 23 gru 2004, o 23:33

A mógłbyś mi na e-mail podesłać PDF'a do tego układu Atmela? Kurcze nigdzie go nie ma. Wszystkie linki w google są nieaktualne. Jeżeli układ nie jest już produkowany, to przynajmniej chciałbym zobaczyć jak to działa.

A co do programowego obliczania P,U,I z wartości chwilowych u(t) i i(t) to raczej dziękuje... Przecież to matematyczna masakra i jaki procek to uciągnie?

LucASWw
-
-
Posty:248
Rejestracja:23 sie 2003, o 18:26
Lokalizacja:UK

Postautor: LucASWw » 24 gru 2004, o 09:34

A co do programowego obliczania P,U,I z wartości chwilowych u(t) i i(t) to raczej dziękuje... Przecież to matematyczna masakra i jaki procek to uciągnie?
:) :)
Dlaczego? Jak program piszesz w języku wyższego poziomu niż asembler, to można załatwić to w paru linijkach. W przypadku procka to wystarczy nawet poczciwa '51.
Jednak programu do zbierania danych bym nie polecał w języku innym jak asembler. Program musi zebrać kompletne dane, aby policzyć prawidłowe wartości.

P.S. Jeżeli chodzi o u(t) i i(t) to wzorki, które przetrawi procesor, są w datasheet'ach do tych układów.
Załączniki
doc1035.zip
Chipset Solution for Watt-hour Meters
AT73C500 with AT73C501 or AT73C502
(254.97KiB)Pobrany 145 razy

_Wojciech_
-
-
Posty:269
Rejestracja:1 kwie 2003, o 20:32
Lokalizacja:Bielsko-Biała

Postautor: _Wojciech_ » 24 gru 2004, o 10:19

Dzięki za plik.
Co do tych obliczeń nie jestem pewny... Np. mam za okres powiedzmy 1000 wartości od -128 do 128. I co? Jak obliczyć wartość skuteczną?
Przecież to trzeba całkować numerycznie, zamieniać funkcję sinus na wielomiany... itp. :?

[ Dodano: 24-12-2004, 11:53 ]
No dobra, nawet nie jest to aż taka masakra :) O ile się nie pomyliłem gdzieś.
Ale czy procek to uciągnie, to nie wiem... Liczby rzeczywiste i pierwiastek!

Taki kodzik-liczy wartość skuteczną przebiegu sinusoidalnego 50Hz, próbkowanego 20kHz (przykład), w oparciu o całkowanie Riemana (czy jakoś tak). Wynik jest niewiarygodnie dokładny!

Kod: Zaznacz cały

#include <stdio.h> #include <math.h> #define PI (double)3.14 long i; double Tablica[20000]; double A,Sk,T,Omega,t,fi,Kat,f_probkowania,f,B; long IloscKrokowNaOkres; int main(void) { A=230*sqrt(2.0); //wartosc maksymalna przebiegu dla przykładu napięcie sieci 230V Sk=0; //wartosc skuteczna Omega=314; //wiadomo fi=0; //faza przebiegu t=0; // chwila czasu f=50; //czestotliwosc sinusoidy T=1/f; //Okres f_probkowania=10000; //czestotliwosc probkowania IloscKrokowNaOkres=(long)(f_probkowania/f); for (i=0;i<IloscKrokowNaOkres;i++) { //calkowanie najprostrze jakie mozna :) Kat=Omega*t+PI*fi/180; Tablica[i]=A*sin(Kat); //printf("%f ",Tablica[i]); Sk+=(Tablica[i]*Tablica[i])*(T/IloscKrokowNaOkres); t+=T/IloscKrokowNaOkres; } Sk=Sk/T; Sk=sqrt(Sk); B=100*(Sk-A/sqrt(2.0))/A; //blad w % printf("Sk=%f \n",Sk); printf("Blad=%f \n",B); return 0; } //Wynik: //Sk=230.058297 //Blad=0.017923

LucASWw
-
-
Posty:248
Rejestracja:23 sie 2003, o 18:26
Lokalizacja:UK

Postautor: LucASWw » 24 gru 2004, o 15:04

Przecież to trzeba całkować numerycznie, zamieniać funkcję sinus na wielomiany... itp. :?
Jak masz jeszcze książkę z maty, ze studiów, to zobacz do działu "Całka oznaczona - wiadomości podstawowe" tam jest kilka pomocnych informacji.
Jak obliczyć wartość skuteczną?
"Wartość skuteczna prądu sinusoidalnego jest równa amplitudzie prądu podzielonego przez pierwiastek z dwóch."
Przekładając na język programisty, z tablicy, gdzie są zapisane wszystkie wartości napięcia z całego okresu, należy wyszukać największą liczbę (w tym wypadku będą 4: FFh, 80h, FFh, 80h) wybrać jedną i podzielić ją przez pierwiastek z 2. Proste, prawda?

Program, który napisałeś, na oko wygląda dobrze.
Wykorzystanie całkowania Riemanna wydaje się sensownym rozwiązaniem. Innych metod nie ma potrzeby stosowania, bo są dużo bardziej skomplikowane, a dadzą prawie to samo.
Ale czy procek to uciągnie, to nie wiem... Liczby rzeczywiste i pierwiastek!
Musisz zdebugować program i zobaczyć ile czasu zajmie procesorowi wykonanie tego programu.
DAC da Ci liczby całkowite, toteż nie widzę powodu stosowania liczb rzeczywistych, wyrzucić można też linijkę obliczającą błąd. Chyba nie potrzebujesz aż takiej dokładności?
Wtedy to powinno iść bardziej efektywnie.

_Wojciech_
-
-
Posty:269
Rejestracja:1 kwie 2003, o 20:32
Lokalizacja:Bielsko-Biała

Postautor: _Wojciech_ » 24 gru 2004, o 16:10

"Wartość skuteczna prądu sinusoidalnego jest równa amplitudzie prądu podzielonego przez pierwiastek z dwóch."
Przekładając na język programisty, z tablicy, gdzie są zapisane wszystkie wartości napięcia z całego okresu, należy wyszukać największą liczbę (w tym wypadku będą 4: FFh, 80h, FFh, 80h) wybrać jedną i podzielić ją przez pierwiastek z 2. Proste, prawda?
No jasne, że proste, tylko właśnie za proste! :D To musi być liczone za cały okres. Jakoś sobie nie wyobrażam,żeby profesjonalne mierniki szukały największej wartości i dzieliły ja przez pierwastek z dwóch... Może się mylę, ale za duże prawdopodobieństwo błędu jak dla mnie.

A jeszcze jedno: Do całkowania prądu czy napięcia użyłem wzoru:
Obrazek
Jaki jest wzór do obliczania mocy P, Q z przebiegu p(t)?

LucASWw
-
-
Posty:248
Rejestracja:23 sie 2003, o 18:26
Lokalizacja:UK

Postautor: LucASWw » 25 gru 2004, o 13:12

No jasne, że proste, tylko właśnie za proste! :D To musi być liczone za cały okres
Widzę, że jesteś strasznie dociekliwy :D. Jeszcze raz mówię, że będziesz miał do czynienia z przebiegiem sinusoidalnym. Jak chcesz się przekonać, to rozwiń sinusa w szereg Fourier'a, na nim oblicz Usk, p, q, i ,u. A wyjdzie Ci to samo co jest podawane w książkach dla elektryków.
Twoje rozważania są słuszne dla przebiegów nieznanych z góry. A skoro już wiadomo co to jest, to po co komplikować program, dokładając mu algorytmy "rozszyfrujące" co to jest za przebieg?

Jaki jest wzór do obliczania mocy P, Q z przebiegu p(t)?
p(t) jest to moc chwilowa. Moc czynna P jest to wartość średnia p(t), a Q jest związany zależnością S*S=P*P+Q*Q ,gdzie: S-moc pozorna; P-moc czynna; Q-moc bierna. Dodatkowo znak Q zależy od sin kąta fazowego i jest wyrażony zależnością: arccos(P/S)=fi

_Wojciech_
-
-
Posty:269
Rejestracja:1 kwie 2003, o 20:32
Lokalizacja:Bielsko-Biała

Postautor: _Wojciech_ » 25 gru 2004, o 17:01

p(t) jest to moc chwilowa. Moc czynna P jest to wartość średnia p(t)
Kurcze no jasne! Jak mogłem zapomnieć :oops: Pozostałe wzory oczywiście znam :D Dzięki za pomoc-na razie chyba wystarczy!

LucASWw
-
-
Posty:248
Rejestracja:23 sie 2003, o 18:26
Lokalizacja:UK

Postautor: LucASWw » 25 gru 2004, o 17:18

Najciemniej jest pod latarnią :) . Cieszę się, że mogłem pomóc.

Wat
-
-
Posty:14
Rejestracja:13 sty 2004, o 18:47
Lokalizacja:Gliwice

Postautor: Wat » 27 gru 2004, o 09:37

Witam!

Ja również miałem taki problem z pomiarem napięcia i prądu. Szczęśliwie sinusoida była "cała" i rozwiązałem go tak jak Wy, z tą różnicą, że zamiast programowo szukać wartości amplitudy przebiegu zastosowałem przetwornik wartości szczytowej na CA3140, który też wzmacniał sygnał z bocznika. Dalej szło to wejście wewnętrznego przetwornika A/D uC i wyświetlało żądaną wartość. 8-bitowa rozdzielczość mi nie przeszkadzała. Za jakiś czas będę musiał zrobić 12 takich amperomierzy/woltomierzy w obudowie DIN (106 mm z czerwoną szybką). Jeśli jesteście zainteresowani to mogę zrobić jeszcze jeden.

pozdrwawiam
Wat

Wróć do „Elektronika - tematy dowolne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości