P. 1
mo_phong_va_lap_trinh_mo_phong_tren_MATLAB

mo_phong_va_lap_trinh_mo_phong_tren_MATLAB

|Views: 125|Likes:
Được xuất bản bởiminh_tien88

More info:

Published by: minh_tien88 on Jan 08, 2011
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/02/2013

pdf

text

original

Chương 1 Mô phỏng và lập trình mô phỏng trên MATLAB

Mô phỏng (simulation) là một kỹ thuật dựa trên máy tính để nghiên cứu xây dựng một hệ thống (hay quá trình) thực mới hoặc cải tiến một hệ thống thực đã có để đạt được chất lượng tốt hơn, trước khi thiết kế chế tạo hệ thống được cải tiến này, nhằm giảm thiểu thời gian thiết kế hệ thống trong khi đồng thời hiểu rõ được hoạt động của hệ thống này. Với khả năng xử lý của máy tính ngày càng mạnh và với tốc độ cao, đồng thời với việc các hệ thống thực ngày nay ngày càng phức tạp, mô phỏng đã và đang là một công cụ thiết thực trong nhiều lĩnh vực khác nhau, đặc biệt là trong kỹ thuật. Đối với ngành Điện tử–Viễn thông nói chung và lĩnh vực xử lý tín hiệu nói riêng, mô phỏng được thực hiện phần lớn trên phần mềm lập trình MATLAB (Matrix Laboratory). Với nhiều công cụ tính toán kết quả hiệu quả và các chức năng hiển thị kết quả mạnh và nhanh hiệu quả, MATLAB cho phép chúng ta nhanh chóng xây dựng mô hình mô phỏng của một hệ thống để từ đó nghiên cứu tìm hiểu và cải tiến nó. Chương học này nhằm cung cấp khái niệm cơ bản về mô phỏng và giới thiệu đôi nét về phần mềm MATLAB. Trong các chương học tiếp theo, sinh viên sẽ có cơ hội thực hành mô phỏng một số vấn đề đơn giản liên quan đến kỹ thuật xử lý tín hiệu.

I.1.
I.1.1.

Vai trò và phương pháp luận của mô phỏng
Mô phỏng là gì?

Mô phỏng là một quá trình thiết lập và thí nghiệm trên máy tính mô hình toán học của một hệ thống vật lý. Trước hết, chúng ta mô hình hóa một hệ thống thực bằng một mô hình giải tích. Mô hình này được biểu diễn bởi các phương trình toán học. Từ mô hình giải tích này, chúng ta xây dựng một mô hình mô phỏng trên máy tính. Mô hình mô phỏng bao gồm các lệnh máy tính. Từ đó, chúng ta phân tích hệ thống vật lý dựa trên mô hình mô phỏng để đưa ra những giải pháp thiết kế hiệu quả, trước khi chế tạo hệ thống vật lý này. Như vậy, hệ thống vật lý đã 1

