You are on page 1of 98
GIAO TRINH MATLAB - SIMULINK TONG QUAN VE MATLAB 0.1 Céu trie chung va céc linh yye ting dung cia MATLAB: MATLAB (viét tit ti matrix laboratory) duge phat trién tit dy an LINPACK & EISPACK nhim tao ra thir vign ma trn phue vu cho tinh toan. Qua qué trinh phat trién lau dai, MATLAB dugc phat trién thanh mét céng cu rat manh, duge tmg dung kha phd bién trong cdc truémg dai hoc & khip thé gigi, dic bigt li céie nude nhu Mj, Bi, Canada, nhu la céng cy khéng thé thiéu trong céc gido trinh tir co ban dén nang cao trong cde linh vie: todn hgc cao cép, khoa hoc va ky thudt. Trong cong nghigp, MATLAB cdng cu Ia chon cho nghién eiru nang cao higu qua sin xudt, phan tich dnh gid va img dung. Voi MATLAB, bai toan tinh toan, phan tich, thiét ké va mé phong tro nén dé ding hon trong nhiéu Tinh vue chuyén nganh nhu: Dign, Bign tk, Co khi, Co dign tir, Vat ly, MATLAB La céng cu tinh todn rat manh dé dig, true quan dé mé rong va phat trién. MATLAB cé kha nang lién két da mdi trréng, lién két dé ding véi ngén ngit lap trinh C++, Visual C, FORTRAN, JAVA, . & MATLAB c6 kha ning xit ly 43 hoa manh trong khdng gian hai chiéu va ba chiéu. = Cae TOOLBOX trong MATLAB rit phong phi, da ning la céng cy nghién itu, thiét ké cute ky higu qua trong cdc Tinh vue chuyén nginh, © Céng cu m6 phéng tne quan SIMULINK chay trong mdi trrémg MATLAB gitip cho bai todn phan tich thiét ké dé dang, sinh déng hon. MATLAB cé kién tric mé, dé ding trong vige xdy dug thém cic module tinh ton ky thudt theo tiéu chun céng nghiép va trayén thong. MATLAB xay dumg sin cdc phép tinh xir ly trfn, cdc him toan hge, cde phép xt ly dé hoa véi thu vign phong phi. Tir dé cho phép nguéi ding viét cac chuong trinh (m- files), xy dung cdc ham chuyén tinh ton cho mdi linh vue (goi 1A cdc TOOLBOXS) hu: Diéu khién ty d6ng, Ky thudt dign, Dign tir, truyén thong, xir ly anh, xir ly tin higu s6, 161 uu hoa, mé phong ede qua trinh thye té Trén eo sé cée thu vign o6 sin, ngudi ding lip nén cde chwrong trinh ing dung rigng theo nhu cau riéng véi cdu tric chuong trinh dé hiéu, 16 rang va tan dung site manh cac céng cu cé sin, dic bigt céng cu xt ly ma tran dé viét nén cdc img dung ma théi gian lap trinh tiét kigm rét nhigu. Ngoai ra MATLAB cho phép viét ngén ngit C/C++, FORTRAN trong cita sé MATLAB va bién dich chuong trinh viét bing MATLAB sang C/C++, FORTRAN. Tit dé ta c6 thé bign dich sang churong trinh img dung (*.exe) chay de lap (stand-alone application). Dic bigt, ta c6 thé viét chuong trinh C/C+, Fortran, LabView, ... goi MATLAB. chay ngam dé tinh ton sau dé tra két qua vé chuong trinh. Ngodi ra MATLAB cé thé chay trén céc may tinh khée nhau, véi cée hé digu hinh Khée nhau nh; MS Windows, X Windows (Unix/Linux) vi Macintosh ma vin gitt nguyén cde chuong trinh va dir ligu, khéng cin mgt sy bién déi nao. 0.2 Gidi thigu SIMULINK va. TOOLBOXS trong MATLAB SIMULINK Ii céng cu mé phing tntc quan trong méi trang MATLAB, két hgp véi thu vin TOOLBOXS rit phong phi cho cde nganh, ede Tinh vue ky thuat, giip cho bai toan phan tich thiét ké dé dang, sinh déng hon. Do dé rat thich hyp cho sinh vién nghién cttu khoa hoe, lim bao cio dé an mén hoe, dic bigt do dn t6t nghi¢p, Cac ky su lim vige trong cdc linh vue nghién ctu, diéu khién cac hé théng ky thuat, phan tich hé théng, ... Cae Toolboxs: - Control System Toolbox cho linh vue diéu khién - Ty dong hod, Dign tir, Co khi. ‘Thiét bj dign, Ty dng - Power System Toolbox cho chuyén nganh Hé théng di¢ hod, Co khi. bi uu hg - Nonlinear control Design blocksets é m6 phéng, phan tich, 1! thdng diéu khién phi tuyén. - Signal Processing Toolbox va Image procesing Toolbox dinh cho nginh nginh Dign tir vién thong, Cong nghé théng tin va Co dign tir, - Communication Toolbox danh cho nginh dign ti vién thong- TDH Do luimg - Data acquisition Toolbox thu thap dit ligu, xay dung hé thu thap dit ligu vao/ra ‘véi thiét bi bén ngoai. - Fuzzy logic va Neural Network Toolbox phan tich thi @ théng trén co sé logic mé va mang no ron nhan tao. - Aerospace Toolbox vi Math Toolbox cho nganh Cg khi - Co dign tr. CHUONG 1. CAC THAO TAC LAP TRINH TREN MATLAB 1.1 Cae Iénh co ban quan ly MATLAB 1.1.1 Quan ly Ignh va céc ham = Cira ss MATLAB: bao gdm cac phan sau: MATLAB Command Window BI Simulink (mi cita s6 soan thio [chirong trinh mé phéng simulink) Fle Edt Yew Widow Helo [path browser (mo ct s8 quan sit cde \duong dan tim kién cia MATLAB vi \e6 thé xoa hoge bd sung dung din fim kiém) workspace browser (mo ctta s6 quan jsat va sita chita cdc bién trong khéng {gian workspace) ‘open(mnd cia 86 soan thio vi Jchurong trinh eit) Hinh 2.1 Cita sé dong Ignh MATL. jew (mo cira sO soan thio mai ‘ngong trinh) Tir ctta sé dong Iénh, ta c6 thé goi Iénh thi hanh: jong gah(commandline) »path cho duéng din cdc thu muc trong danh muc tim kiém (search path) »addpath Bé sung cac thu muc vao search path cia MATLAB »rmpath xo thi muc Khdi search path cita MATLAB »pathtool mé cita sé giao dién cho phép xem va sita déi duéng din tim kiém search path gidng nhu editpath (hinh 1.2) Boh Tools Help Tinh 2.2 Cita path Browser soan duéng din tim kiém tép M-file. »ver hién thj version cla MATLAB, Simulink va Toolboxes vhelp hudng din sir dung sau help »helpwin danh sich cdc Iénh va huréng dan sir dung »helpdesk cita s6 trg gitp trong mdi tnrdng Intemet Explorer »demo chay cac chung trinh demo cho nhiéu Tinh vue Hinh 2.3 Ctra sé HelpDesk Hinh 2.4 Ctra sé Helpwin 1.1.2 Quan ly bién, khong gian workspace trén cira sé Iénh (Command window) 1, who hién thj danh sich cae bién whos hién thi danh sich cdc bién va kich thude ciia nd workspace hién thi cira sé workspace cho phép xem va chinh sita cac gia tri bién ele xoa cdc dong text trén man hinh yee clear xoa tit ca cic bién trong workspace Lam vige v6i Files mdi trudng lam vige dir thumuc ligt ké cdc file trong thumuc chi ra edit tenfile sogn thio moi mét M-file open tenfile mé file tenfile dé stra chita bién trong workspace lén dia 4, save hunu Ci ef phap: save fhame luu cac bién vao tép nhj phan "MAT-file" fname.mat. Néu khong cd frame thi mic nhién Ia file matlab.mat, save fname X Chi uu bién X, save fhame XY Z_ chi lu cdc bién X, Y, Z. (c6 thé sir dung ky tu dai dign *). save fhame X Y Z -ASCII luu cdc bién ASCII 8 bit nhi phan, save fname X Y Z -ASCII -DOUBLE hu dang ASCII 16 bit nhi phan. save fname X Y Z -APPEND bé sung cac bién vio tp MAT-file da cé. Ham — save('frame’,'varl','var2') khi 'fname’,'varl','var2" 1a xdu ky tu, 5. load tai gid tri cdc bién duge hu 6 Files trén dia vao workspace. Cée cit php: load FRAME, tai cac bién tir MAT-file 'fname.mat' 4 6. Néu khéng 6 fname thi mac nhién 1a file matlab.mat. load FNAME X Y Z... chi tai cdc bién da chi ra (c6 thé sir dung ky tu dai dign *'), load FNAME.EXT 1ai file ASCH, trong file c6 thé e6 chit thich (bat dau bai %). Két qua gan cho bién cé ttn FNAME (khéng cé phn mo réng) load FNAME -ASCII hodc load FNAME -MAT. Ham load(‘fna 6. pwd hign thj the muc hign hanh ne’) sit dung khi fhame duge gan dang xau ky tu. 7. quit hodc exit thost khoi MATLAB 1.14 Cie phim thao tac trén cira sb dong I¢nh Home dua con tro vé dau dong End dua con tré vé cudi dong 1 hién thi lai cac lénh da xoa trade d6 + hién thi lai cdc lénh da nhap trude 46. ©, di chuyén con tr Ctrl+k x04 tir vj tri con tr dén cudi dong 1.2 Dir ligu, ham va cdu trie Ignh trong MATLAB 1.2.1 Khai nigm dit tigu va bién Trong Matlab c6 cdc kiéu dit ligu: (kiéu sé, kiéu xdu, kiéu cdu tric va kiéu files) 6: a+ jb) Y Dit ligu kiéu sé: duéi dang mang hode vecta cdc sé phitc (dang dai Y Dir ligu kiéu xdu: dui dang eae xdu (char) va mang cée xdu ky Y Dit ligu kiéu adi tugng: dang d6i trong hinh anh, dd hoa, ... ¥ Dit ligu kiéu cau tric: dang cac thanh phan (bin ghi va mang cau tric) Y Dit ligu kiéu tép (files): 14 ede tp hu thong tin trén dia ‘Voi méi kigu dit ligu, cdn chi ¥ khi Lim vige: Y Khai nigm kigu dit Higa ¥ Lam vige tre tiép voi dit Higu '* Cac phép todn Ki lam vige (dai s , quan hg, logic) © Cic him, Iénh e6 sin trong thy vign © Chuyén déi kigu dit ligu © Vao, ra véi dit tiga Tén (bién, hing, ham, ...) ni chung theo quy uéc ging ngdn ngit C++ Cy thé: w= Bao gdm; © Cie chit cdi hoa ‘A’ ‘B’ ars chit cai thug ‘a’ “b’ ... “2° © Cie chit sé ‘0° © Dau gach dudi** wm Ky ty dau ctia tén phai bing chit cai 2% Cé sw phan bigt chit edi thug vi chit i HOA > BO dai t6i da cia ten 31 ky nr (19 ky tr déi vei ver. 5.3) Tén céc ham (ké cd m-files) da duge dit cing c6 thé duge sit dung lim tén cia bis |, nhu vay ham nay sé khéng duge str dung trong qua trinh tén tai cia bién, cho dén khi ¢6 lénh xod ede bién dé trong bé nhé: Iénh clear hode clear . % Cac ham, Iénh trong Matlab sir dung chit cai thuang. 1.2.2 Ce ky higu va cée toan tir 1.2.2.1 Cae ky higu » phan cach gitta cdc tham s6 ciia ham, ct cha ma tran hoac ngin cach cac chi sd hang, c6t khi tray cap phan tir cia ma tran 3 dat sau cau Iénh khéng cho hién thi két qua cita Iénh 1én s6 hay khai bao thém 1 hang méi cia ma tran 1] Dimg dé tao véc to, ma trin hoac khai bao tham sé ra ctia ham. jee] Cai php: Tén ma trdn = [ans aiz...din} aa Aza... aaa 5 Trong dé: 115 A124 wey Ay oe HB c gid trj tai hang 1 cOt 1 dén cdc gia trj tai hing 1 cOt n, cé m-1 du chdm phay *;* sé cé m hang. Vi du: Tao ma tran gém 3 hang va 3 cOt véi gid tri 1a 10203 4 5 6 7 8 9 va=[1 23:45 6:78 9] () khai bao tham sé vao ctia him hode tray cép phan tir ma tran, Vi du: A(L,2) truy cap phan tit ay) Tao vector don gdm cé n phan tir. ii phap 1: Ténvector = [ptl pt2 pt3 ... ptn) ‘Ténvector = [pt pt2, pt3, ..., ptn] Trong dé: ptl pt2 ...ptn: la cde phan tr cita véc to. Vidu: Tgo vector a gdm e6 4 phan tir, voi ede gid tri I, 2,3, 4 va=[1234] Cai phap 2: Ténvector = gtdau:gia:gtcudi Trong dé: gtdau: 1a gia tri dau cia vector. gia: sé gia (cé thé am néu gtdau > gtcudi). gtcudi: gid tri cudi. Vi du: Tao vector a cé gid tri dau 0.5, gid tri cudi 1.5, sé gia 0.2 va = 0.5:0.2:1.5 0.50000.70000.90001..10001.30001.5000 ww» ding dé tigp tuc déng lénh dai khi xuéng hang. Vi du: »set(h, facecolor’ [0 1), . “EdgeColor’,’k’,Linewidth’,2, + Tao vector hoe ma trim phu va lip di lip lai céc gi tri Trong dé: Cong dung Tao ra chudij, j+1, 7% klk Tao ra chudij, ji, j*2i,....Jk-i, k Chi c6t thir j cfia ma tran A Chi hang thit i cia ma tran AG) Chi toin b§ ma tin A ATH Chi phan tir AQ), AG+1)... ACB) (aru tign theo et) AG.i.k) | Chi ede phan tr AG, j), AG IFD...AG, K) AQ) Chi tat cd cdc thanh phan cia ma tran A % dimg tude cdc loi chi giai trong cdc cau Iénh. * dt sau trén bién ma tran dé chuyén vi phite ma tran. »? dat sau trén bién ma tran dé chuyén vj_ma tran, ‘Vi du: néu A= [4.0000 + 2.00001 3.0000. 5.0000 - 7.00001 3.0000 + 4.00 4,0000 - 2.00001 5.0000 + 7.0000i 3.0000 3.0000 - 4.00001 va AJ= 4.0000 + 2.00001 5.0000 - 7.0000 3.0000 3.0000 + 4.0000i ** mé dau va két thie cho cdc xu van ban (string) {} duge ding trong cdc cu Ignh gan phan tir mang, mang edu tric. 1.2.2.2 Cac phép toan dai sé + cng 2 ma trin/vecto hode 2 s6 v6 huéng voi nhau ~ triy2 ma trin/vecto hode 2 s6 v6 hudng véi nhau \_ toan tir chia trai ma tran/véc to, Vi du: A\B tuong duong A™*B J ton tit chia phai ma tran/véc to, Vi du: A/B tuong duong A*B™ ./ boac.\ chia phai hay chia trai timg phan tir cia ma tran * nhdn hai ma tran véi hau <* nhan cae phan tir tuong img. Vi du: C=A.*B tite 1a cy =aj*by * lu¥ thita ma tran hay s6 v6 huéng. Vi dy: a*2 .* lug thita timg phan tir cia ma tran tite 1a a? Vi du: ‘au tién, sit dung lénh: format rat Phép toan véi vée to, ma tran Phép toan véi cdc phan tir 1 4 x 2 y 5 3 6 x 123 y 456 5 3 x+y 7 x-y 3 9 3 3 “1 x42 4 x-2 0 5 1 4 xty khong thy hign duge xty 10 18 xy 32 x Fy Khong thye hign duge 456 xty’ 8 10 12 x.* y’ khOng thye hign duge 12 15 18 2 2 x*2 4 x2 4 6 6 4.0000 x\y 2.2857 xy 2.5000 2.0000 0.5000 2.0000 2\x 1.0000 2x 1,0000 1.5000 0.6667 10 0 0 0.1667 0.2500 xly 0 0 0.3333 xly 0.4000 0 0 0.5000 0.5000 0.5000 | 0.5000 x/2 1.0000 xJ2 1.0000 1.5000 1.5000 1 xy khdng thy hign duge xy 32 729 1 x42 khong thye hign duge xA2 4 9 2 24x khdng thye hign durge 2x 4 8 1.2.2.3 Cae phép ton quan hé va logic © Cic phép ton quan hé: = So sanh bing <5>5>=5 <= ede todn tit so sinh ~= so sinh khong bing Trong dé: Céc todn tit quan hé thute hign so sinh timg thanh phn cia 2 ma tran. Ching tao ra mét ma tran cé cing kich thuée véi 2 ma tran, so sanh v6i cdc phan tir 1a | néu phép so sdnh 1a diing va 18 0 néu phép so sdnh 1A sai. Phép quan hé wu tién thap hon phép toan dai sd, cao hon phép toan logic. Vi du: thyc hign phép so sinh sau: yx=6 x= 6 yx>=[1 2 3:45 6:7 8 9) ans = ul 0 0 0 Dx=6 xe 6 »Ax[1 2 3:4 56:78 9] A= 1203 45 6 789 ans = 1. tid 00 0 ax=A 123 45 6 789 ans = 1. 11d rid axed, x= ans = 0 0 0 »x2 & 3+4 thi may tinh sé thu hign 3+4 duge 7, sau d6 toi 1>2 duge 0 ri thuc hign 0 & 7 va cudi cing ta duge két qua 1a 0. (thay 1<2 & 3-4 két qua vin 1a 0) 1.2.2.4 Céc ham logic (Logical funetion) 1, Hamall —_ Kiém tra vector/c6t ma tran 6 gid tri nao biing 0 hay khong. Ca phap: y=all(x) y=all(x,DIM) Trong dé: y bién chita két qua y= 1 khi tit ca cde phan tir khac 0 y= 0 khi cé | phan tir bing 0 x tén vector hay ma train DIM huéng kiém tra ma trén, DIM = 1 (me nhién) kiém tra theo e6t, DIM = 2 kiém tra theo hing, 13 DIM = 3 kiém tra timg phan tir Vidu: »a=[1 23] » yrall(a) y= 0 »a[1 23:45 6:7 -8 9] 1203 45 6 0 89 » yrall(a) y= ot »a=[1 23:4 50:7 09] 123 45 0 70 9 » yall(a) 10 0 2. Hamany — Kiém tra vector/edt ma trdn c6 gid tri ndo khde 0 hay khong. Ci phap: 14 y= any(x) y = any(x,DIM) Trong 6: y bién chita két qua. y= 1 khi cé 1 phan tir khde 0. y= 0 khi tit cac phan tir bing 0. x tén vector, hay ma tran. DIM huéng kiém tra ma tran, Vi du »ya=[1 23]; » yrany(a) y= 1 » b=[1 03 0]; » y-any(b) y= 1 » e=[1 204,02 04;123 4:3 45 6] co 1204 0678 1230 5078 » yrany(c) yo Pra. » d=[000.0:0 13 0] d= 0000 0130 » yrany(d) y= 15 3. Hamexist Kiém tra bién hay file c6 tn tai hay khong. CU phip: © = exist(*name” Trong a6: name: la ten file hay ten bi e: bién chita gid tri ra ve, e 'Y nghia 0 [name khéng tn tai trong ving lam vige 1 | name 1a bign dang tOn tai trong ving lim vige 2. | name dang ton tai trén dia (m-file hode file khong xde dinh kiéu) name 1a MEX-file name [a file dich tir phan mém Simulink (mdl) name [a ham cia Matlab name Id p-file name 1a thr myc Vi du: ve = exist(‘dir’) c= 3 4. Ham find — Tim phan ti trong vector/edt ma triin theo yéu edu, Cai phap: i= find(x) [ij] = find(x) [iV] = find(x) Trong dé: i: chi vi tri cata phan tir cdn tim trong vector. i,j: chi s6 hang va sé c6t trong tmg cita phan ti cin tim. V: chita gid tri cia phan tir cdn tim. x: tén vector, ma trin hay yu cau dé ra, Néu khéng néu ra yéu cau thi mac nhién 1a tim cée phan tir khde 0. 16 Yéu cau thing cé mat cdc phép todn so sinh va logic. Vi du: » x=[1 8023 0] » k=find(x) 1245 »a=[5 00:8 03] 50 0 8 03 » [id.k]=find(a) 5 8 3 12.2.5 Che gid trj de bigt MATLAB ty djnh nghia: pi :hingséx i,j ky higu don vi do. Néu bidn dt tring tén i hoe j thi né dé lén ky higu i, j (sau d6 khéng sit dung duge) inf: dai dign cho gid tri v6 ewe « (infinite) NaN: gid tri v dinh 0 chia 0 (Not a Number) 17 eps : d6 chinh cac twong ddi (Khi sir dung dinh dang format long, eps = 2.2204460492503 13e-016) 1.2.3 Cae Ignh twong tic vao/ra (Interactive Input/Output) = lénh gan (tong ty Iénh gan trong cae ngén ngit khic) input —_nhdp dé ligu tir ban phi ii phip: C6 2 dang: R= input(‘How many apples:’) R= input(‘What is your name:'s’) % nhip dit ligu vio dang string R__ gid tr nhdp tir bin phim fprintf cho phép in thong sé ra theo dinh dang, i pha fprintf(dinh dang, tham sé can in) Giai thich: (xem thém Igch sprintf) Dinh dang bao gém ca text va cdc ky tur dinh dang dic bit (%e, %f, %g, \n, ...c4e sé va du chim) duge ghi trong ddu nhay don dé didu khién in cdc gid tri %e ; in ra dudi dang sé phay dng %f : in ra duéi dang s6 phay tinh %g : in ra dudi dang sé phay tinh/d6ng tuy thude ban than gid tr %s : in ra dang xau ky te éng dong va li dong) \n, Wr: xudng dong (x1 \t_ : thém khoding tab trong, dua ra\ %% dura ra % %o, %x, Yu in ra dang co s6 8 (0), 16 (x), 10 khong ‘Vi du: fprintf(‘ket qua la: %d.1fradian\n’, a); %Két qua trén man hinh (vdi a=35) ket qua la: 35.0 radian format diéu khién dinh dang dau ra Cée dinh dang kidu hién thj nhw sau: (mic nhién MATLAB hién thi format short) | Cai phap Giai thich Vi du | format short | Hién thi 4 so sau dau cham’ 3.1416 18 Tormat long Thigh thy 15 sO sau dau cham 3.141592653589792 format rat format + format short © High thj dang phan sO 101 gin | Tlign thi sé duong hay am Hien thj 4 s6 sau dau cham, ky phap ky thuat 355/133, 4 0.3142e+01 format long Hign thi 15 s6 sau dau cham voi ky phap ky thuat | 0314159265358979e01 format short g Hign thj 4 sO sau dau chdm chinh xdc hon short va short e 3.1416 format long g Hign thj 15 so sau dau cham chinh xéc hon long 3.141592653589792 va long formathex | Hign thj eo 86 16 format bank | Hin thi 2 s6 sau déu chim 4a02dbe 3.14 1.2.4 Cae Ignh, cdu trac diéu khién chwong trinh (Control Flow) Céu tric if, else, elseif: Lénh diéu kign. Cho phép if ling nhau Ca phap: Vi du: if Iénh; Iénh; Ignh; Ignh; elsei else Ignh; 1gnh; end; iff AGLI) =2; elseif abs(I-B) = = 1 AGS) else A(LD) = 0; end; Lénh end két thiic cau Ignh for, while, switch, try, va if 19 C4u trac switch Dung trong cau Ignh Iya chon nhiéu trréng hop. Gidéng nhu cau Ignh CASE.. OF trong Pascal Ci phip: switch case , enh; ..., len; case Tgnh; ..., Iénh; otherwise, 1enh; ..., Inh; end; CAu tric for vong lip xac dinh. Cho phép nhiéu vong for léng nhau Cai phap: for , Ignh; .., enh; end; ‘Vi du: for i= I:n, for j= I:n, ati) = VG+i-D; end end for s= 1.0: -0.1: 0.0; end % steps s with increments of -0.1 CAu tric while vong lip khong xac dinh. Cho phép léng nhau. Cai phip: while , enh; ..., Iénh; end Lénh continue quay lai diu ving lip WHILE hojc FOR Léah break nhiy v6 diéu kign ra khdi lip WHILE hodc FOR Vi du: while 1, 20 input(‘nhap so duong, thoat khi n<0:"); ifn<=0, break; end; end; Lénh global —_khai bdo cac bién toan cue trong chong trinh va ham (dang .m files) Lénh local —_khai bao cdc bién cuc bé trong chong trinh va ham (dang .m files) Lénh echo on/off cé/khéng hign thi cdc Iénh M-files trong khi thi hanh Iénh. Lénh try ding dé bay 131. Néu xay ra 18i khi the hién cac Iénh trong TRY thi chuong trinh nhay sang thye hign cdc Iénh sau CATCH Ca phap: try statement; .. statement; eateh statement; ..; statement; end. 1.3 CAch viét chong trinh va ham dang m-files trong MATLAB Files chita ma chuong trinhk MATLAB goi 1a m-files. M-files o6 thé 14 functions (ham) yéu cdu phai tra cdc tham s6 dau ra, hodc dang scripts (churong trinh) thi hanh chudi cac Ignh cia MATLAB. MATLAB nhan biét file 1a M-file qua tn tap tin mé réng *.m > Céch tao function M-files Dinh nghia ham: —_ function y= average(x) | tham sé ham (arguments) tén ham (function name) du ra (output argument) tir khod (keyword) > Céu mic him m-file Function definition Tne dong agit hare) | ~~ funetion f= fact(n) [HT (help 1) line] —_% FACT Factorial, (ing cho tim kiém)] __% EACT(N) returns the factorial of N, usually denoted by N! Help text (dling cho] —_»% Put simply, FACT(N) is PROD(1:N). Ii gidi thich str i f= prod(I:n); Function body | — 21 Chai ¥: - Néu cé nhiéu tham sé dau ra thi viét dudi dang: [thamso1, thamso2,...]=(arg] ,arg2,...) - Trong than ham cé Iénh gan tham sé dau ra boi m6t gid tri. > Goi ham thy hign tir churong trinh theo eti phip: ténham(arg] arg2....); Vi du: Tao ham m-file trong cia s6 soan thao c6 tén myfile va goi hm thire hign. - Lau him m-files véi tén myfile.m (1én tp tin bait bude tring véi tén ham) vo mét duéng din thugc cdc duéng din tim kiém cia MATLAB - Goi ham vita tao dé chay dudi cita so MATLAB nhur sau: myfile.m wa = 7.Sib = 3.342; function ¢ = myfile(a,b) sqrt((a.°2)+(b.42)); »e = myfile(a,b) % goi ham, truyen tham so © > So sanh chwong trinh viét bing script M- script M-Files function M-Files + Khong c6 tham sb diu vao va dau ra + Lam vige véi dit ligu trong workspace + Cé thé c6 tham s6 dau vao va diu ra Lam vige voi dit ligu, cée bién (local/global) bén trong function va ede tham s6 vio, ra + Thun Igi cho vige thyte hign trinh ty + Thuan Igi cho viée mé rong ngén ngit cde day lénh can thiét mt céch ty dong. MATLAB cho ting dung cia ban tai nhigu théi diém khde nhau ‘Vi du: tinh trung binh function y = average(x) % AVERAGE Mean of vector elements (tinh gia tri trung binh cua cac phan tu) % AVERAGE(X), where X is a vector, is the mean of vector elements. % Non-vector input results in an error. [m,n] = size(x); if(~((m == 1) | (n= 1) | (m= 1 &n== 1) error("Input must be a vector’) end y = sum(x)/length(x); % Actual computation - Cach lam vige khi goi m-files trong MATLAB theo trinh ty sau: + Tim xem d6 cé phai 1a bién khong + Kidm tra c6 phai 18 dang churong trinh da bién dich sin hay khéng (*.mex file) + Tim trong thu myc hign hanh. + Tim trong cae thu myc trong search path Cha ¥: cé thé chuyén script file sang function file bing cach thém vao: function ma khéng cin cé tham s6 dau vio va tham s6 du ra 1.4 Céc bai tip ting dung ** 23 CHUONG 2. CAC HAM TOAN HQC THONG DUNG 2.1 Cée ham ton hge eo ban 24d Cac ham xir ly sé phic: Cho sé phitc dang dai sé: Z = a + jb (dang sé mi C.e!™) 1. abs(Z) cho gia trj tuyét doi cia so/bién d6 C ctia 86 phite 2. angle(Z) cho géc pha phi cia mét sé phite 3. complex(a,b) tao sé phite Z tir cae sé thu a, b. Vidu: —complex(3,4) cho két qua la s6 phite 3+4i 4. conj(Z) cho s6 phite lién hgp Z* =a - jb 5. imag(Z) lay phan do cita s6 phite 6. real(Z) lay phan thye cita s6 phire 2.1.2 Cac ham lwong giée vA hiru ty (thye hign tieng phiin ti) 7. acos,acosh cho arceos va arccos hyperbolic 8. acot, acoth cho arceotang va arccotang hyperbolic 9. asin, asinh cho aresin va aresin hyperbolic 10.atan, atanh cho arctang va arctang hyperbolic 11.atan2(xy) cho arctang cia y/x trong khoang -1 -> +n 12.€08, cosh cho cosin va cosin hyperbolic 13.cot, coth cho Cotang va cotang hyperbolic 14.sin, sinh cho sin va sin hyperbolic 15.tan,tanh tang va tang hyperbolic 16.exp cho e* vai x 1a mbt s6 17.log logarithm ty nhién In(x) véi x 1 mot s6 18. log2 logarithm co sé 2 log2(x) voi x 1a mat sé, 19.logio logarithm co sé 10 20. sqrt can bie hai 2.1.3 Cac ham lam tron sé, ... 21.round lam tron véi sé nguyén gin nhat 22. fix lam tron bing cach cit bo phan thap phan 23.ceil lam tron sO vé phia s6 nguyén Ién hon, Cai phap: y= ceil) 24 ‘Vi du: »x = [-1.9000 -0.2000 3.4000 5.6000 7.0000); »y = ceil(x) 10 4 6 7 lim tron s6 vé phia s6 nguyén nho hon. .9000 -0.2000 3.4000 5.6000 7.0000); 2 +1 3 5 7 25. mod mod(x,y): phan du phép chia x/y 6 dau tring dau cia y 26.rem. rem(x,y): phan du phép chia x/y e6 dau tring dau cla x 27.sign xe dinh déu cha m@t bién hoge phan tir cla vée to/ma trdn. sign(x) 6 két qua bing 1 néu x>0, bing 0 néu_x=0 va bing -1 néu x<0 28. ged uée so chung lén nat cla cde phan tir (Greatest common divisor). 29.1em_ ‘b6i sO chung nhé nhat (Least common multiple). Vi du: lem(A,B) cho bi sé chung nho nhit cia timg phan tir tuong img hai ma tran A, B. 2.2 Ce ham xir ly ma tr§n va vector Ky higu A li ma trin, X 1a vecto, MATLAB cung cp céc him sau 1. length(X) cho ta kich thude vectoX 2. linspace tao vector tuyén tinh giéi han trong mét Khong Cai phap: y= linspace(x, x2) y= linspace(x1, x2, n) Trong dé: y: tén cia veetor. xi, x2: gid tri Ién nhdt va nhé nhit ciia vector y. n: sd phan tir cla vector y, néu khéng 6 thi mac dinh n= 100. Vi du: »y = linspace(1, 10, 7) 1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000 3. logspace tao vector c¢ gid tri ty If logarithm trong mt khong, Cai php: 25 y= logspace(xl,, x2) y= logspace(xt,, x2, n) Trong 6: y: tén clia vector. x1, x2: gidi han gid tri lén nhit 10%x2 va nho nhat 10*x1 cita vector y. n: sé phan tir ciia vector y. Néu khéng cé n thi mac dinh n= 50. Vi du: »y = logspace(1, 2, 7) y= 10.0000 14.6780 21.5443 31.6228 46.4159 68.1292 100.0000 4. Amdiag(X) néu X a vecto thi A 18 ma trin vudng véi dung chéo chinh Li X 5. X=diag(A,k) ldy cdc phan tir trén dung chéo (chinh khi k-0) hu vao vec to edt 6. det(A) tinh dinh thite ma tran vuéng 7. inv(A) tim ma tran nghich dio 8. [m,n] = size(A) : cho kich thude mxn cla ma tran A 9. rank(A) hang ma tran 10. expm(A) ham e* voi A La ma tran Vidu: »kq = expm(3) kq= 20.0855 11. logm(A) In(A) voi A la ma tran 12. sqrtm(A) VA voi A la ma tran 13, eye(m,n) tao ma tran don vi mé rdng mxn, eye(n) tao ra ma tran vudng nxn 14. zeros(m,n) tao ma tran mxn c6 cdc phan tir bang 0 15. ones((m,n) tao ma tran mxn c6 cdc phan tir bang | 16. rand tao ma tran cac phan tir ngdu nhién chuan ({0 1)). ai phip: y=rand(n) = rand(m,n) Trong a6: y: tén ma tran, ni: ma tran 6 n hang, n cot. m,n: ma tran cé m hang, n cét. Vi du: »y = rand(3) 26 0.9340 0.0920 0.7012 0.8462 0.6539 0.7622 0.5269 0.4160 0.7622 »y=rand(3,5) y= 0.2625 0.3282 0.9910 0.9826 0.6515 0.0475 0.6326 0.3653 0.7227 0.0727 0.7361 0.7564 0.2470 0.7534 0.6316 17. Xem thém im randn, sprand, sprandn, ... 18, magic tao ma trin vudng 6 ting cia cée phin tir trén hang, Ot, duémg chéo bing nhau (ma phuong). Gia tri cia mdi phan tir 1a day sé nguyén tir 1 dén n’, Cai phap: A= magic(n) Trong dé: n: kich thuée ma tran, Vi du: »A = magie(3) A= 8 I 6 305 7 4 9 2 30. max cho gid tri lon nhat cia vée to/ma tran. Ca phap: m= max(x) [m,i] = max(x) v=max(x,y) y= max(x,[],DIM) Trong dé: x.y: tén vector/ma tran. v:tén vée to. m: gid tri lon nhdt. i: vj tri ea m, DIM: huéng thye hign phép toan 27 Vidux=[3 5 2 1 4) »m= max(x) m= 5 »{m,i] = maxtx) m= 5 i- 2 Choy=[1 6 8 5 3) vy =max(x,y) v= 3 68 1 4 Chob=[3 6 = 2 17 9 2 8 4 »m = max(b) m= 30 8 9 [mi] = max(b) 30 8 9 i= 1 302 0 3 6 7 11 4 6 8 ny = max(a,b) ye 28 3.6 6 7 7 9 4.8 8 31.min cho gid tri nhé nit ciia véc to/ma tran. Ca phip: m= min(x) [m,i] = min(x) v=min(xy) Trong dé: xy: Tén ma trin/vée to. v: tén vector, m: 1a gid tri nhé nhat. i: 1a vi tri eoam. DIM: huéng thu hign phép toan (x 18 ma trfn) DIM=I (mie nhién) theo edt, 2: hing Viduix=[3 5 2 1 4) »m = min(x) m= 1 Choy=[1 6 8 -5 3] nv = min(y) ve 1 5 2 5 3 [3 6 2 179 2 8 [m, i] = min(b) 1 6 1 i= 2 13 [0 3 6 29 7101 4.6 8] »y = min(a,b) v= 0 3 2 tort 2 6 1 32. minmax cho gid tri nhé nhat va lén nhdt cia véc to/hang ma tran. Cai phap: V = minmax(A) Trong dé: A: vée to/ma tran cin tim gia tri nh nhat va lon nhat. V: vée to/ma tran cé hai edt chira gid tri nhé nhat va lén nhdt cia cdc hang. 33.fmin_ tim diém cé gia tri nhé nht ciia ham sé. Ci phap: x= fimin(“function’,x1,x2) Trong dé: x: bién chita két qua. function: tén ham s6, x1, x2: khodng khio sit Vi du: Tim gia tri nho nhat cua ham sé: x°-2x-5 trong khoang [0 2] wx =fimiin(*x.93-24x-5°,0,2); 0.8165 ny XAB24xS ye ~6.0887 34.fzero tim diém 0 cia him s6. Ca phap: fzero( fun’ x0) Trong dé: 30 Diém 0 ciia him s6 1a diém (0,x), day cing chinh la nghigm cita ham so, Néu ham co nhiéu nghiém thi sé tim nghigm gan gia tri x0. fun: tén ham sé dang .m file. Néu ham toan hge thi thém @ true tén ham, Vi du: Tim gid tr 0 ciia him s6: x2-5x+3. ‘Trude tién ta khai bao ham sé f trong tap tin £m function y= fx); A2-54K13; Sau d6, tgo tip tin gt0.m: x= 0:10; % Gia tri x0= 0 2= feero(‘F,0); sprinft'z = %3P,2) %z = 0.382 % Gia tri x0=2 z= frero(‘f,2); sprintf(‘z = %.3f",2) a= 2.618 z= fzero(‘f,0); % Vé dé thi ham sé minh hga: splot(‘f (0, tid; hold on; plot(z,0,‘0"); hold off 2.3 Cae thao tae trén dir ligu chudi (STRING) 23.1 Khai nigm Bién chita dit ligu string trong MATLAB gidng nhu cdc bién sé thong thuong, tite 13 bién duge nh§p, thao tic va hu trong cac vecto voi mai phan tir ctia vecto 14 mot ky ty. Vige xac dinh vi tri cia méi phan tir bién string théng qua chi sé cia né. Ma tran string cling duge sit dung nhung ede string phai e6 kich thuréc bing nhau. Vi du: néu a="toi’ thi a(1)=t va a(1:3)=toi »b=[‘toi’ ; ‘ten’] thi b(1,1)}=t :b(2,2)=e ; b(1,:)=toi Két hgp cae chudi tao ra string méi bang cach: newst ~[strl str2,st13] 31 23.2 Cac ham xir ly chudi 1. isstr/ischar kiém tra ndi dung bién 14 chudi ky ty khong. a phap: kq = ischar(n) kq = isstr(n) % chi cé dén phién ban MATLAB 5.3 chita két qua. n: tén bin can kiém tra, kq = I néu n 1a chudi ky ty, 0 néu n khéng 1a chudi ky ty. Vi du: »>n=MATLAI » kq=isstr(n) kq= 1 »m=[1 234]; » kq=isste(m) kq= 0 2. isspace(st) 1rd lai vée to gid tr] 0 tai cde ky ty tréng (1 tai ky tyr khéc) 3. streat(stl,st2,...) noi cdc xau stl st2 ... thanh dong 4. strvcat(stl,st2,...) mdi cac xdu stl st2 ... thanh cdt 5. strrep(stl,st2,st3) thay thé xau st2 trong stl thanh st3, 6. findstr(stl,st2) tra vé véc to vj tri bit dau ctia xdu st2 trong stl 7. stremp so sanh 2 chudi ky ty. Cai phap: I= stremp(s1, s2) Trong dé: 1: bién chita két qua. sl, s2: chudi can so sanh Vi du: »a = ‘MatLab WoRkS’ »b = ‘MatLab WoRkS” vstremp(a,b) ans = I 8. upper cho ra chudi ky tu viét hoa. Ca phap: ‘b= upper(s) Trong 6: b: bign chita két qui. s: tén bién chita chudi ky tu. Vi du: »a = “MaTlab WORks” »b = upper(a) b= MATLAB WORKS »b = upper(‘MaTlab WORks’) b= MATLAB WORKS 9. lower cho ra chudi ky ty viét throng, Cai phap: b=lower(s) Trong dé: b: bién chita két qua. s: tén bién chita chudi ky ty hay chudi ky ty. 10.str2mat tao ma tran cé cdc phan tir dang chudi, ai pha 2mat(‘sl’, “82°, ...) Trong dé: s: én ma tran két qua. sl, s2: chudi ky ty. Vi dy: »s = str2mat(‘mat’, ‘lab’) s= mat lab I1.blanks tao khong \g gitta hai hay nhiéu chudi ky tr theo mong muén. Cat phap: [SI blanks(b1) $2 blanks(b2) ...blanks(bn) Sn] Trong dé: 33 $1, $2, ..., Sn: cde chudi ky tr. bl, b2: sé khodng tring. 24 Cae ham chuyén adi dir ligu 1, abs(str) tr lai gid tri 1d vecto véi cde phin tir 1d ma ASCII cita cic ky tu. Vi du: a~"abe' thi X=abs(a)= [97 98 99] 2. double(str) chuyén str sang dang s ( ASCII t.tyr him abs) 3. char(x) —_chuyén vée toede ding ma trin x dang m ASCII thanh xu 4, eval chuyén di chudi ky tu thanh bidu thite. phap: kq = eval(‘string’) Trong dé: kq: bién chira két qua. ‘string’ a cdc ky sé: chuyén thanh nhimg con sé, 1a cau Ignh thi hanh duge. Vi du: » a="199999999"; » eval(a)+1 ans = 200000000 5. setstr(X) — chuyén vecto X voi cdc phan tir la cdc sé nguyén trong khoang 0 dén. 255 thanh chi string tong img. Vi du: véi X= [97 98 99] thi setstr(X)="abe" 6. num2str(f) chuyén déi dai hrgng vo huéng f thanh chudi string (ding hién thi ra man hinh cée dit shu Iénh disp) 7. num2str(f,k) chuyén ddi dai long vo hudng f thanh chudi string vdi k chit sé 8. str2num —_chuyén chudi (dang sd) sang sé thye. Cai phap: n=str2num() Trong a6: s: chudi dang s6. n: s6 thu. ‘Vi du: on = str2num(‘456456") n= 456456 9. int2str(n) —_chuyén ddi sé nguyén n thanh chudi string 34 10. rats(x,strlen) chuyén so thyc thanh chudi string vai strlen chiéu dai cia chudi 11.hex2num(hstr) chuyén ddi s6 theo hé hexa thanh chudi string 12.hex2dee(str) chuyén di h¢ hexa dui dang string str thinh s6 nguyén, Vi du: hex2dee(‘0f)=15 13. dee2hex(num) chuyén ddi sé nguyén sang hexa. Vi du; dec2hex(2748) = 'ABC’ 14.dec2bin(num) chuyén sé thap phan num thanh sé nhj phan, Vi du; dec2bin(23) = "10111" 15.bin2dec(num) chuyén sé nhj phan num thanh sé nguyén. Vi du: bin2deo('0101 11) retums 23 25 Caéc thao tac trén dit ligu cu tric 2.5.1 Dir ligu kiéu cdu tric (Struct) M&i dit ligu cdu tric (ban ghi: record) bao gém nhiéu thanh phdn dit ligu (cdc trudng: ficlds) cé kiéu khac nhau, vi du thong tin vé quan ly con ngwéi: tudi gidi tinh Ho tén bac long | sdcon | bang chim cong sé nguyen | logic 56 thee nguyén mang so 2.5.1.1 Tao cdu tric (Cé 2 cach): xdu © Sir dung Ignh STRUCT dé tgo cu tric. Ci phap: S = struct( ‘field’, VALUESI. 'field2', VALUES2....) S = struct(OBD) chuyén dit ligu déi twgng OBY thanh cdu tric trong dirong. Trong dé: S: bién chira dit ligu céu tric, field1, field2,...: cdc bién trrdng ciia cdu tric. VALUESI, VALUES2....: cdc gia tri cia céc bién tring. OBJ: déi tugng can chuyén d6i kigu. Vi dul: »s = struct('strings', { {‘hello’,'yes'}},"lengths',[5 3]) strings: (‘hello' 'yes'} lengths: [5 3] Vidu2 ns = struct(‘type’,{‘big' little} 'color’red’x’, 3 4}) 35 1x2 struct array with fields: type color x © Tao cau tric tryc tid cham °.’ truy cap cac traéng cia cdu trac Ca phap: recname.fielname = value Trong dé: recname: tén bién cu tric. fielname: tén bién trudng can tao. value: gid trj eiia fielname, Vi du: »nguoi.hoten = Nguyen Van A’; »nguoi.tuoi = 20; onguoi.gtinh = 0; »nguoi.bluong = 1.52; »nguoi.ngaycong = [11 10100:1010100;10011000111000; » nguoi nguoi = hoten: ‘Nguyen Van A’ tuoi: 20 tinh: 0 bluong: 1.5200 ngaycong: [4x7 double] 2.5.1.2 Cac him lam vige véi cdu trae 1, fieldnames tri vé bién mang edu tric chita tén cdc trong. Ci phip: NAMES = fieldnames(S) Trong dé: S: bién céu tric da tao. NAMES: bién mang cdu tric chita tén cac truéng cia S. 2. rmfield Joai bo mét truémg ra khéi céu trie. 36 ii phap: S = 1mfield(S, field’) loai bé tradng field khoi cdu trie S S =1mficld(S,FIELDS) logi bo mét sé tring, véi FIELDS li mang 3. isfield kiém tra bién 1a mot trréng ci tric hay khong, ai phap: F =isfield(S,'field’) tra vé gid tri dig (1) néu ‘field’ 1a tén mGt trudng cia S. 4. getfield lay ndi dung mét truéng cia cdu tric. Cai phap: F = getficld(S,'ficld’) tra vé ndi dung eta field trong c4u tric S. tuong ty F-S.field. Vi du: F = getfield(S, {ij}, 'field’,(k}) _ %tuong ty voi lénh F = $(,). field). 5. setfield thiét lap ni dung cho cac trang. Cai php: S = setfield(S, field’, V) dat gid tri V cho truémg field cia S, tong tyr S.field=V. Vi du: S = setfield(S, fij), field’ {k},V)_ Yoruong tyr S(ij).field(k) = Vs 2.5.2. Dit ligu kiéu mang cdu tric (Cell Array) C6 thé t6 chite cdc cdu tric thinh mang véi mai cdu tric 1a mét phan tir mang 2.5.2.1 Tao mang edu tric (C6 2 céch): © Cach 1: Sir dung Iénh CELL dé tao mang cu trac. Cée et phip: cell(n) tao ming cau tric réng kich thude NxN. cell(M,N)/cell({M,N]) tao mang cdu tric réng kich thuéc MxN. cell(M,N,P....)/cell([M N P ...]) tao mang cau tric rong MxNxP. cell(SIZE(A)) tao mang cu tric ring kich thude gidng kich thude cia A. * Ciich 2: Tgo mang cu tric true tiép: Sir dung dau ngoac nhon {} va diu () 48 truy cap dén cae phan tir mang cdu tric. ii phap: 06 2 cdch tao va str dung khde nhau armname{i,j}=value armame(ij value} Trong 6: armame : tén bién ming edu tric, ij ‘hi sé cita phn tir mang cdu tric. value: gid tri cin gan cho phan tit mang thit i, j (fielname). 37 Vi dul: »lop{1,1}="00D"; lop {1,2}=55; nlop {1,3})[0 1 2:3 4 5]; Vi du2: velear lop {1,1} hoten="Nguyen Van A’; lop {1,1}.tu0i=20; vlop {1,2}-hoten="Tran B’; 2.5.2.2. Lam vige véi mang cdu tric 1. sit dung {} dé tray cp dén timg phan tir mang cdu tric (cdch 1) va ©) dé tray cap dén timg phan tit mang cfu trie (cdch 2) 2. celldisp —_hign thj ndi dung eta mang cdu trite. Cai phap: celldisp(C) _hién thi ni dung cita mang cau tric C celldisp(C, NAME) hién thi ndi dung cau tnic C va thay thé tén xiu NAME cho C Vi du: »eelldisp(lop) lop {1} =hoten: ‘Nguyen Van A’ tuoi: 20 lop {2} = hoten: Tran B! » celldisp(lop, ten’) ten{1} = hoten: ‘Nguyen Van A’ tuoi: 20 ten{2} = hoten: ‘Tran B! 3. cellplot(C) hign thi bing dé hoa cdu tric cia mang edu tric C 4, cellstr(S) chuyén xdu S sang dang mang cau tric 5. ehar(B) chuyén mang cdu tric B sang dang xu 2.6 Cac ham giao tiép véi tép dit ligu (FILES) Ngoai tép mat-file da biét, dé tuong thich véi ngén ngit C, MATLAB con dinh nghia hai loai tép dang vin ban (text) va nhj phan (ASCII) véi cée cdch Kim vige khéc nhau. 1. fopen mé file hoc tray xuit dit ligu cia file dang mé. 38 Ca phap: fid = fopen(‘fn’, ‘p’) Trong 6: fid: tén bién kiéu s6 nguyén (0, 1, 2, ...) tro dén file dang mo. fh: tén file (co thé dat duong din). ‘Tham sé p cé cdc dinh dang sau (mac nhién li dang nhi phan): “r’: chi doe. srt’: doe va ghi, xéa tat cd ndi dung cila file, tao file moi va mo dé ghi. xéa tat ca ndi dung cia file, tao file mdi dé ghi va dgc. mé file dé bé sung théng tin (Khdi tao néu file chwa c6) mé file dé doc va bé sung théng tin (tao néu chua c6) "W' sind file dé ghi ma khdng ty dng lim tuoi ‘A! :mé file dé b6 sung ma khong ty dng lam toi “sad file dang vin ban (text). Vidu: ‘rt’, wet", ... 2. fread doc dir ligu dang nhj phan tir file. Ci phap: [A, COUNT] = fread(FID) [A, COUNT) = fread(FID,SIZE,PRECISION) Trong d6: A: tén bién chita dit ligu duge doe va COUNT: sé phan tir durge doc vao. FID: tén bién tro dén file edn doc. SIZE: kich thuée dit ligu doc vao, dirge dinh dang bai n: chi dge n phan tir vao edt vector a. inf: doc dén hét file. [m,n]: chi doc vo m cét n hang, n cé thé bing inf con m thi khéng. PRECISION: 1 xu ky ty (thug it sir dung thong s6 nay). Vi dy I: fid = fopent(fread.m'/r'); F = fread(fid); s= setstr(F) Vi dy 2: file vd.txt 6 noi dung: 39 ABC 1 Vi du3) 23 fid = fopen(‘vdaxt’/r"); [a,c] = fread(fid); disp(a); disp(o); 65 32 66 32 67 13 10 49 32 50 32 SL 2 fid = fopen(‘vdL.txt’,’r?); [ac] = fread(fid, 4); di di 65 32 66 32 c= 4 isp(a); isp(c); Vi dud: file vd3.txt 06 ndi dung 40 ABCDE FGHI KLMNO fid = fopen(‘va3.txt’,""); [ac] = fread(fid, [7, inf); disp(a); disp(c); 65 66 67 68 69 1B 10 10 78 1 16 nn 1378 14°79 1313 10 10 66 1 16 67 68 691310 2 73 74 13 10 71 7% 79 13) 10 3. fwrite ghi doan dit ligu dang nhj phan thanh file. Ci phap: COUNT = FWRITE(FID,A,PRECISION) Trong dé: FID: tn bién tré dén file cn ghi. A: tén bién ma tran chita dit ligu can ghi, COUNT: nhan sé phan tir ghi duge. PRECISION: tuong ty Iénh FREAD. Vi du 1: fid = fopen('magicS.bin','wb') fwrite(fid magie(S),integer*4")%file nhj phan e 25 phan tir magic 5x5 s6 nguyén. Vi du 2: Ghi doan dit ligu cita bién a thanh file a.txt: a= [65 66 67] 4 fid = fopen(‘a.txt’, “w); fwrite(fid, °%"); fwite(fida); %Gan file a.txt vao bién b dé xem ndi dung fid = fopen(‘a.txt’); b= Bcanftfid, %"); disp(b); felose(fid);%Ké qua = ABC 4, fscanf doe dit ligu da dinh dang ti file, Cia phay [a,count] = fSeanf{fid, ‘format’, size) Trong dé: a: tén bién chita chudi ky tir sau khi duge dinh dang. count: dém sé phan tir duge doe vao. size: kich thude s® duge dge vio. format: phan dinh dang giéng nhu lénh sprintf. fid: bién dinh vi ten file tit inh FOPEN. Vi du: S = fscanf{fid,"%s') doc va tri vé xdu ky tu. A= fecanffid,%5d') doc 5 sé nguyén 5. fprintf —_ghi doan dit ligu thanh file. Ca phap: COUNT = fprintf(FID,FORMAT,A, Trong dé: COUNT : 86 cdc byte duge ghi FID : ten bién tré dén file cdn ghi FORMAT _ : phan dinh dang phan thye cita ma tran dit ligu A. Vi du 1: x= O:1:1s y= [x expo] fid = fopen(‘exp.txt,,w); fprintf{fid,%6.2f %12.8fny); felose(fid); % tao file text chira bang cée gia tri ham ma 0,00 1,00000000 0.10 1.10517092 1.00. 2.71828183 Vi du 2: Tao file exp.txt e6 ndi dung x= 0:2:10; y=[x, 0/2]; fid = fopen(‘exp.txt’, ‘w’); fprintf(fid, °%d’, 2, inf]); Gan file exp.txt va bién a dé xem n@i dung: fid = fopen(‘exp.txt’) a= fecanfi(fid, *%d", [2,inf)); disp(a); felose(fid); Két qua 0 2 4 6 8 10 o 1 2 3 4 5 6. sscanf doc chudi ky ty va dinh dang lai chudi ky ty do. Cai phap: [a,count] = sscanfs, ‘format’, size) Trong dé: a: tén bién chita chudi ky tu sau khi duge dinh dang. count: dém sé phan tir duge doc vao. size: kich thude sé duge dge vio, format: phan dinh dang giéng nhu lénh sprintf. Vidu:s= "3.12 1.2 0.23 2.56"; »[a, count] = sscanfis, “%f,3) = 3.1200 1.2000 0.2300 count= 3 7. sprintf hién thi thong tin lén man hinh, a phap: 43 s = sprintf(‘ts’,ds) Trong dé: s: bién chita chudi sé hién thi trén man hinh, s: cic tham s6 dinh dang. ds: danh sich cdc d6i s6. ‘Tham sé dinh dang thudc | trong 2 kiéu sau: (1) Chudi ky tu: chudi sé duge hién thi lén man hinh gidng nhu trong cau lénh. (2) Chudi cae tham sé dinh dang: chudi nay sé khong duge hién thi lén man hinh, ich hién thj cdc d6i s6 duoc dua nhung tie dung diéu khién vige chuyén déi va ra trong danh sach cde di s6, ‘Vi du cac tham sé dinh dang: 1) %d: déi sé 1a sé nguyén duge viet didi dang thap phan. s = sprintf(‘Day 1 s6: %d’,-24) s = Day la sé: -2 2) %u: déi sé 1a sé nguyén viét dui dang thap phan khong dau. s = sprintf( ‘Day la so: %u’,24) 6:24 s = Day la si 3) %o: déi s6 1a s6 nguyén viét duéi dang co sé 8 khong div. 8 = sprintf“‘Day 1a sé: %0°,9) sd: 11 s= Day 4) %x: ddi sé 1a sé nguyén duge viet didi dang co sé 16. s = sprintf(*Day la sé: %x’,255) s= Day la sé:ff 5) %f: ddi sé 1a 86 nguyén duge vidt duéi dang co sé 10. $= sprintf(‘Day 1a sé: %f",255) s = Day 1a sé: 255.000000 Dé dinh dang phan thap phan thi thém vao con sé chita sé thép phan can lay. 8 = sprintf(‘Day la s6: %.3P, 2.5568) s = Day la sb: 2.557 6) Me: bi 56 18.1 ky ty rigng dic bigt. s = sprintf(*Bay 1a chit: %c’,’M’) s = Day la chit: M ‘7)%s: A6i sé 1a chudi ky ty. s = sprintf{(*Day 1a chudi: %s’, Matlab’) s = Day la chudi: Matlab 8. felose déng file dang mé sau khi truy xudt xong, Ca phip: st= felose(fid) st = felose((all’) dong tit ca céc file, ngoai trir fid = 0, 1 va 2. Trong dé: fid: tén bign tré dén file dang mo, Néu déng thanh céng st-0, néu khong st = 2.7 Cfc thao tae vé va xi ly 4b thj 2.7.1 Cée Ignh xir ly trén cira sb ad thi MATLAB cung cdp thu vign ham xir ly dé hoa rit manh va phong phi trong khong gian 2-D va 3-D. Cing hic trén | truc toa dé cé thé vé nhiéu dé thi hodc phan chia thanh ic dé thi con. Sau day ta nghién ciru mét s6 Iénh co ban nhat s6 da tOn tai thi chon 1. figure(n) tao ra cira sé dd thi méi voi sé thir ty lan. Néw dén dé thi hign hanh dé cho cac Ignh khac téc dung lén ctta sé duge chon. 2. sublot(m,n,p) chia mét trang dé hoa lim nhiéu 6 nhé dé vé cae dé thj lén mii 6, Voi mxn li s6 6 sé vé, p la sé thir tr ca 6 hign hanh, Lénh subplot ludn di trade Iénh plot dé chi cho Iénh plot biét sé vé lén 6 nao. Khi can tre vé man hinh dé hoa binh thudng (man hinh don cé mét 46 thi) ta goi Iénh: subplot khong 6 tham s6, ‘Truémg hop cé nhiéu cita sé dé thi, nén dimg bién dé nhan két qué tir Iénh plot. 3. hold on/off gitt lai dé thi hign hanh trong khung man hinh dé thi dé gan them: thudc tinh dé thj hodc vé thém dé thj khéc ma kh6ng x04 dé thj cii/cd xod dé thj ci 4, axis({xmin xmax ymin ymax]) xde dinh khodn gigi han vé cho truc x va y axis([xmin xmax ymin ymax zmin zmax]) xac dinh khodn giéi han vé cho truc x , y va z trong 6 thi 3D axis(‘ij’) quay truc y véi huang dudi theo chicu duong, trén theo chiéu am axis(‘xy’) _xét lai truc y voi huéng ban dau axis(‘square’) thay d6i toa d6 true x,y dé 06 cita sé vudng axis(‘auto’) tu dOng thay ddi kich thude 10. title(‘string’) in ti¢u dé chuong trinh 11. xlabel(‘string’) gan nhan cho true x 45 12. ylabel(‘string’) gan nhan cho true y 13. zlabel(‘string’) gin nhan cho true z (déi véi dé thi 3-D) 14. legend(‘string1",’ string2’,...) ghi chti cho dé thi 15.legend(‘of?) Jogi bé chi thich 16. text(x1,yl, ‘string’) ve dong string Ién man hinh dd hoa tai toa 46 (xl,yl) 17. gtext(‘string’) vé dong string lén man hinh 46 hoa tai vi tri bam chudt 18.z00m on/off cho phép str dung nit trai chugt dé phong to dé thi, mit phai chugt dé ‘thu nhé/loai bd Iénh zoom. 19.[x,y]=ginput(n) doc n dim dit ligu trén man hinh 46 hoa. Toa 46 [x,y] nhan duge tir vi tri con chudt dang tré trén man hinh dé ho: 20.box on/off hién thi/khéng hién thi duéng vién h6p dé thi 21.grid on/off vélén cdc 6 ludi trén mat phiing toa d9/bd chite ning vé ludi 1. elf: xoa cae déi tugng trong cita sé figure 2. el: x04 dé thi trong 6 2. close, close all xoa min hinh 6 hoa (xem thém huéng dan trén help) 23. Cac thao tac tru tiép thudc tinh trén man hinh dd hoa Cac thao tac nay gitp nguéi sir dung chinh stra lai 46 thi tree tiép trén man hinh 43. hoa. Cé 3 thude tinh véi ndi dung nhur sau: - Thuéc tinh Line Properties: Chinh sta cic tham sé Limewidth, ——pawyan [7—— season [7 —— LineStyle, Color, MarkerSize, MarkerStyle ie Piss =] Haan [rene Cich chon theo cde bude sau: oT) + Chon ché d@ Enable Plot Editing + Chon dé thi cin thay dé (a) _teest_ |__| _ aw _| Tir menu Tool > Line Properties... re - Thuge tinh Axes Properties: Pci Chinh sira cdc théng sé Title, Label, baa CT Scale, Gri ee Cach chon theo cée bude + Chon ché d6 Enable Plot Editing + Chon true toa dé cin thay déi: Tir ry | a a ce Fe = menu Tool -> Axes Properties... [ccm eoeetn] mec ae 46 - Thuge tinh Text Properties: Chinh sita lai ede thng s6 Font chit. Cach chon theo céc bude sau: + Chon ché 46 Enable Plot Editing +Tirmenu ‘Tool -> Edit font properties... 2.7.2 Lénh vé trong khéng gian 2-D 2.7.2.1 D6 thj dang dong, diém (PLOT) Gém cae kiéu Iénh sau: 1. plot(x,y) : vé 46 thi gém tap hop cdc diém 1a cdc phan tir ctia véc to x (truc hoanh) va y (true tung). 2. plot(y) : vé dé thi gdm tap hgp cdc diém 1a cdc phin tir cita vée to y (truc tung) va cae gid trj thir ty cdc phan tir vée toy (truc hoanh). Néu y vée to gbm cdc sb phite thi dé thj 4 tap hop cdc diém véi hoanh dé 1a phn thye va tung d6 1a phdn do. Tuong durong véi lnh: plot(real(y), image(y)) 3. plot(xy,’str’) : ve dd thi voi dinh dang cho mau sic va kiéu dung vé nhd khai ‘bdo qua str 1a tham sé téi da gdm 3 ky ty chita cdc théng tin sau: + mau sie theo quy dinh: y yellow m magenta © cyan r red g green b blue w white k black + quy dinh kigu dénh déu (markerStyle) point o circle x x-mark + plus * star S square d- diamond v triangle triangle < triangle > triangle p_ pentagram fh hexagram + Kiéu dé thj (lineStyle) -solid -, dashdot dashed = dotted Vi du: plot(X,Y,'ct:") sé vé dé thi véi dinh dang mau xanh cyan, kiéu dénh dau + va kiéu 46 thi : (dotted). 47 Khi vé nhiéu dé thi cing lic trén mét 6, ding Iénh plot sau: 4, plot(xLyl,'str1?,x2,y2,"stt2? yu.) véi strl, str2,... Id ede dinh dang theo quy dinh trén. Vidu: plot(xLyl,"y-".x2,y2,"--") C6 thé cho phép gan thudc tinh dé thi trong cu Ignh plot Vi du: plot(x1,yl,"y-,’LineWidth’,2,’MarkerSize’,10,x2,y2," *LineWidth’ 1 ,’MarkerSize’,5) Trong dé: LineWidth 1a thud tinh chiéu day nét vé va MarkerSize li chiéu cao ky tt diinh dau. (Chi y fc ky tr in HOA va in thurdng). 5. fplot vé dé thi cua ham sé dang function. Ca pha fplot(*fun’,[xmin,xmax] Trong dé: fun: tén ham s6. xmin, xmax: xe dinh khoang can vé. Vi du: wfplot(‘x.93-24x-5°,[0,2)); arid Cae vi du tng hop: Vi dul: vé dé thj ap 3 pha hinh sin trén ciing m6t hé toa 46 x = linspace(0,4*pi,500); % cho x chay tu o den 4pi voi 500 mau yl = S*sin(x); y2 = S*sin(x+2*pi/3); y3 = S*sin(x-2*pi/3); plot(x,yl,x,y2.x,y3); % Set axis limits and grid lines grid on xlabel('Time') ylabel('Amplitude’) legend(First' Second’ Third’) title(3 phase_sin plot’) 48 ‘Vi du2: vé dé thj ap 3 pha hinh sin trén cing mét cita s6 véi 3 6 dd thi nho x= linspace(0,4*pi,500); % cho x chay tuo den 4pi voi S00 mau yl = Stsin(x); y2 = S*sin(x+2*pi/3); y3 = 5*sin(x-2*pi/3); %Select window and position plot region within window subplot(2,2,1) hl = plot(x,yl,’y-o’ LineWidth’,2,’MarkerSize’,5); grid on xlabel(‘Time’) ylabel(‘Amplitude’) legend(hl, First’) title(First phase’) subplot(2,2,2) h2 = plot(x,y2,’g-+",'LineWidth’2,’MarkerSize’,5); xlabel('Time’) ylabel(' Amplitude’) legend(h2,'Second’) title(Second phase’) subplot(2,2,3) h3 = plot(x,y3,’r-"",'Line Width’,2,’MarkerSize’,5); xlabel('Time’) ylabel(' Amplitude’) legend(h3, third’) title(third phase’) subplot % dua cua so do thi tro lai binh thuong ‘Vi du 3: vé dé thj ap 3 pha hinh sin trén 3 cita sé khdc nhau x= linspace(0,4*pi,500); % cho x chay tu 0 den 4pi voi S00 mau yl = S*sin(x); y2 = S*sin(x+2*pi/3); y3 = Stsin(x-2*pii3); figure(1) 49 plot(x,yl,"1-); % Set axis limits and grid lines grid on xlabel('Time’) ylabel(‘Amplitude’) legend(First’) title(3 phase_sin plot’) % ve do thi thu 2 figure(2) plot(x,y2,” % Set axis limits and grid lines xlabel('Time’) ylabel(’Amplitude’) legend(‘Second’) title(3 phase_sin plot’) % ve do thi thu 3 figure(3) plot(x,y3, xlabel(‘Time’) ylabel(' Amplitude’) legend(Third!) ds title(’3 phase_sin plot’) 2.7.2.2 BB thj dang hoat canh (COMET) Cho phép vé dé thi giéng nhu plot véi cich vé cham trén man hinh gay ra higu tmg hoat hinh. Cé 2 cit phap: 1, comet(y) : vé dé thi hé toa &6 xy véi thoi gian kéo dai 0.1 (gidy) 2. comet(x,y) : vé dé thi hé toa dé xy vei thai gian kéo dai 0.1 3. comet(x,y,t) : vé dd thi hé toa d6 xy voi théi gian kéo dai t ‘Vi du: thay cdc Ignh vé plot 6 cae vi dy trén thanh Iénh comet, 2.7.2.3 Bd thj dang thanh (BAR) J. bar(y): vé dé thi thanh theo gid tri ndm trong truc y tang dan theo x. 50 2. barx,y) vé do thj thanh, mdi thanh theo gid tri nam trén truc y tai vj tri chi dinh theo x 3. bar(x,y,’width’,0.5) vé dé thi cé dat thuéc tinh chiéu réng thanh Vi du % Bar plot of a bell shaped curve x= -2.9:0,2:2.9; bar(x,exp(-x.48)); 2.7.2.4 Dé thi dang hinh tron theo kiéu phan tram (PIE). J. pietx) cho dé thj hinh pie dedi dang ti Ié phan tram theo cac gid tri cia véc to thanh phan cia x. 2. pietx,tach) tach la vée to 06 gid tri 1/0 dé tach/khéng tach gid tri dé thi ra khéi pie (06 cing kich thud véi x). 3. pie(x,nhan) nhan la véc to kiéu mang xéu cdu tric biéu thi nhan ctia cde gid tri. 4. pietx,tach,nhan) Vi du x= [1467 9 pie(x) 2.7.2.5 Dé thj trong toa dd eye (POLAR): 1, polar(theta,r) vé dd thi quan hé ban kinh r theo géc theta Vi du % Polar plot 1-0:0.01:24pi; polar(t,abs(sin(2*t).*cos(2*t))); 2.7.2.6 Dd thj theo truc tog 9 logarithm (LOG) 1. semilogx(x,y) vé dé thi voi thang do theo truc x 1a logl0 cia x, tong duong plot(logl0(x).y) 2. semilogy(xy) vé dé thi véi thang do theo truc y 14 logl0 cia y, tong dong plot(x,logl0(y)) 3. loglog(x,y) vé dé thi véi thang do theo truc x va y déu 1a logl0, tong duong plot(logl 0(x),log10(y)) Vi du Sl x-linspace(0,7,100) yexplx) subplot(2,1,1) ; plot(x.y) subplot(2,1,2) ; semilogy(x,y) ‘Vi dy: tim nghigm cia phuong trinh bac 3 bing dé thi x=linspace(-100,100,1000); YORI BEDIG ADS Ae plot(x.y) ([r1,12}ginput % nghiem phuong trinh trong doan [-100 100] la rl % kiem ta lai bang lenh roots rroots({1 2 3 -6]) 27. Lénh vé trong khong gian 3 Bao gdm nhiéu lénh phong phi, xin néu ra m6t sé Iénh tiéu biéu, Chi tiét hay nghién ciru phan DEMO/visualization va graphic. 2.7.3.1 DB thi dang dudng, diém 1, plot3 (x,y,z) vé dé thj trong toa 6 xyz theo cae gia tri cde phan tir cic vée to 2. plot3 (x,y¥2, ‘str’) (6 thi trong toa 46 xyz theo gia tri cde phan tir cdc vée to Voi dinh dang quy dinh nhu Iénh plot 2.7.3.2. Dé thi dang hoat canh 1. comet3(z) : vé dé thj hé toa d6 xyz véi thé gian kéo dai 0.1 2. comet3(x,y,z) : vé do thi hé toa d6 xyz vai thi gian kéo dai 0.1 3. comet3(x,y,z,t) : vé do thi hé toa dé xyz vai thei gian kéo dait 2.7.3.3 Dd thi dang than 1. bar3(x,y,z): vé dé thi thanh voi méi thanh theo gid tri nam trong truc z ting dan. Vi du. % Bar plot of a bell shaped curve x= -2,9:0,2:2.9; bar3(s,exp(-x.*%),sin(x)); 2.7.3.4 DO thj dang hinh tron theo kiéu phan tram 1. pie3(x,y,z) cho dé thj hinh pie dudi dang ti Ié phan trdm theo cdc gid trj cia véc to. Xem thém cti phdp & phan 2D. 2.7.3.5 Db thi dang lréi 1. meshgrid(x,y) tao mang xdp xi hoa hai chiéu trong mién khao sat 2. mesh(z) ‘ve mat ludi trong khéng gian 3D Vi du: »[X,¥] = meshgrid(-2:.1:2, -2:.1:2); »Z= X..* expX.2 - YD); »mesh(Z) 3. waterfall(z) twong ty mesh nhung chi vé theo mot huéng. 2.7.3.6 Dd thj dang mat 1, surf(X,¥,Z,C) tao bé mat 3 chiéu 2. Xem thém surfl va surfe, ‘Vi du: Vé 40 thi hudi cia ham sin(x)/x: » x-linspace(-10,10); > yes » [pql-meshgrid(x,y); » Resqri(p.2+9.42)+eps; » z=sin(R)/R; » figure(1); » mesh(z); » figure(2); » waterfall(2); » figure(3); » surfiz): 2.8 Cac thi tuc in dn va leu trir két qua + Luu ma ngudn chuong trinh (dang m-file, mdl-file cua Simulink) 1. Mo va chon phan chuong trinh can copy 2. Copy vao ving nhé dém: Tit menu Edit > Copy (Ctrl+C) 3. Dan vi bio cao: 1é bdo cio va chon Edit > Paste (CV) + Lum dé thi két qua: 33 Chi ¥: Dat tinh trang két qua dé thi vé dang wmf-file bing cach: Tit dd thi chon menu:Edit->Copy Options > Windows Metafile. 1. Copy 46 thi vao bg nhé dém: Menu Edit > Copy Figure 2, Dan gi dung bé nhé dém vao bio edo (xem tuomg ty tren) 2. Copy a6 thi 0 file: (Luu dé thi dudi dang tip tin dinh kiéu) Menu File-> Export. Str dung cae nut thanh céng cy dé ve, ghi chi trén dé thi sau dé chén vao bdo cio 2.9 C&e vi dy va bai tap ** 54 CHUONG 3. CAC PHU'ONG PHAP TINH VA 3.1 Khai nigm Symbolic va giéi thigu vé Toolbox Symboli |G DUNG 3.1.1 Khai nigm Symbolic Trong MATLAB cho phép ding cic ky higu dai dign (symbolic) cho cde bién, tham sé hay ham trong cac biéu thite va trong cac ham. Do 46, két qua sau khi tinh toan 1a mét bidu thite theo tham s6, Toolbox Symbolic cia MATLAB cung cp cae him thue hign cdc phép tinh duéi dang symbolic. Day la thu vign cia hing phan mém Maple (M9). 3.1.2 Cach khai béo bién symbolic Dé thyc hign tinh toan duéi dang symbolic, cin phai dinh nghia tréc cdc bién, hay tham sé bing mot trong 2 cdch sau: Caeh 1: Ding khai béo sym. Cac vi du sau cho thay cac hinh thitc khai bio: ox = sym('x'); % tao ra bién x véi tén x (khi dé x 1a bin o6 thé 6 gid tri bat ki) »x = sym('x''real’); % tao ra bin thire x véi tén x »k = sym(’K','positive’); % tao ra bién k duong véi tén k Cfch 2: Khai bao syms: khi can khai bdo cdc bién cé cing kiéu (mac nhién: real). Cae vi du: »syms x1 x2 x3; % tuong duong vai 3 lan khai bio oxi sym('x1'); wx = sym('x2"); »x3 = sym('x3"); »syms x beta real; % trong duong véi 2 khai bio ox = sym('x','real!); »beta = sym(‘beta’,'real Cée bién sau khi da khai béo duge phép ¢ mat trong céc biéu thite hay lam tham s6 cho cdc hm, Do dé, cdc ham da ding trude day vai cic bién cé gid tri cho trade déu 4p dung duge duéi dang symbolic. ‘a xét cdc vi dy sau. Vi du 1: chuong trink mét m-file dudi dang script syms x y real Z=Xxt ity; % tao 6 phitc 55 kox"2; f= x2 + y°2; % khai bao him flx,y) Vi du trén tao ra: bién z kiéu sé phitc, bién (hay ham) k va him f c6 hai bién (thong s6) 18 x va y: fx.) Vi dy 2: Cae thao téc voi ma trén gidi hé phuong trinh tuyén tinh dang tham sd, symsa be d bl b2 A= [abcd] B-=[b1; b2] ‘X-inv(A)*B % hodc X=A\B % két qua [bl] [2] x= % nghiem phuong trinh A*X=B [_ di(a*d-c*b)*b 1 -bi(at*d-c*b)*b2] [ -cl(a*d-c*b)*b 1 +a/(a*d-c*b)*b2] Cac him trong Toolbox Symbolic ** 1, findsym Tim bién dic trung gan x nhat trong biéu thitc dic tung khi khdng c6 x subs thay thé bién trong biéu thite dic amg double chuyén gia trj cita bidu thire dc trmg thanh sé class tra vé kiéu dit liéu cia bién numden tach tir sé va miu sé cia phan thite (da thie hitu ti) Cac phép toain dai sé +-*/* compose két hgp hai him fly) va g(x) thinh ham hop f(g(x)) Vidu: symsxyztu; f= 1/(1 + x*2); g = sin(y); h= xt; p = exp(-y/u); compose(f,g) tra ve 1/(1+sin(y)*2) compose(f,g,t) trav 1/(1+sin(t)*2) compose(h,g.xz) tra ve sin(z)t 56 compose(h,g,t,z) tra vé_-x*sin(z) compose(h,p,x,y,z) travé exp(-z/u)*t compose(h.p,tu,z) tra ve x*exp(-y/z) 8. finverse tim nghich dao cia mét bidu thite Vi du: finverse(I/tan(x)) tra vé atan(1/x). fa x24 finverse(f,y) tra vé -x*2+y. finverse(f) tra vé (-y+x)*(1/2) va chi y phép nghich dio khéng duy nhat 9. symsum tim tong dic tumg ciia mét biu thite 10. sym2poly chuyén da thite dac trung thanh véc to hé sé ctia nd Vi du: sym2poly(x‘3 - 2*x - 5) tra vé [1 0-2-5] 11. poly2sym chuyén vée tohé sé thanh da thite de tumg Vi du: poly2sym({1 0-2-5) tra ve x*3-24%-5 poly2sym({I 0 -2 -5],'t) va t=sym(t) poly2sym([1 0 -2 -5],t) % ca hai déu tra vé P3245 12. horner dua da thite vé dang horner 13. taylor mé:réng chudi taylor 14. pretty hign thj biéu thite dic tumg trong ty kicu toan hoc 15. collect gom tat ci cdc muc giéng nhau 16. factor biéu didn dudi dang mgt da thite 17.expand mé ring tit cd cae mye 18. simplify don gidn hod cde biéu thite Vi du: ox = sym(‘x’); WP (xAD-)H%-2)*0-3); seolleet(f) ans = XM- SARS + SAK + SPX -6 »horner(ans) ans = G+ (SH (SH (5 +x) Px) x)" ST »factor(ans) ans = (1) *(%-2)*03) "(KHL wexpand(f) ans = XM SRB + 54x12 + 54-6 »syms x ya »simplify(sin(x)"2 + 3*x + cos(x)"2 - 5) ans = 403% »simplify(log(2*x/y)) ans = log(2}Hog(x/y) »simplify((-a*2 + 1)/(1 - a)) ans = atl 19. simple tim biéu thire trong durong 6 chudi ky ty ngin nhat Ci phip: —simple(S) [R,11] = simple(S) Vi du: Néu sir dung [R,H] = simple(S) sé c6 tuong img nhu sau; s R H cos(x)2+sin(x)2 1 combine(trig) 2Feos(x)*2-sin(xy2 _-3¥cos(x)2-1_—_ simplify cos(x)*2-sin(x)"2 cos(2"*x) combine(trig) sin(x)"2)°(1/2) cos(x)+i*sin(x) —_radsimp cos(x)+i*sin(x) exp(i*x) convert(exp) (xtlyaetGel) x3-x collect(x) XSL AHL (Hly3 factor c0s(3*acos(x)) 4AN3-3%% expand syms x y positive log(x) + log(y) log(xty) combine 58 20. ezplot vé dé thi ham dic trmg 21. Cae ham bién déi Z, Laplace, Fourier. 3.2. Da thite vA ndi suy 3.21 Da thie 1. roots tim nghigm cia da thit. Ci phip: r= roots(p) Trong dé: 1: bién chita két qua. __p: tén biéu thitc. Vi du: Tim nghiém cita phuong trinh: x’-1 -0 pal 0 lh »r= roots(p) re -1.0000 1.0000 2. poly tao ra da thite tir ede nghigm durge chi dinh. Ca pha P= poly(A) p= poly(r) Trong d6: p= poly(A), A li ma tran nxn véi cde phan tir li cdc hé sé cia da thite dic trumg det (sI-A) (da thite vé trai phuong trinh |AI-A|-0), tao ra vector hing c6 n+1 phan tir xép theo thir ty giém dan sé mii ciia s, Vay néu X = roots(P) thi P = poly(X) voi P 1a vecto. p= poly(r), tao ra vector hang voi cdc phan tir 1a cdc hé sé cita da thite c6 nghiém 1 céc phan tir cia vector ng ra. ‘Vi du 1: Cho ma tran A= 123 456 780 »p = poly (A) = 1 6 -12 227 59 3. polyval tinh gia tri da thite Cai php: Y = polyval(P,X), Trong dé: P la véc to chita cic hé 86 cita da thite, X la gia tri cita bin. Néu x 1a ma tran/véc to, sé tinh cho toan bé gid tri trong X. 4. polyvalm tinh gid tri da thie véi tham sé 1a ma tran Cai phap: polyvalm(V,X) Trong dé: V la véc to chtta cdc hé sé cita da thite can tim, X 1a ma tran vudng. 5. residue chuyén ddi gitta dang khai trién phan sé ting phin va dang da thie. Ci phip: [np.k}- residue(b.a) [bal residue(r.p,k) Trong dé: [r,p.K]= residue(b,a) tim gid trj thing dur, cde eye, va cée sé hang khai trién phn s6 timg phan cla 2 da thite b(s) va a(s) dang: B(s) +B STADE Hot Ba 8 as) a, ta,s Fas PaaS 6 ting phan vé dang da thite voi [b,a]= residue(rp,k) chuyén dang khai trién phan 6 trong vector a 6) a) =P, =P, a=[1 144] b=[209 1] [rp.k]-residuc(b,a) %Két qua: 60 0.0000 - 0.25001 0.0000 + 0.2500i -2.0000 0.0000 + 2.00004 0.0000 - 2.00001 -1.0000 k= 2 Tir dé ham truyén t6i gidn 1a: 2+ (-2U(S+1)) + O,25iN(S -i2)) + (-0,25iN(S -j2)) = 2 + C2MS+1))+ 1844) 6. conv(p1,p2) nhan 2 da thite pl, p2 thanh da thite tich p1*p2 (nit gon da thitc) 7. decony chia hai da thit. Cai phip: [a.r] = size(X,DIM), DIFF tra vé ma tran rong). Vi du: »h =.001; x = Och-pi ndiff{sin(x.2))/h xp xi dén 2*c08(x."2).*x »difM((110)."2) 06 két qua 18 3:2:19 NuX= [3 7 5 4 8 092 63 16287 428 69 3.40 8 6) »diff(X,1,1) ans = 30232 5 1302 4 34 6 22 12823 »dif(X,1,2) ans = 424 4 9743 5 4 641 2623 1482 ndiff(X,2,1) ans = 45309 24642 4 6-14 4 5 mdi f0(X,2,2) ans = 6 15 16 M1 -7 9 10 7 63 “5 12 -10 wdiff(X,3,1) ans = 243 4-1 6 7-20 8 3 ndiff(X,3,2) ans = 7 4 27-18 19-17 “16 13 17 -22 »diff(X,3,3) tra vé ma tran réng do mang chi c6 2 chiéu 3.3.2. Sir dung symbolic Trong symbolic, cfing dimg ham diff tinh vi phan ham sé bat ky. Ca phap: diff(s) vi phan ham s déi véi mét bién déc lap duge xdc dinh béi ham findsym_ diff(s,’v’?) hode diff(s,sym(‘v’)) vi phan ham s déi vai bién v diff(sn)_—_ vi phn bac n theo théi gian , vin la sé nguyén diff(s,’v’,n) hodc diff(s,n,’v’) vi phan bac n cia s theo bién v Xét cde vi du sau: Vi du 1: »x = sym(‘x’); mt sym(t'); vsyms ab ndf=diftsin(x”2)) ae 2Feos(x®2)*x »d6F-difilt*6,6) % dao ham bac 6 d6t= 720 64 wf exp(a*x +b) adiff(£x); % dao ham f theo x »diff(fa); dao ham theo a adiff(£b,2) % dao ham bac 2 ftheob ‘Gi voi mot ham, A la mét vec tovma tran thi diff(A) sé vi phan cho timg phan tit. Vi du 2: »syms a x. »A= [cos(a*x) sin(a*x) ; -sin(a*x) cos(a*x)] A= [cos(a*x) _ sin(a*x)] [-sin(a*x) cos(a*x)] »dy = difi(A) dy= [-sin(a*x)*a cos(a*x)*a] [-cos(a*x)*a -sin(a*x)*a] 3.4 Tinh tich phan (Integration) 3.4.1 Tich phan sb 1. trap tinh tich phan sé theo phong phép hinh thang ii php: Z= trapz(Y) Z = trapz(X,Y) Z = trapz(X,Y,DIM) hodc trapz(Y,DIM) Trong dé: Y [8 vée to/ma tran ho%c ham can tinh tich phan. Néu Y 1a ma trén thi tinh cho cét. X véc to chi ving cén lay tich phan (cé cimg kich thude voi Y) DIM huéng lay tich phan (DIM = | hoae 2) Vidu: NéuY=[012 345] thi trapz(¥,1) 18 [1.5 2.5 3.5] va trapz(¥,2) i [2 8); 2. quad tinh tich phan sé theo phuong phap thich nghi cdu phuong cia Simpson sit dung dé quy. Ca php: 65 Q= quad(FUN,A,B) Q= quad(FUN,A,B,TOL) {Q.FCNT] = quad(...) quad(FUN,A,B,TOL, TRACE) quad(FUN,A,B,TOL, TRACE,P1,P2,...) Trong dé: FUN ham can tinh tich phan dang Y = FUN(X), néu X 1a véc to thi Y cing véc to. Néu ham .m file thi them @ trude tén ham. A,B ean lay tich phan (Ién hon 1.c-6) TOL Bude ting cia cn (mie nhién 1a 1, 3 hoc 1.¢-6 voi MATLAB 6.0). TRACE khée 0 hién thi gid tr} [fent a b-a Qj. P1,P2,... cde tham 86 ctia ham (néu c6) Vi du: Q = quad('L./(x."3-2*x-5),0,2): F = inline('1./(x.°3-24%-5)"); Q= quad(F,0,2); Q = quad(@myfuun,0,2); v6i myfun.m la Mfile: function y = myfun(x) y= 1M3-299-5); 3. quads tich phan s6 c6 két qua chinh xac hon quad va thye hi¢n nhanh hon 4. quadl tich phan sé theo phuong phap thich nghi cdu phuong ctia Lobatto 3.4.2 Sir dung Symbolic Goi f1a mét ham trong symbolic thi : int(f) tich phan bat dinh cia ham f theo mét bién doc lap ngam dinh int({x) _ tich phan bat dinh cia ham f theo bién déc lap x int(f,a,b) tich phan xée dinh cia ham f theo bién déc lap trong khodng [a b] int(fx,a,b) _tich phan xde dinh ca ham f theo bién dc lap x trong khodng [a b] 66 ‘Mathematical Operation MATLAB Command pan nt (x"n} oF fees int (xen) x2 int(sin(2*x),0,pi/2) or Jamemaren int (sin(2%) x,0,pi/2) = costart b) @ = cos(art + b) int (9) or Jaterct = sintars 7a int(g,t] Int (bessel] (1, 2)) or Jayamaz = ~ 402) int (besse1j (1,2) ,2) ‘Vi du: syms x x1 alpha ut; A= [cos(x*t),sin(x*t);-sin(x*t),cos(x*)]; int(1(1+x*2)) tra vé—atan(x) int(sin(alpha*u), alpha) tra vé -cos(alpha*u)/u int(bessclj(1x),x) tra ve -besselj(0,x) int(x1*log(1+x1),0,1) wave 1/4 int(4*xttx2,sin()) tra ve_—_2*sin(t)°2*t-84t int([exp(t),exp(alpha*t)]) tra vé [exp(t), [/alpha*exp(alpha*t)] int(A,t) trave — [sin(x*t)/x, -cos(x*t)/x] [cos(x*t)/x, sin(x*t)/’x] 3.5. Giai cdc phwong trinh va hé phwong trinh 3.5.1 Phuong phap sé + Phuong trinh dang da thire: Xem phin da thiic (him ROOTS). Phuong trinh dang ham toin hoc: Sit dung ham EZERO * H@ phurong trinh: Xem cde phép todn da thite, ma trén, him INV. 3.5.2 Sir dyng Symbolic ** Ding ham solve trong toolbox symbolic Ci phip: (c6 3 dang) solve(‘eqnI’,’eqn2’,....’eqnN’) solve(‘eqnI’,’eqn?’,...,eqnN’, 'varl,var?,....varN’) solve(‘eqn’,’eqn?’,... equ’, var’, 'var2’,.. Trong dé: 67 eqns 18 cdc xdu phuong trinh, vars 14 cdc bién symbolic. Vi du: »solve(‘p*sin(x) = 1°); % sé ty chon bign la ‘x’ va két qua ans = asin(r/p) »fxiy] = solve('x®2 + y+ y= 37x92 - 44x +3=0°) % két qua la {-3/2] »S = solve(‘x*2*y*2 -2#x- 1=0°,'x*2 - y*2 - 1=0°) % sé tra vé cdu tric s= x: [8x1 sym] y: [8x1 sym] »[u,v] = solve(‘a*u%2 + v°2 = 0",'u- v= 1") % sé xem ‘a’ la tham so va hai bién u va v. »S = solve(‘a*u’2 + v°2","u- *’au”) % sé xem ‘v’ la tham sé, két qua la S.a va S.u. »[asu,y] = solve(‘a*u®2 + v42",'u- v= L'a"2- Sta +6") % e6 ba phirong trinh cho ba bién a, u va v. vsyms ab ex WS = atx'2+ b*x +e; »solve(S) ans = [12a*(-b+(b42-4¥a%e)(1/2))] [1/2a*(-b-(b*2-44*ae)(1/2))] »b = solve(S,b) b= (atx 2+e)ix Xée dinh nghigm va ve »syms x 68 »s = solve(tan(x)+sin(x)}-2); »X = double(s) x- 0.8863 1.8979 2.0766- 1.5151i 2.0766+ 1.5151i wezplot(tan(x)+sin(x)-2) »hold on ww = —24picpi/2:24pi; »plot(w,0*w,"r."); % ve diém trén man hinh »RX = [X(1), X(2)] 0") (2)") »text(1.0,-0.4,"X(1)") »plot(RX, 0*R. ntext(-1.8,-0. ‘Vi du: Tiép vi du trén »f= cos(2*x) + sin(x) — 15 »s = solve(f); % plotting s and f, using vezplot(t) vhold on; »plot(w,0*w,"r-.") »plot(double(s),0*double(s),"g0") 3.6 Gidi phwong trinh vi phan va hg phuong trinh vi phan 3.6.1 Phwong phap sé: Ding cic him ODE4S, ODE23, ODEII3 1, odeas ‘gidi phurong trinh va h¢ phurong trinh vi phan bac cao. Cai phap: [T.Y] = ode4s (ODEFUN, TSPAN,Y0) 69 [T,Y] = ode45(ODEFUN,TSPAN, Y0,0PTIONS) [T,Y] = ode4s(ODEFUN, TSPAN, Y0,OPTIONS PI P2...) Trong dé: TSPAN = [TO TFINAL) khoang ly tich phin cia phurong trinh vi phan y’= f{t,y) hode hg phuong trinh vi phin M(.y)*y' = fit.y) voi M 1a ma tan. TSPAN = [TO TL TFINAL] cé thé 13 véc to (luOn ting hodc Iudn gidm), YO gid tri khéi dau (tai t= TO) op) 'UN(T,Y) xau tén him tra vé véc to e6t f{t,y0). Néu ham .m file thi thém @. Y mang hu két qua (theo hing) T vée to c6t chi cic thei diém t. OPTIONS céc gid tri tinh trang (xem thém him ODESET). Gié tri me dinh gbm sai I€ch lién két 'RelTol’ = 1e-3 va véc to sai léch tuyét déi 'AbsTol’ = 1e-6 (tit cd cdc thanh phan). Néu khéng thi OPTIONS=[]. P1, P2, ... cdc tham sé cha him ODEFUN(T,Y,P1,P2,...) néu 6, Vi du: »[t,y]-ode45(@vdp1,[0 20},[2 0}); »plotit,y(:1)); 2. ode23 gidi cde phurong trinh va hé phuong trinh vi phin. 3. odel13 gidi cdc phwong trinh va hé phuong trinh vi phan. 3.6.2 Sir dung symbolic ** Ding him dsolve trong toolbox symbolic ai phip: dsolve(‘eqn1''eqn2’, Trong dé: ‘eqn ’eqn2’,... ede phutong trinh vi phin, Cach biéu dién ham dya trén ca php D: Dy biéu dign dao ham bac | ciia ham y (mac nhién) D2y, D3y, ..., DNy dao ham bac 2,3, .... N cia ham y (khong durge diing t) Vay ky higu: D2y biéu dign cia d ? yi/dt; Dy 1a biéu dién cata dy/dt Bién ddc 1 muén thay d4i bién dc lap phai thém tén bién mie nhién 1a". 46 vio cudi cing cia biéu dién ham (khong duge ding tén D). Cac diéu kign dau cing & dang phuong trinh nhu 1a 'y(a)=b' hode 'Dy(a) = b' voi y 1a bién déc lap va a, b 1a cdc hing sé. 70 Néu thiéu digu kign dau thi cac hang s6 tich phan mac nhién thém vao C1, C2, ... V6i hé phuong trinh vi phan, két qua (nghiém) 1a mét cdu tric. Vi dy 1: »dsolve('D; x!) ans = exp(-at)*CL »x = dsolve('Dx = -a*x'x(0) = 1's) exp(-ats) »y = dsolve((Dy)*2 + y*2 = 1'y(0) = 07) [ sin(t)] [ -sin()] »S=dsolve('Df=f+g',Dg=-f+g','f0)=1','g(0)=2') % tri vé cdu tric S Sf= exp(t)*cos(t)+2*exp(t)*sin(t) S.g= -exp(t)tsin(t)+2*exp(t)*cos(t) »Y = dsolve(Dy = y'2*(1-y)) % Két qua y= teL/y-log(y)+og(-1+y)}+C1=0 Vi du 2: phuong trinh vi phan bac 1: »y= dsolve(‘Dy= y0*y') % giai phuong trinh dy/dt=y0*y Yket qua ye Cl texp(yo*t) Chi ¥: phong trinh sau cho két qua khac »y= dsolve(‘Dyt= y0*y’) % giai phuong trinh dy/dt=y0*y % ket qua ye yOry*t+Cl Vi du 3: gidi hé phuong trinh vi phn don gin »[uyy] = dsolve(‘Du = v', ‘Dv = u') u 1/2*C1 texp(t}-1/2*C1 *exp(-t)+1/2*C2*exp(-t) +1/2*C2*exp(t) ve 1/2*C1*exp(-t)+1/2*C1 Fexp(t}+1/24C2* exp(t)-1/2*C2*exp(-t) Vi du 4: h¢ pt vi phan 3 an véi két qua dang edu tnic voi 3 nf gh »S = dsolve(‘Dfg','Dg=h'Dh=-f) $= f [1x1 sym] g: [1x1 sym] h: [1x1 sym] é hién thi gid tri Ignh dang cdu tric, ta dig cach goi S.f dé u dign nghiém f, tuong ty véi céc nghiém S.g, S.h. »S.h ans = -1/3*C1*3*(1/2)*exp(L/2*1)*sin(1/2*t*34(1/2))- 1/34Cl Fexp(L/2*1)*cos( L/2*1434(1/2))}+ 1/3 4C I texp(-t)- 13*C2*34(1/2)*exp(l/2#t)*sin(1/2%t*34(1/2))+1/3*C2*exp(1/2*t)*cos( L/2*t*3°(1/2))- 1/34C2exp(-t)+1/3*C3*exp(-1)+2/3*C3 *exp(1/2*1)*cos(1/2*t*3%(1/2)) 3.7. Cée vi dy ting dung ** Giai phuong trinh vi phan véi diéu kign dau duidx* =u u(0)= 1, uO) = -1, uw") = pi Ta 06 edu Iénh: w= dsolve((D3u=u'u(0)=1',Du(0)=-1','D2u(0) = pits’) Giai hé phuong trinh vi phan c6 diéu kign dau [fg] = dsolve(DF-3*f+4*g, Dg =-4*+3%g,, '1(0) = 0, g(0) = 1) dsolve(DE= f+ sin(t),'fipi/2) = 0°) dsolve(‘D2y = -a*2*y, 'y(0) = 1, Dy(pifa) = 0°) S = dsolve(Dx = y,, Dy = -x,, 'x(0)=0','y(0)=1) $ = dsolve(Du=v, Dv=w, Dw=-u',u(0)=0, v(0)=0, w(0)=1') , Dw(0)=0, D2w(0)=0") w= dsolye((D3 y= dsolve(D2y = sin(y)’); pretty(y) CHUONG 4. LAP TRINH TRUC QUAN GIAO DIEN NGUOI DUNG (GUI: GRAPHIC USER INTERFACE) GUI 1a cdng cu dé lap cée giao dign d3 hoa ngudi ding trre quan “VISUAL’ |, Menu diéu khién chuong trinh theo huéng sy kign, giip lép trinh vién tgo ede mit 4.1 Céch xay dyng cae nit dn va menu 4.1.1, Phuong phép sir dyng UIMENU va UICONTROL Viet m$t m-file trong dé it dung cée 1énh uimenu dé tao ra menu va lénh uicontrol dé tao ra céc nit dn cing nhur cac déi tong giao dign khac. Céch nay c6 nhuge diém 1a ngudi sir dung phai tén nhigu céng site dé truyén ede thude tinh d6i tugng bing dong Iénh nén yéu edu Ijp trinh vién phai thanh thao. Vi dy: Muén tao ra nit bém ¢6 tén plot véi Iénh Callback 1 plot(x,y) uicontrol'Style’,pushbutton’, ‘String’;Plot, ‘Callback’, plot(x,y)', ‘Units’,point, . ‘Position’ [50 65 75 35]) 1, Lénh uicontrol tao giao dign digu khién ngwdi ding. Cai phip: uicontrol(PropertyNamel ,valuel,PropertyName2,'value2,...) tao giao dign digu khién ngudi ding trong cita sé hinh vé hign tai va tra vé m6t handle, uicontrol(FIG....) tao giao dién digu khién nguéi ding trong ctra sé hinh vé (FIG). Cac properties cé thé thiét lap cap tham sé PropertyName/PropertyValue cho d6i tugng hoc duge thay ddi sau 46 bing Ignh SET. Lénh get(H) lay danh sach va gid tri cdc thudc tinh cia déi twgng (I) trong UICONTROL. Lénh set(H) dit danh sich va gid tri céc thude tinh eta d6i trong (H) trong UICONTROL. 2. Lénh uimenu —tgo giao dign menu ngwdi ding. Cai phap: uimenu(PropertyNamel ‘value! ,PropertyName2'value2,...) tgo mot menu trén thanh menu bar tai dinh trén cia etta sé hign tai, va tra vé handle. 3B uimenu(H,...) tao m6t doi tugng menu méi voi H la doi tugng cha ‘Parent’. H co thé 1a figure handle, menu handle, hodc context menu handle, Néu II 1a figure handle, UIMENU tao. menu trén menu bar tai dinh eta cit 6. Néu H 1a handle menu trén menu bar, m6t menu item moi dé xuéng trén menu bar. Néu H 1a context menu, sé tao ra menu item trén context menu, Cac properties cé thé thiét lap cap tham sé PropertyName/PropertyValue cho d6i T. tugng hoac duge thay déi sau dé bing lénh S Lénh get(H) ldy danh sach va gid tri cdc thudc tinh cia déi twgng (I) trong UIMENU, Lénh set(H) dat danh sich va gid tri cée thude tinh cia déi trong (H) trong UIMENU. 4.1.2. Phuong phép sir dung GUIDE (GUI design) Sir dung tign ich ¢6 sin ma MATLAB cung cp. Bé 1a churong trinh GUIDE (GUI design). GUIDE cung cdp cho lap trinh vién mét giao dign trac quan gém cac nuit chite ning (vi dy: nit bim Push, vin ban tinh text, dit ligu nh§p edit, mit chon radio, nit kiém check, ... nhur hinh 5.1) va giao dign Menu Editor trén cira s6 figure dé thié iao dign vao ra nhu hinh 5.4 va tir d6 tao cée edu trie churong trinh, goi cde Iénh, ham (churong trinh con) gidi quyét cic bai todn dat ra theo yéu cdu. Sau khi tao xong, ngOn ngit sé tr déng sinh ra ma nguén (m-file) twong img véi timg thao tac (nhw ta viét Ignh theo cach 1), Ngoai ra, phurong phép cén tgo ra mt file *.mat dé hu edu hinh giao dign Dé thye hign, tai dau nhc lénh MATLAB g6 lénh: »guide % ta c6 cae cita sé giao dign nhu sau: aaa r=) (2) ese ee Danh sich cic figure va tinh trang activated, controlled Cae dBi tuong tao sino dign vio = ra trong ete 6 figure Hinh 5.1 Ctra sé giao dign ngudi ding tye quan 14 Trong cita sé nay c6 cdc céng cu dé thiét ké menu, cdc nuit bam, soan va dat thudc tinh, canh 1é cde mit bam, dat ché d6 kiém tra tryc tigp céng vige thiét ké, bé sung them cdc figure vao thiét ké, ... - Cita sé Graphics Property Editor soan tho cac thudc tinh cdc 46i tugng nhw hinh 5.2. anh séch Abi trem kigu cde thude tinh ae Cae thude rointorshapeborepot tinh Hinh 5.2 Cita sé soan thao thude tinh Cita sé Guide Callback Editor sogn thao cdc ham thye hign cdc Iénh nhw hinh 5.3. Kigu di tung. Ving soan, sita Callback ign thi cde ‘kidu d6i tugng Hinh 5.3 Cita sé sogn thio Callback 15 = Cita sé Guide Menu Editor soan thao cic him hodc thye hign cde Ignh nh hinh 5.3. Ligt ké cde d6i turgng (Object) Hinh 5.4 Cita sé soan thio Menu 4.2. Céch Ifp trinh trén giao dign GUI Gia sit ta cn lip trinh giao dign nhw hinh 5.5 véi nut PLOT! vé dac tinh dé thi ap sin tuy thude vio tuy chon trong poupmeu 1 | pha, 2 pha hay 3 pha. Céc bude nhu sau: Budcl: Trén cita s6 figure mdi, tao cc d6i tugng bang phuong php kéo va tha. Gin ede thuge tinh nhur sau: * PLOTI: 66 thude tinh String: ‘PLOTI’ , Tag : ‘plotl” Callback: (Boan chong trinh sau) x-linspace((,3*pi,1000); yl=sin(x); y2=sin(x-2*pi/3); y3esin(xt2*pi/3); % Lay thuoe tinh chon trong popupmenu handle_chon-findobj(gebf, Tag’ chon’); % lay thuoc tinh Value cua chon hang=get(handle_chon,'Value') % ve do thi theo tinh huong plot(x,yl,'b-') elseif hang-=: plot(xyl 'b-\x,92,') 16 elseif hang plot(x.yl,'b-\x,y2/'x,y3,e) end © khéi ‘xoa do thi’ cé: “Tag? : *xod “String? : *xoa do thi’ “Callback” cla" © Khdi ‘close’ co String’: ‘close’ “Callback” : ‘close’ © Khéi poupmenu c6: Hinh 5.5 giao dign lap trinh vé dé thi. “Tag’ : ‘chon’ “String” : ‘1 phal2 pha|3 pha’ Buse 2: Luu chuong trinh (Save figure), dat chuong trinh 3 ché d@ Active dé chay kiém tra két qua. Néu bj Idi thi dat lai & ché d6 Controlled dé chinh sira, Néu muén stra ddi chuong trinh cé sin, thi goi tén chuong trinh 4é chay, sau d6 dat né & ché d6 Controlled trong ctta sé GUIDE dé chinh sia. Chu y: Dé dim bao xem duge ma Callback, nén dat mdi Callback 1a mét ham hay script dudi dang *.m file, Ngoai ra, nguéi ta hay ding phwong thite lip trinh sy kign dé truyén tham s6 cho chuong trinh théng qua 1éi goi him Callback img voi mdi su kién. 4.3. Phuong thite lap trinh sy kign thong qua truyén tham sé “Action” 43.1 Khai nigm VIN ta edn Lin chorea trinh wii vin ohn san thinh 6 4): mn function mygui(aetion) switeh(action) # case ‘load’, Catiback case ‘plot mygui plot cand Close! close(gcbf) end = Calbock + mygui close Hinh 5.6 mé ta phuong phap lap trinh sy kign, 7 Véi phuong thite trén, ta cin mé cita sé soan thao va stta lai dau chong trinh doan ma trén, Véi cée Iénh cho méi Callback duge dat vao gitta cde Iénh CASE ... (nén ding ham hay script cho mdi doan chwong trinh néu chong trinh dai). Day 1a phurong thite lap trinh sang stia nhit va tign Igi nhat. + Ghi chi quan trong ‘Dé tuong tic gitta cac déi tugng, ta cin dat va lay thudc tinh cdc déi trong. Dé thyc hign ta diing cde ham sau: 1, Léy thuge tinh déi twgng ding him get theo ca phap y= get(, Tén thugc tinh’): Tra vé gia tri thude tinh cho bién y. Dé lay bién handle, ta dung ham findobj cé cu tric sau: Handle_bien = findobj(gcbf,’ten thuoc tinh’, gia tri thuoc tinh’) : ham nay tim mét 6i tugng c6 ‘ten thuoe tinh’ img vi ‘gia tri thuoc tinh’ chi ra va két qua tra vé bién Handle quan ly déi tgng Vi dy 1: shandle_chon = findobj(gcbf,"Tag’ chon’); »hang = get(handle_chon,'Value’) Vi du trén tim di tugng c6 thude tinh *Tag’="chon’, nhi a6 ta méi ly duge thude tinh *Value’ cia n6. ‘Vi du 2; ldy thuéc tinh string clia d6i tugng EditText1 »EditHandle = findobj(gcbf,T »ZString = get(EditHandle,'String’); | EditTextl"); 2. Dat thuge tinh cho cae déi tugng: ding ham SET Cai phap: set(,"tén thuge tinh’,"gia tri thuge tinh’) : gan thude tinh ddi tugng duge quan ly boi bién Handle cho mot gid ti. Vi du: »EditHandle = findobj(gebf'Tag',EditText!); ystr = "1 phal2 phal3 pha’; »sel(EditFlandle,'String',str); 4.3.2 M6t sé ham thwong ding quan ly déi twgng 1. gef — ldy gid tri handle cita figure hign hanh 2. gebo ly gid tri handle cia object Callback hign hinh 3. gebf lay gid tri handle callback cia figure hign hanh 8 4. gea ly gid tri handle cita dé thj (axes) hign hanh 5. geo lay gid tri handle ca object hign hanh 44° Vid tg dung + MA chuong trinh *.m file cho churong trinh & vi du trén khi viét chutong trinh theo kiéu ding tham s6 action function fig = actiongui(action) % This is the machine-generated representation of a Handle Graphics object % andiits children, Note that handle values may change when these objects % are re-created, This ma -ause problems with any callbacks written to % depend on the value of the handle at the time the object was saved. % This problem is solved by saving the output as a FIG: % % To reopen this object, just type the name of the M-file at the MATLAB % prompt. The M-file and its associated MAT-file must be on your path. % % NOTE: certain newer features in MATLAB may not have been saved in this % Mile due to limitations of this format, which has been superseded by % FIG-files. Figures which have been annotated using the plot editor tools ‘% are incompatible with the M-file/MA‘T-file format, and should be saved as % FIG-files. load actiongui if margin <1, action = ‘initialize’; ends if stremp(action, initialize’) ; hO = figure(’Color’,[0.8 0.8 0.8], .. ‘Colormap',mat0, .. ‘FileName’,'D:\MATLABRI I\work\actiongui.m’, .. ‘PaperPosition’,|18 180 576 432}, ... 'PaperUnits’,'points’, .. ‘Position’ [255 39 508 420], .. "Tag! Figl’, .. 79 *ToolBar','none’); hi = uimenu('Parent',h0, .. "Label','Plot’,.. "Tag','Plotl’); h2 = uimenu(‘Parent'hl, ... ‘Label''plott’, "Tag! 'Plotplot11"); nh imenu('Parent'h1, .. ‘Callback’ matt, . "Label','plot2’,. "Tag','Plotplot21"'); hl = uicontrol('Parent’,h0, .. "Units'"points’, "BackgroundColor’,|1 0.501960784313725 1], ‘Callback’,'actiongui plotting’, .. ‘ListboxTop',0, .. ‘Position’ |288 246 45 21.75], .. ‘String’ PLOTI’, .. ‘Tag!,'plott'); hl = axes('Parent’,n0, .. "Box'on’, .. *CameraUpVector’,[0 1 0), .. ‘CameraUpVectorMode’,'manual’, ... "Color [11 Ay. ‘ColorOrder’,mat2, .. 'NextPlot','add’,.. "Position',mat3, .. "Tag','Axes!', .. 'XColor’,J0 00), .. 'XGrid’,'on', .. "YColor’,J0 0 0}, .. 'YGrid’,'on’, 'ZColor',|0 0 0), .. LGrid’,'on'); h2= text(’Parent',hl, .. 80 "Color',J0 00}, ‘HandleVisibility'/of?, .. ‘HorizontalAlignment’,'center’,. Position’, |0.4983606557377049 -0.06760563380281681 9.160254037844386, .. "Tag','AxesI Text’, .. "VerticalAlignment','cap'); sel(get(h2,'Parent’),'XLabel',h2); n2= fext(‘Parent’,hl, "Color',[0 0 0),... ‘HandleVisibility' ‘of, ‘HorizontalAlignment’,'center’, . "Position, |-0.09508196721311477 0.4957746478873241 9.160254037844386), .. "Rotation’,90, .. "Tag! Axesl Texts, ‘'VerticalAlignment','baseline'); set(get(h2,'Parent’),'YLabel',h2); h2 = text(’Parent',hl, .. "Color',J0 00), ‘HandleVisibility','off, .. ‘HorizontalAlignment’,'right’, .. ‘Position’, |-0.1278688524590164 1.047887323943662 9.16025403 7844386], . "Tag!,'Axest Text2', .. ‘Visible’ off); set(get(h2,'Parent'),'ZLabel',h2); h2 = text(Parent’,hl, ... 'Color’,J0 00), ‘HandleVisibility','off, .. ‘HorizontalAlignment’,'center’, .. ‘Position’ |0.4983606557377049 1.019718309859155 9.160254037844386], .. "Tag','AxesI Textl’, "Vertical nment’bottom'); set(get(h2,"Parent’),Title'h2); 81 hl = uicontrol('Parent’,hO, .. "Units'points’, "Background Color',|0.752941176470588 0.752941 176470888 0.752941 176470588}, .. ‘ListboxTop',0, .. Position’ |291 183 45 20.25], .. 'String’,|'1 pha's’2 pha';'3pha';)'}, 'Style','popupmenu’, ... "Tag! /chon', .. "Value’3); hl = uicontrol('Parent’,h0, "Units’,'points’,.. "Background Color',[0.752941176470588 0.752941 176470588 0.752941 176470588], .. "ListboxTop',0, .. Position’ [291 206.25 45 15], .. 'String’,'Popupmenu’, .. 'Style’,'text’, "Tag! 'StatieText1'); hl = uicontrol(Parent’,h0, . U "Background Color’,|0.752941176470588 0.752941 176470588 0.752941 176470588}, .. 'Callback’,'actiongui dong’,... ‘ListboxTop'0, .. ‘Position’ |299.25 36.75 45.75 16.5], «» ,'points’, .. 'String’,'close’,.. "Tag,"Pushbutton3"); hl = uicontrol('Parent',h0, .. "Units’,'points’,.. ‘Background Color’,|0,752941176470588 0.752941 176470588 0.752941 176470588}, .. 'Callback’,'actiongui xoa’, .. "ListboxTop'0, .. "Position’,|298.5 76.5 51.75 21.75], «. 'String’,'xoa do fl "Tag','xoa'); 82 ‘%oset(h0, "V else Le','on'); switch action case ‘dong’ close(gebf) case 'xoa" ola case ‘plotting’ x-linspace(0,3* pi,1000); yl=sin(x); y2=sin(x-2*pi3); in (x+2"pi/3); ¥ % Lay thuoc tinh chon trong popupmenu handle_chon=findobj(gebf,’Tag’,'chon'); % lay thuoe tinh Value cua chon. hang=get(handle_chon,'Value') % ve do thi theo tink huong grid on if hang=1 plot(x,y1,'b elseif hang==2 plot(x.y1,'b-'3x,y2,'r~") elseif hang==3 plot(x,yl,!b-',x,y2,'r-"x,93,k: end end end 83 CHUONG 5. MO PHO! 5.1 Téng quan vé SIMULINK G, THIET KE TRUC QUAN (SIMULINK) SIMULINK (Simulation and Link): 13 mét tign ich quan trong cia MATLAB tho cae doi gitip cho ngwdi sit dung mé phéng, phan tich va thiét ké cac hé théng thyc té tugng lién tuc, gidn doan tuyén tinh hay phi tuyé cae hé sur kign logic (vi du nhu ‘m6t qua trinh san xuat)... Nguyén tic lam vige chung cia SIMULINK 1a xdy dumg mé hinh so 46 khéi tir cac khéi mé dun chttc nang tao sin bing thao tac “nhdn” va “tha” chugt cdc khéi vao cita s6 thiét ké, sau dé két néi cdc khéi va khai bao tham so cho phi hgp. Buse tiép theo 1a chay két qua, phan tich, higu chinh 6 két qua mong muén, SIMULINK cho phép giao dign voi MATLAB thong qua mot sé khéi, Cac két qua tra lai trong khéng gian Workspace dé chuong trinh MATLAB lay va xit ly. Trong SIMULINK cin cho phép dura cic ding Iénh MATLAB hoje céc biéu thitc todn hoc vao ngay trong so dé SIMULINK. Nhu vay céng cu SIMULINK gitip cho ngudi lap trinh tiét kigm nhiéu théi gian va cong site vi né ty déng lin két, bién déi dé chuyén thanh cdc hé phuong trinh vi phan tinh toan ngam trong méi trréng MATLAB ma ngudi lap trinh khéng can quan tim. Vi vay, dé mé phong mét qua trinh thyc té cé thé tinh todn bang hai cach: hodc viét cdc day Ignh MATLAB (*, m file) hay lap mé hinh tinh ton trong SIMULINK. Céch dau c6 wu diém 1a chay nhanh nhung vat vd cho ngudi lip trinh nhat 1a déi voi cac hé phite tap. Cch sau c6 wu diém 1a rit trre quan sinh d6ng, dé tu duy tign Igi, nhat 1 déi voi hé théng lon. Nhuge diém 1a chay chim. Tuy nhién, theo quan nigm lap trinh nang cao, nén két hgp hai phan trén trong mt du én (project) dé thuc hign nhiéu céng vige khic nhau, S.1.1 Khéi dng SIMULINK Khoi dng SIMULINK hién thi thir vign céc nhém chite nang bang cdch g6 lént »similink3 Hinh 1. Thu vign SIMULINK 3 84 Khéi déng SIMULINK hién thi thu vign chi tiét bing cach g6 lénh: vsimilink 5.1.2 Gidi thigu thw vign SIMULINK Cira sO tim kiém: nh§p tén khoi = Suir va enter. Chung trinh sé tim i Bal Conmuricatens Blckent khéi cin tim. tnt Mi Contre! System Toolbox «Bl ab & Coues iotcet BAL DSP Blcksat 1M Fixed-Point Blackest BB Fuzzy Logic Toolbon, BR No eedect = i Bll Neural Nervorkatockset KYich chugt vio ddu + moi khbi se oi Ba MPC Ochs ligt ké cde phan ti edn sir dung 13 Bl Power spate Boeset (Bal Real-Trn window Ter get co) Ral StateFee BA Binur estras =) BA System ID Blocks “Tite FRE ay Oa ine ese kei dE ms Nie a SRS fohong he tien we 9 sec coraaie $= S Sacer Siarspoce EcmponteRasinag. po S tiastertn 9 doPeaet [Gi khuyéch S veer Dany 9 con vi Vesa Top Day S Lect tpere 9 zee 4 & Mesancsarasts conch ie Kia md & Hance inti ogie AND, Jphing he sin dogn Sse lox, NAND, S Fone: & diate tespece © Regina tocorpie sito Fert poate S feo as Poscaren & Zecor ted Sin Gan 8 meta ges S tests rae Be Nortros g toate onthe & Srucin & desis : Hinh 3, Thy vign chi tié SIMULINK 85 SEI) (csi. aa cantata aa 8 tissue gone | $ Pectnser © Strain Jeom cae ki, ea Syma tne large nay cme gst sine nhigw Seu théng con © True Pe lap ra 6 con bao $ Sau IM bg tude S curser & Caregen Sutce © deesaetenan 2 & dete pe Came $ deme $ Foe S Finctneatera: $ cee & ere raovienin, ‘oo Tay ¢ ° 3 3 3 & tasainis & ° ¢ 3 Seer [cde Khoi dink Feasts Jcho quan sit em lac tinh ra S some & Step simdation S tore & ToWoksvece Scere eB] Souees @ Bore ite witeticce & Oe sye S cot S Cones Paes GB Sruirecwnr 5 TS el AddhonalDiciee © Disole tanta Fentouhina ous © ica Tan Fon toh ial tte @ Diecrote Zero. ake lath tial cuspute & Dine Zeie th aie) -B] Addkonal Lincor @ FO Conch © A Corto fh Aponte De State Speee wth iii ewes) Transfer Fen (with initial outputs) Tranter Fen ih ial ate zaoFaetoah ntl ovate Zao Fsbe oh mila) 3 Abtionalsbas @ euro Contr & svesana Powe Spectal Dendy avoaang Specun Babee Cows torr & Fone Spectlenty @ Spectium Anayzer ee @ Power Speck! Dens 4 @ Spectnan Anabese 2 Fiprepe @ Clock @ DFieFae @ D Latch @ IKFipFep. @ SRF IeFlop Be Linearzation © Soiched devaive far Inetcgion @ ‘Switched nanspott delay for freariat B22 Tronefonetions @ Cavtesisn to Polar © Carianante Spheres @ Colsueto Fatvenhek: @ Degrees toFisdians @ Fahrenheit to Celsius @ Polar to Caresien @ Fadanrte Degrees . @ Sohevical to Cartesian | ‘Thur vign simulink bé sung 5 BS Soucse [Sources: gdm cdc khdi tgo ra cdc dang ngudn © DantLinted white Noice [phat khiée nhau © Crap signal — © Cock [iso ra ede gid tr thoi gian theo bude lay mau @ Covstrt @ Distal eck. @ Decete Fuse Gener @ From Workspace @ Frome @ Puce Generator [tao ra cde nguon xung chuan khée nhaw_ @ Rane @ Paden Nata G Reoestn Sequerce @ Spalcrecto: co [Tao ra tin higu step (ham 1(O) ding lam tin higu dat Pliner trong cdc hé diéu khién tu dong 2B Contd Blacks geil pets @ Scere Fue Gant cinta nied @ Corte Caner Souce 5B Moscummerts @ Conte Votoge Sauce © Active & eachve Power @ DC Vorege Source @ Fou: 3 BH Elomeres Fus $ Dae Fusrsien tne 5 By TheeePhave Library @ Lier Tenvtamer @ 3 Phone Parl ALC @ Mussel indctoree @ 3 Phose ALC Sein Load Sein @ 3 Phase Sees FLC ees @ 3Phace PLC Parl Load Satastie Trenton @ B-mnice dove bilge @ smies LC Benen © 6m tytn dow @ Sam FLO Laos ines barclamet @ Sstae Anos Serbia ita say Sealey $ Ii oct estate YO) lnwaranconre & YG? foes terforer 910 ina tarnianer @ Seif Brean tnesormes © YagD saturable tanstormer ona ‘Thw vign NCD blocksets : g6m 3 khdi phyc vy thiét ké hé phi tuyén BNC Becksat Bl RMS Blocks CHS: @ DAMS @ NCD Dutpert 87 Thu vign Power system Blockset 3-2 Machines Tr @ Aste Menacenen Oewt = @ Aomchoroasileshne 51 Uris | @ Asmchorous Machine pu Units @ Encitation Sytem Hyd Tube end vena PASM Mocrsement Dem amare’ egret Synchionaus Machine SM Mearvenert Umut 5M Messrenent Dermat Siping Syretcraus Machine pu Uris Sind Syhoross Machine SI Unis Synvonou Mackin 8 Frronant| Synchronous Mactne pu Fundonerid @ Simchronowe Macting pu Standard 7 LOOCCOOOOE *, Gidi thigu chi tiét mot sé khdi thudng ding: - Khdi khong gian trang thai oo ae) a TranterFon cae khdi hé gidn doan st Mord) 205 ichetpAerieBuind Deets Disate Sale Spn08 - Cac khdi tao ham: 88 © 24 Mesarenerte @ Caner! Measurement ~ @ Voliage Measurement 5 Be Foner Elciorics @ Dataied Tht = @ Diode -@ Gio = @ Idea Swirch = @ Moret @ Three @ peneegul { =n 7 208) vase Piewste Dinrate Finer Zarate - Khoi ham trong MATLAB ATLAE Function METAB Fen Paral RLC Lead Parallel RLC Grane PAs pA ‘eras mus bese Cceries LE ranch ech anaes ‘3 Phase Paalol RC 9: Phase Sovea RL Pata Laas z [etestend + 5.2 Céch xdy dyng m9t chwong trinh SIMULINK Xet mot sé vi dy sau: ‘Vi du 1: xay dung m6 hinh hé diéu khién PID tuong ty. sux ff emout if 89 Trong vi du trén, sit dung khéi PID 1 khdi digu khién theo luat PID dang ham. truyén: Wem(s)= P+I/s+D.s, dé 1a ham truyén cia déi tng 14 khdi Transfer Fen. Cae bude thyte hign nhur sau: Bude 1: Ré va tha cdc khéi cin xdy dug mé hinh tit cdc thu vién SIMULINK. Néu c6 cae khéi giéng nhau cn xAy dung trong mét mé hinh thi ding Iénh COPY va PAST (dan) dé tao nhanh cac khéi, cé thé copy tir mét mé hinh khac. Co thé sir dung Menu Format cia SIMULINK dé dinh dang mé hinh nhu: Chon lai font, mau sac, nét vé, quay khdi (rotate), Buéc 2: Nhap théng s6 hgp ly cho cdc khdi bing cach kich dip chudt lén déi tugng khdi sau dé nhap cdc tham sé tir cira s6 hGi thoi. Bude 3: Chi thich cic dong text lén doi tugng nh hinh trén. Buée 4: Khai béo cdc la chon tham sé trong Menu Simulation -> parametter... dé chon cde tham sé tinh toan mé phéng. (xem hinh trang sau). Bude 5: Chay chutong trinh bing cdch chon nit Run trén thanh eéng cu hode chon Menu Simulation >Run Quan sat két qua danh gid va higu chinh tham s6 sau mdi lin chay. Cae cht y: + Muén vé nhiéu dé thj trén m6t truc toa d6, phai sir dung khéi ghép kénh (MUX) true khi cho tin higu dén b6 quan sat. Néu ding khdi To Workspace thi sau khi chay xong ta nhan duge bién out li bién toan cye trong khong gian Workspace eta MATLAB. (bién out sé 1a bién toan cuc trong bé nhé). Lic nay dé vé duge nhiéu dé thi trén mot hé toa d@, ta ding ham plot nhur sau: plot(out(:,1), out(:,2),out(:,1), out(:,3)...) sé vé nhiéu dé thj bién déi theo théi gian trén chung | truc toa dé + Chuong trinh chay dén hét thi gian (stop time) thi ty déng ngig. Dé chuong trinh dimg tnréc khi két thitc, dn mit STOP trén thanh céng cu (hoc Menu Simulation -> Stop). Cé thé 4n nat tam dimg (PAUSE) dé chirong trinh tam nghi va sau dé chay lai tiép tue tir buée true khi dimg. + Déi véi hé théng Ién, c6 thé Module hod chuong trinh bing cach sit dung khdi SUBSYSTEM dé chita nhém khdi chite nang lai véi nhau va hé thong sé duge xdy dung ‘ttt nhiéu hé thong con hgp thanh (xem phan sau). 90 oH al ox TS ores Stier | Wommpoaot/0) Ctnodie| Rea Tino Wark | ave Stattine [OC Splines 100 Solve pions Tye [Varstiesen 1 [aietSDorenahince! rs coe eee Inti ep ise, [ou'o Abwolts eran Pouo Bute options [Fetrecupt OY etneracir [TS ek | canst) Hen | cod Cia 68 Parameter true khi m6 phing Vi du: M6 phong mét hé théng diéu khién téc d6 déng co dign mét chiéu. Vei b6 didu Khién PID theo Iuét PI duge ting hop theo phtong phap module t6i um. Hay thinh lap md hinh va m6 phéng dainh gid rai € Pr L- 0.625 2 fp[pio p> og, Poaosend ual (ss400)(«+ 10000] Ue 258 REPL chin hat pu déng oo 4 lr] ni d.a02sea* OT a dna di phan héi dng ox LY >] Mux}->} out >| Ito Workspacet o 5.3 Caich tao ra thur vign rigng (mt subsystem) tir cfc khdi da c6 Y nghia cach Lim nay 1a tao ra mét khéi con trén co so cac khéi da cé dé phan hé théng lén thanh nhiéu hé théng con (subsystem). Néu mét khéi con duge sir dung nhiéu lin trong cdc chitong trinh thi ta o6 thé déng géi khdi con, tite la che mat na cho né (mask subsystem) dé bién né thanh mét khéi chite nang nhu nhiing khéi 43 duge tao ra trong SIMULINK. Trong thu vign SIMULINK, c6 rit nhiéu cic kh6i da tao tir nhimg khdi co ban. Vi dy: khoi PID controller duge tao ra tit cic khdi: Gian, Derivative, Integrator, Sum. 2 : 0+} ike PID Gontraller oh integra sim 18 Ly} uit ‘Dé xem cau tric bén trong ctia subsystem da che mat na (masked), ta lam nhu sau: - Chon khdi can xem edu tric bén trong - Chon menu Edit ->Look under Mask dé mé cita sé simulink cho m6 hinh eta subsystem, (cé thé an mat phai chuét trén déi trgng dé chon ché d6 trén) 5.4 Vi du itng dung ** Ta xét vi du sau day, tgo ra mOt khéi c6 tén 1a PID controller lim chite nding mot khdi tich hgp 13 b6 didu khi ty sau: theo ludt PID, Céc trinh ty tao ra khdi chite nang theo trinh Bude 1: Kéo va tha m6t khéi Subsystem trong eita sé SIMULINK, dat tén khoi nay 1a PID Controller Bude 2: ‘dy dung mé hinh bé diéu khién PID téng quat vei ham truyén dang: WPID(s)= P+W/stD.s Cé cau trac so dé nhu hinh vé. Trong dé 3 théng sé P, I, D 1a 3 tham sé can nhap vao Bude 3: déng g6i hé con nay thanh mét khdi riéng bing céch: chon menu Edit > Mask subsystem, xudt hign m6t cita sé Iya chon sau gdm 3 trang: Trang 1: tao ra bidu tong (Icon) cho kh6i bing cach ding cdc Iénh vé trong khung Drawing Commands Vi du: disp(PID’) : hién thi nhan trén biéu tugng khdi. Trang 2: Nhap va khai bio cic bién. (Initialization) Trang 3: Mé ta chite ning Khoi (Documetation) Chite nang khéi duge mé ta bing cdc dng Text yao Block description. Block Help: cdc mé ta khi 4n nit help nhap thong s6 khdi. ‘Trong vi du trén, ta cé 3 tham sé cdn khai bdo (P, I, D). Lan Iugt khai bao timg tham sé trong cdc 6: Prompt va 6 Variable. Sau khi khai bao xong mét bién, chon nat Add dé tao thém bién moi, Cuéi cing, chon OK dé két thiic. Khi dé khéi con tré thanh mét khéi thu vign chite nang voi cdc tham s6 cdn nhp nhw hinh bén phai (khi kich dip chudt vao khdi nay) Khio sit cde mé hinh hé théng trén co sé cac hé théng con théng qua vi du sau: VD: hé théng didu khién téc 46 mét chiéu ding chinh lu Thyristor. 93 OF 8S} ys t i + = ca ao a = = Double ek on he Mae fo button (or etal a Trong dé: khdi h¢ con 1a 6-pulse Converter vi Pulse_ Generator la h¢ con duge xdy dung sin trong thu vign Power System Blocksets. Cé thé xem cdu tric bén trong cla né bing cach xem ché d6 Look under Mask. Khdi 6-pulse converter la subsystem c6 cu trie nhur sau: Hay thanh lép mé hinh nay va chay quan sit két qua? as Yo 94 Vi du: phan tich qua trinh qué 46 hé théng dign, Hay thanh lép mé hinh vi chay mé phéng léy két qui, Cach xay dung mét mé hinh nhur sau: inet Ly oy op ‘s0hm ase canpenien et 2soMv i ¥ sainaer TAI LIEU THAM KHAO, 96 MUC LUC CHUONG 0. MO BAU ERROR! BOOKMARK NOT DE! CHUONG |. TONG QUAN VE MATLAB.. soso 1.1 Cu tric chung va cde Tinh vue tig dung ciia MATLAB... 1.2 Gidi thigu SIMULINK va TOOLBOXS trong MATLAB. CHUONG 2. CAC THAO TAC LAP TRINH TREN MATLAB. 4 2.1 Cée Iénb eo ban quin ly MATLAB. 4 2.1.1 Quan ly Igah va ede him 4 2.1.2 Quin ly bién, khéng gian workspace trén cita s6 Iéah (Command window) ....5 2.1.3. Lam vige véi Files moi trading lm Vike... snneninnesnannnen 5 6 6 6 2.1.4 Cée phim thao téc trén cita s6 dong lgnh 2.2. Divligu, him va c4u tric Ignh trong MATLAB. 2.2.1 Khai nigm dit ligu va bién, 2.2.2 Cie ky higu va cée ton tr. 223 Cac Ifa tueng tée viola (Interactive InpuvOutpu 2.24 — Céc lénh, cdu tric diéu khién chong trinh (Control Flow) 23° Cach viét chong trinh va him dang m-files trong MATLAB 24 Céc bai t§p img dung * CHUONG > HAM TOAN HQC THONG DUNG... 3.1 Cae ham toan hoe eo bin... Cic him xir ly s6 phic: Cie him Iugmg gide va itu ty (thye hign timg phin ti). Cic him lam trén sé, ‘Ce ham xi ly ma trfn va vector Céc thao tde trén dit ligu chudi (STRING) Khai nigm, Cac faim xit ly chudi. ‘Cac ham chuyén déi dit ligu .... Céc thao tae trén dit ligu edu tric. Dir ligu kigu mang edu trie (Cell Array) ‘Cée him giao tigp v6i tép dir ligu (FILES) 3.7 Ce thao va xir ly dd thi. 3.7.1 Cae len xir ly én cia s 3.7.2 Lénhvé trong khéng gien 2-D. 3.73 Lénhvé trong khong gian 3-D ** 3.8. Céc tha tue in dn va hnu tri két qua 3.9 Cie vi du va bai tap *... sen a CHUONG 4. CAC PHUONG PHAP TINH VA UNG DUNG. 4.1 Khai nigm Symbolic va giéi thigu vé Toolbox Symbolic 4.1.1 Khdinigm Symbolic 4.1.2 Cich Khai bio bién symbolic 4.13 Céc him trong Toolbox Symbolic ** 42 Ba thie va ndi suy 42.1 Da thie 4.2.2 — NOisuy va xap xi. ss 43. Tinh vi phan (Differentiation)... 43.1 Viphan sé esssetee ses 43.2 Siedung symbolic. re eonnnnsennene 44 Tinh tich phan (Integration), 44.1 Tich phn sé 44.2 Sirdung Symbolic 97 4.5 Gidi cée phuong trinh va hé phirong trinh, 67 4.5.1. Phuong phap s6 sete ences 67 45.2 Sicdung Symbolic ** 67 46 Gidiphoong via vi phn vi Mf phromg nh vi phn se 69 4.6.1 Phuong phap sé: 69 4.6.2 Sir dung symbolic ** 70 4.7 Cie vi du img dung **.. 2 CHUONG 5. LAP TRINH TRUC QUAN GIAO DIEN NGUOI DUNG (GUL GRAPHIC USER INTERFACE). sh xy dumg cde mit An va menu. Phuong phip sir dung UIMENU va UICONTROL rong phip st dung GUIDE (GUI design. Céch lp trinh trén giao dign GUI. : Phuong tie fp trinh sy kign théng qua truyén tham s6 “Action Khai nigm, . 53.2 M@ts6 him thuimg ding quan ly di tegng. 54 Vi dy img dung CHUONG 6. MO PHONG, THIET KE TRUC QUAN (SIMULINK). 6.1 Téng quan vé SIMULINK. Khoi dng SIMULINK...... Gigi thigu ther vign SIMULINK 6.2 Céch xy dmg m6t chong trinh SIMULINK 6.3. Céch tgo ra thi vign ring (mét subsystem) ti cic kh6i da o 64 Vidu tng dung ** 98

You might also like