Giáo trình Các lệnh MatLab trong điều khiển tự động

pdf 308 trang hapham 2030
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Các lệnh MatLab trong điều khiển tự động", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_cac_lenh_matlab_trong_dieu_khien_tu_dong.pdf

Nội dung text: Giáo trình Các lệnh MatLab trong điều khiển tự động

  1. www.vietsupport.com -Visit - www.dientuvietnam.net
  2. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng GIÔÙI THIEÄU LYÙ THUYEÁT ÑIEÀU KHIEÅN TÖÏ ÑOÄNG Ñieàu khieån töï ñoäng ñoùng vai troø quan troïng trong söï phaùt trieån cuûa khoa hoïc vaø kyõ thuaät. Lónh vöïc naøy höõu hieäu khaép nôi töø heä thoáng phi thuyeàn khoâng gian, heä thoáng ñieàu khieån teân löûa, maùy bay khoâng ngöôøi laùi, ngöôøi maùy, tay maùy trong caùc quy trình saûn xuaát hieän ñaïi, vaø ngay caû trong ñôøi soáng haøng ngaøy: ñieàu khieån nhieät ñoä, ñoä aåm Phaùt minh ñaàu tieân khôûi ñaàu cho vieäc phaùt trieån cuûa lóng vöïc ñieàu khieån töï ñoäng laø boä ñieàu toác ly taâm ñeå ñieàu chænh nhieät ñoä maùy hôi nöôùc cuûa Jame Watt naêm 1874. Caùc coâng trình ñaùng chuù yù trong böôùc ñaàu phaùt trieån lyù thuyeát ñieàu khieån laø cuûa caùc nhaø khoa hoïc Minorsky, Hazen, Nyquist naêm 1922. Minorky thöïc hieän heä thoáng ñieàu khieån töï ñoäng caùc con taøu vaø chöùng minh tính oån ñònh cuûa heä thoáng coù theå ñöôïc xaùc ñònh töø phöông trình vi phaân moâ taû heä thoáng. Naêm 1932, Nyquist ñaõ ñöa ra moät nguyeân taéc töông ñoái ñôn giaûn ñeå xaùc ñònh tính oån ñònh cuûa heä thoáng voøng kìn döïa treân cô sôû ñaùp öùng voøng hôû ñoái vôùi caùc tính hieäu vaøo hình sin ôû traïng thaùi xaùc laäp. Naêm 1934, Hazen ñaõ giôùi thieäu thuaät ngöõ ñieàu chænh cô töï ñoäng (servo mechanism) cho nhöõng heä thoáng ñieàu khieån ñònh vò vaâaø thaûo luaän ñeán vieäc thieát keá heä thoáng relay ñieàu chænh ñoäng cô vôùi ngoõ vaøo tín hieäu thay ñoåi. Trong suoát thaäp nieân 40 cuûa theá kyû 20 phöông phaùp ñaùp öùng taàn soá ñaõ giuùp cjo caùc kyõ sö thieát keá caùc heä thoáng voøng kín tuyeán tính thoûa caùc yeâu caàu chaát löôïng ñieàu khieån. Töø cuoái thaäp nieân 40 cho ñeán ñaàu thaäp nieân 50 phöông phaùp quyõ ñaïo nghieäm cuûa Evan ñöôïc phaùt trieån khaù toaøn veïn. Phöông phaùp quyõ ñaïo nghieäm vaø ñaùp öùng taàn soá ñöôïc xem laø coát loõi cuûa lyù thuyeát ñieàu khieån coå ñieån cho pheùp ta thieát keá ñöôïc nhöõng heä thoáng oån ñònh vaø thoûa caùc chæ tieâu chaát löôïng ñieàu khieån. Nhöõng heä thoáng naøy ñöôïc chaáp nhaän nhöng chöa phaûi laø toái öu, hoaøn thieän nhaát. Cho tôùi cuoái thaäp nieân 50 cuûa theá kyû 20 vieäc thieát keá moät hay nhieàu heä thoáng daàn daàn ñöôïc chuyeån qua vieäc thieát keá moät heä thoáng toái öu vôùi yù nghóa ñaày ñuû hôn. Khi caùc maùy moùc hieän ñaïi ngaøy caøng phöùc taïp hôn vôùi nhioeàu tín hieäu vaøo vaø ra thì vieäc moâ taû heä thoáng ñieàu khieån hieän ñaïi naøy ñoøi hoûi moät löôïng raát lôùn caùc phöông trình. Lyù thuyeát ñieàu khieån coå ñieån lieân quan caùc heä thoáng moät ngoõ vaøo vaø moät ngoõ ra trôû neân baát löïc ñeå phaân tích caùc heä thoáng nhieàu ñaàu vaøo, nhieàu ñaàu ra. Keå töø khoaûng naêm 1960 trôû ñi nhôø maùy tính soácho pheùp ta phaân tích caùc heä thoáng phöùc taïp trong mieàn thôøi gian, lyù thuyeát ñieàu khieån hieän ñaïi phaùt trieån ñeå ñoái phoù vôùi söï phöùc taïp cuûa caùc heä thoáng hieän ñaïi. Lyù thuyeát ñieàu khieån hieän ñaïi döïa treân phaân tích trong mieàn thôùi gian vaø toång hôïp duøng caùc bieán traïng thaùi, cho pheùp giaûi caùc baøi toaùn ñieàu khieån coù caùc yeâu caàu chaët cheõ veà ñoä chính xaùc, troïng löôïng vaø giaù thaønh cuûa caùc heä thoáng trong lónh vöïc kyõ ngheä khoâng gian vaø quaân söï. Söï phaùt trieån gaàn ñaây cuûa lyù thuyeát ñieàu khieån hieän ñaïi laø trong nhieàu lónh vöïc ñieåu khieån toái öu cuûa caùc heä thoáng ngaãu nhieân vaø tieàn ñònh. Hieän nay maùy vi tính ngaøy caøng reõ, goïn nhöng khaû naêng xöû lyù laïi raát maïnh neân noù ñöôïc duøng nhö laø moät phaàn töû trong caùc heä thoáng ñieàu khieån. Nhöõng aùp duïng gaàn ñaây cuûa lyù thuyeát ñieàu khieån hieän ñaïi vaøo ngay caû nhöõng ngaønh kyõ thuaät nhö: sinh hoïc, y hoïc, kinh teá, kinh teá xaõ hoäi. I. NHÖÕNG KHAÙI NIEÄM CÔ BAÛN 1. Ñieàu khieån hoïc (Cybernctics): Thöïc hieän: PHAÏM QUOÁC TR ÖÔØNG - 1 - GVHD: PHAÏMQUANG HUY
  3. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Laø khoa hoïc nghieân cöùu nhöõng quaù trình ñieàu khieån vaø truyeàn thoâng maùy moùc, sinh vaät vaø kinh teá. Ñieàu khieån hoïc mang ñaëc tröng toång quaùt vaø ñöôïc phaân chia thaønh nhieàu lónh vöïc khaùc nhau nhö: toaùn ñieàu khieån, ñieàu khieãn hoïc kyõ thuaät, ñieàu khieån hoïc sinh vaät (phoûng sinh vaät: bionics), ñieàu khieån hoïc kinh teá. 2. Lyù thuyeát ñieàu khieån töï ñoäng: Laø cô sôû lyù thuyeát cuûa ñieàu khieån hoïc kyõ thuaät. Ñieàu khieån töï ñoäng laø thuaät ngöõ chæ quaù trình ñieàu khieån moät ñoái töôïng trong kyõ thuaät maø khoâng coù söï tham gia cuûa con ngöôøi (automatic) noù ngöôïc laïi vôùi quaù trình ñieàu khieån baèng tay (manual). 3. Heä thoáng ñieàu khieån töï ñoäng: Moät heä thoáng ñieàu khieån töï ñoäng bao goàm 3 phaàn chuû yeáu: Thieát bò ñieàu khieån (TBÑK). - Ñoái töôïng ñieàu khieån (ÑTÑK). - Thieát bò ño löôøng. Hình 1.1 laø sô ñoà khoái cuûa heä thoáng ñieàu khieån töï ñoäng. N R C TBÑK ÑTÑK F TBÑL Hình 1.1 Trong ñoù: C: tín hieäu caàn ñieàu khieån, thöôøng goïi laø tín hieäu ra (output). U: tín hieäu ñieàu khieån. R: tín hieäu chuû ñaïo, chuaån, tham chieáu (reference) thöôøng goïi laø tín hieäu vaøo (input). N: tín hieäu nhieãu taùc ñoäng töø beân ngoaøi vaøo heä thoáng. F: tín hieäu hoài tieáp, phaûn hoài (feedback). 4. Heä thoáng ñieàu khieån kín (closed loop control system): Laø heä htoáng ñieàu khieån coù phaûn hoài (feeback) nghóa laø tín hieäu ra ñöôïc ño löôøng vaø ñöa veà thieát bò ñieàu khieån. Tín hieäu hoài tieáp phoái hôïp vôùi tín hieäu vaøo ñeå taïo ra tín hieäu ñieàu khieån. Hình 1.1 chính laø sô ñoà cuûa heä thoáng kín. Cô sôû lyù thuyeát ñeå nghieân cöùu heä thoáng kín chính laø lyù thuyeát ñieàu khieån töï ñoäng. 5. Heä thoáng ñieàu khieån hôû: Ñoái vôùi heä thoáng hôû, khaâu ño löôøng khoâng ñöôïc duøng ñeán. Moïi söï thay ñoåi cuûa tín hieäu ra khoâng ñöôïc phaûn hoài veà thieát bò ñieàu khieån. Sô ñoà hình 1.2 laø heä thoáng ñieàu khieån hôû. R U C TBÑK ÑTÑK Hình 1.2: Heä thoáng ñieàu khieån hôû Thöïc hieän: PHAÏM QUOÁC TR ÖÔØNG - 2 - GVHD: PHAÏMQUANG HUY
  4. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Cô sôû lyù thuyeát ñeå nghieân cöùu heä thoáng hôû laø lyù thuyeát veà relay vaø lyù thuyeát oâtoâmaùt höõu haïn. II. PHAÂN LOAÏI HEÄ THOÁNG ÑIEÀU KHIEÅN TÖÏ ÑOÄNG Heä thoáng ñieàu khieån coù theå phaân loaïi baèng nhieàu caùch khaùc nhau. Sau ñaây laø moät soá phöông phaùp phaân loaïi: 1. Heä tuyeán tính vaø phi tuyeán: Coù theå noùi haàu heát caùc heä thoáng vaät lyù ñeàu laø heä phi tuyeán, coù nghóa laø trong heä thoáng coù ít nhaát moät phaàn töû laø phaàn töû phi tuyeán (quan heä vaøo ra laø quan heä phi tuyeán). Tuy nhieân, neáu phaïm vi thay ñoåi cuûa caùc bieán heä thoáng khoâng lôùn, heä thoáng coù theå ñöôïc tuyeán tính hoùa trong phaïm vi bieán thieân cuûa caùc bieán töông ñoái nhoû. Ñoái vôùi heä tuyeán tính, phöông phaùp xeáp choàng coù theå ñöôïc aùp duïng. 2. Heä baát bieán vaø bieán thieân theo thôøi gian: Heä baát bieán theo thôøi gian (heä döøng) laø heä thoáng coù caùc tham soá khoâng ñoåi (theo thôøi gian). Ñaùp öùng cuûa caùc heä naøy khoâng phuï thuoäc vaøo thôøi ñieåm maø tín hieäu vaøo ñöôïc ñaët vaøo heä thoáng ñieàu khieån phi thuyeàn khoâng gian, vôùi khoái löôïng giaûm theo thôøi gian do tieâu thuï naêng löôïng trong khi bay. 3. Heä lieân tuïc vaø giaùn ñoaïn theo thôøi gian: Trong heä lieân tuïc theo thìi gian, taát caû caùc bieán laø haøm lieân tuïc theo thôøi gian. Coâng cuï phaân tích heä thoáng lieân tuïc laø pheùp bieán ñoåi Laplace hay Fourier. Tronh khi ñoù, heä giaùn ñoaïn laø heä thoáng coù ít nhaát moät tín hieäu laø haøm giaùn ñoaïn theo thôøi gian. Ngöôøi ta phaân bieät heä thoáng giaùn ñoaïn goàm: - Heä thoáng xung: laø heä thoáng maø trong ñoù coù moät phaàn töû xung (khoùa ñoùng ngaét) hay laø tín hieäu ñöôïc laáy maãu (sample) vaø giöõ (hold). (Hình 1.3) e(t) Ñoái töôïng ñieàu khieån r(t) c(t) H G(p) (-) F(p) Hình 1.3: Heä thoáng ñieàu khieån xung. - Heä thoáng soá: laø heä thoáng giaùn ñoaïn trong ñoù tín hieäu ñöôïc maõ hoùa thanh logic 1, 0. Ñoù laø caùc heä thoáng coù caùc khaâu bieán ñoåi töông töï / soá (A/D), soá/ töông töï (D/A) vaø ñeå keát noái keát noái tín hieäu vôùi maùy tính soá. (Hình 1.4) Thöïc hieän: PHAÏM QUOÁC TR ÖÔØNG - 3 - GVHD: PHAÏMQUANG HUY
  5. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Ñoái töôïng ñieàu khieån c(t) MTS D/A G(p) Ngaõ vaøo dang soá G(p) Hình 1.4: Heä thoáng ñieàu khieån soá Coâng cuï ñeå phaân tích heä thoáng giaùn ñoaïn laø pheùp bieán ñoåi Laplace, Fourier giaùn ñoaïn hay pheùp bieán ñoåi Z. 4. Heä ñôn bieán vaø ña bieán: Heä ñôn bieán laø heä chæ coù moät ngoõ vaøo vaø moät ngoõ ra. Coâng cuï ñeå phaân tích vaø toång hôïp heä ñôn bieán laø lyù thuyeát ñieàu khieån coå ñieån. Ví duï: heä ñieàu khieån ñònh vò (vò trí). Heä ña bieán laø heä coù nhieàu ngoõ vaøo vaø nhieàu ngoõ ra. Coâng cuï ñeå phaân tích vaø toång hôïp heä ña bieán laø lyù thuyeàt ñieàu khieån hieän ñaïi döïa treân cô sôû bieåu dieãn heä trong khoâng gian traïng thaùi. Ví duï: heä ñieàu khieån quaù trình (Process Control System) coù theå goàm coù ñieàu khieån nhieät ñoä vaø aùp suaát. 5. Heä thoáng thích nghi vaø heä thoáng khoâng thích nghi: Heä thoáng thích nghi laø heä htoáng hoaït ñoäng theo nguyeân taéc töï chænh ñònh, trong ñoù heä thoáng töï phaùt hieän nhöõng thay ñoåi cuûa caùc tham soá do aûnh höôûng cuûa moâi tröôøng beân ngoaøi vaø thöïc hieän vieäc ñieàu chænh tham soá ñeå ñaït ñöôïc chæ tieâu toái öu ñöôïc ñeà ra. 6. Heä xaùc ñònh (deterministic) vaø heä ngaãu nhieân (stochastic): Moät heä thoáng ñieàu khieån laø xaùc ñònh khi ñaùp öùng ñoái vôùi moät ngoõ vaøo nhaát ñònh coù theå ñöôïc bieát tröôùc (predictable) vaø coù theå laëp laïi ñöôïc (repeatable). Neáu khoâng thoûa maõn 2 ñieàu kieän treân, heä thoáng ñieàu khieån laø ngaãu nhieân. III. NHIEÄM VUÏ CUÛA LYÙ THUYEÁT ÑIEÀU KHIEÅN TÖÏ ÑOÄNG Ñeå khaûo saùt vaø thieát keá moät heä thoáng ñieàu khieån töï ñoäng ngöôøi ta thöïc hieän caùc böôùc sau: a) Döïa treân caùc yeâu caàu thöïc tieãn, caùc moâ hình vaät lyù ta xaây döïng moâ hình toaùn hoïc döïa treân caùc quy luaät, hieän töôïng, quan heä cuûa caùc ñoái töôïng vaät lyù. Moâ hình toaùn hoïc cuûa heä thoáng ñöôïc xaây döïng töø caùc moâ hình toaùn hoïc cuûa caùc phaàn töû rieâng leû. b) Döïa treân lyù thuyeát oån ñònh, ta khaûo saùt tính oån ñònh cuûa heä thoáng. Neáu heä thoáng khoâng oån ñònh ta thay ñoåi ñaëc tính cuûa heä thoáng baèng caùch ñöa vaøo moät khaâu boå chính (compensation) hay thay ñoåi thay ñoåi tham soá cuûa heä ñeå heä thaønh oån ñònh. c) Khaûo saùt chaát löôïng cuûa heä theo caùc chæ tieâu ñeà ra ban ñaàu. Neáu heä khoâng ñaït chæ tieâu chaát löôïng ban ñaàu, ta thöïc hieän boå chính heä thoáng. d) Moâ phoûng heä thoáng treân maùy tính ñeå kieåm tra laïi thieát keá. e) Thöïc hieän moâ hình maãu (prototype) vaø kieåm tra thieát keá baèng thöïc nghieäm. f) Tinh chænh laïi thieát keá ñeå toái öu hoùa chæ tieâu chaát löôïng vaø haï thaáp giaù thaønh neàu coù yeâu caàu. g) Xaây döïng heä thoáng thöïc teá. Thöïc hieän: PHAÏM QUOÁC TR ÖÔØNG - 4 - GVHD: PHAÏMQUANG HUY
  6. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Thöïc hieän: PHAÏM QUOÁC TR ÖÔØNG - 5 - GVHD: PHAÏMQUANG HUY
  7. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng TAÄP LEÄNH CÔ BAÛN CUÛA MATLAB I. LEÄNH CÔ BAÛN Chuù yù: Caùc leänh ñeàu vieát baèng chöõ thöôøng, nhöng vì taùc giaû muoán vieát hoa ñeå ngöôøi xem tieän theo doõi. 1. Leänh ANS a) Coâng duïng: (Purpose) Laø bieán chöùa keát quaû maëc ñònh. b) Giaûi thích: (Description) Khi thöïc hieän moät leänh naøo ñoù maø chöa coù bieán chöùa keát quaû, thì MATLAB laáy bieán Ans laøm bieán chöùa keát quaû ñoù. c) Ví duï: (Examples) 2-1 ans = 1 2. Leänh CLOCK a) Coâng duïng: (Purpose) Thoâng baùo ngaøy giôø hieän taïi. b) Cuù phaùp:(Syntax) c = clock c) Giaûi thích: (Description) Ñeå thoâng baùo deã ñoïc ta duøng haøm fix. d) Ví duï: (Examples) c = clock c = 1.0e+003* 2.0010 0.0040 0.0200 0.0030 0.0420 0.0501 c = fix(clock) c = 2001 4 20 3 43 3 3. Leänh COMPUTER a) Coâng duïng: (Purpose) Cho bieát heä ñieàu haønh cuûa maùy vi tính ñang söû duïng Matlab. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 1 - GVHD: PHAÏM QUANG HUY
  8. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng b) Cuù phaùp: (Syntax) computer [c,m] = computer c) Giaûi thích: (Description) c: chöùa thoâng baùo heä ñieàu haønh cuûa maùy. m: soá phaàn töû cuûa ma traän lôùn nhaát maø maùy coù theå laøm vieäc ñöôïc vôùi Matlab. d) Ví duï: (Examples) » [c,m]=computer c = PCWIN m = 2.1475e+009 4. Leänh DATE a) Coâng duïng: (Purpose) Thoâng baùo ngaøy thaùng naêm hieän taïi b) Cuù phaùp: (Syntax) s = date c) Ví duï: » s=date s = 20-Apr-2001 5. Leänh CD a) Coâng duïng: Chuyeån ñoåi thö muïc laøm vieäc. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 2 - GVHD: PHAÏM QUANG HUY
  9. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng b) Cuù phaùp: cd cd diretory cd c) Giaûi thích: cd: cho bieát thö nuïc hieän haønh. diretory: ñöôøng daãn ñeán thö muïc muoán laøm vieäc. cd chuyeån ñeán thö muïc caáp cao hôn moät baäc. 6. Leänh CLC a) Coâng duïng: Xoùa cöûa soå leänh. b) Cuù phaùp: clc c) Ví duï: clc, for i: 25, home, A = rand(5), end. 7. Leänh CLEAR a) Coâng duïng: Xoùa caùc ñeà muïc trong boä nhôù. b) Cuù phaùp: clear clear name clear name1 name2 name3 clear functions clear variables clear mex clear global clear all c) Giaûi thích: clear: xoùa taát caû caùc bieán khoûi vuøng laøm vieäc. clear name: xoùa caùc bieán hay haøm ñöôïc chæ ra trong name. clear functions: xoùa taát caû caùc haøm trong boä nhô.ù Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 3 - GVHD: PHAÏM QUANG HUY
  10. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng clear variables: xoùa taát caû caùc bieán ra khoûi boä nhôù. clear mex: xoùa taát caû caùc taäp tin .mex ra khoûi boä nhôù. clear: xoùa taát caû caùc bieán chung. clear all: xoùa taát caû caùc bieán, haøm, vaø caùc taäp tin .mex khoûi boä nhôù. Leänh naøy laøm cho boä nhôù troáng hoaøn toaøn. 8. Leänh DELETE a) Coâng duïng: Xoùa taäp tin vaø ñoái töôïng ñoà hoïa. b) Cuù phaùp: delete filename delete (n) c) Giaûi thích: file name: teân taäp tin caàn xoùa. n: bieán chöùa ñoái töôïng ñoà hoïa caàn xoùa. Neáu ñoái töôïng laø moät cöûa soå thì cöûa soå seõ ñoùng laïi vaø bò xoùa. 9. Leänh DEMO a) Coâng duïng: Chaïy chöông trình maëc ñònh cuûa Matlab. b) Cuù phaùp: demo c) Giaûi thích: demo: laø chöông trình coù saün trong trong Matlab, chöông trình naøy minh hoïa moät soá chöùc naêng cuûa Matlab. 10. Leänh DIARY a) Coâng duïng: Löu vuøng thaønh file treân ñóa. b) Cuù phaùp: diary filename c) Giaûi thích: filename: teân cuûa taäp tin. 11. Leänh DIR a) Coâng duïng: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 4 - GVHD: PHAÏM QUANG HUY
  11. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Lieät keâ caùc taäp tin vaø thö muïc. b) Cuù phaùp: dir dir name c) Giaûi thích: dir: lieät keâ caùc taäp tin vaø thö muïc coù trong thö muïc hieän haønh. dir name: ñöôøng daãn ñeán thö muïc caàn lieät keâ. 12. leänh DISP a) Coâng duïng: Trình baøy noäi dung cuûa bieán (x) ra maøn hình b) Cuù phaùp: disp (x) c) giaûi thích: x: laø teân cuûa ma traän hay laø teân cuûa bieán chöùa chuoãi kyù töï, neáu trình baøy tröïc tieáp chuoãi kyù töï thì chuoãi kyù töï ñöôïc ñaët trong daáu ‘’ d) Ví duï: » num=('Matlab') num = Matlab » disp(num) Matlab » num=[2 0 0 1] num = 2 0 0 1 » disp(num) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 5 - GVHD: PHAÏM QUANG HUY
  12. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 2 0 0 1 » num='PHAM QUOC TRUONG' num = PHAM QUOC TRUONG 13. Leänh ECHO a) Coâng duïng: Hieån thò hay khoâng hieån thò doøng leänh ñang thi haønh trong file *.m. b) Cuù phaùp: echo on echo off c) Giaûi thích: on: hieån thò doøng leänh. off: khoâng hieån thò doøng leänh. 14. Leänh FORMAT a) Coâng duïng: Ñònh daïng kieåu hieån thò cuûa caùc con soá. Cuù phaùp Giaûi thích Ví duï Format short Hieån thò 4 con soá 3.1416 sau daáu chaám Format long Hieån thò 14 con soá 3.14159265358979 sau daáu chaám Format rat Hieån thò daïng phaân 355/133 soá cuûa phaàn nguyeân nhoû nhaát Format + Hieån thò soá döông + hay aâm 15. Leänh HELP a) Coâng duïng: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 6 - GVHD: PHAÏM QUANG HUY
  13. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng höôùng daãn caùch söû duïng caùc leänh trong Matlab. b) Cuù phaùp: help help topic c) Giaûi thích: help: hieån thò vaén taét caùc muïc höôùng daãn. topic: teân leänh caàn ñöôïc höôùng daãn. 16. Leänh HOME a) Coâng duïng: Ñem con troû veà ñaàu vuøng laøm vieäc. b) Cuù phaùp: home 17. Leänh LENGTH a) Coâng duïng: Tính chieàu daøi cuûa vectô. b) Cuù phaùp: l = length (x) c) Giaûi thích: l: bieán chöùa chieàu daøi vectô. d) Ví duï: tính chieàu daøi cuûa vectô x. x = [0 1 2 3 4 5 6 7 8 9] l = length (x) l = 10 » x=[01 09 77,20 04 2001 ] x = 1 9 77 20 4 2001 » l=length(x) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 7 - GVHD: PHAÏM QUANG HUY
  14. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng l = 6 18. Leänh LOAD a) Coâng duïng: Naïp file töø ñóa vaøo vuøng laøm vieäc. b) Cuù phaùp: load load filename load filename load finame.extension c) Giaûi thích: load: naïp file matlap.mat load filename: naïp file filename.mat load filename.extension: naïp file filename.extension Taäp tin naøy phaûi laø taäp tin daïng ma traän coù nghóa laø soá coät cuûa haøng döôùi phaûi baèng soá coät cuûa haøng treân. Keát quaû ta ñöôïc moät ma traän coù soá coät vaø haøng chính laø soá coät vaø haøng cuûa taäp tin vaên baûn treân. 19. Leänh LOOKFOR a) Coâng duïng: Hieån thò taát caû caùc leänh coù lieân quan ñeán topic. b) Cuù phaùp: lookfor topic c) Giaûi thích: topic: teân leänh caàn ñöôïc höôùng daãn. 20. Leänh PACK a) Coâng duïng: Saép xeáp laïi boä nhôù trong vuøng laøm vieäc. b) Cuù phaùp: pack pack filename Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 8 - GVHD: PHAÏM QUANG HUY
  15. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng c) Giaûi thích: Neáu nhö khi söû duïng Matlap maùy tính xuaát hieän thoâng baùo “Out of memory” thì leänh pack coù theå tìm thaáy moät soá vuøng nhôù coøn troáng maø khoâng caàn phaûi xoùa bôùt caùc bieán. Leänh pack giaûi phoùng khoâng gian boä nhôù caàn thieát baèng caùch neùn thoâng tin trong vuøng nhôù xuoáng cöïc tieåu. Vì Matlab quaûn lyù boä nhôù baèng phöông phaùp xeáp choàng neân caùc ñoaïn chöông trình Matlab coù theå laøm cho vuøng nhôù bò phaân maûnh. Do ñoù seõ coù nhieàu vuøng nhôù coøn troáng nhöng khoâng ñuû ñeå chöùa caùc bieán lôùn môùi. Leänh pack seõ thöïc hieän: + löu taát caû caùc bieán leân ñóa trong moät taäp tin taïm thôøi laø pack.tmp. + xoùa taát caû caùc bieán vaø haøm coù trong boä nhôù. + laáy laïi caùc bieán töø taäp tin pack.tmp. + xoùa taäp tin taïm thôøi pack.tmp. keát quaû laø trong vuøng nhôù caùc bieán ñöôïc goäp laïi hoaëc neùn laïi toái ña neân khoâng bò laõng phí boä nhôù. Pack.finame cho pheùp choïn teân taäp tin taïm thôøi ñeå chöùa caùc bieán. Neáu khoâng chæ ra teân taäp tin taïm thôøi thì Matlab töï laáy teân taäp tin ñoù laø pack.tmp. Neáu ñaõ duøng leänh pack maø maùy vaãn coøn baùo thieáu boä nhôù thì baét buoäc phaûi xoùa bôùt caùc bieán trong vuøng nhôù ñi. 21. Leänh PATH a) Coâng duïng: Taïo ñöôøng daãn, lieät keâ taát caû caùc ñöôøng daãn ñang coù. b) Cuù phaùp: path p = path path (p) c) Giaûi thích: path: lieät keâ taát caû caùc döôøng daãn ñang coù. p: bieán chöùa ñöôøng daãn. path (p): ñaët ñöôøng daãn môùi. d) Ví duï: ñaët ñöôøng daãn ñeán thö muïc c:\lvtn\matlab p = ‘d:\DA\matlab’; path (p); Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 9 - GVHD: PHAÏM QUANG HUY
  16. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 22. Leänh QUIT a) Coâng duïng: Thoaùt khoûi Matlab. b) Cuù phaùp: quit 23. Leänh SIZE a) Coâng duïng: Cho bieát soá doøng vaø soá coät cuûa moät ma traän. b) Cuù phaùp: d = size (x) [m,n] = size (x) m = size (x,1) n = size (x,2) c) Giaûi thích: x: teân ma traän. d: teân vectô coù 2 phaàn töû, phaàn töû thöù nhaát laø soá doøng, phaàn töû coøn laïi laø soá coät. m,n: bieán m chöùa soá doøng, bieán n chöùa soá coät d) Ví duï: ta coù ma traän a x = 1 2 3 4 5 6 6 8 » x=[1 2 3 4,5 6 7 8] x = 1 2 3 4 5 6 7 8 Caùc baïn chuù yù veà caùch nhaäp 1 ma traän: » x=[1 2 3 4;5 6 7 8] x = Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 10 - GVHD: PHAÏM QUANG HUY
  17. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 1 2 3 4 5 6 7 8 » d=size(x) d = 2 4 » m=size(x,1) m = 2 » n=size(x,2) n = 4 » [m,n]=size(x) m = 2 n = Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 11 - GVHD: PHAÏM QUANG HUY
  18. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 4 24. Leänh TYPE a) Coâng duïng: Hieån thò noäi dung cuûa taäp tin. b) Cuù phaùp: type filename c) Giaûi thích: filename: teân file caàn hieån thò noäi dung. Leänh naøy trình baøy taäp tin ñöôïc chæ ra. 25. Leänh WHAT a) Coâng duïng: Lieät keâ caùc taäp tin *.m, *.mat, *.mex. b) Cuù phaùp: what what dirname c) Giaûi thích: what: lieät keâ teân caùc taäp tin .m, .mat, .mex coù trong thö muïc hieän haønh. dirname: teân thö muïc caàn lieät keâ. 26. Leänh WHICH a) Coâng duïng: Xaùc ñònh chöùc naêng cuûa funname laø haøm cuûa Matlab hay taäp tin. b) Cuù phaùp: which funname c) Giaûi thích: funname: laø teân leänh trong Matlab hay teân taäp tin d) Ví duï: which inv inv is a build-in function which f c:\matlab\bin\f.m 27. Leänh WHO, WHOS Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 12 - GVHD: PHAÏM QUANG HUY
  19. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng a) Coâng duïng: Thoâng tin veà bieán ñang coù trong boä nhôù. b) Cuù phaùp: who whos who global whos global c) Giaûi thích: who: lieät keâ taát caû caùc teân bieán ñang toàn taïi trong boä nhôù. whos: lieät keâ teân bieán, kích thöôùc, soá phaàn töû vaø xeùt caùc phaàn aûo coù khaùc 0 khoâng. who global vaø whos: lieät keâ caùc bieán trong vuøng laøm vieäc chung. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 13 - GVHD: PHAÏM QUANG HUY
  20. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng II. CAÙC TOAÙN TÖÛ VAØ KYÙ TÖÏ ÑAËC BIEÄT 1. Caùc toaùn töû soá hoïc (Arithmetic Operators): Toaùn töû Coâng duïng + Coäng ma traän hoaëc ñaïi löôïng voâ höôùng (caùc ma traän phaûi coù cuøng kích thöôùc). - Tröø ma traän hoaëc ñaïi löôïng voâ höôùng (caùc ma traän phaûi coù cuøng kích thöôùc). * Nhaân ma traän hoaëc ñaïi löôïng voâ höôùng (ma traän 1 phaûi coù soá coät baèng soá haøng cuûa ma traän 2). .* Nhaân töøng phaàn töû cuûa 2 ma traän hoaëc 2 ñaïi löôïng voâ höôùng (caùc ma traän phaûi coù cuøng kích thöôùc). \ Thöïc hieän chia ngöôïc ma traän hoaëc caùc ñaïi löôïng voâ höôùng (A\B töông ñöông vôùi inv (A)*B). .\ Thöïc hieän chia ngöôïc töøng phaàn töû cuûa 2 ma traän hoaëc 2 ñaïi löôïng voâ höôùng (caùc ma traän phaûi coù cuøng kích thöôùc). / Thöïc hieän chia thuaän 2 ma traän hoaëc ñaïi löôïng voâ höôùng (A/B töông ñöông vôùi A*inv(B)). ./ Thöïc hieän chia thuaän töøng phaàn töû cuûa ma traän naøy cho ma traän kia (caùc ma traän phaûi coù cuøng kích thöôùc). ^ Luõy thöøa ma traän hoaëc caùc ñaïi löôïng voâ höôùng. .^ Luõy thöøa töøng phaàn töû ma traän hoaëc ñaïi löôïng voâ höôùng (caùc ma traän phaûi coù cuøng kích thöôùc). * ví duï: Pheùp tính ma traän Pheùp tính maûng 1 4 x 2 y 5 3 6 x’ 1 2 3 y’ 4 5 6 5 -3 x + y 6 x – y -3 7 -3 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 14 - GVHD: PHAÏM QUANG HUY
  21. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 3 -3 x + 2 4 x – 2 -3 5 -3 4 x * y pheùp toaùn sai x. * y 10 18 x’* y 32 x’.* y pheùp toaùn sai 4 5 6 x * y’ 8 10 12 x. * y’ pheùp toaùn sai 12 15 18 2 2 x * 2 4 x.* 2 4 6 6 4 x \ y 16/7 x.\ y 5/2 2 1/2 2 2 \ x 1 2./ x 1 3/2 2/3 0 0 1/6 1/4 x / y 0 0 1/3 x./ y 2/5 0 0 1/2 1/2 1/2 1/2 x / 2 1 x./ 2 1 3/2 3/2 1/2 x ^ y pheùp toaùn sai x.^ y 32 729 1 x ^ 2 pheùp toaùn sai x.^ 2 4 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 15 - GVHD: PHAÏM QUANG HUY
  22. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 9 2 2 ^ x pheùp toaùn sai 2.^ x 4 8 2 Toaùn töû quan heä (Relational Operators): Toaùn töû Coâng duïng So saùnh lôùn hôn. >= So saùnh lôùn hôn hoaëc baèng. =[1 2 3;4 5 6;7 8 9] %so saùnh tröïc tieáp x (x laø 5) vôùi ma traän Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 16 - GVHD: PHAÏM QUANG HUY
  23. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng ans = % roõ raøng caùc phaà töû 1,2,3,4,5 ñeàu =A ans = 1 1 1 1 1 0 0 0 0 » x=A % doøng leänh naøy töùc laø cho x= ma traän A x = Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 17 - GVHD: PHAÏM QUANG HUY
  24. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 1 2 3 4 5 6 7 8 9 » x==A % so saùnh x vaø A ans = % taát caû caùc phaàn töû ñeàu ñuùng 1 1 1 1 1 1 1 1 1 » x=5 % cho laïi x=5 x = 5 » x==A % so saùnh x = A ans = 0 0 0 0 1 0 % chæ duy nhaát phaàn töû 5=x (vì x=5) 0 0 0 » x<A ans = Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 18 - GVHD: PHAÏM QUANG HUY
  25. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 0 0 0 0 0 1 1 1 1 3. Toaùn töû logig (Logical Operators): Toaùn töû Coâng duïng & Thöïc hieän pheùp toaùn logic AND. | Thöïc hieän pheùp toaùn logic OR. ~ Thöïc hieän pheùp toaùn logic NOT. a) Giaûi thích: Keát quaû cuûa pheùp toaùn laø 1 neáu pheùp logic laø ñuùng vaø laø 0 neáu pheùp logic laø sai. Pheùp logic coù cheá ñoä öu tieân thaáp nhaát so vôùi pheùp toaùn soá hoïc vaø pheùp toaùn so saùnh. b) Ví duï: Khi thöïc hieän pheùp toaùn 3>4 & 1+ thì maùy tính seõ thöïc hieän 1+2 ñöôïc 3, sau ñoù tôùi 3>4 ñöôïc 0 roài thöïc hieän 0 & 3 vaø cuoái cuøng ta ñöôïc keát quûa laø 0. 4. Kyù töï ñaëc bieät (Special Characters): Kyù hieäu Coâng duïng [] Khai baùo vector hoaëc ma traän. () Thöïc hieän pheùp toaùn öu tieân, khai baùo caùc bieán vaø caùc chæ soá cuûa vector. = Thöïc hieän pheùp gaùn. ‘ Chuyeån vò ma traän tìm löôïng lieân hieäp cuûa soá phöùc. . Ñieåm chaám thaäp phaân. , Phaân bieät caùc phaàn töû cuûa ma traän vaø caùc ñoái soá trong doøng leänh. ; Ngaên caùch giöõa caùc haøng khi khai baùo ma traän. % Thoâng baùo doøng chuù thích. ! Môû cöûa soå MS – DOS. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 19 - GVHD: PHAÏM QUANG HUY
  26. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 5. daáu ‘:’ a) Coâng duïng: Taïo vector hoaëc ma traän phuï vaø laëp ñi laëp laïi caùc giaù trò. b) Giaûi thích: Khai baùo Coâng duïng j : k Taïo ra chuoãi j, j+1, j+2, ., k-1, k j : i : k Taïo ra chuoãi j, j+i, j+2I, .,k-i, k A(: , j) Chæ coät thöù j cuûa ma traän A A(i , :) Chæ haøng thöù i cuûa ma traän A(: , :) Chæ toaøn boä ma traän A A(j , k) Chæ phaàn töû A(j), A(j+1) A(k) A(: , j , k) Chæ caùc phaàn töû A(:, j), A(:, j+1) A(:, k) A(:) Chæ taát caû caùc thaønh phaàn cuûa ma traän A c) Ví duï: khi khai baùo D = 1 : 10 ta ñöôïc keát quaû: D = 1 2 3 4 5 6 7 8 9 10 coøn khi khai baùo D = 0 : 2 :10 thì ta ñöôïc keát quaû: D = 0 2 4 6 8 10 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 20 - GVHD: PHAÏM QUANG HUY
  27. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng III. CAÙC HAØM LOGIC (LOGICAL FUNCTION) 1. Leänh ALL a) Coâng duïng: Kieåm tra vector hay ma traän coù giaù trò 0 hay khoâng. b) Cuù phaùp: y = all(x) c) Giaûi thích: y: bieán chöùa keát quaû x: teân vedtor hay ma traän y = 1 khi taát caû caùc phaàn töû khaùc 0 y = 0 khi coù 1 phaàn töû baèng 0 d) Ví duï: » a=[1 2 3] a = 1 2 3 » y=all(a) y = 1 » a=[1 0 3] a = 1 0 3 » y=all(a) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 21 - GVHD: PHAÏM QUANG HUY
  28. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng y = 0 » a=[1 2 3;4 0 6;7 8 9] a = 1 2 3 4 0 6 7 8 9 » y=all(a) y = 1 0 1 » a=[1 2 0;0 3 5;2 6 8] a = 1 2 0 0 3 5 2 6 8 » y=all(a) y = Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 22 - GVHD: PHAÏM QUANG HUY
  29. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 0 1 0 2. Leänh ANY a) Coâng duïng: Kieåm tra vector hay ma traän coù giaù trò khaùc 0 hay khoâng. b) Cuù phaùp: y = any(x) c) Giaûi thích: y: bieán chöùa keát quaû. x: teân vector, hay ma traän. y = 1 khi coù 1 phaàn töû khaùc 0. y = 0 khi coù 1 phaàn töû baèng 0. d) Ví duï: » a=[1 2 3]; » y=any(a) y = 1 » b=[1 0 3 0]; » y=any(b) y = 1 » c=[1 2 0 4;0 2 0 4;1 2 3 4;3 4 5 6] c = 1 2 0 4 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 23 - GVHD: PHAÏM QUANG HUY
  30. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 0 2 0 4 1 2 3 4 3 4 5 6 » y=any(c) y = 1 1 1 1 » d=[0 0 0 0;0 1 3 0] d = 0 0 0 0 0 1 3 0 » y=any(d) y = 0 1 1 0 3. Leänh EXIST a) Coâng duïng: Kieåm tra bieán hay file coù toàn taïi hay khoâng. b) Cuù phaùp: e = exist(‘item’) c) Giaûi thích: item: laø teân file hay teân bieán. e: bieán chöùa giaù trò traû veà. e Yù nghóa Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 24 - GVHD: PHAÏM QUANG HUY
  31. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 0 item khoâng toàn taïi trong vuøng laøm vieäc 1 item laø bieán ñang toàn taïi trong vuøng laøm vieäc 2 item ñang toàn taïi treân ñóa (chæ kieåm tra trong thö muïc hieän haønh) 3 item laø MEX-file 4 item laø file ñöôïc dòch töø phaàn meàm Simulink 5 item laø haøm cuûa Matlab d) Ví duï: e = exist(‘dir’) e = 5 4. Leänh FIND a) Coâng duïng: Tìm phaàn töû trong vector hay ma traän theo yeâu caàu. b) Cuù phaùp: k = find(x) [i,j] = find(x) [i,j,s] = find(x) c) Giaûi thích: k: chæ vò trí cuûa phaàn töû caàn tìm trong vector. i,j: chæ soá haøng vaø soá coät töông öùng cuûa phaàn töû caàn tìm. s: chöùa giaù trò cuûa phaàn töû caàn tìm. x: teân vector, ma traän hay laø yeâu caàu ñeà ra. Neáu khoâng neâu ra yeâu caàu thì maëc nhieân laø tìm caùc phaàn töû khaùc 0. d) Ví duï: » x=[1 8 0 2 3 0] x = 1 8 0 2 3 0 » k=find(x) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 25 - GVHD: PHAÏM QUANG HUY
  32. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng k = 1 2 4 5 » k=[3 6] k = 3 6 » a=[5 0 0;8 0 3] a = 5 0 0 8 0 3 » [i,j,k]=find(a) i = 1 2 2 j = 1 1 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 26 - GVHD: PHAÏM QUANG HUY
  33. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 3 k = 5 8 3 IV. NHOÙM LEÄNH LAÄP TRÌNH TRONG MATLAB 1. Leänh EVAL a) Coâng duïng: Chuyeån ñoåi chuoãi kyù töï thaønh bieåu thöùc. b) Cuù phaùp: kq = eval(‘string’) c) Giaûi thích: kq: bieán chöùa keát quaû. Neáu ‘string’ laø caùc kyù soá thì chuyeån thaønh nhöõng con soá. Neáu ‘string’ laø caâu leänh thì chuyeån thaønh caùc leänh thi haønh ñöôïc. d) Ví duï: » a='199999999'; » eval(a)+1 ans = 200000000 2. Leänh FOR a) Coâng duïng: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 27 - GVHD: PHAÏM QUANG HUY
  34. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Duøng ñeå thöïc hieän 1 coâng vieäc caàn laëp ñi laëp laïi theo moät quy luaät, vôùi soá böôùc laëp xaùc ñònh tröôùc. b) Cuù phaùp: for bieán ñieàu khieån = giaù trò ñaàu : giaù trò cuoái, thöïc hieän coâng vieäc; end c) Giaûi thích: Coâng vieäc chính laø caùc leänh caàn thi haønh, coù theå coù nhieàu leänh, keát thuùc leänh phaûi coù daáu; d) Ví duï: In ra maøn hình 5 doøng ‘PHAM QUOC TRUONG chao cac ban’. for i = 1:5, disp(‘PHAM QUOC TRUONG chao cac ban’); end PHAM QUOC TRUONG chao cac ban PHAM QUOC TRUONG chao cac ban PHAM QUOC TRUONG chao cac ban PHAM QUOC TRUONG chao cac ban PHAM QUOC TRUONG chao cac ban 3. Leänh FUNCTION a) Coâng duïng: Taïo theâm haøm môùi. b) Cuù phaùp: function s = n(x) c) Giaûi thích: s: teân bieán chöùa giaù trò traû veà sau khi thi haønh haøm. n: teân gôïi nhôù. d) Ví duï: ( ôû phaàn laäp trong M.file) 4. Leänh INPUT a) Coâng duïng: Duøng ñeå nhaäp vaøo 1 giaù trò. b) Cuù phaùp: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 28 - GVHD: PHAÏM QUANG HUY
  35. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng teân bieán = input (‘promt’) teân bieán = input (‘promt’, ‘s’) c) Giaûi thích: teân bieán, laø nôi löu giaù trò ngaäp vaøo. ‘promt’: chuoãi kyù töï muoán nhaäp vaøo. ‘s’: cho bieát giaù trò nhaäp vaøo laø nhieàu kyù töï. d) Ví duï1: x = input(‘nhaäp giaù trò cuûa bieán x: ’) nhaäp giaù trò cuûa bieán x: 5 x = 5 e) Ví duï2: traû_lôøi = input(‘baïn coù muoán tieáp tuïc khoâng ? ’,’s’) baïn coù muoán tieáp tuïc khoâng ? khoâng traû_lôøi = khoâng 5. Leänh IF ELSEIF ELSE a) Coâng duïng: Thöïc hieän leänh khi thoûa ñieàu kieän. b) Cuù phaùp: if bieåu thöùc luaän lyù 1 thöïc hieän coâng vieäc 1; elseif bieåu thöùc luaän lyù 2 thöïc hieän coâng vieäc 2; else thöïc hieän coâng vieäc 3; end c) Giaûi thích: Khi bieåu thöùc luaän kyù 1 ñuùng thì thöïc hieän coâng vieäc 1 töông töï cho bieåu thöùc luaän lyù 2. Neáu caû hai bieåu thöùc sai thì thöïc hieän coâng vieäc sau leänh else. Bieåu thöùc luaän lyù laø caùc pheùp so saùnh ==, , = coâng vieäc chính laø caùc leänh caàn thi haønh, coù theå coù nhieàu leänh, keát thuùc leänh phaûi coù daáu ; Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 29 - GVHD: PHAÏM QUANG HUY
  36. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng d) Ví duï: Vieát chöông trình nhaäp vaøo 2 soá vaø so saùnh hai soá ñoù. a = input(‘Nhaäp a: ’); b = input(‘Nhaäp b: ’); if a > b disp(‘a lôùn hôn b’); elseif a ==b disp(‘a baèng b’); else disp(‘a nhoû hôn b’); end nhaäp a: 4 nhaäp b: 5 a nhoû hôn b 6. Leänh MENU a) Coâng duïng: Taïo menu ñeå choïn chöùc naêng. b) Cuù phaùp: teân bieán = menu (‘Teân menu’,‘chöùc naêng1’,‘chöùc naêng2’, . , ‘chöùc naêng n’) c) Giaûi thích: teân menu: laø tieâu ñeà cuûa menu. teân bieán: laø nôi caát giaù trò nhaän ñöôïc sau khi choïn chöùc naêng cuûa menu. Chöùc naêng 1, 2, .,n:khi choïn chöùc naêng naøo thì teân bieán coù giaù trò laø soá thöù töï cuûa chöùc naêng ñoù. d) Ví duï: k = menu(‘Choose a color’, ‘Red’, ‘Blue’, ‘Green’) Choose a color 1) Red 2) Blue 3) Green 7. Leänh PAUSE Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 30 - GVHD: PHAÏM QUANG HUY
  37. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng a) Coâng duïng: Döøng chöông trình theo yù muoán. b) Cuù phaùp: pause on pause off pause (n) c) Giaûi thích: pause on: döøng chöông trình, vaø chôø nhaán 1 phím baát kyø (tröø caùc phím ñieàu khieån) chöông trình thöïc hieän tieáp. pause off: taét chöùc naêng pause. pause (n): döøng chöông trình taïi n giaây. d) Ví duï: for n = 1 : 3; disp(‘Press any key to continue ’) pause end Press any key to continue Press any key to continue Press any key to continue 8. Leänh WHILE a) Coâng duïng: Duøng ñeå thöïc hieän 1 coâng vieäc caàn laëp ñi laëp laïi theo moät quy luaät, vôùi soá böôùc laëp khoâng xaùc ñònh, phuï thuoäc vaøo bieåu thöùc luaän lyù. b) Cuù phaùp: while bieåu thöùc luaän lyù thöïc hieän coâng vieäc; end c) Giaûi thích: Bieåu thöùc luaän lyù laø caùc pheùp so saùnh = =, , = Coâng vieäc chính laø caùc leänh caàn thi haønh, coù theå coù nhieàu leänh, keát thuùc leänh phaûi coù daáu ; Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 31 - GVHD: PHAÏM QUANG HUY
  38. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Khi thöïc hieän xong coâng vieäc thì quay leân kieåm tra laïi bieåu thöùc luaän lyù, neáu vaãn coøn ñuùng thì tieáp tuïc thöïc hieän, neáu sai thì keát thuùc. d) Ví duï: tính toång A = 1+1/2+1/3+ +1/n n = input(‘nhaäp vaøo soá n ’); a = 0; i = 1 while i =0) vôùi caùc tröôøng hôïp sau: a) Neáu n 0 vaø leõ thì tính toång s1=1+3+5+ +n,n laø soá leõ. c) Neáu n>0 vaø chaün thì s2=2+4+6+ +n,n chaün. d) Neáu n=0 döøng chöông trình laïi. % BT4a: Viet chuong trinh nhap vao mot so n(n>=0) % voi cac truong hop sau: % a) Neu n 0 va le thi tinh tong s1=1+3+5+ +n,n la so le. % c) Neu n>0 va chan thi s2=2+4+6+ +n,n chan. % d) Neu n=0 dung chuong trinh lai. n=input('nhap n= '); %nhap so n du=rem(n,2); %kiem tra n la le hay chan %neu n le du=1, n chan du=0 if n 0) & (du==1) %neu n>0 va le i=1; %gan i=1; s1=1; %gan tong s1=1 while i<n %thuc hien vong lap i=i+2; %tang i len 2 sau moi lan lap s1=s1+i; %tinh tong s1 voi gia tri i moi end s1 %in ra ket qua sau khi ket thuc vong lap end Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 32 - GVHD: PHAÏM QUANG HUY
  39. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng if (n>0) & (du==0) i=0; s2=0; while i<n i=i+2; s2=s2+i; end s2 end if n==0 %neu n=0 break %lenh ket thuc end Khi chaïy chöông trình: » nhap n= 5 s1 = 9 » BT4a nhap n= 4 s2 = 6 » BT4a nhap n= -6 Ban nhap sai» BT4a nhap n= 0 » Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 33 - GVHD: PHAÏM QUANG HUY
  40. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng V. TAÄP LEÄNH XÖÛ LYÙ CHUOÃI 1. Leänh ABS a) Coâng duïng: Taïo vector ñôn coù giaù trò cuûa moãi phaàn töû laø soá thöù töï töông öùng vôùi kyù töï trong baûng maû ASCII. Laáy trò tuyeät ñoái cuûa moät soá aâm. b) Cuù phaùp: n = ABS(s) x = ABS(a) c) Giaûi thích: n: teân vector. s: chuoãi kyù töï, hoaëc laø teân bieán chöùa chuoãi kyù töï. a: soá aâm, hoaëc laø teân bieán chöùa soá aâm. x: trò tuyeät ñoái cuûa a. d) Ví duï: » n=abs('PHAM QUOC TRUONG') n = Columns 1 through 12 80 72 65 77 32 81 85 79 67 32 84 82 Columns 13 through 16 85 79 78 71 » m=abs('MATLAB') m = Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 34 - GVHD: PHAÏM QUANG HUY
  41. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 77 65 84 76 65 66 » U=abs('abc') U = 97 98 99 » T=abs(-1) T = 1 2. Leänh BLANKS a) Coâng duïng: Taïo khoaûng traéng giöõa hai hay nhieàu chuoãi kyù töï theo mong muoán. b) Cuù phaùp: [S1 BLANKS(b1) S2 BLANKS(b2) BLANKS(bn) Sn] c) Giaûi thích: S1, S2, Sn: caùc chuoãi kyù töï. b1, b2: soá khoaûng traéng. d) Ví duï: In 4 chuoãi ‘Khao sat’,‘öùng duïng’, ‘MATLAB’, ‘trong ñieàu khieån töï ñoäng’ ra maøn hình vôùi khoaûng caùch laàn löôït giöõa 4 chuoãi laø: 2,4,3 » S=['Khao sat'blanks(2) 'ung dung'blanks(4) 'MATLAB'blanks(3) 'trong dieu khien tu dong'] S = Khao sat ung dung MATLAB trong dieu khien tu dong 3. Leänh DEC2HEX a) Coâng duïng: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 35 - GVHD: PHAÏM QUANG HUY
  42. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Ñoåi con soá cuûa heä 10 sang heä 16. b) Cuù phaùp: s = dec2hex(n) c) Giaûi thích: s: bieán chöùa chuoãi kyù soá cuûa heä 16 n: con soá nguyeân heä 10. d) Ví duï: s = dec2hex(10) s = ‘A’ 4. Leänh HEX2DEC a) Coâng duïng: Ñoåi chuoãi kyù soá cuûa heä 16 sang con soá cuûa heä 10. b) Cuù phaùp: n = hex2dec(‘s’) c) Giaûi thích: n: con soá cuûa heä 10. s: chuoãi kyù soá heä 16. d) Ví duï: n = hex2dec(‘A’) n = 10 5. Leänh INT2STR a) Coâng duïng: Chuyeån soá nguyeân sang daïng chuoãi. Chuyeån caùc kyù töï trong moät chuoãi sang soá thöù töï töông öùng trong baûng maõ ASCII. b) Cuù phaùp: kq = INT c) Giaûi thích: kq: bieán STR(n)chöùa keát quaû. n: teân bieán caàn chuyeån. Neáu n laø soá nguyeân thì kq laø chuoãi kyù soá. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 36 - GVHD: PHAÏM QUANG HUY
  43. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Neáu n laø chuoãi kyù töï thì kq laø soá töông öùng trong baûng maõ ASCII d) Ví duï: » n='MATLAB' n = MATLAB » t=int2str(n) t = 77 65 84 76 65 66 » n=2001 n = 2001 » t=int2str(n) t = 2001 6. Leänh ISSTR a) Coâng duïng: Kieåm tra noäi dung bieán coù phaûi laø chuoãi kyù töï khoâng. b) Cuù phaùp: kq = isstr(n) c) Giaûi thích: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 37 - GVHD: PHAÏM QUANG HUY
  44. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng kq: bieán chöùa keát quaû. n: teân bieán caàn kieåm tra. kq = 1 neáu n laø chuoãi kyù töï. 0 neáu n khoâng laø chuoãi kyù töï. d) Ví duï: » n='MATLAB'; » kq=isstr(n) kq = 1 » m=[1 2 3 4]; » kq=isstr(m) kq = 0 7. Leänh LOWER a) Coâng duïng: Cho ra chuoãi kyù töï vieát thöôøng. b) Cuù phaùp: b = lower(s) c) Giaûi thích: b: bieán chöùa keát quaû. s: teân bieán chöùa chuoãi kyù töï hay chuoãi kyù töï. d) Ví duï: » a='DO AN cua pHAm quOC TRuOnG'; » b=lower(a) b = Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 38 - GVHD: PHAÏM QUANG HUY
  45. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng do an cua pham quoc truong 8. Leänh NUM2STR a) Coâng duïng: Chuyeãn soá thöïc sang daïng chuoãi. Chuyeån caùc kyù töï trong moät chuoãi sang soá thöù töï töông öùng trong baûng maõ ASCII. b) Cuù phaùp: kq = num2tr(n) c) Giaûi thích: kq: bieán chöùa keát quaû. n: teân bieán caàn chuyeån. Neáu n laø soá thöïc thì kq laø soá töông öùng trong baûng maõ ASCII. d) Ví duï: » n=3.1416; » kq=num2str(n) kq = 3.1416 9. Leänh SETSTR a) Coâng duïng: Cho ra kyù töï töông öùng vôùi soá thöù töï trong baûng maõ ASCII. b) Cuù phaùp: x = Set Str(n) c) Giaûi thích: x: bieán chöùa kyù töï töông öùng (thuoäc baûng maõ ASCII). n: soá nguyeân (0 ≤ n ≤ 255). d) Ví duï: Tìm kyù töï coù soá thöù töï laø 65 trong baûng maõ ASCII. » kt=setstr(65) kt = Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 39 - GVHD: PHAÏM QUANG HUY
  46. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng A 10. Leänh STR2MAT a) Coâng duïng: Taïo ma traän coù caùc phaàn töû daïng chuoãi. b) Cuù phaùp: s = str2mat(‘s1’, ‘s2’, ) c) Giaûi thích: s: teân ma traän keát quaû. s1, s2: chuoãi kyù töï. d) Ví duï: s = str2mat(‘mat’, ‘lab’) s = mat lab 11. Leänh STR2NUM a) Coâng duïng: Chuyeån chuoãi (daïng soá) sang soá thöïc. b) Cuù phaùp: n = str2num(s) c) Giaûi thích: s: chuoãi daïng soá. n: soá thöïc. d) Ví duï: n = str2num(‘456456’) n = 456456 12. Leänh STRCMP a) Coâng duïng: So saùnh 2 chuoãi kyù töï. b) Cuù phaùp: l = strcmp(s1, s2) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 40 - GVHD: PHAÏM QUANG HUY
  47. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng c) Giaûi thích: l: bieán chöùa keát quaû. s1, s2: chuoãi caàn so saùnh. d) Ví duï: a = ‘MatLab WoRkS’ b = ‘MatLab WoRkS’ strcmp(a,b) ans = 1 13. Leänh UPPER a) Coâng duïng: Cho ra chuoãi vieát hoa. b) Cuù phaùp: b = upper c) Giaûi thích: b: bieán chöùa keát quaû. s: teân bieán chöùa chuoãi kyù töï. d) Ví duï: a = ‘MaTlab WORks’ b = upper(a) b = MATLAB b = upper(‘MaTlab WORks’) b= MATLAB WORKS VI. CAÙC HAØM GIAO TIEÁP 1. Leänh FCLOSE a) Coâng duïng: Ñoùng file ñang môû sau khi truy xuaát xong. b) Cuù phaùp: fclose(fid) c) Giaûi thích: fid: teân bieán troû ñeán file ñang môû. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 41 - GVHD: PHAÏM QUANG HUY
  48. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 2. Leänh FOPEN a) Coâng duïng: Môû file hoaëc truy xuaát döõ lieäu cuûa file ñang môû. b) Cuù phaùp: fid = fopen(‘fn’) fid = fopen(‘fn’, ‘p’) c) Giaûi thích: fid: teân bieán troû ñeán file ñang môû. fn: teân file (coù theå ñaët ñöôøng daãn). Tham soá p coù caùc ñònh daïng sau: ‘r’: chæ ñoïc. ‘r+’: ñoïc vaø ghi. ‘w’: xoùa taát caû noäi dung cuûa file hoaëc taïo 1 file môùi vaø môû file ñoù ñeå ghi. ‘w+’: xoùa taát caû noäi dung cuûa file hoaëc taïo 1 file môùi vaø môû file ñoù ñeå ghi vaø ñoïc. 3. Leänh FPRINTF a) Coâng duïng: Ghi ñoaïn döõ lieäu thaønh file. b) Cuù phaùp: fprintf(fid, f) c) Giaûi thích: fid: teân bieán troû ñeán file caàn ghi. f: caùc tham soá ñeå ñònh daïng. d) Ví duï: Taïo file exp.txt coù noäi dung: x = 0:2:10; y = [x, x/2]; fid = fopen(‘exp.txt’, ‘w’); fprintf(fid, ‘%d’, [2, inf]); Gaùn file exp.txt vaø bieán a ñeå xem noäi dung: fid = fopen(‘exp.txt’) a = fscanf(fid, ‘%d’, [2,inf]); Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 42 - GVHD: PHAÏM QUANG HUY
  49. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng disp(a); fclose(fid); Keát quaû 0 2 4 6 8 10 0 1 2 3 4 5 4. Leänh FREAD a) Coâng duïng: Ñoïc döõ lieäu daïng nhò phaân töø file. b) Cuù phaùp: [a, c] =fscanf(fid) [a, c] = fscanf(fid,s) c) Giaûi thích: a: teân bieán chöùa döõ lieäc ñöôïc ñoïc vaøo. c: soá phaàn töû ñöôïc ñoïc vaøo. fid: teân bieán troû ñeán file caàn ñoïc. s: kích thöôùc döõ lieäu ñoïc vaøo. s ñöôïc ñònh daïng bôûi caùc thoâng soá: n: chæ ñoïc n phaàn töû vaøo coät vector a. inf: ñoïc ñeán heát file. [m,n]: chæ ñoïc vaøo m coät vaø n haøng, n coù theå baèng inf coøn m thì khoâng. d) Ví duï1: file vd.txt coù noäi dung: A B C 1 2 3 fid = fopen(vd.txt’); [a,c] = fread(fid); disp(a); disp(c); a = 65 32 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 43 - GVHD: PHAÏM QUANG HUY
  50. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 66 32 67 13 10 49 32 50 32 51 c = 12 e) Ví duï2 fid = fopen(‘vd1.txt’); [a,c] = fread(fid, 4); disp(a); disp(c); a= 65 32 66 32 c = 4 f) Ví duï 3: file vd3.txt coù noäi dung ABCDE FGHIJ KLMNO fid = fopen(‘vd3.txt’); [a,c] = fread(fid, [7, inf]); Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 44 - GVHD: PHAÏM QUANG HUY
  51. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng disp(a); disp(c); a = 65 70 75 66 71 76 67 72 76 68 73 78 69 74 79 13 13 13 10 10 10 c = 21 a’= 65 66 67 68 69 13 10 70 71 72 73 74 13 10 75 76 77 78 79 13 10 5. Leänh FWRITE a) Coâng duïng: Ghi ñoaïn döõ lieäu daïng nhò phaân thaønh file. b) Cuù phaùp: fwrite (fid,a) c) Giaûi thích: fid: teân bieán troû ñeán file caàn ghi. a: teân bieán chöùa döõ lieäu. d) Ví duï: Ghi ñoaïn döõ lieäu cuûa bieán a thaønh file a.txt a = [65 66 67] fid = fopen(‘a.txt’, ‘w’); fwrite(fid, ‘%’); fwite(fid,a); Gaùn file a.txt vaøo bieán b ñeå xem noäi dung Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 45 - GVHD: PHAÏM QUANG HUY
  52. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng fid = fopen(‘a.txt’); b = fscanf(fid, ‘%’); disp(b); fclose(fid); Keát quaû b = ABC 6. Leänh SPRINTF a) Coâng duïng: Hieån thò thoâng tin leân maøn hình. b) Cuù phaùp: s = sprintf(‘ts’,ds) c) Giaûi thích: s: bieán chöùa chuoãi soá hieån thò treân maøn hình. ts: caùc tham soá ñònh daïng. ds: danh saùch caùc ñoái soá. Tham soá ñònh daïng thuoäc 1 trong 2 kieåu sau: (1) Chuoãi kyù töï: chuoãi naøy seõ ñöôïc hieån thò leân maøn hình gioáng heät nhö ñöôïc vieát trong caâu leänh. (2) Chuoãi caùc tham soá ñònh daïng: caùc chuoãi naøy seõ khoâng ñöôïc hieån thò leân maøn hình, nhöng taùc duïng ñieàu khieån vieäc chuyeån ñoåi vaø caùch hieån thò caùc ñoái soá ñöôïc ñöa ra trong danh saùch caùc ñoái soá. Ví duï caùc tham soá ñònh daïng: 1) %d: ñoái soá laø soá nguyeân ñöôïc vieát döôùi daïng thaäp phaân. s = sprintf(‘Ñaây laø soá: %d’,-24) s = Ñaây laø soá: -2 2) %u: ñoái soá laø soá nguyeân ñöôïc vieát döôùi daïng thaäp phaân khoâng daáu. s = sprintf(‘Ñaây laø soá: %u’,24) s = Ñaây laø soá: 24 3) %o: ñoái soá laø soá nguyeân ñöôïc vieát döôùi daïng cô soá 8 khoâng daáu. s = sprintf(‘Ñaây laø soá: %o’,9) s = Ñaây laø soá: 11 4) %x: ñoái soá laø soá nguyeân ñöôïc vieát döôùi daïng cô soá 16. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 46 - GVHD: PHAÏM QUANG HUY
  53. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng s = sprintf(‘Ñaây laø soá: %x’,255) s = Ñaây laø soá:ff 5) %f: ñoái soá laø soá nguyeân ñöôïc vieát döôùi daïng cp soá 10. s = sprintf(‘Ñaây laø soá: %f’,2550 s = Ñaây laø soá: 255.000000 Ñeå ñònh daïng phaàn thaäp phaân thì theâm vaøo con soá chöùa soá thaäp phaân caàn laáy. s = sprintf(‘Ñaây laø soá: %.3f’, 2.5568) s = Ñaây laø soá: 2.557 6) %c: ñoái soá laø 1 kyù töï rieâng ñaëc bieät. s = sprintf(‘Ñaây laø chöõ: %c’,’M’) s = Ñaây laø chöõ: M 7)%s: ñoái soá laø chuoãi kyù töï. s = sprintf(‘Ñaây laø chuoãi: %s’, ‘Matlab’) s = Ñaây laø chuoãi: Matlab 8. Leänh SSCANF a) Coâng duïng: Ñoïc chuoãi kyù töï vaø ñònh daïng laïi chuoãi kyù töï ñoù. b) Cuù phaùp: [a,count] = sscanf(s, ‘format’, size) c) Giaûi thích: a: teân bieán chöùa chuoãi kyù töï sau khi ñöôïc ñònh daïng. count: ñeám soá phaàn töû ñöôïc ñoïc vaøo. size: kích thöôùc seõ ñöôïc ñoïc vaøo. format: phaàn ñònh daïng gioáng nhö leänh sprintf. d) Ví duï: s = ‘3.12 1.2 0.23 2.56’; [a, count] = sscanf(s, ‘%f’,3) a = 3.1200 1.2000 0.2300 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 47 - GVHD: PHAÏM QUANG HUY
  54. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng count = 3 VII. CAÙC HAØM TOAÙN HOÏC CÔ BAÛN 1. Moät soá haøm löôïng giaùc: a) Cuù phaùp: kq = hlg(x) b) Giaûi thích: kq: teân bieán chöùa keát quaû. x: ñôn vò radian. hlg: teân haøm löôïng giaùc. Teân haøm löôïng giaùc Giaûi thích sin Tính giaù trò sine cos Tính giaù trò cosine tan Tính giaù trò tangent asin Nghòch ñaûo cuûa sine atan Nghòch ñaûo cuûa tangent sinh Tính giaù trò hyperbolic sine cosh Tính giaù trò hyperbolic cosine tanh Tính gía trò hyperbolic tangent 2. Leänh ANGLE a) Coâng duïng: Tính goùc pha cuûa soá phöùc. b) Cuù phaùp: p = angle(z) c) Giaûi thích: p: teân bieán chöùa keát quaû, ñôn vò radians z: soá phöùc d) Ví duï: z = i-3j Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 48 - GVHD: PHAÏM QUANG HUY
  55. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng z = 0 – 2.0000i p = angle(z) p = -1.5708 3. Leänh CEIL a) Coâng duïng: Laøm troøn soá veà phía soá nguyeân lôùn hôn. b) Cuù phaùp: y = ceil(x) c) Giaûi thích: y: soá sau khi ñöôïc laøm troøn. x: soá caàn ñöôïc laøm troøn. d) Ví duï: x = -1.9000 -0.2000 3.4000 5.6000 7.0000 y = ceil(x) y = -1 0 4 6 7 4. Leänh CONJ a) Coâng duïng: Tính löôïng lieân hieäp cuûa soá phöùc. b) Cuù phaùp: y = conj(z) c) Giaûi thích: y: teân bieán chöùa löôïng lieân hieäp z: soá phöùc d) Ví duï: z = -3i + 2j z = 0 – 1.0000i y = conj(z) y = 0 + 1.0000i 5. Leänh EXP a) Coâng duïng: Tính giaù trò ex. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 49 - GVHD: PHAÏM QUANG HUY
  56. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng b) Cuù phaùp: y = exp(x) c) Ví duï: y = exp(x) y = 20.0855 6. Leänh FIX a) Coâng duïng: Laøm troøn soá veà phía zero. b) Cuù phaùp: y = fix(x) c) Giaûi thích: y: soá sau khi ñöôïc laøm troøn. x: soá caàn ñöôïc laøm troøn. d) Ví duï: x = -1.9000 -0.2000 3.4000 5.6000 7.0000 y = fix(x) y = -1 0 3 5 7 7. Leänh FLOOR a) Coâng duïng: Laøm troøn soá veà phía soá nguyeân nhoû hôn. b) Cuù phaùp: y = floor(x) c) Giaûi thích: y: soá sau khi ñöôïc laøm troøn . x: soá caàn ñöôïc laøm troøn d) Ví duï: x = -1.9000 -0.2000 3.4000 5.6000 7.0000 y = floor(x) y = -2 -1 3 5 7 8. Leänh IMAG a) Coâng duïng: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 50 - GVHD: PHAÏM QUANG HUY
  57. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Laáy phaàn aûo cuûa soá phöùc. b) Cuù phaùp: y = imag(z) c) Ví duï: y = imag(2 + 3j) y = 3 9. Leänh LOG a) Coâng duïng: Tìm logarithm cô soá e. b) Cuù phaùp: y = log(x) d) Ví duï: y = log(2.718) y = 0.9999 10. Leänh LOG2 a) Coâng duïng: Tìm logarithm cô soá 2. b) Cuù phaùp: y = log2(x) d) Ví duï: y = log2(2) y = 1 11. Leänh LOG10 a) Coâng duïng: Tìm logarithm cô soá 10. b) Cuù phaùp: y = log10(x) d) Ví duï: y = log10(10) y = 1 12. Leänh REAL Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 51 - GVHD: PHAÏM QUANG HUY
  58. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng a) Coâng duïng: Laáy phaàn thöïc cuûa soá phöùc. b) Cuù phaùp: y = real(z) d) Ví duï: y = real(1 + 3j) y = 2 13. Leänh REM a) Coâng duïng: Cho phaàn dö cuûa pheùp chia. b) Cuù phaùp: r = rem(a,b) c) Giaûi thích: r: bieán chöùa keát quaû a, b: soá chia vaø soá bò chia d) Ví duï: r = rem(16, 3) r = 1 14. Leänh ROUND a) Coâng duïng: Laøm troøn soá sao cho gaàn soá nguyeân nhaát. b) Cuù phaùp: y = round(x) c) Ví duï: x = -1.9000 -0.2000 3.4000 5.6000 7.0000 y = round(x) y= -2 0 3 6 7 Baûng so saùnh cuûa caùc pheùp laøm troøn soá X -1.9000 -0.2000 3.4000 5.6000 7.0000 ceil(x) -1 0 4 6 7 floor(x) -2 -1 3 5 7 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 52 - GVHD: PHAÏM QUANG HUY
  59. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng fix(x) -1 0 3 5 7 round(x) -2 0 3 6 7 15. Leänh SIGN a) Coâng duïng: Xeùt daáu soá thöïc. b) Cuù phaùp: y = sign(x) c) Giaûi thích: x: soá thöïc caàn xeùt daáu. y: keát quaû traû veà. y x 0 soá 0 1 soá döông -1 soá aâm d) Ví duï: x = 2 0 -3 0.5 y = sugn(x) y= 1 0 -1 1 16. Leänh SQRT a) Coâng duïng: Tính caên baäc hai. b) Cuù phaùp: y = sqrt(x) c) Ví duï: x = 4 y = sqrt(x) y = 2 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 53 - GVHD: PHAÏM QUANG HUY
  60. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng VIII. TAÄP LEÄNH THAO TAÙC TREÂN MA TRAÄN 1. Coäng, tröø, nhaân, chia töøng phaàn töû cuûa ma traän vôùi haèng soá a) Cuù phaùp: Ma traän keát quaû = ma traän [+] [-] [.] [/] haèng soá. b) Ví duï: a = 1 2 3 4 5 6 7 8 9 Coäng ma traän a vôùi 2 keát quaû laø ma traän b b = a + 2 b = 3 4 5 6 7 8 9 10 11 töông töï cho caùc pheùp tính tröø, nhaân vaø chia. 2. Leänh DET a) Coâng duïng: Duøng ñeå tính ñònh thöùc cuûa ma traän. b) Ví duï: Tính ñònh thöùc cuûa ma traän a a = 1 4 5 6 det(a) ans = -8 3. Leänh DIAG a) Coâng duïng: Taïo ma traän môùi vaø xöû lyù ñöôøng cheùo theo quy öôùc. b) Cuù phaùp: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 54 - GVHD: PHAÏM QUANG HUY
  61. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng v = diag(x) v = diag(x,k) c) Giaûi thích: x: laø vector coù n phaàn töû. v: laø ma traän ñöôïc taïo ra töø x theo quy taéc: soá haøng baèng soá coät vaø caùc phaàn töû cuûa x naèm treân ñöôøng cheùo cuûa v. k: tham soá ñònh daïng cho v, soá haøng vaø coät cuûa v = n + abs(k). Neáu k = 0 ñöôøng cheùo cuûa v chính laø caùc phaàn töû cuûa x Neáu k > 0 caùc phaàn töû cuûa x naèm phía treân ñöôøng cheùo v Neáu k < 0 caùc phaàn töû cuûa x naèm phía döôùi ñöôøng cheùo v d) Ví duï: x = 2 1 9 5 4 v = diag(x) v = 2 0 0 0 0 0 1 0 0 0 0 0 9 0 0 0 0 0 0 4 v = diag(x,2) v = 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v = diag(x,0) v = 2 0 0 0 0 0 1 0 0 0 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 55 - GVHD: PHAÏM QUANG HUY
  62. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 0 0 9 0 0 0 0 0 5 0 0 0 0 0 4 v = diag(x,-2) v = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 4 0 0 4. Leänh EYE a) Coâng duïng: Taïo ma traän ñôn vò. b) Cuù phaùp: y = eye(n) y = eye(n,m) c) Giaûi thích: n: taïo ma traän coù n haøng, n coät. m, n: taïo ma traän coù m haøng, n coät. d) Ví duï: y = eye(3) y = 1 0 0 0 1 0 0 0 1 y = eye(3,5) y = 1 0 0 0 0 0 1 0 0 0 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 56 - GVHD: PHAÏM QUANG HUY
  63. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 0 0 1 0 0 5. Leänh FLIPLR a) Coâng duïng: Chuyeån caùc phaàn töû cuûa caùc ma traän theo thöù töï coät ngöôïc laïi. b) Cuù phaùp: b = fliplr(a) c) Giaûi thích: b: teân ma traän ñöôïc chuyeån ñoåi. a: teân ma traän caàn chuyeån ñoåi. d) Ví duï: a = 0 1 2 3 4 5 6 7 8 9 b = fliplr(a) 4 3 2 1 0 9 8 7 6 5 6. Leänh FLIPUD a) Coâng duïng: Chuyeån caùc phaàn töû cuûa ma traän theo thöù töï haøng ngöôïc laïi. b) Cuù phaùp: b = flipud(a) c) Giaûi thích: b: teân ma traän ñöôïc chuyeån ñoåi. a: teân ma traän caàn chuyeån ñoåi. d) Ví duï: a = 1 4 2 5 3 6 b = flipud(a) b = Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 57 - GVHD: PHAÏM QUANG HUY
  64. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 3 6 2 5 1 4 7. Leänh INV a) Coâng duïng: Tìm ma traän nghòch ñaûo. b) Cuù phaùp: Ma traän nghòch ñaûo = inv (ma traän) c) Ví duï: Tìm ma traän nghòch ñaûo cuûa a. a = 1 2 0 2 5 -1 4 10 -1 b = inv(a) b = 5 2 -2 -2 -1 1 0 -2 1 8. Leänh taïo ma traän a) Coâng duïng: Duøng ñeå taïo 1 ma traän goàm coù n haøng vaø m coät. b) Cuù phaùp: Teân ma traän = [a11 a12 a1m ; a21 a22 a2m ; ; ] c) Giaûi thích: a11, a12, a1m laø caùc giaù trò taïi haøng 1 coät 1 ñeán caùc giaù trò taïi haøng 1 coät m, coù n daáu (;) laø coù n haøng. d) Ví duï: Taïo ma traän goàm 3 haøng vaø 3 coät vôùi giaù trò laø 1 2 3 4 5 6 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 58 - GVHD: PHAÏM QUANG HUY
  65. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 1 0 0 a = [1 2 3; 4 5 6; 1 0 0] a = 1 2 3 4 5 6 1 0 0 9. Leänh taïo vector ñôn a) Coâng duïng: Leänh naøy duøng ñeå taïo 1 vector ñôn goàm coù n phaàn töû. b) Cuù phaùp 1: Teân vector = [pt1 pt2 pt3 ptn] c) Giaûi thích: pt1 pt2 ptn: laø caùc soá thöïc. d) Ví duï: Taïo vector a goàm coù 4 phaàn töû, vôùi caùc giaù trò laø:1, 3, 7, 4 a = [1 3 7 4] a = 1 3 7 4 e) Cuù phaùp 2: Teân vector = gtñ:csc:gtkt f) Giaûi thích: gtñ: laø giaù trò baét ñaàu cuûa vector. csc: caáp soá coäng. gtkt: giaù trò keát thuùc. g) Ví duï: Taïo vector a coù giaù trò baét ñaàu 0.2, giaù trò keát thuùc pi/2 (= 1.5708), caáp soá coäng 0,3. a = 0.2;0.3;pi/2 a = 0.2000 0.5000 0.8000 1.1000 1.4000 10. Leänh LINSPACE a) Coâng duïng: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 59 - GVHD: PHAÏM QUANG HUY
  66. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Taïo vector coù giaù trò ngaãu nhieân giôùi haïn trong khoaûng ñònh tröôùc. b) Cuù phaùp: y = linspace(x1, x2) y = linspace(x1, x2, n) c) Giaûi thích: y: teân cuûa vector. x1, x2: giôùi haïn giaù trò lôùn nhaát vaø nhoû nhaát cuûa vector y. n: soá phaàn töû cuûa vector y. Neáu khoâng coù giaù trò n thì maëc ñònh n = 100. d) Ví duï: y = linspace(1, 10, 7) y = 1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000 11. Ma traän chuyeån vò a) Coâng duïng: Ma traän chuyeån vò = ma traän ñang coù. b) Cuù phaùp: Taïo 1 ma traän chuyeån vò töø 1 ma traän ñang coù. c) Ví duï: a = 1 2 3 4 5 6 7 8 9 ma traän chuyeån vò b b = a’ b = 4 7 5 8 6 9 12. Leänh MAGIC a) Coâng duïng: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 60 - GVHD: PHAÏM QUANG HUY
  67. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Taïo 1 ma traän vuoâng coù toång cuûa caùc phaàn töû trong 1 haøng, 1 coät hoaëc treân ñöôøng cheùo baèng nhau. b) Cuù phaùp: Teân ma traän = magic(n) c) Giaûi thích: n: kích thöôùc ma traän. Giaù trò cuûa moãi phaàn töû trong ma traän laø moät daõy soá nguyeân lieân tuïc töø 1 ñeán 2n. Toång caùc haøng, coät vaø caùc ñöôøng cheùo ñeàu baèng nhau. d) Ví duï: tmt = magic(3) tmt = 8 1 6 3 5 7 4 9 2 13. Nhaân ma traän a) Coâng duïng: Ma traän keát quaû = ma traän 1* ma traän 2. b) Ví duï: Ta coù 2 ma traän a vaø b nhö treân vaø c laø ma traän keát quaû c = a*b c = 14 32 50 32 77 122 50 122 194 14. Leänh ONES a) Coâng duïng: Taïo ma traän maø giaù trò cuûa caùc phaàn töû laø 1. b) Cuù phaùp: y = ones(n) y = ones(m,n) c) Giaûi thích: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 61 - GVHD: PHAÏM QUANG HUY
  68. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng y = teân ma traän. n: taïo ma traän coù n haøng m, n: taïo ma traän coù m haøng, n coät. d) Ví duï: y = ones(3) y = 1 1 1 1 1 1 1 1 1 y = ones(3,5) y = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15. Leänh PASCAL a) Coâng duïng: Taïo ma traän theo quy luaän tam giaùc Pascal. b) Cuù phaùp: pascal (n) c) Giaûi thích: n: laø soá haøng (coät) d) Ví duï: pascal(4) ans = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 16. Leänh RAND a) Coâng duïng: Taïo ma traän maø keát maø giaù trò cuûa caùc phaàn töû laø ngaãu nhieân. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 62 - GVHD: PHAÏM QUANG HUY
  69. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng b) Cuù phaùp: y = rand(n) y = rand(m,n) c) Giaûi thích: y: teân ma traän. n: taïo ma traän coù n haøng, n coät. m, n: taïo ma traän coù m haøng, n coät. Giaù trò cuûa caùc phaàn töû naèm trong khoaûng [0 1] d) Ví duï: y = rand(3) y = 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. Leänh RESHAPE a) Coâng duïng: Ñònh daïng laïi kích thöôùc ma traän. b) Cuù phaùp: b = reshape(a,m,n) c) Giaûi thích: b: ma traän ñöôïc ñònh daïng laïi. a: ma traän caàn ñöôïc ñònh daïng. m, n: soá haøng vaø soá coät cuûa b. Ma traän a phaûi coù soá phaàn töû laø: m*n. d) Ví duï: a = Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 63 - GVHD: PHAÏM QUANG HUY
  70. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 1 4 7 10 2 5 8 11 3 6 9 12 b = reshape(a,2,6) b = 1 3 5 7 9 11 2 4 6 8 10 12 18. Leänh ROT90 a) Coâng duïng: Xoay ma traän 900. b) Cuù phaùp: b = rot90(a) c) Giaûi thích: b: ma traän ñaõ ñöôïc xoay 900 a: ma traän caàn xoay. d) Ví duï: a = 1 2 3 4 5 6 7 8 9 b = rot90(a) b = 3 6 9 2 5 8 1 4 7 19. Leänh TRACE a) Coâng duïng: Tính toång caùc phaàn töû cuûa ñöôøng cheùo ma traän. b) Cuù phaùp: d = trace(a) c) Giaûi thích: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 64 - GVHD: PHAÏM QUANG HUY
  71. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng d: bieán chöùa keát quaû. a: teân ma traän. d) Ví duï: a = 2 8 3 4 7 1 6 9 2 d = trace(a) d = 11 20. Leänh TRIL a) Coâng duïng: Laáy phaân nöûa döôùi ma traän theo hình. b) Cuù phaùp: I = tril(x) I = tril(x,k) c) Giaûi thích: I: teân ma traän keát quaû. k: tham soá. Neáu k = o laáy töø ñöôøng cheùo trôû xuoáng. Neáu k = n laáy töø ñöôøng cheùo trôû leân n ñôn vò. Neáu k = -n laáy töø ñöôøng cheùo trôû xuoáng n ñôn vò. d) Ví duï: a = 5 9 13 6 10 14 7 11 15 8 12 16 i = tril(a) i = 1 0 0 0 2 6 0 0 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 65 - GVHD: PHAÏM QUANG HUY
  72. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 3 7 11 15 4 8 12 16 i = tril(a,0) i = 1 0 0 0 2 6 0 0 3 7 11 0 4 8 12 16 i = tril(a,1) i = 1 5 0 0 2 6 10 0 3 7 11 15 4 8 12 16 i = tril(a,-1) i = 0 0 0 0 2 0 0 0 3 7 0 0 4 8 12 0 21. Leänh TRIU a) Coâng duïng: Laáy phaân nöûa treân ma traän theo hình tam giaùc. b) Cuù phaùp: I = triu(x) I = triu(x,k) c) Giaûi thích: I: teân ma traän keát quûa. k: tham soá Neáu k = 0 laáy töø ñöôøng cheùo trôû leân. Neáu k = n laáy töø ñöôøng cheùo trôû xuoáng n ñôn vò. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 66 - GVHD: PHAÏM QUANG HUY
  73. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Neáu k = -n laáy töø ñöôøng cheùo trôû leân n ñôn vò. d) Ví duï: a = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 I = triu(a) I = 1 5 9 13 0 6 10 14 0 0 11 15 0 0 0 16 I = triu(a,0) I = 1 5 9 13 0 6 10 14 0 0 11 15 0 0 0 16 I = triu(a,-1) I = 1 5 9 13 2 6 10 14 0 7 11 15 0 0 12 16 I = triu(a,1) I = 0 5 9 13 0 0 10 14 0 0 0 15 0 0 0 0 22. Leänh ZEROS Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 67 - GVHD: PHAÏM QUANG HUY
  74. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng a) Coâng duïng: Taïo ma traän maø giaù trò cuûa caùc phaàn töû b) Cuù phaùp: y = zeros(n) y = zeros(m,n) c) Giaûi thích: y: teân ma traän. n: taïo ma traän coù n haøng vaø n coät. m, n: taïo ma traän coù m haøng, n coät. d) Ví duï: y = zeros(3) y = 0 0 0 0 0 0 0 0 0 y = zeros(3,7) y = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IX. CAÙC PHEÙP TÍNH ÑAÏI SOÁ 1. Leänh CONV a) Coâng duïng: Nhaân hai ña thöùc. b) Cuù phaùp: c = conv(a,b) c) Giaûi thích: a,b: ña thöùc c: tích soá cuûa a,b Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 68 - GVHD: PHAÏM QUANG HUY
  75. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Caùch khai baùo: saép xeáp bieán theo thöù töï giaûm daàn cuûa luõy thöøa. d) Ví duï: Nhaân hai ña thöùc (3x2+4x+5).(2x3-3x2+2) a = [0 3 4 5] a = 0 3 4 5 b = [2 -3 0 2] b =2 -3 0 2 c = conv(a,b) c = 0 6 -1 -2 -9 8 10 2. Leänh CUMPROD a) Coâng duïng: Nhaân doàn caùc phaàn töû. b) Cuù phaùp: cp = cumprod (a) c) Giaûi thích: cp: bieán chöùa keát quûa a: teân cuûa ma traän hay vector. d) Ví duï: b = 1 9 3 4 cp =cumprod(b) cp = 1 9 27 108 a = 1 3 5 9 1 2 4 2 1 cp = cumprod(a) cp = 1 3 5 9 3 10 36 6 10 3. Leänh CUMSUM a) Coâng duïng: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 69 - GVHD: PHAÏM QUANG HUY
  76. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Coäng doàn caùc phaàn töû. b) Cuù phaùp: cs = cumprod(a) c) Giaûi thích: cs: bieán chöùa keát quaû. a: laø teân cuûa ma traän hay vector. d) Ví duï: b = 1 10 1 2 5 cs = cumsum(b) cs =1 11 12 14 19 a= 1 3 5 9 1 2 4 2 1 cs = cumsum(a) cs = 1 3 5 10 4 7 14 6 8 4. Leänh DECONV a) Coâng duïng: Chia hai ña thöùc. b) Cuù phaùp: [q,r] =deconv(a,b) c) Giaûi thích: a,b: ña thöùc. q: thöông soá cuûa a, b. r: soá dö. Caùch khai baùo: saép xeáp bieán theo thöù töï giaûm daàn cuûa luõy thöøa. d) Ví duï: Chia 2 ña thöùc (2x2+3x+6)/(2x+3) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 70 - GVHD: PHAÏM QUANG HUY
  77. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng a = [2 3 6] b = [2 3] [q,r] = deconv (a,b) q = 1 0 r = 0 0 6 5. Leänh EXPM a) Coâng duïng: Tính ex b) Cuù phaùp: kq = expm(x) c) Giaûi thích: kq: bieánchöùa keát quûa. d) Ví duï: kq = expm(3) kq = 20.0855 6. Leänh FMIN a) Coâng duïng: Tìm giaù trò nhoû nhaát cuûa haøm soá. b) Cuù phaùp: x = fmin(‘fuction’,x1,x2) c) Giaûi thích: x: bieán chöùa keát quaû. fuction: teân haøm soá. x1, x2: khoaûng khaûo saùt. d) Ví duï: Tìm giaù trò nhoû nhaát cuûa haøm soá: x3-2x-5 trong khoaûng [0 2] x =fmin(‘x.^3-2*x-5’,0,2); x = 0.8165 y = f(x) y = -6.0887 7. Leänh FPLOT Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 71 - GVHD: PHAÏM QUANG HUY
  78. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng a) Coâng duïng: Veõ ñoà thò cuûa haøm soá. b) Cuù phaùp: fplot(‘fun’,[xmin,xmax] c) Giaûi thích: fun: teân haøm soá. xmin, xmax: xaùc ñònh khoaûng caàn veõ. d) Ví duï: fplot(‘x.^3-2*x-5’,[0,2]); grid; 8. Leänh FZERO a) Coâng duïng: Tìm ñieåm 0 cuûa haøm soá. b) Cuù phaùp: fzero(‘fun’,x0) c) Giaûi thích: Ñieåm 0 cuûa haøm soá laø ñieåm (0,x), ñaây cuõng chính laø nghieäm cuûa haøm soá. Neáu haøm soá coù nhieàu nghieäm thì seõ tìm ñöôïc nghieäm gaàn giaù trò x0. fun: teân haøm soá. c) Ví duï: Tìm giaù trò 0 cuûa haøm soá: x2-5x+3. Tröôùc tieân ta khai baùo haøm soá f trong taäp tin f.m: (xem theâm leänh function) function y = f(x); y = x.^2-5*x+3; Sau ñoù, taïo taäp tin gt0.m: x = 0:10; % Giaù trò x0 = 0 z = fzero(‘f’,0); sprinf(‘z = %3f’,z) z = 0.382 % Giaù trò x0 = 2 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 72 - GVHD: PHAÏM QUANG HUY
  79. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng z = fzero(‘f’,2); sprintf(‘z = %.3f’,z) z = 2.618 % Veõ ñoà thò haøm soá minh hoïa: z = fzero(‘f’,0); fplot(‘f’,[0,5]; grid; hold on; plot(z,0,‘o’); hold off 9. Leänh MAX a) Coâng duïng: Tìm giaù trò lôùn nhaát. b) Cuù phaùp: m = max(x) [m,i] = max(x) v = max(x,y) c) Giaûi thích: x,y,v:teân vector. m: giaù trò lôùn nhaát. i: vò trí cuûa m. Neáu x laø ma traän tìm ra giaù trò lôùn nhaát cuûa moãi coät. d) Ví duï: x = 3 5 2 1 4 m= max(x) m = 5 [m,i] = max(x) m =5 i =2 y = 1 6 8 -5 3 v =max(x,y) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 73 - GVHD: PHAÏM QUANG HUY
  80. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng v = 3 6 8 1 4 b = 3 6 2 1 7 9 2 8 1 m = max(b) m = 3 8 9 [m,i] = max(b) m= 3 8 9 i = 1 3 2 a = 0 3 6 7 1 1 4 6 8 v = max(a,b) v = 3 6 6 7 7 9 4 8 8 10. Leänh MEAN a) Coâng duïng: Tìm giaù trò trung bình. b) Cuù phaùp: Moâ hình = mean(a) c) Giaûi thích: m: bieán chöùa keát quûa. a: teân vector hay ma traän caàn tính giaù trò trung bình. Neáu a laø ma traän thì tính giaù trò trung bình cuûa moãi coät. d) Ví duï: b = 1 10 1 2 5 m = mean(b) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 74 - GVHD: PHAÏM QUANG HUY
  81. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng m = 3.8000 a = 1 3 5 9 1 2 4 2 1 m = mean(a) m = 4.6667 2.0000 2.6667 11. Leänh MIN a) Coâng duïng: Tím giaù trò nhoû nhaát b) Cuù phaùp: m = min(x) [m,i] = min(x) v = min(x,y) c) Giaûi thích: x,y,v: teân vector. m: laø giaù trò lôùn nhaát. i: laø vò trí cuûa m. Neâuù x laø ma traän tìm ra giaù trò nhoû nhaát trong moãi coät. d) Ví duï: x = 3 5 2 1 4 m = min(x) m = 1 i =4 y =1 6 8 -5 3 v = min(x,y) v = 1 5 2 -5 3 b = 3 6 2 1 7 9 2 8 1 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 75 - GVHD: PHAÏM QUANG HUY
  82. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng m = min(b) m = 1 6 1 i = 2 1 3 a = 0 3 6 7 1 1 4 6 8 v = min(a,b) v = 0 3 2 1 1 1 2 6 1 12. Leänh PROD a) Coâng duïng: Nhaân caùc phaàn töû. b) Cuù phaùp: p = prod(x) c) Giaûi thích: p: bieán chöùa keát quaû. x: teân ma traän hay daõy soá. Neáu laø ma traän nhaân töøng phaàn töû cuaû moãi coät. d) Ví duï: a = 2 3 4 5 p = prod(a) p = 20 b = 2 2 3 5 6 4 7 5 4 p =prot(b) p =70 60 48 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 76 - GVHD: PHAÏM QUANG HUY
  83. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 13. Leänh ROOTS a) Coâng duïng: Tìm nghieäm cuûa ña thöùc. b) Cuù phaùp: r = roots(p) c) Giaûi thích: r: bieán chöùa keát quaû. p: teân bieåu thöùc. d) Ví duï: Tìm nghieäm cuaû phöông trình: x2-1 =0 p = [1 0 -1] r = roots(p); disp(r) -1.0000 1.0000 14. Leänh SORT a) Coâng duïng: Saép xeáp maûng hay ma traän theo thöù töï taêng daàn. b) Cuù phaùp: kq = sort(x) [kq,i] = sort(x) c) Giaûi thích: kq: bieán chöaù keát quaû. i: soá thöù töï cuaû phaàn töû tröôùc khi saép xeáp. Neáu x laø ma traän thì saép xeáp theo thöù töï taêng daàn cuûa töøng coät. d) Ví duï: a = 2 8 5 6 -3 9 kq = sort(a) kq = -3 2 5 6 8 9 [kq,i] = sort(a) kq = -3 2 5 6 8 9 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 77 - GVHD: PHAÏM QUANG HUY
  84. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng i = 5 1 3 4 2 6 b = 3 4 -4 2 -3 5 1 6 2 kq =sort(b) kq = 1 -3 -4 2 4 2 3 6 5 [kq,i] = sort(b) kq = 1 -3 -4 2 1 2 3 6 5 i = 3 2 1 2 1 3 1 3 2 15. Leänh SUM a) Coâng duïng: Tính toång cuûa caùc phaàn töû. b) Cuù phaùp: s = sum(x) c) Giaûi thích: s: laø bieán chöùa keát quaû. x: laø teân ma traän. Neáu x laø ma traän thì s laø toång cuûa caùc coät. d) Ví duï: a = 2 8 5 6 -3 9 s = sum(a) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 78 - GVHD: PHAÏM QUANG HUY
  85. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng s = 27 b = 3 4 -4 2 -3 5 1 6 2 s = sum(b) s = 6 7 3 X. TAÄP LEÄNH ÑOÀ HOÏA 1. Leänh AXES a) Coâng duïng: Ñaët caùc truïc toïa ñoä taïi vò trí ñònh tröôùc. b) Cuù phaùp: axes(‘propertyname’, propertyvalue ) c) Giaûi thích: Töông öùng vôùi moät propertyname ñi keøm vôùi 1 propertyvalue. 1. ‘position’,[left, bottom, width, height]: ñònh vò trí vaø kích thöôùc cuûa truïc. left: khoaûng caùch töø meùp traùi cöûa soå ñeán truïc ñöùng. bottom: khoaûng caùch töø meùp döôùi cöûa soå ñeán truïc ngang. width: chieàu daøi cuûa truïc ngang. height: chieàu cao truïc ñöùng. Ghi chuù: Luoân laáy ñieåm [0,0] laøm goác toïa ñoä. Truïc ngang vaø truïc ñöùng coù giaù trò trong khoaûng [0 1] vaø chia theo tyû leä thích hôïp */ Ví duï: axes(‘position’,[.1 .1 .8 .6]) 2. ‘xlim’, [min,max]: ñònh giaù trò nhoû nhaát vaø lôùn nhaát treân truïc x. */ Ví duï: axes(‘xlim’, [2 5]) 3. ‘ylim’, [min,max]: ñònh giaù trò nhoû nhaát vaø lôùn nhaát treân truïc y. */ Ví duï: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 79 - GVHD: PHAÏM QUANG HUY
  86. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng axes(‘ylim’, [2 5]) ñònh giaù trò treân caû hai truïc axes(‘xlim’, [min,max], ‘ylim’,[min,max]) 2. Leänh AXIS a) Coâng duïng: Chia laïi truïc toïa ñoä. b) Cuù phaùp: axis([xmin xmax ymin ymax]) axis([xmin xmax ymin ymax zmin zmax]) axis on axis off c) Giaûi thích: xmin, ymin, zmin: laø giaù trò nhoû nhaát cuûa caùc truïc x, y, z. xmax, ymax, zmax: laø giaù trò lôùn nhaát cuûa caùc truïc x, y, z. on: cho hieån thò truïc toïa ñoä. off: khoâng cho hieån thò truïc toïa ñoä. 3. Leänh BAR a) Coâng duïng: Veõ ñoà thò daïng coät. b) Cuù phaùp: bar(x,y) c) Giaûi thích: Veõ giaù trò x theo giaù trò y. d) Ví duï: x = -pi:0.2:pi; bar(x,sin(x)); grid on title(‘Do thi ham sin(x) dang thanh’) xlabel(‘truc x (rad)’) ylabel(‘y = sin(x)’) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 80 - GVHD: PHAÏM QUANG HUY
  87. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 4. Leänh CLA a) Coâng duïng: Xoùa taát caû caùc ñoái töôïng nhö: ñöôøng ñoà thò, teân ñoà thò nhöng khoâng xoùa truïc toïa ñoä. b) Cuù phaùp: cla 5. Leänh CLF a) Coâng duïng: Xoùa hình aûnh (ñoà thò) hieän taïi. b) Cuù phaùp: clf 6. Leänh CLOSE a) Coâng duïng: Ñoùng hình aûnh (ñoà thò) hieän taïi. b) Cuù phaùp: close 7. Leänh COLORMAP a) Coâng duïng: Taïo maøu saéc cho ñoà thò trong khoâng gian 3 chieàu. b) Cuù phaùp: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 81 - GVHD: PHAÏM QUANG HUY
  88. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng colormap(map) colormap(‘default’) c) Giaûi thích: Colormap laø söï troän laãn cuûa 3 maøu cô baûn: red, green, blue. Tuøy theo tyû leä cuûa 3 maøu cô baûn maø cho ra caùc maøu saéc khaùc nhau. ‘default’: maøu coù ñöôïc laø maøu maëc ñònh. map: bieán chöùa caùc thoâng soá sau: Map maøu coù ñöôïc Bone gray + blue Cool cyan + magenta Flag red + white + blue + black Gray gray Hot black + red + yellow + white Pink pink 8. Leänh FIGURE a) Coâng duïng: Taïo môùi hình aûnh (ñoà thò). b) Cuù phaùp: figure 9. Leänh GCA a) Coâng duïng: Taïo caùc ñaëc tính cho truïc. b) Cuù phaùp: h = gca c) Giaûi thích: h: laø bieán gaùn cho leänh cga. Caùc ñaëc tính cuûa truïc goàm coù: Cuù phaùp Giaûi thích Set(gca,’XScale’,’log’, Ñònh ñôn vò treân truïc toïa ñoä: truïc x coù Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 82 - GVHD: PHAÏM QUANG HUY
  89. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng ’Yscale’,’linear’) ñôn vò laø log vaø truïc y coù ñôn vò tuyeán tính. Set(gca,’Xgrid’,’on’,’YGrid', Taïo löôùi cho ñoà thò: truïc x coù taïo löôùi ’nomal’) vaø truïc y khoâng taïo löôùi. Set(gca,’XDir',’reverse’, Ñoåi truïc toïa ñoä: ñoåi truïc x veà phía ñoái ’YDir’,’normal’) dieän, truïc y giöõ nguyeân. Set(gca,’XColor',’red’, Ñaët maøu cho löôùi ñoà thò: ñaët löôùi truïc ’Ycolor’,’yellow’) x maøu ñoû, löôùi truïc y maøu vaøng. Goàm coù caùc maøu: yellow, magenta, cyan, red, green, blue, white, black. 10. Leänh GRID a) Coâng duïng: Taïo löôùi toïa ñoä. b) Cuù phaùp: grid on grid off c) Giaûi thích: on: hieån thò löôùi toïa ñoä. off: khoâng hieån thò löôùi toïa ñoä. 11. Leänh PLOT a) Coâng duïng: Veõ ñoà thò tuyeán tính trong khoâng gian 2 chieàu. b) Cuù phaùp: plot(x,y) plot(x,y,’linetype’) c) Giaûi thích: x,y: veõ giaù trò x theo giaù trò y. linetype: kieåu phaàn töû taïo neân neùt veõ bao goàm 3 thaønh phaàn: - Thaønh phaàn thöù nhaát laø caùc kyù töï chæ maøu saéc: Kyù töï Maøu y Vaøng Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 83 - GVHD: PHAÏM QUANG HUY
  90. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng m Ñoû töôi c Lô r Ñoû g Luïc b Lam w Traéng k Ñen - Thaønh phaàn thöù hai laø caùc kyù töï chæ neùt veõ cuûa ñoà thò: Kyù töï Loaïi neùt veõ - Ñöôøng lieàn neùt : Ñöôøng chaám chaám -. Ñöôøng gaïch chaám Ñöôøng neùt ñöùt ñoaïn - Thaønh phaàn thöù ba laø caùc kyù töï chæ loaïi ñieåm ñaùnh daáu goàm:., o, x, +, * d) Ví duï: Veõ ñoà thò haøm y = sin(x) vôùi ñoà thò maøu lam, ñöôøng lieàn neùt vaø ñaùnh daáu caùc ñieåm ñöôïc choïn baèng daáu *, truïc x thay ñoåi töø 0 tôùi 2π, moãi böôùc thay ñoåi laø π/8 x = 0:pi/8:2*pi; y = sin(x); plot(x,y, ‘b-* ’) ylabel(‘y = sin(x)’) xlabel(‘Truc x’) title(‘Do thi ham y = sin(x)’) grid on Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 84 - GVHD: PHAÏM QUANG HUY
  91. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 12. Leänh SUBPLOT a) Coâng duïng: Taïo caùc truïc trong moät phaàn cuûa cöûa soå ñoà hoïa. b) Cuù phaùp: subplot(m,n,p) subplot(mnp) c) Giaûi thích: subplot(m,n,p) hoaëc subplot(mnp)thaønh cöûa soå ñoà hoïa thaønh m×n vuøng ñeå veõ nhieàu ñoà thò treân cuøng moät cöûa soå. m: soá haøng ñöôïc chia. n: soá coät ñöôïc chia p: soá thöù töï vuøng choïn ñeå veõ ñoà thò. Neáu khai baùo p > m×n thì seõ xuaát hieän moät thoâng baùo loãi. d) Ví duï: Chia cöûa soå ñoà hoïa thaønh 2×3 vuøng vaø hieån thò truïc cuûa caû 6 vuøng. subplot(231) subplot(232) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 85 - GVHD: PHAÏM QUANG HUY
  92. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng subplot(233) subplot(234) subplot(235) subplot(236) 13. Leänh SEMILOGX, SEMILOGY a) Coâng duïng: Veõ ñoà thò theo logarith. b) Cuù phaùp: semylogx(x,y) semylogx(x,y,’linetype’) semylogy(x,y) semylogy(x,y,’linetype’) c) Giaûi thích: semylogx vaø semylogy gioáng nhö leänh plot nhöng chæ khaùc moät ñieàu laø leänh naøy veõ ñoà thò theo truïc logarith. Do ñoù, ta coù theå söû duïng taát caû caùc loaïi ‘linetype’ cuûa leänh plot. d) Ví duï: Veõ ñoà thò haøm y = x2 – 3x + 2 theo truïc logarith cuûa x. x = 0:100; Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 86 - GVHD: PHAÏM QUANG HUY
  93. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng y = x.^2-3*x+2; semylogx(x,y,’b’) grid on 14. Leänh POLAR a) Coâng duïng: Veõ ñoà thò trong heä truïc toïa ñoä cöïc. b) Cuù phaùp: polar(theta,rno) c) Giaûi thích: Veõ giaù trò x theo giaù trò y. d) Ví duï: t = -pi:0.01:pi; polar(t, sin(t)) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 87 - GVHD: PHAÏM QUANG HUY
  94. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 15. Leänh SET a) Coâng duïng: Thieát laäp caùc ñaëc tính chaát cho ñoái töôïng naøo ñoù. b) Cuù phaùp: set(h, ‘propertyname’, propertyvalue, ) c) Giaûi thích: h: bieán chöùa ñoái töôïng. PropertyName vaø PropertyValue ñöôïc cho trong baûng sau: Cuù phaùp PropertyName PropertyValue Giaûi thích Set(h,’Marker’,’+’) Marker -, , :, -. , o, ×, +, * Choïn kieåu phaàn töû Set(h,’LineWidth’,1) LineWidth 1, 2, 3, Ñoä daøy neùt veõ Set(h,’MarkerSize’,9) MarkerSize 1, 2, 3, Kích thöôùc caùc ñieåm taïo neân h Set(h,’color’,’cyan’) Color yellow,magenta, Choïn maøu cho ñoái töôïng h red,green,blue, cyan,white,black Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 88 - GVHD: PHAÏM QUANG HUY
  95. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng d) Ví duï: a = [1 2 3 4 5 4 3 4 5 6]; h = plot(a) set(h,’color’,’black’) 16. Leänh STAIRS a) Coâng duïng: Veõ ñoà thò daïng baäc thang. b) Cuù phaùp: stairs(x,y) c) Giaûi thích: Veõ giaù trò x theo giaù trò y. d) Ví duï: x = -pi:0.2:pi; stairs(x,sin(x)) xlabeL(‘Truc x’) ylabel(‘y = stairs(x,sin(x)’) grid on Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 89 - GVHD: PHAÏM QUANG HUY
  96. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 17. Leänh TITLE a) Coâng duïng: Ñaët tieâu ñeà cho ñoà thò. b) Cuù phaùp: title(‘text’) c) Giaûi thích: text: teân tieâu ñeà. 18. Leänh XLABEL, YLABEL, ZLABEL a) Coâng duïng: Ñaët teân cho truïc X, Y, Z. b) Cuù phaùp: xlabel(‘nx’) ylabel(‘ny’) zlabel(‘nz’) c) Giaûi thích: nx, ny, nz: teân truïc x, y, z 19. Leänh WHITEBG a) Coâng duïng: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 90 - GVHD: PHAÏM QUANG HUY
  97. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Thay ñoåi maøu neàn cuûa cöûa soå ñoà hoïa. b) Cuù phaùp: whitebg whitebg(‘color’) c) Giaûi thích: whitebg chuyeån ñoåi qua laïi maøu neàn cöûa soå ñoà hoïa giöõa traéng vaø ñen. whitebg(‘color’) chuyeån maøu neàn cöûa soå ñoà hoïa thaønh maøu cuûa bieán color. color coù theå laø caùc maøu: yellow (vaøng), magenta (ñoû töôi), cyan (lô), red (ñoû), green (luïc), blue (lam), white (traéng), black (ñen). BT3c: ñöôïc vieát trong BT3c.m. Baøi taäp naøy toång hôïp töø caùc saùch ‘The Student Edition of MATLAB’, ‘The MATLAB 5. Handboox’, ‘ÖÙng duïng MATLAB trong ñieàu khieån töï ñoäng’ %BT3c: VE QUA DIA CAU [x,y]=meshgrid(-3:0.1:3); z=peaks(x,y); meshc(x,y,z) pause k=5; n=2^k-1; [x,y,z]=sphere(n); c=hadamard(2^k); surf(x,y,z,c); colormap([1 1 0;0 1 1]) pause t=0:pi/10:2*pi; [x,y,z]=cylinder(2+cos(t)); surf(x,y,z) pause [x,y,z]=cylinder(1:10); surfnorm(x,y,z) pause [x,y,z]=meshgrid(-2:.2:2,-2:.2:2,-2:.2:2); v=x.*exp(-x.^2-y.^2-z.^2); slice(v,[5 15 21],21,[1 10],21) pause [X,Y]=meshgrid(-3:.5:3); Z=peaks(X,Y); [XI,YI]=meshgrid(-3:.25:3); ZI=interp2(X,Y,Z,XI,YI); mesh(X,Y,Z), hold, mesh(XI,YI,ZI+15) hold off axis([-3 3 -3 3 -5 20]) pause Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 91 - GVHD: PHAÏM QUANG HUY
  98. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng syms x y ezsurf(real(atan(x+i*y))) [x,y]=meshdom(-12:.6:12,-12:.6:12); r=sqrt(x.^2+y.^2); z=bessel(0,r); m=[-45 60]; mesh(z,m) Khi chaïy chöông trình ta laà löôït coù keát quaû: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 92 - GVHD: PHAÏM QUANG HUY
  99. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 93 - GVHD: PHAÏM QUANG HUY
  100. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 94 - GVHD: PHAÏM QUANG HUY
  101. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 95 - GVHD: PHAÏM QUANG HUY
  102. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 96 - GVHD: PHAÏM QUANG HUY
  103. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 97 - GVHD: PHAÏM QUANG HUY
  104. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 98 - GVHD: PHAÏM QUANG HUY
  105. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Cuõng laø haøm bessel nhöng ta khaûo saùt rieâng 1 baøi: %hm bessel [x,y]=meshdom(-12:.6:12,-12:.6:12); r=sqrt(x.^2+y.^2); z=bessel(0,r); m=[-45 60]; mesh(z,m) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 99 - GVHD: PHAÏM QUANG HUY
  106. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 100 - GVHD: PHAÏM QUANG HUY
  107. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng NHOÙM LEÄNH VEÀ ÑAËC ÑIEÅM MOÂ HÌNH (Model Properties) 1. Leänh COVAR, DCOVAR a) Coâng duïng: (Purpose) Tìm ñaùp öùng hieäp phöông sai ñoái vôùi nhieãu traéng (white noise). b) Cuù phaùp: (Syntax) [P,Q]= covar(a,b,c,d,w) P = covar(num,den,w) [P, Q]= dcovar(a,b,c,d,w) P = dcovar(num,den,w) c) Giaûi thích: (Description) Covar tính caùc ngoõ ra coá ñònh vaø ñaùp öùng hieäp phöông sai traïng thaùi cuûa moät heä thoáng ñoái vôùi caùc ngoõ vaøonhieãu traéng Gaussian vôùi cöôøng ñoä w: E[w(t)w(τ)’]= wδ(t -τ) [P,Q]= covar(a,b,c,d,w) tìm ñaùp öùng hieäp phöông sai cuûa heä khoâng gian traïng thaùi lieân tuïc. . x = Ax + Bu y = Cx + Du ñoái vôùi nhieãu traéng vôùi cöôøng ñoä w töø taát caû caùc ngoõ vaøo tôùi taát caû traïng thaùi vaø ngoõ ra: P = E[yy’] Q = E[xx’] Heä thoáng phaûi oån ñònh vaø ma traän D phaûi laø zero. P = covar(num,den,w) tìm ñaùp öùng hieäp phöông sai ngoõ ra heä SIMO cuûa haøm truyeàn ña thöùc G(s)= num(s)/den(s) trong ñoù num vaø den chöùa caùc heä soá ña thöùc theo chieàu giaûm daàn soá muõ cuûa s, wlaø cöôøng ñoä nhieãu ngoõ vaøo. Ñeå tìm ñaùp öùng hieäp phöông sai cuûa heä giaùn ñoaïn ta duøng leänh dcovar thay cho covar. d) Ví duï 1: (Exemple) Tìm ñaùp öùng hieäp phöông sai do nhieãu traéng Gaussian cuûa heä SISO vôùi cöôøng ñoä w=2 coù haøm truyeàn: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 1 - GVHD: PHAÏM QUANG HUY
  108. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 5s + 1 H (s) = s 2 + 2s + 3 num = [5 1]; den = [1 2 3]; P = covar(num,den,2) Ta ñöôïc: P = 12.6667 2. Leänh CTRB, OBSV a) Coâng duïng: Taïo ma traän coù theå ñieàu khieån vaø coù theå quan saùt. b) Cuù phaùp: co = ctrb(a,b) ob = obsv(a,c) c) Giaûi thích: 2 n-1 co = ctrb(a,b) taïo ma traän coù theå ñieàu khieån C0 = [B ABA B A B] cho heä khoâng gian traïng thaùi ob = obsv(a,c) taïo ma traän coù theå quan saùt Ob cho heä khoâng gian traïng thaùi. ⎡ C ⎤ ⎢ ⎥ ⎢ CA ⎥ 2 Ob = ⎢ CA ⎥ ⎢ ⎥ ⎢ M ⎥ n−1 ⎣⎢CA ⎦⎥ Heä thoáng coù theå ñieàu khieån ñöôïc neáu haïng cuûa ma traän Co laø n vaø coù theå quan saùt ñöôïc neáu haïng cuûa ma traän Ob laø n. d) Ví duï: Duøng leänh ctrb vaø obsv ñeå kieåm tra heä thoáng (a,b,c,d) coù theå ñieàu khieån ñöôïc hay coù theå quan saùt ñöôïc hay khoâng: % Nhaäp haøm truyeàn vaø xaùc ñònh khoâng gian traïng thaùi: num = [2 3]; den = [1 4 7]; [a,b,c,d]= tf2ss(num,den) % Xaùc ñònh ma traän coù theå ñieàu khieån vaø ma traän coù theå quan saùt: co = ctrb(a,b) ob = obsv(a,c) % soá traïng thaùi khoâng theå ñieàu khieån ñöôïc: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 2 - GVHD: PHAÏM QUANG HUY
  109. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng unco = length(a) – rank(co) % soá traïng thaùi khoâng theå quan saùt ñöôïc: unob = length(a) – rank(ob) Cuoái cuøng ta ñöôïc keát quaû: a = -4 -7 1 0 b = 1 0 c = 2 3 d = 0 co = 1 -4 0 1 unco = 0 ob = 2 3 -5 -14 unob = 0 3. Leänh DAMP, DDAMP a) Coâng duïng: Tìm taàn soá töï nhieân (Natural Frequencies) vaø heä soá taét daàn (Damping Factors). b) Cuù phaùp: [wn,Z]= damp(a) mag= ddamp(a) [mag,Wn,Z]= ddamp(a,Ts) c) Giaûi thích: Damp vaø ddamp tính taàn soá töï nhieân vaø heä soá taét daàn. Neáu boû caùc ñoái soá beân traùi trong caùc leänh naøy thì ta nhaän ñöôïc moät baûng caùc giaù trò rieâng, tæ leä taét daàn vaø taàn soá töï nhieân treân maøn hình. Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 3 - GVHD: PHAÏM QUANG HUY
  110. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng [wn,Z]= damp(a) taïo ra vector coät Wn vaø Z chöùa caùc taàn soá töï nhieân wn, heä soá taét daàn cuûa caùc giaù trò rieâng lieân tuïc (Continous eigenvalues) ñöôïc tính töø a. Bieán a coù theå laø moät trong caùc daïng sau: + Neáu a laø ma traän vuoâng thì a ñöôïc xem nhö laø ma traän khoâng gian traïng thaùi A. + Neáu a laø vector haøng thì noù ñöôïc xem nhö laø vector chöùa caùc heä soá ña thöùc cuûa haøm truyeàn. + Neáu a laø vector coät thì a chöùa caùc nghieäm. Mag = damp(a) taïo ra vector coät mag chöùa bieân ñoä caùc giaù trò rieâng giaùn ñoaïn ñöôïc tính töø a. a coù theå laø moät trong caùc daïng ñöôïc noùi ñeán ôû treân. [mag,Wn,Z]= ddamp(a,Ts) taïo ra caùc vector mag, Wn vaø Z chöùa caùc bieân ñoä, taàn soá töï nhieân trong maët phaúng s töông öùng vaø heä soá taét daàn cuûa caùc giaù trò rieâng cuûa a. Ts laø thôøi gian laáy maãu. Heä soá taét daàn vaø taàn soá töï nhieân trong maët phaúng s töông öùng cuûa caùc giaù trò rieâng giaùn ñoaïn λ laø: log λ ωn = ζ = -cos(∠ log λ) Ts d) Ví duï: (Trích töø trang 11-52 saùch ‘Control System Toolbox’) Tính vaø hieån thò caùc giaù trò rieâng, taàn soá töï nhieân vaø heä soá taét daàn cuûa haøm truyeàn lieân tuïc sau: 2s 2 + 5s + 1 H (s) = s 2 + 2s + 3 num = [2 5 1]; den = [1 2 3]; damp(den) Eigenvalue Damping Freq.(rad/sec) -1.0000 + 1.4142i 0.5774 1.7321 -1.0000 + 1.4142i 0.5774 1.7321 Tính vaø hieån thò caùc giaù trò rieâng, bieân ñoä, taàn soá vaø heä soá taét daàn trong maët phaúng s töông öùng cuûa haøm truyeàn giaùn ñoaïn vôùi thôøi gian laáy maãu Ts = 0.1: 2z 2 −3.4z + 1.5 H (z) = z 2 − 1.6s + 0.8 num = [2 -3.4 1.5] den = [1 -1.6 0.8] ddamp(den,0.1) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 4 - GVHD: PHAÏM QUANG HUY
  111. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Eigenvalue Magnitude Equiv.Damping Equiv.Freq (rad/sec) 0.8000 + 0.4000i 0.8944 0.2340 4.7688 0.8000 – 0.4000i 0.8944 0.2340 4.7688 4. Leänh DCGAIN, DDCGAIN a) Coâng duïng: Tìm ñoä lôïi traïng thaùi xaùc laäp cuûa heä thoáng. b) Cuù phaùp: k = dcgain(a,b,c,d) k = dcgain(num,den) k = ddcgain(a,b,c,d) k = ddcgain(num,den) c) Giaûi thích: dcgain duøng ñeå tính ñoä lôïi traïng thaùi xaùc laäp (DC hay taàn soá thaáp) cuûa heä thoáng. k = dcgain(a,b,c,d) tính ñoä lôïi traïng thaùi xaùc laäp cuûa heä khoâng gian traïng thaùi lieân tuïc: . x = Ax + Bu y = Cx + Du töø taát caû caùc ngoõ vaøo tôùi taát caû caùc ngoõ ra: K = -CA-1 + D k = dcgain(num,den) tính ñoä lôïi traïng thaùi xaùc laäp cuûa haøm truyeàn ña thöùc: num(s) G(s) = den(s) trong ñoù num vaø den chöùa caùc heä soá ña thöùc theo thöù töï giaûm daàn soá muõ cuûa s: num(s) K = den(s) s=0 Ñeå tính ñoä lôïi DC cuûa heä giaùn ñoaïn ta duøng leänh ddcgain thay cho leänh dcgain. Ñoái vôùi heä khoâng gian traïng thaùi xaùc laäp, ma traän ñoä lôïi DC laø: K = C(I – A)-1 + D Vaø ñoái vôùi haøm truyeàn giaùn ñoaïn, t ñoä LôïI DC laø: num(z) K = den(z) z =1 d) Ví duï 1: Tính ñoä lôïi DC cuûa heä thoáng coù haøm truyeàn: 2s 2 + 5s + 1 H (s) = s 2 + 2s + 3 num = [ 2 5 1]; den = [1 2 3]; k = dcgain(num,den) k = 0.3333 Ví duï 2: Tính ñoä lôïi DC cuûa heä khoâng gian traïng thaùi MIMO: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 5 - GVHD: PHAÏM QUANG HUY
  112. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng . ⎡ ⎤ ⎡−0.5572 −0.7814⎤ ⎡x ⎤ ⎡1 0.5397⎤ ⎡u⎤ ⎢x1 ⎥ = 1 + . ⎢ 0.7814 0 ⎥ ⎢x ⎥ ⎢0 −0.2231⎥ ⎢v⎥ ⎣⎢x2 ⎦⎥ ⎣ ⎦ ⎣ 2 ⎦ ⎣ ⎦ ⎣ ⎦ ⎡y⎤ ⎡1.9691 6.4493⎤ ⎡x1 ⎤ ⎡0 0⎤ ⎡u⎤ ⎢ ⎥ = ⎢ ⎥ ⎢ ⎥ + ⎢ ⎥ ⎢ ⎥ ⎣z⎦ ⎣ 1 0 ⎦ ⎣x2 ⎦ ⎣0 0⎦ ⎣v⎦ a = [-0.5572 -0.7814 ; 0.7814 0]; b = [1 0.5379 ; 0 -0.2231]; c = [1.9691 6.4493 ; 1 0]; d = [0 0 ; 0 0]; k = dcgain(a,b,c,d) k = 8.2466 3.6861 0 0.2855 5. Leänh GRAM, DGRAM a) Coâng duïng: Ñaùnh giaù khaû naêng ñieàu khieån vaø khaû naêng quan saùt. b) Cuù phaùp: Gc = gram(a,b) Go = gram(a’,c’) Gc = dgram(a,b) Go = dgram(a’,c’) c) Giaûi thích: gram tính toaùn khaû naêng ñieàu khieån vaø khaû naêng quan saùt. Söï ñaùnh giaù naøy coù theå ñöôïc duøng ñeå nghieân cöùu ñaëc tính ñieàu khieån vaø ñaëc tính quan saùt cuûa caùc heä khoâng gian traïng thaùi vaø giaûm baäc moâ hình. gram(a,b) taïo ra söï ñaùnh giaù khaû naêng ñieàu khieån Gc: ∞ Aτ A'τ Gc = ∫e BB' e dτ 0 ñoù laø moät ma traän ñoái xöùng; hôn nöõa, neáu ma traän coù haïng ñuû (baèng kích thöôùc cuûa ma traän ñaùnh giaù) thì heä thoáng coù theå ñieàu khieån ñöôïc. Go = gram(a’,c’) taïo ra söï ñaùnh giaù khaû naêng quan saùt Go: ∞ Aτ A'τ Go = ∫e CC' e dτ 0 Neáu ma traän ñaùnh giaù coù haïng ñuû thì heä thoáng coù theå quan saùt ñöôïc. dgram duøng cho caùc heä thoáng giaùn ñoaïn. d) Ví duï: Xaùc ñònh khaû naêng ñieàu khieån cuûa heä koâng gian traïng thaùi ôû ví duï veà leänh dcgrain a = [-0.5572 -0.7814 ; 0.7814 0]; b = [1 0.5379 ; 0 -0.2231]; c = [1.9691 6.4439 ; 1 0]; Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 6 - GVHD: PHAÏM QUANG HUY
  113. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng d = [0 0 ; 0 0]; Gc = gram(a,b) Ta nhaän ñöôïc ma traän: Gc = 1.2016 -0.0318 -0.0318 1.0708 Tìm haïng ma traän baèng leänh: r = rank(Gc) ta ñöôïc r = 2 vaø baèng kích thöôùc cuûa ma traän ñaùnh giaù. Vaäy heä thoáng naøy coù theå ñieàu khieån ñöôïc. 6. Leänh DSORT, ESORT a) Coâng duïng: Saép xeáp caùc giaù trò rieâng theo thöù töï phaàn thöïc hoaëc bieân ñoä soá phöùc. b) Cuù phaùp: s = dsort(p) [s,ndx] = dsort(p) s = esort(p) [s,ndx] = esort(p) c) Giaûi thích: s = esort(p) xeáp caùc giaù trò rieâng phöùc trong vector p theo thöù töï giaûm daàn cuûa phaàn thöïc. Ñoái vôùi caùc giaù trò rieâng lieân tuïc, caùc giaù trò rieâng khoâng oån ñònh xuaát hieän tröôùc. s = dsort(p) xeáp caùc gí trò rieâng phöùc trong vector p theo thöù töï giaûm daàn cuûa bieân ñoä. Ñoái vôùi caùc giaù trò rieâng giaùn ñoaïn, caù giaù trò rieâng khoâng oån ñònh xuaát hieän tröôùc. [s,ndx] = dsort(p) hay [s,ndx] = esort(p) cuõng taïo ra vector ndx chöùa caùc chæ soá duøng theo thöù töï. d) Ví duï: Xeáp caùc phaàn töû cuûa vector p = [2+3j -3+j 1-9j 3-7j 5+2j 6-j] theo thöù töï giaûm daàn cuûa phaân thöïc vaø ñoä lôùn soá phöùc. p = [2+3j -3+j 1-9j 3-7j 5+2j 6-j] % Xeáp theo thöù töï giaûm daàn cuûa ñoä lôùn soá phöùc: s = dsort(h) s = 1.0000 + 9.0000j 3.0000 + 7.0000j 6.0000 + 1.0000j 5.0000 – 2.0000j 2.0000 + 3.0000j -3.0000 + 1.0000j % Xeáp theo thöù töï giaûm daàn cuûa phaàn thöïc: s’ = esort(h) 6.0000 + 1.0000j 5.0000 – 2.0000j 3.0000 + 7.0000j Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 7 - GVHD: PHAÏM QUANG HUY
  114. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 2.0000 – 3.0000j 1.0000 + 9.0000j -3.0000 – 1.0000j 7. Leänh EIG a) Coâng duïng: Tìm caùc giaù trò rieâng vaø caùc vector rieâng cuûa heä thoáng. b) Cuù phaùp: E = eig(X) [V,D] = eig(X) [V,D] = eig(X) [V,D] = eig(X,’nobalance’) E = eig(A,B) [V,D] = eig(A,B) c) Giaûi thích: E = eig(X) laø moät vector chöùa caùc giaù trò rieâng cuûa ma traän vuoâng X. [V,D] = eig(X) taïo ra moät ma traän ñöôøng cheùo D cuûa caùc giaù trò rieâng vaø ma traän ñuû vôùi caùc coät laø caùc vector rieâng töông öùng ñeå cho X*V = V*D. [V,D] = eig(X,’nobalance’) gioáng nhö [V,D] = eig(X) nhöng boû qua söï caân baèng. Caùch naøy ñoâi khi cho keát quaû chính xaùc hôn. E = eig(A,B) laø vector chöùa caùc giaù trò rieâng phoå bieán cuûa caùc ma traän vuoâng A vaø B. [V,D] = eig(A,B) taïo ra ma traän ñöôøng cheùo D cuûa caùc giaù trò rieâng phoå bieán vaø caùc ma traän ñuû V vôùi caùc coät laø caùc vector rieâng töông öùng ñeå cho A*V = B*V*D. d) Ví duï: Cho X = [2+3j -3+j 1-9j ; 3-7j 5+2j 6-j ; 0+7j 6-8j 2+5j]. tìm caùc giaù trò rieâng cuûa X. X = [2+3j -3+j 1-9j ; 3-7j 5+2j 6-j ; 0+7j 6-8j 2+5j]; [V,D] = eig(X) V = 0.4158 + 0.3442j 0.5455 + 0.4929j 0.4344 – 0.2255j -0.3275 + 0.3580j 0.1837 – 0.2659j 0.5974 + 0.1368j 0.1209 – 0.6772j -0.5243 + 0.2831j 0.4954 + 0.3734j D = -9.3743 + 4.7955j 0 0 0 9.2099 + 0.2831j 0 0 0 9.1644 – 2.2542j 8. Leänh PRINTSYS a) Coâng duïng: In ra caùc tham soá cuûa heä thoáng tuyeán tính b) Cuù phaùp: printsys(a,b,c,d) printsys(a,b,c,d,ulabels,ylabels,xlabels) printsys(num,den,‘s’) Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 8 - GVHD: PHAÏM QUANG HUY
  115. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng printsys(num,den,‘z’) c) Giaûi thích: printsys in caùc tham soá cuûa heä khoâng gian traïng thaùi vaø haøm truyeàn theo daïng ñaëc bieät. Ñoái vôùi heä khoâng gian traïng thaùi, caùc ngoõ vaøo, ngoõ ra vaø traïng thaùicuûa heä ñöôïc ñaët teân vaø haøm truyeàn ñöôïc hieån thò döôùi daïng tyû soá cuûa hai ña thöùc. printsys(a,b,c,d) in ra heä khoâng gian traïng thaùi (a,b,c,d) vôùi teân tham soá ôû phía treân vaø phía beân traùi cuûa ma traän heä thoáng. printsys(a,b,c,d,ulabels,ylabels,xlabels) in ra heä khoâng gian traïng thaùi vôùi teân tham soá ñöôïc chæ ñònh bôûi caùc vector ulabels, ylabels vaø xlabels. ulabels, ylabels vaø xlabels chöùa teân ngoõ vaøo, ngoõ ra vaø traïng thaùi cuûa heä thoáng. printsys(num,den,‘s’) hoaëc printsys(num,den,‘z’) in ra haøm truyeàn döôùi daïng tyû soá cuûa hai ña thöùc theo s hoaëc z. Neáu bieán cuûa haøm truyeàn (‘s’ hoaëc ‘z’) khoâng ñöôïc chæ ñònh thì pheùp bieán ñoåi Laplace (‘s’) ñöôïc thöøa nhaän. d) Ví duï: Cho heä khoâng gian traïng thaùi sau: . ⎡ ⎤ ⎡1 1 ⎤ ⎡x ⎤ ⎡1⎤ ⎢x1 ⎥ = 1 + u . ⎢2 −1⎥ ⎢x ⎥ ⎢0⎥ ⎣⎢x2 ⎦⎥ ⎣ ⎦ ⎣ 2 ⎦ ⎣ ⎦ ⎡x1 ⎤ y = []2 4 ⎢ ⎥ + []1 u ⎣x2 ⎦ In ra heä khoâng gian traïng thaùi vôùi teân goïi caùc tham soá maëc nhieân vaø vôùi teân ñöôïc chæ ñònh nhö sau: ngoõ vaøo u laøø sensor, traïng thaùi x laø alpha vaø beta, ngoõ ra laø angle. % Khai baùo heä thoáng: a = [1 1 ; 2 -1]; b = [1 ; 0]; c = [2 4]; d = 1; % In theo teân maëc nhieân: printsys(a,b,c,d) a = x1 x2 x1 1.00000 1.00000 x2 2.00000 -1.00000 b = u1 x1 1.00000 x2 0 c = x1 x2 y1 2.00000 4.00000 d = u1 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 9 - GVHD: PHAÏM QUANG HUY
  116. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng y1 1.00000 % Chæ ñònh teân tham soá: inputs = ‘sensor’; outputs = ‘angle’; states = ‘alpha beta’; states = ‘alpha beta’; % In theo teân ñaõ chæ ñònh: printsys(a,b,c,d,inputs,outputs,states) a = alpha beta alpha 1.00000 1.00000 beta 2.00000 -1.00000 b = sensor alpha 1.00000 beta 0 c = alpha beta angle 2.00000 4.00000 d = sensor angle 1.00000 9. Leänh TZERO a) Coâng duïng: Tìm zero truyeàn ñaït cuûa heä khoâng gian traïng thaùi. b) Cuù phaùp: z = tzero(sys) [z,gain] = tzero(sys) z = tzero(a,b,c,d) c) Giaûi thích: z = tzero(sys) tìm caùc zero truyeàn ñaït cuûa heä thoáng LTI trong sys. [z,gain] = tzero(sys) tìm ñoä lôïi haøm truyeàn neáu heä thoáng laø heä SISO. z = tzero(a,b,c,d) tìm zero truyeàn ñaït cuûa heä khoâng gian traïng thaùi: . x = Ax + Bu hoaëc x[n + 1} = Ax[n] + Bu[n] y = Cx + Du y[n] = Cx[n] + Du[n] d) Ví duï: Tìm zero truyeàn ñaït cuûa heä khoâng gian traïng thaùi sau: . ⎡ ⎤ ⎡1 1 ⎤ ⎡x ⎤ ⎡1⎤ ⎢x1 ⎥ = 1 + u . ⎢2 −1⎥ ⎢x ⎥ ⎢0⎥ ⎣⎢x2 ⎦⎥ ⎣ ⎦ ⎣ 2 ⎦ ⎣ ⎦ Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 10 - GVHD: PHAÏM QUANG HUY
  117. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng ⎡ x1 ⎤ y = []2 4 ⎢ ⎥ + []1 u ⎣ x 2 ⎦ a = [1 1 ; 2 -1]; b = [1 ; 0]; c = [2 4]; d = 1; z = tzero(a,b,c,d) z = -1.0000 + 2.4495j -1.0000 – 2.4495j Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 11 - GVHD: PHAÏM QUANG HUY
  118. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng NHOÙM LEÄNH XAÂY DÖÏNG MOÂ HÌNH (Model Building) 1. Leänh APPEND a) Coâng duïng: Keát hôïp ñoäng hoïc 2 heä thoáng khoâng gian traïng thaùi. b) Cuù phaùp: [a,b,c,d] = append(a1,b1,c1,d1,a2,b2,c2,d2) c) Giaûi thích: Heä thoáng ñaõ keát noái u1 y1 System1 u2 y2 System1 Leänh append keát noái ñoäng hoïc 2 heä thoáng khoâng gian traïng thaùi taïo thaønh 1 heä thoáng chung. [a,b,c,d] = append(a1,b1,c1,d1,a2,b2,c2,d2) taïo ra heä thoáng khoâng gian traïng thaùi keát hôïp bao goàm heä thoáng 1 vaø heä thoáng 2. Heä thoáng nhaän ñöôïc laø: ⎡ . ⎤ x1 ⎡A1 0 ⎤ ⎡x1 ⎤ ⎡B1 0 ⎤ ⎡u1 ⎤ ⎢ . ⎥ = ⎢ ⎥ ⎢ ⎥ + ⎢ ⎥ ⎢ ⎥ 0 A x 0 B u ⎣⎢x2 ⎦⎥ ⎣ 2 ⎦ ⎣ 2 ⎦ ⎣ 2 ⎦ ⎣ 2 ⎦ ⎡y1 ⎤ ⎡C1 0 ⎤ ⎡x1 ⎤ ⎡D1 0 ⎤ ⎡u1 ⎤ ⎢ ⎥ = ⎢ ⎥ ⎢ ⎥ + ⎢ ⎥ ⎢ ⎥ ⎣y2 ⎦ ⎣ 0 C2 ⎦ ⎣x2 ⎦ ⎣ 0 D2 ⎦ ⎣u2 ⎦ d) Ví duï 1: Cho 2 heä khoâng gian traïng thaùi ⎧⎡ . ⎤ x ⎡1 1 ⎤ ⎡x1 ⎤ ⎡1⎤ ⎪⎢ 1 ⎥ . = ⎢ ⎥ ⎢ ⎥ + ⎢ ⎥ u ⎪⎢ ⎥ ⎣2 −1⎦ ⎣x2 ⎦ ⎣0⎦ ⎨⎣x2 ⎦ (Heä I) ⎪ ⎡x1 ⎤ ⎪ y = []2 4 ⎢ ⎥ + []1 u ⎩ ⎣x2 ⎦ Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 1 - GVHD: PHAÏM QUANG HUY
  119. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng ⎧⎡ ⋅ ⎤ x ⎡4 3⎤ ⎡x1 ⎤ ⎡1⎤ ⎪⎢ 1 ⎥ . = ⎢ ⎥ ⎢ ⎥ + ⎢ ⎥ u ⎪⎢ ⎥ ⎣1 0⎦ ⎣x2 ⎦ ⎣0⎦ ⎨⎣x2 ⎦ (Heä II) ⎪ ⎡x1 ⎤ ⎪ y = [][]4 − 2 ⎢ ⎥ + 0 u ⎩ ⎣x2 ⎦ Keát noái 2 heä khoâng gian traïng thaùi treân ñeå taïo ra moät heä khoâng gian traïng thaùi keát hôïp. a1 = [1 1;2 -1]; b1 = [1; 0]; c1 = [2 4]; d1 = [1]; a2 = [4 3;1 0]; b2 = [1; 0]; c2 = [4 -2]; d2 = [0]; [a,b,c,d] = append(a1,b1,c1,d1,a2,b2,c2,d2) a = 1 1 0 0 2 -1 0 0 0 0 4 3 0 0 1 0 b = 1 0 0 0 0 1 0 0 c = 2 4 0 0 0 0 4 -2 d = 1 0 0 0 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 2 - GVHD: PHAÏM QUANG HUY
  120. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng Ví duï 2: Trích töø Ví duï 3.12 saùch ‘ÖÙng duïng Matlab trong ñieàu khieån töï ñoäng’ taùc giaû Nguyeãn Vaên giaùp. Vaø ñöôïc vieát bôûi file.m %KET NOI HAI HE THONG SONG SONG a=[1 2 3;4 5 6;7 8 9]; b=[3 4;4 5;7 9]; c=[0 0 1]; d=[0 0]; e=[1 9 3;4 5 6;7 8 7]; f=[2 4;4 6;7 9]; g=[0 1 1]; h=[0 0]; [A,B,C,D]= append(a,b,c,d,e,f,g,h) Keát quaû: A = 1 2 3 0 0 0 4 5 6 0 0 0 7 8 9 0 0 0 0 0 0 1 9 3 0 0 0 4 5 6 0 0 0 7 8 7 B = 3 4 0 0 4 5 0 0 7 9 0 0 0 0 2 4 0 0 4 6 0 0 7 9 C = 0 0 1 0 0 0 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 3 - GVHD: PHAÏM QUANG HUY
  121. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 0 0 0 0 1 1 D = 0 0 0 0 0 0 0 0 2. Leänh AUSTATE a) Coâng duïng: Theâm vaøo heä khoâng gian traïng thaùi caùc ngoõ ra. b) Cuù phaùp: [ab,bb,cb,db] = austate(a,b,c,d) c) Giaûi thích: . [ab,bb,cb,db] = austate(a,b,c,d) taïo ra moät heä khoâng gian traïng thaùi môùi vaø soá ngoõ vaøo baèng soá ngoõ vaøo heä ban ñaàu nhöng soá ngoõ ra nhieàu hôn. Keát quaû ta ñöôïc heä thoáng sau: . x = Ax + Bu ⎡y⎤ ⎡C⎤ ⎡D⎤ ⎢ ⎥ = ⎢ ⎥ x + ⎢ ⎥ u (1.2) ⎣x⎦ ⎣1 ⎦ ⎣ 0 ⎦ d) Ví duï: Cho heä khoâng gian traïng thaùi coù: a = b = c = d = 4 5 3 2 1 3 1 2 6 7 6 1 2 4 3 4 Duøng leänh: [ab,bb,cb,db] = augstate(a,b,c,d) ta ñöôïc heä môùi nhö heä (1.2) coù: ab = bb = 1 2 4 5 3 4 6 7 cb = db = 1 3 3 2 2 4 6 1 Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 4 - GVHD: PHAÏM QUANG HUY
  122. Khaûo saùt öùng duïng MATLAB trong ñieàu khieån töï ñoäng 1 0 0 0 0 1 0 0 3. Leänh BLKBUILD, CONNECT a) Coâng duïng: Chuyeån sô ñoà khoái thaønh moâ hình khoâng gian traïng thaùi. b) Cuù phaùp: blkbuild [aa,bb,cc,dd] = connect(a,b,c,d,Q,inputs,outputs) c) Giaûi thích: [aa,bb,cc,dd] = connect(a,b,c,d,Q,inputs,outputs) taïo ra caùc ma traän moâ hình khoâng gian traïng thaùi (ac,bc.cc,dc) cuûa heä thoáng trong sô ñoà khoái, caùc ma traän (a,b,c,d) vaø ma traän Q (ma traän cho bieát söï keát noái beân trong heä thoáng). Vector inputs vaø outputs duøng ñeå choïn caùc ngoõ vaøo vaø ngoõ ra sau cuøng cho heä thoáng (ac,bc,cc,dc). Vieäc thöïc hieän xaây döïng moâ hình duøng leänh connect ñöôïc thöïc hieän qua caùc böôùc: c.1) Xaùc ñònh haøm truyeàn hay heä thoáng khoâng gian traïng thaùi: nhaäp caùc heä soá soá cuûa töû soá vaø maãu soá moãi haøm truyeàn söû duïng teân bieán n1, n2, n3, , vaø d1, d2, d3, hoaëc nhaäp ma traän (A,B,C,D) söû duïng teân bieán a1, b1, c1, d1; a2, b2, c2, d2; a3, b3, c3, d3, c.2) Xaây döïng moâ hình khoâng gian traïng thaùi chöa noái: hình thaønh moâ hình bao goàm taát caû haøm truyeàn chöa ñöôïc keát noái. Ñieàu naøy ñöôïc thöïc hieän baèng caùch laëp ñi laëp laïi leänh append cho caùc khoái khoâng gian traïng thaùi hay tf2ss vaø append cho caùc khoái haøm truyeàn. tf2ss coù theå chuyeån moãi khoái thaønh heä khoâng gian traïng thaùi nhoû sau ñoù duøng leänh append ñeå taäp hôïp caùc khoái nhoû thaønh moät moâ hình hoaøn chænh. c.3) Chæ ra caùc keát noái beân trong: xaùc ñònh ma traän Q chæ ra caùch keát noái caùc khoái cuûa sô ñoà khoái. Trong moät haøng cuûa ma traän Q thaønh phaàn ñaàu tieân laø soá ngoõ vaøo. Nhöõng thaønh phaàn tieáp theo chæ caùc ngoõ ñöôïïc noái vaøo ngoõ vaøo treân. Ví duï: neáu ngoõ vaøo 7 nhaän caùc ngoõ vaøo khaùc töø ngoõ ra 2, 15 vaø 6 trong ñoù ngoõ vaøo aâm thì haøng töông öùng trong Q laø [7 2 -15 6]. c.4) Choïn ngoõ vaøo vaø ngoõ ra: taïo caùc vector inputs vaø outputs ñeå chæ ra ngoõ vaøo vaø ngoõ ra naøo ñöôïc duy trì laøm ngoõ vaøo vaø ngoõ ra cuûa heä thoáng. Ví duï: neáu ngoõ vaøo 1, 2 vaø 15 vaø ngoõ ra 2 vaø 7 ñöôïc duy trì thì inputs vaø outputs laø: inputs = [1 2 15] outputs = [2 7] c.5) Keát noái beân trong: duøng leänh: Thöïc hieän: PHAÏM QUOÁC TRÖÔØNG - 5 - GVHD: PHAÏM QUANG HUY