Range - Politechnika Wrocławska

Transkrypt

Range - Politechnika Wrocławska
Komputerowe wspomaganie
eksperymentu
2
Dr Piotr Sitarek
Katedra Fizyki Doświadczalnej, W11, Politechnika Wrocławska
Temat na dziś
 Podstawy „LabTalk” cd.
Co jeszcze …
 Dostępna jest także darmowa aplikacja
Origin Viewer v9.2
Co jeszcze …
Co jeszcze …
 darmowa aplikacja umożliwiająca podgląd
plików (Origin Project (OPJ) i Origin window
(OGG, OGW, OGM)) z OriginPro na
komputerach, na których Origin nie jest
zainstalowany i ewentualne kopiowanie
danych do innych aplikacji.
 pojedynczy plik EXE – niepotrzebna jest
instalacja
Podstawy „LabTalk”
 wpisujemy komendy (tekst) naciskamy Enter
na końcu linii
 jako komentarz rozumiany jest tekst na prawo
od „//”
 /* tekst */ - dla komentarzy w wielu liniach
 przejście do nowej linii – Ctrl+Enter
 możemy pisać skrypty w wielu liniach –
zaznaczamy tekst i naciskamy Enter
 średnik (;) na końcu każdej linii
 kalkulator
Gdzie używać „skryptów”?
 Command Window
Alt+3 lub View/Command Window
- proste i bardziej skomplikowane obliczenia
- Funkcje matematyczne
- Wywoływanie X-Funkcji
- Pomoc on-line: help arg
Gdzie używać „skryptów”?
 Script Window
Window/Script Window
 Code Builder – wbudowany debugger
Alt+4 lub View/Code Builder
Ciekawe opcje …
 X-Function Builder
F10 lub Tools/X-Function Builder
Ciekawe opcje …
 X-Function Script Samples
F11 lub Tools/X-Function Script Samples
Przykłady: definiowanie funkcji
- Otwieramy nową kartę Origin C w Code
Builderze
- Wpisujemy treść funkcji
- Kompilacja, zapisanie, Build …
- Wywołanie funkcji np:
col(B)[1] = nowaf(col(A)[1], 3)
(czyli do 1-go wiersza w kolumnie B podstawiamy …)
Przykłady: definiowanie makr
 Korzystając z makra, można powiązać skrypt
lub jego fragment z jedną nazwą, która staje
się poleceniem (komendą).
 Składnia:
define nazwa
{Script }
(zamiast define można używać def)
Przykłady: definiowanie makr
 W Originie jest sporo predefiniowanych makr.
Można je wyświetlić pisząc np.
list m [enter]
Aby wyświetlić zawartość, piszemy:
def nazwa
Aby skasować makro, piszemy:
delete –m nazwa
Przykłady: definiowanie makr
Zmienne w makrach:
 define hej
{
loop(ii, 1, 3) { type "$(ii). Jest fajnie!";
};
}
 Wywołanie np.
hej
Przykłady: definiowanie makr
Zmienne w makrach:
 def mnoz { type "$(%1 * %2)"; }
 Wywołanie np.
mnoz 2 5
Pliki skryptowe .ogs
 Używamy Code Builder’a, tworząc nowy plik
LabTalk Script File
 Pliki skryptowe są podzielone na sekcje:
np. [Main]
 Można dołączać źródła w C – np.
[CreateGraph]
run.LoadOC("test.c"); //uruchom i skompiluj
Plot_Data("scatter","data1_b");
Definiowanie własnych Toolbarów
 View / Toolbars
- New
Następnie możemy dodać przyciski.
Pod przyciski możemy podpiąć mniej lub
bardziej rozbudowane skrypty .ogs
Definiowanie własnych Toolbarów
 Definiowanie przycisków
- Prawy przycisk / Properties / Size / GapFromTop = 30
//robimy miejsce nad tabelą
- Wpisujemy tekst T
- Prawy przycisk / Programming Control
/ScriptRunAfter = ButtonUp
wpisujemy fragment wykonywalny
 np.
win -t plot line;
layer -i book1_b;
 OK
 Do edycji zaznaczamy: Edit/ButtonEditMode Prawy przycisk
