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
,
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
- 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 -
-
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,
•
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 -
Plik z chomika:
phpph
Inne pliki z tego folderu:
cw2.pdf
(279 KB)
cw1.pdf
(165 KB)
cw7.pdf
(340 KB)
cw6.pdf
(617 KB)
cw5.pdf
(193 KB)
Inne foldery tego chomika:
2005
2006
Automatyka
Mikrokontrolery i technika cyfrowa
Pr_Elektronik
Zgłoś jeśli
naruszono regulamin