Ëàáîðàòîðууд
Лаборатори №1
Matlab-ыг ажиллуулах
Дэлгэцэн дээр байгаа Матлаб нэртэй дүрсийг 2 товшин эсвэл Start – Programs – Matlab менюгээр програмыг ажилуулна. Мatlab – Prompt-ийн (>>) дараа intro команд бичиж Матлабын тухай тайлбарыг гаргаж хялбархан сурч болох боломжтой юм.
Заавар:
ü Тусламж зааврыг help Function гэж бичиж гаргана.
ü Хувьсах хэмжигдэхүүнийг том жижиг үсгээр бичих нь ялгаатай.
ü Матлабд хэрэглэдэг чухал өгөгдлийн төрөл нь матриц юм. Нэг тоо байвал 1х1 хэмжээст матриц, вектор нь 1хn буюу nx1 хэмжээст матриц юм. Матрицийн элемент нь Матлабд хэрэглэгддэг илэрхийлэл байж болно. Жишээ нь sqrt(3) буюу 1+2*4, 1+2i ( энд i нь комплекс тоо sqrt(-1) юм).
Вектор
Prompt “>>”-ын дараа
>> a=[1 2 3 4 5 6 7] гэж оруулахад Матлаб нь доорхи өгөгдлийг гаргана.
a=
1 2 3 4 5 6 7
Олон элементтэй вектор өгөгдлийг дэлгэцэнд гаргахыг хориглож болдог. Үүний тулд мөрийн төгсгөлд цэгтэй таслал тавина.
>>a=[1 2 3 4 5 6 7];
Векторын хооронд үйлдэл хийх боломжтой, хялбархан юм. Үүнд:
>>b=a+5
b=
6 7 8 9 10 11 12
a,b векторуудын хэмжээс ижил тул тэдгээрийг хооронд нь нэмэх
>>c=a+b
c=
7 9 11 13 15 17 19 буюу тэдгээрийн харгалзах элементүүдийн хооронд үржих үйлдэл (Array product) хийж болдог.
>>c=c’
c=
7
9
11
13
15
17
19
Хоёр векторын скаляр үржвэр нь
>>a*c
ans=
420 гэж гарна. ans (answer) гэсэн хувьсах нь ямар нэг өөр хувьсахад олгохыг заагаагүй бол программаас автоматаар гардаг.
Жишээ нь:
>>sin(pi/2)
ans=
1
ans –ийг цааш нь тооцоонд хэрэглэвэл:
>>ans*2
ans=
2
Хувсахуудыг санах ойд (Workspace) хадгалдаг ба тэдгээрийг clear командаар арилгадаг. Санах ойд хадгалсан (Workspace) хувьсахуудыг who буюу дэлгэрэнгүй харах бол whos командаар дэлгэцэнд гаргаж хардаг.
>>who
Your variables are:
a ans b c d
>>clear ans d
>> who
Your variables are:
a b c
>>whos
Name Size Bytes Class
a 1x7 56 double array
b 1x7 56 double array
c 7x1 56 double array
Тодорхой дэс дарааллаар үүсэх элементтэй векторыг доорхи байдлаар үүсгэж болдог:
>>f=0:10
f=
0 1 2 3 4 5 6 7 8 9 10
>>g=10:2:20
g=
10 12 14 16 18 20
Векторын шаардлагатай элементийг индексээр нь тодорхойлж олдог.
>>f=(5)
ans=
4
>>f(2:4)
ans=
1 2 3
Мөн тухайн элементийг өөр элементээр орлуулах буюу устгаж болно:
>>f(5)=100
f=
0 1 2 3 100 5 6 7 8 9 10
>>f(1:3)=[1 1 1]
f=
1 1 1 3 100 5 6 7 8 9 10
>>f(4:10)=[];
f=
1 1 1 10
Тэгш өнцөгт хаалт [ ] ашиглан векторуудыг хооронд нь холбох болон матриц болгож хувиргаж болдог:
>>k=[1 2 3];
>>I=[k k k]
I=
1 2 3 1 2 3 1 2 3
>>M=[k; k; k]
M=
1 2 3
1 2 3
1 2 3
Матриц
Матлаб нь матрицийн хооронд тооцоо хийх ба тїїнийг хувиргах єргєн их
Боломжтой юм. Ийм їйлдлїїд нь векторын функцтэй тєстэй хэрэглэгддэг. М матрицийн аливаа нэг элемент буюу дэд матрицийг доорхи байдлаар гаргадаг.
>> M(2,2)
ans =
2
>> M(2:3, 2:3)
ans =
2 3
2 3
Нэг мєр буюу баганыг бїхлээр нь гаргах бол давхар цэг (:) ашигладаг.
>> M(2,:)
ans =
1 2 3
Матрицад їйлдэл хийх тусгай функц нь, жишээлбэл:
>> diag (M)
ans =
1
2
3 буюу матрицийг урвуулах їйлдэл (инверс):
>> A = [1 2 3; 5 7 6; 1 4 6]
A =
1 2 3
5 7 6
1 4 6
>> inv (A)
ans =
2.0000 0.0000 -1.0000
-2.6667 0.3333 1.0000
1.4444 -0.2222 -0.3333
>> A*inv(A)
ans =
1.0000 0.0000 0.0000
0.0000 1.0000 0.0000
0.0000 0.0000 1.0000
M матрицийн урвуулсан матрицийг тооцоолно уу?
3x3 хэмжээстэй, нормал тархсан санамсаргүй тоон утгатай матрицийг үүсгэхийн тулд доорхи командыг ашигладаг.
>>randn(3)
ans=
-0.5033 -1.0711 0.5333
0.0915 -0.1636 0.4024
-1.0127 -0.4402 -1.3607
(Матлабаас өгөгдөл гаргахыг цаашид харуулахгүй)
Доорхи тэгшитгэлийн системийг бодохын тулд
х1+х2=2
4x1-9x2= -5
Коэффициентын матриц
>>A=[1 1;4 -9] ба системийн баруун талын хэсэг
>>b=[2: -5] векторыг оруулбал, шийд вектор [x1, x2]T –ийг
>>A\b буюу
>>inv(A)*b гэж тодорхойлно.
Матрицийг мєр мєрєєр нь оруулж болох ба тїїнчлэн хувьсах хэмжигдэхїїн, арифметик илэрхийлэл хэрэглэж болно. Гэхдээ эдгээрийн хооронд нэг їсгийн хэмжээтэй хоосон зай їлдээх шаардлагатай.
>> B = [к(2) 2+3
1+k(2) sqrt(k(2))]
Энэ їед мєн матрицийг матрицаар їїсгэх боломжтой:
>> C = [A b]
Матрицийн хооронд нэмэх, хасах ба їржих їйлдлийг доорхи маягаар хийж болно. >>
>>C = A+B-A*B
Їїнээс гадна ямар нэг матрицийг скаляраар їржих болон скалярыг матрицийн элемент бїр дээр нэмэх/ элемент бїрээс скалярыг хасах їйлдэл хийх буюу матрицийг хєрвїїлж болно.
>> 2*A
>> A+3
>> A’
Мөн матрицийн хувьд ,,цэг цэгээр үйлдэл хийх”, өөрөөр хэлбэл элемент бүрээр нь үйлдэл гүйцэтгэж болно.
>>C=A.*B
Матрицийн элементэд мөн дан дангаар нь хандаж болно.
>>A(1,1)=A(1,2)+2
Матлабд матрицийн хооронд 2 тєрлийн хуваах їйлдэл хийх боломжтой.
1. Зїїн талын хуваах їйлдэл
X = A\B
нь
A*X=B
тэгшитгэлийн шийдийг гаргадаг.
А,В-ийн мєрийн тоо ижил байх ёстой ба Х нь В – ийн адил баганын тоотой
байдаг байна.
2. Баруун талын хуваах їйлдэл
В/A
нь
X*A=B
тэгшитгэлийн шийдийг гаргадаг. Харин А,В-ийн баганын тоо ижил байх ёстой
ба Х нь В-ийн адил мєрийн тоотой байдаг. Лаборатори №3
Simulink
Simulink-ийн тусламжтай шугаман, шугаман бус, дискрет ба тасралтгүй, гибрид буюу холимог төрлийн системийг загварчилаж болдог. Үүнд:
- График – блокийн хандалттай арга
- Матлабд програмчилах
- С буюу FORTRAN програмчлал
Энэхүү гарын авлагын зорилго нь Simulink-ын програмын багцыг практикт хэрхэн хэрэглэх тухай тайлбарлах юм.
- Simulink гэж юу вэ? Түүнтэй хэрхэн ажиллах вэ?
- Сигнал боловсруулалтанд Simulink-ийг хэрхэн хэрэглэх вэ?
Гэсэн асуултанд хариулах хэрэгтэй юм. Нөгөө талаас энэ гарын авлага нь практикт Simulink-ийг хэрхэн ашиглах тухай мэдэгдэхүүн өгөх зорилготой юм.
Бүтэц зохион байгуулалт
Юуны өмнө Simulink-ийн статик бүтцийг тайлбарлая. График орчин болох янз бүрийн цонхууд нь чухал үүрэгтэй байдаг тул эдгээрийн тухай эхлээд тайлбарлах юм.
Тойм: Симулинк нь матлабтай холбоо бүхий графикийн редактортой (editor) юм. График редактор нь тоон ба аналог сигнал боловсруулах системийг графикаар дүрслэх боломж олгодог. Матлабтай холбогддог тул ийм системийг загварчилах бүрэн боломжтой юм. Лаборатори №4
Stateflow- ûã àøèãëàõ æèøýý
Õýðýâ ãàäíà àãààðûí òåìïåðàòóð 30 Co õýìýýñ áàãà áàéâàë ñýíñ ñàëãààòàé áàéäàëä (off) áàéíà. Èéì áèø áîë On áàéäàëä øèëæèæ ñýíñèéã çàëãàõ ïðîöåññûã Statflow – ûí äèàãðàììààð èëýðõèéëæ çàãâàð÷ëàõ.
¯¿íèé òóëä ÿìàð äàðààëàëòàé ¿éëäýë ã¿éöýòãýõèéã ¿çüå.
¯¿íä: Simulink -èéí çàãâàðûã ¿¿ñãýíý.
1. Matlab- ûí ïðîìïòûí(>>) äàðàà sfnew (ýñâýë sf)ãýæ îðóóëíà. Èíãýõýä äîîðõè öîíõ
ãàðíà.
2. Stateflow - ûí Untitled (Chart)òýìäýãèéã ìàóçîîð òîãøèæ On_Off ãýæýìäýãèéí íýðèéã
ñîëü¸. ßìàð íýð ºãºõèéã õýðýãëýã÷ ººðºº ñîíãîíî ãýäãèéã àíõààðíà óó?.
3. File öýñýýñ Save As –ûã ñîíãîæ Simulink- èéí çàãâàðûã õàäãàëíà.
Stateflow -ûí äèàãðàìì ¿¿ñãýõ
1. Simulink äýõ Stateflow –ûí çàãâàðûí öîíõîä ìàóçààð õî¸ð óäàà òîãøèíî. Èíãýæ ãðàôèêèéí ðåäàêòîðûí öîíõ ãàðäàã. Ýíý öîíõíû ç¿¿í òàëä çóðàã çóðàõàä øààðäëàãàòàé ä¿ðñíèé õýðýãñýë á¿õèé áàãàíà ãàðäàã
2. Çóðãèéí õýðýãñëèéí áàãàíààñ State -ã ñîíãîæ , ìàóçûí çààã÷ààð òºëºâ áàéäëûí ä¿ðñèéã øèëæ¿¿ëæ , ðåäàêòîðûí öîíõîíä áàéðëóóëíà.Òºëºâèéí ä¿ðñ äîòîðõè ‘?’ òýìäýãèéí íýðèéã On áà Off ãýæ ñîëü¸.Òºëºâèéã èäýâõèæèëòã¿é áîëãîõäîî òºëºâèéí ãàäíà òàëä òîãøèõ áóþó Esc òîâ÷èéã äàðíà
3. Òºëºâ õîîðîíäûí øèëæèëòèéã (transition) ìàóçíû ç¿¿í êóðñîðîîð çóðäàã (Çóðàã 4). Õàðèí õîëáîëò õèéõèéí òóëä Junction òîâ÷ëóóðûã ìàóçààð òîãøèæ, çàíãèëààíû öýãèéã ãðàôèêèéí ðåäàêòîð ðóó 纺äºã
4. On òºëºâººñ Off òºëºâò øèëæèõ øèëæèëòèéí òýìäýãèéí íýðèéã off_switch , Off òºëºâººñ çàíãèëààíû öýãð¿¿ øèëæèõ øèëæèëòèéí òýìäãèéí íýðèéã on_switch ãýæ òóñ òóñ íýðëýå. Çàíãèëààíû öýãýýñ Off òºëºâð¿¿ øèëæèõ øèëæèëòèéí òýìäýãò [temp<=30] ãýñýí íºõöºë îëãî¸. Off òºëºâð¿¿ øèëæèõ ñòàíäàðò øèëæèëòèéã çóðãèéí õýðýãñýëèéí Default Transition -ã ñîíãîæ Off òºëºâð¿¿ õîëáîíî
No comments:
Post a Comment