Tải bản đầy đủ (.doc) (60 trang)

ĐỒ ÁN DÙNG MATLAB ĐỂ TẠO RA CÁC CÔNG CỤ ĐỂ GIẢI CÁC BÀI TOÁN ĐIỀU KHIỂN TỰ ĐỘNG (Đầy đủ file đính kèm)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (463.63 KB, 60 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
CỘNG HềA XÃ HỘI CHỦ NGHĨA VỆT NAM
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
ĐỘC LẬP - TỰ DO - HẠNH PHÚC
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
---o Oo --TP. HỒ CHÍ MINH
  

KHOA ĐIỆN
BỘ MễN ĐIỆN – ĐIỆN TỬ

NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP
Họ và tờn : Lờ Trung Hiền
MSSV
: 95101051
Lớp
: 95KĐĐ
Ngành
: Kỹ thuật Điện – Điện Tử
*******************************
1.

Tờn đề tài: Sử dụng MATLAB tạo ra hộp cụng cụ
dựng để giải cỏc bài toỏn trong tự động điều khiển.
2. Nội dung cỏc phần thuyết minh.
 Chương I : Giới thiệu những ưu điểm hiện cú của MATLAB khi ứng dụng trong
tự động điều khiển.
 Chương II :
 Tỡm hiểu cỏch nhập xuất và tớnh toỏn cỏc
biến trong
MATLAB.


 Tạo một hàm trong tự động điều khiển.
 Vẽ đồ thị.
 Chương III :
 Miờu tả cỏc biến trạng thỏi, ma trận chuyển đổi,cực,zero trong hệ thống LTI
(Linear Time Invariant).
 Xõy dựng những cõu lệnh trong tự động điều khiển ở cửa sổ soạn thảo.
 Xột tớnh ổn định của hệ thống .
 Chương IV : Dựng MATLAB viết chương trỡnh tạo ra hộp
cụng cụ.
 Chương V : Kết quả chạy chương trỡnh.
3. Cỏc bản vẽ : Trỡnh bày cỏc giao diện chạy trong MATLAB.
GVHD :Th.S Lờ Cảnh Trung
Ngày giao nhiệm vụ : 23/12/1999
Ngày hoàn thành : 28/3/2000
GVHD

SVTH

Lờ cảnh Trung

Lờ Trung Hiền

Thụng qua bộ mụn
Chủ nhiệm bộ mụn


BẢN NHẬN XẫT
LUẬN VĂN TỐT NGHIỆP CỦA CÁN BỘ HƯỚNG DẪN

*** ***







Họ và tờn : Lờ Trung Hiền
Lớp : 95KĐĐ
MSSV : 95101051
GVHD : Th.S Lờ Cảnh Trung
Tờn đề tài: Sử dụng MATLAB tạo ra hộp cụng cụ
dựng để giải cỏc bài toỏn trong tự động điều khiển.

 Lời nhận xột của cỏn bộ hướng dẫn:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------------------------Thành Phố ngày thỏng
Cỏn bộ hướng dẫn

Th.S Lờ Cảnh Trung

năm 2000


BẢN NHẬN XẫT
LUẬN VĂN TỐT NGHIỆP CỦA CÁN BỘ PHẢN BIỆN

*** ***







Họ và tờn : Lờ Trung Hiền
Lớp : 95KĐĐ
MSSV : 95101051
GVHD :Th.S Lờ Cảnh Trung
Tờn đề tài: Sử dụng MATLAB tạo ra hộp cụng cụ
dựng để giải cỏc bài toỏn trong tự động điều khiển.

 Lời nhận xột của cỏn bộ phản biện:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------------------------Thành Phố ngày thỏng
Cỏn bộ phản biện

năm 2000


Xin tri õn và
tưởng nhớ đến
Thầy Th.S Trần

V
ới tấm lũng tụn sư trọng đạo, chỳng em xin chõn thành cảm ơn cỏc thầy cụ đó tận tỡnh dạy
bảo cho chỳng em trong những năm vừa qua,và truyền đạt cho chỳng em những kiến thức quớ
bỏo để làm hành trang cho em bước vào đời.

Xin ghi nhớ cụng ơn của cha me đó khụng quản mọi gian lao khú nhọc , và cả sự hy
sinh cao cả để cho con được như ngày hụm nay.
Xin chõn thành cảm ơn cỏc thầy cụ trường Đại Học Sư Phạm Kỹ Thuật đó tận tỡnh
chỉ bảo chỳng em trong suốt khúa học vừa qua.
Xin cảm ơn thầy Lờ Cảnh Trung đó tận tỡnh hướng dẫn và cung cấp cho em những tài
liệu quý bỏo để hoàn thành luận văn này, cũng như truyền thụ những kinh nghiệm quý
bỏotrong suốt thời gian thực hiện nghiờn cứu đề tài.
Một lần nữa xin gởi đến những người thõn yờu, bạn, cỏc anh chị ... Đó gúp ý giỳp đở về
tinh thần cũng như về kinh nghiệm, kiến thức... một lời biết ơn sõu sắc nhất
TP. HỒ CHÍ MINH ngày 20 thỏng 2 năm 2000
Sinh viờn thực hiện
Lờ Trung Hiền

TÀI LIỆU THAM KHẢO

1. Điều khiển tự động 1,2


Pts : Nguyễn Thị Phương Hà
Nhà Xuất Bản Khoa Học Và Kỹ Thuật Năm 1996
2. Bài Tập Điều khiển tự động 1,2
Pts : Nguyễn Thị Phương Hà
Nhà Xuất Bản Khoa Học Và Kỹ Thuật Năm 1996
3. Điều khiển tự động
Lương Văn Lăng
Nhà Xuất Bản Giỏo Dục Năm 1996
4. Giỏo Trỡnh Lý Thuyết Điều khiển tự động Phần I,II
Th.s : Trần Sum
Trường Đại Học Sư Phạm Kỹ Thuật
5. Xử Lý tớn hiệu Và Lọc Số

Nguyễn Quốc Trung
Nhà Xuất Bản Khoa Học Và Kỹ Thuật Năm 1998
6. Tiểu Luận Mụn Điều Khiển Học Kỹ Thuật
Th.s : Lờ Cảnh Trung
7. Using Matlab Simulink And Control System Toolbox
Alberto Cavallo
Roberto Setola
Francesco Vasca
NXB Prentice Hall
8. Using Matlab To Analyze And Design Control System
Naomi Ehrich Leonard – Princeton University
William S. Levine
- University of Maryland
9. The Matlab 5 Handbook
Darren Redfern
Colin Campbell
NXB Springer

LỜI NểI ĐẦU
Ngày nay đất nước ta đang trờn đà phỏt triển về mọi mặt để hũa nhập vào nền văn minh
trong cỏc nước tiờn tiến ở khu vực và thế giới. Do đú cần sự cú mặt của ngành tự động điều
khiển để thực hiện cụng việc với độ chớnh xỏc và an toàn cao, một phần nào đú cũng làm
giảm bớt sự lao động chõn tay của con người.
Cựng với sự phỏt triển mạnh mẽ của ngành kỹ thuật mỏy tớnh và cụng nghệ thụng tin,
thỡ việc ứng dụng mỏy tớnh vào để giải những bài toỏn phức tạp trong hệ thống tự động điều


khiển - như hệ thống nhiều ngừ vào và nhiều ngừ ra (MIMO)- thỡ khụng khú khăn lắm , mà
độ chớnh xỏc lại cao hơn hẳn từ đú dẫn đến việc thiết kế và tớnh toỏn trở nờn dễ dàng trong
thời gian ngắn.

Để đúng gúp một phần nào đú và tuõn theo mục tiờu đào tạo của trường ĐH SƯ PHẠM
KỸ THUẬT, người viết đi vào tỡm hiểu một phần mềm được ứng dụng khỏ phổ biến trong
nhiều lĩnh vực, trong đú cú lĩnh vực tự động điều khiển, đú là MATLAB.
Matlab là một phần mềm rất được ưa chuộng cho cỏc lập trỡnh tớnh toỏn trong kỹ thuật hiện
nay. Nú hầu như được phổ biến rộng khắp trong cỏc trường đại học ở nhiều nước.Với Matlab
cụng việc tớnh toỏn trở nờn đơn giản và nhẹ nhàng hơn so với nhiều ngụn ngữ lập trỡnh khỏc
nhờ đó thiết kế sẵn cỏc toolbox giỳp cho người sử dụng:
 Control System Tollbox: là nền tảng của họ toolbox thiết kế điều khiển bằng Matlab. Nú
chứa cỏc hàn cho việc mụ phỏng, phõn tớch và thiết kế cỏc hệ thống trong tự động điều
khiển.
 Frequency Domain System Identification Tollbox: Bao gồm cỏc M-file giỳp cho việc mụ
phỏng cỏc hệ thống tuyến tớnh trờn cơ sở phộp đo đỏp ứng tần số của hệ thống.
 Fuzzy Logic Tollbox: Cung cấp một tập hợp đầy đủ cỏc cụng cụ cho việc thiết kế, mụ
phỏng và phõn tớch cỏc hệ thống logic mờ (Fuzzy Inferencs).
 Higher Order Spectral Analysis Toolbox: cung cấp cỏc cụng cụ cho việc xử lý tớn hiệu
dựng phổ bậc cao. Cỏc phương này đặc biệt hữu dụng cho phõn tớch cỏc tớn hiệu cú
nguồn gốc từ một quỏ trỡnh phi tuyến hay bị nhiễu phi Gaussian ( non-Gaussian noise)
xõm nhập.
 Image Processing Toolbox: chứ cỏc cụng cụ cho việc sử lý ảnh. Nú bao gồm cỏc cụng cụ
cho việc thiết kế cỏc bộ lọc và lưu trữ ảnh, nõng cấp ảnh, phõn tớch và thống kờ.
 Model Predictive Control Tollbox: đặc biệt hữu dụng cho cỏc ứng dụng điều khiển với
nhiều biến ngừ vào (input) và ngừ ra (output) mà phần lớn cú cỏc giới hạn nhất là trog kỹ
thuật húa chất.
 Mu-Analysis And Syntheris Tollbox: chứa cỏc cụng cụ chuyờn mụn húa cho điều khiển
tối ưu húa ; Đặc biệt trong lĩnh vực robot cao cấp và cỏc hệ thống đa biến tuyến tớnh.
 Signal Processing Tollbox: chứa cỏc cụng cụ xử lý tớn hiệu. Cỏc ứng dụng bao gồm:
Audio (Đĩa compact, băng digital), video (digital HDTV, xử lý và nộn ảnh), viễn thụng
(fax, telephone), y học, địa lý.
 Non-linear Control Design Tollbox: cho phộp thiết kế cỏc hệ thống điều khiển tuyến tớnh
và phi tuyến, sử dụng kỹ thuật tối ưu húa trờn cơ sở miền thời gian.

 Optimization Tollbox: Cỏc lệnh dựng cho sự tối ưu húa cỏc hàm tuyến tớnh và phi tuyến
tổng quỏt.
 Symbolic Match Toolbox: Bao gồm cỏc cụng cụ cho việc tớnh toỏn trờn cỏc biểu thức.
 System Identification Toolbox: Tập hợp cỏc cụng cụ cho ước lượng và nhận dạng (tỡm
mụ hỡnh toỏn học cho một hệ thống vật lý).
 Robust Control System: Cỏc cụng cụ cho phộp phõn tớch và tổng hợp cỏc hệ thống điều
khiển bằng robot.
Ngoài ra cũn cú cỏc toolbox khỏc như NAG Foundation Toolbox, Quantitative
Feedback Workshop, Spline Toolbox, Statics Toolbox.
Một khả năng khỏc cần phải nhắc đến của Matlab là biểu diễn data bằng đồ thị hai
chiều, ba chiều bằng cỏc lệnh (hàm) khỏ đơn giản.


Màn hỡnh giới thiệu Matlab 5.3


Màn hỡnh DEMO của Matlab


I

.

Chương mở đầu
---oOo---

I . Giới thiệu chung
Ngày nay tự động điều khiển đúng vai trũ quan trọng trong đời sống và cụng nghiệp.
Lĩnh vực này hiện hữu khắp nơi từ hệ thống phi thyền khụng gian, hệ thống điều khiển tờn
lửa, mỏy bay khụng người lỏi,robot...Hoặc trong cỏc quy trỡnh cụng nghệ sản xuất hiện đại

và ngay cả trong đời sống hằng ngày như : Điều khiển nhiệt độ, độ ẩm.
Phỏt minh đầu tiờn đỏnh dấu bước mở đầu cho sự phỏt triển của lĩnh vực điều khiển tự
động là bộ điều tốc ly tõm để điều chỉnh tốc độ mỏy hơi nước của James Watt (1874). Năm
1922, Nynorsky thực hiện hệ thống điều khiển cỏc con tàu và chứng minh tớnh ổn định của
hệ thống cú thể xỏc định bằng phương trỡnh vi phõn mụ tả hệ thống. Cũng ở thời điểm này
Nyquist đó đưa ra một nguyờn tắc tương đối đơn giản để xỏc dịnh tớnh ổn định của hệ thống
vũng kớn dựa trờn cơ sở đỏp ứng vũng hở đối với tớn hiệu vào hỡnh sin ở trạng thỏi xỏc lập.
Năm 1934 Hazen đó giới thiệu thuật ngữ điều chỉnh cơ tự động (Servo mechanism) cho
những hệ thống điều khiển định vị và thảo luận đến việc thiết kế hệ thống rơle điều chỉnh cơ
tự động với tớn hiệu ngừ vào thay đổi.
Trong suốt thập niờn 40 của thế kỷ XX, phương phỏp đỏp ứng tần số đó giỳp cho cỏc kĩ
sư thiết kế cỏc hệ thống vũng kớn tuyến tớnh thỏa cỏc yờu cầu chất lượng điều khiển. Từ cuối
thập niờn 40 đến đầu thập niờn 50 phương phỏp quỹ đạo nghiệm của Evans được phỏt triển
khỏ hoàn thiện. Với phương phỏp quỹ đạo ngiệm và đỏp ứng tần số được xem là cốt lỏi của lý
thuyết điều khiển cổ điển cho phộp chỳng ta thiết kế những hệ thống ổn định và thỏa cỏc chỉ
tiờu chất lượng điều khiển. Những hệ thống này được chấp nhận nhưng chưa phải là tối ưu,
hoàn thiện nhất.
Khi cỏc hệ thống mỏy múc hiện đại ngày càng phức tạp với nhiều tớn hiệu ngỏ vào và
ngỏ ra thỡ việc mụ tả hệ thống hiện đại này đũi hỏi một lượng rất lớn cỏc phương trỡnh. Lý
thuyết điều khiển cổ điển liờn quan đến hệ thống một ngỏ vào một ngỏ ra trở nờn bất lực để
phõn tớch hệ thống nhiều đầu vào và nhiều đầu ra. Kể từ năm 1960, nhờ mỏy tớnh số cho
phộp ta phõn tớch cỏc hệ thống phức tạp trong miền thời gian, lý thuyết điều khiển hiện đại
được phỏt triển để đối phú với sự phức tạp của cỏc hệ thống hiện đại. Lý thuyết điều khiển
hiện đại dựa trờn phõn tớch trong trong miền thời gian và tổng hợp dựng cỏc biến trạng thỏi,
cho phộp giải quyết cỏc bài toỏn điều khiển cú yờu cầu chặt chẻ về độ chớnh xỏc, trọng lượng
và giỏ thành của hệ thống trong lĩnh vực kỹ nghệ, khụng gian và quõn sự.


II . Mục đớch nghiờn cứu
Trờn đà phỏt triển đú, đồng thời chuẩn bị cho kỡ thi tốt nghiệp kết thỳc giai đoạn học

cũng như hoàn tất chương trỡnh học của trường. Người thực hiện đi vào nghiờn cứu sự ứng
dụng của Matlab trong lĩnh vực điều khiển tự động, nhằm tạo ra một hộp cụng cụ mà từ đú ta
cú thể tớnh toỏn hay tỡm hiểu cỏc chỉ tiờu về chất lượng, cũng như độ ổn định của hệ thống
điều khiển. Phần nào cũng giải quyết được những vấn đề gặp khú khăn trờn thực tế khi làm
bằng tay đối với những hệ thống phức tạp.
Cũng qua việc nghiờn cứu đề tài này người thực hiện cũng muốn cũng cố lại những kiến
thức đó học và tỡm hiểu thờm những nột mới từ những kiến thức đú, để sau khi tốt nghiệp cú
khả năng vận dụng vào cuộc sống thực tiễn.
Với đề tài “ SỬ DỤNG MATLAB TẠO HỘP CễNG CỤ DÙNG ĐỂ GIẢI CÁC BÀI
TOÁN TRONG TỰ ĐỘNG ĐIỀU KHIỂN“, người viết chia thành năm chương như sau:
 Chương I : Giới thiệu chung về Matlab nhằm giỳp cho chỳng ta hiểu rừ hơn những
nột mạnh của phần mềm này. Hầu như nú được ứng dụng trong mọi lĩnh vực.
 Chương II : Cỏc vấn đề cơ bản trong Matlab. Trong chương này chỳng ta đi vào
tỡm hiểu cỏch nhập xuất, tớnh toỏn, tạo hàm trong cửa sổ soạn thảo của Matlab và vẽ đồ
thị.
 Chương III : Ứng dụng Matlab 5.3 trong tự động điều khiển. Trong chương này
người viết trỡnh bày cỏch thức miờu tả cỏc biến trạng thỏi, ma trận trạng thỏi,cực (poles),
zero trong hệ thống LTI (Hệ thống tuyến tớnh bất biến theo thời gian). Cũng như cỏch tạo
ra hàm truyền từ những điều kiện, và từ đú xột tớnh ổn định của hệ thống thụng qua việc
vẽ giản đồ trong cỏc miền thời gian, tần số, hay quỹ đạo nghiệm.
 Chương IV : Sử dụng Matlab 5.3 viết chương trỡnh tạo ra hộp cụng cụ.
 Chương V : Kết quả thực thi chương trỡnh.


III. Giới hạn đề tài.
Do đõy là một phần mềm mới được phổ biến rộng do đú việc hiểu được nú cần phải cú
thời gian nghiờn cứu lõu hơn. Nhưng do chương trỡnh đào tạo của nhà trường phõn cụng cho
việc làm đề tài ngắn, nờn người thực hiện chỉ đi vào nghiờn cứu ứng dụng của Matlab trong
lĩnh vực điều khiển tự động ở hệ tuyến tớnh liờn tục bất biến theo thời gian (LTI) và chỉ dừng
lại ở hàm liờn tục. Đồng thờido nhiều yếu tố khỏch quan hay chủ quan mà việc tiếp thu những

kiến thức mới cũn hạn chế. Nờn người viết rất mong sự đúng gúp nhiệt tỡnh của cỏc thầy cụ,
cỏc bạn đọc; Dể việc tiếp thu kiến thức mới tốt hơn và đỳt kết được nhiều kinh nghiệm trong
tương lai.

Xin chõn thành cảm ơn.

SVTH :

Lờ Trung Hiền


II : CƠ BẢN VỀ MATLAB
>>>oOo<<<II>>>oOo<<<

I. Bắt đầu với matlab
Matlab được khởi động khi ta chọn matlab trong hệ thống (tức là nhấp start _
programs _ matlab _ matlab5.3), hay nhấp(click) vào biểu tượng của Matlab. Khi đú
Matlab sẽ xuất hiện trờn màn hỡnh, với một vài lời giới thiệu ban đầu và sau đú là dấu nhắc
hệ thống “>>” trong Matlab. Từ đú ta cú thể thực hiện việc tớnh toỏn hay thực hiện cỏc cõu
lệnh một cỏch dễ dàng.
Muốn thoỏt khỏi Matlab, ta cú thể thực hiện một trong những cỏch sau:
 Cỏch 1: vào file menu và click vào Exit MATLAB.
 cỏch 2: nhấp vào biểu tượng close ( )trờn cửa sổ làm việc của Matlab.
 Cỏch 3: dựng tổ hợp phớm ctrl+Q
II. Cỏc biểu thức toỏn cơ bản trong matlab.
Làm việc trong mụi trường Matlab thỡ khụng phức tạp lắm bởi vỡ hầu hết cỏc lệnh đó
được nhập vào vỡ vậy bạn chỉ cần viết biểu thức toỏn học và enter sau đú Matlab sẽ hiển thị
kết quả trờn màn hỡnh.
Vớ dụ 1: Tớnh A= 4:3 ta thực hiện như sau:
ằ A=4/3

Kết quả là:
A=
1.3333
Tức là biến A cú giỏ trị 4:3=1.3333. Trong Matlab cụng nhận tờn biến cú tối đa 19 kớ tự và
kớ tự đầu tiờn của tờn biến phải là chữ cỏi. Chỳ ý việc đặc tờn biến là kớ tự thường hay kớ tự
hoa là hoàn toàn khỏc nhau tron g Matlab, vớ dụ như biến A và biến a là khỏc nhau hoàn
toàn.Nhưng hầu hết những lệnh lệnh trong Matlab được viết bằng kớ tự thường.
Trong trường hợp khụng đặt tờn biến cho biểu thức và chỉ muốn kết quả của biểu thức ta cú
thể thực hiện :
ằ 4/3
Kết quả là:
ans =
1.3333
Trong trường hợp này Matlab tạo ra một biến giả tờn là ans (tức là viết tắc của từ answer).
Một cỏch khỏc muốn tạo ra một biến mới nhưng khụng muốn hiển thị kết quả trong Matlab,
bằng cỏch ta thờm dấu chấm phẩy (;) ở cuối biểu thức.
vớ dụ 2 : khi thực hiện lệnh
ằ B=4+7;
Ta khụng nhận được kết quả trờn màn hỡnh.Muốn hiển thị để kiểm tra giỏ trị của biểu thức ta
nhập vào như sau:
ằB
Ta cú kết quả:
B=
11


Trong Matlab khi một cõu lệnh hay biểu thức quỏ dài ta sử dụng dấu (...) để nối cõu của
hàng trờn và hàng dưới.
vớ dụ 3: tớnh p=1+2+3+4+5+6 dựng hai hàng ta thực hiện :
ằ p=1+2+...

3+4+...
5+6
kết quả cho:
p=
21
Khi tớnh mũ x cơ số y nào đú ta dựng toỏn tử sau:
vớ dụ 4: tớnh p2 ta thự hiện lệnh:
ằ p^2
Kết quả nhận được:
ans =
441
( tức là 212=441)
 Một số toỏn hạng cơ bản sử dụng trong Matlab:
^
*
/ hay \
+
-

phộp toỏn lũy thừa
phộp toỏn nhõn
phộp toỏn chia
phộp toỏn cộng
phộp toỏn trừ

Trong trường hợp phộp chia cú hai loại : phộp chia trỏi (\) và phộp chia phải (/), chỳng hoàn
toàn giống nhau nhưng số bị chia và số chia bị đảo ngược.
Ta cú : a/b=a-1.b
vậy
a\b = b/a = b-1.a

Sau đõy là một số vớ dụ về biểu thức toỏn cơ bản :
vớ dụ 5 : tớnh x=1+23/4*2
ằ x=1+2^3/4*2
kết quả là:
x=
5
vớ dụ 6: tớnh x=1+23/(4*2)
ằ y=1+2^3/(4*2)
Kết quả là:
y=
2
vớ dụ 7: tớnh x=(1+2)3/(4*2)
ằ z=(1+2)^3/(4*2)
Kết quả cho
z=
3.3750

 chỳ ý: Những biến mặc định trong Matlab
pi
Inf

hằng số pi=3.1416
là giỏ trị ở 


NaN là giỏ trị của (0/0) hay (Inf/Inf)
vớ dụ 8:
ằ d=4/0
Kết quả cho:
Warning: Divide by zero. ( cảnh bỏo chia cho 0)

d=
Inf
vớ dụ 9:
ằ c=Inf/Inf
kết quả cho:
c=
NaN
việc nhập vào Matlab một số phức là hoàn toàn đơn giản .
vớ dụ 10 : nhập t=2+3i hay 2+ 3j cũng được
ằ t=2+3*i
Kết quả:
t=
2.0000 + 3.0000i
vớ dụ 11 : Tỡm căn bậc hai của số phức : 2+3i
ằ z=sqrt(2+3*i)
Kết quả:
z=
1.6741 + 0.8960i

 chỳ y: Hàm sqrt

tỡm căn bậc hai

III. Tạo ra một tập tin nguyờn bản (script file)
Để thực hiện một cụng việc gồm một chuổi cỏc động tỏc tớnh toỏn và dễ dàng lưu trữ
ta nờn tạo ra một tập tin gọi là Scrip File. Đõy là một tập tin cú phần mở rộng là “.m” và
được viết trong màn hỡnh soạn thảo của Matlab. Cấu trỳc cơ bản của script file gồm hai
phần, được miờu tả như trong vớ dụ sau:
%****************************************************
% baitap1.m

% bai tap 1
% tao ra mot da thuc nhu sau
%
18(s+20)
% G(s) = ------------------%
(s+15)(s+25)(s+0.4)
% bien NUM tao ra bieu thuc cua tu
% bien DEN tao ra bieu thuc cua mau
% lenh CONV dung de nhan hai da thuc
% ham printsys dung de viet ra bieu thuc num/den
%****************************************************
num = 18*[1 20];
den = conv(conv([1 15], [1 25]), [1 0.4]);
B
printsys(num,den,'s')

A


%***************************************************

Đõy là Script File cú tờn là baitap1.m gồm:
 phần A: gọi là phần giải thớch, nú được lờ đi trong Matlab khi tớnh toỏn. Và chỉ xuất
hiện khi trong Matlab ta gỏ lệnh:
>> help baitap1
 Phần B: là toàn bộ chương trỡnh chớnh và sẽ được Matlab thực thi khi ta gọi đỳng tờn
baitap1.
IV. Ma trận, vectơ và đa thức
IV.1. Những lệnh về ma trận và vectơ
Ma trận được nhập vào Matlab bằng cỏch liệt kờ cỏc phần tử của ma trận và cho

chỳng vào trong một dấu ngoặc vuụng. Cỏc phần tử của một hàng được phõn cỏch bởi dấu
phẩy hoặc cỏc khoảng trống, và cỏc hàng được phõn cỏch bằng dấu chấm phẩy “;”.
Vớ dụ khi nhập vào Matlab:
ằ A=[1 2;3 4]
Kết quả ta được ma trận A như sau:
A=
1
3

2
4

Ta cũng cú thể nhập theo cỏch sau:
ằ A=[1 2
3 4]
Để tỡm kớch thước của ma trận A ta dựng lệnh size như sau:
ằ size(A)
Kết quả:
ans =
2 2 (Tức là ma trận A cú kớch thước là 2x2 ).
Muốn thay đổi phần tử thứ hai của hàng thứ hai (tức là 4) thành số 5 ta thực hiện:
ằ A(2,2)=5
Kết quả cho:
A=
1 2
3 5
Khi ta thờm một phần tử vào một ma trận mà vượt quỏ kớch thước tồn tại của ma trận, thỡ
Matlab sẽ tự động thờm vào cỏc số 0 cần thiết để duy trỡ một ma trận vuụng. Như vớ dụ sau:
ằ A(3,3)=6 (thờm phần tử ở cột thứ ba và hàng thứ ba là 6)
Kết quả cho:

A=
1 2 0
3 5 0
0 0 6
Như ta biết vectơ là một ma trận (1 x n) hay là một ma trận (n x 1), trong đú n là một số
nguyờn dương. Ta cũng cú thể tạo ra cỏc vectơ theo cựng cỏch với ma trận, vớ dụ như:
ằ V=[sin(pi/3) -7^3 56]
Kết quả cho:
V=


0.8660 -343.0000 56.0000
Trong trường hợp đặc biệt vectơ cũng cú thể tạo ra dựng toỏn tử hai chấm “:”, vớ dụ như:
ằ K=1:5
Kết quả cho ra một vectơ từ 1 đến 5 với bước nhảy là 1
K=
1 2 3 4 5
Khi muốn bước nhảy là một số delta bất kỡ ta thực hiện lệnh tổng quỏt như sau: >> K =
1:delta:5
Vớ dụ tạo một vectơ từ 1 đến 2 với bước nhảy là 0.3 ta gỏ:
ằ K=[1:0.3:2]
Kết quả hiển thị như sau:
K=
1.0000 1.3000 1.6000 1.9000
Lệnh logspace(x,y,n) tạo ra một vectơ với n cỏc phần tử được đưa vào trong số gia logarit
giữa 10x va 10y .Lệnh này được sử dụng để vẽ bản đồ theo tỉ lệ logarit như đồ thị Bode. Lệnh
linkspace cũng giống như lệnh logspace ngoại trừ cỏc phần tử của vectơ được sắp đặt theo
tuyến tớnh.
Khi muốn thờm vào ma trận A ở trờn một hàng ta thực hiện như sau:
ằ A=[A;[7 8 9]] (thờm vào ma trận một hàng 7 8 9)

kết quả cho:
A=
1
3
0
7

2
5
0
8

0
0
6
9

ma trận A ban đầu
hàng được thờm vào

ma trận A cú được
Từ ma trận A cú được ở trờn ta trớch ra một ma trận B gồm hàng 2 và hàng 3 của ma trận A,
thực hiện như sau:
ằ B=A(2:3,1:3) ( tức là lấy hàng 2 và 3; cột 1 đến cột 3 của
ma trận A)
Kết quả cho:
B=
3 5 0
0 0 6
Hay thực hiện lệnh sau:

ằ B=A(2:3,:) ( tức là ma trận B lấy hàng 2, 3 và tất cả cỏc
cột cua ma trận A)
Kết quả cho giống như trờn:
B=
3 5 0
0 0 6
Matlab cú cỏc lệnh để tạo ra cỏc ma trận đặc biệt. Vớ dụ ta cú thể tạo ra một ma trận chộo
với lệnh diag bằng cỏch dựng cỏc vectơ chứa cỏc phần tử chộo như đối số đầu vào, như là:
ằ D=diag([1 2 3])
Kết quả thu được:
D=
1
0
0

0
2
0

0
0
3


Một ma trận đặc biệt hữu dụng khỏc là ma trận đồng nhất eye(a) với a là số nguyờn sẽ tạo
ra một ma trận đồng nhất cú kớch thước là a x a. Tương tự khi thực hiện lệnh eye(size(B)) sẽ
tạo ra một ma trận đồng nhất cú cựng kớch thước với ma trận B. Lệnh zeros, ones và rand
làm việc giống như lệnh eye và tạo matrận với những phần tử là 0, những phần tử bằng 1 và
những phần tử ngẫu nhiờn (được phõn chia đồng đều từ 0 đến 1) tương ứng. Những lệnh này
cũng dựng để tạo ra những matrận khụng vuụng. Vớ dụ như zeros(2,4) tạo ra matrận 2 x 4

của số 0 như sau:
ằ zeros(2,4)
ans =
0 0 0 0
0 0 0 0
Bõy giờ ta xột vớ dụ sau:
ằ A = [zeros(3,1) eye(3) ; -1 -2 -3 -5]
Kết quả thu được:
A=
tạo ra từ zeros(3,1)
0
0
0
-1

1 0 0
0 1 0
0 0 1
-2 -3 -5

tạo ra từ eye(3)
tạo ra từ vectơ [-1 -2 -3 -5]

IV.2. Cỏc lệnh về đa thức
Đa thức được diễn tả trong Matlab bởi hàng vectơ với những phần tử là những hệ số
của đa thức theo thứ tự giảm dần của số mũ.
Vớ du: nhập vào đa thức p = s2+5s+6,ta thực hiện trong MATLAB là: p = [1 5 6].Hệ số zero
cũng được thờm vào để trỏnh sự mơ hồ; Như là nhập đa thức q = s3+5s+6
ta nhập vào
như sau q= [1 0 5 6]. Một đa thức cú thể tớnh được giỏ trị ứng với giỏ trị từng biến bằng

cỏch dựng lệnh polyval.
Vớ dụ :
ằ polyval(p,1)
Kết quả thu được:
ans =
12 (tức là cho giỏ trị của đa thức p với s = 1)
Lệnh roots thỡ thuận lợi cho việc tỡm nghiệm của đa thức .
Vớ dụ :
ằ r = roots (p)
Kết quả cho:
r=
-3
-2
Tương tự ta cú thể xõy dựng đa thức từ nghiệm của nú
vớ du :
ằ t = poly ([-4 -5])

t=
1 9 20
Lệnh conv dựng để nhõn hai đa thức và deconv để chia hai đa thức
Script file polyroly.m được thể hiện dưới dõy mụ tả những lệnh đó dựng .
Polyroly.m
% polyroly
% examble of multiplying
f1 = [1 3 2];
f2 = [1 3];
f3 = [1 2];

and dividing polynomials.
% f1 = s^2 +3s +2

% f2 = s+3
% f3 = s+2


g = conv (f1,f2) ;
h = deconv (g,f3)



% g = (s^2 +3s +2)(s+3)
% h = (s^2 +3s +2)(s+3)/ (s+2)

chỳ ý:Matlab sử dụng % dể diễn giải, những thứ theo sau % xem như lờ đi trong MATLAB

.
Khi gỏ tờn của script file khụng cú đuụi .m ta được kết quả là:
ằ polyroly
h=
1 4 3
Trong vớ dụ trờn g chia cho f3 khụng cú số dư. Núi chung khi ta sử dụng một đối số
nhập vào, thỡ lệnh deconv sẽ cho ra duy nhất một thương số dự cho số dư khụng phải
là 0. Tuy nhiờn nếu sử dụng hai đối số nhập vào thỡ Matlab sẽ trả về hai giỏ trị
thương q và số dư r như sau:
ằ [q,r] = deconv(f1, f3)
Kết quả là:
q=
1 0
r=
0 0 2
 Ta cú bảng túm tắt cỏc lệnh trong đa thức

poly : cho đa thức từ nghiệm
roots : tỡm nghiệm của đa thức
polyval : giỏ trị của đa thức cho bởi một điểm
polyvalm : ước lượng ma trận của đa thức
conv : nhõn hai ma trận
deconv : chia hai ma trận
residue :phõn tớch phõn số thành từng phần
polyder : đa thức đạo hàm
polyfit : đa thức nội suy
V. Toỏn tử và hàm trong ma trận
Matlab thi hành những phộp toỏn trong ma trận một cỏch dễ dàng như thực hiện trong
phộp toỏn vụ hướng, đơn giản chỉ cần gỏ:
ằ B+ D
ans =
6 0
0 8
Tương tự cho nhõn hai ma trận:
ằB*D
ans =
5 0
0 12
Phộp chia hai ma trận cũng tương đối đơn giản. Nhưng matlab cần phõn biệt hai biểu tượng
của phộp chia là / và \. Giả sử bạn muốn tỡm x trong phương trỡnh Px = Q. Giải phỏp diễn tả
là : x = P-1Q trong Matlab dựng phộp chia trỏi như : x = P\Q. Bõy giờ giả sử muốn tỡm y
trong phương trỡnh yP = Q, diễn tả là y = Q.P-1 . Trong Matlab sử dụng phộp chia phải như :


y = Q/P. Mặc dự Matlab khụng cần những lời chỉ dẫn trong nhõn hoặc chia hai ma trận nhưng
nú qui định kớch thước bờn trong hai ma trận nhõn hay chia phải giống nhau. Ngoại trừ việc
nhõn hoặc chia một matrận với một đối số vụ hướng, số nàylà giỏ trị tớnh toỏn. Matlab sẽ

cảnh bỏo nếu bạn nhõn hai ma trận cú kớch thước khụng thớch hợp.
Vớ dụ như chạy chương trỡnh mistake.m
mistake.m






% mistake: show what happens when you try to multiply
% matrices having incompatible dimensions.
x = eye(2);
y = [1 2;3 4;5 6];
z = x*y

Matlab hiển thị lỗi như sau khi chay chương trỡnh trờn:
??? Error using ==> *
Inner matrix dimensions must agree.
error in = =>mistake.m
on line 5 = => Z = x * y;
Để gở lỗi ta nhập lệnh size(x) và size(y) để kiểm tra kớch thước của ma trận x và y.
Tuy nhiờn bạn sẽ tỡm thấy x là matrận 2 x 2 và y là matrận 3 x 2 .
Matlab bao gồm nhiều chức năng khỏc biểu diễn sự hoạt động của matrận, như là
lệnh det(X) và inv(X) kết quả tạo ra định thức (determiant) và nghịch đảo (inverse)
của X theo từng cỏi tương ứng. Hàm rank(X) xỏc định loại của matrận X . Hàm
eig(X) trả về giỏ trị của X trong một cột vetơ. Hàm expm(X) để tớnh ex.

 Chỳ ý rằng cú những chức năng qui định việc nhập cỏc đối số vào matrận vuụng.
Để khảo xỏc thờm vài chức năng khỏc và học nhiều hơn về cỏch dựng của những
chức năng trờn ta dựng lệnh help để diễn tả .

Matlab cho ta cỏch dựng cỏc hàm khỏc nhau để tớnh toỏn trờn cỏc chuổi thay vỡ
trờn cỏc ma trận. Vớ dụ giả sử ta cú một bảng số liệu như một chuổi gọi là Data. Bõy
giờ ta muốn tớnh căn bậc hai và tỡm bỡnh phương của mổi phần tử trong Data. Dựng
một dấu chấm “.” ta cú thể biến đổi cỏc toỏn tử ma trận toỏn học thành toỏn tử phần
tử liờn tục. Đặc biệt theo sau cỏc toỏn tử là dấu “.” là biểu thị toỏn tử chuổi. Như vậy
để nhõn hai chuổi R và S cú cựng kớch thước theo từng phần tử tương ứng ta thực
hiện R.*S như dưới đõy:
ằR=[4 5
0 1];
ằS=[2 3
4 6];
ằ R.*S
ans =
8 15
0 6
Matlab cú một vài chức năng tự động tớnh theo từng phần tử tương ứng trong một
dóy. Vớ dụ như , exp(X) sẽ trở về một dóy với từng phần tử được trở thành hàm e
mũ của từng phần tử tương ứng của X.
Matlab tạo ra cỏc toỏn tử liờn hệ của từng phần tử. Toỏn tử liờn hệ này sẽ so sỏnh hai
đại lượng và cho ra kết quả là 1 nếu đỳng và bằng 0 nếu sai. Vớ dụ nếu nhập vào t =
17 > 55, matlab sẽ cho kết quả t = 0. khi ta sử dụng với hai ma trận, toỏn tử ma trận
sẽ so sỏnh tương ứng từng phần tử trong ma trận. Vớ dụ như , L = D <= X sẽ kiểm tra
mỗi phần tử của ma trận D tương ứng với từng phần tử của X. Nếu phần tử của D
nhỏ hơn hoặc bằng với phần tử của X tương ứng thỡ L cú giỏ trị là 1, ngược lại L cú
giỏ trị bằng 0.
Tất cả cỏc toỏn tử logic như & đặc trưng cho AND , | đặc trưng cho OR và ~ cho
NOT tất cả trả về giỏ trị 1 nếu đỳng và 0 nếu sai.
Vớ dụ:



ằ R& S
ans =
1 1
0 1
Tương tự :
ằ ~L
ans =
0 0
0 1
Ta cú thể nghiờn cứu thờm về toỏn tử so sỏnh bằng cỏch dựng lệnh help relop hoặc
help <=
VI. Tạo hàm chức năng
Khi bạn đó nắm vững một chuổi cỏc lệnh thực hiện những chức năng hữu dụng,
cú thể ta muốn biến nú thành một lệnh hàm mới và tạo ra một nhỏnh làm việc độc lập
với Matlab. Muốn thực hiện được điều này ta phải tạo ra một file hàm. Cỏc file hàm
này là cỏc m-file, cỏc file này giống như script file. Sự khỏc biệt lớn là hàng đầu tiờn
của file hàm bắt đầu với từ function, theo sau là một cõu xỏc định tờn của hàm và
cỏc đối số đầu vào, đầu ra; cú dạng :
 Function[đối số ngừ vào]=tờn hàm(đối số ngừ ra).
Vớ du: tao ra hàm timnghiem2 để tỡm nghiệm phương trỡnh bậc hai với hệ số a#0.
Ta thực hiện như sau:
% timnghiem2.m
% Tao ra ham timnghiem2 de tim nghiem phuong tring bac hai:
% 2
% a.x + b.x + c = =0 (voi he so a#0 )
% GV huong dan : TS. LE CANH TRUNG
% Duoc viet boi : LE TRUNG HIEN MSSV:95101051
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function [x1,x2] = timnghiem2(a,b,c) % tao ham timnghiem2
can_delta=sqrt(b^2-4*a*c); % tim can bac hai cua delta

x1=(-b+can_delta)/(2*a); % tinh nghiem x1
x2=(-b-can_delta)/(2*a); % tinh nghiem x1
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Để xem hàm cú tỏc dụng khụng?. Ta tao ra một Script file bt_thu.m bằng cỏch cho
nhập vào cỏc hệ số a,b,c và dựng hàm timnghiem2 để tỡm nghiệm. như sau:
% bt_thu.m
% thu tim nghiem phuong trinh bac hai
% dung file ham da tao la timnghiem2
% GV huong dan : TS. LE CANH TRUNG
% Duoc viet boi : LE TRUNG HIEN MSSV:95101051
% +++++++++++++++++++++++++++++++++++++++++++++++++++++
a=input('nhap vao he so a (voi a#0): ') % cho nhap vao he so a tu ban
phim
b=input('nhap vao he so b: ') % cho nhap vao he so a tu ban phim
c=input('nhap vao he so c: ') % cho nhap vao he so a tu ban phim
disp('ta co cac nghiem sau: ') % hien thi cau lenh trong dau (' ')
[x1,x2]=timnghiem2(a,b,c)
% +++++++++++++++++++++++++++++++++++++++++++++++++++++

Bõy giờ ta cho chạy thử bt_thu.m ở ngoài dấu nhắc Matlab như sau:
ằ bt_thu
nhap vao he so a (voi a#0): 1
a=


1
nhap vao he so b: -3
b=
-3

nhap vao he so c: 2
c=
2
ta co cac nghiem sau:
x1 =
2
x2 =
1
Khi ta thực hiện lệnh sau ngoài dấu nhắc Matlab ta được:
ằ help timnghiem2
Kết quả hiển thị:
timnghiem2.m
Tao ra ham timnghiem2 de tim nghiem phuong tring bac hai:
2
a.x + b.x + c = =0 (voi he so a#0 )
GV huong dan : TS. LE CANH TRUNG
Duoc viet boi : LE TRUNG HIEN MSSV:95101051
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VII. Những vấn đề cơ bản về đồ thị
Matlab cho phộp vẽ đồ thị trong những cửa sổ khỏc nhau, và tờn là “figures”.Một cỏch
mặc nhiờn matlab vẽ đồ thị trong cửa sổ số 1. Nếu ta muốn mở cửa sổ thứ n chỳng ta dựng
lệnh figure(n),với n là số nguyờn.Bõy giờ matlab sẽ vẽ đồ thị trờn cửa sổ n này trừ phi người
sử dụng thay đổi cửa sổ mới.Muốn đúng cửa sổ n này ta dựng lệnh close(n),lệnh close all
đúng tất cả cỏc cửa sổ,trong khi lệnh close chỉ đúng duy nhất một cửa sổ nguồn .
VII.1. Đồ thị trong khụng gian hai chiều.
Bõy giờ ta sẽ làm việc trong cửa sổ đầu tiờn.Lệnh chớnh để vẽ đồ thị hai chiều là
plot.
Ta bắt đầu bằng vớ dụ đơn giản, để vẽ đồ thị của dảy sau:
{o,0.48,0.84,1,0.91,0.6,0.14} ta thực hiện
ằ Y=[0 0.48 0.84 1 0.91 0.6 0.14]

Y=
0 0.4800 0.8400 1.0000 0.9100 0.6000
ằ plot(Y)
Ta cú được kết quả như hỡnh 1 ở dưới:
Từ hỡnh 1 ta cú một số nhận xột sau:

0.1400


 Trục chia độ là tự động
 Tiờu đề của cửa sổ là “Figure No. 1” để chỉ cửa sổ đang làm việc là cửa sổ nguồn.
 Điểm nối trong đồ thị là những đường liờn tục.

 Chỳ

ý: lệnh plot cũn chấp nhận một tham số chuổi để dịnh màu và kiểu nối của đồ
thị.Matlab cú bốn kiểu cho đường vẽ,năm kiểu cho điểm vẽ và tỏm màu cơ bản,được túm tắt
như sau:
kiểu đường
-:
-.

kiểu điểm
.
+
*
o
x

kiểu màu

vàng
y
tớm
m
xanh nhợt c
đỏ
r
xanh lơ g
xanh lơ b
trắng
w
đen
k

hỡnh 1
Nếu chỳng ta muốn vẽđồ thị ứng với mỗi điểm của vectơ Y ở trờn là những vũng trũn màu
tớm,ta dựng lệnh sau:
ằ plot(Y,'om')
Kết quả là hỡnh 2 ở dưới:

 chỳ ý: trong lệnh

plot(Y,'om'); ‘om’ là vẽ những điểm của vectơ Y là những vũng trũn (o)
cú màu là màu tớm (m_magenta).
Bõy giờ ta muốn thờm cỏc tiờu đề,đặt tờn trục,và vẽ những đường lưới,cỏch thực hiện như
sau:
ằ Y=[0 0.48 0.84 1 0.91 0.6 0.14];
ằ plot(Y)
ằ title(‘bieu do noi ket cac diem trong vecto Y’)



ằ xlabel(‘Truc hoanh’)
ằ ylabel(‘Truc tung’)
ằ grid on
Kết quả như hỡnh 3
Muốn chốn một văn bản text vào một tọa độ (x,y) nào đú trong đồ thị ta dựng lệnh:
ằ text(x,y,'text')
Khi ta dựng lệnh gtext(‘text’) thỡ chử text sẽ được chốn vào trong đồ thị khi ta nhấp chuột
vào một vị trớ thớch hợp nào đú trờn đồ thị.

hỡnh 2


×