instrukcja do laborek


LABORATORIUM SYSTEMÓW POMIAROWYCH

KTP IR PW

MATERIAŁY POMOCNICZE DO ĆWICZEŃ LABORATORYJNYCH ( 1 - 6 )

Warszawa 2001


SPIS TREŚCI

ĆWICZENIE 1

Symulator systemu pomiarowego w standardzie IEC-625. 1 3

ĆWICZENIE 2

Magistrala systemu pomiarowego w standardzie IEC-625. 2 (IEEE-488.2) 12

ĆWICZENIE 3

Programowanie systemu pomiarowego w standardzie IEEE-488.2 (IEC-625.2) 16

ĆWICZENIE 4

Środowisko programowe labwindows / cvi 19

ĆWICZENIE 5

Środowisko pomiarowe HP VEE 21

ĆWICZENIE 6

Metoda regresji liniowej planowanie eksperymentu 33

Wszystkie teksty instrukcji do ćwiczeń 1 - 6 dostępne są również na stronie laboratorium spom:

http://www.ire.pw.edu.pl/zur/ktp/spomlab/


ĆWICZENIE 1

SYMULATOR systemu pomiarowego w standardzie IEC-625. 1

Menu programu

Projekt - otwiera i zapisuje projekt.

Program -konfiguracja schematu połączeń urządzeń, przyporządkowanie parametrów i adresów urządzeń , sprawdzenie poprawności wprowadzonych danych oraz wykonanie pliku z programem określającym działanie systemu IEC-625.1.

Test - służy do graficznego przedstawienia stanów linii IEC-625.1.

Ustawienia - konfiguracja programu.

    1. Menu `Projekt`

Nowy projekt - usuwa z pamięci schemat połączeń i parametry urządzeń.

Otwórz projekt - otwiera plik z zapisanym schematem połączeń oraz z parametrami urządzeń.

Zapisz projekt - zapisuje w pliku schemat połączeń oraz parametry urządzeń.

Wyjście - wyjście z programu.

    1. Menu `Program `

Sprawdzenie poprawności - sprawdza poprawność wprowadzonych danych.

Interpretacja kodu - interpretuje kod programu , który określa działanie szyny IEC-625.1.

Wczytanie programu - wczytuje plik z programem.

Pokaż konfigurację systemu IEC - służy do graficznego konfigurowania układu (wybór urządzeń , wzajemne połączenia, parametry urządzeń, adresy).

Zakończ edycje systemu IEC - zamyka edytor graficzny.

Otwórz plik z kodem programu - otwiera plik z kodem programu określającym działanie magistrali IEC.

    1. Menu `Symulacja`

Otwórz symulację - otwiera okno z przebiegami logicznymi występującymi na liniach szyny IEC-625.1.

Zamknij symulację - zamyka okno z symulacją.

    1. Menu `Ustawienia`

Konfiguracja symulatora - umożliwia skonfigurowanie okna z wynikami symulacji.

Menu `Pomoc' nie zawierają jeszcze dostępnych pozycji.

Obsługa edytora konfiguracji układu.

    1. Otwarcie edytora

Otwarcie edytora graficznego nastąpi po otwarciu projektu lub po wybraniu opcji „Program => Pokaż konfigurację systemu IEC”. Każde dostępne urządzenie reprezentowane jest jako ikona posiadająca wejście, wyjście, wejście na zasilanie ( w zależności od rodzaju obiektu) symbolizowane przed czarne punkty na brzegach ikony. Połączenia między urządzeniami są symbolizowane przez łączące ikony.

0x08 graphic
Rys. 1. Symbol wzmacniacza

    1. Wybór urządzenia

Wybranie urządzenia następuje przez dwukrotne kliknięcie lewym przyciskiem myszy, podczas gdy pod kursorem myszy nie znajduje się żadne inne urządzenie. Spowoduje to ukazanie się listy dostępnych urządzeń , z których użytkownik wybiera żądany element przez naciśnięcie przycisku z nazwą urządzenia.

0x08 graphic

Rys.2. Okno z dostępnymi urządzeniami

Jeśli użytkownik nie chce wybierać żadnego z urządzeń należy wcisnąć krzyżyk znajdujący się w prawym górnym rogu.

    1. Łączenie urządzeń.

Łączenie urządzeń następuje przez ustawienie kursora myszy na czarnym punkcie przy brzegu ikony. Wówczas należy wcisnąć lewy klawisz myszy co spowoduje zmianę wyglądu kursora na krzyżyk. Podtrzymując naciśnięty klawisz myszy należy przesunąć kursor myszy na czarny punkt innej ikony i puścić przycisk myszy. Jeśli połączenie między urządzeniami jest możliwe zostanie to pokazane przez wyświetlenie linii łączącej te urządzenia. Jeśli to połączenie jest błędne to urządzenia pozostaną nadal rozłączone.

0x08 graphic

Rys. 3. Rysunek przedstawiający połączone urządzenia.

    1. Określenie parametrów urządzenia i jego adresu .

Należy naprowadzić kursor na ikonę urządzenia i dwukrotnie kliknąć myszą . Spowoduje to pojawienie się okna w którym będzie można dokonać parametryzacji urządzenia.

0x08 graphic

Rys. 4. Okno do określenia parametrów urządzenia.

Okno ma możliwość wpisywania danych bez użycia klawiatury ( strzałki w górę lub w dół). Wciśnięcie klawisza `OK' spowoduje zaakceptowanie danych, natomiast użycie klawisza `Cancel' pozostawi dane o wartościach sprzed wywołania tego okna. Określenie parametrów jest możliwe dla wszystkich elementów z wyjątkiem obiektów badanych.

    1. Usunięcie urządzenia.

W celu usunięcie urządzenia należy najechać kursorem myszy na urządzenie oraz nacisnąć prawy klawisz myszy. Spowoduje to pojawienie się okna w którym jedną z pozycji będzie przycisk `usuń'. Należy go wcisnąć co spowoduje usunięcie urządzenia z pamięci. Usunięciu z pamięci podlegać będą również połączenia tego urządzenia.

Język programowania

    1. Przypisywanie wartości liniom szyny:

  1. jednoliniowe.

atn=1

eoi = 0

  1. wieloliniowe.

dio =34

    1. Deklaracja zmiennych:

  1. zmienne tekstowe ( TXT0, TXT1, TXT2, ...,TXT9 ).

TXT0 = "asdfdf”

  1. zmienne numeryczne ( INT0, INT1, INT2, ...,INT9 ).

INT1=5

INT4=INT1

INT1=INT4 + 5

INT1=TXT0[n] , gdzie n - stała lub zmienna określająca n - ty element TXT0 ( TXT[0] pierwszy element )

INT2=BitDio(n) , gdzie n = 0,1,2,.. 7

INT2 = nrfd

INT2=dio

  1. tablica ciągów

string zmiennanazwa = {"F30Z32","F300Z32","F3000Z32"}

INT1 = sgen[int9][int0]

  1. tablica liczb

number zmiennanazwa = {6,7,8}

int2 = ngen[int9]

    1. Pętla ` while ' :

while ( INT0 == 4 )

...

...

endw

Operatory logiczne : ==, !=, >, <, <=, >=

    1. Instrukcja warunkowa ` if `

if ( INT0 == 5) if ( INT0 == 5)

... ...

... LUB ...

else endi

...

...

endi

Operatory logiczne jak w pętli ` while'.

Kody błędów mogących się pojawić podczas analizy kodu programu.

    1. Błąd ogólny:

10 - nierozpoznane polecenie.

11 - za mała tablica na dane.

53 - brak ustawionej linii ren

    1. Przypisanie zmiennym wartości:

21 - brak `='.

22 - są aż dwa znaki `-` i `+'.

23 - próba operacji arytmetycznej ze zmienną tekstową.

24 - brak ` przy przypisaniu ciągu zmiennej tekstowej.

25 - brak `[` lub `]'.

26 - zły parametr w `[...]'.

    1. Błędy pętli while

31 - brak końca pętli while (brak endw)

32 - nieskończona pętla

33 - nierozpoznane funkcja logiczna w while

34 - brak `)'

35 - brak zmiennej

36 - brak liczby

    1. pobranie wartości linii DIO

41 - brak `(`.

42 - brak `)'.

43 - zły szyk polecenia.

    1. składna poleceń dotyczących magistrali IEC 625.1

51 - brak `=' , `+' lub `-`.