I. mô phỏng giúp chúng ta hiểu rõ hơn các hoạt động bên trong của một hệ thống. Thông qua mô phỏng. Một số hệ thống có độ phức tạp cao gây khó khăn trong việc hiểu một cách thấu đáo các hoạt động bên trongcủa chúng. cho đến khi hệ thống mô phỏng được kiểm nghiệm kỹ lưỡng. mô phỏng cho phép chúng ta thử nghiệm hệ thống mới này. Trong trường hợp này. Mục đích của mô phỏng Trước hết. Nếu chúng ta muốn thiết kế một hệ thống mới. Đồng thời các hệ thống này chỉ được phân tích trong trạng thái tĩnh.1. việc sửa đổi cải tiến nó đòi hỏi chúng ta cần có nhiều thử nghiệm khác nhau trên hệ thống để đánh giá chất lượng. Mô phỏng giúp chúng ta lấy được thông tin mà không phải động đến hệ thống vật lý. mô phỏng còn có những lợi ích khác. hàng năm. đồng thời cho phép chúng ta xem xét hệ thống trong trạng thái động. Việc xây dựng mô hình giải tích của một hệ thống thông thường là phức tạp và đòi hỏi người nghiên cứu phải có năng lực toán học cao.2. Mô phỏng làm giảm các yêu cầu phân tích. Việc nghiên cứu nó gặp khó khăn về mặt thời gian. Các công cụ mô phỏng ngày nay cho phép chúng ta có thể nghiên cứu thí nghiệm một hệ thống nào đó mà không cần biết thông suốt đến một lĩnh vực nào đó liên quan đến một phần của hệ thống. Qua các quá trình trừu tượng hóa. chúng ta làm thí nghiệm trong “thời gian nén”.2 Chương 1: Mô phỏng và lập trình mô phỏng trên MATLAB được trừu tượng hóa hai lần thông qua mô hình giải tích và mô hình mô phỏng.1. Mô phỏng nhằm hỗ trợ đưa ra những giải pháp cải tiến để hệ thống hoạt động với chất lượng tốt hơn. I.3. Lợi ích của mô phỏng Bên cạnh các mục đích đã nêu trên đây. mô phỏng giúp chúng ta xây dựng mô hình động của hệ thống và tìm hiểu xem các hoạt động của hệ thống chung cũng như các hệ thống con trong sự tương tác qua lại giữa các hệ thống con này. . Trước khi xây dựng một hệ thống vật lý mới. Trong khi đó. Có những hệ thống rất quan trọng hoặc rất nhạy cảm mà chúng ta không thể đơn thuần dừng sự hoạt động của nó để kiểm tra sửa đổi. chúng ta đã phải đặt thêm những giả thiết. Có những quá trình xảy ra trong thực tế hàng tháng. mô phỏng giúp chúng ta xem xét một hệ thống kỹ lưỡng mà không phải động đến hệ thống vật lý. chúng ta có thể mô phỏng hệ thống này trên máy tính để tìm hiểu xem hệ thống như vậy có hoạt động tốt như ý muốn hay không trước khi chúng ta chế tạo nó. Trong trường hợp chúng ta muốn cải tiến một hệ thống đã có sẵn. đặc biệt là trong trường hợp số liệu là ngẫu nhiên. Trong trường hợp này. mô phỏng chỉ mất vài giây hay vài tiếng đồng hồ để kiểm nghiệm. chẳng hạn như hệ thống điều khiển không lưu hay hệ thống chuyển tiền qua máy tính của ngân hàng. làm xấp xỉ. Sử dụng mô phỏng không những tiết kiệm được thời gian và tiền bạc mà còn có thể giúp chúng ta thử nghiệm với nhiều số liệu khác nhau. đặc biệt là khi sự tương tác bên trong giữa các hệ thống con là động. và có thể cả làm giản lược hệ thống nữa. Có nghĩa là chúng ta không thể đơn thuần tắt hệ thống và xem xét các hệ thống con một cách riêng lẻ.

