Professional Documents
Culture Documents
MATLAB LÀ GÌ?
MATLAB là phần mềm cung cấp môi trường tính toán số và lập trình, do công
ty MathWorks thiết kế. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm
số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên
kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác.
Với thư viện Toolbox, MATLAB cho phép mô phỏng tính toán, thực nghiệm nhiều
mô hình trong thực tế và kỹ thuật.
Lịch sử
Matlab là viết tắt từ "MATrix LABoratory", được Cleve Moler phát minh
vào cuối thập niên 1970, và sau đó là chủ nhiệm khoa máy tính tại Đại
họ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ại
MATLAB 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ập trì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ông việ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 MS-
DOS PC được phát hành đầu tiên tại IEEE Conference on Design and
Control (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.
Năm 1986, MATLAB 2 ra đời trong đó hỗ trợ UNIX.
Nă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 MATLAB
Student 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ăng
chuyển dịch từ ngôn ngữ MATLAB sang ngôn ngữ C cũng được phát
hà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 ảnh hó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, thay
thế LINPACK và EISPACK bằng LAPACK và BLAS.[2]
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ểu
nguyên, hỗ trợ hàm lồng nhau, công cụ vẽ điểm, và có môi trường phân
tí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ện
Simulink 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ải các bài
toán số trị (cả đại số tuyến tính lẫn giải tích) trong nhiều lĩnh vực kĩ
thuật.
Kiểu ma trận đóng vai trò trung tâm trong MatLab. Ví dụ một ma trận hai
hàng ba cột như sau (hết một hàng cần dấu chấm phẩy để phân tách,
nhưng không nhất thiết xuống dòng):
[ -3 4 5.2;
2.1 -8 7.6 ]
>> a = [2 3; 2 4]
2 3
2 4
Với phép tính lũy thừa cũng tương tự. Chẳng hạn, với ví dụ trên ta có
thể viết lần lượt là a^2 và a.^2 .
Cú pháp
Trước đây MatLab không phân biệt chữ in, chữ thường (giống
như Fortran). Các phiên hơn gần đây lại có sự phân biệt này (theo ngôn
ngữ C). Các từ khóa đều viết chữ thường.
Lệnh gán có dạng giống như nhiều ngôn ngữ lập trình
khác: tên_biến = giá_trị_biểu thức . Thông thường
máy sẽ in ra kết quả của biến sau khi gán, nếu ta không kết
thúc lệnh gán bởi dấu ;
Ví dụ
t = 2 * 3 % hiện thị t = 6
t = t + 1; % t có giá trị bằng 7 nhưng không hiển thị lên màn
hình.
Khai báo hàm số (ví dụ như hàm bình phương tên tham số vào
là x , tên tham số ra là y :
function y = binhPhuong(x)
y = x * x;
end
i = 0
while i < 4
i = i + 1; % không cho hiển thị ra màn hình
disp(i) % hiển thị giá trị i
end
doc('plot')
doc plot % chú thích: cách viết gọn, đồng thời bỏ dấu ngoặc
tròn và dấu nháy
v1 = [2, 3, 4]
v2 = [5 6 7] % cũng hợp lệ!
Và ngay cả cách gọi file lệnh từ dấu nhắc cũng là một dạng rút gọn đặc
biệt. Chẳng hạn ta cần chạy file tinhtong.m trong thư mục hiện hành:
>> tinhtong
Tính năng vẽ đồ thị
Vẽ đồ thị là một tính năng được trau chuốt trong MatLab; với rất nhiều
kiểu đồ thị khác nhau như biểu đồ dạng đường, biểu đồ chấm điểm, các
lớp màu (patch) hai chiều, đường đồng mức và các đường cong, mặt
cong ba chiều. Ngoài ra MatLab còn cung cấp giao diện để người dùng
trực tiếp biên tập hình vẽ, điền vào các ghi chú theo ý muốn.
plot(t, V)
xlabel('t (s)') % viết tiêu đề các trục
ylabel('V (m/s)')
pcolor(T)
Vẽ trường vec tơ
Cũng như đồ thị lớp màu, việc hiển thị trường vec tơ rất cần thiết trong
các ngành khoa học - vật lý. Để vẽ trường véc-tơ hai chiều của các ma
trận u và v, dùng lệnh:
quiver(u,v)
Control system toolbox
Control System Toolbox là 1 thư viện của matlab dùng trong lĩnh vực
điều khiển tự động. Cùng với các lệnh của matlab, tập lệnh của Control
System Toolbox sẽ giúp ta thiết kế, phân tích và đánh giá các chỉ tiêu
chất lượng của 1 hệ thống tuyến tính
Control System Toolbox cung cấp các thuật toán và ứng dụng để phân
tích, thiết kế và điều chỉnh một cách có hệ thống các hệ thống điều
khiển tuyến tính. Ta có thể chỉ định hệ thống của mình dưới dạng hàm
truyền, không gian trạng thái, độ lợi bằng không cực hoặc mô hình đáp
ứng tần số. Các ứng dụng và chức năng, chẳng hạn như biểu đồ phản
hồi bước và biểu đồ Bode, cho phép ta phân tích và trực quan hóa hành
vi của hệ thống trong miền thời gian và tần số.
Ta có thể điều chỉnh các tham số của bộ bù bằng các kỹ thuật tương tác
như định hình vòng lặp Bode và phương pháp quỹ tích nghiệm. Hộp
công cụ tự động điều chỉnh cả bộ bù SISO và MIMO, bao gồm cả bộ
điều khiển PID. Bộ bù có thể bao gồm nhiều khối có thể điều chỉnh kéo
dài qua một số vòng phản hồi. Ta có thể điều chỉnh bộ điều khiển
khuếch đại theo lịch trình và chỉ định nhiều mục tiêu điều chỉnh, chẳng
hạn như theo dõi tham chiếu, loại bỏ nhiễu và biên độ ổn định. Ta có thể
xác thực thiết kế của mình bằng cách xác minh thời gian tăng, độ vọt lố,
thời gian ổn định, độ lợi và biên pha cũng như các yêu cầu khác.
Simscape
Simscape cho phép chúng ta nhanh chóng tạo các mô hình hệ thống vật
lý trong môi trường Simulink. Với Simscape, ta xây dựng các mô hình
thành phần vật lý dựa trên các kết nối vật lý tích hợp trực tiếp với sơ đồ
khối và các mô hình mô hình hóa khác. Ta có thể lập mô hình các hệ
thống như động cơ điện, bộ chỉnh lưu cầu, bộ truyền động thủy lực và
hệ thống làm lạnh bằng cách lắp ráp các bộ phận cơ bản thành một sơ
đồ. Các sản phẩm bổ sung của Simscape cung cấp các thành phần
phức tạp hơn và khả năng phân tích.
Simscape giúp ta phát triển các hệ thống điều khiển và kiểm tra hiệu
suất ở cấp độ hệ thống. Ta có thể tạo các mô hình thành phần tùy chỉnh
bằng ngôn ngữ Simscape dựa trên MATLAB, ngôn ngữ này cho phép
tác giả dựa trên văn bản của các thành phần, miền và thư viện mô hình
hóa vật lý. Ta có thể tham số hóa các mô hình của mình bằng cách sử
dụng các biến và biểu thức MATLAB, đồng thời thiết kế các hệ thống
điều khiển cho hệ thống vật lý của ta trong Simulink. Để triển khai các
mô hình của ta sang các môi trường mô phỏng khác, bao gồm các hệ
thống phần cứng trong vòng lặp (hardware-in-the-loop hay HIL),
Simscape hỗ trợ tạo mã C.
PID
Định nghĩa của PID
PID là sự kết hợp của 3 bộ điều khiển: tỉ lệ, tích phân và vi phân, có khả
năng điều chỉnh sai số thấp nhất có thể, tăng tốc độ đáp ứng, giảm độ
vọt lố, hạn chế sự dao động.
Bộ điều khiển PID hay chỉ đơn giản là PID là một kỹ thuật điều khiển quá
trình tham gia vào các hành động xử lý về “tỉ lệ, tích phân và vi phân“.
Nghĩa là các tín hiệu sai số xảy ra sẽ được làm giảm đến mức tối thiểu
nhất bởi ảnh hưởng của tác động tỉ lệ, ảnh hưởng của tác động tích
phân và được làm rõ bởi một tốc độ đạt được với tác động vi phân số
liệu trước đó.
Điều khiển PID là một kiểu điều khiển có hồi tiếp vòng kín được sử dụng
rộng rải trong hệ thống điện, tự động hóa, điện tử,…
– Mức nước đo được từ cảm biến, được gọi là biến quá trình (PV).
→Khi SV khác với PV thì PID sẽ tự điều chỉnh để duy trì mức nước
trong bể một cách chính xác nhất.
PID TRONG BIẾN TẦN
Ví dụ:
Có một bể chứa dung dịch vừa cần trộn đều dung dịch vừa có thể điều
khiển nhiệt độ tại 70ºC.
Để điều khiển tự động với PID, cần có sự kết hợp của các thiết bị như
sau:
Cảm biến nhiệt độ có thể điều khiển được tốc độ của biến tần và lưu
lượng nước đi qua van điều khiển. Nhằm đảm bảo mức độ trộn đều
dung dịch và nhệt độ trong bể. Việc tăng hay giảm nhiệt độ phụ thuộc
vào lưu lượng dung dịch đi qua van điều khiển. Còn trộn dung dịch đều
hay không lại phụ thuộc vào biến tần.
Điều khiển tín hiệu PID là một quá trình phức tạp. Để điều khiển chính
xác các đối tượng: nhiệt độ, độ ẩm, chiều dài, mực nước, lưu lượng, áp
suất,…Cần phải thiết kế từng PID độc lập cho từng đối tượng.
Các loại điều khiển
Bộ điều khiển tỉ lệ – P (Proportional Controller).
PI (Proportinal and Integral Controller) gọi là bộ điều khiển tỉ lệ
và tích phân.
PD (Proportional and Derivative (PD) Controller) gọi là bộ điều
khiển đạo hàm.
PID (Proportional, Integral, and Derivative (PID) Controller) là bộ
điều khiển tỉ lệ – tích phân- đạo hàm (vi phân).