Przydatne funkcje …
delete
delete [opcja] nazwa
brak opcji nazwa – kasuje dane lub funkcję (np.
delete col(4) )
-a kasuje tymczasowe dane
-m macroName kasuje makro
-v variableName kasuje zmienną
Przydatne funkcje …
Generatory losowe
rnd ()
normal(npts) np. col(1) = normal(100)*2+5;
uniform(npts)
white_noise ix:=Col(1) level:=5 ox:=Col(2);
Przydatne funkcje …
Range – dostęp do danych na różnym poziomie
(który należy określić)
[WinName]LayerName!DataRange
WinName - workbooks, matrix books, graph windows;
LayerName - worksheets, matrix sheets, graph layers;
DataRange - dane
Tylko jako argument X-Funkcji!
Przydatne funkcje …
[BookName]SheetName!CellRange
[MatrixBook]MatrixSheet!MatrixObject
[PageWindow]LayerName!DataPlot
range cc = [Book1]Sheet2!Col(3) - k 3 w Book1, Sheet2
range ll = [Graph1]Layer1!2; // 2-ga krzywa w Graph1, layer1
range mm = [MBook1]MSheet1!Mat(2); // 2-ga macierz w
MBook1, MSheet1
range v1 = [Book1]Sheet2!Col(3)
range [Book1]Sheet2 v2 = Col(3)
range [Book1] v3 = Sheet2!Col(3)
Przydatne funkcje …
range v1 = Col(A)
range aa=1;
// col(1)
range bb=B;
// col(B)
range cc="Test A"; // col("Test A")
range aa = 1, bb = B, cc == "Test A”
Podzakresy
range aa = 1[2]; // cell(2,1), row2 z col(1)
range bb = 1[1]:3[10]; // cell(1,1) do cell(10,3)
range cc = [book1]sheet2!col(a)[3:10]; // pz col(a) w book1
sheet2
Przydatne funkcje …
range ww = [Book1]Sheet1!; // Book1, Sheet1.
ww.name$ = "My Data"; // zmiana nazwy
range ll = [Graph1]layer2!; // graph1,
layer2. ll.color = color(green); // kolor tła na zielony
stats [Book1]Sheet2!(1:end); // s na 2-gi sheet w book1
stats Col(2); // s na 2-gą kolumnę akt. worksheet’u
stats 1[5]:2[10]; // s na komórki w kol 1 i 2 pomiędzy 5 a 10
range aa = (1,2)!col(2)[3:5];// col(2) 1go i 2go sheet’a,
wiersze 3 do 5.
stats aa;
Przydatne funkcje …
Wygładzanie
 smooth iy:=Col(2) method:=1 npts:=200
iy – dane do wygładzania,
method – metoda
0 - Adjacent-Averaging,
1 - Savitzky-Golay,
2 - Percentile Filter,
3 - FFT Filter
oy – dane wyjściowe
npts – „okno” wygładzania
Przydatne funkcje …
Dopasowanie typu „multi peak”
 fitpeaks type:=1 npeaks:=1 iy:=col(3)
type – typ funkcji, 0 – Gaussa, 1 – Lorentza
npeaks – ilość maksimów,
iy – dane wejściowe
Przydatne funkcje …
Dopasowanie – obiekt nlsf
(nonlinear least squares fitting)
nlsf.func$ = Gauss;
nlsf.cleanupfitdata();
nlsf.fitdata$ = %(1,@D); //dopasuj do pierwszego zestawu danych
w warstwie
nlsf.tolerance = 0;
y0 = 0; xc = 0.1; w = 1; A = 1; //parametry początkowe
limit %C; //nazwa aktywnego dataset’u
nlsf.xBegin = limit.xmin; //wartości x
nlsf.xEnd = limit.xmax;
nlsf.xPoints = 1000; //liczba punktów dopasowania
nlsf.fit(20); //dopasowanie, 20 iteracji
Przydatne funkcje …
Przykłady …
Generowanie danych
newbook name:="Krzywa3" option:=1;
%A = Krzywa3;
%B = funkcja3;
wks.AddCol(temp);
wks.AddCol(%B);
%A_A = data(-5,5,0.05);
%A_temp = %A_A - pi/3;
%A_B = sin(3*%A_temp)+cos(%A_temp/2);
white_noise ix:=col(2) level:=5 ox:=col(4);
del col(b);
del col(temp);
Wygładzanie
wks.addcol(smooth);//wyniki wygladzania
range k1 = [Krzywa3]Sheet1!col(funkcja3);
range k2 = [Krzywa3]Sheet1!col(smooth);
curve.data$ = k1;
curve.result$ = k2;
curve.i1 = 1;
curve.smoothpts = 5;
curve.adjave();
lub
range k1 = [Krzywa3]Sheet1!col(funkcja3);
smooth iy:=k1 method:=0 npts:=7;
//metody: 0 - adjave, 1 - S-G, 2 - percentage, 3 - FFT
Przydatne funkcje …
Obiekt curve
np. metody dla operacji matematycznych
curve.adjave()
Wygładzanie metodą adjacent averaging (curve.result$)
curve.deriv()
różniczkowanie
curve.FFTSmooth()
Wygładzanie z użyciem metody Fourier transform
curve.integrate()
Całkowanie
curve.SGDeriv()
Różniczkowanie metodą Savitzky-Golay
curve.SGSmooth()
Wygładzanie z użyciem metody Savitzky-Golay
Przydatne funkcje …
axis_scrollbar
axis – top, right, left, bottom
begin - początek
end – koniec skali
rescale – przeskalowanie wzgl. powyższych
layer – do której warstwy się odnosi
np.
axis_scrollbar axis:=top;
axis_scrollbar begin:=5 end:=10 rescale:=1;
Przydatne funkcje …
expASC
type – dat, txt, csv, all
select – tylko zaznaczone
separator – TAB, , , SPACE, itd
iw – arkusz do eksportu
np.
1. expASC path:="c:\signal.dat";
2. expASC type:=2 path:="c:\signal";
3. expASC type:=0 path:="c:\signal" select:=1 separator:=4;
4. expASC iw:=[book1]1 path:="c:\signal";
Przydatne funkcje …
impASC
np.
1. impASC fname:="c:\MyFix.txt";
2. impASC;
Przydatne funkcje …
Origin VIs dla LabVIEW
 dostępne są instrumenty pomocne w komunikacji między
Origin’em i LabVIEW, np
OAOpenCommunication.VI – otwarcie komunikacji z Origin’em
OACloseCommuniation.VI – zamknięcie
OACreate.VI – utwórz Worksheet, Graph, etc. w Origin’ie
 W LabVIEW biblioteka Origin Automation Server.llb.