Bài giảng Matlab ứng dụng thiết kế – điều khiển
BIỂU THỨC (EXPRESSION)
? Biến số ( variables)
? Số (Numbers)
? Toán tử ( Operaters)
? Hàm ( Functions)
- tối đa 19 ký tự có nghĩa
- phân biệt giữa chữ hoa và chữ thường.
- bắt đầu bằng một từ theo sau là từ hay số
hoặc dấu (_).
- biến tòan cục (global) tác dụng trong
tòan chương trình.
- biến cục bộ (local) tác dụng trong nội tại
hàm (function)
- một số biến đặc biệt: pi, ans,
Biến (Variables)
? Kiểm tra biến (who và whos)
? Xóa biến (clear và clear all)
DATA TYPES
Int8,uint8,int16,int32 số nguyên interger.
Single,double: kiểu số thực.
Logical: kiểu true,false.
Char: kiểu ký tự.
String: kiểu ký tự.
Array: a(1),a(0), .
Ví dụ:
Str=‘hello world’;
Str(2)=‘ e’.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Matlab ứng dụng thiết kế – điều khiển", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Matlab ứng dụng thiết kế – điều khiển
ÄP 1.SLIDE BÀI GIẢNG . 2.SÁCH MATLAB CƠ SỞ. ĐÁNH GIÁ HK HÈÙ 1.Thực hành Trên lớp : 10%. 2. kiểm tra : 10%. 2.Thi cuối kỳ : 80%. Thời gian : 19/7 - 10/8/2016. NỘI DUNG PHẦN I: MATLAB CĂN BẢN. PHẦN II: LẬP TRÌNH TRONG MATLAB. PHẦN III: GUIDE TRONG MATLAB - ỨNG DỤNG TRONG ĐIỀU KHIỂN. PHẦN I- MATLAB CĂN BẢN MATLAB CĂN BẢN I. BIỂU THỨC (EXPRESSION) . Biến số ( variables) . Số (Numbers) . Toán tử ( Operaters) . Hàm ( Functions) - tối đa 19 ký tự có nghĩa - phân biệt giữa chữ hoa và chữ thường. Biến (Variables) - bắt đầu bằng một từ theo sau là từ hay số hoặc dấu (_). - biến tòan cục (global) tác dụng trong tòan chương trình. - biến cục bộ (local) tác dụng trong nội tại hàm (function) - một số biến đặc biệt: pi, ans, Kiểm tra biến (who và whos) Xóa biến (clear và clear all) DATA TYPES Int8,uint8,int16,int32số nguyên interger. Single,double: kiểu số thực. Logical: kiểu true,false. Char: kiểu ký tự. String: kiểu ký tự. Array: a(1),a(0),. Ví dụ: Str=‘hello world’; Str(2)=‘ e’. DATA TYPES CONVERSION Char(): chuyển sang kiểu ký tự. Int2str(): chuyển số sang chuỗi. Num2str(): chuyển integer sang chuỗi Str2num(): chuổi sang số. Num2bin(): số sang mã nhị phân. Dec2bin(): chuyển số sang nhị phân Ischar(): kiểm tra phải ký tự. Isinteger():kiem tra so nguyen Islogical():kiem tra bien logic. Matlab command Clc: xóa màn hình. Clear all: xóa tất cả các biến. Global: khai báo biến toàn cục. Quit: thoát matlab. Who: liệt kê tất cả biến hiện có Whos: liệt kê biến , kiểu biến. INPUT, OUTPUT COMMAND Disp: hiển thị ra comand matlab. Input: nhận dữ liệu từ command matlab. sprintf: dinh dang chuoi xuat ra man hinh. Format : dinh dang dữ liệu . Các kiểu dữ liệu format: Short,long,short e,long e,rat MATLAB CĂN BẢN 1. Số (Numbers) Tất cả những con số đều được lưu kiểu định dạng (format) Dùng hàm format để định dạng kiểu số: format (định dạng) >> b=3/26; >> format long; b >> format +; b b = b = 0.11538461538462 + >> format short e; b >> format rat; b b = b = 1.1538e-001 3/26 >> format bank; b >> format short; b b = b = 0.12 0.1154 >> format short eng; b >> format long eng; b b = b = 115.3846e-003 115.384615384615e-003>> >> format hex; b b = 3fbd89d89d89d89e MATLAB CĂN BẢN 2. Toán tử (operaters) (+, -, *, /, \,^,’) . Các biến không cần khai báo trước. . Các ký tự thường và in là phân biệt. . Kết thúc câu lệnh với ‚;‛ không hiển thị kết qủa câu lệnh. . Biến mặc nhiên ‚ans‛ . .Thứ tự tính toan nhu thong thuong:nhân chia trước , cộng trừ sau.. 2. Toán tử (operaters) (+, -, *, /, \,^,’) To¸n tư quan hƯ ý nghÜa < Nhá h¬n vd A<B > Lín h¬n vd A>B <= Nhá h¬n hoỈc b»ng A<=B >= Lín h¬n hoỈc b»ng A>=B == B»ng vd A==B ~= Kh«ng b»ng vd A~=B Toán tử (operaters) To¸n tư logic ý nghÜa & Vµ vd A&B | HoỈc vd A|B ~ §¶o vd ~A operators operator Miêu tả + Phép cộng - Trừ * nhân .* Nhân ma trận / chia ./ Chia phải 2 ma trận ^ Lũy thừa .^ Lũy thừa ma trận ‘ Tranpose MATLAB CĂN BẢN 3. Hàm cơ bản (basis functions) abs, sqrt, exp, sin, Tên hàm ý nghĩa Sin Hàm sin Cos Hàm cos Tan Hàm tan Asin acsin Acos accos Atan arctg Exp Hàm e mũ Log Logarit co so e log10 Logarit co so 10 sqrt(x) Can bac 2 MA TRẬN TRONG MATLAB Cách Khai báo ma trận: A=[2 3;4 5]; . ‚;‛ có nghĩa là chuyển sang hàng kế tiếp. B=[2 3 4;4 5 6;6 7 8]. . ‚,‛ hay ‚ ‚ phân cách giữa các phần tử. >> t = 1:5 t = 1 2 3 4 5 >> row = A(1,:) row = 1 2 3 >> col = A(:,1) col = 1 4 7 >> 1: 0.3:2 ans = 1 1.3000 1.6000 1.9000 MA TRẬN TRONG MATLAB Phép tính Chú thích +, - Cộng hoặc trừ hai ma trận cùng kích thước A*B Nhân hai ma trận A và B A/B Chia hai ma trận (chia phải) A và B A\B Chia trái hai ma trận B và A A.*B Nhân từng phần tử của hai ma trận A và B A./B Chia từng phần tử của hai ma trận A và B A.\B Chia từng phần tử của hai ma trận B và A .^ Mũ cho từng phần tử của mảng MA TRẬN TRONG MATLAB >> D=[A C] >> A=[1 2 3;4 5 6;7 8 9] D = A = 1 2 3 -4 2 3 1 2 3 4 5 10 1 2 1 4 5 6 7 8 9 2 5 6 7 8 9 >> D(5) >> A(2,3)=10 ans = A = 5 1 2 3 >> D(4,5) 4 5 10 ??? Index exceeds matrix dimensions. 7 8 9 >> X=D >> B=A(2,1) X = B = 1 2 3 -4 2 3 4 4 5 10 1 2 1 >> C=[-4 2 3;1 2 1;2 5 6] 7 8 9 2 5 6 C = >> X(2,6) -4 2 3 ans = 1 2 1 1 2 5 6 >> X(2,:) ans = 4 5 10 1 2 1 ĐỒ HỌA TRONG MATLAB Đồ họa trong Matlab Cây thư mục quản lý đối tượng trong Matlab: Figure Axes Uicontrol Uimenu Uicontextmenu Image Light Line Patch Rectangle Surface Text ĐỒ HỌA TRONG MATLAB Bước MATLAB code X= 0:0.1:2*pi; 1. Chuẩn bị dữ liệu Y= sin(X)=f(x). 2. Chọn cửa sổ và vị trí của đối figure(‘Name’,’Hinh sine’); tượng đồ họa trong cửa sổ. subplot(2,2,1); 3. Gọi hàm vẽ đồ thị h = plot(X,Y); 4. Xác định thuộc tính cho hình set(h, ‘LineStyle’,’- như kiểu đường, màu sắc, ‘,’Color’,’r’) 5. Xác định các thuộc tính của axis, axis([-1 6 -1.2 1.2]); axes, lưới vẽ, grid on; xlabel(‘X’); 6. Chú thích cho đồ thị: labels, ylabel(‘Y=SIN(X)’); legend, text, title(‘Đồ thị hình sine’); 7. Xuất kết quả ĐỒ HỌA TRONG MATLAB Các lệnh vẽ cơ bản: Tên hàm Mô tả hàm plot Vẽ dữ liệu 2D với tỉ lệ tuyến tính cho các trục tọa độ plot3 Vẽ dữ liệu 3D với tỉ lệ tuyến tính cho các trục tọa độ line Vẽ đường thẳng đi qua các điểm dữ liệu loglog Vẽ với tỉ lệ logarithmic cho các trục tọa độ semilogx Vẽ với tỉ lệ logarithmic cho trục x và tỉ lệ tuyến tính cho trục y semilogy Vẽ với tỉ lệ logarithmic cho trục y và tỉ lệ tuyến tính cho trục x plotyy Vẽ đồ thị với trục y ở bên trái và bên phải ĐỒ HỌA TRONG MATLAB Lệnh plot Cú pháp Mô tả Vẽ đồ thị với hoành độ là chỉ số plot(Y) của phần tử, tung độ là giá trị của phần tử tương ứng Vẽ đồ thị bằng cách sử dụng các plot(X1,Y1,...) đường thẳng nối từng cặp dữ liệu X1(i) và Y1(i) Vẽ đồ thị và định tính chất cho tất plot(X1,Y1,LineSpec,...) cả các đường thẳng Vẽ có định tính chất cho các đối plot(...,'PropertyName',PropertyValue,...) tượng h = plot(...) Trả về giá trị quản lý đối tượng vẽ ĐỒ HỌA TRONG MATLAB t = 0:pi/100:2*pi; y = sin(t); y2 = sin(t-0.25); y3 = sin(t-0.5); plot(t,y,'-',t,y2,'--',t,y3,':') Kí hiệu Kiểu đường Ví dụ solid line (Mặc - định) -- dashed line : dotted line -. dash-dot line ĐỒ HỌA TRONG MATLAB LineWidth: plot(X,Y,’LineWidth’,2) Giá trị 1 3 5 LineWidth Hình ĐỒ HỌA TRONG MATLAB Color: plot(X,Y,’Color’,[0.1 0.5 0.7]), plot(X,Y,’Color’,’y’) Cách khai báo giá trị màu cho đối tượng trong Matlab o Nhập giá trị màu RGB là vector hàng 3 phần tử o Nhập tên của màu x = 0:pi/15:4*pi; y1 = exp(2*cos(x)); y2 = exp(2*sin(x)); plot(x,y1,'-*r',x,y2,'-.og','linewidth',2) 8 7 6 5 4 3 2 1 00 2 4 6 8 10 12 14 ĐỒ HỌA TRONG MATLAB Marker: plot(X,Y,’o’) Kí hiệu Ý nghĩa Một số loại Marker: Định giá trị màu MarkerEdgeColor cho đường viền Kí hiệu Ý nghĩa của Marker + Dấu cộng Định giá trị màu o Hình tròn MarkerFaceColor cho bề mặt của Marker * Dấu hoa thị MarkerSize Định độ lớn cho . Điểm Marker x Dấu chéo nhau x = 0:pi/15:4*pi; y = exp(2*cos(x)); s Hình vuông plot(x,y,'r+') d Hình thoi 8 ^ Tam giác trên 7 v Tam giác dưới 6 > Tam giác bên phải 5 4 < Tam giác bên trái 3 p Sao năm cạnh 2 h Sao sáu cạnh 1 00 2 4 6 8 10 12 14 ĐỒ HỌA TRONG MATLAB Một số lệnh phụ trợ trong đồ họa Lệnh Giá trị Mô tả grid on, off Bật hay tắt lưới vẽ hold on, off Giữ lại tất cả các đối tượng vẽ axes Tạo hệ trục tọa độ axis [Xmin Xmax Ymin Ymax] Định giá trị giới hạn cho các trục tọa độ Xlabel, Ylabel Chuỗi kí tự Ghi chú các trục tọa độ Legend Chuỗi kí tự Ghi chú các dữ liệu Title Chuỗi kí tự Định tiêu đề cho hình vẽ cla Xoá tất cả đối tượng trên axes ĐỒ HỌA TRONG MATLAB Lệnh Line Cú pháp Mô tả line(X,Y) Vẽ đoạn thẳng đi qua các điểm dữ liệu trong mặt phẳng OXY line(X,Y,Z) Vẽ đoạn thẳng đi qua các điểm dữ liệu trong mặt phẳng OXYZ line(X,Y,Z,'PropertyName',PropertyValue,...) Định giá trị cho các thuộc tính của đối tượng h = line(...) Trả về giá trị của biến quản lý đối tượng ĐỒ HỌA TRONG MATLAB Lệnh Line clear all; clc; close all; t = 0:pi/20:2*pi; hline1 = plot(t,sin(t),'g','LineWidth',2); hline2 = line(t+.6,sin(t),'LineWidth',4,'Color',[.5 .2 .2]); set(gca,'Children',[hline1 hline2]) 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 7 PHẦN II- LẬP TRÌNH TRONG MATLAB LẬP TRÌNH VỚI MATLAB Lập trình với Matlab Matlab cho phép lập trình theo hai hình thức: SCRIPTS và function Là hình thức đơn giản nhất của M-file, nó không có thông số vào và ra. Là tập hợp các lệnh và hàm của Matlab. Tất cả các biến tạo ra trong Scripts đều có thể sử dụng sau khi Scripts kết thúc. Scripts ----------------------------------------------------------------- M-file: vidu.m x= 0:0.01:2*pi; y=sin(x); plot(x,y) Là Scripts tuy nhiên có thêm đối số vào (input arguments) và đối số đầu ra (output argument). Tất cả các biến hoạt động trong một Workspace riêng. Biến function trong function chỉ là biến cục bộ. ----------------------------------------------------------------- M-file: doido.m function rad = doido(do) rad=do*pi/180; MATLAB CĂN BẢN 8. Lập trình với Matlab Hình thức khai báo hàm - Từ khoá function bắt buộc phải khai báo. - Thông số đầu ra: nếu có nhiều giá trị trả về, các thông số này được đặt trong dấu ‚[ ]‛. Nếu không có giá trị trả về ta có thể để trống hay để dấu []. - Tên hàm -Thông số đầu vào được khai báo trong dấu () - Biến toàn cục và địa phương Ví dụ1 : lập trình 1 hàm cộng , luu file cong.m de tinh tổng 2 số. function tong = cong(x,y) Tong = x+y; End. Vidu 2: Lập hàm tính tốn nhiều thơng số đầu ra tính cơng , tru ,nhan, chia cho 2 so x,y Function [a,b,c,d]= pheptoan(x,y); MATLAB CĂN BẢN 8. Cấu trúc điều kiện Toán tử Ý nghĩa Cấu trúc điều kiện: if < Nhỏ hơn <= Nhỏ hơn hoặc bằng if (biểu thức logic) nhóm lệnh > Lớn hơn end >= Lớn hơn hoặc bằng == Bằng nhau ~= Không bằng if (biểu thức logic) nhóm lệnh 1 else nhóm lệnh 2 end MATLAB CĂN BẢN 8. Cấu trúc điều kiện Cấu trúc điều kiện: ifend if (biểu thức logic) nhóm lệnh 1 elseif nhóm lệnh 2 else nhóm lệnh 3 end Ví dụ: Tìm nghiệm phương trình bậc 2 nhập vào a,b,c. %tim nghiem phuong trinh bac 2 % lap trinh th.s nguyen tan phuc a=input('nhap a '); b=input('nhap b '); c=input('nhap c '); delta=b^2-4*a*c; if delta<0 disp(' vo nghiem '); elseif delta ==0 disp(' nghiem '); disp(-b/(2*a)); else disp(' nghiem 1 '); disp((-b+sqrt(delta))/2); disp(' nghiem 2 '); disp((-b-sqrt(delta))/2); end MATLAB CĂN BẢN 8. Cấu trúc điều kiện Cấu trúc điều kiện: switch case switch (biểu thức điều kiện) case (giá trị 1 biểu thức) nhóm lệnh 1 otherwise nhóm lệnh 2 end Ví dụ: tạo một menu lựa chọn chon = input(‘Nhap vao lua chon cua ban, chon= ’) Switch chon case 1 disp(‘ menu ve do thi ’); case 2 disp(‘ menu noi suy da thuc ’); otherwise disp(‘thoat khoi chuong trinh ’); end MATLAB CĂN BẢN 8. Cấu trúc lặp có điều kiện Cấu trúc lặp có điều kiện: while while (biểu thức điều kiện) nhóm lệnh end Ví dụ: yêu cầu nhập vào giá trị cho biến x. việc nhập chỉ kết thúc khi x có giá dương a= input(‘Nhap vao gia tri a: ’) while a<=0 disp(‘a lon hon khong ’); a= input(‘Nhap vao gia tri a: ’) end Tính tổng của chuỗi: % tính tong chuoi tu o den n.. n=input('nhap n '); i=0; tong=0; while (i<=n) tong=tong+1/(i^2+1); i=i+1; end disp('tong '); disp(tong); MATLAB CĂN BẢN 9. Cấu trúc lặp Cấu trúc lặp: for for biến = biểu thức nhóm lệnh end 1.Viết chương trình nhập số n và tính tổng từ 1 đến n. 2. Viết chương trình nhập vào n số, in ra số lớn nhất, số bé nhất. LƯnh break : T¸c dơng ®iỊu khiĨn chương tr×nh nh¶y ra khái vßng lỈp for.. hay while gÇn nã nhÊt. Continue: thực thi tiếp cac lệnh sau vong lặp. Biến tồn cục : global x,y,z..cĩ gi trị trong tất cả chương trinh. Lưu ý: các biến khai báo trong hàm chỉ cĩ giá trị cục bộ trong hàm .. PHẦN III- TẠO GIAO DIỆN TRONG MATLAB --------- GUIDE IN MATLAB 1.MỞ PHẦN MỀM Mở phần mềm, gõ lệnh sau vào command>>guide Create New GUI: Tạo một hộp thoại GUI mới: Blank GUI (Default): Hộp thoại GUI trống khơng cĩ điều khiển unicontrol nào cả. * GUI With Unicontol: Hộp thoại GUI với vài unicontrol như button,, chương trình cĩ thể chạy ngay. * GUI With Axes Menu: Hộp thoại với một unicontrol axse và button, các menu để hiển thị đồ thị. * Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No. Open Existing GUI: mở hộp thoại project cĩ sẵn • Push Button: giống như nút command button trong VB. Là các nút bấm như nút OK,Cancel,.. Slider: Thanh trược cĩ một con trược chạy trên đĩ. Radio Button: Nút nhỏ hình trịn để lựa chọn (Options) Các nút điều khiển khác: Check Box, Edit Text, Static Text, Pop-up Menu, List Box, Axes, Panel, Button Group, AtiveX Control, Toggle Button. EDIT BOX gán giá trị vào edit-box: Set(handles.editbox,’string’, string ) Pop-up menu SLIDER AXES-FIGURE BASIC GUIDE MATLAB IN SERVO CONTROLLERS MATLAB IN ROBOT CONTROLLERS MATLAB IN ROBOT CONTROLLERS The end.
File đính kèm:
- bai_giang_matlab_ung_dung_thiet_ke_dieu_khien.pdf