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
Moderatorzy:Jacek Bogusz, Moderatorzy
-
- -
- Posty:269
- Rejestracja:1 kwie 2003, o 20:32
- Lokalizacja:Bielsko-Biała
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.
-
- -
- Posty:269
- Rejestracja:1 kwie 2003, o 20:32
- Lokalizacja:Bielsko-Biała
A jakiś konkretny typ/rodzina układu?
[ Dodano: 23-12-2004, 16:15 ]
Lekka zmiana koncepcji
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.
[ Dodano: 23-12-2004, 16:15 ]
Lekka zmiana koncepcji
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.
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.
-
- -
- Posty:269
- Rejestracja:1 kwie 2003, o 20:32
- Lokalizacja:Bielsko-Biała
Kurcze nie ma niczego takiego na stronie ATMELA! www.atmel.com Gdzie konkretnie się z tym spotkałeś?
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?
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?
-
- -
- Posty:269
- Rejestracja:1 kwie 2003, o 20:32
- Lokalizacja:Bielsko-Biała
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.
-
- -
- Posty:269
- Rejestracja:1 kwie 2003, o 20:32
- Lokalizacja:Bielsko-Biała
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?
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?
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 146 razy
-
- -
- Posty:269
- Rejestracja:1 kwie 2003, o 20:32
- Lokalizacja:Bielsko-Biała
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!
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
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.Przecież to trzeba całkować numerycznie, zamieniać funkcję sinus na wielomiany... itp.
"Wartość skuteczna prądu sinusoidalnego jest równa amplitudzie prądu podzielonego przez pierwiastek z dwóch."Jak obliczyć wartość skuteczną?
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.
Musisz zdebugować program i zobaczyć ile czasu zajmie procesorowi wykonanie tego programu.Ale czy procek to uciągnie, to nie wiem... Liczby rzeczywiste i pierwiastek!
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.
-
- -
- Posty:269
- Rejestracja:1 kwie 2003, o 20:32
- Lokalizacja:Bielsko-Biała
No jasne, że proste, tylko właśnie za proste! 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."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?
A jeszcze jedno: Do całkowania prądu czy napięcia użyłem wzoru:
Jaki jest wzór do obliczania mocy P, Q z przebiegu p(t)?
Widzę, że jesteś strasznie dociekliwy . 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.No jasne, że proste, tylko właśnie za proste! To musi być liczone za cały okres
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?
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
Jaki jest wzór do obliczania mocy P, Q z przebiegu p(t)?
-
- -
- Posty:269
- Rejestracja:1 kwie 2003, o 20:32
- Lokalizacja:Bielsko-Biała
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
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
Kto jest online
Użytkownicy przeglądający to forum: Google [Bot] i 0 gości