5. Như chúng ta đã thấy.1. • Lựa chọn loại mô hình thích hợp. Trong quá trình chuyển từ hệ thống vật lý đến mô hình mô phỏng. Như vậy. chúng ta sử dụng từ hệ thống rất nhiều. Sau đó. Tương tự. phương pháp luận tổng thể sử dụng cho việc chuyển tải từ bài toán ban đầu thành mô hình mô phỏng thích hợp. Phương pháp luận của mô phỏng Mô phỏng bao gồm các bước cơ bản sau đây: • Chuyển tải một bài toán quan tâm thành một mô hình mô phỏng. Vì vậy. việc mô phỏng để giải quyết những bài toán nhỏ trên đây là những thuật toán đã được định nghĩa rõ và đã được giải quyết chặt chẽ. Tạm thời. Tuy nhiên. các công cụ tính toán phù hợp để giải quyết những bài toán nhỏ. . nếu việc mô hình hóa có sai sót thì việc đưa ra kết quả không chính xác với hệ thống thực là có thể xảy ra. mô phỏng có những hạn chế của nó. và mô hình này lại dựa trên mô hình giải tích. chúng ta xem một hệ thống là một khối (block). mô phỏng dựa trên mô hình mô phỏng.4. phương pháp mô phỏng thích hợp. được kích thích bởi một hay nhiều tín hiệu đầu vào. chúng ta có xem bài toán tổng thể của chúng ta là một hệ thống cần thiết kế. Thông thường.1.1. chúng ta sẽ tìm hiểu chính xác thế nào là hệ thống. hệ thống chuyển đổi tín hiệu đầu vào và cho ta một hay nhiều tín hiệu đầu ra. thế nào là tín hiệu. Trên đây.I. • Chia bài toántổng thể thành nhiều bài toán nhỏ. Theo các bước cơ bản trên đây. Qua đó. thì nếu số liệu đầu vào bị sai thì mô phỏng sẽ cho chúng ta kết quả sai. Trong khi đó. công việc thu thập số liệu rất quan trọngvà cần được chú trọng nhiều. Việc cần thiết là làm thế nào để làm giảm thiểu độ sai số đó. Trong các bài học sau. chúng ta có thể phải đặt các giả thuyết. và có bản chất định lượng. I. và các bài toán được chia nhỏ là các hệ thống con hay các khối nhỏ. Hạn chế của mô phỏng Mặc dù mục đích của mô phỏng giúp chúng ta giải quyết được những vấn đề quan trọng. làm xấp xỉ. • Tổng hợp các kết quả giải quyết được đối với những bài toán nhỏ để đưa đến giải pháp chung cho bài toán tổng thể. hoặc làm giản lược. cũng như việc chọn lựa các kỹ thuật để giải áp dụng vào mô hình mô phỏng thường mang tính khám phá tìm tòi. bước thử nghiệm ban đầu có thể là mô phỏngchính số liệu đầu vào và sử dụng nó để thí nghiệm hệ thống cần thiết kế. chúng ta cần thay số liệu mô phỏng bằng số liệu thực thông qua đo đạc. Cho dù việc mô hình hóa là chính xác. Vai trò và phương pháp luận của mô phỏng 3 I. và các lợi ích của nó giúp ta giải quyết nhanh chóng hơn.

I. MATLAB là một phần mềm giúp chúng ta làm tính toán.1. Các thông tin về MATLAB cũng như nhiều tài liệu học và các trợ giúp khác có thể tìm thấy tại: http://www.mathworks. kết quả được hiển thị như sau: ans = 8 .4 Chương 1: Mô phỏng và lập trình mô phỏng trên MATLAB I. Lập trình mô phỏng trên MATLAB MATLAB. làm mô phỏng và xây dựng mô hình. chúng ta muốn tính tổng của 3 và 5. Khởi động MATLAB Khi khởi động MATLAB. Chẳng hạn. tạo ra các hiển thị đồ họa và cung cấp các công cụ giao diện đồ họa. có nghĩa là Phòng Thí nghiệm (tính toán) Ma-trận. chúng ta sẽ thấy một cửa sổ lệnh (Command Window) như trong hình vẽ sau. viết tắt của Matrix Laboratory.2. phân tích số liệu.com. Các lệnh của MATLAB được đánh vào sau dấu >>.2. phát triển các thuật toán. Đánh lệnh >> 3+5 và bấm phím Enter.