52 - przypisanie złej wartości.

błąd transmisji - ` nrfd=0 ' i ` ndac=0 ' .

Wyniki symulacji są umieszczane w pliku `wynik'.

Wynik symulacji.

Aby obejrzeć wyniki symulacji należy wybrać opcję `Symulacja => Otwórz symulację'. Spowoduje to ukazanie się okna, w który będą się znajdować nazwy linii, przebiegi na magistrali, stany funkcji interfejsowych poszczególnych urządzeń.

0x08 graphic

Rys. 5. Graficzne przedstawienie przebiegów na magistrali.

Prawe górne okno zawiera przebiegi magistrali. Znajduje się w nim pionowa niebieska linia wskazująca na odpowiednią chwilę czasową. Linię tę można przesuwać w dowolne miejsce za pomocą myszy - kliknięcie lewego przycisku przeniesie linię w miejsce kursora myszy. Przesunięci tej linii może nastąpić również poprzez naciśnięcie jednego z dwu przycisków , znajdujących się pod wykresem. Przesuwają one linię w prawo lub lewo o jedną chwilę czasową. Lewe górne okno to stany linii magistrali w chwili określonej przez wyżej omówiony marker. Cały przebieg zdarzeń na magistrali nie mieści się w prawym górnym oknie więc do przesuwania go w przód lub w tył służy suwak umieszczony pod przebiegiem.

Dolne okno wyświetla dla każdego z urządzeń stany funkcji interfejsowych, zawartość bufora, adresy urządzeń oraz stany sygnałów urządzeń takich jak STB, MTA, MLA.

