22
IAS0020 Automaatjuhtimine ja süsteemianalüüs Sissejuhatus MATLAB-i keskkonda

IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

IAS0020 Automaatjuhtimine ja süsteemianalüüsSissejuhatus MATLAB-i keskkonda

Page 2: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Süsteemide modelleerimine: Kasutatav tarkvara

• MATLAB ja Simulink;

• Octave: MATLAB keele otsene toetus, vabavara;

• Scilab ja Xcos: MATLAB keele osaline toetus, vabavara;

• Python koos NumPy jm. paketidega: võimas, vabavara, kuid ei ole mingit MATLAB keele tuge.

2

Page 3: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

MATLAB: Graafiline kasutajaliides

Praegune MATLAB-i töökaust opsüsteemis.

MATLAB-i käsurida. Käsk täidetakse kohe peale Enter↵ nupu vajutamist.Käsu tulemus salvestatakse MATLAB-i jooksvate andmete hulka. Noole klahvidega “↑” ja “↓” saab liikuda läbi käskude ajaloo.

MATLAB-i Workspace. Siia salvestatakse kõik käsureas või skriptis loodud muutujaid.

Current directory /Jooksev kataloog /Текущая директория

Command window /Käsurida /Командная строка

Workspace /Jooksvad andmed /Рабочее пространство

Layout→Default

Preferences→Fonts(šrifti suurus)

3

Page 4: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

MATLAB: Kuidas abi saada?

Et saada käsu kohta abi, kirjuta käsureale

>> help command

kus command on huvi pakkuv käsk. Kui on vaja põhjalikumat käsu kirjeldust, kirjuta

>> doc command

4

Page 5: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Põhikäsud

>> a=1 % kommentaare eraldame “%”-gaa =

1

>> b = -2; % “;” ó “ära näita väljundit”

>> b^2 % “^” ó astendamineans =

4

>> apb = a + b % a ja b summa ó plus(a,b)apb =

-1

5

Page 6: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Põhikäsud (jätkub)

>> 1 + 2*sqrt(ab) % “sqrt” ó ruutjuur ans =

1.0000 + 2.0000i

>> log(0) % “Inf” ó “lõpmatus”ans =-Inf

>> var1 = 3.1415e+3 % Teaduslik arvuvormingvar1 =3.1415e+003

>> clear all % Tühjenda Workspace-i

“e” ó “eksponent”

6

Page 7: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Kompleksarvud: meeldetuletus

Kompleksarv on number, mis omab kuju

Reaalosa

Imaginaarosa

7

Page 8: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Vektorid

Olgu antud reavektor

Sisastame seda MATLAB-i:

>> a = [1 2 3 4 3 2 1]a =

1 2 3 4 3 2 1

8

Page 9: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Vektorid

Tehe veeruvektoriga:

Sisestame seda MATLAB-i:

>> b = [5; 6; 7; 8; 7; 6; 5] - 4;

>> c = a==b' % võrdleme a ja bc =

1 1 1 1 1 1 1

Siin: lahutamine igast vektori elemendist

Transponeerimine (“'”) muudab veeruvektori reavektoriks ja vastupidi

9

Page 10: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Diapasoonid

MATLAB-is on väga lihtne luua vahemikke kasutades “:” (koolon) sümbolit.

>> d1 = 0:4

Näited:

>> d2 = 0.3:-0.1:0.1

MATLAB-i kood:

10

Page 11: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Maatriksid: sisestamine

Read eraldatakse semikooloniga (“;”):

>> A = [9 2 3; -1 3 4; 0 2 1];

Sisestame MATLAB-i maatriksi

11

Page 12: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Maatriksid: indekseerimine

Näiteks:

>> A(1,1) + A(2,3)ans =

13

Elemendi väljavõtmine:

(rida)

(veerg)

12

Page 13: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Maatriksid: indekseerimine (jätkub)

>> A(3,3) = 4A =

9 2 3-1 3 40 2 4

>> B = A; B(2,:) = 0B =

9 2 3-1 3 40 2 4

Maatriksi elementide asendamine

13

Page 14: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Maatriksid: tehted

• Transponeerimine:

>> transpose(A)

• Inverteerimine:

>> inv(A)

• Korrutamine:

>> A'

>> A^-1

>> A*A'

14

Page 15: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Maatriksid: tehted (jätkub)

• Omaväärtuste leidmine:

>> eig(A)ans =

0.6426 7.6787 + 0.4106i7.6787 - 0.4106i

• Karakteristliku polünoomi leidmine:

>> p1 = poly(A)p1 =

1.0000 -16.0000 69.0000 -38.0000

15

Page 16: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Polünoomid

• Polünoomid MATLAB-is defineeritaksekoefitsientide vektorina. Näiteks, sisestame polünoomi

• Vastav MATLAB-i kood on

>> p2 = [1 -2 0 5];

16

Page 17: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Polünoomid: tehted

• Polünoomi juurte leidmine:

• Polünoomide korrutamine (konvolutsioon):

>> p3 = conv(p1,p2);

>> roots(p1)ans =

7.6787 + 0.4106i7.6787 - 0.4106i0.6426

17

Page 18: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

MATLAB: Skriptid

Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵.

Alati on mugavam kirjeldada mingit arvutamisprotse-duuri kas MATLAB skripti- või funktsioonina.

18

Page 19: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Simulink: Mudeli loomine

Sisesta MATLAB-i käsuritta: simulinkUue mudeli loomiseks vali File→New→Model

Ploki otsing nime järgi

Siit leiad vajalikke plokke. Vii neid drag-and-drop-i kaudu uue mudeli diagrammile.

Topeltklikk avab valitud teeki

19

Page 20: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Simulink: näide (püsikiiruse hoidja)

20

Page 21: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Simulink: näide (jätkub)

21

Page 22: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati

Simulink: näide (jätkub)Plokide nimed ja difvõrrandi lahend

Step

Constant Divide Product

Sum Integrator Scope

22