Matlab được dùng rộng rãi trong giáo dục, phổ biến nhất là giảicác bài toán số trị cả đại số tuyến tính lẫn giải tích trong nhiều lĩnhvực kĩ thuật.. MATLAB Application Program Interfac
Trang 1NỘI DUNG
CHƯƠNG 1 : LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRUYỂN 2
1 Khái quát 2
2 Các công cụ trong matlap 3
CHƯƠNG 2: PHẠM VI ỨNG DỤNG 5
1 Các ưu điểm: 5
2 Khả năng ứng dụng 5
3 Nhược điểm: 6
CHƯƠNG 3 : GIỚI THIỆU PHẦN MỀM 7
1 Giới thiệu chung 7
2 Kiểm sóat chế độ nhập xuất dữ liệu cho Command Window 10
2.1 Hàm format: 10
2.2 Ma trận 11
2.3 Structure 15
2.4 Optimization toolbox 16
2.5 Statistics toolbox 20
2.6 Các phép toán logic VAF Symbolic Math toolbox 24
2.7 Công cụ simulink trong matlap 35
CHƯƠNG 4 : VÍ DỤ MINH HỌA( ĐỐI VỚI CÔNG CỤ SIMULINK) 38
4.1 Hàm truyền đạt của hệ thống 38
4.2 Đặc tính thời gian của hệ thống 38
4.2.1 Hàm quá độ 38
4.2.2 Đặc tính hàm trọng lượng g(t) 39
4.3 Đặc tính tần số 40
4.3.1.Đặc tính Nyquist 41
4.3.2 Đồ thị bode 42
4.4 Thiết kế bộ điều khiển PID 43
4.4.1 Sử dụng phương pháp ZEIGLER-NICHOLS để thiết kế bộ điều khiển: 44
Trang 2Lịch sử hình thành
Matlab là viết tắt từ "MATrix LABoratory", được Cleve Moler phát minhvào cuối thập niên 1970, và sau đó là chủ nhiệm khoa máy tính tại Đạihọc New Mexico
MATLAB, nguyên sơ được viết bởi ngôn ngữ Fortran, cho đến 1980 nóvẫn chỉ là một bộ phận được dùng nội bộ của Đại học Stanford
Năm 1983, Jack Little, một người đã học ở MIT và Stanford, đã viết lạiMATLAB bằng ngôn ngữ C và nó được xây dựng thêm các thư viện phục
vụ cho thiết kế hệ thống điều khiển, hệ thống hộp công cụ (tool box),
mô phỏng Jack xây dựng MATLAB trở thành mô hình ngôn ngữ lậptrình trên cơ sở ma trận (matrix-based programming language)
Steve Bangert là người đã viết trình thông dịch cho MATLAB Côngviệc này kéo dài gần 1½ năm Sau này, Jack Little kết hợp với Moler
và Steve Bangert quyết định đưa MATLAB thành dự án thương mại công ty The MathWorks ra đời thời gian này - năm 1984
-Phiên bản đầu tiên MATLAB 1.0 ra dời năm 1984 viết bằng C cho DOS PC được phát hành đầu tiên tại IEEE Conference on Design andControl (Hội nghị IEEE về thiết kế và điều khiển) tại Las Vegas, Nevada.Ban đầu Matlab được phát triển để hỗ trợ sinh viên sử dụng hai thư viện LINPACK và EISPACK dùng cho đại số tuyến tính (viết bằng Fortran) màkhông cần biết lập trình Fortran
MS-Năm 1986, MATLAB 2 ra đời trong đó hỗ trợ UNIX
Trang 3Năm 1987, MATLAB 3 phát hành.
Năm 1990 Simulink 1.0 được phát hành gói chung với MATLAB
Năm 1992 MATLAB 4 thêm vào hỗ trợ 2-D và 3-D đồ họa màu và các
ma trận truy tìm Năm này cũng cho phát hành phiên bản MATLABStudent Edition (MATLAB ấn bản cho học sinh)
Năm 1993 MATLAB cho MS Windows ra đời Đồng thời công ty này cótrang web là www.mathworks.com
Năm 1995 MATLAB cho Linux ra đời Trình dịch MATLAB có khả năngchuyển dịch từ ngôn ngữ MATLAB sang ngôn ngữ C cũng được pháthành trong dịp này
Năm 1996 MATLAB 5 bao gồm thêm các kiểu dữ liệu, hình ảnhhóa, bộ truy sửa lỗi (debugger), và bộ tạo dựng GUI
Năm 2000 MATLAB 6 cho đổi mới môi trường làm việc MATLAB, thaythế LINPACK và EISPACK bằng LAPACK và BLAS.[1]
Năm 2002 MATLAB 6.5 phát hành đã cải thiện tốc độ tính toán, sửdụng phương pháp dịch JIT (Just in Time) và tái hỗ trợ MAC
Năm 2004 MATLAB 7 phát hành, có khả năng chính xác đơn và kiểunguyên, hỗ trợ hàm lồng nhau, công cụ vẽ điểm, và có môi trường phântích số liệu tương tác
Đến tháng 12, 2008, phiên bản 7.7 được phát hành với SP3 cải thiệnSimulink cùng với hơn 75 sản phẩm khác
Năm 2009 cho ra đời 2 phiên bản 7.8 (R2009a) và 7.9 (R2009b)
Năm 2010 phiên bản 7.10 (R2010a) cũng đã được phát hành
Matlab được dùng rộng rãi trong giáo dục, phổ biến nhất là giảicác bài toán số trị (cả đại số tuyến tính lẫn giải tích) trong nhiều lĩnhvực kĩ thuật
2 Các công cụ trong matlap
Trang 4 MATLAB Mathematical Function Library: tập hợp các hàm tóan học như sum, sine, số học, v.v.
MATLAB Language (scritp): ngôn ngữ lập trình bậc cao
Graphics: các công cụ giúp hiễn thị dữ liệu dưới dạng đồ thị Ngòai
ra nó còn cho phép xây dựng giao diện đồ họa
MATLAB Application Program Interface (API): bộ thư viện cho phép
ta sử dụng các hức năng tính tóan của MATLAB trong chương trình C hay FORTRAN
Với 3 công cụ quan trọng nhất đó là:
MATLABProduct Family (tính toán số, lập trình, phân tích dữ liệu, hiển thị đồ thị…)
SimulinkProduct Family (mô phỏng bằng khối, thiết kế mô hình, hệthống nhúng…)
Polyspace Product Family (phân tích, kiểm tra,… liên quan đến lập
trình C, C++, và các bộ kit chứng chỉ DO, IEC)
Trang 5CHƯƠNG 2: PHẠM VI ỨNG DỤNG.
1 Các ưu điểm:
- Cung cấp một công cụ tính toán và lập trình bậc cao dễ sử dụng,hiệu quả và thân thiện SIMULINK giúp người sử dụng thực hiện các bàitoán mô hình hóa mô phỏng trên máy tính
- Có tính mở, các hàm và toolbox không ngừng được bổ sung theo
sự phát triển của khoa học bởi chính công ty và cả người sử dụng trêntoàn thế giới
MatLab tính toán dựa trên dạng Matrận nên nếu biết đưa các vòng lặp
về dạng Matrận sẽ rút ngắn được nhiều về thời gian tính toán)
- Có thể thiết kế giao diện cho người dùng (GUI)
- Có công cụ trợ giúp phong phú trực tuyến, trên mạng hay cácdạng tài liệu khác
2 Khả năng ứng dụng
cả các phép toán về Ma trận, vẽ đồ thị, ngoại suy, nội suy
thông, Tự động, Kỹ thuật điện vì thứ nhất, nó hỗ trợ rất mạnh về Toán(như đã nói ở trên), thứ 2 là do MatLab có một thư viện Toolbox vàSimulink cực kỳ khổng lồ
Trang 6- Đối với ngành Tự động và Kỹ thuật điện, biểu diễn rất nhiều cáccông cụ của MatLab, ví dụ tính toán độ ổn định của hệ thống (có sẵn cáckhối để simulink), vẽ biểu đồ Bode.
nhiều:Trong chương trình học, bạn sẽ được học về Xử lý số tín hiệu, vềthiết kế 1 bộ lọc (thông thấp, thông cao, thông dải ; FIR, IIR), về điềuchế (analog, digital), về mã hoá kênh truyền, về đánh giá chất lượng 1
hệ thống thông qua giá trị BER , tất cả những điều này bạn đều cóthể khảo sát bằng MatLab! Matlab đã cung cấp sẵn tất cả những công
cụ này, bạn chỉ nhập Input và khảo sát
- Khi làm đồ án môn học hoặc thực hành lý thuyết, MatLab là công
cụ mô phỏng chủ yếu và hiệu quả trong các đề tài về Hệ thống thôngtin (các kỹ thuật thông tin di động và các phương pháp cải thiện, Antenthông minh, hệ thống MIMO .), về Xử lý số tín hiệu (hình ảnh, âmthanh, video )
3 Nhược điểm:
nên mỗi lần chạy phải chạy từ MatLab Chính vì khuyết điểm này, các
chương trình viết bằng MatLab chì dùng để Mô phỏng trong quá trìnhhọc hoặc để tự khảo sát trong quá trình nghiên cứu vấn đề gì đó chứ
Trang 7CHƯƠNG 3 : GIỚI THIỆU PHẦN MỀM
1 Giới thiệu chung
Giao diện
Trang 8Hình 3.1 MATLAB desktop
Command Window: Đây là cửa sổ làm việc chính của MATLAB Tại đây
ta thực hiện tòan bộ việc nhập dữ liệu và xuất kết quả tính tóan Dấu nháy >> báo hiệu chương trình sẵn sàng cho việc nhập dữ liệu Ta kết thúc việc nhập dữ liệu bằng cách nhấn phím Enter MATLAB sẽ thực thi
dòng lệnh mà ta nhập vào Command Window và trả kết quả trong
Trang 9Editor: dùng để sọan thảo và debug các M-file của MATLAB.
Current folder: xem các file trong thư mục hiện hành.
Một số thao tác cơ bản trong MATLAB
Trong MATLAB, thanh trình đơn thay đổi tùy theo cửa sổ mà ta lựa chọn
Tuy vậy các trình đơn File, Desktop, Window, Help có mặt hầu hết trong
các thanh trình đơn
Trình đơn File:
New: tạo một đối tượng mới (biến, m-file, figure, model, GUI).
Open: mở một file theo định dạng của MATLAB (*.m, *.mat, *.mdl)
Import data…: nhập dữ liệu từ các file khác vào MATLAB.
Save workspace…: lưu các biến trong MATLAB vào file *.mat.
Set path: khai báo các đường dẫn của các thư mục chứa các m-file.
Preferences: thay đổi các định dạng về font, font size, color cũng
như các tùy chọn cho Editor, Command Window v.v
Page Setup: định dạng trang in.
Print: in.
Trình đơn Desktop:
Desktop layout: sắp xếp các cửa sổ trong giao diện.
Save layout: lưu cách sắp xếp cửa sổ.
Trình đơn Window dùng để kích họat (activate) cửa sổ.
Nút Start cung cấp shortcut tới các công cụ trong MATLAB
Ví dụ:
>> variable_1=25;
Trang 10Nếu ta chỉ nhập tên biến, giá trị của biến sẽ hiễn thị trong Command
Lưu ý rằng trong MATLAB nếu ta kết thúc câu lệnh bằng dấu “;” thì
Command Window sẽ không hiễn thị kết quả tính tóan ra màn hình.
Trang 11function),erf (Error function),gamma (Gamma function), primes
(Generate list of prime numbers), cart2sph (Transform Cartesian to spherical coordinates) v.v
Hàm format kiểm sóat định dạng xuất ra màn hình của các giá trị
Hàm này chỉ kiểm sóat định dạng xuất ra mà không ảnh hưởng tới định dạng của dữ liệu được lưu trữ
Ví dụ:
>> x = [4/3 1.2345e-6];
>> format short
1.3333 0.0000
Trang 12Không xuất kết quả ra màn hình:
Dùng dầu “;” ở cuối câu lệnh để Command Window không xuất kết
quả ra màn hình
Câu lệnh quá dài
Nếu câu lệnh quá dài ta dùng dấu 3 chấm “…” để thông báo câu lệnh được tiếp tục ở dòng tiếp theo
Ví dụ:
>>s = 1 -1/2 + 1/3 -1/4 + 1/5 - 1/6 + 1/7
-1/8 + 1/9 - 1/10 + 1/11 - 1/12;
Trang 132.2 Ma trận
Trong MATLAB ma trận là một array chứa các dữ liệu Để nhập một
ma trận vào MATLAB ta có thể dùng các cách sau:
Nhập trực tiếp vào Command Window
Trang 14Dùng các hàm trong MATLAB:
Hàm ones(r,c) tạo một ma trận có r hàng và c cột với các giá 1
Hàm zeros(r,c) tạo một ma trận có r hàng và c cột với các giá 0
Hàm eye(r) tạo một ma trận có r hàng và r cột với các giá 1 tại đường chéo và giá trị 0 tại các phần tử còn lại
rand(r,c) tạo một ma trận có r hàng và c cột với các giá trị ngẫu nhiên từ 0 tới 1 theo phân bố uniform
randn(r,c) tạo một ma trận có r hàng và c cột với các giá trị ngẫu nhiên theo phân bố Normal đơn vị
Trang 16 A*B : nhân ma trận (số cột của A bằng số hàng của B)
A.*B : nhân từng phần tử của A và B (A, B cùng kích thước)
inv(A) : nghịch đảo A
B/A= (A'\B')' hay xấp xỉ B*inv(A)
B./A: chia từng phần tử của B cho A (A, B cùng kích thước)
A\B: nếu A là ma trận vuông, A\B xấp xỉ inv(A)*B Nếu A là ma trậnnxn và B là vector cột với n phần tử thì X = A\B là lời giải cho hệ đảng thức AX = B
A.^B: lũy thừa từng phần tử của A với từng phần tử của B
Trang 172.3 Structure
Để thuận tiện cho việc quản lý và sử dụng, ta có thể tập hợp nhiều biến lại trong một structure Một structure đựơc tao như sau:
struct(‘name_1’, value_1,’name_2’, value_2,…)
trong đó name_* là tên của field là thành phần của một structure và value_* là giá trị mà ta cần gán cho field
>> myst=struct(‘data’, [1 2 3], ‘name’,’John Down’)
myst =
data: [1 2 3]
name: 'John Down'
Để truy cập dữ liệu trong structure ta dùng dấu “.”
>>myst.data(1)+1
ans =
2
2.4 Optimization toolbox
Bộ công cụ tối ưu hóa cho phép:
Tối thiểu phi tuyến không ràng buộc (Unconstrained nonlinear minimization)
Tối thiểu phi tuyến có ràng buộc (Constrained nonlinear
minimization)
Quy họach tuyến tính và tòan phương (Quadratic and linear
programming)
Nonlinear least squares and curve-fitting
Hàm bintprog(f, A, b, Aeq, beq, x0)
Dùng để giải bài tóan quy họach ngưyên (binary integer
programming)
min fTx
Trang 222.5 Statistics toolbox
Bộ cộng cụ với hơn 200 hàm hỗ trợ tính tóan trong:
Probability Distributions: hỗ trợ 20 phân bố xác suất khác nhau, cung cấp các hàm phân bố, mật độ, tích lũy, nghịch đảo, bộ tạo số ngẫunhiên Ngòai ra nó còn cho phép xác định phân bố cho dữ liệu
Descriptive Statistics: cung cấp các hàm cho thống kê mô tả
Linear Models: hỗ trợ one-way, two-way, and n-way analysis of variance (ANOVA), analysis of covariance (ANOCOVA), hồi quy
(regression)
Hypothesis Tests: hàm cho các kiểm định
Statistical Plots: hỗ trợ vẽ các đồ thị thống kê
Design of Experiments (DOE): hỗ trợ việc thiết kế thực nghiệm
Probability Distributions
normpdf(X,MU,SIGMA) tính giá trị của hàm mật độ tại X cho phân
bố Normal có tham số MU và SIGMA
R = normrnd(MU,SIGMA,m,n) tạo một ma trận R(m,n) chứa các giátrị ngẫu nhiên có phân bố Normal với tham số MU và SIGMA
norminv(P,MU,SIGMA) tính giá trị nghịch đảo của xác suất p của hàm phân bố Normal tích lũy với tham số MU và SIGMA
[muhat,sigmahat,muci,sigmaci] = normfit(DATA, alpha) ước lượng tham MU và SIGMA với độ tin cậy100(1 - alpha) % cho dữ liệu DATA theophân bố Normal
Trang 23 mean(x) tính trung bình cho mỗi cột dữ liệu trong X.
var(X) tính phương sai cho mỗi cột dữ liệu trong X
prctile(X,p) tính số phân vị p% của dữ liệu X p trong khỏang [0 100]
skewness(X), kurtosis(X) tìm skewness và kurtosis cho mỗi cột dữ liệu của X
boxplot(X) tạo đồ thị box- whisker cho mỗi cột dữ liệu trong X
normplot(X) vẽ đồ thị phân bố Normal cho mỗi cột dữ liệu trong X
hist(X) vẽ đồ thị histogram cho dữ liệu X
pareto(X) vẽ đồ thị Pareto cho dữ liệu X
Ví dụ:
>> boxplot(x)
Trang 24Hình 3.2: boxplot
Linear model
p = anova1(X) tính bảng one-way ANOVA để so sánh trung bình của 2 hay nhiều cột dữ liệu trong ma trận mxn X, trong đó các cột chứa mẫu có m quan sat độc lập Hàm trả lại giá trị p giả thuyết H0
p = anova2(X,reps) tính two-way ANOVA để so sánh trung bình của 2 hay nhiều cột và 2 hay nhiều hàng các quan sát trong ma trận X
Dữ liệu trong các cột tương ứng với các thay đổi trong yếu tố A, dữ liệu trong hàng tương ứng với thay đổi trong yếu tố B Nếu có hơn một quan sát trong một tổ hợp ta dùng reps
Trang 25 a<b (lt(a,b))- nhỏ hơn
a<=b (le(a,b) – nhỏ hơn hoặc bằng
a>b (gt(a,b) – lớn hơn
a>=b (ge(a,b))- lớn hơn hoặc bằng
Phép tính logic
~a (not(a)) cho một ma trận với phần tử là 1 nếu phần tử tương ứng của a là 0 và 0 nếu phần tử tương ứng của khác 0
Trang 26 a&b (and(a,b)) cho một ma trận có phần tử là 1 nếu phần tử tươngứng của a và b khác 0 và bằng 0 nếu một trong 2 phần tử tương ứng của a,b bằng 0.
a|b (or(a,b) cho một ma trận có phần tử là 1 nếu một trong 2 phần
tử tương ứng của a và b khác 0 và bằng 0 nếu cả 2 phần tử tương ứng của a,b bằng 0
xor(a,b) cho một ma trận có phần tử là 1 nếu chỉ một trong 2 phần
tử tương ứng của a và b khác 0 và bằng 0 nếu cả 2 phần tử tương ứng của a,b bằng 0 hay khác không
Trang 28trở về chương trình đã gọi hàm hay script.
Symbolic Math toolbox
Bộ công cụ bộ sung khả năng giải tóan với các ký hiệu tóan học cho MATLAB Lõi của bộ công cụ này được phát triễn bởi Maple Nó cho phépthực hiện các phép tóan sau:
Calculus: đạo hàm, tích phân, giới hạn, chuỗi
Đại số tuyến tính: nghịch đảo, định thức, giá trị eigen, Inverses, determinants, eigenvalues, singular value decomposition, and canonicalforms of symbolic matrices
Rút gọn: dùng để rút gọn biểu thức
Giải phương trình: đại số và vi phân
Các hàm đặc biệt: cung cấp các hàm đặcd biệt như beta, bessel, gamma
Transforms: Fourier, Laplace, z-transform
Symbolic object
Để dùng được bộ công cụ ta phải định nghĩa một lọai dữ liệu đặc biệt khác với các lọai dữ liệu khác trong MATLAB- đó là symbolic (ký hiệu) Symbolic là một cấu trúc dữ liệu lưu lại chuỗi ký tự đại diện cho ký hiệu tóan học mà ta đang xử lý ta dùng symbolic để biểu hiện một biến, biểuthức hay ma trận
Trang 30 symsum: tổng của một chuỗi.
taylor: khai triễn chuỗi Taylor
Trang 31Rút gọn biểu thức:
collect(f,v): gom đa thức theo biến v
expand: khai triển đa thức
factor: phân tích đa thức thành các nhân tử
horner: phân tích đa thức thành một biểu thức dạn Horner
numden: phân tích biểu thức thành dạng hữu tỷ
simple: đơn giản tối đa biểu thức