• Không có kết quả nào được tìm thấy

MATLAB ỨNG DỤNG

N/A
N/A
Protected

Academic year: 2022

Chia sẻ "MATLAB ỨNG DỤNG "

Copied!
55
0
0

Loading.... (view fulltext now)

Văn bản

(1)

MATLAB ỨNG DỤNG

THIẾT KẾ –ĐIỀU KHIỂN

Th.S Nguyễn Tấn Phúc.

Email: phucnt@hcmuaf.edu.vn Tel:0126.7102772.

Fb: gv dhnl phuctannguyen

(2)

TÀI LIỆU HỌC TẬ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.

(3)

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.

(4)

PHẦN I- MATLAB

CĂN BẢN

(5)

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.

- 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)

(6)

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’.

(7)

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.

(8)

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…

(9)

MATLAB CĂN BẢN

1. Số (Numbers)

format (định dạng)

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ố:

>> b=3/26;

>> format long; b b = 0.11538461538462

>> format short e; b b = 1.1538e-001

>> format bank; b b = 0.12

>> format short eng; b b = 115.3846e-003

>> format hex; b b = 3fbd89d89d89d89e

>> format +; b b = +

>> format rat; b b = 3/26

>> format short; b b = 0.1154

>> format long eng; b

b = 115.384615384615e-003>>

(10)

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..

(11)

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

2. Toán tử (operaters) (+, -, *, /, \,^,’)

(12)

To¸n tư logic ý nghÜa

& Vµ vd A&B

| HoỈc vd A|B

~ §¶o vd ~A

Toán tử (operaters)

(13)

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

operators

(14)

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

(15)

MA TRẬN TRONG MATLAB Cách Khai báo ma trận:

A=[2 3;4 5];

B=[2 3 4;4 5 6;6 7 8].

 ‚;‛ có nghĩa là chuyển sang hàng kế tiếp.

 ‚,‛ 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

(16)

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

(17)

>> A=[1 2 3;4 5 6;7 8 9]

A = 1 2 3 4 5 6 7 8 9

>> A(2,3)=10 A = 1 2 3 4 5 10 7 8 9

>> B=A(2,1) B = 4

>> C=[-4 2 3;1 2 1;2 5 6]

C = -4 2 3 1 2 1 2 5 6

>> D=[A C]

D = 1 2 3 -4 2 3 4 5 10 1 2 1 7 8 9 2 5 6

>> D(5) ans = 5

>> D(4,5)

??? Index exceeds matrix dimensions.

>> X=D

X = 1 2 3 -4 2 3 4 5 10 1 2 1 7 8 9 2 5 6

>> X(2,6) ans = 1

>> X(2,:) ans =

4 5 10 1 2 1

MA TRẬN TRONG MATLAB

(18)

ĐỒ HỌA TRONG MATLAB

Đồ họa trong Matlab

Cây thư mục quản lý đối tượng trong Matlab:

Uicontrol Uimenu Uicontextmenu

Image Light Line Patch Rectangle Surface Text Figure

Axes

(19)

Bước MATLAB code 1. Chuẩn bị dữ liệu X= 0:0.1:2*pi;

Y= sin(X)=f(x).

2. Chọn cửa sổ và vị trí của đối

tượng đồ họa trong cửa sổ. figure(‘Name’,’Hinh sine’);

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

như kiểu đường, màu sắc, … set(h, ‘LineStyle’,’-

‘,’Color’,’r’) 5. Xác định các thuộc tính của axis,

axes, lưới vẽ, … axis([-1 6 -1.2 1.2]);

grid on;

6. Chú thích cho đồ thị: labels, legend, text, …

xlabel(‘X’);

ylabel(‘Y=SIN(X)’);

title(‘Đồ thị hình sine’);

7. Xuất kết quả

ĐỒ HỌA TRONG MATLAB

(20)

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

(21)

Lệnh plot

Cú pháp Mô tả

plot(Y) Vẽ đồ thị với hoành độ là chỉ số

của phần tử, tung độ là giá trị của phần tử tương ứng

plot(X1,Y1,...) Vẽ đồ thị bằng cách sử dụng các đường thẳng nối từng cặp dữ liệu X1(i) và Y1(i)

plot(X1,Y1,LineSpec,...) Vẽ đồ thị và định tính chất cho tất cả các đường thẳng

plot(...,'PropertyName',PropertyValue,...) Vẽ có định tính chất cho các đối tượng

h = plot(...) Trả về giá trị quản lý đối tượng vẽ

ĐỒ HỌA TRONG MATLAB

(22)

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

(23)

 LineWidth: plot(X,Y,’LineWidth’,2)

Giá trị

LineWidth 1 3 5

Hình

ĐỒ HỌA TRONG MATLAB

(24)

 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

0 2 4 6 8 10 12 14 0

1 2 3 4 5 6 7 8

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)

ĐỒ HỌA TRONG MATLAB

(25)

 Marker: plot(X,Y,’o’) Một số loại Marker:

Kí hiệu Ý nghĩa

+ Dấu cộng o Hình tròn

* Dấu hoa thị

. Điểm

