cw6.pdf

(617 KB) Pobierz
38085470 UNPDF
Ć wiczenie 6
WIZUALIZACJA PROCESU WYZNACZANIA SKŁADO-
WYCH IMPEDANCJI LC METOD Ą DYNAMICZN Ą Z WY-
KORZYSTANIEM Ś RODOWISKA LabVIEW
6.1. Wprowadzenie
Istot ę metody dynamicznej wyznaczania składowych impedancji, na przykładzie pomiaru
pojemno ś ci C x , obja ś nia rys. 6.1 [3]. W pierwszej fazie badany kondensator C x jest ładowany
do napi ę cia U m =E1 a nast ę pnie, po zał ą czeniu przycisku „POMIAR”, rozładowywany w ob-
wodzie R x C x . Kondensator rozładowuje si ę przez rezystancj ę wzorcow ą R x =1 M . System
pomiarowy na bazie karty NI USB 6008 mierzy czas rozładowania kondensatora C x do mo-
mentu, w którym napi ę cie na nim osi ą gnie warto ść u Cx (t=T)=U m /e . W tym momencie zmienia
swój stan komparator, na którym ustawiono tak ą warto ść napi ę cia odniesienia oraz zatrzymu-
je si ę pomiar czasu. Stała czasowa obwodu wynosi T=R x ·C x .
Rys. 6.1. Obja ś nienie dynamicznej metody wyznaczania składowych
impedancji na przykładzie pomiaru pojemno ś ci C x [3]
Przyj ę to nast ę puj ą ce oznaczenia:
t – czas,
T – stała czasowa obwodu T=R x ·C x ,
e – podstawa logarytmu naturalnego.
Uwzgl ę dniaj ą c, ż e kondensator C x rozładowuje si ę według funkcji:
u
(
t
)
=
U
exp
t
,
(1)
Cx
m
R
C
x
x
po logarytmowaniu mo ż na napisa ć :
ln[
u
(
t
)]
=
1
t
+
ln
U
.
(2)
Cx
R
C
m
x
x
Równanie (2) odpowiada równaniu prostej:
y
=
ax
+
b
,
(3)
gdzie:
y
=
ln[
u
(
t
)]
,
a
=
1
, x=t,
b ln
=
U
.
(4)
Cx
R
x C
m
x
System pomiarowy pracuje dyskretnie, dlatego napi ę cie na kondensatorze u Cx (t i ) jest mierzo-
ne w dokładnie okre ś lonym czasie t i . Na podstawie pomiarów otrzymuje si ę tablic ę danych [ t i ,
38085470.029.png 38085470.030.png
u Cx (t i ) ]. Dla przypadku ujemnej warto ś ci „współczynnika kierunkowego” a prostej, z równa ń
(3, 4) mo ż na wyprowadzi ć nast ę puj ą c ą zale ż no ść na mierzon ą pojemno ść C x [3, 4]:
n
2
n
t
n
t
2
i
i
C
=
i
=
1
i
=
1
.
(5)
x
n
n
n
R
n
t
ln[
u
(
t
)]
t
ln[
u
(
t
)]
x
i
Cx
i
i
Cx
i
i
=
1
i
=
1
=
1
Wzór (5) wynika z liniowej regresji danych dla minimum bł ę du ś redniokwadratowego. Ana-
logicznie mo ż na wyprowadzi ć współczynnik korelacji wzajemnej r 2 [3]:
n
2
n
t
i
n
t
ln[
u
(
t
)]
ln[
u
(
t
)]
i
=
1
i
Cx
i
n
Cx
i
i
=
1
i
=
1
r
2
=
.
(6)
2
2
n
n
t
ln[
u
(
t
)]
n
i
n
Cx
i
t
2
i
=
1
×
ln[
u
(
t
)]
2
=
1
i
n
Cx
i
n
i
=
1
i
=
1
Współczynnik ten wskazuje, czy istnieje zale ż no ść mi ę dzy elementami tablicy danych [ t i ,
u Cx (t i ) ]. Oczywi ś cie powinien przyjmowa ć warto ś ci bliskie jedno ś ci.
Dla zarejestrowanych dwóch próbek (n=2), wzór (5) przyjmuje posta ć :
C
=
t
2
t
.
(7)
{
}
x
R
ln[
u
(
t
)]
ln[
u
(
t
)]
x
Cx
1
Cx
2
6.2. Opis oprogramowania stworzonego w ś rodowisku LabVIEW
6.2.1. Uwagi wst ę pne
Ś rodowisko LabVIEW jest graficznym j ę zykiem programowania zaprojektowanym po to
by ułatwi ć tworzenie wirtualnych przyrz ą dów pomiarowych ( VI’s - Virtual Instruments ). W
przeciwie ń stwie do tradycyjnych j ę zyków programowania w LabVIEW u ż ywa si ę ikon za-
miast tekstu. Biegiem wykonywania programu kieruje nie kolejno ść wyst ę powania instrukcji,
ale przepływ strumienia danych. Oznacza to, ż e dany bloczek (instrukcja w formie graficznej)
zostanie wykonany dopiero wówczas, gdy wszystkie dane na wej ś ciu b ę d ą kompletne. Apli-
kacja zaprojektowana za pomoc ą LabVIEW składa si ę z dwóch cz ęś ci. S ą to: okno edycyjne
Panelu (Front Panel), gdzie buduje si ę interfejs u ż ytkownika oraz okno edycyjne Diagramu
(Block Diagram) w polu którego buduje si ę sie ć działa ń . Wa ż n ą cech ą LabVIEW jest to, i ż
firma „National Instruments” dostarcza wraz ze swoimi urz ą dzeniami do akwizycji danych
( DAQ’s - Data AcQuisition devices ) wsparcie projektowe dla ś rodowiska LabVIEW , co czyni
prace nad aplikacj ą znacznie bardziej przyjazn ą dla u ż ytkownika [1, 5, 6, 7].
6.2.2. Opis instrukcji DAQmxBASE
- DAQmxBase Create Task . Jest to instrukcja tworz ą ca nowe zadanie. Dostarcza
ona „ Task ID ” dla pozostałych bloczków w programie. Wi ę kszo ść parame-
trów wej ś ciowych tej funkcji jest ignorowana. W aplikacji u ż yta jest jako in-
strukcja bez parametrów.
- 2 -
i
i
1
38085470.031.png 38085470.032.png
- DAQmxBase Create Virtual Channel . Tworzy kanał wirtualny i dodaje go do
zadania. Aby u ż y ć tego VI nale ż y najpierw wykona ć DAQmxBase Create
Task. W powy ż szej wersji utworzony zostanie kanał wej ś cia analogowego.
Do wej ś cia VI nale ż y doprowadzi ć nast ę puj ą ce dane:
Physical channels : nazwa kanału fizycznego w celu skojarzenia go z utwo-
rzonym kanałem wirtualnym. W zaprezentowanym rozwi ą zaniu skorzy-
stano z pierwszego kanału pomiarowego .
Dev1/ai0
Maximum value : maksymalna warto ść (domy ś lnie napi ę cia), jak ą spo-
dziewamy si ę mierzy ć .
Minimum value : minimalna warto ść (domy ś lnie napi ę cia), jak ą spodzie-
wamy si ę mierzy ć .
Input terminal configuration : w tym miejscu nale ż y wybra ć tryb, w jakim
ma pracowa ć urz ą dzenie DAQ . S ą dwa tryby pracy: RSE (Reference Sin-
gle-Ended - sygnał doprowadzamy mi ę dzy mas ę a pin „+AI0”) - wówczas
mamy do dyspozycji osiem analogowych kanałów pomiarowych oraz tryb
DIFFERENTIAL (sygnał pomiarowy doprowadzamy mi ę dzy piny „+AI0”
a „-AI0”) - liczba kanałów pomiarowych spada do czterech, natomiast
rozdzielczo ść przetwornika A/C wzrasta do 12 bitów.
Task In : do tego wej ś cia doprowadzamy „ Task ID ” uzyskany np. za pomo-
c ą VI DAQmxBase Create Task .
Mo ż liwe s ą tak ż e inne opcje pracy tego VI:
- Wyj ś cie analogowe. - Wej ś cie cyfrowe.
- Wyj ś cie cyfrowe. Jako parametry wej ś ciowe dla tego VI nale ż y doprowadzi ć :
Lines - nazwa linii cyfrowej lub portu w celu skojarzenia go z utworzonym
kanałem wirtualnym Dev1/port0 .
Line grouping - parametr okre ś la czy pogrupowa ć linie portu w jeden wirtu-
alny kanał czy dla ka ż dej linii portu stworzy ć oddzielny. W aplikacji zasto-
sowano pierwszy sposób - jeden kanał dla wszystkich linii
- DAQmxBase Timing . Za pomoc ą tego VI ustawia si ę cz ę stotliwo ść próbkowa-
nia, ilo ść zebranych próbek a tak ż e dokonuje wyboru czy nabywanie danych
ma si ę odbywa ć ci ą gle, czy zako ń czy ć po jednym cyklu. Jako dane wej ś ciowe
nale ż y doprowadzi ć :
one channel for all lines
Rate - cz ę stotliwo ść próbkowania ustawiana w próbkach na kanał na sekun-
d ę .
Source - ź ródło sygnału zegarowego (niepoł ą czone oznacza, ż e wykorzy-
stywany jest wewn ę trzny zegar karty).
Active edge - pole wyboru: czy próbki maj ą by ć nabywane przy rosn ą cym
(domy ś lnie) czy przy opadaj ą cym zboczu sygnału zegarowego.
Sample mode - okre ś la, w jaki sposób urz ą dzenie nabywa lub generuje
próbki. W opisywanej aplikacji u ż yto trybu Finite Samples
, co oznacza, ż e
nabyta zostanie okre ś lona ilo ść próbek.
Samples per channel - okre ś la ilo ść próbek do nabycia lub wygenerowania
(pod warunkiem, ż e pole Sample mode zostanie ustawie w tryb Finite Sam-
ples ).
- 3 -
38085470.001.png 38085470.002.png 38085470.003.png 38085470.004.png 38085470.005.png 38085470.006.png 38085470.007.png 38085470.008.png 38085470.009.png 38085470.010.png 38085470.011.png 38085470.012.png 38085470.013.png 38085470.014.png 38085470.015.png 38085470.016.png 38085470.017.png 38085470.018.png 38085470.019.png
- DAQmxBase Trigger . Ten VI konfiguruje urz ą dzenie DAQ tak, aby zacz ąć na-
bywa ć próbki wówczas, gdy na odpowiedni pin karty przyjdzie narastaj ą ce lub
opadaj ą ce (niepopierane dla NI USB 6008 ) zbocze sygnału cyfrowego. Jako
parametry nale ż y poda ć :
Source - okre ś la gdzie znajduje si ę ź ródło sygnału cyfrowego, które zostanie
u ż yte do wyzwolenia procesu akwizycji danych. W opisywanej aplikacji
podł ą czono tam
.
- DAQmxBase Start Task . Przej ś cie zadania w tryb wykonania. Ten VI jest wy-
magany dla wszystkich aplikacji DAQmxBASE. Umieszcza si ę go po dokona-
niu pełnej konfiguracji kanałów.
- DAQmxBase Read. Ten VI czyta próbki z wcze ś niej utworzonego zadania. W
zaprezentowanej wersji, na wyj ś ciu otrzymuje si ę tablic ę danych, np. z wej ść
analogowych. Jako dane wej ś ciowe nale ż y poda ć :
/Dev1/PFI0
Number of samples per channel - okre ś la ile próbek nale ż y odczyta ć . Je ś li
zostawia si ę niepoł ą czone, a przy pomocy VI DAQmxBase Timing zadanie
zostało ustawione na nabywanie sko ń czonej liczby próbek, wówczas VI
czeka a ż zadanie zgromadzi wszystkie żą dane próbki i dopiero je przeczyta.
Timeout - okre ś la czas, jaki VI ma czeka ć a ż za żą dane próbki stan ą si ę do-
st ę pne. Je ś li czas mija, VI zwraca bł ą d wraz z próbkami, które zdołał odczy-
ta ć .
- DAQmxBase Write . Ten VI wysyła do zadania, które jest skojarzone z wyj-
ś ciem cyfrowym, pojedyncz ą 8 bitow ą zmienn ą typu całkowitego. Inaczej
mówi ą c tego VI u ż ywa si ę , aby wysła ć dane od razu na wszystkie linie portu.
Przykładowo, aby uaktywni ć pierwszy pin portu, nale ż y przypisa ć polu data
warto ść 1; aby uaktywni ć wszystkie linie portu, pole data powinno przyj ąć
warto ść 255 (255 Dec =11111111 Bin).
- DAQmxBase Stop Task . Ten VI zatrzymuje zadanie i zwraca je do stanu, w ja-
kim było przed wykonaniem DAQmxBase Start Task . U ż ycie tego VI jest wy-
magane dla ka ż dej aplikacji DAQmxBase. Je ś li w p ę tli zostaje u ż yty DAQ-
mxBase Start Task w tej samej p ę tli musi zosta ć u ż yty DAQmxBase Stop Task ,
cho ć ci ą głe u ż ywanie tych VI’s w aplikacji zmniejsza efektywno ść programu.
- DAQmxBase Clear Task . Ten VI czy ś ci zadanie, zwalnia, zatrzymuje je (je ś li to
jest konieczne) oraz zwalnia zasoby pami ę ci zarezerwowane przez zadanie. Po
wykonaniu instrukcji nie mo ż na ponownie u ż y ć zadania. Je ś li w p ę tli wyst ę pu-
je DAQmxBase Create Task lub DAQmxBase Create Virtual Channel w tej
samej p ę tli musi wyst ą pi ć DAQmxBase Clear Task.
6.2.3. Event Structure
Event Structure zawiera jeden lub wi ę cej diagramów, z których je ś li wykonuje si ę struk-
tura, wykonuje si ę dokładnie jeden diagram - rys. 6.2. Event Structure czeka, a ż na głównym
pulpicie wyst ą pi zaprogramowane zdarzenie, aby nast ę pnie wykonuj ą c odpowiedni ą ramk ę
obsłu ż y ć dane zdarzenie. Je ś li w ci ą gu czasu, który jest podł ą czony do klepsydry w lewym
górnym rogu struktury, ż adne z zaprogramowanych zdarze ń nie wyst ą pi, wówczas wykonuje
si ę ramka Timeout. Aby wył ą czy ć wykonywanie si ę tej ramki i po to by wydłu ż y ć czas ocze-
kiwania struktury na zdarzenie w niesko ń czono ść , nale ż y podł ą czy ć do terminalu w lewym
górnym rogu struktury warto ść (-1). Aby stworzy ć procedur ę , która wykona si ę po wci ś ni ę ciu
okre ś lonego przycisku, nale ż y [5]:
- 4 -
umie ś ci ć przycisk na panelu u ż ytkownika,
38085470.020.png 38085470.021.png 38085470.022.png 38085470.023.png 38085470.024.png 38085470.025.png 38085470.026.png
w obr ę bie struktury Event klikn ąć prawym przyciskiem myszy i wybra ć Add Event Ca-
se… ” oraz post ę powa ć zgodne z rys. 6.2, a utworzona zostanie ramka wewn ą trz której b ę -
dzie mo ż na oprogramowa ć wybrane zdarzenie.
Rys. 6.2. Sposób tworzenia nowej ramki w Event Structure
6.2.4. Kontrolowanie biegu programu w LabVIEW
Jak wspomniano w p. 6.2.1, w LabVIEW kolejno ść wykonywania poszczególnych in-
strukcji, zale ż y od przepływu danych pomi ę dzy kolejnymi VI . W momencie, gdy do okre ś lo-
nej instrukcji dostarczone zostan ą wszystkie dane wej ś ciowe b ę dzie ona wykonana. Problem
powstaje wówczas, gdy nie mo ż na przewidzie ć przepływu danych, a nale ż y utrzyma ć kolej-
no ść wykonywania si ę poszczególnych operacji. Mo ż na wtedy wykorzysta ć Flat Sequence
Structure ”. Kolejne ramki tej struktury b ę d ą wykonywane po sobie.
Jednak czasami mo ż na unikn ąć konieczno ś ci uciekania si ę do stosowania wy ż ej wymie-
nionej struktury. Mamy wtedy do czynienia z dwoma niezale ż nymi zadaniami, które nale ż y
zsynchronizowa ć . Wa ż ne jest, aby najpierw uruchomi ć zadanie akwizycji danych, a nast ę pnie
wystawi ć sygnał logicznej jedynki na Pin 1 Port 0 karty. Synchronizacj ę osi ą ga si ę za pomoc ą
linii bł ę du, czyli za pomoc ą przepływu danych - rys. 6.3. Jest to sposób najbardziej zalecany
podczas programowania w LabVIEW .
Rys. 6.3. Kierowanie biegiem programu z wykorzystaniem linii bł ę du
- 5 -
38085470.027.png 38085470.028.png
Zgłoś jeśli naruszono regulamin