Matlab và ứng dụng trong cơ kỹ thuật Tài liệu giảng dạy tại trường ĐH QG HN Tài liệu giúp người học tiếp cận các nội dung cơ bản của matlab. Thích hợp cho các sinh viên mới nhập môn MATLAB. Kiến thức được ghi lại ngắn gọn và tổng hợp nhất.
Ộ Cỗ C ỗ i nói đ u ...................................................................................................................... 1 ớồ ộ I. ỘỌTỗỌọ C Chư ng . Ộ ọ ộ ........................................................................................ 3 Đ U .................................................................................................. 3 . Gi i thi u M‚ởỗ‚‛ .......................................................................................... 3 . M t s kiến th c cơ b n .................................................................................... 5 . . C{c phép to{n thẫng dụng............................................................................. 5 . . C{c l nh qu n lý ............................................................................................. 5 . . C{c l nh nh p xu t d li u ............................................................................ 7 1.2.4 Help trong MATLAB.................................................................................... 11 . Ởơ l c về M-file .............................................................................................. 12 . ởóm tắt ch ơng ............................................................................................. 14 . ‛|i t p ch ơng .............................................................................................. 16 Chư ng . VỐCTỚờ Vủ ỘỌ Tờ ộ...................................................................... 25 . ỡector v| ma tr n trong M‚ởỗ‚‛................................................................. 25 . ởhiết l p ma tr n trong M‚ởỗ‚‛ .................................................................. 25 . C{c phép to{n cơ b n đ i v i ma tr n, vector............................................... 33 . Đ i s tuyến tính.............................................................................................. 36 . ởóm tắt ch ơng ............................................................................................. 40 . ‛|i t p ch ơng .............................................................................................. 41 Chư ng . TÍộồ TỚÁộ Ở V I ỘỌTỗỌọ......................................................... 49 . Ở ph c ............................................................................................................. 49 . H|m vẫ danh ................................................................................................... 53 . Cực trị v| nghi m c a h|m s m t biến s ................................................... 54 . Đa th c m t biến s ......................................................................................... 57 . ởích ph}n v| đ o h|m ..................................................................................... 59 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t . ớh ơng trình vi ph}n ...................................................................................... 61 . ởóm tắt ch ơng ............................................................................................. 63 3.8 ‛|i t p ch ơng .............................................................................................. 64 Chư ng . ọ C4ộỒ C ỖÝ ồI U ...................................................................... 69 . Gi i thi u biến ký hi u .................................................................................... 69 . ‛iến v| biểu th c ............................................................................................. 70 . Ma tr n biến ký hi u ....................................................................................... 75 . ởích ph}n v| đ o h|m đa th c biến ký hi u ................................................. 77 . ớh ơng trình vi ph}n v| h|m s biến ký hi u .............................................. 79 . ởóm tắt ch ơng ............................................................................................. 80 . ‛|i t p ch ơng .............................................................................................. 81 Chư ng . Ộ ộỒ ồ ộ ồ ớ Vủ ỏ ỗI U C2 C U TờÚC ........................... 88 . M ng h n h p .................................................................................................. 89 . . ởhiết l p m ng h n h p ............................................................................... 89 . . ởruy xu t v| hiển thị thu c tính c a c{c phần t m ng h n h p ............ 90 . . ỗ u chu i ký tự trong m ng h n h p ........................................................ 93 . ‛iến có c u trúc ................................................................................................ 94 . . ởhiết l p v| hi u chỉnh c{c biến c u trúc.................................................... 94 . . ỡector biến c u trúc ...................................................................................... 97 . . C u trúc lồng nhau v| vector biến c u trúc lồng nhau ........................... 103 . ởóm tắt ch ơng ........................................................................................... 105 . ‛|i t p ch ơng ............................................................................................ 106 Chư ng . Đ Tồ TờỚộỒ ỘỌTỗỌọ............................................................... 109 . Đồ thị trong khẫng gian hai chiều ............................................................... 109 . . C{c l nh cơ b n ........................................................................................... 109 . . C{c l nh tăng c ng ................................................................................... 115 . Đồ thị trong khẫng gian ba chiều ................................................................. 120 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t . . Ở dụng plot .............................................................................................. 120 . . ở ol i v| mặt phẳng chiều .................................................................. 124 . ởóm tắt ch ơng ........................................................................................... 127 . ‛|i t p ch ơng ............................................................................................ 128 Chư ng . ỗ ớ TờÌộồ TờỚộỒ ỘỌTỗỌọ ....................................................... 138 . Gi i thi u M-file ............................................................................................ 138 . . ỡăn b n ........................................................................................................ 139 . . H|m do ng i dùng tự định nghĩa ........................................................... 140 . C{c l nh lựa chọn .......................................................................................... 146 . . C{c phép to{n quan h ............................................................................... 146 7.2.2 IF................................................................................................................... 148 7.2.3 SWITCH....................................................................................................... 152 . ỡòng lặp ......................................................................................................... 153 7.3.1 FOR .............................................................................................................. 153 7.3.2 WHILE ......................................................................................................... 155 . ởóm tắt ch ơng 7 ........................................................................................... 157 . ‛|i t p ch ơng ............................................................................................ 158 ớồ ộ II. ỘỌTỗỌọ ộỒ ỏ ộỒ ........................................................................... 163 Chư ng . ớồỨộ TÍCồ Đ ộỒ ồ C C C U ................................................ 163 . ợ{c định vị trí c{c kh}u, kh p trong cơ c u ................................................ 163 . Ỗh o s{t chuyển đ ng v| t o phim mẫ ph ng chuyển đ ng c a cơ c u . 167 . . Ỗh o s{t chuyển đ ng ................................................................................ 167 . . ở o clip mẫ ph ng chuyển đ ng ............................................................... 170 . ỡ n t c v| gia t c........................................................................................... 171 . ‛|i t p ch ơng ............................................................................................ 177 Chư ng . ỗÝ TồUỤ T ĐI U ỖồI ộ T Đ ộỒ ............................................... 193 . ‛iến đ i ỗaplace ............................................................................................. 193 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t . ‛iến đ i z ........................................................................................................ 196 . ợ}y dựng c{c h tuyến tính – dừng ............................................................. 199 . . Mẫ hình h|m truyền ................................................................................... 200 . . Mẫ hình điểm khẫng – điểm cực............................................................... 203 . . Mẫ hình khẫng gian tr ng th{i .................................................................. 205 . . Chuyển đ i gi a c{c mẫ hình .................................................................... 207 . . Đặc tính th i gian tr trong h|m truyền ................................................... 208 . . Ghép n i c{c mẫ hình ................................................................................. 208 . . Gi n đồ ‛ode, ộyquist, ộichols v| đ{p ng c a h ................................ 210 . ởóm tắt ch ơng ........................................................................................... 212 . ‛|i t p ch ơng ............................................................................................ 213 Ộ TỞ ọ C4ộỒ C ộỒ ỏ ộỒ CồUỤÊộ ỞỨU TờỚộỒ ỘỌTỗỌọ ...... 227 TủI ỗI U TồỌỘ Ỗồ Ớ .......................................................................................... 233 ỏỌộồ Ộ C ồủỘ .................................................................................................... 234 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t L i nói đ u MATLAB l| m t gói phần mềm m nh đang đ mục đích c a nhiều đ i t c s dụng r ng rãi cho nhiều ng kh{c nhau, đặc bi t l| trong khoa học v| kỹ thu t. M‚ởỗ‚‛ có thể s dụng theo hai c{ch kh{c nhau ởh nh t l| s dụng c{c l nh lần l t đ a v|o d u nhắc v| thu d c kết qu thẫng dịch th hai l| viết c{c l nh th|nh m t file có thể l| file l nh - scrip file hoặc d ng h|m – function file v| c{c l nh đ c thực hi n tự đ ng ngay sau khi gọi thực hi n thẫng qua gọi tên file. M‚ởỗ‚‛ đ c trang bị sẵn nhiều h|m để thực hi n c{c nhi m vụ kh{c nhau thu c nhiều lĩnh vực, từ đơn gi n thực hi n c{c phép tính to{n học đến c{c nhi m vụ ph c t p nh tìm nghi m c a ph ơng trình vi ph}n, t i nh ởhêm n a, M‚ởỗ‚‛ còn đ trình cho phép ng u hóa, x lý c trang bị c{c c}u l nh c u trúc dùng cho l p i dùng tự ph{t triển c{c ch ơng trình theo mục đích riêng cho nh ng b|i to{n cụ thể gặp ph i trong thực tế. Cu n gi{o trình n|y đ đ ng hóa, tr c biên so n cho sinh viên khoa Cơ học Ỗỹ thu t v| ởự ng Đ i học Cẫng ngh , Đ i học Qu c gia H| ộ i nhằm giúp sinh viên l|m quen v i M‚ởỗ‚‛. s dụng M‚ởỗ‚‛ để gi i c{c b|i to{n đơn gi n v| tiến t i l p trình tính toán mô phỏng cho các bài toán cơ bản phức tạp hơn. Khi đã nắm đư c những kiến thức cơ bản về khả năng, phương thức làm vi c của MATLAB và kỹ năng lập trình, sinh viên có thể xây dựng các chương trình phức tạp hơn trong MATLAB để giải quyết hi u quả các v n đề thực tế liên quan đến ngành, chuyên ngành đã học. Cuốn sách đư c dùng kết h p với các bài giảng và các buổi thực hành để trang bị những kiến thức c n thiết cho các nhà khoa học và kỹ sư tương lai để có thể phát triển và nâng cao khả năng tính toán, xử lý và phân tích những v n đề chuyên môn đa dạng với sự tr giúp của máy tính. ộ i dung gi{o trình gồm c{c ch ơng sau: Ch ơng M đầu, Ch ơng ỡector v| ma tr n Ch ơng ởính to{n s v i M‚ởỗ‚‛ Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng ‛ cẫng cụ ký hi u Ch ơng M ng h n h p v| d li u có c u trúc Ch ơng 6: Đồ thị trong MATLAB Ch ơng 7: ỗ p trình trong MATLAB Ch ơng ớh}n tích đ ng học cơ c u Ch ơng ỗý thuyết điều khiển tự đ ng Ỗết thúc m i ch ơng, sinh viên có thể tự ẫn t p v| c ng c kiến th c đã học qua mục t ng h p c{c l nh trong ch ơng v| b|i t p có l i gi i t ơng ng. Đ i v i nh ng b|i t p khẫng có l i gi i chi tiết, sinh viên có thể trao đ i v i gi ng viên trong c{c bu i thực h|nh. ộgo|i ra để cung c p thẫng tin định h ng cho sinh viên mu n tìm hiểu thêm nh ng cẫng cụ dùng cho nh ng ng dụng chuyên s}u ởoolbox , m t s b cẫng cụ ph biến sẽ đ c gi i thi u tóm tắt trong phần phụ lục. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U ớồ ộ I. MATLAB C Chư ng . Ộ 3 ọ ộ Đ U 1.1 Ồi i thi u ỘỌTỗỌọ MATLAB (MATrix LABoratory l| phần mềm c a cẫng ty MathỢorks có trụ s chính ộatick, Massachusetts, Mỹ (www.mathworks.com), đ c ng dụng r ng rãi trong c{c lĩnh vực khoa học, kỹ thu t, đặc bi t l| điều khiển tự đ ng v| x lý tín hi u s . M‚ởỗ‚‛ đ c ph{t triển b i Cleve Moler v|o cu i nh ng năm c a thế kỷ tr c trên cơ s th vi n nguồn c a ỗIộớ‚CỖ v| ỐIỞớ‚CỖ ốỚờởờ‚ộ. ộh ng phiên b n đầu tiên c a M‚ởỗ‚‛ ch yếu phục vụ cho tính to{n x lý ma tr n v| gi i c{c ph ơng trình đ i s tuyến tính. ộg|y nay, M‚ởỗ‚‛ còn đ c biết đến nh l| m t cẫng cụ có kh năng x lý đồ họa m nh mẽ (Theo PC Magazine Encyclopedia). Ồiao di n ỘỌTỗỌọ Hình 1. 1. Giao diện MATLAB Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 4 Ỗhi kh i đ ng, M‚ởỗ‚‛ sẽ hi n ra giao di n mặc định nh trên, trong đó bao gồm c{c c a s Current ốolder ởh trong nó. mục hi n h|nh, cho phép truy xu t t i c{c file ch a Command Ợindow C a s l nh, ng n|y từ sau d u nhắc >> . i dùng có thể nh p l nh trên c a s Workspace: Ỗhẫng gian b nh c a M‚ởỗ‚‛, dùng để l u tr d li u c a c{c biến trong m t phiên l|m vi c c a M‚ởỗ‚‛. Command History: ỗịch s l nh đã thực hi n, cho phép xem hoặc thực hi n l i nh ng l nh đã nh p v|o Command Ợindow tr c đó. Ởau đ}y l| m t s ví dụ đơn gi n thực hi n trong Command Ợindow t i d u nhắc >> nh p c}u l nh sau: >> a = 1 M‚ởỗ‚‛ sẽ l u biến a có gi{ trị hình: v|o Ợorkspace v| hiển thị kết qu trên m|n a = 1 ở ơng tự t o c{c biến b, c có gi{ trị lần l t l|: >> b = 2 b = 2 >> c = a + b c = 3 Ỗhi chúng ta khẫng chỉ rậ gi{ trị tr về c a phép tính, M‚ởỗ‚‛ sẽ s dụng biến ans viết tắt c a answer để l u kết qu n|y. >> b – a ans = 1 Ỗhi c}u l nh kết thúc b i d u ch m phẩy, M‚ởỗ‚‛ sẽ thực hi n phép tính nh ng khẫng hiển thị kết qu lên m|n hình. >> d = a*b; Hai phím mễi tên lên xu ng ↑ ↓ có thể đ c s dụng để gọi l i nh ng c}u l nh đã s dụng tr c đó. Có thể s dụng hai phím n|y t i d u nhắc >> hoặc sau khi nh p m t s ký tự đầu tiên c a c{c ký tự đã s dụng. ỡí dụ: để gọi l i l nh b = chỉ cần nh p b v| sau đó nh n phím mễi tên. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 5 ỏ u % đ c s dụng để viết chú thích cho c}u l nh. Mọi ký tự phía sau d u % sẽ khẫng đ c M‚ởỗ‚‛ x lý. ỡí dụ l y a nh}n v i b v| g{n gi{ trị cho d >> d = a*b 1.2 Ộ t s ki n th c c b n 1.2. C{c phép to{n thông d ng ởrong M‚ởỗ‚‛ c{c phép to{n c ng, trừ, nh}n, chia đ c biểu di n thẫng qua c{c ký tự đã quy định tr c. ‛ ng 1.1 thể hi n c{c phép to{n thẫng dụng v| c{ch nh p c{c phép to{n n|y trong M‚ởỗ‚‛. MATLAB Ý nghĩa MATLAB Ý nghĩa a+b a+b log(x) ln(x) a-b a–b asin(x) sin-1(x) a*b Ab log10(x) log10(x) a/b a b acos(x) cos-1(x) a^b ab abs(x) sin(x) sin(x) atan(x) tan-1(x) sqrt(x) x rand tạo số thực ngẫu nhiên trong khoảng , cos(x) cos(x) round(x) làm tròn tới số nguyên gần nhất exp(x) ex floor(x) làm tròn tới số nguyên bé hơn tan(x) tan(x) ceil(x) làm tròn tới số nguyên lớn hơn x Bảng 1. 1. Các phép toán thông dụng trong MATLAB 1.2. C{c l nh qu n lý ởrong M‚ởỗ‚‛ khi gặp tr ng h p th i gian thực hi n l nh qu{ l}u, có thể s dụng t h p phím ctrl + c để ngừng c{c tính to{n đang thực thi. C}u l nh m i có thể đ c nh p v|o t i d u nhắc xu t hi n sau khi thực hi n t h p phím vừa nêu, l nh ngắt n|y đặc bi t hi u qu khi l p trình v i vòng lặp. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 6 Ỗhi mu n xóa m t hay nhiều biến, ta có thể s dụng l nh clear v i c{c cú ph{p thẫng dụng nh sau >> clear bien >> clear all ởrong đó - bien v| all lần l Workspace t l| tên c{c biến cụ thể hoặc t t c c{c biến có trong - Cú ph{p th nh t cho phép xóa biến cụ thể kh i Ợorkspace còn cú ph{p th hai cho phép ng i s dụng xóa to|n b t t c c{c biến, h|m hi n h|nh Khi mu n hi n danh s{ch c{c biến có trong Ợorkspace ta có thể dùng who hoặc whos theo cú ph{p sau >>who Hoặc >>whos ởrong đó l nh who chỉ li t kê tên c{c biến, còn l nh whos li t kê c tên v| c{c thẫng tin cụ thể về biến. ỡí dụ ộh p dòng l nh >> a = 1; b = 2; c = 3; ởrong Ợorkspace xu t hi n lần l t c{c biến a, b, c v i gi{ trị lần l t l| , , . Quan s{t sự kh{c bi t khi s dụng who v| whos : >>who Your variables are: a b c >>whos Name Size Bytes Class a 1x1 8 double b 1x1 8 double c 1x1 8 double Attributes ợóa c{c biến trong Ợorkspace bằng l nh clear: >>clear a >>a ??? Undefined function or variable ‘a’ >>clear all % xóa nốt các biến b và c Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 7 ởrong đó biến a đ c xóa kh i Ợorkspace tr c tiên, tiếp theo l| c{c biến b v| c. Để ti n quan s{t ta có thể l|m s ch Command Ợindow bằng l nh clc . 1.2. C{c l nh nh p xu t d li u ộh p d li u từ b|n phím input Cú ph{p >>bien = input(‘text’) >>bien = input(‘text’ ‘s’) ởrong đó: bien l| tên biến b t kỳ do ng i s dụng đặt, text l| đo n văn b n sẽ hiển thị th|nh c}u nhắc trên m|n hình, s l| tham s để M‚ởỗ‚‛ hiểu v| x lý d li u nh p v|o d ng x}u ký tự. c hai cú ph{p trên, đo n văn b n sẽ đ c hiển thị trên m|n hình, đồng th i M‚ởỗ‚‛ sẽ ch ng i s dụng nh p ký tự từ b|n phím tuy nhiên khi s dụng cú ph{p th nh t, ng i dùng chỉ có thể nh p v|o m t s , còn cú ph{p th hai, ng i dùng có thể nh p v|o m t x}u ký tự sau khi đã thẫng b{o cho M‚ởỗ‚‛ bằng tham s s. ởr ng h p thực hi n l nh input khi ng i dùng khẫng nh p gi{ trị m| b m trực tiếp phím Ốnter thì gi{ trị tr về sẽ l| m t m ng r ng. ỡí dụ >> Lop = input(‘Ban hoc lop nao: ‘, ‘s’) Ban hoc lop nao: Co Dien Tu Lop = Co Dien Tu >>x=10; >>SoSV = input(‘Lop ban co bao nhieu sinh vien: ‘) Lop ban co bao nhieu sinh vien: 80 SoSV = 80 ‘) >>SVG = input(‘Bao nhieu sinh vien duoc A+ mon MATLAB: Bao nhieu sinh vien duoc A+ mon MATLAB: x SVG = 10 ộh p d li u từ file load ởrong M‚ởỗ‚‛ có r t nhiều c{ch để t i d li u từ file v|o Ợorkspace, trong đó đơn gi n nh t l| l nh load cho phép t i to|n b n i dung file v|o Ợorkspace. Yêu cầu khi s dụng l nh load l| n i dung file đ c t i ph i d ng ma tr n ch a c{c s , m i s c{c dòng ph}n c{ch nhau bằng ký tự tr ng, d u phẩy hoặc tab. ốile có thể ch a c{c dòng chú thích trong M‚ởỗ‚‛ c{c dòng bắt đầu bằng ký tự % . Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 8 Cú ph{p >>load name.ext ởrong đó name.ext l| tên file ch a d li u cần t i. ộếu trong phần tên file khẫng có phần m r ng ext, M‚ởỗ‚‛ sẽ tìm trong th mục hi n h|nh file có tên name.mat, nếu khẫng tìm th y name.mat hoặc tên file khẫng có phần m r ng khẫng ph i l| mat ví dụ txt, dat thì M‚ởỗ‚‛ sẽ coi file đó l| file ch a d li u ASCII. ỗ nh load nh đã nói trên sẽ cho phép t i to|n b n i dung trong file name.ext v|o trong Ợorkspace. ỡí dụ T o trong th mục hi n h|nh file diem.txt l| m t ma tr n có n i dung nh sau h|ng c t 10 8 8.8 7 9 8.2 5 8 6.8 9 6 7.2 9 10 9.6 Ởau đó t i d li u từ file v|o Ợorkspace rồi copy v|o c{c vector x, y, z. C{c c}u l nh cần thực hi n có thể nh sau >>load diem.txt t i d li u từ file v|o ma tr n >>x = diem(:,1); copy c t c a diem vao vector x >>y = diem(:,2); copy c t c a diem v|o vector y >>z = diem(:,3); copy c t c a diem v|o vector z ộh p d li u từ file fscanf Cho phép t i d li u từ file ma tr n m| c{c kiểu d li u c a c{c phần t l| khẫng gi ng nhau. Cú ph{p >>A = fscanf(fid, format) ởrong đó file đ c x{c định b i tham s fid (file identifier l| s nguyên x{c định file có từ l nh fopen cú ph{p fid = fopen(filename) ), format l| định d ng d li u. ởo|n b d li u có định d ng format sẽ đ c copy từ file x{c định b i fid v|o trong Ợorkspace v| sắp xếp theo d ng c t. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 9 ỡí dụ file BDTH.txt có n i dung nh sau: 10 7 5 4 3 >>fid 8 8.8 A 9 7.6 B 7 6.2 C 5 4.6 D 3 3 F = fopen(‘BDTH.txt’); >>B=fscanf(fid,’%d %d %f %c’,[4 inf]) l u ma tr n trong file ‛ỏởH.txt v|o ma tr n ‛ có v i s c t trong ma tr n g c h|ng % t ơng ng >>A=B’ ‚ l| ma tr n chuyển vị c a ‛ ởhực hi n phép tính v| quan s{t kết qu thu đ c A = 10.0000 8.0000 8.8000 65.0000 7.0000 8.0000 7.6000 66.0000 5.0000 7.0000 6.2000 67.0000 4.0000 5.0000 4.6000 68.0000 3.0000 3.0000 3.0000 70.0000 ỗưu ý: Ở dụng fscanf để đọc file có c c{c ký tự v| c{c s nh ví dụ trên, ma tr n tr về sẽ l| ma tr n s , trong đó gi{ trị tr về c a c{c ký tự trong ma tr n l| gi{ trị t ơng ng trong b ng mã ‚ỞCII. ởh kiểm tra v i gi{ trị cu i cùng c a h|ng trong ma tr n thu đ c >>char(A(1,4)) ans = A ợu t d li u ra m|n hình disp Cú ph{p >>disp(X) ởrong đó X l| m ng d li u. ỗ nh cho phép xu t ra m|n hình n i dung c a m ng X m| khẫng đ a ra tên c a m ng n|y. ởrong tr chu i đó. ng h p X l| m t chu i ký tự, disp cễng sẽ xu t ra n i dung ỡí dụ Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 10 >>disp(A) xu t ra ma tr n ‚ thu đ c từ ví dụ trên >>nhap = ‘Kiem tra lenh disp’ >>disp(nhap) Kiem tra lenh disp ợu t d li u theo định d ng ra file hoặc ra m|n hình fprinf Cú ph{p >>fprintf(fileID,formatSpec,A1,...,An) >>fprintf(formatSpec,A1,...,An) ởrong đó fileID l| s nguyên x{c định file thu đ c khi s dụng l nh fopen, formatSpec l| định d ng {p dụng cho c{c phần t c a m ng “ , “ , …, “n. Cú ph{p th nh t cho phép xu t ra file d li u d i d ng c t {p dụng định d ng formatSpec đ i v i c{c phần t c a m ng “ , “ , …, “n. Cú ph{p th hai {p dụng định d ng formatSpec cho d li u v| xu t ra m|n hình. C{c định d ng cho vi c xu t, nh p d li u xem b ng phần . ỡí dụ sau trình b|y c{ch m file vd1.txt v| ghi v|o n i dung d i đ}y Diem cua sinh vien 1 la: 8 Diem cua sinh vien 2 la: 9 Diem cua sinh vien 3 la: 10 >> A=[1 2 3;8 9 10]; >> fileID=fopen(‘vd1.txt’,’w’); >> formatSpec=‘Diem cua sinh vien %d la: %d\n’; >> fprintf(fileID,formatSpec,A); >> fclose(fileID); ộ i dung trên cễng có thể xu t trực tiếp ra m|n hình >> fprintf(formatSpec,A); ỗ nh fprintf còn cho phép định d ng sẵn s ký tự dùng để biểu di n c{c biến. ỡí dụ % d sẽ s dụng m t kho ng r ng ký tự để biểu di n m t s nguyên, % s sẽ s dụng m t kho ng r ng ký tự để biểu di n m t x}u. Đ i v i s thực, s ch s phần th p ph}n cễng đ c x{c định, ví dụ % . f đồng nghĩa v i vi c Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 11 M‚ởỗ‚‛ sẽ s dụng m t kho ng r ng ký tự bao gồm d u th p ph}n v| phần th p ph}n v i hai ch s biểu di n phần th p ph}n. ỗưu ý: ộếu phần biểu di n r ng hơn so v i yêu cầu, c{c ký tự đầu tiên sẽ l| c{c ký tự tr ng, nếu phần biểu di n phần th p ph}n r ng hơn so v i yêu cầu, c{c ký tự cu i cùng sẽ l| s . ỗ u d li u v|o file save Cú ph{p >>save filename >>save filename x >>save filename x y z ởrong đó filename l| tên file d li u ng biến x, y, z có trong Ợorkspace. i s dụng mu n dùng để l u c{c Có thể l u m t hoặc nhiều biến từ Ợorkspace v|o file bằng c{ch thêm tên biến ví dụ x, y, z v|o sau chu i ký tự biểu di n tên file. 1.2.4 Help trong MATLAB ỡề nguyên tắc ta có thể truy xu t mọi thẫng tin về M‚ởỗ‚‛ s dụng ch c năng tr giúp Help. ỏ i đ}y l| m t s c{ch s dụng đ i v i ch c năng n|y. Hình 1. 2. Help Browser Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 12 Ở dụng tr giúp khi biết tên h|m trong c a s l nh, khi gậ >>help tên_ham, file M-help t ơng ng sẽ hiển thị trong c a s l nh, bao gồm mẫ t tóm tắt ch c năng c a h|m, cú ph{p v| c{c h|m liên quan. ởìm kiếm thẫng tin liên quan về m t từ khóa trong c a s l nh, khi gậ >>lookfor tu_khoa, M‚ởỗ‚‛ sẽ hiển thị t t c c{c ch đề liên quan đến từ khóa vừa nh p, lookfor đặc bi t h u ích khi khẫng nh chính x{c c{ch viết c a tên h|m. Ở dụng Help ‛rowser trình duy t tích h p v i c a s M‚ởỗ‚‛ cho phép tìm kiếm v| đ a ra kết qu d i d ng t|i li u HởMỗ. Help ‛rowser có thể m theo c{c c{ch s dụng phím help trên thanh cẫng cụ, gậ helpbrowser hoặc doc trong c a s l nh, chọn Help\Menu help trên thanh thực đơn. C a s Help ‛rowser bao gồm hai phần chính, Help ộavigator bên tr{i cho phép tìm kiếm thẫng tin, bên ph i l| n i dung thẫng tin tìm đ c. ởrong c a s Help ộavigator, thẫng tin có thể đ c tìm theo c{c ph ơng th c Contents C{c mục tìm kiếm sắp xếp theo danh s{ch. Index ởìm kiếm theo từ khóa. Ởearch results danh s{ch c{c kết qu tìm đ c. ỏemos c{c ch ơng trình gi i thi u có sẵn về c{c ðề mục trong MATLAB. . Ở lư c v Ộ-file ‛ên c nh vi c cho phép ng i s dụng thao t{c trực tiếp trên c a s l nh, M‚ởỗ‚‛ cung c p m t chế đ so n th o văn b n qua đó ng i dùng có thể thực hi n m t t p h p c{c l nh lặp lặp đi lặp l i hoặc tự x}y dựng cho mình c{c h|m phù h p v i từng yêu cầu cụ thể. ộg i s dụng có thể so n th o v| l u l i d i d ng file văn b n có phần m r ng l| .m. M-file có thể đ c t o đơn gi n bằng vi c chọn New trên danh mục File v| sau đó chọn Script, hoặc gậ l nh edit trên c a s l nh. Ởau khi đã so n th o n i dung cho M-file, ng i s dụng có thể ch y lần l t t t c c{c n i dung có trong M-file bằng c{ch gậ tên c a file lên c a s l nh, hoặc có thể copy m t phần c a file rồi d{n lên c a s l nh để thực thi. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 13 ch ơng m đầu n|y, t{c gi chỉ gi i thi u sơ l dụ đơn gi n, trong tr c về M-file v i m t s ví ng h p sinh viên đã có kiến th c cơ b n về M‚ởỗ‚‛, có thể chuyển sang mục . để tìm hiểu kỹ hơn về M-file. Ởau đ}y l| m t ví dụ về vi c tính t ng, hi u v| th ơng c a hai s a v| b s dụng M-file để thực hi n. qh_2so.m a = 5 b = 3 tong = a +b hieu = a – b tich = a*b M-file qh_2so.m ch a cho hai biến a v| b, dòng l nh trong đó dòng tiếp theo lần l dòng đầu tiên g{n c{c gi{ trị t tính t ng, hi u, tích t ơng ng c a hai s trên. Ỗhi gậ qh_ so trên c a s l nh, M‚ởỗ‚‛ sẽ hiển thị nh sau >>qh_2so a = 5 b = 3 tong = 8 hieu = 2 tich = 15 ỗ i ích đầu tiên c a vi c s dụng M-file có thể th y đ}y l| nếu ta có nhiều cặp gi{ trị (a, b) thì chỉ vi c thay gi{ trị t ơng ng v|o qh_2so v| ch y l i file ch khẫng ph i lặp l i vi c thực hi n c{c l nh tính to{n ngo|i c a s l nh. ‛ên c nh đó, nh đã nói trên, M‚ởỗ‚‛ cho phép ng i dùng tự x}y dựng c{c h|m v i c{c tham s đầu v|o cễng nh gi{ trị tr về t ơng ng, sau đ}y l| m t ví dụ đơn gi n về vi c x}y dựng h|m tính t ng c a hai s tong.m function z = tong(a,b) z = a+b; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 14 end C u trúc cơ b n đ i v i m t h|m trong M‚ởỗ‚‛ l| dòng khai b{o h|m bắt đầu bằng từ khóa function, tiếp đến l| c{c thẫng tin liên quan về gi{ trị đầu ra v| đầu v|o, kết thúc h|m bằng từ khóa end, phần n i dung gi a l| c{c l nh phù h p theo yêu cầu b|i to{n. H|m tong.m vừa x}y dựng có thể đ c gọi trong c a s l nh nh sau >>t1 = tong(3,2) t1 = 5 >>t2 = tong(6,4) t2 = 10 1.4 Tóm tắt chư ng 1 Ộ t s ký t đặc bi t : ở o kho ng c{ch gi a c{c phần t h|ng/c t c a ma tr n c{ch đều, biểu di n m t ( ) ộgoặc bao tham s h|m, chỉ s m ng, vector [ ] ộgoặc bao phần t m ng, vector . ỏ u ngăn c{ch phần nguyên v| phần th p ph}n … Ỗý hi u dòng liên tục , ộgăn c{ch c{c c}u l nh v| c{c phần t trên cùng m t h|ng ; ộgắt c t v| khẫng hiển thị kết qu sau khi thực hi n l nh % ởhể hi n phần chú thích v| c{c định d ng đặc bi t ộhóm l nh qu n lý clc ợóa m|n hình c a c a s l nh clear ợóa biến kh i b nh help ởr giúp khi biết chính x{c tên h|m lookfor ởr giúp khi khẫng biết chính x{c tên h|m Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 15 quit ởho{t kh i ch ơng trình M‚ởỗ‚‛ who Hiển thị c{c biến hi n h|nh danh s{ch rút gọn whos Hiển thị c{c biến hi n h|nh danh s{ch đầy đ Ộ t s bi n v| hằng đặc bi t ans Ỗết qu gần nh t thu đ c i,j Đơn vị phần o, tuy nhiên i v| j cễng th ng xuyên đ c s dụng nh l| chỉ s trong c{c vòng lặp, để tr{nh xung đ t x y ra, trong vòng lặp nên s dụng ii hoặc jj l|m chỉ s inf ỡẫ cùng nan Ỗết qu s khẫng đ pi Ở π c định nghĩa ộot a ộumber ộhóm l nhnh p xu t d li u input ộh p d li u từ b|n phím load Đọc d li u từ file, định d ng biến gi ng nhau fscanf Đọc d li u từ file, định d ng biến kh{c nhau disp ợu t ra m|n hình n i dung c a m t m ng, m t x}u fprintf ỗ u d li u có định d ng ra file hoặc ra m|n hình Đ nh d ng cho fprintf v| fscanf %c Ỗý tự đơn %s ợ}u ký tự %d Gi{ trị nguyên %f Gi{ trị d u ch m đ ng \n ợu ng dòng \t Chèn tab theo ph ơng ngang \v Chèn tab theo ph ơng dọc Đ nh d ng s hi n th format short Hiển thị ch s sau d u phẩy, mặc định format long Hiển thị format short e Gi ng định d ng short nh ng có thêm phần lễy thừa ch s sau d u phẩy Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 16 format long e Gi ng định d ng long nh ng có thêm phần lễy thừa format bank Định d ng theo quy định ng}n h|ng cho dollars v| cents, hai ch s sau d u phẩy Bảng 1. 2. Tóm tắt các hàm sử dụng trong chương 1 1.5 ọ|i t p chư ng 1 ọ|i . ộh p l nh ộh p lần l t c{c l nh sau, tr c khi nh p hãy dự đo{n kết qu in ra m|n hình a) >>a = 1 + 2 + 3 + 4 + 5 +6 b) >>b = 1 + 2 + 3 + 4 + 5 + 6; c) >>b +3 d) >>1 + 2 + 3 + 4 + 5 + 6 e) >>c = 10*ans Đáp án: a) a = gi{ trị c a t ng thị trên c a s l nh. + + + + + l u v|o biến a, kết qu a = hiển b) b = , kết qu c a phép tính khẫng hiển thị trên m|n hình c a s l nh do có d u ; cu i c}u l nh, tuy nhiên gi{ trị c a t ng + + + + + v n đ c l u v|o biến b. c) ans = , kết qu phép tính b + 3 hiển thị trên m|n hình c a s l nh, trong tr ng h p phép tính khẫng x{c định biến l u kết qu nh c}u n|y, kết qu sẽ tự đ ng g{n v|o biến ans. d) ans = 21 e) c = Ỗết qu c}u n|y phụ thu c v|o c}u d do có s dụng biến ans trong phép tính, do c}u d ta có ans = 21 nên c = 210. ọ|i . C{c phép tính c b n ởhực hi n c{c phép tính sau trong M‚ởỗ‚‛ 3 22 a) 16 5 2 b) 4 2 / 2 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U c) sin 17 4 d) log(e) Đáp án: a) b) c) d) 0.1707 2.5198 0.7071 log(exp(1)) 1 ỗưu ý: th tự u tiên c{c phép tính trong M‚ởỗ‚‛. ởrong M‚ởỗ‚‛, c{c phép tính đ c thực hi n theo th tự nh quy định trong đ i s , trong đó l)y thừa thực hi n tr c, tiếp theo l| c{c phép nhân, chia rồi đến cộng, trừ. ởuy nhiên khi xu t hi n ngoặc , phép tính trong ngoặc sẽ đ c u tiên tr c. Đ i v i nh ng phép tính có cùng m c u tiên, trình tự tính to{n tiến h|nh từ tr{i qua ph i. ỡí dụ Phép tính d i đ}y đ c thực hi n trong M‚ởỗ‚‛ nh sau 1 4 6 2 23 5 7 >>1/(2 + 3^2) + 4/5 * 6/7 ans = 0.7766 ởuy nhiên trong tr ng h p khẫng có ngoặc >>1/2 + 3^2 + 4/5 * 6/7 ans = 10.1857 ọ|i . Tính to{n v i bi n G{n cho x gi{ trị , thực hi n c{c phép tính sau trong M‚ởỗ‚‛ x2 a) 6 2 b) e1 x x c) 1 x2 d) x 3 sin( x 2 ) e) x1 / 2 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U tan 1 ( x) 1 x2 f) Đáp án: tr a) b) c) d) e) f) 18 c tiên cần nh p >>x = 2 1.3333 148.4132 0.8944 -6.0544 1.2599 0.2214 ọ|i . ỗ|m tròn Ỗiểm tra gi{ trị c a c{c phép tính sau a) round(6/9) b) floor(6/9) c) ceil(6/9) Đáp án: a) 1 b) 0 c) 1 ọ|i . ọi n v| hằng đặc bi t Gậ c{c l nh sau v|o M‚ởỗ‚‛ v| dự đo{n kết qu thu đ c a) exp(i*pi) b) 1/0 c) Inf/Inf Đáp án: a) ei cos( ) i sin( ) 1 0i MATLAB: ans = -1.0000 + 0.0000i b) Inf c) NaN ọ|i . Ởave v| ỗoad ỏùng l nh save t o file bai1_6 ch a hai biến sv v| diem có gi{ trị nh sau >>sv = [1;2;3;4;5]; >>diem = [6.25;7;8.50;9.75;10]; ợóa Ợorkspace, dùng l nh load để t i l i c{c biến sv, diem v|o Ợorkspace Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 19 Đáp án: >>save bai1_6 sv diem >>clear all >>load bai1_6 Có thể s dụng load để t i v|o Ợorkspace c{c biến cụ thể từ file theo cú ph{p load filename var, ví dụ b|i n|y có thể dùng >>load vd1_6 diem để chỉ load biến diem từ file v|o Ợorkspace. ọ|i . fopen v| fscanf Ở dụng m t ch ơng trình so n th o b t kỳ, t o file bai1_7.txt có n i dung l| m t ma tr n nh sau 1 2 3 4 5 6 7 8 0 0 0 0 Ở dụng fopen v| fscanf để hi n thị l i ma tr n trên lên m|n hình c a s l nh. Đáp án: để s dụng fscanf tr c tiên ta cần thẫng s fid l y từ l nh fopen >>fid = fopen(‘bai1_7.txt’); ỗưu ý: khi dùng fopen, tên file đ a v|o khẫng có phần m r ng, M‚ởỗ‚‛ sẽ tự đ ng tìm .mat file có tên nh tên đ a v|o, nếu fopen khẫng thể m đ c file, fid sẽ nh n gi{ trị = -1. >>fscanf(fid, ‘%d’, [4,3]); M‚ởỗ‚‛ l|m vi c v i ma tr n theo c t, m{y tính x lý file theo dòng. ốile bai1_7.txt có ma tr n h|ng c t t ơng đ ơng v i s dòng c a file l| . Ỗhi thực thi, fscanf đọc từng s c a file, l y s đầu c a h|ng , tiếp đến s c a h|ng , cu i cùng l| s c a h|ng , đ a t t c s n|y v|o m t ma tr n m t c t. Ởinh viên có thể tự kiểm tra l i bằng c{ch nh p l nh >>fscanf fid, %d thay vì >>fscanf fid, %d , , . ví dụ n|y ta s dụng , để yêu cầu M‚ởỗ‚‛ t i d li u từ file v|o ma tr n h|ng c t. ộh v y phần t c a dòng th nh t trong file đ c đ a v|o vị trí t ơng ng c a c t ma tr n m i t o, phần t c a dòng th hai đ c đ a từ file v|o vị trí t ơng ng c a c t Ma tr n thu đ c sau b c n|y sẽ có d ng: 1 5 0 2 6 0 3 7 0 4 8 0 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U Để thu đ tr n 20 c ma tr n nh trong file, ta cần thực hi n b c chuyển vị ma >>ans’ ọ|i . fprintf in ra m|n hình ỗoad l i hai biến sv, diem b|i . v|o Ợorkspace, dùng l nh fprintf in kết qu sau ra m|n hình trong đó phần điểm có hai ch s sau d u th p ph}n. 1 6.25 2 7.00 3 8.50 4 9.75 5 10.00 Đáp án: >>ds = [sv’; diem’]; >>formatSpec=‘%d\t%.2f\n’; >>fprintf(formatSpec,ds); Hoặc >>fprintf(‘%d\t%.2f\n’,ds) ọ|i . fprintf xu t ra file Ở dụng l nh fprintft o file bai1_9.txt có n i dung sau s trong b|i . dụng biến ds Bang diem sinh vien STT Diem 1 6.25 2 7.00 3 8.50 4 9.75 5 10.00 Đáp án: >>fid=fopen(‘bai1_9.txt’,’w’); >> fprintf(fid,’Bang diem sinh vien\n’); >> fprintf(fid,’STT\tDiem\n’); >> fprintf(fid,’%d\t%.2f\n’,ds); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 21 >> fclose(fid); ọ|i . Input ở o biến r có gi{ trị nh p v|o từ b|n phím l| b{n kính c a hình cầu theo cm. In ra m|n hình thể tích v| di n tích bề mặt hình cầu theo m u sau The tich hinh cau la V cm khoi Dien tich hinh cau la S cm vuong trong đó gi{ trị thể tích v| di n tích có hai ch s sau d u th p ph}n Cẫng th c tính thể 4 V r 2 , S 4 r 2 3 tích v| di n tích bề mặt t ơng ng Đáp án: >>r = input(‘Nhap ban kinh hinh cau (cm): ‘); >>tt = 4/3*pi*r^3; >>dt = 4*pi*r^2; >>fprintf('\nThe tich hinh cau la %.2f cm khoi\nDien tich hinh cau la %.2f cm vuong\n',tt,dt); ọ|i . Đ iđ nv ở o biến pounds để l u trọng l ng theo pounds có gi{ trị nh p v|o từ b|n phím, đ i ra kilograms v| g{n gi{ trị cho biến kilos. Gi{ trị quy đ i l| 1 kilogramm = 2.2 pounds ọ|i . Đ i đ n v ti p ở o biến ftemp để l u nhi t đ theo ốahrenheit ố có gi{ trị nh p v|o từ b|n phím, đ i ra đ Celcius C v| l u kết qu v|o biến ctemp. Gi{ trị quy đ i l| C ( F 32) ọ|i . 5 9 Đ nh d ng hi n th ởìm lựa chọn cho l nh format để có thể hiển thị kết qu sau >>5/16 + 2/7 ans = 67/112 ọ|i . ộhi t đ c m nh n v| nhi t đ th c t Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 22 Gió th ng l|m cho khẫng khí l nh hơn so v i thực tế. Cẫng th c tính nhi t đ c m nh n khi biết nhi t đ thực tế ở đ Celcius v| v n t c gió ỡ km/h hai gi{ trị ở, ỡ nh p v|o từ b|n phím WT 0.045 (5.2735 V 10.45 0.2778 V ) (T 33.0) 33 ở o biến ở, ỡ l u nhi t đ c m nh n v| t c đ gió có gi{ trị nh p từ b|n phím, tính gi{ trị nhi t đ c m nh n, in ra m|n hình kết qu nh sau Nhiet do thuc te: (do C) Toc do gio: (km/h) Nhiet do cam nhan: (do C) Ỗiểm tra v i ở = ọ|i . do C , ỡ = km/h rand H|m rand cho phép t o s thực trong kho ng a) b) c) d) e) f) ọ|i . a) b) c) d) ọ|i . ở ở ở ở ở ở os os os os os os , thực trong kho ng , thực trong kho ng , thực trong kho ng , nguyên trong kho ng , nguyên trong kho ng , nguyên trong kho ng , ọi u di n s th c Ở dụng fprintf biểu di n s thực . ởrong kho ởrong kho ởrong kho ởrong kho phần th p ph}n phần th p ph}n phần th p ph}n phần th p ph}n ng r ng r ng r ng r ng ng ng ng ký tự v i ch s ký tự v i ch s ký tự v i ch s ký tự v i ch s ọi u di n ký t ở o hai biến sau x = 12.34 y = 4.56 Điền v|o ch tr ng trong l nh fprintf d i đ}y để có thể hiển thị c{c kết qu a) >>fprintf( 0123456789 0000012.340 b) >>fprintf( Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 23 0123456789 12 c) >>fprintf( 0123456789 4.6 d) >>fprintf( 0123456789 4.6 ! G i ý Để chuyển đ i m t ch th|nh s t ơng ng trong b ng mã ‚ỞCII s dụng l nh double hoặc int32, ví dụ >>double a sẽ đ a ra kết qu . Để chuyển ng c l i dùng h|m char, ví dụ >>char(97) sẽ đ a ra kết qu a. ọ|i . ọ|i to{n thu nh p ởrung bình con ng i s dụng đến % thu nh p cho thực phẩm. ở o biến l u gi{ trị thu nh p m t năm c a m t ng i nh p từ b|n phím dollars , in ra m|n hình s tiền bình qu}n ng i đó s dụng trong m t th{ng để mua thực phẩm biểu di n bằng s th p ph}n có hai ch s sau d u th p ph}n Thu nhap mot nam cua ban la: Moi thang ban su dung tu X den Y dollars de mua thuc pham ọ|i . V n t c m{y bay ỡ n t c m{y bay th ng ghi theo miles/h hoặc m/s. ở o biến l u v n t c m{y bay theo miles/h nh p v|o từ b|n phím v| in ra m|n hình v n t c m/s. ‛iết rằng h = s, mile = feet, foot = . m feet l| s nhiều c a foot) Nhap van toc may bay theo (miles/hour): Van toc may bay theo meters/second la: ọ|i . ỏi n tích hình ch nh t ở o biến l u chiều d|i v| chiều r ng c a hình ch nh t theo cm nh p từ b|n phím, in ra m|n hình di n tích hình ch nh t theo m 2 biểu di n bằng s th p ph}n chính x{c đến . Nhap chieu dai hinh chu nhat theo cm: Nhap chieu rong hinh chu nhat theo cm: Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1. M Đ U 24 Dien tich hinh chu nhat la S (met vuong) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 25 Chư ng . VỐCTỚờ Vủ ỘỌ Tờ ộ . Vector v| ma tr n trong ỘỌTỗỌọ ỡector v| ma tr n trong M‚ởỗ‚‛ đ c dùng để l u m t t p h p c{c gi{ trị cùng kiểu. M t vector có thể l| vector h|ng hoặc vector c t. Ma tr n có thể hiểu nh m t b ng c{c gi{ trị. Chiều c a ma tr n th ng biểu di n d i d ng m n trong đó m l| s h|ng, n l| s c t t ơng ng c a ma tr n. ộếu m t vector có n phần t , chiều c a vector h|ng t ơng ng đ c biểu di n l| 1 n , vector c t đ c biểu di n l| n 1 . M t gi{ trị vẫ h ng có chiều l| 1 1 . ỡector v| gi{ trị vẫ h ng thực ra l| tr ng h p đặc bi t c a ma tr n. Hình d i từ tr{i qua ph i l| biểu di n t ơng ng c a gi{ trị vẫ h ng, vector c t, vector h|ng, ma tr n. 1 1 1 2 2 3 4 1 2 3 4 5 6 3 M‚ởỗ‚‛ đ c viết ra v i mục đích l|m vi c v i c{c ma tr n, do đó trong M‚ởỗ‚‛ r t d d|ng t o c{c biến vector v| ma tr n cễng nh ch a r t nhiều h|m v| phép to{n x lý vector, ma tr n. . Thi t l p ma tr n trong ỘỌTỗỌọ Thi t l p vector h|ng Có nhiều c{ch để thiết l p vector h|ng trong M‚ởỗ‚‛, trong đó trực tiếp nh t l| nh p gi{ trị c{c phần t c a vector v|o trong ngoặc vuẫng [ ], ngăn c{ch gi a c{c phần t b i ký tự tr ng hoặc d u phẩy. ỡí dụ: C hai c}u l nh d i đ}y cùng t o ra vector v. >>v = [ 1 2 3 4]; >>v = [ 1, 2, 3, 4] v = Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 1 2 3 26 4 ởrong tr ng h p c{c phần t trong ma tr n có gi{ trị c{ch đều nhau, d u : có thể s dụng để thiết l p vector, trong tr ng h p n|y khẫng cần s dụng ngoặc vuẫng [ ] n a. ỡí dụ >>v1 = 1 : 5 v1 = 1 2 3 4 5 ỏ u : cễng có thể s dụng để thiết l p vector m| c{c phần t c{ch nhau m t kho ng cho tr c theo cẫng th c s đầu kho ng c{ch s cu i ). ỡí dụ: T o vector gồm c{c s nguyên từ đến c{ch đều >>v2 = 1 : 2 : 9 v2 = 1 3 5 7 9 ỡí dụ ỏự đo{n v| kiểm tra kết qu bằng M‚ởỗ‚‛ khi kho ng c{ch nh p v|o d n đến vi c v t qu{ kho ng định nghĩa b i s đầu s cu i >>1 : 2 : 6 sẽ v ỗ nh n|y sẽ t o m t vector bao gồm c{c phần t , , . ởăng thêm t qua , vì thế vector sẽ dừng . Ỗết qu hiển thị sẽ l|: 1 3 v|o 5 ở ơng tự ta có h|m linspace (lineary spaced), cho phép t o vector có c{c phần t c{ch đều theo cú ph{p sau >>linspace (x, y, n) Trong đó n l| s phần t sẽ đ c t o ra nằm trong kho ng gi i h n gi a x v| y. Đ i v i tr ng h p n = 1 h|m linspace sẽ tr về gi{ trị y. ỡí dụ: L nh sau sẽ t o vector có phần t trong kho ng đến >>ls = linspace (3, 15, 5) ls = 3 6 9 12 15 ỡector cễng có thể đ c thiết l p dựa trên nh ng biến có sẵn. ỡí dụ: Vector m i đ c thiết l p d i đ}y bao gồm t t c c{c phần t c a vector v2 v| vector ls: >>newvec = [v2 ls] newvec = 1 3 5 7 9 3 6 9 12 15 Truy xu t v| thay đ i c{c ph n t trong m t vector Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 27 ởrong M‚ởỗ‚‛, c{c phần t trong m t vector đ c đ{nh s lần l t theo th tự, bắt đầu từ . ỡí dụ: Chỉ s c a c{c phần t trong vector newvec đ c thể hi n d i đ}y 1 2 3 4 5 6 7 8 9 10 1 3 5 7 9 3 6 9 12 15 M i phần t trong vector có thể truy xu t đến bằng c{ch s dụng tên vector v| chỉ s c a phần t đó trong ngoặc ( ). ỡí dụ: Phần t th c a vector newvec l| >>newvec (5) ans = 9 Ở dụng d u : cễng có thể truy xu t đến c{c phần t trong m t vector. ỡí dụ: C}u l nh sau sẽ l y từ phần t th t đến phần t th s{u c a vector newvec v| l u gi{ trị v|o vector b: >>b = newvec (4 : 6) b = 7 9 3 ‛ên c nh vi c s dụng d u : c{c phần t trong vector n|y có thể đ c truy xu t b i c{c vector kh{c, gọi l| vector chỉ s . ỡí dụ: C}u l nh sau sẽ l y ra phần t th nh t, th năm v| th m i c a vector newvec: >>newvec ([1 ans = 1 9 5 10]) 15 Gi{ trị c a m i phần t trong m t vector có thể thay đ i bằng c{ch g{n gi{ trị kh{c cho phần t c a vector đó vị trí t ơng ng. ỡí dụ: Phần t th hai c a vector b sau khi thực hi n c}u l nh d i đ}y sẽ ch a gi{ trị l| >>b (2) = 11 b = 7 11 3 Ỗhi g{n gi{ trị cho m t phần t trong m t vector m| chỉ s c a phần t đó khẫng tồn t i, ta có thể m r ng vector đó. ỡí dụ vector b trên có phần t . Ỗhi ta g{n gi{ trị cho phần t th t c a b, b tr th|nh vector có phần t >>b (4) = 1 b = 7 11 3 1 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 28 ộếu chỉ s nh p v|o v| chỉ s phần t cu i cùng c a vector khẫng ph i l| hai s liên tiếp, t t c c{c phần t gi a sẽ nh n gi{ trị . ỡí dụ: L nh sau tiếp tục m r ng vector b: >>b (6) = 13 b = 7 11 3 1 0 13 Thi t l p vector c t C{ch thẫng dụng để t o vector c t l| nh p gi{ trị c{c phần t ngoặc vuẫng [ ], ngăn c{ch b i d u ; v|o trong >>c = [1; 2; 3; 4] c = 1 2 3 4 Ỗhẫng thể s dụng d u : để t o vector c t m t c{ch trực tiếp. ởuy nhiên có thể {p dụng phép chuyển vị lên mọi vector h|ng để t o ra vector c t t ơng ng. >>r = 1 : 3; >>c = r’ c = 1 2 3 Thi t l p ma tr n ởhiết l p m t ma tr n t ơng đ ơng v i vi c t o ra c{c vector h|ng v| vector c t trong ma tr n đó. ởrong đó c{c gi{ trị trên cùng m t h|ng ngăn c{ch nhau b i d u phẩy hoặc ký tự tr ng, v| c{c h|ng kh{c nhau ngăn c{ch b i d u ch m phẩy. >>mat = [4 3 1; 2 5 6] mat = 4 3 1 2 5 6 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ ỗ u ý Ở phần t nh p v|o có s phần t b{o l i. >>mat = [3 29 m i h|ng ph i luẫn bằng nhau. ởr ng h p ma tr n c{c h|ng l| kh{c nhau, kết qu nh n đ c sẽ l| thẫng 5 7; 1 2] ??? Error using ==> vertcat CAT arguments dimensions are not consistent Để ph}n bi t c{c dòng trong ma tr n, bên c nh vi c s dụng d u ; còn có thể s dụng phím Enter >>newmat = [2 33 5 6 88 2] newmat = 2 6 88 33 5 2 Ma tr n gồm c{c s ng u nhiên có thể đ theo cú ph{p sau c thiết l p s dụng h|m rand >>rand(n) >>rand(m,n) ởrong đó m, n l| c{c tham s biểu di n chiều c a ma tr n t ơng ng t o th|nh. Ỗhi truyền m t tham s n cho h|m rand, ma tr n t o th|nh sẽ l| m t ma tr n vuẫng n n , khi h|m rand có hai tham s m, n, ma tr n t o th|nh sẽ l| ma tr n m h|ng n c t. >>rand (2) ans = 0.3527 0.4068 0.9982 0.1764 >>rand(1, 3) ans = 0.3754 0.4464 0.7862 Ộ t s ma tr n đặc bi t Ma tr n m × n m| t t c c{c phần t đều nh n gi{ trị , t o b i l nh zeros(m, n) Ma tr n m × n m| t t c c{c phần t đều nh n gi{ trị , t o b i l nh ones(m, n) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 30 Ma tr n n × n m| chỉ có c{c phần t đ ng chéo nh n gi{ trị kh{c , t o b i l nh diag(v) trong đó v l| vector ch a c{c phần t đ ng chéoc a ma tr n đó. Ma tr n đơn vị n × n m| t t c c{c phần t trên đ , t o b i l nh eye(n) ng chéo đều nh n gi{ trị Truy xu t v| thay đ i c{c ph n t trong ma tr n Có thể truy xu t đến c{c phần t đơn lẻ c a ma tr n s dụng tên ma tr n đi kèm v i chỉ s h|ng, chỉ s c t trong ngoặc ( ) chỉ s h|ng luẫn đ ng tr c chỉ s c t . ỡí dụ: T o m t ma tr n v| truy xu t đến phần t h|ng th hai, c t th ba c a ma tr n đó. >>mat = [2 : 4; 3 : 5] mat = 2 3 4 3 4 5 >>mat (2, 3) ans = 5 ỡí dụ: Truy xu t đến t t c c{c phần t nằm trên h|ng m t đến h|ng hai, c t hai đến c t ba c a ma tr n mat. >>mat (1 : 2, 2: 3) ans = 3 4 4 5 Chỉ s dụng d u hai ch m : đồng nghĩa v i vi c l y t t h|ng hoặc c t c a ma tr n. ỡí dụ: Truy xu t đến t t c c{c c t c a h|ng th nh t t t c c{c phần t trên h|ng n|y . >>mat (1, :) ans = 2 3 4 ỡí dụ: Truy xu t đến t t c c{c phần t nằm trên c t hai c a ma tr n mat. >>mat(:, 2) ans = 3 4 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ t m tr tr 31 ộếu chỉ s dụng m t chỉ s ch s tuy n tính để truy xu t đến c{c phần trong ma tr n, M‚ởỗ‚‛ khi đó sẽ sắp xếp l i t t c c{c phần t ma tr n đó v|o t c t. ỡí dụ ma tr n intmat đ c t o đ}y, phần t th nh t v| th hai c a ma n l| hai phần t t ơng ng c a c t th nh t, phần t th ba v| th t c a ma n l| phần t th nh t v| th hai c a c t th hai. >>intmat = [100 77; 28 14] intmat = 100 77 28 14 >>intmat (1) ans = 100 >>intmat (2) ans = 28 >>intmat (3) ans = 77 >>intmat (4) ans = 14 Để thay đ i gi{ trị c a c{c phần t đơn lẻ trong ma tr n, có thể truy xu t đến v| g{n cho phần t đó gi{ trị m i. ỡí dụ: Đ i v i ma tr n mat t o tr c đó >>mat(1, 2); ans = 2 11 3 4 4 5 ở ơng tự có thể thay đ i gi{ trị c a c m t h|ng hoặc m t c t c a ma tr n >>mat (2, :) = 5:7 ans = 2 11 4 5 6 7 Để m r ng ma tr n, khẫng thể chỉ thêm v|o m t phần t vì khi đó sẽ l|m s phần t c a m i h|ng tr nên kh{c nhau m| cần thêm v|o c h|ng hoặc c t. ỡí dụ: Chèn thêm c t th t v|o ma tr n mat trên >>mat (:, 4) = [9; 2] mat = 2 11 4 9 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 5 6 7 32 2 ở ơng tự nh đ i v i vector, nếu h|ng hoặc c t thêm v|o so v i h|ng hoặc c t cu i cùng c a ma tr n hi n th i khẫng ph i l| liền nhau, M‚ởỗ‚‛ sẽ tự điền đầy ma tr n bằng c{c gi{ trị . ỡí dụ: Chèn thêm h|ng th t v|o ma tr n mat chỉ có hai h|ng >>mat (4, :) = 2 : 2 : 8 ans = 2 11 4 9 5 6 7 2 0 0 0 0 2 4 6 8 Ỗích thư c c a ma tr n C{c h|m length, size trong M‚ởỗ‚‛ đ c s dụng để x{c định kích th c a vector v| ma tr n. Cú ph{p gọi h|m nh sau c >>length(X) >>size(X) ởrong đó X l| vector, ma tr n đ c quan t}m. H|m length tr về s phần t c a m t vector. H|m size tr về s h|ng v| s c t c a ma tr n hoặc vector. ỡí dụ vector vec t o d i đ}y có b n phần t , nh v y gi{ trị tr về c a h|m length vec sẽ có gi{ trị l| . ỡector vec cễng có thể coi l| m t ma tr n m t h|ng b n c t, nh v y kích th c c a vec sẽ l| × . >>vec = -2 : 1 vec = -2 -1 0 1 >>length (vec) ans = 4 >>size (vec) ans = 1 4 H|m size tr về s h|ng v| s c t c a m t ma tr n vì thế để có thể l u c{c gi{ trị n|y v|o c{c biến kh{c nhau ta có thể s dụng m t vector có hai biến vế Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 33 tr{i c a c}u l nh. ‛iến h sẽ l u gi{ trị đầu tiên tr về, t ơng ng v i s h|ng c a ma tr n, biến c sẽ l u gi{ trị s c t. >>mat = [1 : 3; 5 : 7]’ mat = 1 5 2 6 3 7 >>[h, c] = size (mat) h = 3 c = 2 Ỗhi s dụng v i ma tr n, h|m length sẽ tr về s h|ng hoặc s c t c a ma tr n đó, tùy v|o gi{ trị n|o l n nh t. >>length (mat) ans = 3 ộgo|i ra trong M‚ởỗ‚‛ còn có h|m numel tr về t ng s phần t m t vector hoặc ma tr n theo cú ph{p sau trong N = numel(A) ởrong đó ộ l| s phần t tr về c a m ng ‚ Đ i v i vector, h|m n|y có ý nghĩa t ơng đ ơng h|m length, đ i v i ma tr n, numel tr về gi{ trị l| tích c a s h|ng v| s c t c a ma tr n đó. >>numel (vec) ans = 4 >>numel (mat) ans = 6 . C{c phép to{n c b n đ i v i ma tr n, vector ớhép c ng hai ma tr n t ơng đ ơng v i vi c c ng từng phần t t ơng ng c a hai ma tr n đó, điều n|y đồng nghĩa v i vi c hai ma tr n ph i có cùng kích th c. ớhép c ng ma tr n có thể biểu di n nh sau cij aij bij . Trong MATLAB, Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 34 phép c ng hai ma tr n có thể đ c thực thi s dụng phép to{n +. ở ơng tự phép trừ hai ma tr n thực hi n b i phép to{n -, biểu di n cij aij bij . ớhép nh}n v i m t s l| phép nh}n t t c c{c phần t c a m t ma tr n v i m t s , thực thi trong M‚ởỗ‚‛ b i phép to{n *. ớhép nh}n m ng cho phép nh}n từng phần t t ơng ng c a hai ma tr n chú ý khẫng ph i phép nh}n ma tr n , điều ki n l| hai ma tr n ph i có cùng kích th c, đ c thực hi n trong M‚ởỗ‚‛ b i phép to{n .* >>A = [1 : 3; 4 : 6]; >>B = [100 10 1; 10 100 1]; >>C = A .* B C = 100 20 3 40 500 6 ớhép nh}n ma tr n ‚ v i ma tr n ‛ để thu đ c ma tr n C chỉ đ c thực hi n khi s c t c a ma tr n ‚ bằng v i s h|ng c a ma tr n ‛. ộếu ma tr n ‚ có kích th c m × n, ma tr n ‛ ph i có kích th c n × p. Ma tr n C thu đ c sẽ có s h|ng bằng v i s h|ng c a ma tr n ‚ v| s c t bằng v i s c t c a ma tr n ‛. cij aik bkj Amn Bn p C m p n k 1 ớhép lễy thừa ma tr n ‚ thực hi n liên tiếp phép nh}n ma tr n ‚ v i chính nó. Ma tr n ‚ cần ph i l| ma tr n vuẫng để thực hi n phép tính n|y. Ộa tr n chuy n v c a ma tr n ‚ l| ma tr n ‚ có h|ng v| c t đ i vai trò cho nhau, ký hi u ‚T, trong M‚ởỗ‚‛ đ c thực hi n b i phép to{n ‘. >>A = [1 : 3; 4 : 6]; >>AT = A’ AT = 1 2 3 4 5 6 Ộa tr n ngh ch đ o nếu kết qu c a phép nh}n ma tr n ‚ v i m t ma tr}n kh{c l| m t ma tr n đơn vị, ta có thể nói ma tr n kia chính l| ma tr n nghịch đ o c a ‚. ởrong M‚ởỗ‚‛ có thể tính ma tr n nghịch đ o c a ma tr n ‚ bằng h|m inv. >>A = [1 2; 2 2] A = Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 1 2 35 2 2 >>Ainv = inv(A) Ainv = -1.0000 1.0000 1.0000 -0.5000 >>A*Ainv ans = 1 0 0 1 ộếu ma tr n ‚ l| ma tr n khẫng kh nghịch, M‚ởỗ‚‛ sẽ đ a ra l i c nh b{o v| cễng có thể đ a ra ma tr n m| c{c phần t đều l| Inf. >>inv([1 1; 0 0]) Warning: Matrix is singular to working precision ans = Inf Inf Inf Inf Đ nh th c c a ma tr n vuẫng ‚ trong M‚ởỗ‚‛ đ ồ ng c a ma tr n ‚ trong M‚ởỗ‚‛ đ c tính theo h|m det. c tính theo h|m rank. ớhép nh}n vô hư ng c a hai vector t ơng tự nh phép nh}n ma tr n khi ta nh}n vector h|ng av i vector c t b, kết qu thu về l| m t gi{ trị vẫ h ng m t s . ởrong M‚ởỗ‚‛ có thể thực hi n bằng c{ch s dụng phép to{n * gi a a v| chuyển vị c a b, hoặc s dụng h|m dot theo cú ph{p >>C = dot(A, B); ởrong đó C l| gi{ trị tích vẫ h ng c a hai vector A v| B ỡí dụ >>vec1 = [4 2 5 1]; >>vec2 = [3 6 1 2]; >>vec1 * vec2’ ans = 31 >>dot(vec1, vec2) ans = 31 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 36 ớhép nh}n có hư ng c a hai vector trong khẫng gian ba chiều l| m t vector vuẫng góc v i hai vector trên, nói c{ch kh{c chính l| vector ph{p tuyến c a mặt phẳng t o b i hai vector đó. ởrong M‚ởỗ‚‛ phép to{n n|y thực hi n b i h|m cross theo cú ph{p sau >>C = cross(A, B) ởrong đó C l| vector hình th|nh b i tích có h >>vec1 = [4 2 5]; >>vec2 = [3 6 1]; ng c a hai vector ‚ v| ‛ >>cross(vec1, vec2) ans = -28 11 18 . Đ i s tuy n tính ợét h ph ơng trình đ i s tuyến tính m × n gồm m ph ơng trình n ẩn s a11 x1 a12 x2 a13 x3 ... a1n xn b1 a21 x1 a22 x2 a23 x3 ... a2n xn b2 a31 x1 a32 x2 a33 x3 ... a3n xn b3 . am1 x1 am2 x2 am3 x3 ... amn xn bm H ph ơng trình n|y có thể biểu di n d i d ng ma tr n ‚x = b trong đó A l| ma tr n h s , x l| vector c t ch a c{c ẩn, b l| vector c t ch a c{c h s vế ph i c a ma tr n. a11 a 21 a31 am1 a12 a22 a13 a23 a32 a33 am 2 am3 ... a1n x1 b1 ... a2 n x2 b2 ... a3n x3 b3 ... ... amn xn bn A x b H ph ơng trình trên có thể gi i m t c{ch đơn gi n trong M‚ởỗ‚‛ s dụng phép chia tr{i mldivide , hoặc nh}n c hai vế v i ma tr n nghịch đ o c a A. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 37 A1 Ax A1b Ix A1b x A1b ỡí dụ ta có h ba ph ơng trình ba ẩn x1, x2, x3 4 x1 2 x2 1x3 7 1x1 1x2 5 x3 10 2 x1 3x2 1x3 2 ỡiết l i h d i d ng Ax = b 4 1 1 x1 7 1 1 5 x 10 2 2 3 1 x3 2 Gi i h dùng h|m inv >>A = [4 -2 1; 1 >>b = [7 10 2]; 1 5; -2 3 -1]; >>x = inv(A)*b x = 3.0244 2.9512 0.8049 >>x = A\b x = 3.0244 2.9512 0.8049 ỗ u ý ph}n bi t phép chia tr{i, chia ph i: C = A\‛ t ơng đ ơng v i C = ‚-1*‛, để thực hi n phép tính n|y, điều ki n l| ‚ ph i l| ma tr n kh nghịch. C = ‚/‛ t ơng đ ơng v i C = ‚*‛-1, để thực hi n phép tính n|y, điều ki n l| ‛ ph i l| ma tr n kh nghịch. (B/A) = (‚ \‛ ớhép chia tr{i s x = A\b dụng trong M‚ởỗ‚‛ để tìm nghi m c a h ph ơng trình tuyến tính đẫi khi đ a ra l i c nh b{o sau khi thực hi n l nh nh sau: >>Warning: Matrix is close to singular or badly scaled. Results maybe inaccurate. RCOộỏ = hoặc >>Warning: Matrix is singular to working precision. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 38 C nh b{o trên đồng nghĩa v i vi c kết qu thu đ c th ng khẫng chính x{c. ởuy nhiên cễng có khi M‚ởỗ‚‛ khẫng đ a ra c nh b{o nh ng kết qu thu đ c l i khẫng đ{ng tin c y do M‚ởỗ‚‛ đ a ra nghi m bình ph ơng t i thiểu c a h ví dụ tr ng h p ‚ khẫng ph i l| ma tr n vuẫng , vì v y điều quan trọng khi s dụng phép chia tr{i l| luẫn kiểm tra kết qu thu đ c bằng c{ch so s{nh A*x v| b. ớhép kh Ồauss v| Ồauss – Jordan s dụng trong vi c gi i h ph ơng trình đ i s tuyến tính đều bắt đầu bằng vi c thiết l p ma tr n A | b v| {p dụng c{c phép biến đ i lên c{c h|ng c a ma tr n n|y nh}n t t c c{c phần t trong h|ng v i m t s , đ i ch c{c h|ng trong ma tr n, thay thế m t h|ng bằng c{ch c ng hoặc trừ v i c{c h|ng kh{c để thu về ma tr n tam gi{c trên có cùng t p nghi m. ớh ơng ph{p Gauss từ đ}y sẽ {p dụng thế ng c để tìm ra t p nghi m c a h ph ơng trình trong khi ph ơng ph{p Gauss –ổordan sẽ tiếp tục kh để thu về ma tr n đ ng chéo từ đó suy ra t p nghi m c a h ph ơng trình. ỡí dụ >>a = [ 1 3 0; 2 1 3; 4 2 3] a = 1 3 0 2 1 3 4 2 3 >>b = [1 6 3]’ b = 1 6 3 >>ab = [a b] ab = 1 3 0 1 2 1 3 6 4 2 3 3 >>ab(2, :) = ab(2, :) – 2*ab(1, :) ab = 1 3 0 1 0 -5 3 4 4 2 3 3 >>ab(3, :) = ab(3, :) – 4*ab(1, :) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 39 ab = 1 3 0 1 0 -5 3 4 0 -10 3 -1 >>ab(3, :) = ab(3, :) – 2*ab(2, :) ab = 1 3 0 1 0 -5 3 4 0 0 -3 -9 >>ab(2, :) = ab(2, :) + ab(3, :) ab = 1 3 0 1 0 -5 0 -5 0 0 -3 -9 >>ab(1, :) = ab(1, :) + 3/5*ab(2, :) ab = 1 0 0 -2 0 -5 0 -5 0 0 -3 -9 D ng b c thang t i gi n ởừ kết qu d ng đ ng chéo từ phép kh Gauss-ổordan, ma tr n đ c đ a về d ng b c thang t i gi n, t ơng đ ơng v i t t c c{c h s trên đ ng chéo thu đ c đều l| , hay nói c{ch kh{c vector c t b chính l| kết qu cần tìm. ởrong MAởỗ‚‛ ta có thể đ a ma tr n A | b về d ng b c thang t i gi n I | b ' để gi i h ph ơng trình đ i s tuyến tính bằng h|m rref. ỡí dụ đ i v i ma tr n >>a = [ 1 3 >>b = [1 6 0; 2 1 3; 4 2 trên: 3]; 3]’; >>ab = [a b]; >>rref(ab) ans = 1 0 0 -2 0 1 0 1 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 0 0 1 40 3 ộghi m c a h chính l| gi{ trị c a c t cu i cùng x1 = -2, x2 = 1, x3 = 3 >>x = ans(:, end) x = -2 1 3 . Tóm tắt chư ng C{c l nh đ i v i m ng linspace ở o m ng có c{c phần t c{ch đều find ởìm chỉ s c a c{c phần t kh{c khẫng trong m ng max ởìm gi{ trị l n nh t trong m ng min ởìm gi{ trị nh nh t trong m ng prod ởính tích c{c phần t trong m ng sum ởính t ng c{c phần t trong m ng length ởìm t ng s phần t trong m ng size ởìm kích c c a m ng cross ởích có h ng c a hai vector trong ỏ dot ởích vẫ h ng c a hai vector Ộ t s ma tr n đặc bi t eye ở o ma tr n đơn vị ones ở o ma tr n m| t t c c{c phần t đều nh n gi{ trị zeros ở o ma tr n m| t t c c{c phần t đều nh n gi{ trị diag ở o ma tr n đ ng chéo C{c l nh gi i h phư ng trình đ i s tuy n tính det ởính định th c ma tr n inv ởính ma tr n nghịch đ o rank ởính h ng c a ma tr n rref Đ a về d ng b c thang t i gi n Bảng 2. 1. Tóm tắt các hàm sử dụng trong chương 2 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 41 . ọ|i t p chư ng ọ|i . ỏùng d u : t o c{c vector h|ng sau: 3 4 5 6 a) 1.0000 1.5000 2.0000 2.5000 3.0000 b) 5 4 3 2 Đáp án a) >>3 : 6 b) >>1 : .5 : 3 c) >>5 : -1 : 2 ọ|i . ỏùng h|m linspace t o c{c vector sau: a) >>4 b) >>-3 c) >>9 6 8 -6 7 -9 -12 -15 5 Đáp án a) >>linspace(4, 8, 3) b) >>linspace(-3, -15, 5) c) >>linspace(9, 5, 3) ọ|i . ỏùng : v| ‘ t o vector c t ch a c{c gi{ trị trong kho ng từ - đến nhau 0.2. c{ch đều Đáp án >>[ -1 : .2 : 1]’ ọ|i . a) ở o ma tr n × ch a c{c s nguyên ng u nhiên từ đến 20. b) ở o biến hang ch a s nguyên ng u nhiên từ đến , t o biến cot ch a s nguyên ng u nhiên từ đến , t o ma tr n m| t t c c{c phần t đều nh n gi{ trị khẫng có kích c hang × cot. Đáp án a) >>round(5 + 15*rand(2, 3)) b) >>hang = round(3*rand); >>cot = round(3 + 2*rand); >>zeros(hang, cot) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 42 ọ|i . Ỗhẫng nh p t t c c{c phần t , t o ma tr n sau: mat = 7 8 9 10 12 10 8 6 ỡiết c{c l nh truy xu t đến: a) ớhần t h|ng m t c t ba c a ma tr n. b) ởo|n b h|ng hai c a ma tr n. c) Hai c t đầu c a ma tr n. Đáp án a) >>mat = (7:10; 12:-2:6); >>mat(1,3); b) >>mat(2, :); c) >>mat(:, 1:3); ọ|i . Cho c{c ma tr n sau: 1 1 C 1 1 5 6 B 7 8 1 2 A 3 4 ở o ma tr n ỏ có ma tr n ‚ c t kế tiếp. 2 2 2 2 trên ma tr n ‛ t o th|nh hai c t đầu, C l| hai Đáp án >>A = [1 2; 3 4]; >>B = [5 6; 7 8]; >>C = [1 1 1 1; 2 2 2 2]’ >>AB = [A;B]; >>D = [AB C]; ọ|i . ở o c{c ma tr n sau: a) Ma tr n đơn vị x 6. b) Ma tr n khẫng x . c) Ma tr n m t x . Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 43 d) Ma tr n ng u nhiên x . e) Ma tr n đ ng chéo m| c{c gi{ trị trên đ ng chéo ch y từ đến . Đáp án a) b) c) d) e) >> eye (6) >>zeros (5,10) >>ones (5,15) >>rand (5) >>e0 = 1:5; >>diag(e0) ọ|i . Cho ma tr n A, b v| h ph ơng trình tuyến tính Ax = b 1 2 3 A 2 3 2 3 1 1 6 B 14 2 Gi i h ph ơng trình s dụng l nh ‚\b v| l nh rref Đáp án: >>A = [1 2 >>b = [6 14 3; 2 -3 2; 3 1 -1]; -2]; >>x = A\b x = 1.0000 -2.0000 3.0000 >>A*x Ỗiểm tra kết qu thu đ c , ‚*x có gi{ trị bằng v i b, ch ng t %nghi m c a h ph ơng trình ‚x = b x l| >>rref([A, b]) ộghi m thu đ c l| duy nh t, do ma tr n b c thang t i gi n ch a ma %tr n đơn vị v| ma tr n kết qu ans = 1 0 0 1 0 1 0 -2 0 0 1 3 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 44 ọ|i . Cho h ph ơng trình sau: 6 x1 2 x2 3x3 0 4 x1 1x2 2 x3 0 2 x1 1x2 5 x2 0 ộh p v|o M‚ởỗ‚‛ ma tr n h s A v| ma tr n c t b t ơng ng, tìm nghi m c a ma tr n bằng c{ch s dụng phép chia tr{i v| rref. Đáp án >>A = [6 2 3; 4 1 -2; 2 1 5]; >>b = zeros(3,1); >>A\b Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 6.728624e-018. x = 1.0e+015 * -2.6271 9.0072 -0.7506 >>rref([A b]) ans = 1.0000 0 -3.5000 0 0 1.0000 12.0000 0 0 0 0 1.0000 Thế ng c ta có x1= 3.5x3 v| x2 = -12x3. Có thể th y h ph ơng trình có biến tự do x3 v| có thể nh n b t kỳ gi{ trị n|o. ỡí dụ chọn x3 = 2 khi đó ta có: x1 = 7, x2 = -24 >>x = [7; -24; 2]; >>A*x ans = 0 0 0 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 45 ọ|i . Cho hai ma tr n A, b v| h ph ơng trình tuyến tính Ax = b 12 3 A 21 3 4 B 4 Gi i h ph ơng trình s dụng phép chia tr{i, t p nghi m thu đ l| duy nh t? c có ph i ởìm nghi m t ng qu{t s dụng h|m rref. Đáp án: >>A = [1 2 >>b = [-4; 3; 2 1 -3]; 4]; >>x = A\b; x = 0 0.0000 -1.3333 >>A*x Ỗiểm tra x có ph i l| nghi m c a ph ơng trình >>rref([ A b]) H có vẫ s nghi m do s biến nhiều hơn s ph ơng trình ans = 1 0 -3 4 0 1 3 -4 ọ|i . Cho ma tr n sau: 1 2 1 3 7 2 0 1 A 3 2 1 1 0 1 4 8 ỏự đo{n kết qu v| kiểm tra l i bằng M‚ởỗ‚‛ ý nghĩa c a l nh sau: >>A( [1 3], [1 3] ) = 10 * ones (2) ọ|i . ộh p v|o ma tr n sau: Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 46 1 2 1 3 7 2 0 1 A 3 2 1 1 0 1 4 8 a) b) c) d) ởính AT = B ởính C = A * B ởính D = B * A ởính 3A + 5B3 ọ|i . ộh p v|o c{c ma tr n sau: 3 2 1 A 0 5 2 1 0 3 2 B 1 3 1 0 0 C 0 1 0 0 0 1 ởính trong M‚ởỗ‚‛ c{c phép tính sau, gi i thích trong tr M‚ởỗ‚‛ khẫng thể thực hi n phép to{n. ng h p A*B B*A I+A A .* I ọ|i . ở o ma tr n × v| l u v|o m t biến. ởhay thế h|ng th hai c a ma tr n đó bằng vector c t ch a c{c gi{ trị v| . ọ|i . ở o vector x ch a phần t c{ch đều nhau trong kho ng –π đến π. ở o vector y ch a sin(x). ọ|i . ở o ma tr n × có c{c phần t l| c{c s nguyên ng u nhiên trong kho ng - đến . ợóa h|ng th ba c a ma tr n. ọ|i . ở o vector vec. ởìm t t c c{c l nh cho phép truy xu t đến phần t cùng c a vec gi s khẫng biết vec có bao nhiêu phần t . Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh cu i M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 47 ọ|i .18 ở o ma tr n mat. ởìm t t c c{c l nh cho phép truy xu t đến phần t cu i cùng c a ma gi s khẫng biết s phần t , s h|ng, s c t c a mat). ọ|i . ỡiết c{c l nh yêu cầu nh p v|o từ b|n phím c{c gi{ trị n, low, high (high l n hơn low). ởừ c{c gi{ trị nh p v|o t o ma tr n đ ng chéo n × n trong đó đ ch a c{c gi{ trị nguyên ng u nhiên từ low đến high. ng chéo ọ|i . ỡiết c{c c}u l nh yêu cầu nh p v|o từ b|n phím hai s nguyên d ơng l u v|o c{c biến m, n. ỡiết c}u l nh nh p v|o s nguyên k. ỡiết c}u l nh t o ma tr n có kích c m × n m| t t c c{c phần t đều có gi{ trị k trong c}u l nh có s dụng l nh ones). ọ|i . Cho h ph ơng trình đ i s tuyến tính Ax = b. ộh p c{c ma tr n A, b v| gi i s dụng c{c l nh chia tr{i v| rref. 11 1 A 12 1 11 1 2 B 3 6 ọ|i . Cho h b n ph ơng trình b n ẩn sau: ộh p c{c ma tr n v|o M‚ởỗ‚‛ v| gi i. 4 x1 x2 3x4 10 2 x1 3x2 x3 5 x4 3 x1 x2 x3 2 x4 2 3x1 2 x2 4 x3 4 ọ|i . Gi i h ph ơng trình đ i s tuyến tính: 2 x1 2 x2 x3 2 x2 2 x3 1 x1 x2 3x3 3 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 48 ọ|i . Gi i h ph ơng trình đ i s tuyến tính: x1 2 x2 x3 2 2 x1 5 x2 3 x3 6 x1 2 x2 2 x3 4 ọ|i . Cho h ph ơng trình đ i s tuyến tính Ax = b, tìm nghi m c a h . 10 A 12 14 10 b 16 17 ọ|i . Cho h ph ơng trình đ i s tuyến tính Ax = b, tìm nghi m c a h . 1 1 A 1 1 1 3 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh 2 b 0 3 M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ Chư ng . TÍộồ TỚÁộ Ở 49 V I ỘỌTỗỌọ . Ở ph c Ở ph c đ c viết d i d ng t ng qu{t a + bi trong đó a l| phần thực, b l| phần o, i có gi{ trị 1 . Trong MATLAB i v| j l| nh ng hằng x}y dựng sẵn tr về gi{ trị 1 . Ở ph c trong M‚ởỗ‚‛ có thể biểu di n theo i hoặc theo j, ví dụ 5 + 2i hoặc 3 – 4j. Ỗhẫng cần s dụng ký hi u phép nh}n * gi a phần o v| c{c hằng i, j. Có sự kh{c bi t gi a i v| *i" ? Điều n|y phụ thu c v|o vi c tr c đó i có đ c dùng cho m t biến n|o kh{c hay khẫng. ộếu i tr c đó đã s dụng nh l| m t biến ví dụ trong vòng lặp for thì c}u l nh 3*i sẽ s dụng gi{ trị đ c g{n cho biến i v| nh v y kết qu sẽ khẫng ph i l| m t s ph c. ỡì thế, để tr{nh nhầm l n khi biểu di n s ph c trong M‚ởỗ‚‛ ta nên s dụng 1i hoặc 1j thay vì chỉ i hoặc j. Ỗết qu tr về khi s dụng 1i hoặc 1j luẫn luẫn l| s ph c b t kể tr c đó i v| j có đ c g{n gi{ trị hay khẫng. ởrong M‚ởỗ‚‛ có h|m complex sẽ tr về s ph c gồm phần thực v| phần o khi nh n đ c hai tham s t ơng ng, khi chỉ nh n m t tham s , complex coi nh phần o khẫng có gi{ trị v| chỉ biểu di n phần thực, cú ph{p gọi h|m nh sau: >>C = complex (A, B) ởrong đó gi{ trị tr về C sẽ đ c biểu di n d i d ng ph c C = A + Bi M t s ví dụ biểu di n s ph c >>z1 = 4 + 2i z1 = 4.0000 + 2.0000i >>z2 = sqrt( -5 ) z2 = 0 + 2.2361i >>z3 = complex (3,-3) z3 = 3.0000 – 3.0000i Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 50 >>z4 = 2 + 3j z4 = 2.00 + 3.0000i >>z5 = (-4)^1/2 z5 = 0.0 + 2.0000i ỗ u ý l| ngay c khi dùng j để biểu di n s ph c trong c}u l nh thì M‚ởỗ‚‛ v n s dụng i trong c{c kết qu tr về. ởrong M‚ởỗ‚‛ còn có c{c h|m real v| imag tr về phần thực v| phần o c a m t s ph c, cú ph{p gọi h|m nh sau >>real (X) >>imag (X) ởrong đó X l| s ph c, gi{ trị tr về c a hai h|m real v| imag sẽ l| phần thực v| phần o t ơng ng c a X. >>real(z1) ans = 4 >>imag(z3) ans = -3 ởr ng h p mu n xu t ra m|n hình gi{ trị c a m t s ph c, l nh disp sẽ hiển thị c phần thực v| phần o trong khi đó l nh fprintf chỉ hiển thị phần thực trừ khi có l nh in đồng th i c hai th|nh phần c a s ph c. >>disp(z1) ans = 4.0000 + 2.0000i >>fprintf(‘ %f \n’, z1) 4.0000 >>fprintf(‘ %f 4.0000 %f \n’, real(z1), imag(z1)) 2.0000 >>fprintf(‘ %f + %fi \n’, real(z1), imag(z1)) 4.0000 + 2.0000i H|m isreal tr về gi{ trị logic nếu đúng l| s ph c khẫng có gi{ trị phần o, tr về gi{ trị logic nếu s ph c có gi{ trị phần o kể c gi{ trị phần o l| . Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 51 >>isreal(z1) ans = 0 >>z6 = complex(3) z6 = 3 >>isreal(z6) ans = 0 >>isreal(3.3) ans = 1 Đ i v i z6 mặc dù gi{ trị hiển thị trên c a s l nh l| nh ng biểu di n trong M‚ởỗ‚‛ v n l| . + . i xem Ợorkspace vì thế gi{ trị tr về c a h|m isreal trong tr ng h p n|y l| do z6 v n ch a phần o. ọi u di n s ph c bằng t a đ c c v| lễy thừa c a loga t nhiên Mọi s ph c z = a + bi đều có thể biểu di n b i điểm (a, b) hoặc d i d ng vector trên mặt phẳng ph c trong đó trục ho|nh v| trục tung biểu di n phần thực v| phần o c a z. ỏo m t vector có thể đ c biểu di n trong h tọa đ Đề c{c hoặc h tọa đ cực, m t s ph c cễng có thể biểu di n trong h tọa đ cực s dụng c{c phép quy đ i sau: ‛iến đ i h tọa đ cực sang h tọa đ Đề c{c: a = r cosθ b = r sinθ ‛iến đ i h tọa đ Đề c{c sang h tọa đ cực: r z a 2 b2 tan 1 ( ) b a z a bi r cos (r sin )i ộgo|i ra, s ph c có thể biểu di n d i d ng lễy thừa c a loga tự nhiên e cos i sin , biểu di n d ng ph c d ng lễy thừa có thể thu đ c trong M‚ởỗ‚‛ s dụng l nh exp j*theta . ỡí dụ i >>exp(j*pi/2) ans = Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 52 0.0000 + 1.0000i ởrong M‚ởỗ‚‛ ta có thể s dụng nh ng h|m x}y dựng sẵn để tìm gi{ trị c a r v| θ l| abs v| angle theo cú ph{p sau >>abs (X) >>angle (X) ởrong đó X l| s ph c, abs v| angle sẽ tr về gi{ trị r v| θ t ơng ng c a X, xét ví dụ >>z1 = 3 + 4i; >>r = abs(z1) r = 5 >>theta = angle(z1) theta = 0.9273 >>r*exp(i*theta) ans = 3.0000 + 4.0000i C ng, trừ, nh}n, chia s ph c: Cho hai s ph c z1 = a + bi, z2 = c + di z1 + z2 = a + bi + c + di = (a+c) + (b +d)i z1 – z2 = a + bi – c – di = (a –c) + (b – d)i z1 * z2 = (a + bi) * (c + di) = ac + (bc + ad)i –bd = (ac – bd) + (bc + ad)i ỡí dụ: >>z1 = 3 + 4i; >>z2 = 1 – 2i; >>z1*z2 ans = 11.0000 – 2.0000i ớhép chia hai s ph c có thể đ c thực hi n d d|ng khi biểu di n hai s ph c d i d ng lễy thừa c a loga tự nhiên rồi thực hi n phép chia sau đó. ỡí dụ z3 z2 2 1.5 j z1 1.25 2.5 j >>z1 = 2 + 1.5j; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 53 >>z2 = 1.25 + 2.5j; >>abs1 = abs(z1); >>abs2 = abs(z2); >>angle1 = angle(z1); >>angle2 = angle(z2); >>abs3 = abs2/abs1; >>angle3 = angle2 – angle1; Hai phép tính z /z v| abs *exp j*angle đều đ a ra kết qu gi ng nhau. >>z3 = z2/z1 z3 = 1.0000 + 0.5000i Ở ph c liên h p v| gi{ tr tuy t đ i Cho s ph c d i d ng z = a + bi , s ph c z a bi gọi l| s ph c liên h p c a z. Đ l n hay gi{ trị tuy t đ i c a s ph c đ c tính theo cẫng th c z a 2 b2 . ởrong M‚ởỗ‚‛ có thể s dụng hai h|m sẵn có để tính d ng liên h p v| gi{ trị tuy t đ i c a s ph c l| conj v| abs. >>z1 = 3 + 4i z1 = 3.0000 + 4.0000i >>conj (z1) ans = 3.0000 – 4.0000i >>abs (z1) ans = 5 . ồ|m vô danh H|m vẫ danh l| d ng h|m s đơn gi n, đ c thể hi n chỉ cần s dụng m t dòng l nh trong M‚ởỗ‚‛. u điểm c a h|m vẫ danh l| khẫng cần ph i l u trong c{c file văn b n so n th o bằng Matlab editor M-file, đơn gi n hóa ch ơng trình s dụng nh ng phép tính đơn gi n, gi m thiểu s M-file cần dùng cho m t ch ơng trình. H|m vẫ danh có thể đ c t o trong c a s l nh hoặc trong c{c h|m văn b n. Cú ph{p cho h|m vẫ danh trình b|y nh sau Ten_ham = @(ten_bien) than_ham Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 54 ỡí dụ >>dt_hinhtron = @(r) pi*r.^2; >>dt_hinhtron(4) ans = 50.2655 ởrong tr ng h p khẫng truyền tham s cho h|m, v n ph i s dụng d u ngoặc lúc khai b{o v| lúc gọi h|m. ỡí dụ: H|m vẫ danh sau in ra m|n hình s thực ng u nhiên có hai ch s phần th p ph}n >>in_nn = @( ) fprintf(‘ %.2f \n’, rand); >>in_nn ( ) 0.95 ởr ng h p gọi h|m chỉ có tên h|m m| khẫng có d u ngoặc, M‚ởỗ‚‛ sẽ hiển thị th}n h|m lên m|n hình. >>in_nn in_nn = @ ( ) fprintf(‘ %.2f \n’, rand) . C c tr v| nghi m c a h|m s m t bi n s Trong MATLAB c c tr c a h|m s có thể x{c định trong kho ng x1, x2 c a h|m s đó x{c định từ đồ thị dùng h|m fminbnd theo cú ph{p sau >>fminbnd (fun, x1, x2) ởrong đó fun l| h|m s khai b{o v| x1, x2 l| kho ng gi{ trị ch a cực tiểu. Gi{ trị tr về c a h|m fminbnd l| cực tiểu c a h|m fun trong kho ng x1, x2 , ỡí dụ: Cho h|m s f(x) = x3 – 2x - 5, tìm cực tiểu c a h|m s trong kho ng v| gi{ trị h|m s t i vị trí cực tiểu. >>f = @(x) x^3 – 2*x -5; >>x1 = fminbnd (f, 0, 2) x1 = 0.8165 >>y1 = f(x1) y1 = -6.0887 ỡí dụ: Cho h|m s f(x) = x3 – x2 – 3tan-1(x) +1, h|m s n|y có cực tiểu trong kho ng , có thể x{c định nh sau Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 55 >>clear all >>f = @ (x) x^3 – x^2 – 3*atan(x) + 1; >>x1 = fminbnd(f, 0, 2) x1 = 1.0878 >>f(x1) ans = -1.3784 ộh v y trên , h|m s có m t cực tiểu t i x = . v i gi{ trị -1.3784. H|m s n|y cễng có m t cực đ i trong kho ng - , . M‚ởỗ‚‛ khẫng có h|m để tìm trực tiếp cực đ i c a h|m s tuy nhiên ta có thể s dụng fminbnd để tìm cực tiểu c a h|m –f(x) trên kho ng t ơng ng. >>finv = @(x) –f(x); >>x2 = fminbnd(finv, -1, 0) x2 = -0.5902 >>finv(x2) ans = -2.0456 ộh v y h|m s có m t cực đ i t i x = - . v i gi{ trị -2.0456 ộghi m c a h|m s m t bi n s Định nghĩa to{n học về nghi m c a c a h|m s f(x) l| giao điểm c a đồ thị h|m s đó v| trục Ox hay gi{ trị x0 m| t i đó f(x0) = 0. ỏo M‚ởỗ‚‛ s dụng d u ch m đ ng nên r t khó x{c định chính x{c điểm khẫng c a h|m s , nên thay vì tìm gi{ trị biến m| t i đó h|m s bằng khẫng, M‚ởỗ‚‛ tìm điểm m| t i đó h|m s đ i d u. Cú ph{p: x = fzero (fun, x0) ởrong đó x0 l| l}n c n điểm m| h|m s giao v i trục Ox hoặc x0 l| vector ch a hai gi{ trị x1 v| x2 m| f(x1) v| f(x2) kh{c d u nhau. H|m fzero cho phép x{c định nghi m c a h|m s f(x) = 0 t i l}n c n x0. ỡí dụ: Xét h|m s f(x) =x2 – 2x – 3 Đồ thị h|m s n|y giao v i trục Ox t i hai điểm x1 = - và x2 = 3 Để dùng M‚ởỗ‚‛ tìm c{c gi{ trị x1, x2 tr c tiên cần khai b{o h|m >>f = @(x) x^2 – 2*x – 3; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 56 >>x1 = fzero(f, -2) ởìm nghi m t i l}n c n c a -2 x1 = -1 >>x2 = fzero(f, [2, 4]) ởìm nghi m trong kho ng ỗ uýf v| f , kh{c d u x2 = 3 >>f(x1) ans = 0 >>f(x2) ans = 0 Hình 3. 1. Xác định nghiệm c a hàm số tại điểm đồ thị giao với trục hoành ỡí dụ: S dụng M‚ởỗ‚‛ để gi i ph ơng trình sau 5 – 2x = e-0.25x ởr c tiên thực hi n phép biến đ i để có vế ph i bằng khẫng, sau đó khai b{o h|m trong M‚ởỗ‚‛ >>f = @(x) 5 – 2*x – exp(-0.25*x); ởa th y đồ thị h|m s cắt trục ho|nh trong kho ng Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh , M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 57 Hình 3. 2. Đồ thị hàm số f(x) = 5 - 2x - e 0.25x >>x0 = fzero(f, [2, 3]) x0 = 2.2124 >>f (x0) ans = 2.2204e-016 -16 ỗ u ý gi{ trị h|m t i x0 x p xỉ . × t ơng đ ơng khẫng, vì v y x -0.25x =2.2124 chính l| nghi m c a h|m 5 – 2x – e cễng chính l| nghi m c a ph ơng -0.25x trình 5 – 2x = e ỗ u ý M‚ởỗ‚‛ định nghĩa nghi m c a ph ơng trình f(x) = 0 t i nơi đồ thị h|m s f(x) cắt trục ho|nh nơi h|m s đ i d u . ỡì v y trong tr ng h p f(x) = x 2 đ t gi{ trị khẫng t i x=0, fzero sẽ khẫng tìm đ c nghi m nếu x{c định l}n c n khẫng đúng. ỡí dụ >>fzero f, hoặc fzero f, -1) hay fzero(f, [-1, 1]). . Đa th c m t bi n s M‚ởỗ‚‛ biểu di n đa th c m t biến s d i d ng m t vector h|ng ch a c{c h s . ỡí dụ: Đa th c x3 + 2x2 – 4x + 3 có thể biểu di n b i vector , đa 4 2 th c 2x – x + 5 có thể biểu di n b i vector , l u ý h s khẫng cho 3 c{c s h ng x v| x. ộếu v l| m t vector ch a c{c h s c a đa th c v| x l| m t s , h|m polyval(v,x) cho phép tính gi{ trị c a đa th c biểu di n b i v t i x, x có thể l| m t vector, khi đó t p h p c{c gi{ trị c a đa th c cễng sẽ đ c l u trong m t vector, cú ph{p gọi h|m nh sau >>y = polyval (v, x) ộh đã trình b|y trên, gi{ trị tr về y sẽ l| gi{ trị c a h|m s v t i x t ơng ng. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 58 ỡí dụ: >>polyval ([1 ans -2 0 1], [1 2 3 4]) = [0 1 10 33] ởrong đó , 1, 10, lần l điểm x = 1, 2, 3, 4 t ơng ng. t l| c{c gi{ trị c a đa th c x3 – 2x2 + 1 t i c{c H|m roots trong M‚ởỗ‚‛ cho phép tìm nghi m c a ph ơng trình biểu di n d i d ng đa th c. Cú ph{p gọi h|m nh sau >>roots(C) ởrong đó C l| vector ch a c{c h s c a đa th c cần tìm nghi m, gi{ trị tr về sẽ l| t p h p c{c nghi m c a đa th c cần tìm. ỡí dụ cho đa th c f(x) =4x3 – 2x2 – 8x + 3, gi i ph ơng trình f(x) = 0. >>Rs = roots([4 -2 -8 3]) Rs = -1.3660 1.5000 0.3660 ởr ng h p đã biết t t c c{c nghi m c a đa th c biểu di n trong vector Rs, ta có thể biểu di n l i đa th c đó d i d ng vector c a c{c h s s dụng l nh poly theo cú ph{p sau >>f = poly(Rs) ởrong đó ờs l| vector biểu di n t p nghi m c a ph ơng trình f(x) = 0 t ơng ng, gi{ trị tr về c a h|m sẽ l| vector ch a c{c h s c a f(x). ỡí dụ: Biểu di n l i đa th c có nghi m ch a trong ờs đ c tính trên: >>f = polys(Rs) f = 1.0000 -0.5000 -2.0000 ộh}n t t c c{c h s c a đa th c v i để đ 0.7500 c đa th c ban đầu ởrong M‚ởỗ‚‛ ta cễng có thể x{c định tích c a hai đa th c a, b bằng l nh conv(a, b) v i gi{ trị tr về l| vector ch a c{c h s c a đa th c tích. ở ơng tự phép chia hai đa th c cễng có thể thực hi n trong M‚ởỗ‚‛ s dụng l nh deconv(b, a). Trong đó, b, a lần l t l| c{c đa th c t s v| m u s . Cú ph{p t ơng ng nh sau: >>c = conv(a, b) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 59 >>[q, r] = deconv(b, a) ởrong đó: a, b lần l t l| c{c đa th c th|nh phần, c l| đa th c tích, q l| th ơng c a phép chia đa hai đa th c v| r l| phần d trong phép chia đa th c b cho a. ỡí dụ: Xét hai đa th c A 2x 5 >>A = [2 5]; >>B = [1 3 B x 2 3x 7 7]; Ỗết qu c a phép tính AB >>C = conv(A, B) C = 2 11 29 Ỗết qu c a phép tính 35 C A >>[D, r] = deconv(C, A) D = 1 3 7 0 0 0 r = 0 . Tích ph}n v| đ o h|m Để tính tích ph}n x{c định, M‚ởỗ‚‛ có h|m quad fun, a, b tính gần đúng tích ph}n c a h|m fun trong kho ng (a, b) v i sai s 1e-6 s dụng cẫng th c Ởimpson. H|m y = fun(x) ph i ch p nh n tham s x d i d ng vector v| tr về kết qu d i d ng vector y. ỡì thế khi định nghĩa h|m cần s dụng c{c phép to{n đ i v i vector .* ./ .^ Cú ph{p gọi h|m nh sau >>q = quad(fun, a, b) Gi{ trị tr về c a h|m q l| kết qu tính gần đúng tích ph}n t ơng ng c a h|m fun nh đã trình b|y trên. ỡí dụ: Tính tích ph}n x{c định c a h|m x2 – 6x + 5 trong kho ng (1, 5). >>f = @(x) x.^2 – 6*x + 5; >>intf = quad(f, 1, 5) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 60 intf = -10.6667 x 2 ỡí dụ: Tính tích ph}n sau 0 3 1 2x 5 >>f = @(x) 1./(x.^3 – 2*x – 5); >>quad(f, 0, 2) ans = -0.4605 dy f ( x) hoặc f’ x v| dx định nghĩa bằng đ thay đ i c a biến đ c l p y theo x. Đ o h|m c a h|m s t i m t điểm chính l| góc nghiêng c a tiếp tuyến v i h|m s t i điểm đó. Đ o h|m c a h|m s y = f(x) đ c viết d i d ng Để x{c định đ o h|m c a đa th c m t biến trong M‚ởỗ‚‛ có thể s dụng h|m polyder v i cú ph{p nh sau >>polyder (P) ởrong đó P l| vector ch a c{c h s c a đa th c t ơng ng. ỡí dụ: Cho đa th c x3 + 2x2 – 4x + 3 có thể biểu di n bằng vector [1 2 -4 , đ o h|m c a đa th c n|y sẽ x{c định nh sau >>hs = [1 2 -4 3]; >>dhs = polyder(hs) dhs = 3 4 -4 có d ng vector - biểu di n cho đa th c 3x2 + 4x – 4. Đ o h|m có thể biểu di n d i d ng gi i h n nh sau v| có thể tính gần đúng trong M‚ởỗ‚‛ s dụng h|m diff theo cú ph{p >>diff(X) ởrong đó X l| vector ch a c{c h s c a đa th c t ơng ng. f '( x) lim h 0 f ( x h) f ( x ) h ợét h|m s f(x) = x2 – 6x + 5. Gi s chúng ta có t p h p c{c gi{ trị c a biến x biểu di n b i vector x = [1 2 3 4 5]. ộh v y t p h p c{c gi{ trị c a biến y = f(x) t ơng ng l| >>f = @(x) x.^2 – 6*x + 5; >>x = [1 2 3 4 5]; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 61 >>y = f(x) y = 0 -3 -4 -3 0 ộếu coi dy l| đ o h|m c a f(x) theo x v| x{c định gi{ trị c a đ o h|m t i c{c điểm x = [1 2 3 4 5] t ơng ng >>dy = @(x) 2*x – 6 >>dy(x) ans = -4 -2 0 2 4 Ởo s{nh gi{ trị đ o h|m c a h|m s t i c{c điểm cho tr gần đúng gi i h n s dụng h|m diff. c bằng c{ch tính >>diff(y)./diff(x) ans = -3 -1 1 3 ỗ u ý trong M‚ởỗ‚‛ vi c tính diff c a vector a gồm n phần t đ c x{c định bằng vector m i da có n – 1 phần t do đó s phần t c a phép tính đ o h|m theo diff ít hơn so v i c{ch tính thẫng th ng m t phần t . Gi{ trị chênh l ch gi a hai phép tính nh dần khi kho ng c{ch gi a c{c phần t trong vector x c|ng gi m (có thể th l i khi nh p x = 1: .1 : 5). a = [a1 a2 a3 … an-2 an-1 an] da = [a2 – a1 a3 – a2 … an-1 – an-2 an – an-1] 3.6 ớhư ng trình vi ph}n ởrong M‚ởỗ‚‛, ph ơng trình vi ph}n có thể gi i theo ph ơng ph{p s thẫng qua m t s h|m x}y dựng sẵn, trong n i dung gi{o trình n|y chúng ta sẽ t p trung tìm hiểu hai h|m ode23, ode45 l| nh ng phiên b n ph{t triển từ cẫng th c ờunge-Ỗutta b c / v| ờunge-Ỗutta b c / . Cú ph{p t ng qu{t để gi i ph ơng trình vi ph}n v i nh ng h|m n|y nh sau: >>[t, y] = ode45(‘yprime’, [t0, tF], y0) >>[t,y ] = ode23(‘yprime’, [t0, tF], y0) Trong đó: yprime l| tên h|m biểu di n ph ơng trình vi ph}n, t0 v| tF l| hai m c th i gian đầu cu i cho đ{p {n, y0 l| gi{ trị c a biến t i th i điểm ban đầu. Gi{ trị tr về c a h|m l| vector th i gian t, v| ma tr n y ch a nh ng gi{ trị t ơng ng c a h|m t i c{c th i điểm kh{c nhau l y từ vector th i gian t. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 62 Đ i v i nh ng h|m ph c t p hoặc đ i v i h ph ơng trình vi ph}n, nên khai b{o h|m trong script, trong ch ơng n|y chúng ta sẽ chỉ xét nh ng tr ng h p có thể khai b{o bằng h|m vẫ danh. ỡí dụ: Gi i ph ơng trình vi ph}n ty 2 y t 3 dy t 3 2 y dt t trong kho ng 1 < t < 3 v| y(0) = 4.2 Hình 3. 3. Đồ thị (t, y) c a phương trình vi phân dy/dt = (t 3 - 2y)/t >>ode1 = @(t,y) (t^3 – 2*y)/t; >>[t, y] = ode45(ode1, [1: 0.1: 3], 4.2); C{c cặp gi{ trị (t,y) thu đ c có thể biểu di n bằng đồ thị . . Gi i ph ơng trình vi ph}n sau: y ty 2 y ởrong kho ng t 0,.5 v i y(0) = 1 >>ode2 = @(t,y) (t*y^2 + y) >>[t,y] = ode45(ode2, [0, .5], 1) C{c gi{ trị t,y thu đ c có thể biểu di n d i d ng đồ thị nh sau: Hình 3. 4. Đồ thị (t, y) c a phương trình vi phân dy/dt = ty2 +y Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 63 ởrên đ}y l| c{c ví dụ về gi i ph ơng trình vi ph}n b c nh t, đ i v i ph ơng trình vi ph}n b c cao hơn, cần đ a về h ph ơng trình vi ph}n b c nh t rồi gi i, tuy nhiên khi đó khai b{o h|m cần đ c thực hi n trong M-file. . Tóm tắt chư ng Ở ph c abs(x) ợ{c định gi{ trị tuy t đ i c a biến x angle(x) Góc c a s ph c x conj(x) ởr về s ph c liên h p c a x imag(x) ớhần o c a x real(x) ớhần thực c a x ồ|m s v| đa th c m t bi n s fminbnd ợ{c định cực tiểu c a h|m s trong m t kho ng cho tr c fzero ộghi m c a h|m f(x) = 0 x{c định trong kho ng cho tr c polyval ởính gi{ trị đa th c roots ởính nghi m c a đa th c poly ởr về vector h s c a đa th c nếu biết vector nghi m conv ởhực hi n phép nh}n hai đa th c deconv ởhực hi n phép chia hai đa th c Tích ph}n, đ o h|m, vi ph}n s quad ởích ph}n h|m s polyder Đ o h|m đa th c m t biến s diff ởính gần đúng đ o h|m c a h|m s m t biến s ode23 H|m tính vi ph}n theo cẫng th c ờunge-Kutta ode45 H|m tính vi ph}n theo cẫng th c ờunge-Kutta Bảng 3. 1. Tóm tắt các hàm sử dụng trong chương 3 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 64 . ọ|i t p chư ng ọ|i . Th c hi n c{c phép tính sau a. b. c. d. e. f. g. h. i. (3 5i) (2 3i) (3 5i) 6 7i (4 5i) 3(2 4i) (5 3i)i (2 7i)(3 4i) 1 i 3 1 i 4 7i 2 5i Đáp án: a. 5 2i b. 9 5i c. 4 2i d. 6 12i e. 3 5i f. 34 13i g. i h. 1.5 1.5i i. 1.4828 0.2069i ọ|i . ờềt g n a. 1 i 3i (1 2i)(2 2i) 1 i 1 i b. 2i(i 1) ( 3 i) (1 i)(1 i) 3 Đáp án: a. b. 3 7i 10i ọ|i . a. ỡiết l i c{c s ph c sau d 7 2i i. i d ng [r , ] Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ ii. 3i iii. 4 6i b. ỡiết l i c{c s ph c sau d i. ii. iii. [3, ] 4 [5, ] 2 [ 2, ] 3 i d ng c. ỡiết l i c{c s ph c sau d i. ii. iii. 2(cos a bi i d ng lễy thừa. i cos ) 3 3 2 ] 3 1 i 3 65 [5, ọ|i . Cho h|m s sau: exp(2 x)-4 exp(x)+2 y 4 2 0 -2 -10 f ( x) e 2x -8 4e 2 -6 -4 -2 0 2 x Hình 3. 5. Hình bài 3.4 x ởìm nghi m f(x) = 0 v| cực trị c a h|m trong kho ng biểu di n c a đồ thị. ọ|i . Cho: H ( s ) n( s ) d ( s) ỡ i: n(s) s 4 6s3 5s 2 4s 3 d (s) s5 7s 4 6s3 5s 2 4s 7 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 66 ởìm: a. n(10), n(-5), n(-3), n(-1) b. d(10), d(-5), d(-3), d(-1) c. H(10), H(-5), H(-3), H(-1) ọ|i . Cho: p1(s) s3 5s 2 3s 10 p2 (s) s 4 7s3 5s 2 8s 15 p3 (s) s5 15s 4 10s3 6s 2 3s 9 a. ởìm p1(2), p2(2), p3(3) b. ởìm p1(s)p2(s)p3(s) c. ởìm p1(s)p2(s)/p3(s) ọ|i . ởìm nghi m p(x) = 0 c a c{c đa th c sau: a. p1( x) x7 8x6 5x5 4 x4 3x3 2 x 2 x 1 b. p2 ( x) x 13x 10 x 12 x 8 x 15 5 c. 4 3 2 p3 ( x) x4 7 x3 12 x 2 25x 8 ọ|i . Ở dụng h|m quad tính c{c tích ph}n sau a. y1 b. y2 sin xdx 2 sin x dx x 2 y3 ( x3 x 2 3 c. 1 ọ|i . Cho h|m s 1 )dx x2 f ( x) x sin 2 ( x) v| đồ thị biểu di n trên kho ng [0,2 ] a. ợ{c định c{c điểm cực đ i c a h|m s trên kho ng biểu di n v| gi{ trị h|m s t ơng ng. b. ởính tích ph}n sau s dụng h|m quad. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 67 2 f ( x)dx 0 x (sin(x)2) 5 4 3 2 1 0 0 1 2 3 x 4 5 6 Hình 3. 6. Hình bài 3.9 ọ|i . ợét m t v t chuyển đ ng v i v n t c v(t ) t 2t 2 m/s xét trên 3 kho ng th i gian 2 0(s) t 5(s) . ợ{c định gia t c c a v t th i điểm t = 2.5 (s). Đáp án: Ỗhai b{o biến t ch a c{c gi{ trị th i gian c{ch nhau t 0.1(s) , tính v theo t >>t = 0: 0.1: 5; >>v = t.^3 – 2*t.^2 + 2; ởính đ o h|m theo t c a v >>dv = diff(v)./diff(t); Gia t c t i th i điểm t = 2.5 (s) >>dv(26) ans = 9.3100 ộh v y v i t 0.1(s) , gia t c t i th i điểm t = 2.5(s) l| . m/s2 Ởo s{nh v i gi{ trị gia t c tính theo đ o h|m v '(t ) 3t 2 4t v '(2.5) 3 (2.5)2 4 2.5 8.75 m/s 2 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 68 Gi{ trị gia t c tính bằng ph ơng ph{p s dụng h|m diff chỉ đ a ra đ{nh gi{ gần đúng, để thu về kết qu chính x{c hơn sinh viên có thể th v i t 0.01( s) v| t 0.001(s) ọ|i . Ở dụng h|m ode23 v| ode45 để gi i c{c ph ơng trình vi ph}n sau: a. x 1 2tx v i x(0) = 1 trên kho ng , b. x tx v i x(0) = 3 trên kho ng , 1 x2 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U Chư ng . ọ C4ộỒ C 69 ỖÝ ồI U 4.1 Ồi i thi u bi n ký hi u ‛ cẫng cụ ký hi u to{n học l| t p h p c{c cẫng cụ cho phép thao t{c v| x lý c{c phép to{n s dụng biến ký hi u. ‛ cẫng cụ n|y có thể đ c ng dụng trong đồ họa cễng nh c{c ph ơng ph{p tính to{n s trong mẫi tr ng M‚ởỗ‚‛ nh đ o h|m, tích ph}n, chu i ởaylor, đ i s tuyến tính, rút gọn, gi i h ph ơng trình, c{c h|m to{n học đặc bi t, c{c phép biến đ i ốourier, ỗaplace ‛ cẫng cụ biến ký hi u trong M‚ởỗ‚‛ ph{t triển dựa trên cơ s m t phiên b n đặc bi t c a Maple Ỗernel, t ơng thích v i M‚ởỗ‚‛ v| Maple tr lên. ỡ i sự xu t hi n c a b cẫng cụ biến ký hi u, trong M‚ởỗ‚‛ xu t hi n thêm m t kiểu d li u gọi l| đối tượng ký hiệu, đ c định nghĩa l| m t kiểu d li u có c u trúc. Trong đó, l u m t chu i ký tự đ i di n cho m t biến ký hi u có thể l| m t biến đơn lẻ, m t ma tr n hoặc m t biểu th c. ỡí dụ sau đ}y chỉ ra sự kh{c bi t gi a hai lo i kiểu d li u double v| đ i t ng ký hi u t ơng ng, c}u l nh sau tr về kết qu l| m t s th p ph}n s dụng d u ch m đ ng. >>sqrt(2) ans = 1.4142 Mặt kh{c khi ta chuyển gi{ trị sang d ng đ i t ơng ký hi u s dụng l nh symsau đó thực hi n phép căn b c hai, kết qu thu đ c sẽ l| >>a = sqrt(sym(2)) ans = 2^(1/2) M‚ởỗ‚‛ tr về kết qu d ng biểu th c cho phép căn b c hai m| khẫng đ a ra gi{ trị s , kết qu n|y sẽ đ c l u l i trong m t x}u ký tự biểu di n cho ^ / . Gi{ trị s c a biểu th c n|y có thể thu đ c s dụng l nh double theo cú ph{p >>double (X) ởrong đó ợ l| biến có kiểu cần chuyển về d ng double, nếu biến X đã có d ng double, l nh trên khẫng có t{c dụng. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 70 >>double(a) ans = 1.4142 Ỗhi t o m t ph}n s có ch a đ i t v| m u s c a ph}n s đó. ỡí dụ ng ký hi u, M‚ởỗ‚‛ sẽ l u l i t s >>sym(2)/sym(5) ans = 2/5 Ỗết qu thu đ c trong phép to{n s dụng đ i t ng ký hi u sẽ đ c biểu di n d i d ng biểu th c, kh{c v i c{c kiểu d li u tiêu chuẩn kh{c. ỡí dụ: Trong phép c ng hai ph}n s có kiểu d li u double, M‚ởỗ‚‛ tr về kết qu d ng s th p ph}n >>2/5 + 1/3 ans = 0.7333 ởrong khi đó nếu thực hi n phép c ng hai ph}n s có kiểu biến ký hi u, M‚ởỗ‚‛ sẽ quy đồng m u s rồi thực hi n phép c ng, kết qu tr về sẽ có d ng ph}n s >>sym(2)/sym(5) + sym(1)/sym(3) ans = 11/15 . ọi n v| bi u th c ởrong M‚ởỗ‚‛, c{c biến v| biểu th c ký hi u có thể đ l nh sym theo cú ph{p sau ct o s dụng >>S = sym (A); >>x = sym x ởrong đó c{c biến S v| x đ c s dụng để l u tr gi{ trị tr về c a h|m sym, cú ph{p th nh t cho phép t o m t biến có c u trúc sym c u trúc ký hi u từ tham s đầu v|o ‚, cú ph{p th hai cho phép t o biến ký hi u có tên ’x’ v| l u kết qu v|o x. Ví dụ c{c l nh >>x = sym x >>a = sym alpha Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 71 cho phép t o c{c biến ký hi u m| khi in ra m|n hình, chúng đ t ơng ng l| x v| alpha. c biểu di n ởrong to{n học v| ngh thu t, hai đ i l ng đ c coi l| có tỉ s v|ng nếu tỉ l gi a chúng t ơng đ ơng v i tỉ l gi a t ng c a chúng v i đ i l ng l n hơn. ỡí dụ cho hai đ i l ng a v| b v i a > b, hai đ i l ng n|y đ c coi l| có tỉ s v|ng nếu a a b 1 5 b a 2 Gi s dùng biến ký hi u để biểu di n tỉ s v|ng dụng l nh 1 5 , ta có thể s 2 >>rho = sym(‘ ( 1 + sqrt(5) )/2 ’) sau đó thực hi n c{c phép to{n v i biến ký hi u rho vừa khai b{o, ví dụ >>f = rho^2 – rho – 1 f = (1/2+1/2*5^(1/2))^2-3/2-1/2*5^(1/2) Ỗết qu l| m t biểu th c m| ta có thể rút gọn đ c s dụng l nh simplify. >>simplify(f) ans = 0 ỗ nh simplify cho phép rút gọn c{c phần t có d ng ký hi u, s dụng theo cú ph{p sau >>simplify(x) ỡí dụ: Nh p m t h|m s b c hai f = ax2 + bx + c >>f = sym(‘a*x^2 + b*x + c’) ỗ nh trên sẽ g{n cho biến f biểu th c ký hi u ax2 + bx + c. ởuy nhiên, trong tr ng h p n|y b cẫng cụ biến ký hi u trong M‚ởỗ‚‛ khẫng t o c{c biến t ơng ng v i c{c th|nh phần a, b, c, x trong đa th c vừa nh p. C{c biến, tham s trên cần đ c khai b{o để có thể s dụng >>a = sym(‘a’); >>b = sym(‘b’); >>c = sym(‘c’); >>x = sym(‘x’); Hoặc đơn gi n hơn >>syms a b c x; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 72 >>f = sym(‘a*x^2 + b*x + c’); Cễng gi ng nh đ i v i đa th c biểu di n b i vector h|ng hay h|m s vẫ danh, m t đa th c đ c khai b{o b i l nh sym có thể x{c định gi{ trị c a nó t i m t điểm s dụng l nh subs theo cú ph{p sau >>subs(S) >>subs(S, new) >>subs(S, old, new) ởrong đó old l| c{c gi{ trị trong biểu th c S sẽ bị thay thế b i c{c gi{ trị new. Tr ng h p s dụng cú ph{p th nh t, t t c c{c biến ký hi u trong S sẽ bị thay thế b i c{c biến tr về c a c{c h|m đ c gọi hoặc c{c gi{ trị có sẵn trong Ợorkspace. ởrong v i cú ph{p th hai hoặc th ba, hoặc l| t t c c{c biến ký hi u sẽ bị thay thế b i new hoặc chỉ c{c biến ký hi u đ c li t kê trong old sẽ bị thay thế b i new trong biểu th c S. ỡí dụ: Thay gi{ trị x = 2 v|o biểu th c f = 2x2 – 3x + 1 >>syms x f; >>f = 2*x^2 – 3*x + 1; >>f2 = subs(f,2) f2 = 3 Đ i v i đa th c có m t biến s , v n có thể s dụng l nh subs để tính gi{ trị đa th c khi ta chỉ định rậ biến n|o trong đa th c đ c thay thế b i m t gi{ trị cho tr c. >>syms x y ; >>f = x^2*y + 5*x*sqrt(y); thay gi{ trị x = v|o f >>subs(f, x, 3) ans = 9*y + 15*y^(1/2) thay gi{ trị y = v|o f >>subs(f, y, 3) ans = 3*x^2 + 5*x*3^(1/2) tính gi{ trị f t i x = v| y = >>subs(f, {x, y}, {0,0}) ans = Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 73 0 Chề ý Ỗhi s dụng h|m subs m| khẫng chỉ rậ ra biến s ký hi u n|o sẽ đ c thay gi{ trị, M‚ởỗ‚‛ sẽ chọn bi n ký hi u mặc đ nh theo quy tắc sau đ i v i biến m t ký tự, M‚ởỗ‚‛ sẽ chọn biến gần v i x nh t trong b ng ch c{i, nếu có hai biến có cùng kho ng c{ch t i x, biến đ c chọn sẽ l| biến xếp sau trong b ng ch c{i. ‛ cẫng cụ ký hi u còn cho phép ta gi i ph ơng trình, h ph ơng trình s dụng h|m solve theo cú ph{p sau >>solve pt , pt , pt , , ptộ >>solve pt , pt , pt , , ptộ, bien , bien , bien , , bienộ ởrong đó pt , pt , pt , …, ptN l| c{c ph ơng trình cần gi i còn bien1, bien2, bien , …, bienN l| c{c ẩn t ơng ng. ợét ví dụ đ i v i đa th c trong mục . : f(x) =4x3 – 2x2 – 8x + 3 Đa th c n|y có thể đ c biểu di n d i d ng vector: >>clear all >>v = [4 v| có thể đ -2 -8 c biểu di n d 3] i d ng h|m biến ký hi u nh l nh poly2sym: >>f = poly2sym(v) f = 4*x^3 – 2*x^2 – 8*x + 3 ỗ u ý trong tr ng h p n|y, biến m i xu t hi n trong Ợorkspace chỉ có f v| x v n l| biến ch a đ c khai b{o. >>x ??? Undefined function or variable ‘x’ ộg c l i M‚ởỗ‚‛ cễng cho phép biến đa th c biến ký hi u sang d ng vector h s v i l nh sym2poly. ộh đã biết f(x) = 0 có nghi m v| có thể gi i bằng l nh solve khi f đ khai b{o nh m t biến ký hi u. c >>x=solve(f) x = 3/2 1/2*3^(1/2)-1/2 -1/2-1/2*3^(1/2) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 74 ộghi m c a f(x) = 0 đ}y đ c đ a ra d chuyển về gi{ trị s s dụng l nh double hoặc eval. i d ng biểu th c v| có thể >>eval(x) ans = 1.5000 0.3660 -1.3660 ỗ u ý: Trong tr ng h p trên, nếu nh tham s s dụng trong l nh solve l| m t đa th c, m t h|m s ch khẫng d ng ph ơng trình, solve sẽ cho đa th c bằng khẫng rồi gi i. Ởau đ}y l| ví dụ đ i v i tr ng h p tham s đ a v|o d ng ph ơng trình. >>syms y >>solve(‘2*y^2 + y = 6’) ans = 3/2 -2 ởrong tr ng h p có nhiều hơn m t biến trong m t ph ơng trình, cần chỉ rậ ph ơng trình sẽ đ c gi i theo biến n|o. ởr ng h p khẫng chỉ rậ trong c}u l nh m| ph ơng trình có biến x thì M‚ởỗ‚‛ sẽ luẫn u tiên gi i theo x. Hai c}u l nh sau l| ví dụ cho vi c solve gi i ph ơng trình theo biến u tiên x v| gi i theo biến chỉ định: >>solve (‘ a*x^2 + b*x ‘) ans = 0 -b/a >>solve(‘a*x^2 + b*x’,’b’) ans = -a*x ỗ nh solve cễng có thể s dụng để gi i h ph ơng trình nhiều ẩn trong đó kết qu đ c l u d i d ng d li u có c u trúc. ỡí dụ h ph ơng trình d i đ}y có thể gi i nh sau 4 x 2 y z 7 x y 5 z 10 2 x 3 y z 2 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 75 >>solve(‘4*x – 2*y + z = 7’, ‘x + y + 5*z = 10’, ‘-2*x + 3*y – z = 2’) ans = x: [1 x 1 sym] y: [1 x 1 sym] z: [1 x 1 sym] Để truy xu t t i c{c nghi m th|nh phần đ trúc, cần s dụng d u ch m . c l u trong kiểu d li u có c u >> x = ans.x x = 124/41 >> y = ans.y y = 121/41 >> z = ans.z z = 33/41 . Ộa tr n bi n ký hi u M‚ởỗ‚‛ ch p nh n ma tr n có thể có phần t l| biến ký hi u, c{c phép to{n đ i v i ma tr n n|y ho|n to|n t ơng tự nh c{c phép to{n đ i v i ma tr n a a13 a thẫng th ng. ỡí dụ nh p ma tr n A 11 12 a21 a22 a23 >>syms a11 a12 a13 a21 a22 a23; >>A = [a11 a12 a13; a21 a22 a23]; M t ma tr n đ c coi l| ma tr n tuần ho|n nếu nh m i h|ng c a ma tr n chính l| h|ng tr c đó c a ma tr n đó v| phần t đầu tiên c a h|ng đ c đặt vị trí cu i cùng. ỡí dụ: Có thể t o m t ma tr n tuần ho|n từ biến ký hi u a, b, c nh sau: >>syms a b c >>A = [a b c; b c a; c a b] A = [a b c] [b c a] Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U [c a 76 b] Đ i v i ma tr n tuần ho|n, gi{ trị t ng c{c phần t c a m i h|ng v| c t l| nh nhau, ví dụ kiểm tra h|ng m t v| c t hai c a ma tr n ‚: >>sum(A(1,:) ) ans = a + b + c >>sum( A(:,2) ) ans = a + b + c ở o thêm c{c biến ký hi u alpha, beta v| thay thế cho c{c phần t trong ‚: >>syms alpha beta >>A(2,3) = beta; >>subs(A,b,alpha); >>A A = [a alpha [alpha [c c] c a beta] alpha] ỡí dụ: Xét ma tr n quay G v i góc quay t cos(t ) sin(t ) G sin(t ) cos(t ) >>syms t; >>G = [cos(t) sin(t); -sin(t) cos(t)]; Ở dụng hai lần ma tr n quay G cho phép quay mặt phẳng v i m t góc bằng hai lần góc t cho tr c >>A = G*G A = [ cos(t)^2-sin(t)^2, [ đ 2*cos(t)*sin(t)] -2*cos(t)*sin(t), cos(t)^2-sin(t)^2] Cễng gi ng nh t i gi n biểu th c bằng l nh simplify, ma tr n cễng có thể c đ a về d ng đơn gi n s dụng l nh simple theo cú ph{p sau >>simple(S) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 77 ởrong đó Ở l| m t biến ký hi u. ỗ nh simple sẽ tìm d ng t i gi n nh t c a biểu th c hoặc ma tr n biến ký hi u. ỡí dụ >>simple(A) ans = [ cos(2*t), sin(2*t)] [ -sin(2*t), cos(2*t)] 4. Tích ph}n v| đ o h|m đa th c bi n ký hi u Đ i v i đa th c biến ký hi u, trong M‚ởỗ‚‛ ta có thể s dụng hai h|m int v| diff khi mu n tích ph}n hay đ o h|m nh ng đa th c n|y. Chi tiết về hai l nh n|y có thể tìm hiểu thêm trong M‚ởỗ‚‛ Help >>help sym/int >>help sym/diff Cú ph{p >>int (S, v, a, b) >> diff(S, ‘v’, n) >> diff(S, n, ‘v’) ởrong đó cú ph{p th nh t, M‚ởỗ‚‛ cho phép tính tích ph}n c a S theo v trong kho ng từ a đến b. cú ph{p th hai v| th ba, M‚ởỗ‚‛ cho phép ng i s dụng tính đ o h|m n lần c a S theo v ỡí dụ: Tính tích ph}n (3x 2 1)dx >>syms x; >>int(3*x^2-1) ans = x^3 – x ợ{c định tích ph}n trên khi biết hai gi i h n [a, b] = [2, 4] >>int(3*x^2 – 1, 2, 4) ans = 54 ỡí dụ: Tính đ o h|m h|m s sau f x 3 2 x 2 4 x 3 >>syms x f >>f = x^3 + 2*x^2 – 4*x + 3 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 78 f = x^3 + 2*x^2 – 4*x + 3 >>diff(f) ans = 3*x^2 + 4*x - 4 ỗ u ý: Khi mu n x{c định đ o h|m c a hằng s s dụng l nh diff, tr tiên cần định nghĩa hằng s đó kiểu biến ký hi u. ỡí dụ: c >>c = sym(‘5’); >>diff(c) ans = 0 ộếu chỉ nh p từ c a s l nh >>diff(5) Ỗết qu tr về sẽ có d ng ans = [ ] Đ i v i đa th c có nhiều biến, cần chỉ rậ trong l nh để x{c định sẽ đ o h|m đa th c theo biến n|o. ỡí dụ >>syms s t >>f = sin(s*t) Đ o h|m theo t: >>diff(f, t) ans = cos(s*t)*s Đ o h|m theo s: >>diff(f, s) ans = cos(s*t)*t H|m diff cễng có thể nh n gi{ trị đầu v|o l| ma tr n biến ký hi u, khi đó phép đ o h|m sẽ đ c thực hi n bằng c{ch đ o h|m từng phần t c a ma tr n đầu v|o. ỡí dụ: Tìm đ o h|m c a ‚. cos(ax) sin(ax) A sin(ax) cos(ax) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 79 >>syms a x >>A = [cos(a*x) sin(a*x); -sin(a*x) cos(a*x)]; >>B = diff(A) B = [ -sin(a*x)*a, cos(a*x)*a] [ -cos(a*x)*a, -sin(a*x)*a] . ớhư ng trình vi ph}n v| h|m s bi n ký hi u ởrong M‚ởỗ‚‛, ph ơng trình vi ph}n c a h|m s biến ký hi u có thể đ c gi i s dụng h|m dsolve, trong đó ký tự D đ c s dụng để biểu di n c{c biến vi ph}n, ký hi u D , D ,…, DN t ơng ng v i b c vi ph}n. ỡí dụ D2y l| biểu di n c a d2y/dt2. Điều ki n ban đầu nếu khẫng khai b{o trong ph ơng trình, M‚ởỗ‚‛ sẽ đ a ra đ{p {n bao gồm c{c hằng C1, C2. Cú ph{p gọi h|m nh sau >>dsolve(‘eqn1’, eqn2’, ...) ởrong đó eqn1, eqn2... t ơng ng l| c{c ph ơng trình biến ký hi u thể hi n ph ơng trình vi ph}n v| c{c điều ki n ban đầu. ỡí dụ: Gi i ph ơng trình vi ph}n sau y 1 y2 trong đó y l| biến phụ thu c v|o biến đ c l p t >>dsolve(‘Dy = 1 + y^2’) ans = tan( t + C1 ) Ỗhi điều ki n ban đầu đ c khai b{o trong ph ơng trình, kết qu tr về sẽ l| >>dsolve(‘Dy = 1 + y^2’, ‘y(0) = 1’) ans = tan (t + ¼*pi) ỗ u ý: Trong tr ng h p n|y mặc dù y biểu di n theo t v| trong Ợorkspace ta có thể quan s{t th y biến y nh ng khẫng có biến t, vì thế h|m diff(y, t sẽ tr về khai b{o l i. ỡí dụ: Ph ơng trình vi ph}n b c hai v i hai điều ki n ban đầu d2y cos(2t ) y dt 2 y(0) 1 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh dy (0) 0 dt M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 80 >>y=dsolve(‘D2y = cos (2*t) – y’, ‘y(0) = 1’, ‘Dy(0) = 0’, ‘t’) Ỗhẫng gi ng nh khi s dụng ph ơng ph{p s , ph ơng trình vi ph}n b c cao khẫng cần ph i đ a về h ph ơng trình vi ph}n b c nh t để gi i, chỉ cần s dụng ký hi u phù h p v i c{c b c vi ph}n t ơng ng. ỡí dụ ph ơng trình vi ph}n b c ba d 3u u dx 3 u (0) 1 >>u = dsolve(‘D3u ‘D2u(0) = pi’, ‘x’) d 2u (0) dx x du (0) 1 dx = u’, ’u(0) = 1’, ‘Du(0) = -1’, H|m dsolve còn cho phép gi i h ph ơng trình vi ph}n v i m t hoặc nhiều biến. ỡí dụ: Cho h ph ơng trình vi ph}n b c nh t f 3 f 4g >>S=dsolve(‘Df Ỗết qu tr về đ dụng l nh: = g 4 f 3g 3*f + 4*g’, ‘Dg = -4*f + 3*g’) c l u l i trong c u trúc Ở, để truy xu t t i f v| g có thể s >>f = S.f f = exp(3*t)*(C1*sin(4*t)+C2*cos(4*t)) >>g = S.g g = exp(3*t)*(C1*cos(4*t)-C2*sin(4*t)) . Tóm tắt chư ng Tóm tắt c{c h|m đ i v i bi n ký hi u sym Ỗh i t o m t biến ký hi u syms ở o m t hay nhiều biến ký hi u double Chuyển biểu th c biến ký hi u về d ng s eval Chuyển biểu th c biến ký hi u về d ng s numden Đ a về d ng t s v| m u s c a m t đa th c poly2sym Chuyển đa th c d ng vector h s sang đa th c biến ký hi u sym2poly Chuyển đa th c biến ký hi u sang đa th c d ng vector h s Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh d ng ph}n s M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 81 subs ởhay thế gi{ trị c a biến trong biểu th c simplify Đơn gi n hóa biểu th c simple Đơn gi n hóa ma tr n diff Đ o h|m đa th c int ởích ph}n đa th c solve ởìm nghi m c a ph ơng trình, h ph ơng trình dsolve Gi i ph ơng trình vi ph}n, h ph ơng trình vi ph}n Bảng 4. 1. Tóm tắt các hàm sử dụng trong chương 4 . ọ|i t p chư ng ọ|i 4.1 f ( x) 2 xe x sin( x) trên kho ng [0, ] , x{c định nghi m c a ph ơng trình f ( x) 0 v| cực trị h|m s trên kho ng [0, ] Cho h|m s Đáp án 2 x exp(-x)-sin(x) 0.2 y 0 -0.2 -0.4 0 1 2 3 x f ( x) 0 có hai nghi m v| h|m s có Hình 4. 1. Hình bài 4.1 ởừ đồ thị có thể th y ph ơng trình hai cực trị trên [0, ] . ộh đã biết ta có thể tìm nghi m c a ph ơng trình v| cực trị c a h|m s s dụng fzero v| fminbnd đ i v i tham s h|m có d ng chu i ký tự. >>syms x >>y = 2*x*exp(-x) – sin(x) ởìm nghi m th nh t trên kho ng , >>x01 = fzero( char(y), [.5, 1]) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 82 x01 = 0.8030 ởìm nghi m th hai trên kho ng . , >>x02 = fzero( char(y), [2.5, 3]) x02 = 2.7923 ợ{c định cực tiểu c a h|m s trên kho ng . , >>xmin1 = fminbnd( char(y), [1.5, 2]) xmin1 = 1.8409 ợ{c định cực đ i c a h|m s trên kho ng ,. >>xmax2 = fminbnd( char(-y), 0, .5) xmax2 = 0.3384 ọ|i . Cho đa th c x 2 y 3 sin( xy) , tính gi{ trị c a đa th c khi thay x = 2 v| y = 3 t ơng ng. Đáp án: >>syms x y >>z = x^2*y^3 + sin(pi*x*y) z = x^2*y^3 + sin(pi*x*y) >>z23 = subs(z, {x, y}, {2, 3}) z23 = 108 ọ|i . Ỗiểm tra kết qu c a phép tính tích ph}n b t định sau bằng c{ch đ o h|m kết qu v| so s{nh v i biểu th c trong d u tích ph}n: 1 x 1 4 dx Đáp án: >>syms x Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 83 >>y = int( 1/(1+x^4),x) Ỗết qu hiển thị trên m|n hình r t ph c t p v| khẫng thể dùng simplify để rút gọn. Để kiểm tra tính chính x{c c a kết qu tr về, ta sẽ đ o h|m y v| so s{nh v i 1 1 x4 >>b = diff(y, x) >>[t, n] = numden( b – 1/(1+x^4)); >>t t = 0 ở s c a phép tính b ph}n l| đúng. 1 nh n gi{ trị khẫng ch ng t kết qu tích 1 x4 ọ|i . ởính c{c tích ph}n sau: 1 (cos( x 1) )dx 1 x 2 x b. 0 e cos(3x)dx a. c. d. 3 log( x)dx x 2 1 0 4 2 3 0 dx Đáp án: a. b. c. d. ỗ loga cơ s 2.0079 0.1538 -0.4343 1.3461e+003 u ý trong M‚ởỗ‚‛, >>log(x) biểu di n loga tự nhiên c a x, mu n tính c a x cần nh p >>log10(x) ọ|i 4.5 Gi i thích ý nghĩa kết qu hi n trên m|n hình khi thực hi n l nh >>sqrt x^ Đáp án: >>sqrt(x^2) ans = (x^2)^(1/2) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 84 M‚ởỗ‚‛ s dụng ký hi u tiêu chuẩn để thể hi n c{c biểu th c biến ký hi u, trong đó phép khai căn b c hai đ c biểu di n t ơng ng v i lễy thừa b c (1/2). ọ|i . Cho h|m s f ( x) ởính ln(1 x) (1 x) 2 x2 2 f '( x) v| f '(1) Đáp án: >>syms x; >>y = (log(1+x) + x^2/2)/((1+x)^2); >>dy = diff(y); >>dy1=subs(dy,1) dy1 = 0.0767 ọ|i 4.7 exp(2 x)-5 exp(x)+6 3 y 2 1 0 0 0.5 1 1.5 x Hình 4. 2. Hình bài 4.7 f ( x) e2 x 5e x 6 Có đồ thị trong kho ng , . nh trong hình vẽ. a. ởìm nghi m f(x) = 0 b. ợ{c định cực tiểu c a h|m s ợ{c định gi{ trị h|m s v| gi{ trị đ o h|m c a h|m s t i điểm cực tiểu vừa tính. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 85 Đáp án: >>syms x; >>y = exp(2*x) – 5*exp(x) + 6 ởừ đồ thị có thể th y ph ơng trình f(x) = 0 có hai nghi m t i l}n c n cực trị c a h|m s , vì thế cực trị h|m s sẽ đ c tính tr c. >>xmin = fminbnd(char (y), .5, 1) xmin = 0.9163 Gi{ trị h|m s v| gi{ trị đ o h|m c a h|m s t i xmin. >>ymin = subs(y, xmin) ymin = -0.2500 >>dymin=subs(diff(y), xmin) dymin = -6.5272e-006 ởìm hai nghi m c a ph ơng trình f(x) = 0. >>x1 = fzero(char(y), [xmin, xmin+1]) x1 = 1.0986 >>x2 = fzero(char(y), [xmin-1, xmin]) x2 = 0.6931 Hai nghi m n|y cễng có thể x{c định bằng c{ch s dụng h|m solve. >>nghiem = solve(y); ọ|i . Cho h|m s ởính đ o h|m c p x2 2 x 3 f ( x) sin x 1 v| đ a kết qu về d ng t i gi n. Đáp án: >>syms x; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 86 >>y = sin((x^2 + 2*x – 3)/(x-1)); >>dy = diff(y,x,10); >>dy = simplify(dy) dy = -sin(x+3) ọ|i . Cho: f ( x) 3 x 2 2 x 5 ởrong M‚ởỗ‚‛ gi i f(x) = 0 theo ba c{ch kh{c nhau. ọ|i . Cho h ph ơng trình 2 x1 2 x2 x3 2 x2 2 x3 1 x1 x2 3x3 3 Gi i h s ph{p kh{c. dụng b cẫng cụ ký hi u, kiểm tra kết qu bằng m t ph ơng ọ|i . Cho h ph ơng trình: 4 x1 x2 3x4 10 2 x1 3x2 x3 5 x4 3 x1 x2 x3 2 x4 2 3 x1 2 x2 4 x3 4 Gi i h s ph{p kh{c. dụng b cẫng cụ ký hi u, kiểm tra kết qu bằng m t ph ơng ọ|i . Cho h ph ơng trình: 2(Va Vb) 5(Va Vc) et 0 2(Vb Va) 2Vb 3(Vb Vc) 0 Vc 2sin(t ) Ở dụng b cẫng cụ ký hi u gi i h , Va, Vb, Vc biểu di n theo t. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 4. B CÔNG C KÝ HI U 87 ọ|i . Cho: y 2 x3 x 2 4 x 5 ởính y’ x v| y’ ) theo hai c{ch kh{c nhau. ọ|i . Gi i h ph ơng trình vi ph}n sau x1 5x1 2 x2 x2 7 x1 4 x2 ỡ i c{c điều ki n ban đầu: x1 (0) 2 x2 (0) 8 ọ|i . Gi i ph ơng trình vi ph}n d2y 4 y v i c{c điều ki n ban đầu y(0) 1v| y '( ) 0 a. dt 3 2 d y dy 8 2 y cos( x) v i c{c điều ki n ban đầu y(0) 0 v| b. 2 dx dx y '(0) 1 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC Chư ng . Ộ ộỒ ồ ộ ồ ớ Vủ ỏ 88 ỗI U C2 C U TờÚC ỏ li u có c u trúc (data structures) l| c{c biến ch a nhiều hơn m t gi{ trị. Có r t nhiều lo i biến nh thế n|y trong M‚ởỗ‚‛ m| vector v| ma tr n đ c gi i thi u ch ơng l| ví dụ. ởa có thể th y m t biến vector hay m t biến ma tr n ch a r t nhiều gi{ trị liên quan m t c{ch logic v i nhau v| có m t điểm đặc bi t l| t t c c{c gi{ trị đó đều cùng m t lo i v| trong m t s tr ng h p n|o đó đ c s dụng để biểu di n cùng m t đ i t ng ví dụ ma tr n ch a điểm c a c{c mẫn học c a m t sinh viên thì c{c phần t trong ma tr n đều có thể có kiểu d li u double . M t m ng h n h p (cell array) cễng l| m t lo i d li u có c u trúc, tuy nhiên có thể ch a c{c gi{ trị có c{c kiểu kh{c nhau. M ng h n h p có thể l| vector hay ma tr n. M t ví dụ điển hình c a vi c s dụng m ng h n h p l| khi l u tr c{c chu i ký tự có đ d|i kh{c nhau, m ng h n h p cễng có thể đ c s dụng để l u c{c biến con tr tr t i c{c d li u đ c l u tr kh{c. M t tr ng h p kh{c c a d li u có c u trúc đó l| c{c biến c u trúc (structures) l u gi c{c gi{ trị có quan h logic v i nhau, tuy nhiên c{c gi{ trị n|y khẫng nh t thiết ph i có cùng kiểu cễng nh cùng s dụng để biểu di n m t đ i t ng. C{c gi{ trị kh{c nhau trong biến c u trúc đ c l u gi trong c{c tr ng (fields). M t điển hình về vi c s dụng biến c u trúc l| khi x}y dựng cơ s d li u s dụng trong qu n lý. ỡí dụ m t gi{o viên mu n qu n lý t t c c{c sinh viên trong l p học c a mình theo tên, mã s sinh viên v| c{c điểm th|nh phần c a mẫn học. ởrong tr ng h p n|y, có thể s dụng M‚ởỗ‚‛ để l u gi c{c d li u trên bằng vi c dùng biến c u trúc. M ng h n h p v| biến c u trúc đều có thể đ c s dụng để l u gi c{c gi{ trị có kiểu kh{c nhau trong m t biến đơn lẻ. Điểm kh{c bi t l n nh t gi a m ng h n h p v| biến c u trúc l| m ng h n h p qu n lý gi ng nh vector v| ma tr n, nghĩa l| có thể truy xu t t i c{c phần t trong m ng bằng c{ch s dụng c{c h s vị trí cễng nh có thể s dụng vòng lặp để duy t m ng còn biến c u trúc thì khẫng. Đ i v i biến c u trúc, ng i s dụng có thể duy t v| truy xu t t i c{c th|nh phần d li u trong biến s dụng tên c a c{c tr ng th|nh phần t ơng ng. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 89 . Ộ ng h n h p M ng h n h p l| m t yếu t đặc bi t trong M‚ởỗ‚‛ m| khẫng ph i ngẫn ng l p trình thẫng dụng n|o cễng có. ộh đã trình b|y trên, m ng h n h p đ c định nghĩa l| m t m ng, nghĩa l| có thể truy xu t t i c{c phần t th|nh phần s dụng tham s vị trí, tuy nhiên c{c phần t trong m ng l i có thể có c{c kiểu d li u kh{c nhau. . . Thi t l p m ng h n h p Có r t nhiều c{ch để thiết l p m t m ng h n h p trong M‚ởỗ‚‛. ỡí dụ ta sẽ t o m t m ng h n h p gồm phần t , trong đó m t phần t ch a gi{ trị l| m t s kiểu integer, m t phần t ch a m t ký tự, m t phần t ch a m t vector, v| m t phần t ch a m t chu i ký tự. ộh v y m ng h n h p m| ta định t o có thể l| m t vector h|ng hoặc vector c t gồm phần t , hoặc cễng có thể l| m t ma tr n h|ng c t. Cú ph{p thiết l p vector h|ng, c t hay ma tr n cễng ho|n to|n t ơng tự nh ch ơng , nghĩa l| c{c gi{ trị trong cùng m t h|ng có thể đ c ph}n t{ch v i nhau b i ký tự tr ng hoặc d u phẩy, c{c h|ng ph}n bi t v i nhau b i d u ch m phẩy. ởuy nhiên thay vì s dụng ngoặc vuẫng, m ng h n h p sẽ đ c thiết l p bằng c{ch s dụng ngoặc nhọn { }. M ng h n h p l| m t vector h|ng >>cellrowvec = {23, ‘a’, 1:2:9, ‘hello’} cellrowvec = [23] ‘a’ [1x5 double] ‘hello’ M ng h n h p l| m t vector c t >>cellcolvec = {23; ‘a’; 1:2:9; ‘hello’} cellcolvec = [23] ‘a’ [1x5 double] ‘hello’ M ng h n h p l| m t ma tr n x ‘a’; 1:2:9 >>cellmat = {23 cellmat [23 ‘hello’} = ] [1x5 double ‘a’ ] ‘hello’ Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 90 M t c{ch kh{c để thiết l p m ng h n h p l| c p gi{ trị cho từng phần t riêng bi t v| m r ng m ng theo từng phần t m t. ởuy nhiên đ}y l| c{ch l|m khẫng hi u qu v| kh{ t n th i gian. ởrong tr ng h p chúng ta đã biết tr c kích c c a m ng cần t o, ta có thể s dụng h|m cell. ỡí dụ s dụng h|m cell để t o m t m ng h n h p có d ng l| m t ma tr n x nh sau >>mycellmat = cell(2,2) mycellmat = [ ] [ ] [ ] [ ] . . Truy xu t v| hi n th thu c tính c a c{c ph n t m ng h n h p Cễng gi ng nh khi l|m vi c v i vector hoặc ma tr n, ta có thể truy xu t t i c{c phần t trong m ng h n h p bằng c{ch s dụng h s vị trí. ởuy nhiên trong m ng h n h p, ta có thể truy xu t ra kiểu d li u hoặc gi{ trị c a phần t m ng t ơng ng. Ỗhi truy xu t t i c{c phần t trong m ng, ta có thể s dụng d u ngoặc tròn ( ) để chỉ truy xu t t i phần t m| khẫng thể hi n n i dung, gi{ trị c a phần t đó truy xu t vị trí hoặc ngoặc nhọn { } để truy xu t t i gi{ trị c a phần t đó truy xu t n i dung . Ví dụ: >>cellrowvec{2} ans = a >>cellmat{1,1} ans = 23 ‛ằng c{ch truy xu t n|y, có thể g{n gi{ trị cho c{c phần t t ơng ng trong m ng h n h p. Ví dụ: >> mycellmat{1,1} = 23 mycellmat = [23] [ [ ] ] [ ] Ỗhi s dụng truy xu t h s vị trí bằng c{ch dùng d u ngoặc tròn, gi{ trị c a phần t t ơng ng trong m ng h n h p sẽ khẫng đ c thể hi n nếu phần t đó l| biến có c u trúc. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 91 Ví dụ: >>cellcolvec (2) ans = ‘a’ >>cellmat (2,1) ans = [1 x 5 double] >>cellmat {2,1} ans = 1 3 5 7 9 ỏo phần t truy xu t t i l| m t vector, cễng có thể s dụng kết h p ngoặc nhọn v| ngoặc tròn để truy xu t t i phần t nằm bên trong m t phần t c a m ng h n h p nh sau >>cellmat{2,1}(4) ans = 7 ở ơng tự nh đ i v i ma tr n, có thể truy xu t t i m t t p h p c{c phần t trong m ng h n h p nh sau >>cellcolvec {2:3} ans = a ans = 1 3 5 7 9 ỗ u ý: Nếu khẫng g{n gi{ trị tr về c a l nh trên cho m t biến b t kỳ, M‚ởỗ‚‛ sẽ s dụng biến mặc định ans, nh v y sẽ chỉ có gi{ trị c a cellcolvec } đ c l u l i. Để tr{nh tr ng h p n|y, có thể dùng m t vector hoặc m t m ng h n h p m i để l u gi{ trị tr về nh sau >>[c1, c2] = cellcolvec{2:3} c1 = a c2 = 1 3 5 7 9 >>cellcolvec (2:3) ans = Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 92 ‘a’ [1x5 double] Để hiển thị c{c m ng h n h p, ta có thể s dụng l nh celldisp để hiển thị n i dung, gi{ trị c a t t c c{c phần t hoặc s dụng l nh cellplot để hiển thị l i c{c phần t trong m ng d i d ng đồ thị tuy nhiên khẫng hiển thị n i dung . Ví dụ: >>celldisp(cellrowvec) cellrowvec{1} = 23 cellrowvec{2} = a cellrowvec{3} = 1 3 5 7 9 cellrowvec{4} = hello đ sau: ‛ên c nh đó, có r t nhiều h|m {p dụng cho vector, ma tr n cễng có thể c s dụng trên m ng h n h p, ví dụ m t s h|m về kích th c v| chiều nh >>length(cellrowvec) ans = 4 >>size(cellrowvec) ans = 4 1 >>cellrowvec{end} ans = hello ởa cễng có thể xóa m t phần t trong m ng h n h p hoặc xóa c{c h|ng, c t th|nh phần c a m ng h n h p d i d ng ma tr n s dụng tham s vị trí nh sau: >>cellrowvec cellrowvec = [23] ‘a’ [1x5 double] ‘hello’ >>length(cellrowvec) ans = Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 93 4 >>cellrowvec(2) = [ ] cellrowvec = [23] ‘hello’ [1x5 double] >>length(cellrowvec) ans = 3 >>cellmat cellmat = [ [ ‘a’ 23] ‘hello’ 1x5 double] >>cellmat(1,:) = [ ] cellmat = [1x5 double] ‘hello’ . . ỗưu chu i ký t trong m ng h n h p M t ti n ích c a vi c s dụng m ng h n h p đó l| cho phép ng i s dụng l u c{c chu i ký tự v i đ d|i kh{c nhau. ởa cễng có thể s dụng vòng lặp for để lần l t duy t t i c{c ký tự trong chu i. Ví dụ: >>names = {‘Sue’, ‘Cathy’, ‘Xavier’} names = ‘Sue’ ‘Cathy’ ‘Xavier’ >>for i = 1 : length(names) disp (length(names{i})) end 3 5 6 M‚ởỗ‚‛ cễng cho phép ng i s dụng chuyển từ m ng h n h p ch a c{c ký tự sang ma tr n ch a c{c biến kiểu char v| ng c l i. ởuy nhiên, khi s dụng h|m char để t o ma tr n ch a c{c chu i ký tự có đ d|i kh{c nhau, M‚ởỗ‚‛ tự đ ng thêm v|o c{c ký tự tr ng để đ m b o kích c c a ma tr n, khi chuyển sang m ng h n h p s dụng l nh cellstr, c{c ký tự tr ng n|y sẽ bị lo i b . Cú ph{p gọi l nh nh sau Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 94 >>C = cellstr(S) ởrong đó Ở l| m ng ký tự. Gi{ trị tr về C sẽ bao gồm c{c h|ng c a m ng ký tự Ở đ c l u v|o c{c phần t m ng h n h p riêng bi t. >>greetmat = char (‘Hello’, ‘Goodbye’); >>cellgreets = cellstr (greetmat) cellgreets = ‘Hello’ ‘Goodbye’ >>length(cellgreets{1}) + length(cellgreets{2}) ans = 12 >>whos greetmat Name Size Byte Class greetmat 2x7 28 Attributes char ‛ên c nh đó, ng i s dụng cễng có thể kiểm tra nếu to|n b phần t c a m t m ng h n h p l| chu i ký tự hay khẫng s dụng h|m iscellstr, M‚ởỗ‚‛ tr về gi{ trị logic nếu đúng v| ng c l i. >>iscellstr(names) ans = 1 >>iscellstr(cellcolvec) ans = 0 . ọi n có c u trềc ‛iến có c u trúc cho phép l u tr d li u c{c kiểu kh{c nhau có quan h logic v i nhau v|o c{c tr ng d li u c a biến. u điểm c a vi c s dụng biến c u trúc đó l| ng i s dụng có thể qu n lý c{c tr ng d li u phụ thu c theo tên, tuy nhiên c{c biến d li u khẫng ph i l| m ng do đó khẫng thể s dụng vòng lặp để duy t c{c phần t trong biến. . . Thi t l p v| hi u ch nh c{c bi n c u trềc tr C{c biến c u trúc có thể thiết l p đơn gi n bằng c{ch g{n gi{ trị cho c{c ng th|nh phần trong biến hoặc s dụng h|m struct, cú ph{p gọi h|m nh sau >>S = struct(‘field1’, val1, ‘field2’, val2, ...) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 95 ởrong đó field1, field2,... l| tên c{c tr ng th|nh phần, val1, val2, ... l| c{c gi{ trị t ơng ng v i c{c tr ng th|nh phần đó. Gi{ trị tr về S sẽ l| m t biến c u trúc bao gồm c{c tr ng field1, field2, ... v i c{c gi{ trị val1, val2, ... t ơng ng. Ví dụ: Thiết l p m t danh s{ch c{c mặt h|ng c a m t siêu thị m{y tính, trong đó m i m t mặt h|ng có c{c thẫng tin nh s s n phẩm, gi{ th|nh mua v|o UỞỏ , gi{ th|nh b{n ra, mã h|ng. M t biến c u trúc ch a thẫng tin s n phẩm có d ng nh sau có thể th|nh l p biến có tên l| package v i c{c tr ng th|nh phần lần l t l| item_no, cost, price, code. Package item_no cost Price Code 123 19.99 39.95 G ởa có thể thiết l p biến c u trúc s dụng h|m struct nh sau >>package = struct (‘item_no’, ‘price’, 39.95, ‘code’, ‘g’) 123, ‘cost’, 19.99, package = item_no: 123 cost: 19.99 price: 39.95 code: ‘g’ M t c{ch kh{c để thiết l p biến c u trúc đó l| s dụng d u ch m v| g{n gi{ trị trực tiếp cho c{c tr ng th|nh phần trong biến, tuy nhiên c{ch n|y khẫng hi u qu nh khi s dụng h|m struct. >>package.item_no = 123; >>package.cost = 19.99; >>package.price = 39.95; >>package.code = ‘g’; ở ơng tự, cễng có thể b sung thêm tr ng th|nh phần v|o trong biến c u trúc bằng c{ch s dụng l nh g{n, ta cễng có thể g{n c biến c u trúc cho m t biến kh{c nh sau >>newpack = package; >>newpack.item_no = 111; >>newpack.price = 34.95 newpack = item_no: 111 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 96 cost: 19.90 price: 34.95 code: ‘g’ ‛iến c u trúc có thể in ra to|n b hoặc chỉ in c{c tr ng th|nh phần bằng c{ch s dụng h|m disp, v| chỉ có thể in ra c{c tr ng th|nh phần khi s dụng h|m fprintf. >>disp(package) item_no: 123 cost: 19.90 price: 39.95 code: ‘g’ >>disp(package.cost) 19.90 >>fprintf(‘%d %c \n’, package.item_no, package.code) 123 g ởa cễng có thể s dụng h|m rmfield để lo i b tr ng th|nh phần trong biến c u trúc. ỗ u ý l| gi{ trị tr về c a h|m n|y sẽ l| m t biến m i có tr ng th|nh phần đã bị lo i b ch khẫng có sự thay đ i đ i v i biến cễ, cú ph{p gọi h|m nh sau: >>S = rmfield(S, ‘field’) ởrong đó field l| tr ng mu n lo i b c a biến c u trúc S. Gi{ trị tr về l| biến c u trúc ban đầu đã lo i b tr ng field t ơng ng. >>rmfield (newpack, ‘code’) ans = item_no: 111 cost: 19.90 price: 34.95 Để thay đ i gi{ trị c a biến newpack, gi{ trị tr về c a rmfield ph i đ luẫn cho biến newpack. c g{n >>newpack = rmfield (newpack, ‘code’) newpack = item_no: 111 cost: 19.90 price: 34.95 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 97 ở ơng tự nh v i m ng h n h p, M‚ởỗ‚‛ cễng cung c p cho ng i s dụng m t s h|m liên quan để kiểm tra thu c tính c a c{c biến có c u trúc. H|m isstruct tr về gi{ trị logic nếu biến s c a h|m đúng l| m t biến có c u trúc v| ng c l i, h|m isfield tr về gi{ trị logic nếu m t tên tr ng l| m t tr ng th|nh phần trong m t biến có c u trúc v| ng c l i. >>isstruct (package) ans = 1 >>isfield (package, ‘cost’) ans = 1 ởa cễng có thể s dụng h|m fieldnames để li t kê c{c tr c a m t biến có c u trúc nh sau ng th|nh phần >>pack_fields = fieldnames (package) pack_fields = ‘item_no’ ‘cost’ ‘price’ ‘code’ ỏo tên c a c{c tr ng th|nh phần trong biến c u trúc th ng có đ d|i kh{c nhau nên gi{ trị tr về c a h|m fieldnames sẽ l| m t m ng h n h p có c{c phần t l| tên c a c{c tr ng th|nh phần t ơng ng. . . Vector bi n c u trềc ộh đã trình b|y trong ví dụ mục tr c, khi qu n lý c{c s n phẩm c a m t siêu thị m{y tính, ta có thể s dụng biến c u trúc để l u thẫng tin c a m i s n phẩm. Để qu n lý c{c s n phẩm kh{c nhau trong siêu thị n|y, ta có thể s dụng vector biến c u trúc nh sau packages item_no cost price code 1 123 19.99 39.95 g 2 456 5.99 49.99 l 3 587 11.11 33.33 w Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 98 ởrong ví dụ n|y packages l| m t vector có phần t , m i phần t l| m t biến c u trúc ch a c{c tr ng t ơng ng item_no, cost, price, code. Có nhiều c{ch để thiết l p m t vector ch a c{c biến c u trúc nh thế n|y, trong đó đơn gi n nh t l| t o phần t đầu tiên c a vector, rồi sau đó b sung thêm c{c phần t v|o trong vector x ban đầu nh sau >>packages = struct (‘item_no’, ‘price’, 39.95, ‘code’, ‘g’); 123, ‘cost’, 19.99, >>packages (2) = struct (‘item_no’, 456, ‘cost’, 5.99, ‘price’, 49.99, ‘code’, ‘l’); >>packages (3) = struct (‘item_no’, 587, ‘cost’, 11.11, ‘price’, 33.33, ‘code’, ‘w’); ỗ u ý trong tr ng h p biết tr c s phần t c a vector, ph ơng ph{p hi u qu nh t l| thiết l p vector bằng c{ch nh p phần t cu i cùng tr c để M‚ởỗ‚‛ c p ph{t b nh cho vector n|y, sau đó ng i s dụng có thể b sung lần l t c{c phần t từ đầu nh sau >>packages (3) = struct (‘item_no’, 587, ‘cost’, 11.11, ‘price’, 33.33, ‘code’, ‘w’); >>packages (1) = struct (‘item_no’, 123, ‘cost’, 19.99, ‘price’, 39.95, ‘code’, ‘g’); >>packages (2) = struct (‘item_no’, 456, ‘cost’, 5.99, ‘price’, 49.99, ‘code’, ‘l’); M t ph ơng ph{p thẫng dụng kh{c trong M‚ởỗ‚‛ đó l| thiết l p m t phần t biến c u trúc rồi sau đó s dụng h|m repmat để t{i t o vector v i kích th c mong mu n, cú ph{p gọi h|m nh sau >>B = repmat(A, M, N) ởrong đó B l| ma tr n, vector có kích c M x N m| c{c phần t th|nh phần đều l| A. ỡí dụ >>packages = repmat (struct (‘item_no’, 123, ‘cost’, 19.99, ‘price’, 39.95, ‘code’, ‘g’), 1, 3); >>packages (2) = struct (‘item_no’, 456, ‘cost’, 5.99, ‘price’, 49.99, ‘code’, ‘l’); >>packages (3) = struct (‘item_no’, 587, ‘cost’, 11.11, ‘price’, 33.33, ‘code’, ‘w’); ỗ u ý khi gọi biến c u trúc bằng c{ch nh p tên biến, M‚ởỗ‚‛ sẽ chỉ hiển thị kích th c c a vector biến c u trúc cễng nh tên c a c{c tr ng th|nh phần nh ví dụ sau >>packages Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 99 packages = 1 x 3 truct array with fields: item_no cost price code ‛iến packages lúc n|y l| m t vector c u trúc, nghĩa l| m i phần t l| m t biến c u trúc. Để hiển thị, truy xu t phần t trong vector c u trúc, ta ph i s dụng tham s vị trí t ơng ng c a phần t đó, ví dụ truy xu t t i phần t th trong vector c u trúc trên >>packages (2) ans = item_no: 456 cost: 5.99 price: 49.99 code: ‘l’ Để truy xu t t i tr ng th|nh phần c a từng phần t , ta có thể s dụng kết h p tham s vị trí t ơng ng c a phần t đó v| tên c a tr ng cần truy xu t, ph}n c{ch b i d u ch m nh sau >>packages(1).code ans = g Có thể th y đ}y packages l| m t biến có c u trúc b c ba đơn gi n, trong đó b c cao nh t l| vector có c u trúc packages, m i m t phần t c a vector n|y l| m t biến c u trúc, c p th p nh t trong biến n|y l| c{c tr ng th|nh phần. ởa có thể s dụng vòng lặp for để hiển thị t t c c{c phần t trong biến vector packages nh sau >>for i = 1: length (packages) disp (packages (i)) end item_no: 123 cost: 19.99 price: 39.95 code: ‘g’ item_no: 456 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 100 cost: 5.99 price: 49.99 code: ‘l’ item_no: 587 cost: 11.11 price: 33.33 code: ‘w’ Để truy xu t t i c{c tr ng th|nh phần trong m t vector biến c u trúc, M‚ởỗ‚‛ có l i thế hơn so v i phần l n c{c ngẫn ng l p trình thẫng dụng khi khẫng cần thiết ph i s dụng vòng lặp duy t qua t t c c{c phần t kh{c trong vector cễng nh s dụng d u ch m để truy xu t t i c{c tr ng th|nh phần. ở t c c{c gi{ trị trong m t tr ng c a t t c c{c phần t trong m t vector c u trúc đều có thể truy xu t trong M‚ởỗ‚‛ v i chỉ m t c}u l nh. ởuy nhiên nếu khẫng g{n gi{ trị tr về cho m t biến cụ thể, c{c gi{ trị n|y sẽ đ c ghi đè lên nhau trong biến ans v| ng i s dụng chỉ có thể truy xu t t i gi{ trị cu i cùng >>packages.cost ans = 19.99 ans = 5.99 ans = 11.11 Để khắc phục, ta có thể l u c{c gi{ trị n|y trong m t vector kh{c nh sau >>pc = [packages.cost] pc = 19.99 5,99 11.11 ỡ i ph ơng ph{p n|y, M‚ởỗ‚‛ cho phép {p dụng h|m lên t t c c{c tr ng t ơng ng trong cùng m t vector c u trúc. ỡí dụ: Để tính t ng gi{ trị c a t t c c{c tr ng có tên cost ta có thể dùng h|m sum. >>sum([packages.cost]) ans = 37.09 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 101 Đ i v i c{c vector c u trúc, c vector hoặc phần t có c u trúc c a vector, hoặc m t tr ng trong vector đều có thể s dụng v i vai trò l| c{c tham s trong h|m. ởrên đ}y l| ví dụ về vector ch a c{c biến có c u trúc. ởiếp theo ta sẽ xét m t tr ng h p ph c t p hơn khi m t vector có c u trúc m| m t tr ng th|nh phần l i l| m t vector. ỡí dụ khi thực hi n qu n lý d li u về sinh viên trong m t l p học bao gồm c{c thẫng s nh tên sinh viên name , mã s sinh viên id_no), điểm th|nh phần quiz trong đó tr ng điểm th|nh phần l| m t vector ch a điểm th|nh phần nh sau student name id_no quiz 1 2 3 4 1 C, Joe 999 10.0 9.5 0.0 10.0 2 Hernandez, Pete 784 10.0 10.0 9.0 10.0 3 Brownnose, Violet 332 7.5 6.0 8.5 7.5 ởa có thể định nghĩa biến c u trúc student nh sau >>student (3) = struct (‘name’, ‘Brownnose, Violet’, ‘id_no’, 332, ‘quiz’, [7.5 6.0 8.5 7.5]); >>student (2) = struct (‘name’, ‘Hernandez, ‘id_no’, 784, ‘quiz’, [10.0 10.0 9.0 10.0]); Pete’, >>student (1) = struct (‘name’, ‘C, Joe’, ‘id_no’, 999, ‘quiz’, [10.0 9.5 0.0 10.0]); Ởau khi thiết l p biến student, ta có thể truy xu t đến từng th|nh phần trong biến. M‚ởỗ‚‛ sẽ hiển thị thẫng tin về biến cễng nh tên c{c tr ng th|nh phần trong biến nh sau >>student student = 1 x 3 struct array with fields : name id_no quiz ởa có thể truy xu t t i c{c gi{ trị th|nh phần nh sau >>student (1) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 102 ans = name: ‘C, Joe’ id_no: 999 quiz: [10 9.5 0 10] >>student (1). quiz ans = 10 9.5 0 10 >>student (1). quiz (2) ans = 9.5 >>student (3). name (1) ans = B ỡ i nh ng biến có c u trúc ph c t p, điều quan trọng nh t l| ng i s dụng ph i nắm đ c c{c th|nh phần trong biến để x lý. ỡí dụ đ i v i biến student l| m t biến vector c u trúc, trong đó student (1) l| m t phần t c a vector student v| l| m t biến có c u trúc v i c{c tr ng name, id_no, quiz, trong đó student (1). quiz l| m t vector kiểu double, student(1). quiz(2) l| m t phần t c a vector quiz, student(3). name (1) l| ký tự đầu tiên c a tên sinh viên th ba. ởa cễng có thể s dụng vòng lặp để duy t vector c u trúc student, qua đó thực hi n nhi m vụ sau in ra tên v| điểm trung bình c a từng sinh viên. >>for i = 1: length(student) qsum = sum([student(i).quiz]); no_quizzes = length(student(i).quiz); ave = qsum/no_quizzes; fprintf(‘%-20s %.1f\n’, student(i).name, ave); end C, Joe 7.4 Hernandez, Pete 9.8 Brownnose, Violet 7.4 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 103 . . C u trềc l ng nhau v| vector bi n c u trềc l ng nhau C u trúc lồng nhau l| c u trúc m| trong đó ít nh t m t tr ng th|nh phần c a nó cễng l| m t c u trúc. ợét ví dụ d i đ}y về m t c u trúc đo n thẳng có thể bao h|m c{c tr ng ch a tọa đ c a c{c điểm mút biểu di n trong mặt phẳng xOy. tr C u trúc lineseg bao gồm hai tr ng endpoint1 v| endpoint2, trong đó m i ng th|nh phần n|y l i l| m t c u trúc tr ng ch a tọa đ x v| y. Lineseg endpoint1 endpoint2 x Y x y 2 4 1 6 ớh ơng ph{p đơn gi n v| hi u qu nh t để thiết l p biến lineseg trong M‚ởỗ‚‛ l| s dụng h|m struct khai b{o trực tiếp nh sau >>lineseg = struct(‘endpoint1’, struct(‘x’, 2, ‘y’, 4), ‘endpoint2’, struct(‘x’,1,’y’,6)); ởa cễng có thể khai b{o từng b c để thiết l p biến lineseg bằng c{ch khai b{o hai tr ng d ng c u trúc endpoint1 v| endpoint2 tr c nh sau >>pointone = struct(‘x’, 2, ‘y’, 4); >>pointtwo = struct(‘x’, 1, ‘y’, 6); >>lineseg = struct (‘endpoin1’, pointone, ‘endpoint2’, pointtwo); C{ch kém hi u qu nh t trong M‚ởỗ‚‛ để khai b{o c{c c u trúc lồng nhau đó l| khai b{o theo từng tr ng th|nh phần m t. >>lineseg.endpoint1.x = 2; >>lineseg.ednpoint1.y = 4; >>lineseg.endpoint2.x = 1; >>lineseg.ednpoint2.y = 6; Ỗhi biến c u trúc lồng đã đ c thiết l p, vi c truy xu t t i c{c th|nh phần trong biến ho|n to|n t ơng tự nh khi truy xu t t i c{c biến c u trúc thẫng th ng. >>lineseg lineseg = endpoint1: [1 x 1 struct] Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 104 endpoint2: [1 x 1 struct] >>lineseg.endpoint1 ans = x: 2 y: 4 >>lineseg.endpoint1.x ans = 2 Ỗết h p vector v| biến c u trúc lồng nhau ta sẽ đ c m t vector biến c u trúc trong đó m t s tr ng c a c{c phần t th|nh phần cễng l| kiểu c u trúc. ợét ví dụ s dụng m t vector c u trúc lồng để biểu di n c{c s n phẩm có d ng hình trụ tròn c a m t cẫng ty v i c{c kích th c, v t li u, kh i l ng kh{c nhau nh sau: Cyls code tr tr dimensions weight Rad height 1 x 3 6 7 2 a 4 2 5 3 c 3 6 9 ởa có thể th y l| cyls l| m t vector ch a ba phần t biến c u trúc v i c{c ng code, dimensions, weight trong đó dimensions l i l| m t c u trúc v i hai ng th|nh phần rad v| height. ‛iến cyls có thể đ c thiết l p nh sau >>cyls(3) = struct (‘code’, ‘c’, struct(‘rad’, 3, ‘height’, 6), ‘weight’, 9); ‘dimension’, >> cyls(2) = struct (‘code’, ‘a’, struct(‘rad’, 4, ‘height’, 2), ‘weight’, 5); ‘dimension’, >>cyls(1) = struct (‘code’, ‘x’, struct(‘rad’, 3, ‘height’, 6), ‘weight’, 7); Mặt kh{c, biến cyls cễng có thể đ cho c{c phần t th|nh phần: ‘dimension’, c thiết l p bằng c{ch g{n lần l t gi{ trị >> cyls(3).code = 'c'; >> cyls(3).dimensions.rad = 3; >> cyls(3).dimensions.height = 6; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 105 >> cyls(3).weight = 9; >> cyls(1).code = 'x'; >> cyls(1).dimensions.rad = 3; >> cyls(1).dimensions.height = 6; >> cyls(1).weight = 7; >> cyls(2).code = 'a'; >> cyls(2).dimensions.rad = 4; >> cyls(2).dimensions.height = 2; >> cyls(2).weight = 5; Cần ph}n bi t rậ c{c l p cụ thể trong biến cyls nh sau - cyls l| biến chính ch a to|n b thẫng tin liên quan đến s n phẩm đ c quan t}m, đồng th i l| m t vector c u trúc. cyls(1) l| phần t th|nh phần trong vector cyls. cyls(2).code l| m t trong c{c tr ng th|nh phần trong c u trúc v| có d ng ký tự. cyls(3).dimensions l| m t tr ng th|nh phần trong c u trúc nh ng b n th}n nó cễng l| m t c u trúc v i hai tr ng th|nh phần rad v| height. cyls(1).dimensions.rad l| tr ng th|nh phần trong c u trúc dimensions, gi{ trị đ c l u d ng double. 5.3 Tóm tắt chư ng C{c h|m thông d ng đ i v i m ng h n h p v| bi n c u trềc cell ởhiết l p m t m ng h n h p celldisp Hiển thị n i dung c{c phần t trong m ng h n h p cellplot Hiển thị tên c{c phần t trong m ng h n h p d cellstr Chuyển m ng kiểu ký tự sang kiểu m ng h n h p iscellstr Ỗiểm tra m t m ng h n h p chỉ ch a phần t kiểu chu i ký tự struct ởhiết l p biến c u trúc isstruct Ỗiểm tra m t biến có ph i biến c u trúc fieldnames Hiển thị tên c{c tr repmat ởhiết l p vector biến c u trúc v i kích th i d ng đồ thị ng th|nh phần c a m t biến c u trúc c mong mu n Bảng 5. 1. Tóm tắt các hàm sử dụng trong chương 5 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 106 5.3 ọ|i t p chư ng ọ|i . ở o m t m ng h n h p ch a c{c phần t l| c{c chu i ký tự nh sau: exclaimcell = ‛ravo , ốantastic job } In m t phần t ng u nhiên trong m ng. ọ|i . ở o m ng h n h p sau >>ca = abc , , , zeros(2)} ở o m t m ng h n h p m i có d ng ma tr n x ch a c{c phần t m ng ca vừa t o, viết l nh truy xu t t i c t cu i cùng trong m ng m i. c a ọ|i . Ở dụng h|m cell thiết l p m ng h n h p x sau đó g{n gi{ trị b t kỳ cho c{c phần t th|nh phần. Chèn m t h|ng v|o gi a để m ng m i t o th|nh có d ng ma tr n x . ọ|i . ở o m ng h n h p l u tr c{c thẫng tin sau c a m t sinh viên b t kỳ tên sinh viên, mã s sinh viên, điểm trung bình chung v| in thẫng tin n|y ra m|n hình. ọ|i . Yêu cầu t ơng tự nh b|i 5.4 nh ng l u thẫng tin v|o m t biến c u trúc sau đó in ra m|n hình. ọ|i . Cho m t vector c u trúc đ c định nghĩa nh sau >>kit(2).sub.id = 123; >>kit(2).sub.wt = 4.4; >>kit(2).sub.code = ‘a’; >>kit(2).name = ‘xyz’; >>kit(2).lens = [4 7]; >>kit(1).name = ‘rst’; >>kit(1).lens = 5:6; >>kit(1).sub.id = 33; >>kit(1).sub.wt = 11.11; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 107 >>kit(1).sub.code = ‘q’; ởrong c{c c}u l nh sau, c}u l nh n|o l| h p l v| nêu gi{ trị tr về t ơng ng c}u l nh n|o khẫng h p l , gi i thích. >>kit(1).sub >>kit(2).lens(1) >>kit(1).code >>kit(2).sub.id == kit(1).sub.id >>strfind(kit(1).name, ’s’) ọ|i . ỗ p m t vector c u trúc có d ng nh d t còn l i trong vector sinh viên tự khai b{o. i đ}y v i thẫng tin c a hai phần >>subjects subjects = 1x3 struct array with fields: name sub_id height weight >>subjects(1) ans = name: ‘Joey’ sub_id: 111 height: 6.7 weight: 222.2 Gi s khẫng biết tr c s phần t c a vector c u trúc subjects, viết m t đo n ch ơng trình tìm phần t m| gi{ trị c a c{c tr ng height hoặc weight nh hơn gi{ trị trung bình c a tr ng height hoặc weight c a t t c c{c phần t trong vector, in ra m|n hình thẫng tin phần t tìm đ c. ọ|i . Cho m t file d li u có d ng sau: 44 7 7.5 8 33 5.5 6 6.5 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 108 37 8 8 8 24 6 7 8 Ở dụng h|m load để t i file v|o m t ma tr n trong M‚ởỗ‚‛, từ ma tr n vừa t o, viết đo n ch ơng trình để t o vector c u trúc nh sau: Students id_no Quiz 1 2 3 1 44 7 7.5 8 2 33 5.5 6 6.5 3 37 8 8 8 4 24 6 7 8 ộói c{ch kh{c, students l| vector c u trúc có phần t ch a thẫng tin về mã s sinh viên id_no v| điểm th|nh phần mẫn học quiz c a sinh viên t ơng ng, trong đó mã s sinh viên đ c biểu di n trong c t đầu tiên, điểm th|nh phần đ c biểu di n trong c t còn l i c a file d li u. ỡiết đo n ch ơng trình in ra mã s sinh viên v| điểm trung bình theo c t nh sau 44 7.5 33 6.0 37 8.0 24 7.0 ọ|i . ở o m t biến c u trúc lồng để l u gi thẫng tin về m t c{ nh}n bao gồm tên, địa chỉ, s đi n tho i trong đó c{c tr ng th|nh phần địa chỉ v| s đi n tho i có c u trúc riêng. ọ|i . ởìm hiểu hai h|m x}y dựng sẵn trong M‚ởỗ‚‛ l| cell2struct chuyển từ m ng h n h p sang vector c u trúc v| struct2cell chuyển từ vector c u trúc sang m ng h n h p . Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB Chư ng . Đ 109 Tồ TờỚộỒ ỘỌTLAB 6.1 Đ th trong không gian hai chi u 6.1.1 C{c l nh c b n M‚ởỗ‚‛ cung c p cho ng i dùng th vi n gồm nhiều h|m x}y dựng sẵn để thiết l p v| hi u chỉnh đồ họa trong khẫng gian hai chiều cễng nh ba chiều. ỏanh s{ch nh ng c}u l nh cơ b n để l|m vi c v i chế đ đồ họa trong M‚ởỗ‚‛ có thể tham kh o v i l nh help trong c a s l nh. C{c l nh đồ họa ỏ cơ b n >>help graph2d C{c l nh đồ họa ỏ cơ b n >>help graph3d ‛ c quan trọng đầu tiên khi l|m vi c v i chế đ đồ họa trong M‚ởỗ‚‛ đó l| chuẩn bị nguồn d li u. ỏ li u nguồn đ}y có thể đ c thiết l p đơn gi n bằng c{ch nh p từ b|n phím, s dụng gi{ trị tr về c a c{c h|m, hoặc đ c thiết l p bằng c{ch t i từ m t hay nhiều file. ỗ nh đồ họa ỏ cơ b n nh t trong M‚ởỗ‚‛ l| plot, h|m cho phép thể hi n d i d ng đồ thị c a m t hay nhiều t p d li u. ỡí dụ cho y l| m t vector bao gồm c{c phần t l| lễy thừa b c c a c{c s c{ch đều . từ - đến >>y = (-5 : 0.1 : 4).^3; C{c phần t c a y sẽ đ c biểu di n d i d ng đồ thị nh sau >>plot(y) 100 50 0 -50 -100 -150 0 50 100 Hình 6. 1. Ví dụ lệnh plot Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 110 ỗ u ý rằng trong đồ thị trên gi{ trị t ơng ng trên trục ho|nh chính l| s th tự c a c{c phần t trong vector y. Đồ thị trên ho|n to|n t ơng đ ơng v i đồ thị có hai tham s đầu v|o x v| y trong đó x l| c{c phần t c{ch đều nh n c{c gi{ trị từ đến t ơng đ ơng v i s phần t c a y). >>x = 1 : length(y); >>plot (x, y) Đ i v i l nh plot chỉ có m t tham s đầu v|o plot(y), y có thể l| vector hoặc ma tr n, tùy v|o d ng c a tham s đầu v|o m| đồ thị đ c thiết l p có sự kh{c bi t theo quy tắc sau - ộếu y l| vector, đồ thị có d ng t p h p c a c{c điểm (xi, yi) trong đó xi l| s th tự c a yi trong vector y. ộếu y l| ma tr n m x n, đồ thị thu về l| t p h p n đ ng, trong đó m i đ ng l| t p h p c{c điểm (xi, yi) v i xi = … m, yi c{c phần t trong m i c t ng v i xi t ơng ng. ỡí dụ >>A = round(10*rand(5,3)) A = 1 2 9 5 8 10 10 3 5 3 5 1 6 7 1 >>plot(A) 10 8 6 4 2 0 1 2 3 4 5 Hình 6. 2. Plot từ ma trận Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 111 Đ i v i l nh có hai tham s đầu v|o plot(x, y): - ộếu x v| y l| hai vector có cùng đ d|i, M‚ởỗ‚‛ sẽ hiển thị đồ thị y theo x. ộếu x l| vector v| y l| ma tr n, đồ thị hiển thị h|ng hoặc c t c a y theo c{c phần t c a x tùy v|o kích c ma tr n. ỡí dụ cho vector x, ma tr n y1 v| y2. >>x = [1 5 >>y1 = [11 >>y2 = 10]; 20 [18 16; 17; 14 15 19; 13 12]; 15 20]; Do y1 l| ma tr n có s c t bằng v i chiều d|i c a x, c{c phần t trên m i h|ng c a y sẽ đ c hiển thị theo c{c phần t c a x, s đ ng hiển thị bằng v i s h|ng c a y1. ỏo ma tr n y2 có s h|ng bằng v i chiều d|i c a x, c{c phần t trên m i c t c a y sẽ đ c thể hi n theo c{c phần t c a x, s đ ng hiển thị bằng v i s c t c a y2. >>plot(x, y1, ‘*-r’); >>hold on >>plot(x, y2, ‘o-b’); 20 18 16 14 12 10 0 2 4 6 8 10 Hình 6. 3. Đồ thị (x, y1) và (x, y2) - ộếu x l| ma tr n v| y l| vector, đồ thị sẽ hiển thị c{c phần t c a y theo c{c phần t h|ng hoặc c t c a x. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB - 112 ộếu m t trong hai tham s l| ma tr n vuẫng, đồ thị sẽ hiển thị c{c phần t c a tham s n|y theo c{c phần t c t c a tham s ma tr n vuẫng. ỡí dụ >>y3=[11 12 13; 14 15 16; 17 18 19]; >>plot(x, y3, ’*-‘) >>hold on >>plot(y3, x, ‘o-‘) 20 15 10 5 0 0 5 10 15 20 Hình 6. 4. Đồ thị (x, y3) và (y3, x) - ộếu x v| y l| hai ma tr n có cùng kích c , đồ thị sẽ hiển thị c{c phần t từng c t c a y theo c{c phần t c{c c t c a x t ơng ng. H|m plot ch p nh n s tham s đầu v|o có thể l n hơn hai, tuy nhiên quy tắc nêu trên v n {p dụng cho c{c cặp tham s t ơng ng. ỡí dụ >>x1 = 0 : .1 : 10; >>y1 = cos(x1); >>x2 = 1.5*x1; >>y2 = 2*cos(x2); >>x3 = 2*x1; >>y3 = 3*sin(x3); >>plot(x1,y1,x2,y2,x3,y3); ỗ nh plot trên t ơng đ ơng v i >>X = [x1’ >>Y = [y1’ x2’ y2’ x3’]; y3’]; >>plot(X, Y) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 113 3 2 1 0 -1 -2 -3 0 5 10 15 20 Hình 6. 5. Plot giá trị 3 cặp vector trên cùng một đồ thị Đồ thị c a c{c h|m trên đ c thể hi n bằng c{c m|u kh{c nhau, đó l| do chế đ mặc định hiển thị m|u trong M‚ởỗ‚‛. Khi thể hi n nhiều đồ thị, c{c đ ng biểu di n sẽ lần l t đ c hiển thị v i c{c m|u t ơng ng xanh da tr i (blue , xanh l{ c}y green , đ red), lam (cyan , hồng th m magenta , v|ng (yellow v| đen black . Quan s{t trên đồ thị ta có thể th y x , y , x , y , x , y đ c biểu di n bằng c{c đ ng m|u xanh da tr i, xanh l{ c}y v| đ t ơng ng. Ộ|u ỏ ng ký hi u Ký tự Thể hiện Ký hiệu Thể hiện B ợanh da tr i . Điểm G ợanh l{ c}y o Hình tròn R Đ x ỏ ux C Lam + ỏ u+ M Hồng th m * ỏ u sao Y ỡ|ng s Hình vuẫng K Đen d Ỗim c ơng v ởam gi{c xu ng ỏ ng đư ng Ký tự Thể hiện ^ Tam gi{c lên - ộét liền < ởam gi{c tr{i : Hai ch m > ởam gi{c ph i -. Ch m g ch p Ởao năm c{nh -- ộét đ t h Ởao s{u c{nh Bảng 6. 1. Màu - dạng đường - dạng ký hiệu trong đồ thị Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 114 Chế đ đồ thị trong M‚ởỗ‚‛ cho phép hiển đ ng biểu di n v i c{c m|u sắc, d ng đ ng, v| ký hi u kh{c nhau. Để thực hi n điều n|y, trong c}u l nh plot có thể thêm v|o m t chu i từ đến ký tự để đặt c{c thu c tính m|u-d ng đư ng-d ng ký hi u cho đ ng biểu di n. C{c ký tự t ng tr ng cho c{c thu c tính c a đ ng biểu di n tóm tắt trong b ng trên. Đ i v i plot, M‚ởỗ‚‛ yêu cầu c{c tham s ph i đ c khai b{o v| đồ thị sẽ đ c thể hi n t ơng ng v i d i gi{ trị c a c{c tham s đầu v|o. ‛ên c nh đó, M‚ởỗ‚‛ cễng cung c p cho ng i dùng m t l nh vẽ kh{c v i nhiều ti n ích hơn, đó l| ezplot. Đ i v i ezplot, kho ng biểu di n c a đồ thị mặc định sẽ l| - π đến π v| có thể thay đ i phụ thu c v|o tham s đầu v|o, tên c a đồ thị sẽ l| tên c a chu i ký tự khai b{o trong phần tham s h|m v| đ c hiển thị trên hình vẽ. Đặc bi t, ezplot cho phép vẽ đồ thị biểu di n h|m s khai b{o d i d ng chu i ký tự. Cú ph{p l nh nh sau >>ezplot(fun); >>ezplot(fun, [a, b]); ởrong đó fun l| h|m s đ c vẽ đồ thị. cú ph{p th nh t, đồ thị h|m s sẽ đ c thể hi n trên kho ng mặc định l| -2π đến π, cú ph{p th hai, ng i s dụng có thể thể hi n đồ thị trên kho ng a, b tùy chọn. ỡí dụ sau đ}y so s{nh hai h|m plot v| ezplot vẽ đồ thị h|m s y = x2 + 2x + 1. >>x = -2*pi: .1 : 2*pi; >>ezplot(‘x^2 + 2*x + 1’); >>y = x.^2 + 2.*x + 1; >>plot(x,y) Ỗhi s dụng h|m plot, đầu tiên cần khai b{o vector x, từ h|m s đã cho tìm gi{ trị vector y, sau đó thực hi n l nh vẽ đồ thị. ởuy nhiên đ i v i ezplot chỉ cần thực hi n m t c}u l nh đơn gi n, kết qu đồ thị thu đ c từ hai c{ch l| t ơng đ ơng. Ở dụng h|m ezplot trong M‚ởỗ‚‛ có thể coi l| c{ch đơn gi n nh t để thể hi n đồ thị c a m t h|m s kiểu chu i ký tự hoặc biến ký hi u, tuy nhiên về mặt ch c năng, ezplot có nhiều h n chế hơn so v i plot. C{c thẫng s c a đồ thị biểu di n trong M‚ởỗ‚‛ có thể đ dụng c{c l nh sau - c thay đ i s Điều chỉnh hai trục tọa đ axis trong đó cần l u ý cú ph{p c a hai c}u l nh sau >>axis ([Xmin Xmax Ymin Ymax]) biểu di n đồ thị trong gi i h n ợmin ≤ ợ ≤ ợmax, Ymin ≤ Y ≤ Ymax. >>axis equal Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB - - - 115 thiết l p đ chia bằng nhau hai trục tọa đ . Đặt tên cho đồ thị M‚ởỗ‚‛ cho phép đặt, thay đ i tên c a đồ thị s dụng l nh title v i cú ph{p: >>title(‘Ten do thi’) Đặt tên cho hai trục tọa đ Hai trục tọa đ c a M‚ởỗ‚‛ có thể đ c đặt, thay đ i tên s dụng c{c l nh >>xlabel(‘text’) v| >>ylabel(‘text’) trong đó text l| tên c a c{c trục tọa đ ho|nh, tung t ơng ng. Hiển thị l i vùng đồ thị h|m grid trong M‚ởỗ‚‛ cho phép b t/tắt chế đ hiển thị l i trên vùng đồ thị s dụng c{c l nh: >>grid on v| >>grid off t ơng ng, nếu khẫng vừa lòng v i kích c ẫ l i trên đồ thị, có thể s dụng l nh: >>grid minor để thu đ c vùng đồ thị v i c{c ẫ l i d|y đặc hơn. 6.1.2 C{c l nh tăng cư ng ộh đã biết, kết qu tr về c a c{c l nh plot, ezplot sẽ đ c l u gi trên c{c c a s đồ họa Figure. ởrong thực tế, nhiều khi cần ph}n tích nhiều hình vẽ, đồ thị cùng m t lúc nh ng chế đ mặc định c a M‚ởỗ‚‛ khẫng cho phép l u gi hình nh trên c{c c a s đồ họa Figure gi a c{c lần vẽ. Có nghĩa l| kết qu c a lần thực hi n l nh plot hoặc ezplot hi n t i sẽ thay thế kết qu c a l nh vẽ tr c đó trên Figure. Để kết qu c a lần vẽ tr c khẫng bị m t đi, ng i s dụng M‚ởỗ‚‛ có thể dùng l nh figure( ) để t o c a s đồ họa m i v| l u kết qu trên đó hoặc dùng l nh hold để thể hi n kết qu c a l nh vẽ hi n h|nh v| tr c đó trên cùng m t c a s đồ họa. ỗ nh figure(k) cho phép t o c a s đồ họa m i có tên l| Figure k hoặc chuyển sang l|m vi c v i Figure k nếu c a s đồ họa n|y đã tồn t i tr c đó, Figure k khi đó sẽ tr th|nh c a s đồ họa hi n h|nh. C a s đồ họa hi n h|nh sẽ đ c đóng bằng c{ch gậ l nh close trên c a s l nh. ỗ nh close all sẽ đóng t t c c{c c a s đồ họa M‚ởỗ‚‛ đang hiển thị. ỗ nh hold có thể s dụng theo ba c{ch sau - hold on: kích ho t chế đ đóng băng, ng i dùng có thể chèn thêm hình vẽ lên c a s đồ họa m| khẫng s nh ng hình vẽ tr c đó bị xóa đi. hold off: tắt chế đ đóng băng, hình vẽ hi n h|nh sẽ thay thế hình vẽ đ c t o tr c đó trên c a s đồ họa. hold: chuyển gi a hai tr ng th{i b t/tắt c a chế đ đóng băng. ỡí dụ sau cho phép vẽ lần l t ba đồ thị c a ba h|m s y1 = x/2, y2 = x2 – 5x v| x = 8 trên cùng m t c a s đồ họa Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 116 >>x = 1:10; >>y1 = 0.5*x; >>y2 = x^2 – 5*x; >>plot(x,y1); >>hold on; >>plot(x,y2); >>plot([8,8],[-10,50]); 50 40 30 20 10 0 -10 2 4 6 8 10 Hình 6. 6. Vẽ 3 đồ thị trên cùng một cửa sổ đồ họa Ởau đ}y l| m t ví dụ kh{c về vi c thể hi n đồ thị c a hai h|m s trên cùng m t đồ thị tuy nhiên gi{ trị thể hi n trên trục tung l i khẫng t ơng đ ơng nhau. >>x1 = 0 : .1 : 20; >>y1 = x1.*sin(x1); >>x2 = 10 : .2 : 25; >>y2 = 50*x2; >>plot(x1, y1); >>hold on; >>plot(x2, y2); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 117 1500 1000 500 0 -500 0 5 10 15 20 25 Hình 6. 7. Hai đồ thị sử dụng cùng một trục tung ỏo kho ng gi{ trị c a y1 v| y2 l| khẫng gi ng nhau nên khi biểu di n trên cùng m t đồ thị v i m t kho ng chia c a trục tung, r t khó để nh n biết d ng đ ng c a y1. Đ i v i tr ng h p n|y, có thể s dụng h|m plotyy để thể hi n đồ thị c a hai h|m s v i hai trục tung kh{c nhau. >>plotyy(x1,y1,x2,y2); 20 1300 15 1200 10 1100 5 1000 0 900 -5 800 -10 700 -15 600 -20 0 5 10 15 20 500 25 Hình 6. 8. Hai đồ thị với hai trục tung tương ng khác nhau M t c{ch kh{c để thể hi n nhiều hơn m t đồ thị trên cùng m t trục tọa đ đó l| s dụng l nh lines, l nh n|y cho phép chèn thêm đồ thị t o b i c{c gi{ trị c a m t cặp vector hoặc vector lên m t trục tọa đ có sẵn. ỡí dụ 0 x 5, 1 y 5 ởhể hi n đồ thị c a c{c đ ng sau trên cùng m t trục tọa đ Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 118 y1 sin t y2 t y3 t t3 t5 t7 3! 5! 7! 0 t 2 a. Chỉ s dụng m t lần l nh plot. b. Ở dụng l nh hold. c. Ở dụng l nh line. Ỗhai b{o c{c biến: >> t=linspace(0,2*pi,100); >> y1=sin(t); >> y2=t; >> y3=t- (t.^3)/6+ (t.^5)/120 - (t.^7)/5040; ỡẽ đồ thị trên cùng trục tọa đ s dụng m t lần l nh plot: >> plot(t,y1,t,y2,'-',t,y3,'o') >> axis([0 5 -1 5]) 5 4 3 2 1 0 -1 0 1 2 3 4 5 Hình 6. 9. Vẽ 3 đồ thị sử dụng một lần lệnh plot ỡẽ đồ thị trên cùng m t trục tọa đ s dụng l nh hold: >> plot(t,y1) >> hold on >> plot(t,y2,'-'); >> plot(t,y3,'o'); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 119 >> axis([0 5 -1 5]); ỡẽ đồ thị trên cùng m t h trục tọa đ s dụng l nh line: >> plot(t,y1) >> line(t,y2,'linestyle','-') >> line(t,y3,'marker','o') >> axis([0 5 -1 5]); M t ch c năng kh{c c a đồ họa M‚ởỗ‚‛ l| cho phép ng i s dụng chèn m t chu i ký tự lên trên trục tọa đ t i m t điểm x{c định. ỗ nh chèn ký tự thẫng dụng nh t l| text v i cú ph{p >>text (X, Y, ‘string’) ởrong đó X, Y l| ho|nh đ v| tung đ t ơng ng biểu di n vị trí c a chu i ký tự trên trục tọa đ , string l| n i dung chu i ký tự. ỗ u ý l| nếu X, Y d ng vector, l nh text sẽ thể hi n n i dung chu i ký tự lên trên trục tọa đ t i t t c c{c điểm cho b i c{c phần t c a X v| Y t ơng ng. ‛ên c nh đó, M‚ởỗ‚‛ cễng cho phép ng i dùng chèn chu i ký tự lên trục tọa đ m| vị trí c a chu i ký tự sẽ đ c x{c định bằng c{ch dùng tr chu t. ỡí dụ Cho h|m s f(x) = x3 – x2 – 3tan-1x + 1, tìm c{c cực trị c a h|m s trong kho ng [-2π, 2π v| thể hi n trên đồ thị. Đ}y l| m t ví dụ đã đ c trình b|y trong ch ơng , h|m s có cực đ i trên - , v| cực tiểu trên , v i c{c gi{ trị t ơng ng. >>xmin = 1.0878; >>ymin = -1.3784; >>xmax = -0.5902; >>ymax = 2.0456; >>ezplot(‘x^3–x^2–3*atan(x)+1’); >>hold on; >>plot(xmin,ymin,‘o’); >>text(xmin,ymin-30,‘diem CT’); >>plot(xmax,ymax,‘*’); >>gtext(‘diem CD’); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 120 x 3-x 2-3 atan(x) + 1 200 100 diem cuc dai 0 diem cuc tieu -100 -200 -300 -5 0 x 5 Hình 6. 10. Thể hiện cực trị c a hàm số trên đồ thị 6.2 Đ th trong không gian ba chi u 6. . Ở d ng plot M‚ởỗ‚‛ cung c p cho ng i dùng m t th vi n h|m phong phú để l|m vi c v i chế đ đồ họa trong c khẫng gian hai chiều v| ba chiều. ởrong mục n|y, m t s l nh cơ b n để t{i hi n l i d li u trong khẫng gian ba chiều cễng nh m t s kỹ thu t t o bề mặt sẽ đ c trình b|y v i mục đích cung c p cho ng i đọc m t c{i nhìn t ng quan về c{c h|m đồ họa trong MATLAB. ở ơng tự nh l nh plot nh trong khẫng gian hai chiều, ta có thể s dụng l nh plot3 để t{i hi n l i d li u trong khẫng gian ba chiều v i c{c ch c năng t ơng tự, kèm theo m t tham s th ba để biểu di n trục z. ợét ví dụ sau v i l nh plot3: >>t = 0: .1 : 10*pi; >>x = exp(-t/20).*cos(t); >>y = exp(-t/20).*sin(t); >>z = t; >>plot3(x, y, z); >>xlabel(‘x’); >>ylabel(‘y’); >>zlabel(‘z’); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 121 z 40 20 0 1 0 y -1 -1 0 -0.5 0.5 1 x Hình 6. 11. Minh họa lệnh plot3 H|m plot3 có d ng t ng qu{t >>plot3 (x, y, z, ‘option’) Kết qu đầu ra phụ thu c v|o c{c tham s đầu v|o nh sau - - ộếu x, y, z l| c{c vector có cùng s phần t , M‚ởỗ‚‛ t o m t đ ng trong khẫng gian ba chiều n i c{c phần t t ơng ng c a x, y, z. ộếu x, y, z l| c{c ma tr n có cùng s h|ng v| s c t, M‚ởỗ‚‛ sẽ t o ra nhiều đ ng theo s c t c a ma tr n. ộếu m t trong ba tham s l| ma tr n v| c{c tham s còn l i l| vector trong đó s phần t c a vector bằng v i s h|ng hoặc s c t c a ma tr n, M‚ởỗ‚‛ sẽ tùy thu c v|o đó để t o ra c{c đ ng kh{c nhau. ộếu s phần t c a vector khẫng bằng v i s h|ng hoặc s c t, M‚ởỗ‚‛ sẽ tr về thẫng b{o l i. C{c lựa chọn trong mục option trong cú ph{p gọi h|m plot3 cễng gi ng nh c{c lựa chọn cho h|m plot. ởrong khẫng gian ba chiều, góc quan s{t c a ng i dùng đ i v i hình thể hi n trên c a s đồ họa có thể điều chỉnh s dụng cẫng cụ điều chỉnh rotate3D trên thanh cẫng cụ hoặc s dụng h|m view. Cú ph{p t ng qu{t cho h|m view n|y l| >>view(az, el) hoặc >>view([az, el]) cho phép điều chỉnh chính x{c góc quan s{t theo c{c thẫng s azimuth v| elevation. ởrong đó, azimuth l| góc quay trong mặt phẳng xy nhìn từ chiều }m c a trục y, elevation thể hi n góc quan s{t so v i mặt phẳng xy, góc d ơng thể hi n quan s{t phía trên mặt phẳng xy, góc }m thể hi n quan s{t phía d i mặt phẳng Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 122 xy. Đơn vị c a hai thẫng s azimuth v| elevation đều l| đ . ởrong M‚ởỗ‚‛, c{c thẫng s n|y đ c mặc định lần l t l| ‚Z=-37.5o v| Ốỗ= o. Góc quan sát Gốc tọa đ Hình 6. 12. Ý nghĩa hai thông số az, el trong lệnh view ỡí dụ sau thể hi n c{c góc quan s{t kh{c nhau đ i v i đồ thị c a c{c gi{ trị x, y, z x}y dựng trên AZ = -9, EL = 56 40 z 20 0 1 0.5 0 -0.5 y -1 -1 -0.5 0 0.5 1 x Hình 6. 13. Đồ thị 3 chiều với (AZ, EL) = (-9, 56) >>plot3(x,y,z,’og’); >>xlabel(‘x’); >>ylabel(‘y’); >>zlabel(‘z’); >>view(-9,56); >>title(‘Az=-9,El=56’); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 123 AZ = 0, EL = 90 1 0.5 y 0 -0.5 -1 -1 -0.5 0 x 0.5 1 Hình 6. 14. Đồ thị 3 chiều với (AZ, EL) = (0,90) >>plot3(x,y,z,’xb’); >>xlabel(‘x’); >>ylabel(‘y’); >>zlabel(‘z’); >>view(0,90); >>title(‘Az=0,El=90’); AZ = 90, EL = 0 35 30 25 z 20 15 10 5 0 -1 -0.5 0 y 0.5 1 Hình 6. 15. Đồ thị với (AZ, EL) = (90, 0) >>plot3(x,y,z,’dr’); >>xlabel(‘x’); >>ylabel(‘y’); >>zlabel(‘z’); >>view(90,0); >>title(‘Az=90,El=0’); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 6. . T o lư i v| mặt phẳng 124 chi u ởr ng h p th ng gặp khi x lý đồ thị trong khẫng gian chiều l| c{c d li u phụ thu c v|o c hai gi{ trị x v| y v| th ng đ c biểu di n d i d ng z=f(x,y). ‛ên c nh vi c s dụng vòng lặp để t o c{c biến z phụ thu c v|o cặp gi{ trị x, y cho tr c, h|m meshgrid trong M‚ởỗ‚‛ đem l i kết qu t ơng đ ơng nếu x, y đ c khai b{o d i d ng vector. Cú ph{p gọi h|m: >>[X, Y]=meshgrid(x,y) sẽ t o ra c{c ma tr n X, Y t o b i c{c vector x, y t ơng ng. Trong đó, X l| ma tr n có s h|ng bằng s phần t c a y v| c{c h|ng l| sự lặp l i c a vector x, Y l| ma tr n có s c t bằng s phần t c a x v| c{c c t l| sự lặp l i c a vector y. H|m meshgrid có thể minh họa cụ thể qua ví dụ sau >>x=[-1 >>y=[5 0 6 1]; 7 8 9]; >>[X, Y]=meshgrid(x,y) X = -1 0 1 -1 0 1 -1 0 1 -1 0 1 -1 0 1 Y = 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 ởừ c{c d li u cho tr c, m t mặt phẳng d ng l i có thể thể hi n trong khẫng gian ba chiều s dụng l nh mesh. Gi s tồn t i ba ma tr n X, Y, Z kích c M-N, m i m t điểm x{c định b i c{c tọa đ x i,j , y i,j , z i,j t ơng ng v i phần t h|ng i c t j c a c{c ma tr n ợ, Y, Z l| c{c mắt l i v| sẽ đ c n i v i c{c mắt l i c{c h|ng, c t l}n c n để t o nên mặt phẳng l i. C{c mắt l i phía trong khẫng nằm trên c{c h|ng, c t đầu tiên hoặc cu i cùng c a ma tr n sẽ đ c n i v i mắt l i l}n c n, c{c mắt l i nằm trên c nh c a mặt phẳng sẽ có mắt l i l}n c n, c{c mắt l i góc mặt phẳng sẽ có mắt l i l}n c n t ơng ng. ‛ên c nh đó, để tăng hi u qu quan s{t, l nh mesh biểu di n c{c khu vực có đ cao kh{c nhau bằng c{c m|u sắc kh{c nhau. ợét ví dụ sau Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 125 >>[X,Y]=meshgrid(linspace(0,2*pi,50), linspace(0,pi,50)); >>Z=sin(X).*cos(Y); >>mesh(X, Y, Z); >>xlabel(‘x’); ylabel(‘y’); zlabel(‘z’); >>axis([0 2*pi 0 pi -1 1]) 1 z 0.5 0 -0.5 -1 3 6 2 4 1 y 2 0 0 x Hình 6. 16. Đồ thị 3 chiều vẽ bởi lệnh mesh ‛ên c nh vi c s dụng l nh mesh để t o bề mặt trong khẫng gian ba chiều từ d li u cho tr c, M‚ởỗ‚‛ cung c p cho ng i s dụng l nh surf có tính năng t ơng đ ơng. Tuy nhiên, c{c ẫ l i sẽ đ c tẫ m|u v| có thể lựa chọn chế đ hiển thị s dụng l nh shading nh ví dụ sau >>surf(X, Y, Z); >>figure( ); >>subplot(1,2,1); >>surf(X,Y,Z); >>shading flat; >>subplot(1,2,2); >>surf(X,Y,Z); >>shading interp; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 126 1 0.5 0 -0.5 -1 4 8 6 2 4 0 2 0 Hình 6. 17. Thể hiện màu trên các ô lưới với lệnh surf Hình 6. 18. Shading flat và interp ởrong đó shading flat sẽ khẫng hiển thị đ ng bao c a c{c ẫ l i nh ng m|u sắc trong m i ẫ l| c định do đó ta v n có thể quan s{t đ c c{c đ ng trên bề mặt nh hình trên, shading interp biến đ i m|u sắc c a c{c ẫ l i theo ẫ l}n c n, d n đến bề mặt t o th|nh tr nên mịn hơn. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 127 6.3 Tóm tắt chư ng 6 Ộ t s l nh c b n v i đ th trong không gian hai chi u plot ỡẽ đồ thị xy ezplot ỡẽ nhanh đồ thị xy line ỡẽ thêm đồ thị lên trục tọa đ hi n h|nh figure M c a s đồ họa m i title ở o tiêu đề cho đồ thị xlabel Đặt tên cho trục ho|nh ylabel Đặt tên cho trục tung hold ‛ t tắt chế đ vẽ nhiều đồ thị trên m t trục tọa đ grid ‛ t tắt chế đ l axis Hi u chỉnh hai trục tọa đ text Chèn ký tự lên đồ thị theo tọa đ nh p từ b|n phím gtext Chèn ký tự lên đồ thị theo tọa đ x{c định bằng chu t legend Chèn chú thích trong đồ thị subplot Chia c a s đồ họa th|nh nhiều c a s phụ kh{c nhau close Đóng c a s đồ họa hi n h|nh close all Đóng t t c c a s đồ họa area ỡẽ v| tẫ m|u vùng đ bar ở o biểu đồ c t fill ởẫ m|u phần di n tích bao b i đa gi{c fplot ỡẽ đồ thị h|m s m t biến s loglog ỡẽ đồ thị v i đ chia loga plotyy ỡẽ đồ thị v i hai trục tung polar ỡẽ đồ thị trong h tọa đ cực quiver ỡẽ vector, tr stairs ỡẽ đồ thị d ng b c thang i c vẽ c hai trục x v| y ng vector Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 128 Ộ t s l nh c b n v i đ th trong không gian ba chi u plot3 ỡẽ đồ thị xyz zlabel Đặt tên cho trục z meshgrid ở ol mesh ở o mặt phẳng l i từ d li u cho tr surf ở o mặt phẳng l i có đ bóng shading Điều chỉnh đ bóng cho mặt phẳng view Chọn góc quan s{t đồ thị i d li u c Bảng 6. 2. Tóm tắt các hàm sử dụng trong chương 6 6.4 ọ|i t p chư ng 6 ọ|i 6.1 ỡẽ đồ thị c a h|m s y( x) e0.7 x sin(15x) v i 0 x 15 , t o vector ch a c{c gi{ trị c a x c{ch đều nhau . Đáp án: y(x)=e-0.7x sin15x 1 0.5 y 0 -0.5 -1 0 5 10 15 x Hình 6. 19. Hình bài 6.1 >> x=0:0.1:15; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 129 >> y=exp(-0.7*x).*sin(15*x); >> plot(x,y) >> xlabel('x') >> ylabel('y') >> title('y(x)=e^-^0^.^7^x sin15x'); ọ|i 6.2 ỡẽ đồ thị h|m s sau s dụng l nh polar. r 2 5cos3t v i 0 t 2 Đáp án: 90 3 120 60 2 150 30 1 180 0 210 330 240 300 270 Hình 6. 20. Hình bài 6.2 >> t=linspace(0,2*pi,200); >> r=sqrt(abs(5*cos(3*t))); >> polar(t,r) ọ|i . ỏùng l nh fill tẫ m|u vùng gi i h n b i x, y trong đó r 2 5cos3t x r cos t 0 t 2 y r sin t Đáp án: >> t=linspace(0,2*pi,200); >> r=sqrt(abs(5*cos(3*t))); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 130 >> x=r.*cos(t); >> y=r.*sin(t); >> fill(x,y,'k') >> axis('square') 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -4 -2 0 2 4 Hình 6. 21. Hình bài 6.3 ọ|i 6.4 Ở dụng l nh plotyy để vẽ hai đồ thị h|m s trên cùng trục tọa đ . y1 e2 x cos x y e2x 0 x 20 Đáp án: >> x=1:0.1:20; >> y1=exp(-2*x).*cos(x); >> y2=exp(2*x); >> Ax=plotyy(x,y1,x,y2); >> hy1=get(Ax(1),'ylabel'); >> hy2=get(Ax(2),'ylabel'); >> set(hy1,'string','exp(-2x).cos(x)') >> set(hy2,'string','exp(2x)') Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 131 0.08 0.06 2 0.04 1.5 0.02 1 0 -0.02 exp(2x) exp(-2x).cos(x) 17 x 10 2.5 0.5 0 2 4 6 8 10 12 14 16 18 0 20 Hình 6. 22. Hình bài 6.4 ọ|i 6.5 Ở dụng l nh area tẫ m|u vùng khẫng gian x{c định b i đồ thị h|m s v i trục tung v| trục ho|nh y 5 x 5 cos x x 8 6 4 2 cos(x)/x) 0 -2 -4 -6 -8 -15 -10 -5 0 5 10 15 x Hình 6. 23. Hình bài 6.5 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 132 Đáp án: >> x=linspace(-5*pi,5*pi,100); >> y=cos(x)./x; >> area(x,y); >> xlabel('x') >> ylabel('cos(x)/x)') ọ|i 6.6 ỏùng l nh surf để vẽ đồ thị h|m s sau trong khẫng gian chiều. z cos( x)cos( y )e y 7 x 7 x2 y 2 5 Đáp án: 1 0.5 0 -0.5 -1 10 5 0 -5 -10 -10 -5 0 5 10 Hình 6. 24. Hình bài 6.6 >> u=-7:0.2:7; >> [X,Y]=meshgrid(u,u); >> Z=cos(X).*cos(Y).*exp(-sqrt(X.^2+Y.^2)/5); >> surf(X,Y,Z) ọ|i . ỡẽ đồ thị khi x, y, z l| c{c h|m theo biến t nh sau 0 t 6 ). Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t x t sin(3t ) y t cos(3t ) z 0.8t Ch ơng . Đồ thị trong MATLAB 133 Đáp án: >> t=0:0.1:6*pi; >> x=sqrt(t).*sin(3*t); >> y=sqrt(t).*cos(3*t); >> z=0.8*t; >> plot3(x,y,z) >> grid 20 15 10 5 0 5 5 0 0 -5 -5 Hình 6. 25. Hình bài 6.7 ọ|i . Ở dụng l nh mesh v| surface để vẽ đồ thị h|m s 2 x 6 v| 2 y 8 z 2xy 2 trên kho ng x2 y 2 Đáp án: >> x=-2:0.1:6; >> y=2:0.1:8; >> [x,y]=meshgrid(x,y); >> z=2*x.*y.^2./(x.^2+y.^2); >> mesh(x,y,z) >>figure(2) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 134 >> surf(x,y,z) 10 5 0 -5 8 6 4 2 -2 2 0 6 4 10 5 0 -5 8 6 4 2 -2 2 0 4 6 Hình 6. 26. Hình bài 6.8 ọ|i 6.9 Ở dụng l nh surf vẽ đồ thị h|m s z 21.5 x2 y 2 sin( x)cos(0.5 y) trên kho ng 4 x 4 v| 4 y 4 v| dùng hi u ng shading interp để t o đ bóng. Đáp án: >> x=-4:0.25:4; >> y=-4:0.25:4; >> [x,y]=meshgrid(x,y); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 135 >> z=2.^(-1.5*sqrt(x.^2+y.^2))*cos(0.5*y).*sin(x); >> surf(x,y,z); >> shading interp; 10 5 0 -5 -10 4 2 4 2 0 0 -2 -2 -4 -4 Hình 6. 27. Hình bài 6.9 ọ|i 6.10 0 t 10 b. ỏùng l nh stairs để vẽ đồ thị h|m s y f (t ) y r sin t r 3 3sin 7t c. ỏùng l nh bar để vẽ đồ thị h|m s y f (t ) f (t ) t cos t a. ỏùng l nh fplot để vẽ đồ thị h|m s sau r 3 3sin 4t y r sin t 0t 0t Đáp án: a. >> fplot('x.*cos(x)',[0,10*pi]); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 136 40 30 20 10 0 -10 -20 -30 0 5 10 15 20 25 30 2.5 3 Hình 6. 28. Hình bài 6.10a b. 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 Hình 6. 29. Hình bài 6.10b >> t=linspace(0,pi,200); >> r=sqrt(abs(3*sin(7*t))); >> y=r.*sin(t); >> stairs(t,y) >> axis([0 pi 0 inf]) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . Đồ thị trong MATLAB 137 c. >> t=linspace(0,pi,200); >> r=sqrt(abs(3*sin(4*t))); >> y=r.*sin(t); >> bar(t,y) >> axis([0 pi 0 inf]) 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 2.5 3 Hình 6. 30. Hình bài 6.10c Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 138 Chư ng 7. ỗ ớ TờÌộồ TờỚộỒ ỘỌTỗỌọ 7. Ồi i thi u Ộ-file Có b n c{ch để l p trình trong M‚ởỗ‚‛. C{ch đầu tiên v| cễng l| c{ch đơn gi n nh t đã đ c đề c p trong năm ch ơng đầu c a gi{o trình n|y l| nh p l nh trực tiếp trong c a s l nh. Ỗhi đó M‚ởỗ‚‛ sẽ đ c s dụng nh m t m{y tính b túi v| phù h p v i c{c b|i to{n có đ ph c t p khẫng cao. C{ch th hai l| t o m t văn b n script M-file có ch a c{c c}u l nh, khi gọi văn b n trong c a s l nh, c{c c}u l nh ch a trong văn b n sẽ lần l t thực hi n gi ng nh khi ta gậ trực tiếp. C{ch th ba l| s dụng function M-file để t o c{c file h|m cho phép x lý c{c gi{ trị đầu v|o để đ a ra c{c gi{ trị đầu ra thích h p. C{ch th t sẽ khẫng đ c đề c p đến trong gi{o trình n|y đó l| tích h p c{c ch ơng trình đ c viết b i ngẫn ng C hoặc ốỚờởờ‚ộ v|o trong M‚ởỗ‚‛ s dụng .mex file. Ởcript v| function M-file đều có phần tên chung l| M-file vì c{c file n|y đều đ c l u v i phần m r ng l| .m . M‚ởỗ‚‛ có sự kh{c bi t l n so v i c{c ngẫn ng l p trình tiêu chuẩn kh{c nh C, C++, ổava. ởr c tiên M‚ởỗ‚‛ có thể hiểu nh l| m t ch ơng trình phiên dịch, có nghĩa l| t t c c{c ch ơng trình M‚ởỗ‚‛ đều đ c đọc, phiên dịch v| thực thi theo từng dòng m t, s dụng ngẫn ng th}n thi n v i ng i dùng. Điều n|y d n đến vi c th i gian tính to{n trong M‚ởỗ‚‛ sẽ l}u tuy nhiên sẽ r t d d|ng trong vi c ph{t hi n l i cễng nh viết c{c ch ơng trình m u hoặc ch ơng trình th nghi m. C{c ngẫn ng kh{c nh C, C++, ốortran, ổava l| ngẫn ng l p trình cần đ c biên dịch. C{c ch ơng trình đ c dịch sang ngẫn ng m{y để x lý trong file thực thi. ở c đ tính to{n đ i v i c{c ch ơng trình n|y l| r t nhanh tuy nhiên khó tìm ra l i trong qu{ trình dịch hay thực thi. M t điểm thu n l i th hai khi l p trình trong M‚ởỗ‚‛ đó l| khẫng cần ph i khai b{o tr c c{c biến cễng nh kiểu d li u t ơng ng sẽ s dụng. ởrong M‚ởỗ‚‛ t t c c{c biến đều d ng ma tr n hoặc d ng chu i ký tự trong khi nh ng ngẫn ng l p trình kh{c, vi c định nghĩa tr c biến, kích c , kiểu d li u l| vẫ cùng quan trọng. Hai điểm kh{c bi t kh{c r t d nh n th y khi so s{nh M‚ởỗ‚‛ v i c{c ngẫn ng l p trình kh{c đó l| trong M‚ởỗ‚‛ khẫng s dụng d li u kiểu con tr v| M‚ởỗ‚‛ khẫng ph i l| ngẫn ng l p trình h ng đ i t ng. ỏ i đ}y l| gi i thi u hai d ng ng dụng ph biến c a M-file trong M‚ởỗ‚‛, đó l| văn bản v| hàm do người dùng tự định nghĩa. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 139 7. . Văn b n Để t o m t văn b n trong M‚ởỗ‚‛ . . ờ b , nh p chu t v|o ốile, chọn ộew sau đó chọn M-file. M t c a s m i gọi l| Editor sẽ xu t hi n. ởrong c a s n|y, nh p chu i c{c c}u l nh mong mu n s dòng c a văn b n sẽ hiển thị bên tr{i, khẫng có d u nhắc >> rồi l u l i v i tên có phần m r ng .m mặc định trong M‚ởỗ‚‛ . ỡí dụ sau minh họa cho vi c t o m t văn b n có tên script1.m để tính di n tích hình tròn v i b{n kính cho tr c. ởrong ví dụ n|y, n i dung c a văn b n sẽ đ c thể hi n trong ẫ hình ch nh t v i tên file trên script1.m radius = 5 area = pi * (radius^2) Để xem n i dung c a m t văn b n đã đ c l u, có thể s dụng m t trong hai c{ch sau đ}y. C{ch th nh t l| s dụng l nh type, n i dung văn b n sẽ hi n lên trong c a s l nh. C{ch th hai l| m file trong c a s Editor. ởrong c a s l nh, khi gậ tên file c a M-file thì t t c c{c l nh ch a trong file đó sẽ đ c thực thi. >>type script1 radius = 5 area = pi * (radius^2) >>script1 radius = 5 area = 78.5398 M t điều quan trọng khi l|m vi c v i c{c file văn b n v| h|m đó l| c{c văn b n cần ph i trình b|y rậ r|ng, d hiểu để ti n cho vi c tham kh o cễng nh kiểm tra l i trong qu{ trình ch y. M t trong nh ng c{ch l|m cho vi c trình b|y văn b n đ c rậ r|ng l| s dụng d u % để thể hi n chú thích cho c{c đo n, c}u l nh m| khẫng nh h ng đến kết qu . ỡí dụ văn b n tr c có thể điều chỉnh m t chút về n i dung nh sau: script1b.m % Chuong trinh tinh dien tich hinh tron % Cho truoc ban kinh hinh tron radius = 5 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 140 area = pi * (radius^2) ỗ nh help trong M‚ởỗ‚‛ cễng có thể s dụng đ i v i M-file v| sẽ hiển thị kh i chú thích đầu tiên đ c hiểu l| nh ng dòng chú thích kế tiếp nhau trên c a s l nh. ỡí dụ đ i v i văn b n script1b.m vừa l u >>help script1b Chuong trinh tinh dien tich hinh tron ởr ng h p gi a hai dòng chú thích %Chuong trinh v| %Cho truoc khẫng ph i l| m t dòng tr ng, M‚ởỗ‚‛ sẽ hiểu hai dòng n|y thu c cùng m t kh i chú thích v| sẽ hiển thị lên m|n hình khi l nh help cho văn b n n|y đ c gọi. ởrong l p trình, vi c xu t nh p d li u c{c d ng kh{c nhau l| r t quan trọng. C{c l nh cơ b n về xu t nh p d li u đã đ c gi i thi u ch ơng m đầu v| sẽ đ c nhắc l i cụ thể hơn ch ơng n|y trong c{c b|i t p t ơng ng. ỡí dụ: Từ file script1b.m viết ch ơng trình tính di n tích hình tròn v i b{n kính nh p từ b|n phím. script2.m %Chuong trinh tinh dien tich hinh tron %Dua vao ban kinh duoc nhap tu ban phim %Yeu cau nhap ban kinh hinh tron tu ban phim fprintf(‘Luu y: Don vi ban kinh la centimet\n’) radius = input(‘Nhap ban kinh: ‘); area = pi * (radius^2); %In ra cac gia tri ban kinh va dien tich hinh tron fprintf(‘Ban kinh hinh tron la %.2f cm, \n’, radius) fprintf(‘Dien tich hinh tron la %.2f cm2\n’, area) Ỗhi ch y ch ơng trình, m|n hình sẽ hi n ra c{c n i dung sau >> script2 Luu y: Don vi ban kinh la centimet Nhap ban kinh: 3.9 Ban kinh hinh tron la 3.90 cm, Dien tich hinh tron la 47.78 cm2 7. . ồ|m do ngư i dỂng t đ nh nghĩa ng ởrong M‚ởỗ‚‛, bên c nh c{c h|m đã x}y dựng sẵn, c{c h|m vẫ danh, i dùng còn có thể tự định nghĩa c{c h|m s dụng M-file đ c gi i thi u sau Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 141 đ}y. ỏo h|m t o trong Ốditor nên c{c b c m c a s Ốditor cễng t ơng tự nh đ i v i văn b n cho M‚ởỗ‚‛ phiên b n . . ốile New M-file , c{c phiên b n m i hơn, có thể chọn File New ốunction cho h|m v| ốile New Ởcript cho văn b n. C{c h|m do ng i dùng tự định nghĩa có thể có m t hay nhiều tham s , tr về m t hay nhiều gi{ trị, tuy nhiên về cơ b n, mọi h|m trong M‚ởỗ‚‛ cần ph i có nh ng yếu t sau - - ỏòng đầu tiên c a h|m v i c{c thẫng tin ởừ khóa function. ởên c{c gi{ trị tr về c a h|m nếu có . ởên h|m. ởên c{c tham s c a h|m nếu có . Ỗh i dòng chú thích trình b|y ý nghĩa c a h|m, kh i n|y sẽ hi n ra khi s dụng l nh help. ởh}n h|m bao gồm t t c c{c l nh x lý c a h|m. ởừ khóa end dòng cu i cùng c a h|m. ỡí dụ: H|m calcarea tính v| tr về gi{ trị di n tích hình tròn l u trong file calcarea.m nh sau calcarea.m function area = calcarea(rad) % Ham calcarea tinh dien tich hinh tron neu biet ban kinh % Cu phap goi ham: calcarea(ban_kinh) % Tra ve gia tri dien tich cua hinh tron co ban kinh tuong ung area = pi * rad * rad; end ‛{n kính hình tròn sẽ đ c l u v|o tham s rad, h|m sẽ tính di n tích hình tròn v| l u v|o biến area. ỗ u ý: do h|m có gi{ trị tr về nên phần th}n h|m ph i có l nh để truyền gi{ trị cho biến đầu ra area c a h|m. Để xem n i dung c a h|m bên c nh vi c s dụng Editor có thể dùng l nh type nh đã gi i thi u trên. Gọi h|m từ c a s l nh Ởau đ}y l| ví dụ c a vi c gọi h|m calcarea trong đó gi{ trị tr về l u trong biến mặc định ans: >>calcarea (4) ans = 50.2655 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 142 ộói chung vi c gọi h|m sẽ thực thi th|nh cẫng khi nh p tên c a file ch a h|m tuy nhiên để tr{nh rắc r i v| d qu n lý, nên chọn tên file v| tên h|m trùng nhau. Ỗết qu tr về c a h|m có thể l u trong m t biến có tên trùng hoặc kh{c v i tên c a gi{ trị tr về trong h|m. Gi{ trị tr về c a h|m cễng có thể in ra m|n hình hoặc xu t ra file s dụng l nh disp hoặc fprintf: >>disp(calcarea(4)) 50.2655 >>fprintf(‘Dien tich hinh tron la %.1f\n’, calcarea(4)) Dien tich hinh tron là 50.3 C{c h|m do ng i dùng định nghĩa cễng có thể đ c gọi từ văn b n gi ng nh c{c h|m x}y dựng sẵn trong M‚ởỗ‚‛. ỡí dụ tính di n tích hình tròn trên đ}y l| m t tr ng h p đơn gi n chỉ cần s dụng m t tham s đầu v|o. ởuy nhiên trong thực tế chúng ta th ng gặp ph i c{c b|i to{n ph c t p yêu cầu nhiều tham s đầu v|o cễng nh c{c tính to{n trung gian đ i v i biến cục b để có thể đ a ra gi{ trị tr về mong mu n nh ví dụ sau ởính tiền cẫng bằng UỞỏ cho vi c gia cẫng m t hình trụ tròn biết c{c kích th c c a hình trụ cễng nh gi{ th|nh gia cẫng cho m t m2 tính bằng ỡộỏ v| tỉ gi{ UỞỏ = ? ỡộỏ. Chúng ta có thể gi i b|i to{n bằng c{ch tính to{n di n tích xung quanh c a hình trụ từ đó tính ra gi{ th|nh gia cẫng bằng ỡộỏ rồi quy đ i ra UỞỏ v i tỉ gi{ cho tr c. ỏi n tích xung quanh c a hình trụ đ c tính theo cẫng th c dt 2 rh 2 r 2 giacong.m function chiphi=giacong(r, h, giaVND, tigia) % Ham tinh so tien tra cho viec gia cong mot hinh tru tron bang USD % Cu phap goi ham: giacong(ban kinh, chieu cao, gia theoVND, ti gia quy doi) % Ham tra ve chi phi tinh bang USD % Ban kinh va chieu cao tinh bang m % Chi phi co don vi USD/m2 % Tinh dien tich xung quanh cua hinh tru dt = 2*pi*r*h + 2*pi*r^2; % Tinh chi phi gia cong bang VND cpVND = dt*giaVND; % Tinh chi phi gia cong bang USD Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 143 chiphi = cpvnd/tigia; end H|m có thể đ c gọi nh sau, ví dụ hình trụ b{n kính . m, chiều cao . m, tiền cẫng l| ỡộỏ/m2 v| ỡộỏ đ i đ c UỞỏ. >>giacong(.1, .5, 200000, 20000) ans = 3.7699 >>fprintf('Tien gia cong USD\n',giacong(.1,.5,200000,20000)) hinh tru la: %.2f Tien gia cong hinh tru la 3.77 USD H|m do ng i dùng tự định nghĩa trong M‚ởỗ‚‛ có thể đ theo s l ng biến đầu v|o v| kết qu đầu ra nh sau c ph}n bi t - H|m tính to{n v| tr về m t gi{ trị - H|m tính to{n v| tr về nhiều hơn m t gi{ trị - H|m chỉ thực hi n m t s nhi m vụ nh t định m| khẫng tr về gi{ trị n|o ỡề t ng quan, nh đã trình b|y trên, mọi h|m do ng i dùng tự định nghĩa trong M‚ởỗ‚‛ đều có từ khóa function đầu, trong tr ng h p h|m có tr về gi{ trị thì t p h p c{c tên c a gi{ trị tr về sẽ đ c thể hi n trên cùng dòng v i từ khóa function, theo sau l| phép g{n = . ởham s đầu v|o đ c biểu di n trong ngoặc đơn, trong tr ng h p có nhiều tham s đầu v|o, s dụng d u , để ph}n bi t. ỡí dụ trên l| m t minh họa cho h|m tr về m t gi{ trị, đ i v i h|m tr về nhiều hơn m t gi{ trị, cú ph{p t ng qu{t c a m t h|m d ng n|y nh sau ten_ham.m function [tap hop cac gia tri tra ve] = ten_ham(tap hop cac tham so vao) %Dong chu thich mo ta noi dung ham Cac cau lenh thanh phan Tat ca cac gia tri tra ve liet ke o dong dau deu phai duoc gan gia tri end ỗ u ý l| đ i v i d ng h|m n|y, trong phần th}n h|m bắt bu c ph i có l nh g{n gi{ trị cho t t c c{c gi{ trị tr về đã đ c li t kê phần khai b{o h|m. ỡí dụ h|m sau sẽ tính v| tr về hai gi{ trị chu vi v| di n tích c a hình tròn v i tham s đầu v|o l| b{n kính c a hình tròn t ơng ng. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 144 areacirc.m function [area, circum] = areacirc(rad) % ham areacirc tra ve gia tri chu vi va dien tich hinh % tron % cu phap goi ham: areacirc(radius) area = pi * rad .* rad; circum = 2 * pi * rad; end ỏo h|m có hai gi{ trị tr về, dòng khai b{o h|m, hai gi{ trị tr về n|y sẽ đ c biểu di n trong ngoặc vuẫng, ph}n bi t v i nhau b i d u phẩy. ỗ u ý l| do h|m có hai gi{ trị tr về nên cần ph i l u c{c gi{ trị n|y v|o c{c biến riêng bi t kh{c nhau, trong ví dụ n|y, di n tích sẽ đ c l u v|o biến a v| chu vi đ c l u v|o biến c >>[a c] = areacirc(4) a = 50.2655 c = 25.1327 ởrong tr ng h p khẫng l u v|o c{c biến riêng lẻ, chỉ có gi{ trị đầu tiên c a h|m đ c tr về, ví dụ >>disp(areacirc(4)) 50.2655 Ởinh viên cần l u ý về th tự l u c{c gi{ trị tr về nh trong dòng khai b{o h|m, trong tr ng h p n|y, gi{ trị tr về đầu tiên sẽ l| di n tích, tiếp theo l| chu vi, tuy nhiên th tự g{n kết qu cho c{c gi{ trị tr về trong th}n h|m khẫng quan trọng. b|i n|y, sinh viên có thể kiểm tra kết qu khi tham s đầu v|o khẫng ph i l| m t s m| l| m t vector. ở ơng tự nh c{c h|m x}y dựng sẵn trong M‚ởỗ‚‛, khi dùng h|m help đ i v i h|m vừa t o, m|n hình sẽ hiển thị n i dung trong c{c dòng chú thích ngay phía d i dòng khai b{o h|m, ví dụ >>help areacirc ham areacirc tra ve gia tri chu vi va dien tich hinh tron cu phap goi ham: areacirc(radius) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 145 ỡi c gọi h|m cễng ho|n to|n t ơng tự nh đ i v i c{c h|m x}y dựng sẵn trong M‚ởỗ‚‛, nghĩa l| ng i s dụng có thể gọi trực tiếp trong c a s l nh hoặc trong văn b n Đ i v i c{c h|m khẫng có gi{ trị tr về m| chỉ thực hi n m t s nhi m vụ nh t định, cú ph{p t ng qu{t nh sau ten_ham.m function ten_ham(tap hop cac tham so vao) %Dong chu thich mo ta noi dung ham Cac cau lenh thanh phan end ỗ u ý dòng khai b{o h|m, ta có thể th y khẫng có khai b{o c{c gi{ trị tr về cễng nh khẫng có phép g{n =, ví dụ h|m sau chỉ thực hi n nhi m vụ in c{c tham s đầu v|o đã nh p trong cùng m t c}u printem.m function printem(a,b) % printem in hai tham so dau vao trong cung mot cau % cu phap goi ham: printem(so1, so2) fprintf(‘So thu nhat %.1f va so thu hai %.1f\n’,a,b) end ỡí dụ gọi h|m >>printem(3.3, 2) So thu nhat 3.3 va so thu hai 2.0 ỗ u ý do h|m khẫng có gi{ trị tr về nên nếu g{n kết qu c a h|m cho m t biến, M‚ởỗ‚‛ sẽ hiển thị thẫng b{o l i, ví dụ >>x = printem(3, 5) %Error!! ??? Error using ==> printem Too many output arguments. Đ i v i c{c ví dụ trên, ta đều th y c{c h|m đều có tham s đầu v|o, tuy nhiên trong m t s tr ng h p, tùy v|o b|i to{n cụ thể, sự xu t hi n c a tham s đầu v|o l| khẫng cần thiết, ví dụ h|m sau sẽ in ra m t s ng u nhiên v i hai ch s phần th p ph}n Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 146 printrand.m function printrand() % printrand in ra man hinh mot so ngau nhien % cu phap goi ham: printrand hoac printrand() fprintf(‘So ngau nhien la %.2f\n’,rand) end ỡí dụ gọi h|m nh sau >>printrand() So ngau nhien la 0.94 ỏo khẫng có tham s đ a v|o h|m nên khẫng có tham s trong d u ngoặc khi khai b{o hoặc gọi h|m, nói c{ch kh{c, đ i v i nh ng d ng h|m n|y, khẫng cần s dụng d u ngoặc đơn trong dòng khai b{o h|m hoặc khi gọi h|m. 7. C{c l nh l a ch n Hai c}u l nh lựa chọn cơ b n trong M‚ởỗ‚‛ l| if v| switch trong đó if còn có c{c l nh rẽ nh{nh else v| elseif. ỗ nh if sẽ kiểm tra c{c gi{ trị đềng hoặc sai c a điều ki n để thực hi n c{c c}u l nh tiếp theo trong đó điều ki n đ c biểu di n b i c{c phép to{n logic v| c{c phép to{n so s{nh đ c gi i thi u d i đ}y. 7. . C{c phép to{n quan h C{c phép to{n quan h có thể l| c{c phép to{n so s{nh gi a hai biểu th c cùng kiểu d li u hoặc l| c{c phép to{n logic, gi{ trị tr về c a chúng l| đềng hoặc sai. C{c phép to{n so s{nh trong M‚ởỗ‚‛ đ c biểu di n trong b ng sau: > ỗ n hơn < ộh hơn >= ỗ n hơn hoặc bằng >3 < 5 ans = 1 >>2 > 9 ans = 0 Gi{ trị tr về c a phép to{n so s{nh mặc dù l| c{c gi{ trị logic nh ng v n có thể s dụng trong tính to{n to{n học v i c{c gi{ trị v| . ỡí dụ >>5 < 7 ans = 1 >>ans + 3 ans = 4 C{c phép to{n logic th ng gặp l|: | hoặc || Logic OR & hoặc && Logic AND ~ Logic NOT ‛ên c nh đó M‚ởỗ‚‛ còn có phép to{n xor chỉ nh n hai tham s đầu v|o v| tr về gi{ trị logic đềng khi m t v| chỉ m t tham s l| đềng. ỡí dụ: >>xor(3 ‘c’) ans = 1 >>xor(3diemso = 8.2; >>diemchu = doidiem(diemso) diemchu = B >>diemchu = doidiem(5.8) diemchu = F Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 152 >>diemchu = doidiem(11) diemchu = X 7.2.3 SWITCH ỗ nh switch th ng s dụng trong tr ng h p c{c c}u l nh if lồng nhau hoặc s dụng nhiều c}u l nh elseif. Switch đ c s dụng khi so s{nh xem m t biểu th c có gi{ trị bằng c{c gi{ trị cụ thể cho tr c. Cú ph{p c a switch: switch bieu_thuc case truong_hop_1 hanh_dong_1 case truong_hop_2 hanh_dong_2 case truong_hop_3 hanh_dong_3 otherwise hanh_dong_n end M t c}u l nh switch bắt đầu v i từ khóa switch v| kết thúc v i từ khóa end. ởr c tiên biểu th c trong switch sẽ đ c so s{nh theo th tự v i c{c gi{ trị c a (trường hợp , trường hợp , trường hợp … . ộếu gi{ trị c a biểu th c trùng v i gi{ trị c a trường hợp , hành động sẽ đ c thực thi v| sau đó kết thúc c}u l nh switch. ộếu gi{ trị c a biểu th c trùng v i tr ng h p i, hành động i sẽ đ c thực thi v| kết thúc c}u l nh switch. ộếu gi{ trị c a biểu th c khẫng trùng v i tr ng h p n|o, hành động n phía d i từ khóa otherwise sẽ đ c thực thi. ợét ví dụ sau đ}y nếu ng i s dụng chỉ nh p v|o từ b|n phím c{c gi{ trị , , thì M‚ởỗ‚‛ sẽ in ra m|n hình m t , ba , năm t ơng ng, tr ng h p gi{ trị nh p v|o khẫng ph i l| , , M‚ởỗ‚‛ sẽ hiển thị thẫng b{o l i. otherwisetest.m %Vi du su dung otherwise trong switch de hien thi thong bao loi sonhap=input('Nhap vao mot trong cac gia tri 1, 3, 5: '); switch sonhap Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 153 case 1 disp('So nhap vao la so mot!!'); case 3 disp('So nhap vao la so ba!!'); case 5 disp('So nhap vao la so nam!!') otherwise disp('So nhap vao khong dung, lam theo huong dan lan sau!!') end 7. Vòng lặp Đ i v i b|i to{n tính di n tích hình tròn v i b{n kính cho tr c nh đã ví dụ trên, có thể khẫng cần s dụng đến M-file để l p trình m| có thể thực hi n phép tính đơn gi n trong M‚ởỗ‚‛ S = πr3. ởuy nhiên, ví dụ nh khi b|i to{n yêu cầu tính di n tích c{c hình tròn có b{n kính lần l t từ . , . , . , cm cễng nh khi gặp ph i nh ng b|i to{n yêu cầu thực hi n l i nhiều lần m t phép tính, ta cần s dụng đến vòng lặp. ỡòng lặp trong l p trình cho phép thực hi n l i nhiều lần m t hay m t nhóm c{c h|nh đ ng. Có hai lo i vòng lặp cơ b n th ng gặp vòng lặp gi i h n v| vòng lặp có điều ki n. ỡòng lặp gi i h n l| vòng lặp m| trong đó c{c h|nh đ ng đ c lặp l i v i m t s lần x{c định tr c. ỡòng lặp có điều ki n cho phép lặp l i c{c h|nh đ ng cho đến khi điều ki n khẫng còn nh n gi{ trị đềng. Trong M‚ởỗ‚‛ hai lo i vòng lặp trên t ơng ng v i c{c vòng lặp for vòng lặp gi i h n v| while vòng lặp có điều ki n . 7.3.1 FOR ỡòng lặp for th ng s dụng khi cần lặp l i nhiều lần m t l nh hay nhóm c}u l nh trong M-file văn b|n hay h|m v| s lần lặp x{c định tr c, trong đó lần lặp th n đ c x{c định b i gi{ trị c a bi n lặp. C{c biến lặp th ng gặp trong c{c ngẫn ng l p trình l| i, j, k, l… tuy nhiên trong M‚ởỗ‚‛ do i v| j đã đ c s dụng để biểu di n s ph c nên cần l u ý khi s dụng i v| j l|m biến lặp. Cú ph{p cho vòng lặp for: for bien_lap = khoang_lap hanh_dong Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 154 end ởrong đó khoảng_lặp ch a c{c gi{ trị từ nh nh t đến l n nh t c a biến_lặp. khoảng_lặp có thể đ c định nghĩa bằng vector tuy nhiên thẫng th ng khoảng_lặp đ c biểu di n s dụng d u hai ch m : ỡí dụ: In m t c t s nh n c{c gi{ trị từ đến : for i = 1 : 5 fprintf(‘%d \n’, i) end Đầu tiên biến lặp i sẽ đ c g{n gi{ trị đầu tiên c a khoảng_lặp l| , sau đó hành_động c a vòng lặp for sẽ đ c thực thi đ}y l| l nh fprintf in ra gi{ trị c a i, sau đó xu ng dòng . ởiếp đó i sẽ đ c g{n gi{ trị , M‚ởỗ‚‛ in gi{ trị t ơng ng c a i ra m|n hình, xu ng dòng cho đến khi hành_động thực hi n xong v i i nh n gi{ trị cu i cùng bằng , vòng lặp kết thúc. M t trong nh ng ng dụng ph biến c a vi c s dụng vòng lặp for l| tính t ng hoặc tích. M‚ởỗ‚‛ có h|m sum v| prod để tính t ng v| tích c a c{c phần t trong m t vector, ta có thể s dụng for để thực hi n cẫng vi c t ơng đ ơng m| khẫng cần dùng đến c{c h|m x}y dựng sẵn. ỡí dụ: Cho vector A [1 2 3 4 5 6 7 8 9 10] , tính t ng v| tích c a t t c c{c phần t trong vector ‚. >>A = 1:10; >>sumA = 0; >>prodA = 1; >>for i = 1 : length(A) sumA = sumA + i; prodA = prodA * I; end Ởo s{nh sumA v| prodA v i kết qu c{c phép tính sum(A) v| prod(A). ỡòng lặp for cễng có thể kết h p v i c}u l nh lựa chọn if nh trong ví dụ d i đ}y Chỉ tính t ng nh ng phần t trong ‚ nh n gi{ trị nh hơn v| tính tích c a c{c phần t còn l i c a ‚. >>sum5 = 0; >>postrest = 1; >>for i = 1 : length(A) if i < 5 sum5 = sum5 + i; else Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 155 postrest = postrest * i; end end ộh đã th y ví dụ trên, hành_ động trong vòng lặp for có thể l| b t kì c}u l nh h p l n|o, vì thế ta có thể nhiều vòng lặp for lồng trong nhau theo cú ph{p sau for bien_lap_1 = khoang_lap_1 %hanh dong 1 tuong duong voi viec khai bao them vong lap for bien_lap_2 = khoang_lap_2 hanh_dong_2 end end C{c vòng lặp for lồng nhau th ng gặp trong ma tr n khi ph i duy t c{c phần t theo h|ng v| c t. ỡí dụ hãy in ra m|n hình ngẫi sao xếp theo h|ng liên tiếp m i h|ng ngẫi >>h = 3; c = 5; >>for i = 1 : h for j = 1 : c fprintf(‘*’); end fprintf(‘\n’); end ***** ***** ***** 7.3.2 WHILE C}u l nh while l| c}u l nh cho phép lặp có điều ki n trong M‚ởỗ‚‛, đ c s dụng để lặp l i m t h|nh đ ng khi khẫng biết chính x{c s lần lặp. Cú ph{p t ng qu{t while dieu_kien hanh_dong end Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 156 ởr c tiên dieu_kien sẽ đ c kiểm tra, nếu dieu_kien nh n gi{ trị logic đềng, hanh_dong sẽ đ c thực thi. Ởau đó M‚ởỗ‚‛ thực hi n l i phép kiểm tra, nếu dieu_kien v n nh n gi{ trị đềng, hanh_dong l i tiếp tục đ c thực thi ỡòng lặp có thể tr th|nh vòng lặp vẫ cùng nếu dieu_kien khẫng nh n gi{ trị sai nh ví dụ sau đ}y >>dieu_kien=1; >>while dieu_kien fprintf(‘Su dung to hop phim Ctrl+C de thoat khoi vong lap\n’) end Để tr{nh tr ng h p vòng lặp vẫ cùng nh trên, hanh_dong ph i d n đến sự thay đ i trong dieu_kien để gi{ trị logic c a nó tr th|nh sai. ỡí dụ cho m t chu i vẫ h n c{c s sau trong đó phần t đầu tiên c a chu i nh n gi{ trị , phần t th hai nh n gi{ trị , phần t th n nh n gi{ trị bằng tích c a phần t th n-1 nh}n v i vị trí c a phần t đó trong chu i n. ỡiết h|m tìm phần t đầu tiên c a chu i l n hơn gi{ trị tham s đầu v|o c a h|m đó. timso.m function a = timso(b) %Tim so tra ve gia tri phan tu dau tien cua chuoi lon hon tham so dau vao cua ham i = 1; so = 1; while so >timso(700) ans = 720 ởrong ch ơng trình n|y ta s dụng hai biến i v| so, trong đó i biểu di n s th tự c a phần t trong chu i, so đ i di n cho c{c phần t trong chu i bắt đầu từ phần t th nh t, dieu_kien đ c chọn cho h|m l| phần t th nh t nh hơn gi{ trị đầu v|o c a h|m. Ch y vòng lặp while lần đầu tiên, dieu_kien v n nh n gi{ trị Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 157 đềng (1 < 700), so đ c g{n gi{ trị c a phần t th hai trong chu i theo cẫng th c (1 * 2 = 2),dieu_kien m t lần n a đ c kiểm tra v| v n tr về gi{ trị đềng. Qu{ trình kiểm tra điều ki n v| g{n đ c lặp l i đến khi so nh n gi{ trị l n hơn tham s đầu v|o c a h|m, ch ơng trình kết thúc. M t ví dụ kh{c về vi c ng dụng vòng lặp while đó l| lặp l i vi c nh p gi{ trị từ b|n phím theo định d ng cho tr c. % Chuong trinh yeu cau nguoi dung nhap mot so duong tu ban phim, % neu do la mot so duong, thuc thi vong lap bao gom cac hanh dong: in so do ra % man hinh va yeu cau nhap mot so duong khac cho den khi so nhap vao am inputnum=input('Nhap vao mot so duong: '); while inputnum >= 0 fprintf('Ban da nhap vao so: %d\n\n',inputnum) inputnum = input('Nhap vao mot so duong: '); end fprintf('So nhap vao khong hop le!\n') 7.4 Tóm tắt chư ng 7 C{c phép to{n quan h v| c{c phép to{n logic == ‛ằng ~= Ỗh{c < ộh hơn ỗ n hơn >= ỗ n hơn hoặc bằng & hoặc Logic AND && | hoặc || Logic OR ~ Logic NOT Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ Xor 158 Logic EXCLUSIVE OR C{c h|m đi u khi n chư ng trình break ộgắt vòng lặp case C}u l nh rẽ nh{nh trong c u trúc switch else C}u l nh rẽ nh{nh trong c u trúc if elseif C}u l nh rẽ nh{nh trong c u trúc if end Ỗết thúc c{c c u trúc l nh for, while, end error Hiển thị thẫng b{o l i for ỗặp l i t p h p l nh theo m t s lần cho tr if ởhực hi n c}u l nh theo điều ki n otherwise ớhần mặc định c a c u trúc switch switch C u trúc cho phép thực hi n l nh khi so s{nh v i c{c điều ki n cho tr c warning Hiển thị l i c nh b{o while ỗặp l i t p h p l nh theo m t s lần khẫng x{c định c Bảng 7. 1. Tóm tắt các hàm sử dụng trong chương 7 7.5 ọ|i t p chư ng 7 ọ|i 7.1 ỡiết h|m sumstep tính v| tr về gi{ trị t ng c a c{c s từ đến n v i kho ng c{ch gi a c{c s l| k, trong đó n v| k l| tham s đầu v|o c a h|m. Ỗiểm tra kết qu bằng c{ch gọi h|m v i n = 11, k = 3 nh sau >>sumstep(11, 3) ọ|i 7.2 ỡiết h|m prodby nh n v|o gi{ trị c a m t s nguyên d ơng n, tr về gi{ trị tích c a c{c s lẻ trong kho ng , n . ọ|i 7.3 ỡiết ch ơng trình printE yêu cầu nh p v|o m t vector, in ra theo th tự c{c phần t c a vector đó theo m u sau: Nhap vao mot vector: vec Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 159 Phan tu thu 1 la Phan tu thu 2 la Phan tu thu 3 la Phan tu thu 4 la ọ|i 7.4 ở o file sp.txt ch a ma tr n x trong đó c t th nh t ch a c{c s thực ng u nhiên trong kho ng , , c t th hai ch a c{c s thực ng u nhiên trong kho ng , , c{c phần t c a ma tr n l u v|o file v i hai ch s phần th p ph}n. ọ|i 7.5 File sp.txt ch a c{c thẫng s về chiều d|i L v| c}n nặng W c a lo t s n phẩm cần kiểm tra. ởrong đó c{c s n phẩm đ t yêu cầu có chiều d|i trong kho ng . , . v| c}n nặng trong kho ng . , . . ỡiết ch ơng trình kiểm tra thẫng s s n phẩm theo d li u trong file sp.txt, in ra m|n hình c{c s n phẩm bị lo i theo m u STT L W ọ|i 7.6 ớh{t triển ch ơng trình c a b|i 7.5, n i dung in ra m|n hình có d ng sau: Danh sach cac san pham bi loai ************************** STT L W Ket_luan ởrong đó n i dung c a Ỗet_luan phụ thu c v|o s s n phẩm bị lo i, nếu khẫng có s n phẩm n|o hoặc t t c c{c s n phẩm đều bị lo i, dòng STT L W sẽ khẫng in ra v| Ỗet_luan có n i dung Khong co san pham nao bi loai!!! hoặc Tat ca cac san pham deu bi loai!!! , nếu s s n phẩm n bị lo i trong kho ng , , in ra theo c u trúc trên v| Ỗet_luan có n i dung Co n san pham bi loai!!! . ọ|i 7.7 ở o m t vector ‚ gồm m i phần t l| c{c s nguyên ng u nhiên trong kho ng [- , . Ở dụng vòng lặp v| if nếu cần thực hi n c{c yêu cầu sau a. ởrừ m i phần t cho . b. Ỗiểm tra xem vector có bao nhiêu phần t nh n gi{ trị d ơng. c. ở o vector ‛ có c{c phần t l| trị tuy t đ i c a c{c phần t t ơng ng ‚. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 160 d. ởìm phần t l n nh t, phần t có gi{ trị tuy t đ i l n nh t trong ‚. ọ|i 7.8 ở o ma tr n ng u nhiên x , c{c phần t l| c{c s nguyên trong kho ng [0, , s dụng vòng lặp v| if nếu cần thực hi n c{c yêu cầu sau: a. ởìm phần t l n nh t trong m i c t. b. ởìm phần t l n nh t trong m i h|ng. c. ởìm phần t l n nh t trong c ma tr n. ọ|i 7.9 ỡiết ch ơng trình in ra chính x{c n i dung d i đ}y, s dụng vòng lặp. 1x8+1=9 12 x 8 + 2 = 98 123 x 8 + 3 = 987 1234 x 8 + 4 = 9876 12345 x 8 + 5 = 98765 123456 x 8 + 6 = 987654 1234567 x 8 + 7 = 9876543 12345678 x 8 + 8 = 98765432 123456789 x 8 + 9 = 987654321 ọ|i 7.10 ỡiết ch ơng trình in ra chính x{c n i dung d i đ}y, s dụng vòng lặp. 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 ọ|i 7.11 ỡiết ch ơng trình tính thể tích hình nón trong đó yêu cầu ng i dùng nh p v|o b{n kính v| chiều cao c a hình nón, kiểm tra xem s nh p v|o có ph i l| s d ơng hay khẫng, tính v| in ra thể tích hình nón theo cẫng th c V Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh 2 rh 3 M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 161 ọ|i 7.12 ỡiết h|m dtcv yêu cầu nh p v|o b{n kính, tr về di n tích v| chu vi đ tròn, b{o l i nếu b{n kính nh p v|o có gi{ trị }m. ng ọ|i 7.13 ỡiết h|m recpol nh n v|o hai gi{ trị x, y( x, y > 0 ) trong tọa đ Đê c{c, tr về gi{ trị tọa đ cực r, θ theo cẫng th c y r ( x 2 y 2 ) , arctan( ) x ọ|i 7.14 ‛iết kho ng c{ch gi a hai điểm (x1, y1), (x2, y2) tính theo cẫng th c d ( x x1 )2 ( y y1 )2 ỏi n tích tam gi{c tính theo cẫng th c A s( s a)(s b)(s c) ởrong đó a, b, c l| c{c c nh c a tam gi{c, s l| n a t ng c a ba c nh tam gi{c. ỡiết h|m tính kho ng c{ch c a hai điểm b t kỳ theo cẫng th c trên. ỡiết ch ơng trình yêu cầu ng i dùng nh p v|o tọa đ ba đỉnh c a m t tam gi{c, tính v| in ra m|n hình di n tích tam gi{c, trong đó s dụng h|m vừa viết để tính đ d|i c{c c nh. ọ|i 7.15 Cho ma tr n mat mat = 4 2 4 3 2 1 3 1 0 5 2 4 4 0 2 ỡiết h|m sumprint trong đo n code sau để có n i dung in ra m|n hình theo m u [r, c] = size(mat); for i = 1 : r sumprint(mat(i, :)) end để có n i dung in ra m|n hình theo m u sau: Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 162 Tong bay gio la 15 Tong bay gio la 25 Tong bay gio la 37 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u ớồ ộ II. ỘỌTỗỌọ 163 ộỒ ỏ ộỒ Chư ng . ớồỨộ TÍCồ Đ ộỒ ồ C C C U Mục n|y gi i thi u c{c b|i to{n x{c định vị trí kh}u, kh p trong cơ c u, kh o s{t chuyển đ ng c a cơ c u khi kh}u d n quay theo m t góc cho tr c, kh o s{t v n t c, gia t c t c th i c a c{c kh}u, kh p c a cơ c u. C{c b|i to{n sẽ đ c h ng d n v i ví dụ cơ c u tay quay con tr t. ‛ên c nh đó sinh viên có thể tham kh o b|i t p v i c{c cơ c u kh{c có đ{p s đi kèm. 8.1 ợ{c đ nh v trí c{c kh}u, kh p trong c c u Cho cơ c u tay quay con tr t nh trong hình d i trong đó ‚‛ = . m, ‛C= m. Ỗh}u d n t o v i ph ơng ngang m t góc 1 45o . ợ{c định vị trí c{c kh p ‛, C v| góc t o b i kh}u v| ph ơng ngang. B 1 2 y 3 A 0 � C x 0 Hình 8. 1. Cơ cấu tay quay con trượt Hướng dẫn. Ỗhi bắt đầu m t ch ơng trình M‚ởỗ‚‛, nên đ a v|o nh ng dòng l nh sau để xóa t t c c{c biến hi n h|nh, xóa n i dung trên c a s l nh, đóng c{c c a s đồ họa đang m để tr{nh nh h ng đến kết qu tính to{n cễng nh d ph{t hi n l i trong qu{ trình l p trình. clear all %xoa tat ca cac bien hien hanh Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 164 clc %xoa noi dung hien thi tren cua so lenh close all %dong tat ca cua so do hoa dang mo Ỗhai b{o c{c gi{ trị đầu v|o, l u ý s đo góc t o b i kh}u ngang cần đ i ra radian. v| ph ơng %Khai bao tham so dau vao AB = 0.5; BC = 1; phi1 = pi/4; Vị trí khớp “ H trục tọa đ xỚy đ trí kh p ‚ t ơng ng l| c đặt nh hình vẽ, do ‚ trùng v i g c tọa đ nên vị xA = 0;yA = 0; %Vi tri khop A xA = 0; yA = 0; Vị trí khớp ” ỡị trí c a kh p ‛ có thể x{c định qua hai ẩn xB v| yB. ỏo đ d|i ‚‛ c định v| góc t o b i kh}u v| ph ơng ngang đã biết, hai ẩn trên đ c tính theo cẫng th c xB = ABcos = (0.5)cos45o = 0.353533m yB = ABsin = (0.5)sin45o = 0.353533m %Vi tri khop B xB = AB*cos(phi1); yB = AB*sin(phi1); Vị trí khớp C ỡị trí c a kh p C đ c x{c định qua hai ẩn xC v| yC, trong đó yC = 0. ỏo đ d|i c a ‛C khẫng đ i ta có ph ơng trình ( xB xC )2 ( yB yC )2 BC 2 Đ}y l| ph ơng trình b c có ẩn xC ch a biết. ớh ơng trình n|y sẽ có hai nghi m trong đó chỉ có m t nghi m l| đ{p {n c a b|i to{n. Yêu cầu đặt ra l| tìm điều ki n để lo i nghi m c a ph ơng trình trên. Có thể th y l| trong tr ng h p 0 90 , xC luẫn l n hơn x‛. ớh ơng trình để x{c định tọa đ c a C trong Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 165 M‚ởỗ‚‛ có thể gi i bằng l nh solve v i ẩn khai b{o l| xCn, b thể s dụng c}u l nh ifelse để gi i nh sau c chọn nghi m có Đư ng tròn bán kính BC B y C2 A C1 x Hình 8. 2. Hai phương án giá trị c a C %Vi tri khop C yC = 0; ptC = ‘(xB-xCn)^2+(yB-yC)^2-BC^2’; nghiemC = solve(ptC,’xCn’); %Hai nghiem cua phuong trinh xC1 = eval(nghiemC(1)); xC2 = eval(nghiemC(2)); %Tim C thoa man dieu kien xC > xB if xC1 > xB xC = xC1; else xC = xC2; end Ởau khi ch y ch ơng trình ta thu đ c ho|nh đ điểm C: xC = 1.2890 Xác định góc tạo bởi khâu với phương ngang Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 166 c tọa đ điểm C, góc 2 t o b i kh}u Ởau khi x{c định đ v i ph ơng ngang có thể x{c định theo tọa đ hai điểm đầu cu i c a kh}u 2 arctan C{c b c tính 2 đ yB yC xB xC c thực hi n trong M‚ởỗ‚‛ nh sau: %Tinh phi2 phi2r = atan((yB-yC)/(xB-xC));%Tinh theo radian phi2 = phi2r*180/pi;%Tinh theo do Ỗết qu thu đ c có thể đ c in ra m|n hình theo c{c c}u l nh sau: %In ket qua ra man hinh fprintf('xB = %g (m) \n', xB) fprintf('yB = %g (m) \n', yB) fprintf('xC = %g (m) \n', xC) fprintf('yC = %g (m) \n', yC) fprintf('phi2 = %g (do) \n',phi2) Vẽ lại cơ cấu Cơ c u có thể đ c vẽ l i trên M‚ởỗ‚‛ bằng c{ch s dụng l nh plot v| c{c l nh h tr kh{c nh sau: %Ve lai co cau hold on axis equal title('Co cau tai vi tri phi = 45 do'); xlabel('x (m)'); ylabel('y (m)'); plot([xA-.2,xC+.2],[yA,yC],'--','LineWidth',2); plot([xA,xB],[yA,yB],'-o','LineWidth',2); plot([xB,xC],[yB,yC],'-o','LineWidth',2); text(xA,yA+.1,'A'); text(xB,yB+.1,'B'); text(xC,yC+.1,'C'); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 167 Co cau tai vi tri phi = 45 do 0.8 0.6 B 0.4 y (m) 0.2 A C 0 -0.2 -0.4 0 0.5 1 x (m) Hình 8. 3. Biểu diễn lại vị trí c a cơ cấu 8.2 Ỗh o s{t chuy n đ ng v| t o phim mô ph ng chuy n đ ng c a c c u 8. . Ỗh o s{t chuy n đ ng Để kh o s{t chuyển đ ng c a cơ c u khi kh}u d n quay trọn vẹn m t vòng, có thể s dụng vòng lặp để tính to{n vị trí c{c kh p t i c{c góc t ơng ng. Ỗhi l p trình cần chú ý điều ki n để chọn nghi m đ m b o điều ki n đơn gi n d thực hi n nh ng có tính chính x{c cao. ợét ví dụ khi kh}u d n c a cơ c u tay quay con tr t quay trọn vẹn m t vòng 0 360 có thể th y x‛ nh n c{c gi{ trị d ơng khi 0 90 hoặc 270 360 v| nh n gi{ trị }m v i c{c gi{ trị còn l i c a . ởuy nhiên ta cễng có thể s dụng m t điều ki n kh{c đơn gi n hơn đó l| v i mọi gi{ trị c a , xB luẫn nh hơn xC. ởrong ví dụ n|y, ta s dụng vòng lặp for v i b c nh y c a vòng lặp l| pi/4. Để ti n cho vi c quan s{t đồ thị, sinh viên có thể thay thế bằng c{c b c nh y có gi{ trị nh hơn. %Khao sat chuyen dong cua co cau for phi=0:pi/4:2*pi xB = AB*cos(phi); yB = AB*sin(phi); yC = 0; ptC = '(xB-xCn)^2+(yB-yC)^2-BC^2'; nghiemC = solve(ptC,'xCn'); %Hai nghiem cua phuong trinh Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 168 xC1 = eval(nghiemC(1)); xC2 = eval(nghiemC(2)); %Tim C thoa man dieu kien xC > xB if xC1 > xB xC = xC1; else xC = xC2; end hold on axis equal plot([xA,xB],[yA,yB],'-o','LineWidth',2); plot([xB,xC],[yB,yC],'-o','LineWidth',2); text(xA,yA+.1,'A'); text(xB,yB+.12,'B'); text(xC,yC-.08,'C'); end title('Khao sat chuyen dong cua co cau') xlabel('x(m)') ylabel('y(m)') Ỗhi đã x{c định đ c vị trí c{c kh p c a cơ c u trong chuyển đ ng, ta cễng có thể suy ra quỹ đ o c a m t điểm b t kỳ trên kh}u trong chuyển đ ng đó. ỡí dụ xét điểm ớ l| trọng t}m c a thanh ‛C, t i mọi th i điểm kh}u chuyển đ ng, tọa đ c a ớ đ c tính t ơng ng theo tọa đ c a hai đầu ‛, C l| xP ( ) xB ( ) xC ( ) yP ( ) yB ( ) yC ( ) ởrong vòng lặp, ta có thể thêm v|o m t s dòng l nh để tính tọa đ trọng t}m ớ v| l u c{c tọa đ n|y v|o m t m ng gi{ trị. i = i+1; %i la bien chay nhan gia tri 0 o ngoai vong lap xP(i) = (xB + xC)/2; yP(i) = (yB + yC)/2; plot(xP(i),yP(i),’*’,’MarkerSize’,10); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 169 Khao sat chuyen dong cua co cau B 0.6 B 0.4 B 0.2 B y(m B A 0 C C -0.2 B C C C B B -0.4 -0.6 -0.5 0 0.5 1 1.5 x(m) Hình 8. 4. Khảo sát chuyển động c a cơ cấu ởọa đ trọng t}m ớ c a kh}u ‛C trong chuyển đ ng c a cơ c u có thể đ thể hi n riêng nh sau hình vẽ đ c thể hi n v i b c nh y vòng lặp l| pi/10): c Quy dao chuyen dong trong tam khau 2 0.4 0.2 y(m) 0 -0.2 -0.4 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 x(m) Hình 8. 5. Quỹ đạo chuyển động c a trọng tâm khâu BC plot(xP,yP,'*-','MarkerSize',10); axis([0 1 -.4 .4]); title('Quy dao chuyen dong trong tam khau 2'); xlabel('x(m)'); ylabel('y(m)'); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t 1 Ch ơng . ớh}n tích đ ng học cơ c u 170 . . T o clip mô ph ng chuy n đ ng M t trong nh ng c{ch thẫng dụng để t o nh ng đo n phim ngắn trong M‚ởỗ‚‛ l| s dụng h|m getframe để chụp l i n i dung thể hi n trên c a s đồ họa hi n h|nh rồi sau đó s dụng h|m movie để cho c{c khung hình đã đ c chụp l i lần l t thể hi n ra trên m|n hình t o nên chuyển đ ng. H|m getframe th ng đ c s dụng trong vòng lặp, gi{ trị tr về c a h|m l| vector m t h|ng, vì thế c hai cú ph{p gọi h|m d i đ}y đều h p l : >>M(i) = getframe; hoặc M(:, j) = getframe; ởrong đó M l| vector ch a c{c khung hình c a phim thể hi n chuyển đ ng, i, j l| s th tự c a khung hình trong vector. Một số lưu ý khi sử dụng hàm getframe Đ m b o h trục tọa đ c{c khung hình kh{c nhau l| khẫng đ i, nếu khẫng c{c hình vẽ sẽ đ c thể hi n trên c{c h trục tọa đ có gi i h n cễng nh đ chia kh{c nhau d n đến kết qu c a phim sẽ khó theo dậi. Ở dụng d u ; cu i l nh getframe để khẫng hiển thị c{c gi{ trị th|nh phần c a M khi ch y vòng lặp. Ỗhi vòng lặp đang đ c ch y, b o đ m c a s đồ họa hi n h|nh khẫng bị che khu t b i c{c c a s kh{c c a s l nh, c a s đồ họa kh{c nếu khẫng n i dung c a c{c c a s đồ họa n|y cễng sẽ đ c l u v|o c{c khung hình c a phim. Đ i v i cơ c u tay quay con tr t trong ví dụ n|y, ngo|i vòng lặp %khao sat chuyen dong cua co cau đã trình b|y trên có thể t o m t biến ch y incr = 1 ngo|i vòng lặp, v| thêm v|o bên trong vòng lặp phía d i c{c l nh vẽ dòng l nh sau: axis ([-1.5 1.5 -.6 .6]); M(incr) = getframe; close; incr = incr +1; Ởau khi biến M đã l u c{c khung hình c a phim thể hi n chuyển đ ng c a cơ c u, h|m movie có thể đ c s dụng để trình chiếu l i đo n phim theo cú ph{p sau >>movie(M, n) ởrong đó n l| s lần ng i s dụng mu n ch ơng trình lặp l i đo n phim, ví dụ v i n = 10, ch ơng trình sẽ chiếu đo n phim lặp đi lặp l i lần. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 171 8.3 V n t c v| gia t c th i c a kh}u lần l t l| rad/s , rad/s2 , tính v n t c v| gia t c d|i c a c{c kh p ‛, C, tính v n t c góc v| gia t c góc c a kh}u . Đ i v i b|i to{n tay quay con tr t đang xét, v n t c góc v| gia t c góc t c B α 2 y 1 C ω A 3 x Hình 8. 6. Bài toán vận tốc, gia tốc với cơ cấu tay quay con trượt Vận tốc c a khớp ” ỡ n t c c a điểm ‛ trên kh}u có thể đ c tính nh sau vB vB1 vA vBA vA rBA ởrong đó vB1 l| v n t c c a điểm ‛ trên kh}u , vBA l| v n t c c a ‛ trong chuyển đ ng quay t ơng đ i so v i điểm ‚, l| v n t c góc c a kh}u , rBA rB xB đ c tính th c rBA rB rA trong 0 , rA v| rB lần l theo cẫng T yB ỏo điểm C thu c hai kh}u v| t c điểm C có thể đ chỉ tr y A 0 , T t l| tọa đ c a ‚, ‛ Vận tốc khớp C Mặt kh{c do kh}u đó rA x A nên vC vC 2 3 t theo ph ơng ngang nên vCy 0 , do đó v n c biểu di n theo vC vC vC vCx 2 3 0 0 T ỡ n t c điểm C tính theo ph ơng trình vC2 vB vCB vB 2 rCB vB 2 (rC rB ) vCx vBx 0 xC xB 0 v 0 y y B By C 0 0 2 0 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 172 Qua đó ta có hai ph ơng trình v i hai ẩn l| vCx v| vCx vBx 2 ( yC yB ) 2 ch a biết 0 vBy 2 ( xC xB ) Sau khi tìm đ theo cẫng th c: c 2 , v n t c quay t ơng đ i gi a C v| ‛ có thể đ c tính vCB 2 rCB Để gi i b|i to{n trong M‚ởỗ‚‛ tr c tiên ta cần khai b{o c{c biến rA, rB, rC theo tọa đ xA, xB, xC v| c{c biến ký hi u vCx v| omega2z. rA=[xA yA 0]'; rB=[xB yB 0]'; rC=[xC yC 0]'; omega1=[0 0 1]'; %rad/s syms vCx omega2z real; vC=[vCx 0 0]'; %m/s omega2=[0 0 omega2z]'; %rad/s %Tinh van toc diem B vB=cross(omega1,rB-rA); %m/s %Tinh van toc diem C %Lap phuong trinh ptvC=vC - vB - cross(omega2,rC-rB); %Tach ra hai phuong trinh chua cac an vCx va omega2z ptvC1=ptvC(1); ptvC2=ptvC(2); nv=solve(ptvC1,ptvC2); vCxs=eval(nv.vCx); omega2s=eval(nv.omega2z); vC=[vCxs 0 0]’; %m/s omega2=[0 0 omega2s]’; %rad/s %Tinh van toc quay tuong doi giua C va B vCB=cross(omega2, rC-rB); %m/s ”iểu diễn họa đồ vận tốc trong M“TL“” ởrong M‚ởỗ‚‛, ng quiver theo cú ph{p sau: i s dụng có thể biểu di n c{c vector s dụng h|m Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 173 >>quiver(x, y, u, v, S) ởrong đó x, y l| điểm đặt c a g c vector u, v l| đ d|i vector chiếu xu ng trục ho|nh v| trục tung, Ở l| tỉ l xích biểu di n vector trên c a s đồ họa. Đ i v i ví dụ tay quay con tr t n|y, họa đ v n t c có thể đ c biểu di n nh sau hold on axis equal %dam bao the hien quan he vuong goc tren hinh title('Bieu dien quan he van toc vB, vC'); xlabel('x (m)'); ylabel('y (m)'); plot([xA-.2,xC+.2],[yA,yC],'--','LineWidth',2); plot([xA,xB],[yA,yB],'-o','LineWidth',2); plot([xB,xC],[yB,yC],'-o','LineWidth',2); %Ve vector vB, vC co goc dat tai diem B va C tuong ung quiver(xB,yB,vB(1),vB(2),1,'LineWidth',2); quiver(xB,yB,vC(1),vC(2),1,'LineWidth',2); %Ve vector vBC co goc trung voi ngon cua vector vB quiver(xB+vB(1),yB+vB(2),vCB(1),vCB(2),1,'LineWidth',2) ; vCB BC vB AB vC AC B A C Hình 8. 7. Họa đồ vận tốc c a cơ cấu Gia tốc khớp ” Gia t c điểm ‛ trên kh}u tính theo cẫng th c Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 174 aB aB1 aB2 aA 1 rBA 1 (1 rBA ) t ỡ i hai th|nh phần tiếp tuyến a B vuẫng góc v i ‛‚ v| có h ng x{c định n ng c aαv| th|nh phần ph{p tuyến a B song song v i ‛‚ v| h đến t}m quay ‚ theo h C{c b ng từ ‛ c tính gia t c kh p ‛ trong M‚ởỗ‚‛ trình b|y nh sau: alpha1=[0 0 -1]'; %rad/s^2 aA=[0 0 0]'; %m/s^2 aB=cross(alpha1,rB-rA)+cross(omega1,cross(omega1,rBrA)); aBt=cross(alpha1,rB-rA); aBn=cross(omega1,cross(omega1,rB-rA)); Gia tốc khớp C Gia t c điểm C có thể tính đ c khi kh o s{t chuyển đ ng trên kh}u aC aC2 aB2 2 rCB 2 (2 rCB ) 2 c a kh}u l| ẩn s aC aC2 aCx 0 0 ởrong đó gia t c góc chuyển đ ng tr t theo ph ơng ngang ch a biết, do kh}u chỉ T ‛iểu di n ph ơng trình tính gia t c điểm C d i d ng vector aCx aBx 0 xC xB 0 0 xC xB 0 a 0 yC yB 0 0 yC yB By 0 0 2 0 2 2 0 ởa đ c h hai ph ơng trình v i hai ẩn aCx v| 2 : aCx aBx 2 ( yC yB) 22 ( xC xB) 0 aBy 2 ( xC xB) 22 ( yC yB) Ởau khi tính đ c 2 ta có thể suy ra hai th|nh phần tiếp tuyến v| ph{p tuyến c a gia t c t ơng đ i gi a C v| ‛ t aCB 2 rCB n aCB 2 (2 rCB ) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u C{c b c tính to{n trong M‚ởỗ‚‛ đ 175 c thực hi n nh sau syms alpha2zaCxreal;%Khai bao cac an aCx va alpha2z alpha2=[0 0 alpha2z]'; aC=[aCx 0 0]'; %Lap phuong trinh ptaC=aC-aB-cross(alpha2,rC-rB)cross(omega2,cross(omega2,rC-rB)); %Tach hai phuong trinh chua aCx va alpha2z ptaC1=ptaC(1); ptaC2=ptaC(2); na=solve(ptaC1,ptaC2); aCxs=eval(na.aCx); alpha2s=eval(na.alpha2z); aC=[aCxs 0 0]'; alpha2=[0 0 alpha2s]'; aCBt=cross(alpha2,rC-rB); aCBn=cross(omega2,cross(omega2,rC-rB)); ”iểu diễn họa đồ gia tốc trong M“TL“” Họa đồ gia t c biểu di n m i quan h gi a gia t c c a điểm ‛ v| gia t c c a điểm C có thể đ c biểu di n nh sau Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 176 B aC aCBn A C aCBt aBt aBn Hình 8. 8. Họa đồ gia tốc c a cơ cấu hold on axis equal title('Bieu dien quan he gia toc aB, aC'); xlabel('x (m)'); ylabel('y (m)'); %Ve lai co cau plot([xA,xC],[yA,yC],'--','LineWidth',2); plot([xA,xB],[yA,yB],'-o','LineWidth',2); plot([xB,xC],[yB,yC],'-o','LineWidth',2); %Ve vector aBt tai diem C quiver(xC,yC,aBt(1),aBt(2),1,'k','LineWidth',2); %Ve vector aBn tai ngon cua vector aBt xs=xC+aBt(1); ys=yC+aBt(2); quiver(xs,ys,aBn(1),aBn(2),1,'k','LineWidth',2); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 177 %Ve vector aCBt tai ngon cua vector aBn xs=xs+aBn(1); ys=ys+aBn(2); quiver(xs,ys,aCBt(1),aCBt(2),1,'m','LineWidth',2); %Ve vector aCBn tai ngon cua vector aCBt xs=xs+aCBt(1); ys=ys+aCBt(2); quiver(xs,ys,aCBn(1),aCBn(2),1,'m','LineWidth',2,'MaxHeadSi ze',.8); %Ve vector aC tai C quiver(xC,yC,aC(1),aC(2),1,'r','LineWidth',2,'MaxHeadSize', .8); 8.4 ọ|i t p chư ng 8 ọ|i 8.1 Cơ c u kh p quay Cho cơ c u nh hình vẽ. C{c thẫng s c a cơ c u đ c cho nh sau ‚‛ = . m, ‛C = . m, CD=0.30m, CE = 0.15m, xA = yA = 0, xD = yD = 0.30m, 1 45 , kh}u d n quay v i v n t c góc khẫng đ i vòng/phút. ởính xB, yB, xC, yC, xE, yE, 2 , 3 ởính v n t c, gia t c c{c kh}u, kh p t i th i điểm 1 45 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 178 E 3 C y D 2 1 A 1 B x Hình 8. 9. Cơ cấu 4 khớp quay Đáp án rB 0.106066 0.106066 0 m T rC 0.0400698 0.449788 0 m T rE 0.0898952 0.524681 0 m T 2 -79.1312 3 -29.9532 1 0 0 6.28319 rad / s T 2 0 0 3.43639 rad / s T 3 0 0 3.43639 rad / s T 1 0 0 0 rad / s 2 T 2 0 0 8.97883 rad / s 2 T 3 0 0 22.6402 rad / s 2 T vB vB1 vB2 0.666432 0.666432 0 m / s T Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 179 vC 0.514728 0.893221 0 m / s T vE 0.772092 1.33983 0 m / s T aB aB1 aB2 4.18732 4.18732 0 m / s 2 T aC 0.321767 7.65368 0 m / s 2 T aE 0.48265 11.4805 0 m / s 2 T Ộ t s b|i t p ng d ng ỘỌTỗỌọ trong môn c h c lý thuy t ọ|i 8.2 Để rút m t chiếc đinh ra kh i g cần t{c dụng m t lực theo ph ơng ngang, do bị v ng v t c n ‚ nên cần bu c c{p v|o đinh v| t{c dụng m t lực ộ v| m t lực ớ nh hình vẽ. ợ{c định ớ để h p lực ở t{c dụng lên đinh chỉ theo ph ơng ngang, đồng th i tính h p lực ở. ỡẽ đồ thị biểu di n ớ v| ở theo d v i d nằm trong kho ng từ cm đến cm d d 10 cm 10 cm 15 cm 15 cm 180 N 180 N Đáp án: Hình 8. 10. Hình đề bài 8.2 Đáp án: C{c lực kéo d}y c{p v| h p lực ở biểu di n nh c}n bằng lực có thể viết nh sau T Fx P cos 180cos hình trên. ớh ơng trình 0 Fy P sin 180sin Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u C{c b 180 c tính trong M‚ởỗ‚‛ >>syms d P T >>theta = atan(10/d); >>beta = atan(15/d); >> pt1='P*cos(theta)+180*cos(beta)-T'; >> pt2='P*sin(theta)-180*sin(beta)'; >> ds=solve(pt1,pt2,'P,T'); >>ds.P ans = 180*sin(beta)/sin(theta) >>ds.T ans = 180*(sin(beta)*cos(theta)+cos(beta)*sin(theta))/sin(thet a) T P Hình 8. 11. Đồ thị bài 8.2 ỡẽ đồ thị c a ớ v| ở theo d >>d = 5: .5: 60; >> beta=atan(15./d); >> theta=atan(10./d); >>P = 180*sin(beta)./sin(theta); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 181 >>T = 180*(sin(beta).*cos(theta)+cos(beta).*sin(theta))./sin(t heta); >>plot(d, P, d, T); >>xlabel(‘d (cm)’); ylabel(‘Luc (N)’); ọ|i . ởrong điều ki n khẫng t i, xe có trọng l ng ộ đặt t i trọng t}m G. Đặt t i ỢL có trọng t}m phía sau c a b{nh xe sau m t đo n l| x cm . ởìm m i quan h gi a Ợ L v| x nếu biết ph n lực lên b{nh tr c v| b{nh sau l| bằng nhau. ỡẽ đồ thị biểu di nỢ L theo x v i x nằm trong kho ng đến cm. ‛iết a = cm, b = 170 cm. 16000N a b a b Hình 8. 12. Hình bài 8.3 Đáp án: ớh ơng trình c}n bằng moment v| ph ơng trình c}n bằng lực t{c dụng lên xe có thể viết nh sau M B 0 16000.170 N.285 WL x Fy 0 N N 16000 WL C{c b c gi i trong M‚ởỗ‚‛ nh sau >>syms x N W >> pt1 = '16000*170 - N*285 - W*x'; >> pt2 = 'N + N - 16000 - W'; >> ds=solve(pt1, pt2, 'W,N'); >>ds.W Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 182 ans = 880000/(285+2*x) >>x = 0: .5: 100; >>W = 880000./(285 + 2*x); >>plot(x,W); >> ylabel('Tai trong (N)'); xlabel('x (cm)'); 3200 3000 Tai trong (N) 2800 2600 2400 2200 2000 1800 0 20 40 60 80 100 x (cm) Hình 8. 13. Đồ thị bài 8.3 ọ|i 8.4 Cho cơ c u nh hình vẽ, cơ c u có thể chịu t i đến kộ t i C v i mọi gi{ trị Hình 8. 14. Hình bài 8.4 c a góc từ -90o đến o. ởính c{c lực t i ‚ v| ‛ theo , x{c định gi{ trị cực đ i c a c{c lực n|y v i góc t ơng ng. Đáp án: ớh ơng trình c}n bằng lực v| moment cho h viết nh sau Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 183 M A 5 B.(0.6) 3cos (1.2) 0 4 Fx Ax 5 B 3sin 0 3 Fy Ay 5 B 3cos 0 4 C{c b c tính trong M‚ởỗ‚‛ nh sau >> syms Ax Ay B theta >> pt1='0.8*B*0.6-3*cos(theta)*1.2'; >> pt2='Ax-0.6*B+3*sin(theta)'; >> pt3='Ay+0.8*B-3*cos(theta)'; >> ds=solve(pt1,pt2,pt3,'Ax,Ay,B'); 9 Ax cos 3sin 2 Ay 3cos B 15 cos 2 ỡẽ đồ thị c a ‛, ‚ theo >> theta=-pi/2:0.1:pi/2; >> B=15/2*cos(theta); >> Ax=9/2*cos(theta)-3*sin(theta); >> Ay=-3*cos(theta); >> A=sqrt(Ax.^2+Ay.^2); >> plot(theta,B,theta,A) >> xlabel('theta (rad)'); >> ylabel('Luc (kN)'); ởừ gi{ trị B 15 cos có thể d d|ng th y đ 2 c ‛ đ t cực đ i khi Gi{ trị cực đ i c a ‚ có thể đ c tìm nh sau tìm c{c gi{ trị c a đ o h|m c a ‚ nh n gi{ trị , kết h p v i đồ thị để suy ra cần tìm. 0 sao cho >> fA=sqrt(ds.Ax^2+ds.Ay^2); >> dfA=diff(fA); >> ntheta=solve(dfA) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 184 ntheta = 2.6779450445889871222483871518183 -.46364760900080611621425623146121 -2.0344439357957027354455779231010 1.1071487177940905030170654601785 B A Hình 8. 15. Đồ thị bài 8.4 Quan s{t đồ thị ta có thể th y đ c ‚ đ t cực đ i t i l}n c n c a 0.5 >> Amax=subs(fA,ntheta(2)) Amax = 6.0000 >> thetaA=double(ntheta(2)*180/pi) thetaA = -26.5651 >> Bmax=subs(ds.B,0) Bmax = 7.5000 ọ|i 8.5 M t v t nặng đ c gi c}n bằng trên mặt phẳng nghiêng m t góc so v i ph ơng ngang. ởính lực căng ở v| ph n lực ộ c a đ t t{c dụng lên v t theo . ỡ i gi{ trị n|o c a thì ở = ộ. ‛iết v t có kh i l ng kg. Đáp án: Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 185 C{c lực t{c dụng lên v t đ c biểu di n nh hình d i. ớh ơng trình c}n bằng lực chiếu lên c{c mặt phẳng song song v| vuẫng góc v i mặt phẳng nghiêng lần l t có d ng T θ N P Hình 8. 16. Hình bài 8.5 Fi P sin T 0 Fk N P cos 0 C{c b c gi i trong M‚ởỗ‚‛ nh sau >> syms P N T theta >> pt1='P*sin(theta)-T'; >> pt2='N-P*cos(theta)'; ởính gi{ trị c a ở v| ộ t i 30 >> ds=solve(pt1,pt2,'N,T'); >> N=subs(ds.N,{P,theta},{100,pi/6}); để ở = ộ >> T=subs(ds.T,{P,theta},{100,pi/6}); ởìm gi{ trị c a >> pt3=ds.N-ds.T; >> ntheta=solve(pt3,'theta') ntheta = 1/4*pi ọ|i . Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u H s ma s{t tr t đ 186 F / mg , trong đó c x{c định theo cẫng th c F (N) l| lực kéo t{c dụng lên v t, m (kg) l| kh i l ng c a v t, g = 9.81 m/s2 l| gia t c trọng tr ng. ‛ ng d i đ}y li t kê kết qu c{c lần thí nghi m v i c{c lực t{c dụng v| kh i l ng v t kh{c nhau. ợ{c định h s ma s{t trong m i lần kiểm tra v| h s ma s{t trung bình c a t t c c{c lần kiểm tra. ỗần Ỗh i l ng m kg ỗực kéo ố ộ 1 2 3 4 5 2 4 5 10 20 12.4 23.2 30.5 60.8 116.5 μ Đáp án: Hình 8. 17. Hình bài 8.6 Ỗhai b{o kh i l >>m = [2 4 >>F = [12.4 H s ma s{t tr ng v| lực theo vector 5 10 23.2 20]; 30.5 60.8 116.5]; t mu: >>mu = F./(9.81 * m) mu = 0.6320 H s ma s{t tr 0.5912 0.6218 0.6198 0.5938 t trung bình: >>mutb = mean(mu) mutb = 0.6117 ọ|i 8.7 M t ch t điểm đ c ném xu ng theo ph ơng thẳng đ ng v|o trong lòng m t ch t l ng v i v n t c ban đầu l| v 30(m / s) . ỏo lực c n c a ch t l ng, ch t điểm có gia t c đ a (0.7v3 )(m / s 2 ) . ỡẽ đồ thị v n t c theo th i gian v| quãng ng theo th i gian c a ch t điểm. Đáp án: Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 187 ớh ơng trình biểu di n v n t c v| quãng đ ng di chuyển c a ch t điểm theo th i gian có thể đ c tính bằng vi c gi i c{c ph ơng trình vi ph}n b c nh t sau: dv (0.7v3 ) dt v(0) 30 ds v s(0) 0 dt C{c b c gi i trong M‚ởỗ‚‛ nh sau >> v=dsolve('Dv + 0.7*v^3','v(0)=30') v = 30/(1260*t+1)^(1/2) >> s = dsolve('Ds - 30/(1260*t+1)^(1/2)','s(0)=0') s = 1/21*(1260*t+1)^(1/2)-1/21 Hình 8. 18. Đồ thị bài 8.7 ỡẽ đồ thị biểu di n v n t c, quãng đ 0 t 1.5 ng c a ch t điểm theo th i gian >>t = 0: 0.05: 1.5; >>vt = 30./(1260*t+1).^(1/2); >>st = (1/21)*(1260*t+1).^(1/2)-1/21; >> plot(t,vt) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 188 >> grid >> xlabel('Thoi gian (s)'); >> ylabel('Van toc (m/s)'); >>figure(2); >>plot(t,st); >>grid >> xlabel('Thoi gian (s)'); >> ylabel('Quang duong(m)'); ọ|i . ỡị trí c a m t ẫ tẫ đ c biểu di n b i h|m theo th i gian nh sau s 5t 3t 2 , vẽ đồ thị biểu di n vị trí, v n t c v| gia t c c a ẫ tẫ trong kho ng th i gian 0 t 10 (s). Đáp án: >> s=sym('5*t - 3*t^2'); >> v=diff(s,'t'); >> a=diff(v); >> st=inline(s) st = Inline function: st(t) = 5.*t - 3.*t.^2 >> vt=inline(v) vt = Inline function: vt(t) = 5-6.*t >> at=inline(a) at = Inline function: at(x) = -6 >> t=0:0.5:10; >> subplot(3,1,1) >> plot(t,st(t)) >> ylabel('Vi tri (m)'); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 189 >> subplot(3,1,2) >> plot(t,vt(t)) >> ylabel('Van toc (m/s)'); >> subplot(3,1,3) >> plot(t,at(t),'*') >> ylabel('Gia toc (m/s^2)'); >> xlabel('Thoi gian (t)'); Hình 8. 19. Đồ thị bài 8.8 ọ|i 8.9 Chuyển đ ng c a m t v t ném xiên đ c biểu di n nh trong hình vẽ. Trong đó, v n t c ban đầu v| góc nghiêng t o b i v n t c ban đầu v i ph ơng ngang đã biết. ỡiết h|m tính đ cao v| đ xa cực đ i c a chuyển đ ng ném xiên. Ở dụng h|m để tính hmax v| dmax khi v0 250m / s 40 Đáp án: Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 190 function [hmax, dmax] = nemxien(v0,theta) syms t td %Doi gia tri goc nhap vao tu do sang radian theta = theta*pi/180; %Tinh gia tri ban dau v0 theo hai phuong x, y v0x =v0*cos(theta); v0y = v0*sin(theta); %Viet phuong trinh tinh van toc hai phuong x, y theo t vy = v0y - 9.81*t; vx = v0x; %Phuong trinh bieu dien chuyen dong tren hai phuong x, y theo t y = v0y*t - 1/2*9.81*t^2; x = v0x*t; %Tim thoi gian vat dat do cao cuc dai thmax = solve(vy,'t'); hmax = double(subs(y,'t',thmax)); %Tim thoi gian vat dat do xa cuc dai td = solve(y,'t'); if double(td(1)) > 0 tdmax = td(1); else tdmax = td(2); end dmax = double(subs(x,'t',tdmax)); end Hình 8. 20. Hình bài 8.9 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 191 ởh l i h|m v i v0 250m / s 40 >>>> [h,d]=nemxien(250,40) h = 1.3162e+00 d = 6.2743e+003 ọ|i 8.10 M t ch t điểm kh i l ng kg đ c ném từ d i đ t theo ph ơng thẳng đ ng v i v n t c ban đầu m/s. ởìm đ cao cực đ i m| ch t điểm có thể đ t đ c biết lực c n khẫng khí t i mọi th i điểm l| 0.01v2 trong đó v l| v n t c t c th i c a ch t điểm. ỡẽ đồ thị biểu di n đ cao đ t đ c theo v n t c c a ch t điểm. Đáp án: Hình 8. 21. Hình bài 8.10 [p dụng định lu t II ộewton theo ph ơng thẳng đ ng Fy ma y F mg 0.01v2 mg dv 0.01v 2 mg ay dt m Ởinh viên có thể gi i b|i to{n theo ph ơng ph{p đã s dụng trong b|i II. . s dụng l nh dsolve để tìm c{c h|m v(t) v| s(t), sau đó vẽ đồ thị s(t) theo v(t) v i t l| vector có c{c phần t ch y từ đến tmax (tmax l| th i điểm v t đ t đ cao cực đ i, v n t c t c th i theo ph ơng thẳng đ ng c a ch t điểm bằng khẫng . ởrong b|i t p n|y sinh viên có thể s ode45 để gi i nh sau Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh dụng ph ơng ph{p s dùng h|m M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ớh}n tích đ ng học cơ c u 192 ds dv v , a dt dt ds dv vdv ds v mv ds v a a dv a 0.01v 2 mg Do a l| h|m theo v theo đầu b|i , ta có thể s dụng h|m ode45 để gi i nh sau: >> s0=0; >> v0=50; >> vspan = [v0 : -1 : 0]; >> ptvs=@(v,s) 10*v/(-0.01*v^2 - 10*9.81); >> [v,s]=ode45(ptvs,vspan,s0); >>grid >>xlabel(‘Do cao (m)’); ylabel(‘Van toc (m/s)’); 50 Van toc (m/s) 40 30 20 10 0 0 20 40 60 80 Do cao (m) 100 120 Hình 8. 22. Đồ thị bài 8.10 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng Chư ng . ỗÝ TồUỤ T ĐI U ỖồI ộ T 193 Đ ộỒ ởrong ch ơng n|y, sinh viên sẽ đ c gi i thi u m t s ph ơng ph{p để gi i c{c v n đề cơ b n trong lý thuyết điều khiển tự đ ng s dụng c{c l nh đ c x}y dựng sẵn trong M‚ởỗ‚‛ v| b cẫng cụ kh o s{t, thiết kế h th ng điều khiển. 9.1 ọi n đ i ỗaplace ‛ên c nh l nh root đã đ c gi i thi u ch ơng dùng để tìm nghi m c a đa th c đ c khai b{o d i d ng vector m| c{c phần t c a vector l| c{c h s c a ma tr n. ởrong mục n|y, chúng ta sẽ l|m quen v i m t l nh kh{c c a M‚ởỗ‚‛ đ c {p dụng để gi i c{c b|i to{n biến đ i ỗaplace trong lý thuyết điều khiển tự đ ng, đó l| l nh residue. ỗ nh residue cho phép khai triển ph}n th c c a đa th c t s B(s) v| đa th c m u s A(s) th|nh t ng c a c{c ph}n th c th|nh phần. Cú ph{p >>[R, P, K] = residue(B, A) ởr ng h p khẫng có nghi m lặp B( s ) R(1) R(2) R ( n) ... K ( s) A( s) s P(1) s P(2) s P ( n) ởrong đó R l| vector h s c a c{c ph}n th c th|nh phần, K l| vector h s c a ph}n th c B(s) khi b c c a đa th c B(S) l n hơn hoặc bằng b c c a đa th c A( s ) A(S), P l| vector ch a nghi m ởr m u s c a c{c ph}n th c th|nh phần. ng h p tồn t i nghi m lặp P( j ) ... P( j m 1) v i m l| s lần lặp, khi đó c{c ph}n th c th|nh phần sẽ bao gồm ... R( j ) R( j 1) R( j m 1) ... ... 2 s P( j ) ( s P( j )) ( s P(n)) m ỗ nh residue cễng đ c s dụng để biến đ i t ng c a c{c ph}n th c th|nh phần biểu di n b i c{c vector R, P, K th|nh ph}n th c c a đa th c ‛ v| ‚. >>[B, A] = residue(R, P, K) Ví dụ: ởìm biến đ i ng ởr c c a h|m L( f (t ))( s) 2 1 s 1 c khi s dụng l nh residue ta cần khai b{o hai đa th c ‚, ‛. >>B = 1; >>A = [1 0 -1]; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 194 >>[R, P, K] = residue(B, A) R = -0.5000 0.5000 P = -1 1 K = [ ] Ỗết qu tr về cho th y Ỗ l| m t m ng r ng, ph}n th c đã cho t ơng đ ơng v i: 0.5000 1 0.5000 s 1 s (1.0000) s 1.0000 2 Qua đó ta suy ra đ c biến đ i ng et e t c c a h|m ỗaplace đã cho l| 2 ‛ên c nh vi c s dụng l nh residue, biến đ i ỗaplace cễng có thể đ c tính to{n trong M‚ởỗ‚‛ s dụng b cẫng cụ biến ký hi u v i hai l nh laplace v| ilaplace. Ví dụ: ởìm biến đ i ỗaplace c a h|m f(t) sau đ}y f (t ) 1.25 3.5te2t 1.25e2t >>syms t s; >>f = -1.25 + 3.5*t*exp(-2*t) + 1.25*exp(-2*t); >>F = laplace(f, t, s) F = (s-5)/s/(s+2)^2 ở ơng đ ơng v i F ( s ) s 5 s( s 2)2 F(s) cễng có thể biểu di n d s dụng h|m pretty. i d ng d quan s{t nh trên trong M‚ởỗ‚‛ >>pretty(F) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 195 s - 5 ---------2 s (s + 2) Ỗhi cần tìm biến đ i ng c c a h|m F(s) ta có thể s dụng l nh ilaplace. >> Ft=ilaplace(F) Ft = -5/4+1/4*exp(-2*t)*(14*t+5) >> simplify(Ft) ans = -5/4+7/2*t*exp(-2*t)+5/4*exp(-2*t) >> pretty(ans) - 5/4 + 7/2 t exp(-2 t) + 5/4 exp(-2 t) ng dụng biến đổi Laplace để giải phương trình vi phân. Cho h th ng cơ khí nh hình d i K b y(t) m r(t) Hình 9. 1. Hệ thống lò xo vật nặng ởrong đó v t nặng chịu t{c đ ng c a m t lực r(t) = 1 v i t 0 , đ c gắn v i m t lò xo có h s k, h s ma s{t gi a t ng v| v t nặng l| b, vị trí c a v t nặng theo th i gian t biểu di n b i y(t). Gi s y(0) 0 , y '(0) 2 , m 1 , b 3 , k 2 Định lu t II ộewton viết cho h có d ng Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 196 d2 d m 2 y (t ) b y (t ) ky (t ) r (t ) dt dt d2 d y ( t ) 3 y(t ) 2 y(t ) 1(t ) dt dt 2 H|m 1(t)(unit step function) trong M‚ởỗ‚‛ có thể đ heaviside(t) Đ{p nh sau c biểu di n b i h|m ng y(t)c a h có thể gi i trong M‚ởỗ‚‛ {p dụng biến đ i ỗaplace %Khai bao cac bien syms Y s t; %Khai bao ham rt rt=heaviside(t); %Bien doi Laplace cua rt Rs=laplace(rt); %Bien doi Laplace cua D2y=s^2*Y(s)-s*Y(0)-Dy(0) Y2=s^2*Y-s*0-2; %Bien doi Laplace cua Dy=s*Y(s)-y(0) Y1=s*Y-0; %Bieu dien Laplace cua dap ung y(t) Ys=solve(Y2 + 3*Y1 + 2*Y – Rs, Y); yt=ilaplace(Ys); Ỗết qu tính: y (t ) 1 3 2t e e t 2 2 9.2 ọi n đ i z ‛ cẫng cụ biến ký hi u trong M‚ởỗ‚‛ cho phép ng i s dụng thực hi n c{c phép biến đ i tín hi u r i r c sang miền Z v| ng c l i v i c{c l nh ztrans v| iztrans. Cú pháp >>Fz = ztrans(f) ởrong đó Fz l| biến đ i z c a h|m ký hi u f Ví dụ: ởìm biến đ i z c a h|m sau. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng x ( n) 197 1 u ( n) 4n Ỗhai b{o biến ký hi u n: >>syms n Ỗhai b{o h|m f: >>f = (1/4^n)*heaviside(n); ởìm biến đ i z c a f: >>Fz=ztrans(f) Fz= 4*z/(4*z-1) Ví dụ: Tìm tín hi u x(n) biết X ( z) C{c b 2z 2z 1 c gi i b|i to{n trong M‚ởỗ‚‛ nh sau >>syms z; >>Xz = (2*z)/(2*z-1); >>xn = iztrans(Xz) xn = (1/2)^n ớhép biến đ i Z ng c cễng có thể đ c thực hi n trong M‚ởỗ‚‛ v i h|m residuez cho phép khai triển ph}n th c c a đa th c t s B(z) v| đa th c m u s A(z) th|nh c{c ph}n th c sơ c p, cú ph{p t ơng tự l nh residue. B( z ) r (1) r ( n) ... k (1) k (2) z 1 ... 1 1 A( z ) 1 p(1) z 1 p ( n) z ỗ uý đ}y B(z) v| A(z) biểu di n chiều gi m dần h s lễy thừa c a z. B( z ) b0 b1z 1 b2 z 2 ... bm z m A( z ) a0 a1z 1 a2 z 2 ... an z n Ví dụ: Tìm biến đ i Z ng X ( z) c c a tín hi u sau: 1 (1 z )(1 0.5 z 1) ỡiết l i X(z)d 1 i d ng lễy thừa khẫng }m c a z: Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 198 z2 X ( z) ( z 1)( z 0.5) C{c b c gi i b|i to{n trong M‚ởỗ‚‛ nh sau Ỗhai b{o biến ký hi u z: >>syms z; Ỗhai b{o đa th c t s v| m u s d i d ng vector ch a c{c h s : >>B = 1; >>A = [1 -1.5 0.5]; >>[R, P, K] = residuez(B, A) R = 2 -1 P = 1.0000 0.5000 K = [ ] ộh v y X(z)có thể đ nh sau X ( z) c khai triển th|nh t ng c a c{c ph}n th c sơ c p 2 1 1 1 z 1 0.5 z 1 Ỗh lễy thừa }m trong biểu th c: X ( z) 2z z z 1 z 0.5 ởra b ng để suy ra tín hi u cần tìm: x(n) 2u(n) (0.5)n u(n) Ỗiểm tra l i kết qu bằng l nh ztrans: >>syms n >>ztrans(2*heaviside(n) – (1/2)^n*heaviside(n)) ans = 2*z/(z-1)-2*z/(2*z-1) Vẽ đồ thị điểm cực – điểm không trong M“TL“” Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 199 ỗ nh zplane trong M‚ởỗ‚‛ cho phép ng i s dụng đồ thị điểm cực – điểm khẫng c a ph}n th c trong đó đa th c t s v| đa th c m u s đ c khai b{o d i d ng vector ch a c{c h s c a đa th c, c{c điểm cực đ c ký hi u trên đồ thị bằng điểm x, c{c điểm khẫng đ c ký hi u trên đồ thị bằng điểm o. ỡí dụ Vẽ đồ thị điểm cực – điểm khẫng. 1 z 1 z 2 2 H ( z) 3 2 1 z 1 z 2 5 25 C{c b c gi i trong M‚ởỗ‚‛ nh sau Ỗhai b{o đa th c t s ‛ v| đa th c m u s ‚. >>B = [1 1/2]; >>A = [2 3/5 2/25]; Ở dụng l nh zplane để vẽ đồ thị điểm cực – điểm khẫng >>zplane(B, A) Hình 9. 2. Đồ thị điểm cực điểm không 9.2 ợ}y d ng c{c h tuy n tính – dừng ởrong mục n|y, ng i đọc sẽ đ c gi i thi u c{c ph ơng th c mẫ t h tuyến tính dừng trong điều khiển t đ ng v i c{c mẫ hình t ơng ng v| c{c phép biến đ i từ mẫ hình n|y sang mẫ hình kh{c Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng - 200 Mẫ hình h|m truyền. Mẫ hình điểm khẫng – điểm cực. Mẫ hình khẫng gian tr ng th{i. 9.2.1 Ộô hình h|m truy n a. H có m t đầu v|o v| m t đầu ra H|m truyền đ c x}y dựng d i d ng m t ph}n th c bao gồm đa th c t s ‛ v| đa th c m u s ‚ s dụng l nh tf theo m t trong c{c cú ph{p sau >>sys = tf(B, A); >>sys = tf(B, A, ‘variable’, ‘p’); >>sys = tf(B, A, Ts); >>S = tf(‘s’); định nghĩa d i d ng h|m h u tỉ c a s >>Z = tf(‘z’,Ts); định nghĩa d i d ng h|m h u tỉ c a z ởrong đó sys l| h tuyến tính dừng B v| A l| c{c đa th c t s v| m u s có d ng B(s) bms m bm1s m1 ... b1s b0 A(s) an s n an1s n 1 ... a1s a0 v| đ c biểu di n d i d ng vector c a c{c h s th|nh phần. Ts l| chu kỳ l y m u c a h r i r c. variable định nghĩa biến biểu di n. Ví dụ: >>B1 = [1 2 2]; >>A1 = [1 2 2 >>B2 = [1 -1]; >>A2 = [1 3 >>B3 = [1 0]; >>A3 = [1 -1.5 2 1]; 1]; 0.5]; >>s1 = tf(B1, A1) Transfer function: Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 201 s^2 + 2 s + 2 --------------------s^3 + 2 s^2 + 2 s + 1 >>s2 = tf(B2, A2,’variable’,’p’) Transfer function: p - 1 --------------------p^3 + 3 p^2 + 2 p + 1 >>s3 = tf(B3, A3, 1) Transfer function: z ----------------z^2 - 1.5 z + 0.5 Sampling time: 1 ỡí dụ: Định nghĩa h|m truyền d i d ng h|m h u tỉ c a s hoặc z. >>s = tf(‘s’) Transfer function: s >> hs=(s^2+2*s+2)/(s^3+2*s^2+2*s+1) Transfer function: s^2 + 2 s + 2 --------------------s^3 + 2 s^2 + 2 s + 1 >>z = tf(‘z’, 1) Transfer function: z Sampling time: 1 >> hz=z/(z^2-1.5*z+0.5) Transfer function: z ----------------z^2 - 1.5 z + 0.5 Sampling time: 1 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 202 Đ i v i c{c h đã đ c định nghĩa bằng l nh tf nh trên, ta có thể s dụng l nh tfdata để tr về c{c vector biểu di n đa th c m u s A v| đa th c t s B theo cú ph{p: >>[B, A] = tfdata(sys, ‘v’); Ví dụ: >>[B1n, A1n] = tfdata(s1, ‘v’) B1n = 0 1 2 2 1 2 2 1 A1n = >>[B2n, A2n] = tfdata(s2, ‘v’) B2n = 0 0 1 -1 1 3 2 1 A2n = b. H có nhiều đầu v|o v| nhiều đầu ra Đ i v i h có nhiều đầu v|o v| nhiều đầu ra, ng b{o h trong M‚ởỗ‚‛ nh sau is dụng có thể khai >>sys = tf(num, den) >>sys = tf(num, den, ‘variable’, ‘p’) >>sys = tf(num, den, Ts) ởrong đó num, den l| hai tr ng kích c Ny × Nu v i Ny l| s đầu ra, Nu l| s đầu v|o, num ch a c{c đa th c t s , den ch a c{c đa th c m u s . C{c tr ng đ c khai b{o theo c u trúc sau } ỡí dụ: Xét h có hai đầu v|o v| hai đầu ra. >>nums2 = {2 [1 0.5]; [1 0] 2}; >>denum2 = {[4 4 1] [2 1 2]; [1 1] [1 2 1]}; >>Gp22 = tf(nums2, denum2) Transfer function from input 1 to output... 2 #1: --------------4 s^2 + 4 s + 1 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 203 s #2: ----s + 1 Transfer function from input 2 to output... s + 0.5 #1: ------------2 s^2 + s + 2 2 #2: ------------s^2 + 2 s + 1 9.2.2 Ộô hình đi m không – đi m c c a. H có m t đầu v|o v| m t đầu ra M t h tuyến tính cễng có thể đ c biểu di n theo mẫ hình điểm khẫng – điểm cực s dụng l nh zpk theo cú ph{p sau >>sys = zpk(Z, P, K); >>sys = zpk(Z, P, K, Ts); >>S = zpk(‘s’) mẫ hình điểm khẫng – điểm cực v i biến ỗaplace >>Z = zpk(‘z’, Ts) mẫ hình điểm khẫng – điểm cực v i biến z ởrong đó sys l| h tuyến tính. Z, P, K lần l t l| c{c vector điểm khẫng Z, điểm cực ớ v| h s khuếch đ i K. Ts l| chu kỳ l y m u. ỡí dụ >> Z1 = [ ]; >> P1 = [-1 -.5 -2]; >> K1 = [2]; >> sz1 = zpk(Z1, P1, K1) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 204 Zero/pole/gain: 2 ------------------(s+1) (s+0.5) (s+2) >> Z2 = [-0.5]; >> P2 = [-1+i -1-i -0.5]; >> K2 = 10; >> sz2 = zpk(Z2, P2, K2) Zero/pole/gain: 10 (s+0.5) ---------------------(s+0.5) (s^2 + 2s + 2) ở ơng tự nhu đ i v i mẫ hình h|m truyền, ta có thể s dụng l nh zpkdata để tr về c{c gi{ trị điểm khẫng, điểm cực v| h s khuếch đ i c a mẫ hình theo cú ph{p sau >>[Z, P, K] = zpkdata(sys, ‘v’) Ví dụ: >> [Z2n, P2n, K2n] = zpkdata(sz2, 'v') Z2n = -0.5000 P2n = -1.0000 + 1.0000i -1.0000 - 1.0000i -0.5000 K2n = 10 b. H có nhiều đầu v|o v| nhiều đầu ra Cú ph{p t ơng tự nh đ i v i h có m t đầu v|o v| m t đầu ra, l u ý đ}y Z v| P l| hai tr ng có kích c Ny × Nu trong đó Z{i, j} v| P{i, j} biểu di n c{c điểm khẫng v| điểm cực c a h|m truyền từ đầu v|o j t i đầu ra i; K l| ma tr n hai chiều ch a c{c h s khuếch đ i cho m i kênh v|o/ra. ỡí dụ: Xét mẫ hình ZPK có hai đầu ra v| m t đầu v|o. >>H = zpk({[ ]; [2 3]}, {1; [0 -1]}, [-5; 1]) Zero/pole/gain from input to output... Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 205 -5 #1: ----(s-1) (s-2) (s-3) #2: ----------s (s+1) 9.2.3 Ộô hình không gian tr ng th{i Mẫ hình tr ng th{i t ng qu{t viết d d x Ax Bu dt i d ng ma tr n y Cx Du ỗ nh ss trong M‚ởỗ‚‛ cho phép biểu di n h th ng theo mẫ hình khẫng gian tr ng th{i s dụng cú ph{p sau >>sys = ss(A, B, C, D) >>sys = ss(M, N, C, D, Ts) ởrong đó A, M l| ma tr n tr ng th{i c a h liên tục v| r i r c B, N l| ma tr n đầu v|o c a h liên tục v| r i r c C l| ma tr n đầu ra D l| ma tr n liên thẫng c a mẫ hình tr ng th{i Ts l| th i gian quét m u ỡí dụ ợét h ph ơng trình vi ph}n tuyến tính v i c{c biến tr ng th{i h1, h2, biến đầu v|o u v| biến đầu ra q. dh1 2h1 3h2 2v dt dh2 4h1 h2 v dt 1 q h1 2h2 v 2 H có thể đ c viết l i d i d ng ma tr n Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 206 d x Ax Bu dt y Cx Du v i c{c vector đầu v|o u, vector đầu ra y v| vector tr ng th{i x u v h x 1 h2 2 3 A 4 1 2 B 1 y q C 1 2 D 1 2 ởrong M‚ởỗ‚‛ ta có thể thiết l p mẫ hình khẫng gian tr ng th{i nh sau >>A = [-2 3; 4 >>B = [2; -1]; >>C = [1 -1]; -2]; >>D = [1/2]; >>ht_ss = ss(A, B, C, D) a = x1 x2 x1 -2 3 x2 4 -1 b = u1 x1 2 x2 -1 c = y1 x1 x2 1 -2 d = u1 y1 0.5 Continuous-time model. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 207 Ỗhi đã có mẫ hình khẫng gian tr ng th{i, ng i dùng có thể truy xu t l i c{c ma tr n th|nh phần A, B, C, Ds dụng l nh ssdata theo cú ph{p: >>[A, B, C, D] = ssdata(sys, ‘v’]; >>[M, N, C, D, Ts] . . Chuy n đ i gi a c{c mô hình Trong M‚ởỗ‚‛, vi c chuyển đ i từ mẫ hình n|y sang mẫ hình kh{c gi a c{c mẫ hình gi i thi u trong ch ơng n|y l| kh{ d d|ng, xét ví dụ sau Chuyển đ i từ mẫ hình khẫng gian tr ng th{i sang mẫ hình h|m truyền. ợét mẫ hình khẫng gian tr ng th{i gi i thi u mục 2.2.2, mẫ hình n|y có thể chuyển đ i sang mẫ hình h|m truyền s dụng l nh ss2tf theo cú ph{p sau >>[num, den] = ss2tf(A, B, C, D); ởrong đó gi{ trị tr về num, den lần l m u s c a mẫ hình h|m truyền. t l| c{c vector đa th c t s v| num = 0.5000 5.5000 -18.0000 den = 1 3 -10 >>F = tf(num, den) Transfer function: 0.5 s^2 + 5.5 s - 18 -------------------s^2 + 3 s – 10 ‛ên c nh đó M‚ởỗ‚‛ cễng cho phép chuyển đ i tự đ ng đ i t ng từ d ng mẫ hình n|y sang mẫ hình kh{c s dụng c{c l nh định nghĩa mẫ hình gi i thi u trên ts, zpk, ss. Ví dụ: >> F2 = tf(ht_ss) Transfer function: 0.5 s^2 + 5.5 s - 18 -------------------s^2 + 3 s – 10 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 208 9.2.5 Đặc tính th i gian tr trong h|m truy n Để thể hi n đặc tính th i gian tr trong c{c h|m truyền ta có thể đ a thêm tham s v|o l nh tf hoặc thay đ i thu c tính c a mẫ hình bằng c{ch s dụng l nh set nh trong hai ví dụ sau ỡí dụ: S dụng tham s trong l nh tf. >>Q = tf(num, den, ‘Inputdelay’, 2) Transfer function: 0.5 s^2 + 5.5 s - 18 exp(-2*s) * -------------------s^2 + 3 s – 10 ỡí dụ: S dụng l nh set để thay đ i thu c tính h|m truyền. >>set(Q, ‘Inputdelay’, 0.5) >>Q Transfer function: 0.5 s^2 + 5.5 s - 18 exp(-0.5*s) * -------------------s^2 + 3 s - 10 9.2.6 Ồhép n i c{c mô hình C{c mẫ hình h th ng tuyến tính – dừng có thể đ c ghép n i trong M‚ởỗ‚‛ theo c{c ph ơng th c n i tiếp l nh series , song song l nh parallel), ghép có ph n hồi l nh feedback). ỡí dụ: Ghép n i tiếp hai mẫ hình G v| G . >>G1 = tf([1], [10, 1]) Transfer function: 1 -------10 s + 1 >> G2 = tf([1, 2], [2, 3, 2]) Transfer function: s + 2 --------------2 s^2 + 3 s + 2 >>G3 = series(G1, G2) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 209 Transfer function: s + 2 -------------------------20 s^3 + 32 s^2 + 23 s + 2 ‛ên c nh đó M‚ởỗ‚‛ cễng cho phép ng i dùng s dụng m t s phép to{n cơ b n để thực hi n vi c ghép n i c{c mẫ hình nh phép c ng l nh + , phép trừ l nh - , phép nh}n l nh * , phép đ o l nh inv). ỡí dụ: So s{nh kết qu phép nh}n ghép n i G , G v i l nh series. >>G3m = G1*G2 Transfer function: s + 2 -------------------------20 s^3 + 32 s^2 + 23 s + 2 ỡí dụ: So s{nh kết qu tính hồi tiếp }m khi s dụng phép nh}n, phép đ o, phép c ng v| khi s dụng l nh feedback. >> G4=G1*inv(1+G1*G2) Transfer function: 20 s^3 + 32 s^2 + 23 s + 2 -------------------------------------200 s^4 + 340 s^3 + 272 s^2 + 64 s + 4 %Dua ve dang rut gon >> G4 = zpk(G4) Zero/pole/gain: 0.1 (s+0.1) (s^2 + 1.5s + 1) -----------------------------------------(s+0.2244) (s+0.1) (s^2 + 1.376s + 0.8913) % Su dung lenh feedback >> G4m=zpk(feedback(G1, G2)) Zero/pole/gain: 0.1 (s^2 + 1.5s + 1) ---------------------------------(s+0.2244) (s^2 + 1.376s + 0.8913) Có thể th y l| khi s dụng feedback thì M‚ởỗ‚‛ tự đ ng rút gọn (s + 0.1) th c t s v| đa th c m u s . Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh c đa M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 210 9.2.7 Ồi n đ ọode, ộyquist, ộichols v| đ{p ng c a h ởrong M‚ởỗ‚‛, ng i s dụng có thể vẽ gi n đồ ‛ode, ộyquist, ộichols c a h bằng c{ch s dụng c{c l nh bode(G1), nyquist(G1), nichols(G1) t ơng ng. Trong đó, G1 l| h cần kh o s{t, đ{p ng xung v| đ{p ng b c nh y c a h có thể tìm đ c thẫng qua c{c l nh impuls(G1) v| step(G1). ỡí dụ: Vẽ gi n đồ ‛ode v| ộyquist c a h sau >>Gp=zpk([-10],[-0.01],1) Zero/pole/gain: (s+10) -------(s+0.01) %Gian do Nyquist >>nyquist(Gp) %Gian do Bode >>bode(Gp) Nyquist Diagram 500 400 300 200 100 Imaginary Axis 0 -100 -200 -300 -400 -500 -200 0 200 400 600 800 1000 Real Axis Hình 9. 3. Đồ thị Nyquist c a Gp Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 211 Bode Diagram 60 40 Magnitude (dB) 20 0 0 Phase (deg) -45 -90 10 -4 10 -2 10 0 10 2 Frequency (rad/sec) Hình 9. 4. Đồ thị Bode c a Gp ỡí dụ: X{c định đ{p ng xung. Step Response 0.7 0.6 0.5 Amplitude 0.4 0.3 0.2 0.1 0 0 2 4 6 8 10 12 Time (sec) Hình 9. 5. Đáp ng bước nhảy c a PROCESS >>PROCESS = tf([1], [1 4 4 2]) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 212 Transfer function: 1 --------------------s^3 + 4 s^2 + 4 s + 2 >>step(PROCESS) 9.3 Tóm tắt chư ng 9 ọi n đ i ỗaplace v| bi n đ i z laplace ‛iến đ i ỗaplace thu n ilaplace ‛iến đ i ỗaplace ng heaviside(t) ‛iểu di n h|m 1(t) residue ớh}n tích đa th c h u tỉ th|nh t ng c{c đa th c th|nh phần ztrans ‛iến đ i z thu n iztrans ‛iến đ i z ng residuez Ỗhai triển đa th c ẩn z th|nh t ng c{c đa th c th|nh phần zplane ‛iểu di n đồ thị điểm cực – điểm khẫng c c ợ}y d ng c{c h tuy n tính – dừng tf Mẫ hình h|m truyền zpk Mẫ hình điểm khẫng – điểm cực – h s khuếch đ i ss Mẫ hình khẫng gian tr ng th{i tfdata ởr về c{c yếu t th|nh phần c a mẫ hình tf zpkdata ởr về c{c yếu t th|nh phần c a mẫ hình zpk ssdata ởr về c{c yếu t th|nh phần c a mẫ hình ss ss2tf Chuyển đ i từ mẫ hình khẫng gian tr ng th{i sang h|m truyền ss2zp Chuyển đ i từ mẫ hình khẫng gian tr ng th{i sang điểm khẫng – cực tf2ss Chuyển đ i từ mẫ hình h|m truyền sang khẫng gian tr ng th{i Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 213 tf2zp Chuyển đ i từ mẫ hình h|m truyền sang điểm khẫng - cực zp2ss Chuyển đ i từ mẫ hình điểm khẫng – cực sang khẫng gian tr ng th{i zp2tf Chuyển đ i từ mẫ hình điểm khẫng – cực sang h|m truyền series Ghép n i tiếp hai mẫ hình parallel Ghép song song hai mẫ hình feedback Ghép n i có hồi tiếp nyquist ỡẽ gi n đồ ộyquist bode ỡẽ gi n đồ ‛ode nichols ỡẽ gi n đồ ộichols impulse ởìm đ{p ng xung c a h step ởìm đ{p ng b c nh y c a h Bảng 9. 1. Tóm tắt các hàm sử dụng trong chương 9 9.4 ọ|i t p chư ng 9 ọ|i 9.1 ớh}n tích đa th c h u tỉ th|nh t ng c{c đa th c th|nh phần, tìm biến đ i ỗaplace ng c c a F1 ( s) 1 s 4 5s 3 7 s 2 Đáp án: >>b = [0 0 0 0 1]; >>a = [1 5 7 0 0]; >>[r, p, k] = residue(b,a) r = 0.0510 - 0.0648i 0.0510 + 0.0648i -0.1020 0.1429 p = Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 214 -2.5000 + 0.8660i -2.5000 - 0.8660i 0 0 k = [ ] ởừ kết qu tính trong M‚ởỗ‚‛ ta có thể biểu di n l i F1(s) nh sau F1 ( s) F1( s) r r1 r r 2 3 4 s p1 s p2 s p3 s p4 0.1020 0.1429 0.0510 0.0648i 0.0510 0.0648i s (2.5000 0.8660i) s (2.5000 0.8660i ) s0 s0 ‛iến đ i ỗaplace ng c c a F1(s) có thể tính nh sau >>syms s >>f1 = 1/(s^4 + 5*s^3 + 7*s^2); >>ilaplce(f1) ans = -5/49+1/7*t+1/147*exp(5/2*t)*(15*cos(1/2*3^(1/2)*t) +11*3^(1/2)*sin(1/2*3^(1/2)*t)) ọ|i . ởìm biến đ i ỗaplace c a c{c h|m sau a. f1(t ) 7t 3 cos(5t 60) f 2 (t ) 7te5t c. f3 (t ) 3cos(5t ) d. f 4 (t ) t sin(7t ) b. e. f5 (t ) 5e2t cos(5t ) Đáp án: a. >>syms t >>f1t = 7*t^3*cos(5*t + (pi/3)); >>f1s = laplace(f1t) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 215 f1s = 21*(s^4+625-150*s^220*3^(1/2)*s^3+500*3^(1/2)*s)/(s^2+25)^4 b. >>f2t = -7*t*exp(-5*t); >>f2s = laplace(f2t) f2s = -7/(s+5)^2 c. >>f3t = -3*cos(5*t); >>f3s = laplace(f3t) f3s = -3*s/(s^2+25) d. >>f4t = t*sin(7*t); >>f4s = laplace(f4t) f4s = 14*s/(s^2+49)^2 e. >>f5t = 5*exp(-2*t)*cos(5*t); >>f5s = laplace(f5t) f5s = 5*(s+2)/(s^2+4*s+29) ọ|i 9.3 ởìm biến đ i Z c a c{c h|m sau: 1 a. x1 (n) 2 2n b. x2 (n) e c. x3 (n) n n Đáp án: a. >>syms n Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 216 >>x1n = (1/2)^n; >>X1Z = ztrans(x1n) X1Z = 2*z/(2*z-1) b. >>x2n = exp(2*n); >>X2Z = ztrans(x2n) X2Z = z/exp(2)/(z/exp(2)-1) c. >>x3n = n; >>X3Z = ztrans(x3n) X3Z = z/(z-1)^2 ọ|i 9.4 a. Cho: X1 ( Z ) 5z 2z tìm biến đ i Z ng c. 2 ( z 1) ( z 0.5)2 10 z b. Cho: X 2 ( Z ) 2 tìm biến đ i Z ng c. z z 1 z2 c. X 3 ( Z ) s dụng l nh residuez ph}n tích X3(Z) th|nh c{c ( z 1)( z 0.5)2 đa th c h u tỉ th|nh phần rồi tìm biến đ i Z ng d. X 4 ( Z ) c. z ( z 1) s dụng l nh residuez ph}n tích X4(Z) th|nh ( z 1)( z 2 z 0.5) 2 c{c đa th c h u tỉ th|nh phần. Đáp án: a. >>syms z >>X1Z = 5*z/(z-1)^2 – 2*z/(z-0.5)^2; >>x1n = iztrans(X1Z) x1n = Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 217 5*n-4*(1/2)^n*n x1(n) 5nu(n) 4n(0.5)n u(n) b. >>X2Z = 10*z/(z^2 – z + 1); >>xn2 = iztrans(X2Z) x2n = 20/3*3^(1/2)*sin(1/3*pi*n) x2 (n) 11.547sin(n.60) c. >>a = conv(conv([1, -0.5], [1, -0.5]), [1, -1]); >>b = [0, 1]; >>[r, p, k] = residuez(b, a) r = 4.0000 -2.0000 - 0.0000i -2.0000 + 0.0000i p = 1.0000 0.5000 + 0.0000i 0.5000 - 0.0000i k = [ ] >>X3Z = 4/(1-z^(-1))-2/(1-0.5*z^(-1))-2/((1-0.5*z^(1))^2); >>x3n = iztrans(X3Z) >>x3n = 4-4*(1/2)^n-2*(1/2)^n*n X 3 (Z ) 4 2 2 1 1 1 z 1 0.5 z (1 0.5 z 1) 2 x3 (n) 4u(n) 4(0.5)n u(n) 2n(0.5) n u(n) d. >> b=conv([1 0 0],[1,1]); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 218 >> a=conv([1 -1],[1 -1 0.5]); >> [r,p,k]=residuez(b,a) r = 4.0000 -1.5000 - 0.5000i -1.5000 + 0.5000i p = 1.0000 0.5000 + 0.5000i 0.5000 - 0.5000i k = 0 X 4 (Z ) 4 1.5 0.5i 1.5 0.5i 1 z 1 1 (0.5 0.5i) z 1 1 (0.5 0.5i) z 1 ọ|i 9.5 ởìm h|m truyền cho c{c h sau K = 10, K1 = 100, K2 = 150). a. R(s) + 1 s ( s 1) K - Y(s) Hình 9. 6. Hình bài 9.5a b. R(s) + - 10 s( s 1) 20 Y(s) K1 K 2 s s c. Hình 9. 7. Hình bài 9.5b Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng R(s) 219 s 1 3 s s2 + - Y(s) Hình 9. 8. Hình bài 9.5c Đáp án: G(s) K 1 K s( s 1) s( s 1) ởa có Y (s) ( R(s) Y (s))G(s) K Y ( s) G( s) K K s( s 1) 2 R( s) 1 G ( s ) 1 K s ( s 1) K s s K s( s 1) a. Gọi C{c b c gi i trong M‚ởỗ‚‛ nh sau >>syms s >>Gs = tf(10, sym2poly(s*(s+1))); >>Hs = feedback(Gs, 1) Transfer function: 10 -----------s^2 + s + 10 b. H|m truyền h >>Gs = tf(10, sym2poly(s*(s+1)+20)); H|m truyền hồi tiếp >>Ms = tf([150, 100], [1, 0]); H|m truyền c a h >>Hs = feedback(Gs, Ms) Transfer function: 10 s Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 220 ------------------------s^3 + s^2 + 1520 s + 1000 c. H|m truyền h >>Gs = tf([1, 1], [1, 1, 0, 0]); H|m truyền c a h >>Hs = feedback(Gs, 1) Transfer function: s + 1 ----------------s^3 + s^2 + s + 1 ọ|i 9.6 ợ{c định vị trí c{c điểm cực c a h có h|m truyền nh sau H ( s) s3 6s 2 7 s 15 s5 s 4 5s3 9s 2 11s 12 Đáp án: C{c điểm cực l| nghi m c a đa th c m u s >>den = [1 1 -5 -9 11 -12]; >>A = roots(den) A = -2.1586 + 1.2396i -2.1586 - 1.2396i 2.3339 0.4917 + 0.7669i 0.4917 - 0.7669i ọ|i 9.7 ợ{c định vị trí c{c điểm cực c a h|m truyền đơn vị có h|m truyền h G( s) 150 ( s 5)( s 7)( s 9)( s 11) Đáp án: Ỗhai b{o h|m truyền h >>syms s >>Gs = tf(150, sym2poly((s+5)*(s+7)*(s+9)*(s+11))) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 221 Transfer function: 150 -------------------------------------s^4 + 32 s^3 + 374 s^2 + 1888 s + 3465 H|m truyền c a h >>Hs = feedback(Gs, 1) Transfer function: 150 -------------------------------------s^4 + 32 s^3 + 374 s^2 + 1888 s + 3615 ợ{c định c{c điểm cực >>pole(Hs) ans = -10.9673 + 1.9506i -10.9673 - 1.9506i -5.0327 + 1.9506i -5.0327 - 1.9506i ọ|i . ởìm đ{p ng đ i v i h|m b c đơn vị c a h sau R(s) + s 1 - 10 s2 Y(s) Hình 9. 9. Hình bài 9.8 Đáp án: >>syms s t >>G1 = tf([1, 1], [1]); >>G2 = tf([10], [1, 0, 0]); H|m truyền vòng h >>Gs = series(G1, G2); Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 222 H|m truyền c a h >>Hs = feedback(Gs, 1) Transfer function: 10 s + 10 --------------s^2 + 10 s + 10 Đ{p ng c a h >>step(Hs) Ởinh viên có thể tự kiểm tra bằng c{ch tìm h|m ỗaplace c a h|m b để suy ra gi{ trị c a đầu v|o R(s). c đơn vị >>Rs = laplace(heaviside(t)) Rs = 1/s ởính Y s theo H s v| ờ s đã biết: Y (s) R(s) H (s) Step Response 1.4 1.2 Amplitude 1 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 2.5 3 3.5 Time (sec) Hình 9. 10. Đồ thị bài 9.8 Đồ thị đ{p ng c a h chính l| đồ thị c a h|m y(t) v i y(t) l| biến đ i Laplace ng c c a Y s . ỗ u ý đ}y mu n thực hi n b c tính Y s theo ờ s v| H s sau đó biến đ i ỗaplace ng c để ra y t cần khai b{o l i biến Ys l| biểu th c biến ký hi u. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 223 ọ|i 9.9 ỏùng M‚ởỗ‚‛ vẽ biểu đồ ‛ode c a c{c h cho b i h|m truyền nh sau a. G ( s ) 1 2s 1 4 b. G ( s) 2 s s4 Đáp án: a. Ỗhai b{o h|m truyền c a h >>syms s >>G = tf([1], [2 1]) Transfer function: 1 ------2 s + 1 ỡẽ đồ thị ‛ode >>bode(G) Bode Diagram Magnitude (dB) 0 -10 -20 Phase (deg) -30 0 -45 -90 -2 10 -1 10 0 10 1 10 Frequency (rad/sec) Hình 9. 11. Đồ thị bài 9.9a b. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 224 Bode Diagram 20 Magnitude (dB) 0 -20 -40 -60 Phase (deg) -80 0 -45 -90 -135 -180 -1 0 10 10 1 10 2 10 Frequency (rad/sec) Hình 9. 12. Đồ thị bài 9.9b >>G = tf([4], [1 1 4]) Transfer function: 4 ----------s^2 + s + 4 >>bode(G) ọ|i 9.10 ỏùng M‚ởỗ‚‛ vẽ đồ thị ộyquist v| ộichols c a h cho b i h|m truyền sau G(s) k ( s 1)( s 3 7i)( s 3 7i) (k = 30) ( s 1)( s 3)( s 5)( s 3 7i)( s 3 7i) Đáp án: ỗ uýh đ}y cễng có thể đ c khai b{o theo vector điểm khẫng, điểm cực rồi đ a về mẫ hình h|m truyền bằng l nh zp2tf. Ỗhai b{o theo mẫ hình h|m truyền v i c{c đa th c t s v| đa th c m u s >>syms s Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 225 >>nG = sym2poly(30*(s+1)*(s+3+7i)*(s+3-7i)); >>dG = sym2poly((s+1)*(s+3)*(s+5)*(s+3+7i)*(s+3-7i)); >>G = tf(nG, dG) Nyquist Diagram 1.5 Imaginary Axis 1 0.5 0 -0.5 -1 -1.5 -1 -0.5 0 0.5 1 1.5 2 Real Axis Hình 9. 13. Đồ thị Nyquist c a hệ Nichols Chart 40 0.25 dB 0.5 dB 1 dB 3 dB 6 dB Open-Loop Gain (dB) 20 0 dB -1 dB -3 dB -6 dB 0 -12 dB -20 -20 dB -40 -40 dB -60 -60 dB -80 -360 -80 dB -315 -270 -225 -180 -135 -90 -45 0 Open-Loop Phase (deg) Hình 9. 14. Đồ thị Nichols c a hệ Ỗhai b{o theo điểm khẫng, điểm cực rồi đ a về mẫ hình h|m truyền, đa th c t s v| đa th c m u s đ c biểu di n d i d ng c{c vector h s >>z = [-1 -3-7i >>p = [-1 -3 -5 -3+7i]’; -3-7i -3+7i]’; >>k = 30; Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng . ỗý thuyết điều khiển tự đ ng 226 >>[num, den] = zp2tf(z, p, k) num = 0 1740 0 30 210 1920 15 135 675 1424 den = 1 870 Ởo s{nh h|m truyền khai b{o bằng l nh tf. >>G Transfer function: 30 s^3 + 210 s^2 + 1920 s + 1740 ----------------------------------------------s^5 + 15 s^4 + 135 s^3 + 675 s^2 + 1424 s + 870 ỡẽ đồ thị ộyquist: >>nyquist(G) Hoặc có thể s dụng l nh >>nyquist(num, den) ỡẽ đồ thị ộichol: >>nichol(G) >>ngrid Hoặc cễng có thể s dụng l nh >>nichols(num, den). Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB Ộ T Ở ọ C4ộỒ C TRONG MATLAB 227 ộỒ ỏ ộỒ CồUỤÊộ ỞỨU 1. Simulink Ởimulink l| mẫi tr ng sơ đồ kh i cho phép mẫ ph ng v| thiết kế c{c mẫ hình. ‛ên c nh ch c năng mẫ ph ng, Ởimulink h tr ng i dùng trong vi c thiết l p tự đ ng c{c đo n mã, kiểm th liên tục v| x{c nh n c{c h th ng nhúng. Ởimulink cho phép x lý đồ họa d i d ng sơ đồ kh i, thiết l p c{c th vi n kh i cễng nh cung c p gi i ph{p mẫ hình, mẫ ph ng h đ ng lực. Ởimulink đ h p v i M‚ởỗ‚‛ v| cho phép ng c tích i s dụng kết h p c{c thu t to{n M‚ởỗ‚‛ v|o c{c mẫ hình cễng nh xu t kết qu mẫ ph ng ra M‚ởỗ‚‛ cho c{c b c ph}n tích kh{c. M t s tính năng chính c a Ởimulink - ợ}y dựng mẫ hình h th ng phụ ph}n c p v i c{c kh i định nghĩa sẵn. - Mẫ ph ng đ ng lực mẫ hình v| kiểm tra kết q a d i d ng ch y mẫ ph ng. - ớh}n tích kết qu mẫ ph ng xem v| g l i mẫ ph ng - Qu n lý c{c dự {n d d|ng qu n lý c{c file cễng nh d li u th|nh phần c a c{c dự {n. - Ỗết n i v i phần c ng v i mẫ hình cho c{c b c kiểm tra th i gian thực v| ph{t triển c{c h th ng nhúng. Hình P. 1. Thư viện Simulink Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB 228 2. SimMechanics ỞimMechanics cung c p mẫi tr ng mẫ ph ng h nhiều v t cho c{c h th ng cơ khí ỏ nh robot, h th ng gi m xóc xe, c{c thiết bị x}y dựng cễng nh c{c h th ng h c{nh c a m{y bay. ộg i s dụng mẫ hình hóa h nhiều v t v i c{c kh i đ i di n cho c{c kh}u, kh p, liên kết, v| c{c lực th|nh phần, phần vi c tiếp theo c a ỞimMechanics l| thiết l p v| gi i c{c ph ơng trình đ ng học cho to|n b cơ h . Mẫ hình x}y dựng từ c{c ch ơng trình thiết kế v i sự h tr c a m{y tính C‚ỏ bao gồm c{c yếu t nh hình học ỏ đều có thể đ kh i l ng, qu{n tính, kh p, liên kết v| thiết kế c đ a v|o v| x ph ng ỏ c a mẫ hình đ ng lực học đ lý trong ỞimMechanics. M t mẫ c thiết l p m t c{ch tự đ ng cho phép ng i s dụng quan s{t chuyển đ ng c a mẫ hình. ộg i s dụng có thể thiết l p c{c thẫng s đặc tr ng cho mẫ hình v i c{c biến cễng nh c{c ph ơng ph{p biểu di n trong M‚ởỗ‚‛, đồng th i thiết kế h điều khiển cho mẫ hình h nhiều v t trong Ởimulink. ‛ên c nh đó, c{c th|nh phần đi n, th y lực, khí nén cễng có thể đ c đ a v|o mẫ hình cơ khí bằng Ởimscape v| kiểm tra t t c c{c th|nh phần trong m t mẫ hình mẫ ph ng riêng. Để triển khai c{c mẫ hình thiết kế trong c{c mẫi tr ng mẫ ph ng kh{c, bao gồm c kỹ thu t phần c ng trong vòng lặp HIỗ hardware-in-the-loop , ỞimMechanics h ng tr i dùng thiết l p c{c đo n mã C v i ỞimulinkCoder. Hình P. 2. Mô hình bộ phận hạ cánh c a máy bay trong SimMechanics Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB 229 3. SimElectronics ỞimỐlectronics cung c p c{c th vi n th|nh phần cho phép mẫ hình v| mẫ ph ng c{c h th ng đi n t v| cơ đi n t . C{c th vi n bao gồm mẫ hình b{n d n, đ ng cơ, c m biến v| c{c cơ c u ch p h|nh C{c mẫ hình n|y có thể đ c s dụng để ph{t triển c{c h cơ đi n ch p h|nh cễng nh x}y dựng c{c mẫ hình h|nh vi để đ{nh gi{ kiến trúc m ch t ơng tự trong Ởimulink. C{c mẫ hình ỞimỐlectronics có thể đ c s dụng để ph{t triển c{c thu t to{n điều khiển trong c{c h th ng đi n t v| cơ đi n t , bao gồm c đi n t th}n xe, cơ c u tùy đ ng m{y bay, h th ng khuếch đ i. C{c mẫ hình b{n d n bao gồm c{c nh h ng phi tuyến v| nhi t đ ng lực, cho phép ng i s dụng lựa chọn c{c yếu t trong c{c b khuếch đ i, b biến đ i t ơng tự - s , giai đo n khóa lặp, v| c{c m ch kh{c ở ơng tự nh ỞimMechanics, ỞimỐlectronics cễng h trong vi c đ a v|o c{c th|nh phần bên ngo|i nh triển khai c{c mẫ hình thiết kế trong c{c mẫi tr tr ng i dùng đi n, th y lực, khí nén v| ng mẫ ph ng kh{c v i Ởimscape v| ỞimulinkCoder. Hình P. 3. Mô hình cơ điện Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB 230 4. Symbolic Math Toolbox ‛ cẫng cụ biến ký hi u cung c p c{c h|m để gi i v| biến đ i c{c biểu th c to{n học biểu t ng v| c{c phép to{n s học. ộg i dùng có thể thực hi n c{c phép tính tích ph}n, đ o h|m, t i gi n, biến đ i v| gi i ph ơng trình. ộg i dùng đồng th i cễng có thể viết c{c đo n mã cho M‚ởỗ‚‛, Ởimulink, v| Ởimscape từ c{c biểu th c to{n học v i sự tr giúp c a b cẫng cụ n|y. ‛ cẫng cụ biến ký hi u s dụng ngẫn ng MuPAD, đ t{c v| x c t i u hóa cho c{c thao lý c{c biểu th c to{n học ký hi u. ộó cung c p c{c th vi n h|m c a MuPAD trong c{c lĩnh vực to{n học thẫng dụng nh gi i tích v| đ i s tuyến tính v| trong c{c lĩnh vực chuyên ng|nh nh lý thuyết s v| t h p. Ta cễng có thể viết tùy chỉnh ch c năng biểu t ng v| c{c th dụng MuPAD Notebook cho phép ng vi n bằng ngẫn ng Muớ‚ỏ. ng i dùng thiết l p c{c văn b n to{n học c{c đo n ký tự nhúng, đồ họa, v| b ký hi u to{n học. ộh ng văn b n n|y có thể đ c chia sẻ d i d ng HởMỗ hoặc ớỏố. giao di n Muớ‚ỏ ộotebook Hình P. 4. Giao diện MuPAD Notebook Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB 231 5. Control System Toolbox ‛ cẫng cụ h th ng điều khiển cung c p c{c thu t to{n tiêu chuẩn cẫng nghi p v| c{c ng dụng cho h th ng ph}n tích, thiết kế, v| điều chỉnh c{c h th ng điều khiển tuyến tính. ộg i s dụng có thể định nghĩa h th ng d i d ng h|m truyền, khẫng gian tr ng th{i, mẫ hình điểm khẫng – điểm cực, hoặc mẫ hình đ{p ng tần s . C{c ng dụng v| h|m đi kèm nh đ{p ng b phép ng c v| gi n đồ ‛ode, cho i s dụng hình dung h th ng trong miền th i gian v| miền tần s . ‛ cẫng cụ cễng cho phép điều chỉnh c{c thẫng s bù s dụng b điều chỉnh PID, quỹ tích nghi m s , thiết kế LQR/LQG, c{c kỹ thu t t ơng t{c v| tự đ ng kh{c. ộg i dùng có thể kiểm th thiết kế c a mình bằng c{ch kiểm tra th i gian qu{ đ , đ vọt l , th i gian x{c l p, đ dự tr biên đ v| biên pha cễng nh c{c yêu cầu kh{c. Hình P. 5. Giao diện Control and Estimation Tools Manager 6. Image Processing Toolbox ‛ cẫng cụ x lý nh cung c p m t t p h p to|n di n c{c thu t to{n tham kh o tiêu chuẩn, h|m v| c{c ng dụng phục vụ x lý nh, ph}n tích, trực quan, v| ph{t triển thu t to{n. ộg is dụng có thể thực hi n c{c b c tăng c ng nh, xóa m , ph{t hi n c{c đặc điểm, gi m nhi u, ph}n vùng nh, biến đ i hình học v| kết Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB h p đa nh. ộhiều ch c năng c a b cẫng cụ đ 232 c đa luồng để t n dụng u điểm c a c{c m{y tính đa lậi v| đa vi x lý. ‛ cẫng cụ x lý nh h tr l|m vi c trên m t t p h p đa d ng c a c{c lo i nguồn nh, bao gồm c gi i t ơng ph n đ ng m r ng, đ ph}n gi i m c gigapixel, chụp cắt l p Ch c năng trực quan cho phép ng i dùng quan s{t hình nh, kiểm tra c{c vùng c a c{c điểm nh, điều chỉnh đ t ơng ph n, t o đ ng nét hoặc biểu đồ, thao t{c trên c{c vùng quan t}m Region of Interests ROIs . ỡ i c{c thu t to{n m| b cẫng cụ h tr , ta có thể khẫi phục l i hình nh bị suy tho{i, ph{t hi n v| đo l ng c{c thu c tính, ph}n tích hình d ng v| kết c u cễng nh điều chỉnh c}n bằng m|u sắc. Hình P. 6. ng dụng Image Processing Toolbox trong việc xác định ô tô từ video giao thông Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ở|i li u tham kh o 233 TủI ỗI U TồỌỘ Ỗồ Ớ ộguy n ớhỂng Quang. M“TL“”&SIMULINK dành cho kỹ sư điều khiển tự động, ộh| xu t b n Ỗhoa học v| Ỗỹ thu t, H| ộ i, . Stormy Attaway. MATLAB: A Practical Introduction to Programming and Problem Solving, 2nd Edition. Butterworth - Heinemann Newton, MA, USA, 2011. Patrick Marchand, O. Thomas Holland. Graphics and GUIs with MATLAB. CRC Press, Inc. Boca Raton, FL, USA, 2003. Dan B. Marghitu. Mechanisms and Robots Analysis with MATLAB. Springer Publishing Company, Incorporated, 2009. R. V. Dukkipati. MATLAB: An Introduction with Applications. New Age International Publishers, New Delhi, India, 2010. R. V. Dukkipati, J. Srinivas. Solving Engineering Mechanics Problems with MATLAB. New Age International Publishers, New Delhi, India, 2007. R. V. Dukkipat. Analysis & Design of Control Systems Using MATLAB. New Age International (P) Limited New Delhi, India, 2009. Giáo trình M“TL“”: Interactive Course c a tr ng Eindhoven University of Technology, ồ| ỗan. Giáo trình M“TL“”: “ Guide to Using M“TL“” in Statics c a tr ng Arizona Ởtate University, Ộỹ. Giáo trình M“TL“”: Sample Problems from Solving Statics Problems in M“TL“” c a tr ng Ohio State University, Ộỹ. Giáo trình M“TL“” c a tr ng Texas Ọ&Ộ University, Ộỹ. Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ỏanh mục h|m 234 ỏỌộồ Ộ C ồủỘ conj(x), 61 A cross, 34, 167, 169 abs(x), 5, 61 angle(x), 61 D Ans, 13 det, 33, 38 area, 108, 109, 110, 115, 147, 151, 152 diag, 28, 38, 41 axis, 134, 138, 139, 145, 147, 150, 156, diff, 58, 59, 61, 65, 66, 75, 76, 77, 79, 157, 161, 162, 164, 165, 168, 171 81, 82, 83, 84, 178, 182 disp, 9, 10, 13, 48, 91, 94, 97, 111, 114, B bar, 147, 155, 157 bode, 204, 207, 217, 218 break, 124 118 dot, 33 E else, 112, 114, 115, 116, 117, 120, 124, C case, 118, 124 cell, 86, 88, 103, 104 celldisp, 90, 103 cellplot, 90, 103 cellstr, 91, 92, 103 clc, 7, 158 clear, 6, 17, 53, 71, 158 160, 162, 184 elseif, 112, 116, 117, 118, 124 end, 38, 90, 91, 97, 100, 110, 111, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 127, 160, 162, 184 error, 124 eye, 28, 38, 41 ezplot, 134, 135, 139, 147 close, 35, 42, 135, 147, 158, 165 close all, 135, 147, 158 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ỏanh mục h|m 235 if, 112, 113, 114, 115, 116, 117, 118, F 120, 124, 125, 126, 160, 162, 184 feedback, 202, 203, 207, 213, 214, 215, 216 fieldnames, 95, 103 figure, 135, 145, 147, 153, 182 fill, 147, 149, 150 ilaplace, 188, 189, 190, 206 imag(x), 61 impulse, 207 Inf, 13, 16, 33 input, 7, 13, 19, 109, 114, 115, 118, 123, for, 47, 91, 97, 100, 119, 120, 121, 124, 127, 162 fplot, 147, 155 fprintf, 10, 13, 18, 19, 20, 21, 48, 52, 94, 100, 109, 111, 112, 114, 115, 120, 121, 196, 197, 198 inv, 32, 33, 35, 38, 203 iscellstr, 92, 103 isstruct, 95, 103 iztrans, 190, 191, 206, 211 122, 123, 161 fscanf, 8, 9, 13, 17 L laplace, 188, 190, 206, 209, 216 G legend, 147 grid, 135, 147, 153, 182, 186 length, 30, 31, 90, 91, 92, 97, 100, 120, gtext, 139, 147 130 line, 138, 139, 147 H linspace, 24, 39, 138, 145, 149, 152, heaviside(t), 190, 206, 216 156, 157 help, 12, 75, 109, 110, 129 load, 7, 8, 13, 17, 106 hold, 131, 132, 135, 136, 138, 139, 147, loglog, 147 161, 162, 168, 171 lookfor, 12 I M i,j, 13, 144 mesh, 144, 145, 148, 153 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ỏanh mục h|m 236 meshgrid, 144, 145, 148, 152, 153, 154 Q N quad, 57, 58, 61, 64 quiver, 147, 167, 168, 171 NaN, 13, 16 nichols, 204, 207, 220 R nyquist, 204, 207, 220 rank, 33, 38 real(x), 61 O repmat, 96, 103 ode23, 59, 61, 66 ode45, 59, 60, 61, 66, 186 ones, 27, 38, 41, 43, 45 residue, 187, 188, 191, 206, 207 residuez, 191, 192, 206, 210, 211, 212 rref, 37, 38, 41, 42, 43, 45 otherwise, 118, 124 S P series, 202, 203, 207, 216 parallel, 202, 207 Pi, 13 plot, 129, 130, 131, 132, 134, 135, 136, 138, 139, 140, 141, 147, 149, 161, 162, 163, 164, 168, 171, 175, 176, 177, 182, 183 plot3, 140, 141, 142, 143, 148, 153 plotyy, 137, 147, 150 polar, 147, 149 poly2sym, 71, 78 polyder, 58, 61 prod, 120 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh shading, 145, 146, 148, 154, 155 size, 30, 31, 90, 127 ss, 199, 200, 201, 206 ss2tf, 201, 206 ss2zp, 206 ssdata, 201, 206 stairs, 147, 155, 156 step, 190, 204, 206, 207, 216 struct, 93, 96, 99, 101, 102, 103, 105 subplot, 145, 147, 183 sum, 74, 98, 100, 120 surf, 145, 146, 148, 152, 154, 155 M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t ỏanh mục h|m switch, 112, 114, 118, 124 237 whos, 6, 92 sym2poly, 71, 78, 213, 215, 219 X T xlabel, 135, 140, 142, 143, 145, 147, text, 7, 135, 139, 147, 161, 162 149, 152, 161, 162, 164, 168, 171, 175, tf, 194, 195, 196, 201, 202, 205, 206, 176, 177, 182, 183, 186 213, 214, 215, 217, 218, 219, 220 tf2ss, 206 tf2zp, 207 Y ylabel, 135, 140, 142, 143, 145, 147, tfdata, 196, 206 149, 150, 152, 161, 162, 164, 168, 171, title, 135, 142, 143, 147, 149, 161, 162, 175, 176, 177, 182, 183, 186 164, 168, 171 Z V zeros, 27, 38, 39, 41, 42, 104 view, 141, 142, 143, 148 W zp2ss, 207 zp2tf, 207, 218, 220 zpk, 197, 198, 201, 203, 204, 206 warning, 124 zpkdata, 198, 206 while, 119, 121, 122, 123, 124 zplane, 193, 206 who, 6 ztrans, 190, 191, 192, 206, 210 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t [...]... rong hinh chu nhat theo cm: Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1 M Đ U 24 Dien tich hinh chu nhat la S (met vuong) Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng ỡỐCởỚờ ỡủ M‚ ởờ ộ 25 Chư ng VỐCTỚờ Vủ ỘỌ Tờ ộ Vector v| ma tr n trong ỘỌTỗỌọ ỡector v| ma tr n trong M‚ởỗ‚‛ đ c dùng để l u m... 4]; >>v = [ 1, 2, 3, 4] v = Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng ỡỐCởỚờ ỡủ M‚ ởờ ộ 1 2 3 26 4 ởrong tr ng h p c{c phần t trong ma tr n có gi{ trị c{ch đều nhau, d u : có thể s dụng để thiết l p vector, trong tr ng h p n|y khẫng cần s dụng ngoặc vuẫng [ ] n a ỡí dụ >>v1 = 1 : 5 v1 = 1 2 3 4 5 ỏ u : cễng có thể s dụng để thiết l p vector m| c{c... ph n t trong m t vector Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Ch ơng ỡỐCởỚờ ỡủ M‚ ởờ ộ 27 ởrong M‚ởỗ‚‛, c{c phần t trong m t vector đ c đ{nh s lần l t theo th tự, bắt đầu từ ỡí dụ: Chỉ s c a c{c phần t trong vector newvec đ c thể hi n d i đ}y 1 2 3 4 5 6 7 8 9 10 1 3 5 7 9 3 6 9 12 15 M i phần t trong vector có thể truy xu t đến bằng c{ch s dụng tên... dùng để biểu di n c{c biến ỡí dụ % d sẽ s dụng m t kho ng r ng ký tự để biểu di n m t s nguyên, % s sẽ s dụng m t kho ng r ng ký tự để biểu di n m t x}u Đ i v i s thực, s ch s phần th p ph}n cễng đ c x{c định, ví dụ % f đồng nghĩa v i vi c Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1 M Đ U 11 M‚ởỗ‚‛ sẽ s dụng m t kho ng r ng ký tự bao gồm d u th... th o n i dung cho M-file, ng i s dụng có thể ch y lần l t t t c c{c n i dung có trong M-file bằng c{ch gậ tên c a file lên c a s l nh, hoặc có thể copy m t phần c a file rồi d{n lên c a s l nh để thực thi Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1 M Đ U 13 ch ơng m đầu n|y, t{c gi chỉ gi i thi u sơ l dụ đơn gi n, trong tr c về M-file v i m t s ví... thực hi n trong M‚ởỗ‚‛ nh sau 1 4 6 2 23 5 7 >>1/(2 + 3^2) + 4/5 * 6/7 ans = 0.7766 ởuy nhiên trong tr ng h p khẫng có ngoặc >>1/2 + 3^2 + 4/5 * 6/7 ans = 10.1857 ọ|i Tính to{n v i bi n G{n cho x gi{ trị , thực hi n c{c phép tính sau trong M‚ởỗ‚‛ x2 a) 6 2 b) e1 x x c) 1 x2 d) x 3 sin( x 2 ) e) x1 / 2 Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương... 4.56 Điền v|o ch tr ng trong l nh fprintf d i đ}y để có thể hiển thị c{c kết qu a) >>fprintf( 0123456789 0000012.340 b) >>fprintf( Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1 M Đ U 23 0123456789 12 c) >>fprintf( 0123456789 4.6 d) >>fprintf( 0123456789 4.6 ! G i ý Để chuyển đ i m t ch th|nh s t ơng ng trong b ng mã ‚ỞCII s dụng l nh double hoặc int32,... s{t sự kh{c bi t khi s dụng who v| whos : >>who Your variables are: a b c >>whos Name Size Bytes Class a 1x1 8 double b 1x1 8 double c 1x1 8 double Attributes ợóa c{c biến trong Ợorkspace bằng l nh clear: >>clear a >>a ??? Undefined function or variable ‘a’ >>clear all % xóa nốt các biến b và c Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1 M Đ U... ng, d u phẩy hoặc tab ốile có thể ch a c{c dòng chú thích trong M‚ởỗ‚‛ c{c dòng bắt đầu bằng ký tự % Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1 M Đ U 8 Cú ph{p >>load name.ext ởrong đó name.ext l| tên file ch a d li u cần t i ộếu trong phần tên file khẫng có phần m r ng ext, M‚ởỗ‚‛ sẽ tìm trong th mục hi n h|nh file có tên name.mat, nếu khẫng tìm... x{c định b i fid v|o trong Ợorkspace v| sắp xếp theo d ng c t Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t Chương 1 M Đ U 9 ỡí dụ file BDTH.txt có n i dung nh sau: 10 7 5 4 3 >>fid 8 8.8 A 9 7.6 B 7 6.2 C 5 4.6 D 3 3 F = fopen(‘BDTH.txt’); >>B=fscanf(fid,’%d %d %f %c’,[4 inf]) l u ma tr n trong file ‛ỏởH.txt v|o ma tr n ‛ có v i s c t trong ma tr n g c h|ng ... aij bij Trong MATLAB, Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng Cơ kỹ thu t Ch ơng ỡỐCởỚờ ỡủ M‚ ởờ ộ 34 phép c ng hai ma tr n đ c thực thi s dụng phép to{n... dụng chuyên s}u ởoolbox , m t s b cẫng cụ ph biến đ c gi i thi u tóm tắt phần phụ lục Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng Cơ kỹ thu t Chương M Đ U ớồ ộ I MATLAB. .. vòng lặp Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng Cơ kỹ thu t Chương M Đ U Ỗhi mu n xóa m t hay nhiều biến, ta s dụng l nh clear v i c{c cú ph{p thẫng dụng nh sau