Okno symulacji zamyka się poleceniem `Symulacja => Zamknij symulację'

Spis dostępnych urządzeń

    1. Zasilacz:

Format programowania: FnZm

n = 0 - 99

m = {1,2 }

wartość napięcia u = n*10^(1-m) [V]

    1. Generator:

Format programowania: FnZm

m - amplituda w 100mV

n - częstotliwość

m = 0 - 50

n = 0 - 99999 Hz

    1. Woltomierz:

Format programowania: FnZm

n = 1 - 2 ( bez znaczenia )

m = 1 zakres 0.. 0.01 V

2 zakres 0.. 0.1 V

3 zakres 0.. 1 V

4 zakres 0.. 10 V

5 zakres 0.. 100 V

0.01, 0.1, 1, 10, 100

    1. Woltomierz dokładny:

Format programowania: FnZm

n = 1 - 2 ( bez znaczenia )

m = 1 zakres 0.. 0.01 V

2 zakres 0.. 0.1 V

3 zakres 0.. 1 V

4 zakres 0.. 10 V

5 zakres 0.. 100 V

    1. Częstościomierz:

Format programowania: FnZm - n = 1 - 2

n = 1 - 2 ( bez znaczenia )

m = 1 zakres 0.. 99 Hz

2 zakres 0.. 999 Hz

3 zakres 0.. 9999 Hz

4 zakres 0.. 99999 Hz

Przykładowe fragmenty programu

  1. rozadresowanie

dio=63

dav=1

dav=0

  1. zaadresowanie do nadawania urządzenia o adresie 1

dio=65

dav=1

dav=0

  1. przesłanie do urządzenia tekstu programującego

INT0=0

TXT1="F50Z1"

while(INT0<5)

INT1=TXT1[INT0]

dio=INT1

if(INT0==4)

eoi=1

endi

dav=1

dav=0

INT0=INT0+1

endw

eoi=0

string sgen = {"F30Z32","F300Z32","F3000Z32"}

number ngen = {6,7,8}

int9 = 0

int2 = ngen[int9]

int3 = int2 -1

int0 = 0;

atn=0

while( int0 < int2 )

INT1 = sgen[int9][int0]

dio = INT1

if(INT0==int3)

eoi = 1

endi

dav = 1

dav = 0

INT0 = INT0 + 1

endw

eoi=0

  1. odpytywanie szeregowe

...

% kod inicjacji odpytywania szeregowego

...

int5=66

int2=0

txt2=""

while (int5 < 69)

...

dio=int5 % kolejne adresy do nadawania

dav=1

dav=0

...

if( dio == 64) % kod żądania obsługi

txt2[int2]=int5

int2 = int2+1

endi

...

int5 = int5 + 1

endw

...

% kod zakończenia odpytywania szeregowego

...

LITERATURA OBOWIĄZKOWA

1. Wiesław Winiecki: „Organizacja Komputerowych Systemów Pomiarowych”, WPW, Warszawa 1997, rozdział: 6.

2. Materiały z wykładów


ĆWICZENIE 2

MAGISTRALA systemu pomiarowego

w standardzie IEC-625. 2 (IEEE-488.2)

1. CEL ĆWICZENIA

Celem ćwiczenia jest praktyczne zapoznanie się z metodami uruchamiania nowoczesnych systemów pomiarowych w standardzie IEC-625.2. Wykonanie ćwiczenia polega na realizacji prostego zadania pomiarowego w systemie składającym się z testera interfejsu IEC-625 (pełniącego funkcję kontrolera) oraz multimetru firmy Hewlett-Packard.
Zastosowany sprzęt programuje się wykorzystując standard instrukcji SCPI, który jest obecnie standardem w dziedzinie oprogramowania urządzeń pomiarowych.

2. OPIS MULTIMETRU HP 34401A

2.1 PŁYTA CZOŁOWA

Funkcje dostępne bezpośrednio z płyty czołowej pogrupowane są w cztery bloki:

1.FUNCTION

Pomiar napięcia oraz prądu stałego i zmiennego, rezystancji, okresu i częstotliwości a także testowanie diody;

2.MENU

Włączenie i wyłączenie menu oraz wywołanie ostatnio używanej funkcji.

3.RANGE / DIGITS

Ustawienie zakresu pomiarowego oraz ilości cyfr znaczących;

4. MATH

Pomiar z uwzględnieniem wartości odniesienia, wyznaczenie wartości minimalnej i maksymalnej w serii pomiarów, pomiary w dB i dBm;

Poza tym możliwy jest wybór rodzaju wyzwalania (ręczne lub automatyczne).

Struktura menu

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Menu posiada strukturę 3-poziomową (menus, commands, parameters). Poruszanie się pomiędzy poziomami: góra , dół . Każdy z trzech poziomów ma kilka opcji, których wybór następuje przez naciśnięcie < lub > .

0x08 graphic
.

0x08 graphic
Menus

0x08 graphic
0x08 graphic
Commands

Parameters

On/Off

0x08 graphic
0x08 graphic
- włączenie menu: naciśnięcie shift < ,

0x08 graphic
- wyłączenie: analogicznie lub naciśnięcie dowolnego przycisku z grupy function lub math w górnym rzędzie płyty czołowej.

- wykonanie polecenia menu: naciśnięcie Auto/Man

ENTER

Przykładowe polecenia menu

A:MEASurement MENU

1: AC FILTER 2: CONTINUITY 3: INPUT R 4: RATIO FUNC 5: RESOLUTION

1: AC FILTER Selects the slow, medium, or fast ac filter;

2: CONTINUITY Sets the continuity beeper threshold ( 1Ω to 1000Ω);

3: INPUT R Sets the input resistance for dc voltage measurements,

4: RATIO FUNC Enables the dcv: dcv ratio function;

5: RESOLUTION Selects the measurement resolution.

B: MATH MENU

1: MIN-MAX 2: NULL VALUE 3: dB REL 4: dBm REF R 5: LIMIT TEST

6: HIGH LIMIT 7: LOW LIMIT

1: MIN-MAX Recalls the stored minimum, maximum, average, and reading count;

2: NULL VALUE Recalls or sets the null value stored in the null register;

3: dB REL Recalls or sets the dBm value stored in the dB relative register;

4: dBm REF R Selects the dBm reference resistance value;

5: LIMIT TEST Enables or disables limit testing;

6: HIGH LIMIT Sets the upper limit for limit testing;

7: LOW LIMIT Sets the lower limit for limit testing.

C: TRIGer MENU

1: READ HOLD 2: TRIG DELAY 3: N SAMPLES

1: READ HOLD Sets the reading hold sensitivity band;

2: TRIG DELAY Specifies a time interval which is inserted before a measurement;

3: N SAMPLES Sets the number of samples per trigger.

D: SYStem MENU

1: RDGS STORE 2: SAVED RDGS 3: ERROR 4: TEST 5: DISPLAY 6: BEEP 7: COMMA 8:REVISION

E: Input / Output MENU

1: HP-IB ADDR 2: INTERFACE 3: BAUD RATE 4: PARITY 5: LANGUAGE

F: CALibration MENU

1: SECURED [ 1: UNSECURED ] [ 2: CALIBRATE ] 3: CAL COUNT 4: MESSAGE

UWAGA: Dwie komendy ujęte w nawiasy kwadratowe ( [ ] ) są „ukryte” dopóki multimetr jest zabezpieczony przed zmianą kalibracji.

Przykład użycia komendy z MENU:

Zmiana adresu multimetru On/Off

0x08 graphic
0x08 graphic
- wejście do MENU, ( nacisnąć shift , a następnie < , pojawia się napis:

A: MEAS MENU );

0x08 graphic
0x08 graphic
- naciskając < lub > dokonać właściwego wyboru menu ( tu:

E: I/O MENU );

0x08 graphic
- nacisnąć ∨ żeby przejść do podmenu commands, ( pojawia się napis:

1:HP-IB ADDR );

- dokonać wyboru komendy analogicznie jak wyboru menu, ( tu: 1:HP-IB ADDR );

0x08 graphic
- nacisnąć ∨ żeby przejść do podmenu parameters, ( pojawia się napis:

22 ADDR );

0x08 graphic
0x08 graphic
- naciskając < lub > dokonać wyboru cyfry która ma ulec zmianie;

0x08 graphic
0x08 graphic
- zmiany wartości dokonujemy naciskając ∧ lub ∨ ;

0x08 graphic
- potwierdzenie zmiany, ( nacisnąć Auto/Man , w przeciwnym razie zmiany

nie zostaną zapamiętane ). ENTER

2.2 NAJCZĘŚCIEJ SYGNALIZOWANE BŁĘDY PRZEZ MULTIMETR HP-34401A

-101 Invalid character

Wykryto niewłaściwy znak w słowie programującym np.: CONF:VOLT#DC

-102 Syntax error

Nieprawidłowa składnia słowa programującego np. spacja przed lub po dwukropku bądź przecinku np.: SAMP:COUN ,1

-103 Invalid separator

Nieprawidłowy znak przestankowy w słowie programującym np. przecinek zamiast dwukropka

-105 GET not allowed

Niedozwolone wyzwolenie przyrządu: przyrząd nie został jeszcze poprawnie zaprogramowany

-108 Parameter not allowed

Za dużo parametrów w tekście programującym lub parametr po słowie, które jego nie wymaga np.: READ? 10

-109 Missing parameter

Zbyt mało parametrów np.: SAMP:COUN

-113 Undefined header

Nieznana komenda. Prawdopodobnie wystąpił błąd ortograficzny w tekście programującym np.: TRIGG:COUN 3 (forma skrócona komendy musi składać się z 4 znaków)

-121 Invalid character in number

Nieprawidłowy znak w liczbie określającej wartość parametru np.:

STAT:QUES:ENAB #B01010102

-211 Trigger ignored

Zignorowane polecenie wyzwolenia przyrządu. Należy upewnić się, że multimetr znajduje się w stanie oczekiwania na wyzwolenie „wait-for-trigger state” i wyzwolenie przyrządu nastąpiło z odpowiedniego źródła

-213 Init ignored

Zignorowane polecenie INIT. Multimetr prawdopodobnie nie zakończył jeszcze poprzedniego pomiaru

-222 Data out of range

Liczbowa wartość parametru spoza dozwolonego zakresu np.: TRIG:COUN -3

-410 Query INTERRUPTED

Przyrząd otrzymał komendę wysyłającą dane do bufora wyjściowego, lecz bufor ten zawiera dane umieszczone w nim w wyniku działania poprzedniej komendy.
Należy usunąć dane z bufora np.: rozkazem *RST lub wyłączeniem zasilania

-532 Cannot achieve reqested resolution

Przyrząd nie może zaakceptować podanego tekstu programującego. Prawdopodobnie wystąpił błąd w składni komendy CONFigure lub MEASure

3. PRZYKŁADOWE PYTANIA KONTROLNE

1. Opisać typową sekwencję operacji, jaką należy wykonać za pomocą testera interfejsu IEC-625 aby zaprogramować, wyzwolić i odebrać wynik z multimetru HP-34401A.

2. Omówić metodę transmisji stosowaną w standardzie IEC-625 tzw. handshake trójprzewodowy

4. LITERATURA OBOWIĄZKOWA

1. Wiesław Winiecki: „Organizacja Komputerowych Systemów Pomiarowych”, WPW, Warszawa 1997, rozdziały: 6.1, 6.2, 6.3, 6.4, 6.6, 8.1, 10.

2. Materiały z wykładów


ĆWICZENIE 3

Programowanie systemu pomiarowego

w standardzie IEEE-488.2 (IEC-625.2)

1. CEL ĆWICZENIA.

Celem ćwiczenia jest praktyczne zapoznanie się z nowoczesnymi urządzeniami pomiarowymi i oprogramowaniem służącym do budowy komputerowych systemów pomiarowych w standardzie IEC-625.2. Wykonanie ćwiczenia polega na zaprogramowaniu prostego zadania pomiarowego w systemie składającym się z kontrolera (komputer IBM-PC z zainstalowanym pakietem interfejsu NI-488.2 firmy National Instruments), zwanego dalej skrótowo kontrolerem NI-488.2, oraz generatora funkcyjnego i multimetru firmy Hewlett-Packard. Zastosowany sprzęt i oprogramowanie umożliwiają zapoznanie się z językiem SCPI, który jest obecnie standardem w dziedzinie programowania urządzeń pomiarowych.

2. PROGRAMOWANIE GENERATORA HP-33120A.

Wybrane funkcje i zakresy pomiarowe generatora HP-33120A:

-Zakresy częstotliwości dla różnych kształtów przebiegów:

sinus: 100μHz - 15 MHz;

prostokąt: 100μHz - 15 MHz;

trójkąt: 100μHz - 15 kHz;

-Amplituda (przy obciążeniu 50Ω): 50mVpp - 10Vpp;

-Amplituda (bez obciążenia): 100mVpp - 20Vpp;

-Składowa stała: ± 5 Vpk ac + dc;

-Jednostki wyjściowe: Vpp, Vrms, dBm;

-Impedancja wyjściowa: 50Ω.

Generator HP-33120A może także generować szum oraz przebiegi zmodulowane. Istnieje także możliwość zdefiniowania dowolnego przebiegu o liczbie próbek do 4000 i umieszczenie go w pamięci trwałej generatora. Generator posiada także układ wyzwalania, umożliwiający np. generowanie pojedynczych impulsów z określoną fazą początkową. Generator dysponuje obszerną listę rozkazów języka SCPI.

Najprostszą metodą zaprogramowania generatora funkcyjnego jest zastosowanie rozkazu APPLy:

-generacja fali sinusoidalnej:

APPLy:SINusoid [<frequency> [,<amplitude> [,<offset>] ]];

-generacja fali prostokątnej:

APPLy:SQUare [<frequency> [,<amplitude> [,<offset>] ]];

-generacja fali trójkątnej:

APPLy:TRIangle [<frequency> [,<amplitude> [,<offset>] ]];

-generacja stałej amplitudy:

APPLy:DC [<frequency|DEFault> [,<amplitude> [,<offset>] ]];

frequency - częstotliwość;

amplitude - amplituda;

offset - składowa stała.

Uwaga: W przypadku generacji stałej amplitudy parametr dotyczący częstotliwości zostanie zignorowany, musi jednak wystąpić w rozkazie jako konkretna wartość albo jako "DEFault".

Zamiast konkretnych wartości amplitudy, częstotliwości czy składowej stałej można podać np. "MINimum" , "MAXimum" lub "DEFault".

Przykłady:

"APPL:SIN 5 KHZ, 3.0 VPP, -2.5 V"

3.0 VPP -oznacza 3V wartości międzyszczytowej amplitudy;

3.0 VRMS -oznacza 3V wartości skutecznej amplitudy;

"APPL:SIN 5.0E+3, 3.0"

"APPL:SIN MAX, 3.0, -2.5".

Wartość międzyszczytowa amplitudy na wyjściu generatora zależy od wartości obciążenia podłączonego do wyjścia generatora. Do informowania generatora o wartości obciążenia służy rozkaz:

OUTPut:LOAD {50 | INFinity | MINimum | MAXimum}.

Domyślną wartością obciążenia jest wartość 50 (dopasowanie). W przypadku np. dołączenia do generatora odbiornika o wysokiej impedancji należy poinformować o tym generator za pomocą rozkazu:

"OUTP:LOAD INF".

Zapewni to, że wartość amplitudy na wyjściu generatora będzie odpowiadała wartości podanej jako parametr rozkazu APPLy.

3. PRZYKŁADOWE PYTANIA KONTROLNE

1. Jaka sekwencja rozkazów jest potrzebna do skonfigurowania systemu bajtu statusu tak, żeby zgłoszenie żądania obsługi następowało tylko w wyniku pojawienia się komunikatu w buforze wyjściowym urządzenia. Założyć, że nie znamy aktualnego stanu rejestrów systemu statusu.

2. Przeanalizować przykładowy program aplikacyjny zamieszczony w rozdziale 8.1.3.2. literatury i zastanowić się jak należałoby go zmodyfikować, aby efektem jego działania było:

-zaprogramowanie generatora funkcyjnego (kształt przebiegu: sinus, częstotliwość: 2kHz, amplituda: 2VRMS, składowa stała: -1V);

-zaprogramowanie woltomierza (AC, zakres: 10V, rozdzielczość: 0.01V);

-obliczenie średniej z wykonanych 20 pomiarów.

Przyjąć, że generator ma adres 10 a multimetr adres 22 i nie przeprowadzać identyfikacji. W celu sprawdzenia, czy generator i multimetr wykonały wysłane im sekwencje rozkazów konfigurujących, zastosować rozkaz *OPC?. Multimetr wyzwalać ze źródła wewnętrznego. Obecność wyniku pomiaru w buforze multimetru powinna być sygnalizowana jako żądanie obsługi.

3. Zastanowić się nad użyciem instrukcji TestSRQ() zamiast WaitSRQ() i nad tym czy w przypadku przykładowego programu ma sens taka zamiana.

4. Jaki będzie wynik pomiaru, jeżeli generator, do którego jest podłączony tylko woltomierz, zaprogramowano w następujący sposób: obciążenie 50, amplituda międzyszczytowa sinusoidalnego sygnału wyjściowego 1Vpp. Woltomierz zaprogramowano na pomiar napięcia międzyszczytowego AC.

4. LITERATURA OBOWIĄZKOWA

1. Wiesław Winiecki: „Organizacja Komputerowych Systemów Pomiarowych”, WPW, Warszawa 1997, rozdziały: 6.6, 8.1.

2. Materiały z wykładów.


ĆWICZENIE 4

ŚRODOWISKO PROGRAMOWE LABWINDOWS / CVI

1. Cel ćwiczenia

Celem ćwiczenia jest praktyczne zapoznanie się z nowoczesnymi urządzeniami pomiarowymi i oprogramowaniem służącym do budowy komputerowych systemów pomiarowych w standardzie IEC-625.2. Wykonanie ćwiczenia polega na zaprogramowaniu prostego zadania pomiarowego w systemie składającym się z kontrolera (komputer PC z zainstalowanym pakietem interfejsu NI-488.2 firmy National Instruments wraz z pakietem oprogramowania LabWindows/CVI pracującym w środowisku Windows) oraz multimetru firmy Hewlett Packard.

2. Wybrane instrukcje drivera multimetru HP34401A

hp34401a_init ( address, &instrumentID );

gdzie:

address - adres multimetru (22),

instrument ID - identyfikator multimetru (zmienna typu int).

Instrukcja powoduje inicjalizację multimetru w następujący sposób:

- Wysyła do przyrządu zapytanie identyfikacyjne.

- Ustawia nastawy przyrządu w zadane położenie.

- Zwraca wartość ID używane do identyfikacji urządzenia w systemie pomiarowym.

hp34401a_conf ( instrumentID, function, autorange, range, resolution );

gdzie:

instrument ID - identyfikator multimetru (zmienna typu int),

function - kod funkcji: 0 - woltomierz AC,

1 - woltomierz DC,

7 - częstościomierz.

autorange - automatyczna zmiana zakresu:

0 - wyłączona,

1 - włączona,

range - zakres: częstościomierz - tylko jeden 300 kHz,

woltomierza DC - 0.1V, 1V, 10V, 100V, 1000V;

woltomierza AC - 0.1V, 1V, 10V, 100V, 750 V.

resolution - liczba cyfr wyniku: 0 - 4 1/2, 1 - 5 1/2, 2 - 6 1/2.

Instrukcja konfiguruje funkcję, zakres, liczbę cyfr wyniku oraz włącza bądź wyłącza automatyczną zmianę zakresu.

hp34401a_single_meas ( instrumentID, &result );

gdzie:

instrument ID - identyfikator multimetru (zmienna typu int),

result - wynik pomiaru (zmienna typu double).

Instrukcja powoduje wykonanie pomiaru i zwraca jego wynik.

Poza instrukcjami sterującymi przyrządem należy użyć instrukcji odczytującej stan sterowników bądź ustawiającej stan sterownika.

Do odczytu stanu (wartości) sterownika (przełącznika) należy użyć instrukcji -

GetCtrlVal (panelHandle, CONSTANT NAME panelu_CONSTANT NAME sterownika, &zmienna);

a do ustawienia wyniku na wskaźniku lub stanu diody LED -

SetCtrlVal (panelHandle, CONSTANT NAME panelu_CONSTANT NAME sterownika, stała lub zmienna);

Instrukcje te znajdują się w opcji Library/User Interface/Controls.../General Function.

3. LITERATURA OBOWIĄZKOWA

1. Wiesław Winiecki: „Organizacja Komputerowych Systemów Pomiarowych”, WPW, Warszawa 1997, rozdziały: 3.2.1, 8.2, 9.4.1.

2. Materiały z wykładów.


ĆWICZENIE 5

ŚRODOWISKO POMIAROWE HP VEE

1. Przedmiot i cel ćwiczenia

Przedmiotem ćwiczenia jest zapoznanie się z możliwościami produktu firmy Hewlett Packard - pakietu "HP VEE oraz wykonanie prostego projektu systemu pomiarowego z wykorzystaniem oprogramowania zawartego w pakiecie.

2. Wstęp

HP VEE podobnie jak LabWindows umożliwia sterowanie blokami funkcjonalnymi systemu pomiarowego, zbieranie danych pomiarowych, analizę i przetwarzanie danych, prezentację wyników na monitorze lub drukarce. HP VEE współpracuje systemem operacyjnym MS Windows podobnie jak najnowsza wersja środowiska pomiarowego LabWindows.

Dzięki pakietom sterowników interfejsów, oprogramowanie zrealizowane w LabWindows lub HP VEE może sterować urządzeniami w standardzie IEC-625 (IEEE-488), VXI i RS-232.

Główna różnica między LabWindows a HP VEE dotyczy sposobu programowania. W środowisku LabWindows program tworzony jest w języku C lub Basic, jednakże rozbudowane środki wspomagania projektowania umożliwiają automatyczne generowanie linii programu. Program może być kompilowany przy użyciu standardowych kompilatorów wraz ze standardowymi bibliotekami; możliwe jest dołączanie własnych procedur. Natomiast HP VEE umożliwia stworzenie programu przy użyciu symboli graficznych. Projektowanie obrazkowe ma pewną zaletę istotną dla niektórych projektantów, ale również kilka wad. Zaletą jest programowanie bez konieczności znajomości typowych języków programowania Pascal, C, czy Basic. Wadą HP VEE jest m.in. brak możliwości dołączania do środowiska w typowy sposób własnych procedur w języku C, możliwe jest natomiast dołączanie programów wykonywalnych ( typu .exe ).

3. Ogólna charakterystyka pakietu HP VEE

3.1. Wymagania sprzętowe:

- IEC-625: HP 82335, HP 82340, HP 82341 ( Hewlett Packard)

AT-GPIB, AT-GPIB/TNT, MC-GPIB , GPIB-PCII/IIA,PCMCIA-GPIB (National Instruments)

- VXI: E1383A, E1483A,

-RS-232: Porty szeregowe: COM1, COM2, COM3, COM4;

3.2. Własności pakietu:

- panele przyrządów rzeczywistych

- źródła sygnałów wirtualnych służących do symulacji komputerowych

- funkcje do obliczeń matematycznych i statystycznych

- obiekty realizujące elementarne funkcje programowe

- obiekty służące do prezentacji danych

- funkcje do komunikowania się z urządzeniami I/O

- standardowe narzędzia dostępne w aplikacjach pracujących w środowisku Windows;

- system składany z "klocków" za pomocą myszy - niekonieczna znajomość języków programowania przez użytkowników;

3.3. Struktura pakietu HP VEE:

Pakiet HP VEE składa się z kilku aplikacji ściśle ze sobą współpracujących, a których funkcje przedstawiono poniżej:

3.4. Pojęcie obiektu - obiekt w HP VEE:

Podstawowa idea projektowania oprogramowania z wykorzystaniem HP VEE polega na stworzeniu w komputerze obiektów programowych, które są odwzorowaniem obiektów fizycznych i funkcjonalnych. Podejście to pozwala na zbudowaniu systemu oprogramowania jako otwartego zbioru obiektów programowych wielokrotnego użycia, które reprezentują zarówno fizyczne przyrządy pomiarowe i urządzenia pomocnicze, jak i procedury pomiarowe, procedury przetwarzania danych oraz elementy graficznego interfejsu użytkownika. Wszystkie te obiekty programowe mogą być reprezentowane w komputerze przez odpowiednie symbole graficzne lub tekstowe. Zbiór dostępnych obiektów może być łatwo rozszerzany poprzez definiowanie nowych obiektów programowych. Oprogramowanie zarządzające procesem pomiarowym (czyli oprogramowanie systemu pomiarowego) może być łatwo zbudowane przez wybór odpowiedniego zbioru predefiniowanych obiektów pomiarowych i połączenie ich zgodnie z połączeniami między fizycznymi obiektami. Czynności te mogą być wykonane z wykorzystaniem narzędzi programowania nie wymagających od użytkownika specjalnej biegłości w programowaniu.

Poniżej przedstawiono organizację obiektu w środowisku HP VEE. Obiektem jest każdy element systemu, który może być przedstawiony w postaci ikony lub całego elementu graficznego przedstawiającego fizyczny przyrząd, źródło wirtualne, elementarną funkcję programową itp. Każdy obiekt posiada zestaw styków ( ang. pin ), których umiejscowienie i znaczenie przedstawia rysunek 1. Styki umieszczone po lewej stronie ikony ( tzw. Data Input Pin ) służą do pobierania danych przez obiekt systemu w postaci np. ciągów znakowych, czy typowych zmiennych charakterystycznych dla języków wysokiego poziomu programowania. Natomiast styki umieszczone po prawej stronie ( Data Output Pin ) do ich wysyłania. Łącząc tego typu styki różnych obiektów uzyskuje się możliwość przesyłania danych między obiektami systemu. Po rozwinięciu ikony widoczny jest przyporządkowany stykowi terminal z nazwą funkcji obiektu, do której mają być przesyłane dane przychodzące do styku. W ten sposób otrzymuje się możliwość programowej kontroli wszystkimi funkcjami obiektu. Styki umieszczone na górze ( Sequence Input Pin ) i na dole ( Sequence Output Pin ) obiektu służą do określania uwarunkowań czasowych wykonywanego programu. Zastosowanie terminali pokazuje przykład opisany w punkcie 4.1 niniejszego opracowania.

0x08 graphic

Rys. 1. Obiekty w środowisku HP VEE

4. Projektowanie systemu pomiarowego

Tworzenie systemu pomiarowego z wykorzystaniem pakietu HP VEE jest etapem wielostopniowym. Przed przejściem do właściwego etapu realizacji systemu pomiarowego należy przeprowadzić standardową instalację interfejsu pomiarowego - tu IEEE 488.2. Jest to czynność jednokrotna i nie ma potrzeby jej wykonywania podczas tworzenia kolejnych aplikacji pomiarowych. Czynność ta nie będzie tu szerzej omawiana, gdyż sposób instalacji jest zawsze zamieszczony przez producenta interfejsu. Drugim etapem jest tzw. konfigurowanie sprzętowe elementów systemu mające na celu np. ustawienie parametrów transmisji w przypadku interfejsu RS-232, czy przydzielenie symboli identyfikacyjnych urządzeniom pracującym w standardzie IEC-625. Po tych czynnościach można już przystąpić do właściwego etapu konstruowania systemu pomiarowego (punkt 4.1). Aplikacja pomiarowa jest tworzona za pomocą programu HP VEE Evaluation z wykorzystaniem driver'ów przyrządów (dołączanych przez producentów lub wcześniej stworzonych przez projektanta systemu za pomocą aplikacji HP DWT).

Poniższy przykład ma na celu pokazanie sposobu konstruowania oprogramowania systemu pomiarowego w środowisku HP VEE. W tym celu prześledźmy proces tworzenia aplikacji służącej do badania charakterystyki częstotliwościowej obiektu badanego przy użyciu systemu składającego się z dwu przyrządów pomiarowych sterowanych przez kontroler IEC-625.2. Poniżej przedstawiono schemat systemu (rys. 2).

0x01 graphic

Rys. 2. Schemat systemu do automatycznej identyfikacji ch-tyki częstotliwościowej.

4.1. Konstruowanie aplikacji pomiarowej

Założyć należy w tym miejscu posiadanie odpowiednich sterowników programowych (ang. driver) dostarczanych przez producentów przyrządów, co w chwili obecnej jest rzeczą dość powszechną. Posiadanie ich wiąże się z brakiem konieczności konstruowania własnych sterowników (w trakcie konstruowania systemu pomiarowego pomija się wtedy punkt 1). W przypadku używania przyrządów, do których nie są dołączane tego typu driver'y użytkownik musi stworzyć je sam za pomocą programu HP Driver Writer Tool. Stworzony w ten sposób panel urządzenia musi być skompilowany w programie HP ID Compiler. Poniżej przedstawiono konstruowanie paneli za pomocą programu HP DWT z wykorzystaniem dołączonego szkieletu. Możliwe jest konstruowanie paneli bez używania tej pomocy co daje użytkownikowi znacznie większą elastyczność w tworzeniu paneli. W tym opracowaniu nie będzie ten problem szerzej omawiany, należy jedynie zaznaczyć, że ten sposób postępowania wymaga od użytkownika znajomości specyfiki konkretnych przyrządów pomiarowych, tzn. sposobu ich programowania a także znajomości specyficznego języka zwanego “HP ID Language”.

1. Tworzenie panelu urządzenia z wykorzystaniem HP DWT

Po otwarciu tej aplikacji w polu roboczym ukaże się szkielet panelu urządzenia ( widoczny po lewej stronie rysunku 4 ). Szkielet ten zawiera trzypoziomową konstrukcję składającą się z panelu głównego, panelu statusu oraz panelu informacyjnego. Dodanie nowego panelu odbywa się poprzez wybranie opcji Create/Panel i wpisanie jego nazwy. Cała procedura tworzenia paneli odbywa się przez dodawanie obiektów będących odwzorowaniem funkcji przyrządów. Obiekty te są dostępne w menu Create i są podzielone na podgrupy: wyświetlacze numeryczne, funkcje dyskretne ( np. wybór funkcji woltomierza ), funkcje ciągłe ( np. wybór częstotliwości generatora ), przyciski bi - ( np. power - on/off ) i monostabilne oraz wyświetlacze graficzne. Sposób kreacji podstawowych funkcji pokazuje zamieszczony w programie samouczek, natomiast szczegółowe zaprojektowanie panelu wymaga od użytkownika znajomości funkcji i kodów programujących urządzenie. Poniżej pokazano na przykładzie multimetru kolejne fazy powstawania takiego panelu (rys. 3 ÷ 5).

0x01 graphic

Rys. 3. Szkielet panelu po otwarciu aplikacji HP DWT

0x01 graphic

Rys. 4. Tworzenie funkcji urządzenia ( tu: po wybraniu opcji Create/Discrete )

0x01 graphic

Rys. 5. Przykład prostego panelu multimetru

2. Uruchomienie programu HP VEE Evaluation ( ikona w grupie HP VEE ).

3. Wybranie i skonfigurowanie urządzeń pomiarowych.

Konfigurowanie interfejsu pomiarowego za pomocą pakietu HP VEE jest bardzo proste i nie wymaga od użytkownika znajomości specyfiki użytych w systemie elementów. W celu konfiguracji urządzeń I/O ( jakimi są interfejsy pomiarowe ) należy uruchomić aplikację HP VEE i z menu I/O wybrać pozycję Instrument Manager.... Ukaże nam się wtedy okno Instrument Managera z listą dostępnych instrumentów. Aby znaleźć instrumenty z interfejsem HP-IB14 wybieramy (podświetlamy) ten interfejs. W tym momencie w grupie klawiszy Configuration (po prawej stronie listy instrumentów) ukaże nam się klawisz Find Instruments, wybranie którego spowoduje wyszukanie urządzeń. W oknie Instrument List użytkownik otrzyma informację o dostępnych z poziomu HP VEE urządzeniach z wybranym interfejsem. Dalsze postępowanie sprowadza się do:

- wybrania interesującego nas urządzenia I/O

- naciśnięcia przycisku Auto Confugure, co spowoduje automatyczną identyfikację i konfigurację urządzenia.

Aby dokonać wyboru przyrządów, które zamierzamy użyć w systemie należy z menu wybrać opcję I/O|Instrument Manager... .Pojawi się okno w którym znajdą się symbole urządzeń, których sterowniki są zainstalowane w systemie. Po wybraniu interesującego nas przyrządu należy dokonać jego konfiguracji. Jest to możliwe po naciśnięciu przycisku Edit Instrument. Podczas konfiguracji należy pamiętać o ustawieniu odpowiedniego adresu przyrządu oraz, w przypadku stosowania interfejsu GPIB, ustawieniu parametru "Byte Ordering" na wartość MSB. Gdy korzystamy z rzeczywistego przyrządu konieczne jest też ustawienie parametru Live Mode na wartość ON. Opisana sytuacja jest zobrazowana na rysunku 6.

0x08 graphic

Rys. 6. Wybór i konfiguracja urządzenia.

0x08 graphic

Rys. 7. Wybór panelu urządzenia.

W przypadku korzystania z paneli utworzonych za pomocą HP DWT należy jeszcze wskazać odpowiedni plik naszego panelu urządzenia (w zakładce [Panel Driver]->[ID Filename:]). Rysunek 7 ilustruje tę sytuację.

Po zaakceptowaniu ustawień i wybraniu opcji Panel Driver. W oknie głównym programu HP VEE Evaluation pojawi się wirtualny panel wybranego przyrządu.

4. Utworzenie terminali przyrządów

Terminal jest miejscem, poprzez które funkcja obiektu systemu może pobierać argumenty lub zwracać swoją wartość. Użycie terminali jest konieczne przy automatycznych zmianach nastaw obiektów oraz przy ich odczycie. Poprzez terminal wejściowy możemy zmieniać ustawienia funkcji natomiast z terminalu wyjściowego odczytywać aktualny stan obiektu. W celu utworzenia terminalu należy kliknąć myszą w lewym górnym rogu obiektu, wybrać opcję Add Terminal i dalej rodzaj terminalu. Etap tworzenia terminalu na przykładzie panelu multimetru na rysunku 8.

0x08 graphic

Rys. 8. Tworzenie terminali

W ostatnim kroku należy wybrać funkcję, jaka ma być sterowana za pomocą terminalu ( w przypadku terminala wejściowego ), bądź parametr który chcemy odczytać ( terminal wyjściowy ). Wybór funkcji pokazano na rysunku poniżej ( rys. 9 ).

0x08 graphic

Rys. 9. Wybór funkcji terminala

W celu realizacji systemu do badania charakterystyki częstotliwościowej obiektu mierzonego konieczny jest w tym miejscu wybór odpowiednich funkcji terminali użytych przyrządów. Aby odczytywać wyniki pomiarów z multimetru należy utworzyć terminal wyjściowy realizujący funkcję READING, natomiast do zmian częstotliwości generatora - terminal wejściowy FREQENCY.

5. Wybór obiektów typu "FLOW"

Obiekty tego typu służą do realizacji algorytmu pomiarowego. Ich użycie pozwala na tworzenie aplikacji podobnie jak przy użyciu tradycyjnych języków programowania. Zawierają takie elementy jak: pętle pomiarowe, deklaracje stałych i zmiennych, konstrukcje warunkowe itp.

W celu ich użycia należy wybrać opcję Flow oraz pobrać odpowiedni obiekt. Wybór funkcji Repeat/For Log Range przedstawiono na rysunku 10. Znaczenie poszczególnych elementów dostępnych z menu Flow jest oczywiste i nie będzie tu omawiane.

0x08 graphic

Rys. 10. Wybór obiektu typu flow ( Repeat/For Count )

6. Łączenie obiektów

Łączenie obiektów odbywa się przy użyciu terminali. Oczywiście można łączyć jedynie terminale różnych typów ( nie można np. połączyć dwu terminali wejściowych ). Połączenie realizuje się poprzez kliknięcie myszą na terminalu danego obiektu i poprowadzeniu linii łączącej do innego terminala. Proces ten pokazuje rysunek 11.

7. Uruchomienie aplikacji.

Rysunek 12 przedstawia gotową aplikację pomiarową. Zgodnie z założeniami może być ona wykorzystana do badania charakterystyki częstotliwościowej badanego obiektu. Algorytm programu zawiera 5 punktów pomiarowych na dekadę ( parametr w oknie obiektu For Log Range ). Częstotliwość początkowa wynosi 10 Hz i jest ona zmieniana w kolejnych krokach aż do osiągnięcia wartości końcowej 10000 Hz. Odczytu dokonuje się z terminalu wyjściowego multimetru ( READING ), do którego można dołączyć bądź dowolny obiekt z menu Display, bądź urządzenie z menu I/O|to w celu np. zapamiętania wyników w pliku lub ich wydrukowania.

Uruchomienie aplikacji odbywa się po wybraniu opcji RUN lub naciśnięciu przycisku Start ( jeśli taki jest zamieszczony ). Możliwa jest praca krokowa po naciśnięciu przycisku Step. Przycisk Stop służy do przerwania działania aplikacji.

0x08 graphic
Rys. 11. Proces łączenia obiektów.

0x08 graphic
Rys.12. Aplikacja pomiarowa do identyfikacji ch-tyki częstotliwościowej

LITERATURA OBOWIĄZKOWA

1. Wiesław Winiecki: „Organizacja Komputerowych Systemów Pomiarowych”, WPW, Warszawa 1997, rozdziały: 3.2.1, 8.2, 9.4.2.

2. Materiały z wykładów.


ĆWICZENIE 6

METODA REGRESJI LINIOWEJ

PLANOWANIE EKSPERYMENTU

1. Przedmiot i cel ćwiczenia

Przedmiotem ćwiczenia jest metoda regresji liniowej z elementami planowania eksperymentu.

2. Wstęp

Wygodnym sposobem opisu zależności stochastycznej między zmiennymi losowymi 0x01 graphic
i 0x01 graphic
jest funkcja regresji:

(2.1)

określająca zależność średniej wartości zmiennej losowej 0x01 graphic
od realizacji zmiennej losowej 0x01 graphic
.

Funkcja regresji minimalizuje drugi moment zmiennej losowej , tzn. wyrażenie:

(2.2)

osiąga minimum dla . Jest to teoretyczna przesłanka zastosowania metody najmniejszej sumy kwadratów do aproksymacji funkcji regresji na podstawie ciągu par odpowiadających sobie realizacji zmiennych losowych 0x01 graphic
i 0x01 graphic
:

(2.3)

W metrologii i technice eksperymentu szczególnie rozpowszechnione jest następujące sformułowanie problemu wyznaczania funkcji regresji na podstawie danych pomiarowych:

Zmienna losowa 0x01 graphic
modeluje stan wejściowy pewnego obiektu fizycznego (lub przyczynę badanego zjawiska), zaś zmienna losowa 0x01 graphic
stan wyjściowy tego obiektu (lub skutek charakteryzujący badane zjawisko).

Stany wejściowe mogą być zadawane lub mierzone z pomijalnym błędem i dlatego dane reprezentujące zmienną losową 0x01 graphic
mogą być traktowane jako dokładne: 0x01 graphic
.

Stany wyjściowe mierzone są z błędem przypadkowym podlegającym rozkładowi o zerowej średniej i dlatego dane reprezentujące zmienną losową 0x01 graphic
mają postać:

dla n = 1,...,N (2.4)

gdzie 0x01 graphic
jest realizacją zmiennej losowej 0x01 graphic
takiej, że:

oraz

tzn. zmienne losowe są nieskorelowane.

Zakłada się ponadto, że funkcja regresji, czyli zależność średniej wartości zmiennej losowej 0x01 graphic
od realizacji zmiennej losowej 0x01 graphic
, może być z wystarczającą dokładnością aproksymowana za pomocą funkcji o znanej postaci, ale z nieznanymi parametrami 0x01 graphic
.

Wyznaczanie wektora parametrów p, a ściślej jego estymaty , metodą najmniejszych kwadratów polega na minimalizacji następującego wskaźnika rozbieżności między danymi pomiarowymi a modelem zależności między zmiennymi losowymi 0x01 graphic
i 0x01 graphic
, którym jest funkcja regresji:

(2.5)

co w języku matematyki zapisuje się jako:

(2.6)

Metodę najmniejszych kwadratów zaproponowali niezależnie A. M. Legendre (1806) i K. F. Gauss (1809) w związku z wyznaczaniem orbit planet i komet na podstawie obserwacji astronomicznych. Gauss wyprowadził ją jako przypadek szczególny ogólniejszej zasady maksymalizacji funkcji gęstości prawdopodobieństwa błędów, którą R. A. Fisher rozwinął do postaci metody największej wiarygodności (1912).

3. Ogólna charakterystyka pakietu „Matlab Statistics Toolbox”

Pakiet „Matlab Statistics Toolbox” zawiera szereg procedur pomocnych przy obliczeniach statystycznych np. unifrnd, normrnd, regress, tinv, var. Pełny ich wykaz można uzyskać wydając polecenie: help stats. Użycie tych procedur pozwala na znaczne zaoszczędzenie czasu poświęconego na tworzenie oprogramowania realizującego obliczenia statystyczne, a także skraca czas obliczeń statystycznych służących do planowania eksperymentu i weryfikacji danych pomiarowych.

4. Program ćwiczenia

1. Generacja liczb pseudolosowych

1.1. Wygenerować ciąg liczb pseudolosowych o rozkładzie:

a) równomiernym U za pomocą procedury unifrnd;

b) normalnym N za pomocą procedury normrnd;

Przykłady :

unifrnd(-rMAX, rMAX, M, N) - generuje macierz liczb pseudolosowych o rozkładzie równomiernym w przedziale o wymiarach M×N.

normrnd(m, σ, M, N) - generuje macierz liczb pseudolosowych o rozkładzie normalnym i o wymiarach M×N, gdzie m - wartość oczekiwana, σ - odchylenie standardowe.

1.2. Sporządzić kilka histogramów ciągu dla N = 10, 100, 1000, 10000 przy użyciu procedury hist. Uzyskane wydruki histogramów zamieścić w sprawozdaniu.

  1. Wyznaczyć i przedstawić graficznie zależność estymaty wartości oczekiwanej i estymaty wariancji od długości ciągu , tj. od N.

Aby wyznaczyć estymatę wartości oczekiwanej należy wygenerować kilka ciągów liczb pseudolosowych, policzyć ich wartości oczekiwane, które utworzą wektor wartości oczekiwanych a następnie wyznaczyć wartość średnią tego wektora, która jest estymatą wartości oczekiwanej . W analogiczny sposób należy postąpić przy wyznaczaniu estymaty wariancji .

  1. Wyznaczyć estymatę funkcji autokorelacji ciągu dla N = 10000, korzystając z przybliżonego wzoru:

(5.1)

2. Estymacja parametrów relacji x y metodą najmniejszych kwadratów.

  1. Zdefiniować zadanie testowe wybierając dokładne wartości parametrów p0, p1 i p2 zadania testowego: dla x1, x2 ∈[0,1].

  2. Zaprojektować macierz wejść:

  1. przyjmując jako xn1 i xn2 wszystkie pary ułamków k/K dla k = 0,...,K; N = ( K + 1)2;

  2. przyjmując jako xn1 i xn2 pary liczb pseudolosowych o rozkładzie równomiernym U ;

  3. przyjmując jako xn1 i xn2 pary liczb pseudolosowych o rozkładzie normalnym N , których wartość nie wykracza poza przedział (0,1).

W czasie wykonywania ćwiczenia należy wybrać jeden z możliwych wariantów : a), b) lub c) w zależności od wskazówek prowadzącego.

  1. Wyznaczyć wektor syntetycznych danych pomiarowych o składowych:

dla n = 1,...,N

do symulacji błędów Δyn używając generatora liczb pseudolosowych o rozkładzie:

a) równomiernym U ;

  1. normalnym N .

  1. Wyznaczyć estymaty , i parametrów p0, p1 i p2, korzystając z procedury regress, która wyznacza estymaty parametrów, granice przedziałów ufności dla parametrów, wektor residuów a także granice przedziałów ufności dla residuów.

Przykład wywołania:

[p_est, p_uf, r, r_uf, STATS] = regress(y,X,alfa)

gdzie :

p_est - wektor estymat parametrów,

p_uf - macierz składająca się z dwu wektorów, które zawierają odpowiednio dolne i górne granice przedziałów ufności odpowiadających estymatom ,

r - wektor residuów,

r_uf - macierz składająca się z dwu wektorów, które zawierają odpowiednio dolne i górne granice przedziałów ufności dla residuów r,

y - wektor syntetycznych danych pomiarowych,

X - macierz wejść,

alfa - poziom niepewności.

Uwaga: Podczas wykonywania punktów 2.3 i 2.4 należy korzystać z macierzy wejść wygenerowanej w punkcie 2.2.

3. Badanie metody najmniejszej sumy kwadratów

  1. Wyznaczyć i przedstawić graficznie zależność błędów Δpm = - pm (m = 0,1,2) od N dla kilku wartości σ2y.

  1. Wyznaczyć i przedstawić graficznie zależność wariancji estymat parametrów Var() (m = 0,1,2) od N dla kilku wartości σ2y.

  1. Wyznaczyć i przedstawić graficznie zależność kowariancji estymat parametrów Cov(,) (m = 0,1,2) od N dla kilku wartości σ2y.

W tym celu należy wybrać jednen z elementów macierzy kowariancji i wykreślić zależność unormowanego współczynnika kowariancji dla tego elementu od N. Macierz kowariancji należy wyznaczać ze wzoru :

(5.2)

a unormowany współczynnik kowariancji ze wzoru:

(5.3)

3.4. Wyznaczyć zależność granic przedziałów ufności odpowiadających estymatom od N dla kilku wartości σ2y.

3.5. Zbadać istotność parametrów modelu zależności xy przy założeniu, że dane generowane są zgodnie z zasadami przedstawionymi w punkcie 2.2 i 2.3, a model ma postać:

  1. dla x1, x2 ∈[0,1];

  2. dla x1, x2, x3 ∈[0,1].

W tym celu należy dla każdego parametru obliczyć wartość statystyki t - Studenta:

(5.4)

gdzie cmm jest elementem macierzy , zwanym mnożnikiem Gaussa. Obliczoną wartość należy porównać z wartością tkryt , odpowiadającą przyjętemu poziomowi istotności α (np. α = 0,05) i liczbie stopni swobody N-M-1, wyznaczoną za pomocą procedury tinv. Jeżeli tkryt > to można stwierdzić, że badany parametr nie jest istotny statystycznie.

Uwaga: Punkt 3.5 nie należy do podstawowego programu ćwiczenia.

5. Przykłady programów realizujących wybrane warianty ćwiczenia

  1. Przykładowy program realizujący punkt 1.

clear all

close all

clc

% Zadanie 1

% Punkt 1.1 i 1.2

Tab_N = [10 100 1000 10000];

rmax=1;

Mi=0;

Sigma=1;

for i=1:length(Tab_N)

N=Tab_N(i);

Ru=unifrnd(-1*rmax,rmax,N,1); % generacja wektora o rozkładzie równomiernym

figure

hist(Ru,100);

end

disp('Naciśnij dowolny klawisz');

pause

close all

% Punkt 1.3

for i=1:length(Tab_N)

N(i)=Tab_N(i);

R=normrnd(Mi,Sigma,500,N);

E=mean(R);

EE(i)=mean(E);

end

figure

semilogx(N,EE);

title('Zależność estymaty średniej od N');

xlabel('N');

  1. Przykładowy program realizujący punkty 2 i 3 ( z wyjątkiem 3.5)

clear all

close all

% Zadanie 2

Tab_N = [10,20,50,100,200,500,1000];

Tab_Vy = [0.1,0.01,0.001,0.0001,0.00001,0.000001];

Vy = Tab_Vy(3); % Wariancja y

alfa=0.05; % Założony poziom niepewności

disp(['Poziom niepewności alfa = ' num2str(alfa)]);

disp(['Wariancja y = ' num2str(Vy)]);

for i=1:length(Tab_N)

N = Tab_N(i); % Liczba pomiarów

% Dla każdego N należy powtórzyć pomiary kilkakrotnie aby można było wyznaczyć wariancję

% parametrów p.

K = 20; % Liczba powtórzeń pomiarów

disp(' ');

disp(['Liczba pomiarów N = ' num2str(N)]);

for ii=1:K

p=[1 1 1 1]';

XX=normrnd(0,1,length(p),N); % Generacja macierzy wejść o rozkładzie normalnym

X=XX';

X(:,1)=ones(N,1); % Pierwsza kolumna - jedynki

for a=2:length(p)

for b=1:N

X(b,a)=min(X(b,a),1); % Ograniczenie do przedziału [0,1]

X(b,a)=max(X(b,a),0);

end

end % Koniec tworzenia macierzy wejść

y = X*p;

delta_y = normrnd(0,sqrt(Vy),N,1);

y_zab = y + delta_y; % Wektror syntetycznych danych pomiarowych

[p_est,p_uf,r,r_uf,STATS]=regress(y_zab,X,alfa);

Tab_p_est(:,ii)=p_est;

Tab_p_uf_lo(:,ii)=p_uf(:,1);

Tab_p_uf_hi(:,ii)=p_uf(:,2);

end

Var_p(i,:)= var(Tab_p_est);

P_est(i,:)= mean(Tab_p_est);

P_uf_lo(i,:)= mean(Tab_p_uf_lo);

P_uf_hi(i,:)= mean(Tab_p_uf_hi);

end

figure(1)

semilogx(Tab_N,P_est(:,1),Tab_N,P_est(:,2),Tab_N,P_est(:,3),Tab_N,P_est(:,4))

title('Estymaty parametrów p');

xlabel('N');

figure(2)

semilogx(Tab_N,P_uf_lo(:,1),Tab_N,P_uf_hi(:,1));

title('Przedziały ufności dla p0');

xlabel('N');

figure(3)

semilogx(Tab_N,P_uf_lo(:,2),Tab_N,P_uf_hi(:,2));

title('Przedziały ufności dla p1');

xlabel('N');

figure(4)

semilogx(Tab_N,P_uf_lo(:,3),Tab_N,P_uf_hi(:,3));

title('Przedziały ufności dla p2');

xlabel('N');

figure(5)

semilogx(Tab_N,P_uf_lo(:,4),Tab_N,P_uf_hi(:,4));

title('Przedziały ufności dla p3');

xlabel('N');

figure(6)

semilogx(Tab_N,Var_p(:,1),Tab_N,Var_p(:,2),Tab_N,Var_p(:,3),Tab_N,Var_p(:,4))

title('Wariancje estymat parametrów p');

xlabel('N');

  1. Przykładowy program realizujący punkt 3.5

clear all

close all

% Zadanie 3.5 - Badanie istotności statystycznej parametrów

Tab_N = [10,20,50,100,200,500,1000];

Tab_Vy = [0.1,0.01,0.001,0.0001,0.00001,0.000001];

Vy = Tab_Vy(1); % Wariancja y

alfa=0.1; % Poziom niepewności

disp(['Poziom ufności alfa = ' num2str(alfa)]);

disp(['Wariancja y = ' num2str(Vy)]);

for i=1:length(Tab_N)

N = Tab_N(i); % Liczba pomiarów

disp(['Liczba pomiarów N = ' num2str(N)]);

disp(' ');

p3=[1 1 1]';

p4=[1 1 1 1]';

XX3=normrnd(0,1,length(p3),N); % Generacja macierzy wejść o rozkładzie normalnym

X3=XX3';

XX4=normrnd(0,1,length(p4),N); % Generacja macierzy wejść o rozkładzie normalnym

X4=XX4';

X3(:,1)=ones(N,1);

for a=2:length(p3)

for b=1:N

X3(b,a)=min(X3(b,a),1);

X3(b,a)=max(X3(b,a),0);

end

end % Koniec tworzenia macierzy wejść

X4(:,1)=ones(N,1);

for a=2:length(p4)

for b=1:N

X4(b,a)=min(X4(b,a),1);

X4(b,a)=max(X4(b,a),0);

end

end

y = X3*p3;

delta_y = normrnd(0,sqrt(Vy),N,1);

y_zab = y + delta_y; % Wektror syntetycznych danych pomiarowych

[p_est3,p_uf,r,r_uf,STATS]=regress(y_zab,X3,alfa);

[p_est4,p_uf4,r4,r_uf4,STATS4]=regress(y_zab,X4,alfa);

Mnoz_Gauss3=inv(X3'*X3);

for iii=1:length(p3)

t_p3(iii)=abs(p_est3(iii))/(Vy*sqrt(Mnoz_Gauss3(iii,iii))); % Wzór (7.12)

end

Mnoz_Gauss4=inv(X4'*X4);

for iii=1:length(p4)

t_p4(iii)=abs(p_est4(iii))/(Vy*sqrt(Mnoz_Gauss4(iii,iii))); % Wzór (7.12)

end

disp('Parametry modelu y = p0 + p1x1 + p2x2');

disp(' ');

t_kryt=tinv(1-alfa,N-length(p3));

for j=1:length(p3)

if t_p3(j) > t_kryt

disp(['Dla N = ' num2str(N) ' Parametr p' num2str(j-1) ' jest istotny statystycznie']);

else

disp(['Dla N = ' num2str(N) ' Parametr p' num2str(j-1) ' nie jest istotny statystycznie']);

end

end

disp(' ');

disp('Parametry modelu y = p0 + p1x1 + p2x2 + p3x3');

disp(' ');

t_kryt=tinv(1-alfa,N-length(p4));

for j=1:length(p4)

if t_p4(j) > t_kryt

disp(['Dla N = ' num2str(N) ' Parametr p' num2str(j-1) ' jest istotny statystycznie']);

else

disp(['Dla N = ' num2str(N) ' Parametr p' num2str(j-1) ' nie jest istotny statystycznie']);

end

end

disp(' ');

end

6. Literatura

  1. R. Z. Morawski: „Systemy Pomiarowe”, materiały pomocnicze do wykładu, Warszawa 1997

  2. J. M. Jaworski, R. Z. Morawski, J. Olędzki: „Wstęp do metrologii i techniki eksperymentu”, WNT 1991

  3. A. Zalewski, R. Cegieła: „MATLAB - obliczenia numeryczne i ich zastosowania”, Wydawnictwo Nakom, Poznań 1996

  4. B. Mrozek, Z. Mrozek: „MATLAB - uniwersalne środowisko do obliczeń naukowo-technicznych”, PLJ, Warszawa 1996

41

Ćwiczenie 1

Ćwiczenie 2

Ćwiczenie 3

Ćwiczenie 4

Ćwiczenie 5

Ćwiczenie 6

0x01 graphic



Wyszukiwarka

Podobne podstrony:
Instrukcja do zad proj 13 Uklad sterowania schodow ruchom
MSIB Instrukcja do Cw Lab krystalizacja
Instrukcja do MHDD
Instrukcja do cwiczenia 1
Instrukcja do programu WSPR
Instrukcja do ćw 18 Montaż i demontaż magazynu składowania MPS
Instrukcja do VirtualPneumoLab2
Instrukcje do ćwiczeń 2013
Instrukcja do ćw 06 Sterowanie pracą silnika indukcyjnego za pomocą falownika
Ćw.1 Wybrane reakcje chemiczne przebiegające w roztworach wodnych ćwiczenie 1, Chemia ogólna i żywno
instrukcje do
Instrukcja do zad proj 10 Podstawowe funkcje logiczne z z
Biofizyka instrukcja do cw nr 23
Biofizyka instrukcja do cw nr 0 Nieznany (2)
INSTRUKCJA do ćwiczenia pomiar temperatury obrabiarek v3 ver robocza
instrukcja 06, sem 3, Podstawy elektrotechniki i elektroniki, Laboratoria, instrukcje do cwiczen 201
instrukcje do ćw mięso, mięso
Instrukcja do ćw 15 Montaż i uruchomienie układu nawrotnego silnika indukcyjnego
Instrukcja do cwiczenia 2

więcej podobnych podstron