ias0020 automaatjuhtimine ja süsteemianalüüs … · matlab: skriptid topelt protsendimärk...
TRANSCRIPT
![Page 1: IAS0020 Automaatjuhtimine ja süsteemianalüüs … · MATLAB: Skriptid Topelt protsendimärk (“%%”) eraldab skriptisektsioone. Jooksuta neid eraldi vajutades CTRL+Enter↵. Alati](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050512/5f9c8b1e5cf21b130a0734da/html5/thumbnails/22.jpg)
Simulink: näide (jätkub)Plokide nimed ja difvõrrandi lahend
Step
Constant Divide Product
Sum Integrator Scope
22