Documente Academic
Documente Profesional
Documente Cultură
Introducere in LabVIEW MathScript
Introducere in LabVIEW MathScript
MathScript
~ IPSE 2 ~
MOCANU Irina
MICU Adrian
LIXANDRU Alin
CUPRINS:
b. Graficele 3D ............................................................................................ 15
II.
Bibliografie................................................................................................. 34
~2~
Ce este MathScript?
MathScript este de un nivel mai inalt, orientat spre matematic, bazat pe limbajul text pentru
sarcini de calcul matematic. Este cel mai potrivit pentru calculul matematic, se pot crea functii
personalizate, sintaxa fiind ca cea a Matlabului.
Algebra liniar este o ramur a matematicii preocupata cu studiul matricelor, vectorilor,
spaiilor vectoriale (numite, de asemenea, spaii liniare), hrilor liniare (numite, de asemenea,
transformri liniare) i sistemelor de ecuaii liniare. MathScript este potrivit pentru Algebra
liniara.
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
~3~
~4~
Mai jos este procedura de creare a unei funcii definite de utilizator n MathScript:
~5~
Un script este o secven de comenzi din MathScript pe care dorim s o realizam pentru a
ndeplini o sarcin. Dup ce am creat script-ul il putea salva ca fiier .m pentru o utilizare
ulterioar.
~6~
De retinut:
~7~
I.
Operatii de baza in LabVIEW MathScript
1. Operatii de baza privind numerele (Numbers)
LABVIEW MATHSCRIPT are multe operaii aritmetice i funcii ncorporate. Cele mai multe
dintre ele sunt simplu de folosit. Tabelul de mai jos listeaz cteva operaii scalare utilizate n mod
curent. In acest tabel, x i y sunt scalari.
Tabelul de mai jos prezint mai multe formule matematice, expresiile LABVIEW
MATHSCRIPT corespunztoare i valorile calculate de LABVIEW MATHSCRIPT.
~8~
3. Numere complexe
LABVIEW MATHSCRIPT are un suport excelent pentru numere complexe cu mai multe
funcii predefinite disponibile. Unitatea imaginar este notat cu i sau (aa cum este de preferat n
domeniul ingineriei electrice) j.
Exemple:
z1 = 7 + i si z2 = 2 z1 = 7 + j si z2 = 2*exp(j*pi)
~9~
Exemplu:
>> A = [1
10
11 12 13 14 15
16 17 18 19 20]
A=
1
10
11
12
13
14
15
16
17
18
19
20
Un ntreg rnd al matricei A poate fi obinut prin specificarea ":" ca un indice coloan:
~ 10 ~
10
In mod similar, o ntreag coloan a matricei A poate fi obinut prin specificarea ":" ca si indice
rnd:
>>A(:,3)
ans =
3
8
13
18
plot - functia plot produce poriuni liniare ntre valorile sale de date. Cu suficiente puncte
date graficul arat continuu.
stem - este modul natural de plotare a secvenelor. stem(x, y) ploteaza secventa y la valorile
specificate n x.
xlabel ('string') - Eticheteaza axa x - string.
ylabel ('string') - Eticheteaza axa y - string.
title ('string')
~ 11 ~
x = -2:0.2:2;
y = x.^2;
figure(1);
plot(x,y);
xlabel('x');
ylabel('y=x^2');
title('Simple plot');
figure(2);
stem(x,y);
xlabel('x');
ylabel('y=x^2');
title('Simple stem plot');
folosind aceste coduri vom avea urmatoarele figuri:
hold on / off - n mod normal este off. Acest lucru nseamn c comanda plot nlocuiete
plotul curent cu cel nou. Pentru a aduga un nou plot pentru un grafic existent folosim hold
on. Dac dorii ca s rescrieti peste plotul curent utilizati hold off.
legend ('plot1', 'plot2', ..., 'plot N') - Comanda legend ofer o modalitate uoar de a
identifica ploturile individuale n cazul n care exist mai mult de unul.
~ 12 ~
axis ([xmin xmax ymin ymax]) - Utilizai comanda axis pentru a seta axa aa cum dorii.
Utilizai axis on/off pentru a comuta axa on/off.
subplot (m, n, p) - Imparte fereastra n m rnduri, n coloane i selecteaz subplotul p ca si
plot curent;
- de exemplu subplot (2,1,1) mparte figura n dou i selecteaz partea superioar;
subplot (2,1,2) selecteaz partea inferioar.
grid on/off - Aceast comand adaug sau elimin gridul plotului.
figure(1);
plot(x,y1);
hold on;
plot(x,y2,'-');
hold off;
xlabel('x');
ylabel('y_1=-x^2 and y_2=x^2');
legend('y_1=-x^2','y_2=x^2');
figure(2);
plot(x,y1);
hold on;
plot(x,y2,'-');
hold off;
xlabel('x');
ylabel('y_1=-x^2 and y_2=x^2');
legend('y_1=-x^2','y_2=x^2');
~ 13 ~
subplot(2,1,1);
plot(x,y1);
xlabel('x'); ylabel('y_1=-x^2');
grid on;
subplot(2,1,2);
plot(x,y2);
xlabel('x');
ylabel('y_2=x^2');
iar rezultatele sunt urmatoarele:
~ 14 ~
b. Graficele 3D
ncheiem subiectul privind graficele cu o scurt prezentare privind graficul 3D. Noile
funcii utilizate sunt meshgrid i mesh.
[x,y] = meshgrid(-3:.1:3);
z = x.^2+y.^2;
mesh(x,y,z);
xlabel('x');
ylabel('y');
zlabel('z=x^2+y^2');
~ 15 ~
~ 16 ~
II.
Programarea in LabVIEW MathScript
1. Introducere in Programare folosind LabVIEW MathScript
Poti folosi platforma LABVIEW MathScript pentru a automatiza calcule. Aproape orice scris
in linia de comanda poate fi inclus intr-un program LABVIEW MathScript. Liniile intr-un script
LABVIEW MathScript sunt interpretate secvential si instructiunile sunt executate pe rand. Asta
simplifica calcule repetate. Asta iti perimte sa creezi calcule complexe care nu pot fi implementate
de-a gata utilizand comenzi in linia de comanda.
Scripturile LABVIEW MATHSCRIPT sunt fisiere text si pot fi editate de orice editor text.
Orice script ar trebui sa ruleze la fel pe orice calculator ce ruleaza LABVIEW MATHSCRIPT
indiferent de sistemul de operare. Fisierele Script trebuie sa aibe extensia ".m" si sa fie intr-un
directoriu de care LABVIEW MATHSCRIPT stie.
Utilizeaza comentarii pentru ati reaminti si pentru a ajuta alti utilizatori sa inteleaga cum ai
implementat programul. Commentariile incep cu caracterul %.
Pentru ca LABVIEW MATHSCRIPT sa execute corect un script, trebuie sa stie directorul in
care rezida scriptul. Sunt cateva metode de a realiza acest lucru. Unul este de a a seta directoriul
curent de lucru pentru LABVIEW MATHSCRIPT din File >MathScript Preferences in fereastra
interactiva MathScript. Informatii mai detaliate pot fi regasite la Cutia de Dialog National
Instrument's LabVIEW MathScript Preferences.
Numele fisirelor .m ar trebui sa incepe cu o litera si sa contina doar litere si numere. Orice alt
caracter (spatiu, liniuta, steluta, bara oblica, etc.) vor fi interpretate de LABVIEW MATHSCRIPT
drept operatii asupra variabile si vor cauza errori. Deasemena, numele fisierelor M nu ar trebui sa
fie la fel ca numele variabilelor in workspace, deoarece LABVIEW MATHSCRIPT nu va putea
face diferenta intre numele fisierului si variabila.
~ 17 ~
2. Bucla FOR
Bucla FOR este un mod de a face LABVIEW MATHSCRIPT sa repete o serie de calcule
utilizand valori diferite. Bucla FOR are umatoarea sintaxa:
for d = array
%LABVIEW MATHSCRIPT command 1
%LABVIEW MATHSCRIPT command 2
%and so on
end
In bucla FOR, multimea (array) poate fi orice vector sau multime de valori. Bucla FOR
functioneaza in modul urmator: d este setat la prima valoare a multimii, si secventa comenzii
LABVIEW MATHSCRIPT din structura buclei FOR este executata cu acea valoare a lui d. Apoi
d este setat la a doua valoare in multime, si secventa de comenzi LABVIEW MATHSCRIPT din
structura buclei FOR este executata cu aceasta valoare a lui d. Acest proces continua prin toate
valorile din multime. Deci, pentru o bucla FOR ce efecturaza calcule pentru valori ale lui d de la
1.0 la 2.0 avem:
for d = 1.0:0.05:2.0
%LABVIEW MATHSCRIPT command 1
%LABVIEW MATHSCRIPT command 2
%and so on
end
~ 18 ~
~ 19 ~
2.1.
Indici de bucla I
Indici de bucla II
20
of zero for a range (Eroare in functia gama la linia1. Nu poti sa specifici un pas de zero
pentru o gama).
Bucla Imbracata
Bucla Complicata
Bucla Imbracata II
22
Ipotenuze Multiple
C
A
B
Figure 2.1: Laturile unui triunghi dreptunghic
Considerand triunghiul dreptunghic din Figura 2.1. sa presupunem ca dorim sa aflam
lungimea ipotenuzei c a acestui triunghi pentru cateva combinatii de lungimi a laturelor a si b;
combinatiile specifice de a si b sunt date in Tabelul 2.1. Scrie un program LABVIEW
MATHSCRIPT sa faca acest lucru.
a
for j=1:5
c=sqrt(a(j)^2+b(j)^2)
end
23
24
if expresie
% comanda LABVIEW MATHSCRIPT se executa daca expresia este corecta
end
if v < 0
disp('v is negative')
end
if expression
% comanda LABVIEW MATHSCRIPT va fi executata daca expresia este adevarata
else
% comanda LABVIEW MATHSCRIPT va fi executata daca expresia este falsa
end
De exemplu, urmatoarea functie va afisa v este nevativ daca variabila v este negativa si v nu
este negativ:
25
if v < 0
disp('v is negative')
else
disp('v is not negative')
end
if expression1
% comenzile LABVIEW MATHSCRIPT sunt executate daca expression1 este adevarata
elseif expression2
% comenzile LABVIEW MATHSCRIPT sunt executate daca expression2 este adevarata
elseif expression3
% comenzile LABVIEW MATHSCRIPT sunt executate daca expression3 este adevarata
...
else
% comenzile LABVIEW MATHSCRIPT sunt executate daca expresiile sunt toate false
end
Exemplu:
if v < 0
disp('v is negative')
elseif v > 0
disp('v is positive')
26
else
disp('v is zero')
end
De retinut ca toate exemplele din acest modul, comenzile din interiorul functiei daca (IF)
sunt indentate in functie de functiile if, else, elseif. LABVIEW MATHSCRIPT nu solicita acest
lucru, dar indentarea este o practica comuna pentru a inlesnirea citirii codului.
3.1.
Expresii logice
Expresiile logice sunt utilizate in instructiunile IF, CASE, WHILE pentru a modifica secventa
de executie a comenzilor din LabVIEW MathScript. O expresie logic este una care evalueaz
daca este adevrat sau fals.
De exemplu, v > 0 este o expresie logic care va fi valabila n cazul n care variabila v este mai
mare dect zero i false n caz contrar.
Operatori relationali
Simbol
Descriere
<
<=
>
>=
==
Egal
~=
Ne-egal
Operatori logici
Simbol
Descriere
Negatie
&&
Si
||
Sau
27
3.2.
Exercitii cu functia IF
if a < b*c
disp('Hello world')
28
else
disp('Goodbye world')
end
Solutie: b*c va fi egal cu 6, iar 5 < 6, deci codul va afisa 'Hello world'.
29
while expression
% LABVIEW MATHSCRIPT command 1
% LABVIEW MATHSCRIPT command 2
% More commands to execute repeatedly until expression is not true
end
unde expression este o expresie logica ce poate fi adevarata sau falsa. Ca exemplu, poate fi
considerata urmatoarea functie WHILE:
n=1
while n < 3
n = n+1
end
De retinut ca toate exemplele din acest modul, comenzile din interiorul functiei repetitive
cat timp (WHILE) sunt indentate in functie de functiile if, else, elseif. LABVIEW MATHSCRIPT
nu cere acest lucru, dar indentarea este o practica comuna pentru inlesnirea citirii codului.
30
4.1.
31
end
Solutie:
a=
a=
a=
a=
a = 16
a = 32
a = 64
a = 128
Solutie:
a=
a=
a=
6
32
a = 24
a = 120
33
III.
Bibliografie:
34