. khởi tạo giá trị của b.z.y=a-b. lấy a trừ b. double. Một véc-tơ được khởi tạo như sau: >> a=[1 2 3] a = 1 2 3 Để khởi tạo nhanh một véc-tơ có giá trị tăng dần từ 0 đến 6 và cách nhau 1. chứa kết quả của dòng lệnh được thực hiện cuối cùng.) như trong một số ngôn ngữ lập trình khác. Các phép toán trong MATLAB Các phép toán cộng trừ nhân chia thông thường được thực hiện như sau: >> a=3.w x = 8 y = -2 z = 15 w = 0. cộng a với b.2.x=a+b. Nếu chúng ta đặt biến kết quả cho lệnh. Trên đây là một dòng lệnh chứa nhiều lệnh: khởi tạo giá trị của a.. nhân a với b và lấy a chia cho b.2. Lập trình mô phỏng trên MATLAB 5 ans là biến kết quả do MATLAB tự đặt. thì kết quả sẽ hiển thị như sau: >> a=3+5 a = 8 I. thì kết quả của lệnh đó không được hiển thị (mặc dù MATLAB đã tính toán xong).2.y. Chúng ta có thể hiển thị cùng một lúc các kết quả đã thực hiện trên đây như sau: >> x. Chú ý nếu sau lệnh có dấu .w=a/b.z=a*b.6000 >> Lưu ý là chúng ta không cần khai báo dạng biến (interger.I.b=5.. thì sử dụng dấu “:” như sau: >> a=[0:6] a = 0 1 2 3 4 5 6 .

5.z=a.1 1 1] a = 1 2 3 1 1 1 Như vậy. thì sử dụng hai dấu “:” như sau: >> a=[0:1. chẳng hạn 1. Tương tự./). chẳng hạn a ∗ b. các véc-tơ cần có độ dài như nhau. ta có các phép toán trừ (-).0000 1.5000 1. thì chúng ta muốn thực hiện phép nhân ma trận. Trong trường hợp này. ma trận a có 2 hàng và 3 cột.0000 4.6 Chương 1: Mô phỏng và lập trình mô phỏng trên MATLAB Nếu chúng ta muốn các giá trị cách nhau khác 1.*b.5000 Chú ý trong phép nhân và phép chia có dấu “.”. vì hai ma trận a và b đều có kích thước giống nhau là 1 × 3.b=[2 2 2]./b y = -1 0 1 z = 2 4 6 w = 0. Kích thước của ma trận có thể được tìm thấy bởi .x=a+b x = 3 4 5 Biến x được tính theo công thức: x = [a(1) + b(1) a(2) + b(2) a(3) + b(3)].5:6] a = 0 1.w=a. nhân (. phép nhân ma trận sẽ không thực hiện được. và MATLAB sẽ báo lỗi như sau: >> a=[1 2 3].b=[2 2 2].0000 Khi sử dụng các phép toán trên véc-tơ.5000 6. >> y=a-b. Nếu không có dấu chấm.*) và chia (. Một ma trận được khởi tạo như sau: >> a=[1 2 3.z=a*b ??? Error using ==> mtimes Inner matrix dimensions must agree. Đối với phép cộng ta làm như sau: >> a=[1 2 3].5000 3.

2 2].b=[1 2. Trigonometric.3.1 1 1]. ta đánh >> help matlab\elfun Elementary math functions. . 1 3. để tính giá trị của sin(x) ta làm như sau: >> y=sin(2).x=a*b b = 1 2 1 3 2 2 x = 9 14 4 7 I.3) Khi điều kiện kích thước được tuân thủ. Sine. Sine of argument in degrees. Chẳng hạn. cos. Lập trình mô phỏng trên MATLAB 7 >> size(a) ans = 2 3 Để lấy giá trị của phần tử ở hàng 1 cột 3 của ma trận a ta làm >>a(1.. Hyperbolic sine.9093 z = 1.z=sin(pi) y = 0. Lệnh help có thể được thực hiện để tìm hiểu cách sử dụng một lệnh nào đó.. phép nhân ma trận có thể được thực hiện như sau: >> a=[1 2 3.2.I. sin sind sinh asin . Các hàm toán học cơ sở MATLAB cung cấp một số các hàm toán học cơ sở: sin.2. Inverse sine. để hổ trợ tính toán toán học...2246e-016 Để biết có những hàm toán học nào MATLAB đã cung cấp. Hãy thử .

chúng ta chỉ đánh >> help để hiển thị toàn bộ cấu trúc mà phiên bản MATLAB của chúng ta có.*y.’r-.2.4. để xem thông tin về những lệnh MATLAB đã cung cấp cho cấu trúc đó. tìm đến một cấu trúc nhất định.8 −1 0 2 4 6 8 10 12 14 Nếu chúng ta muốn vẽ hàm sin(x) và x sin(x) trong cùng một đồ thị thì làm như sau >> z=x. .2 0 −0. để hiểu rõ thêm về chúng hoặc biết thêm các phép toán khác trong MATLAB.6 −0. ta làm như sau >> x=0:0. chẳng hạn như cấu trúc các hàm toán học cơ sở matlab\elfun mà chúng ta đã làm trên đây.2.01:4*pi.4 0.6 0.2.’) >> legend(’sin(x)’.z.y) 1 0.’xsin(x)’) . Quay trở lại với những phép toán chúng ta sử dụng trong phần I.4 −0. Hiển thị đồ thị MATLAB cung cấp công cụ hiển thị đồ họa một cách nhanh chóng.y.8 Chương 1: Mô phỏng và lập trình mô phỏng trên MATLAB >> help sin Ở mức tổng quát nhất.x. Chẳng hạn. I. Sau đó.2 −0.y=sin(x).plot(x.’b:’. dùng lệnh: >> help matlab\ops Hãy dùng lệnh help để tìm hiểu về lệnh more và lệnh lookfor.plot(x. muốn vẽ đồ thị của hàm sin(x) trong đó x chạy từ 0 đến 4π.8 0.

elseif . end I.. Xây dựng một lệnh mới (function) Để viết một lệnh (chương trình). end for ... otherwise ....6.5.. case .. Lập trình mô phỏng trên MATLAB 9 8 6 4 2 0 −2 −4 −6 −8 −10 −12 0 2 4 6 8 10 12 14 sin(x) xsin(x) Hãy sử dụng lệnh help để tìm hiểu cách sử dụng lệnh plot và lệnh legend được sử dụng trên đây.I.2. chúng ta dùng chương trình soạn thảo (Editor) của MATLAB. Điều khiển luồng lệnh Như nhiều ngôn ngữ lập trình khác. end switch .. end while ... . else .. MATLAB cũng có các dạng điều khiển các luồng lệnh trong như: if ..2.2.. ta có thể viết các dòng lệnh cần thiết vào trong chương trình soạn thảo như sau để tính giá trị hàm số x sin(x) và vẽ đồ thị của nó nếu cần. I. Chương trình soạn thảo thảo được kích hoạt bằng lệnh: >>edit Sau đó...

hoặc về điều khiển học như “Control Toolbox”. “SIMULINK”. >>help xsinx Hãy lập một lệnh nhanmatran.m) rồi chuyển sang Cửa sổ Lệnh và thực hiện các lệnh sau: >>x=10.2. I.10 Chương 1: Mô phỏng và lập trình mô phỏng trên MATLAB Bây giờ. Trong các môn học khác.01:10*pi.7. Để biết được trong MATLAB đã cài có các hộp công cụ nào.y=xsinx(x.m dùng điều khiển luồng lệnh for để thực hiện phép nhân hai ma trận A và B để được ma trận C theo công thức Cij = Aik Bkj thay vì sử dụng phép nhân ma trận trực tiếp (*).y=xsinx(x) >>x=0:0. chúng ta sẽ tập trung vào hộp công cụ “Signal Processing Toolbox”. nhiều thuật toán thông dụng cho mỗi ứng dụng đã được cài đặt và tối ưu hóa để người sử dụng có thể nhanh chóng xây dựng mô hình mô phỏng. ghi lại file đã soạn thảo (sẽ có tên là xsinx. anh chị sẽ có dịp làm quen với các hộp công cụ khác về viễn thông như “Communications Toolbox”.1). Trong mỗi hộp công cụ. Hộp công cụ (Toolboxes) Một trong những nét mạnh của MATLAB là có rất nhiều các hộp công cụ (thư viện) hổ trợ cho các ứng dụng khác nhau. hoặc về xử lý tín hiệu ngẫu nhiên như “Statistical Signal Processing Toolbox”. chúng ta dùng lệnh . Đối với Xử Lý Tín Hiệu Số.

I.2. Lập trình mô phỏng trên MATLAB 11 >>ver Cuối cùng. chẳng hạn về xử lý tín hiệu. để tìm hiểu về các lệnh trong một hộp công cụ. chúng ta dùng lệnh >>help signal\signal .

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->