x Dấu chéo nhau s Hình vuông d Hình thoi

^ Tam giác trên v Tam giác dưới

> Tam giác bên phải

< Tam giác bên trái p Sao năm cạnh h Sao sáu cạnh

Kí hiệu Ý nghĩa MarkerEdgeColor Định giá trị màu

cho đường viền của Marker MarkerFaceColor Định giá trị màu

cho bề mặt của Marker

MarkerSize Định độ lớn cho Marker

0 2 4 6 8 10 12 14

0 1 2 3 4 5 6 7 8

x = 0:pi/15:4*pi; y = exp(2*cos(x));

plot(x,y,'r+')

ĐỒ HỌA TRONG MATLAB

(26)

 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

(27)

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

(28)

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])

0 1 2 3 4 5 6 7

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

ĐỒ HỌA TRONG MATLAB

(29)

PH Ầ N II- LẬP TRÌNH TRONG

MATLAB

(30)

LẬP TRÌNH VỚI MATLAB

Lập trình với Matlab

Scripts

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.

--- M-file: vidu.m

x= 0:0.01:2*pi;

y=sin(x);

plot(x,y)

function

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 trong function chỉ là biến cục bộ.

--- M-file: doido.m

function rad = doido(do) rad=do*pi/180;

Matlab cho phép lập trình theo hai hình thức: SCRIPTS và function

(31)

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

(32)

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);

(33)

MATLAB CĂN BẢN

8. Cấu trúc điều kiện

 Cấu trúc điều kiện: if

if (biểu thức logic) nhóm lệnh end

if (biểu thức logic) nhóm lệnh 1 else

nhóm lệnh 2 end

Toán tử Ý nghĩa

< Nhỏ hơn

<= Nhỏ hơn hoặc bằng

> Lớn hơn

>= Lớn hơn hoặc bằng

== Bằng nhau

~= Không bằng

(34)

MATLAB CĂN BẢN

8. Cấu trúc điều kiện

 Cấu trúc điều kiện: if…end

if (biểu thức logic) nhóm lệnh 1 elseif

nhóm lệnh 2 else

nhóm lệnh 3 end

(35)

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

(36)

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

(37)

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

(38)

Tính toång cuûa chuoã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;

disp('tong '); end disp(tong);

(39)

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.
(40)

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 toà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 ..

(41)

PH Ầ N III- TẠO GIAO DIỆN TRONG MATLAB

---

GUIDE IN MATLAB

(42)

1.MỞ PHẦN MỀM

Mở phần mềm, gõ lệnh sau vào command>>guide

(43)

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.

Create New GUI: Tạo một hộp thoại GUI mới:

Open Existing GUI: mở hộp thoại project có sẵn

(44)
(45)

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.

(46)

EDIT BOX

gán giá trị vào edit-box:

Set(handles.editbox,’string’, string )

(47)
(48)

Pop-up menu

(49)

SLIDER

(50)

AXES-FIGURE

(51)

BASIC GUIDE

(52)

MATLAB IN SERVO

CONTROLLERS

(53)

MATLAB IN ROBOT

CONTROLLERS

(54)

MATLAB IN ROBOT

CONTROLLERS

(55)

The end….

Tài liệu tham khảo

Tài liệu liên quan

Bieåu dieãn caùc ñieåm sau treân cuøng moät maët phaúng toïa

Coù bao nhieâu giaù trò cuûa tham soá m ñeå ñoà thò (C m ) cuûa haøm soá ñaõ cho caét truïc hoaønh taïi ba ñieåm phaân bieät vôùi caùc hoaønh ñoä laäp thaønh

c) Treân truïc tung taïi tung ñoä baèng -1 ta veõ ñöôøng thaúng song song goùc vôùi Ox, ñöôøng naày caét ñoà thò taïi ñaâu thì ñieåm ñoù laø ñieåm caàn ñaùnh daáu.

„ Xaùc ñònh ñöôïc taàn suaát caùc beänh lyù di truyeàn tröôùc sinh, sô sinh Giaûm tæ leä treû bò beänh di truyeàn chaäm phaùt trieån trí tueä. „ Giam tæ leä tre

Caùc ñieän töû phaùt sinh seõ chuyeån ñoâïng vôùi toác ñoä taêng daàn vaø tích luõy ñöôïc naêng löôïng lôùn, treân ñöôøng ñi chuùng va chaïm vaøo caùc phaân töû trung

Vieát phöông trình Parabol coù ñænh truøng vôùi goác toïa ñoä vaø coù tieâu ñieåm truøng vôùi tieâu ñieåm beân traùi cuûa (E) ñaõ cho. a) Tìm toïa ñoä caùc ñænh,

Böôùc 2: Nhaùy vaøo muõi teân beân caïnh nuùt Font Color.. Böôùc 1: Choïn caùc oâ caàn caên döõ lieäu

ngöôøi veõ baûn ñoà ñaõ phaûi tìm caùch thu nhoû theo tæ leä khoaûng caùch vaø kích thöôùc cuûa ñoái töôïng ñòa lí ñeå.?. 1/ YÙ nghóa cuûa tæ leä baûn ñoà 1/ YÙ nghóa