Bài giảng Lập trình Matlab cơ bản

Giới thiệu Matlab

2. Cơ sở về Matlab

3. Function files và Script files.

4. Đồ họa

5. Tạo giao diện trong Matlab.

6. Simulink.

pdf41 trang | Chia sẻ: Mr Hưng | Lượt xem: 837 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình Matlab cơ bản, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
• MarkerFaceColor: màu của khối đánh dấu • MarkerSize: kích thước của khối đánh dấu Màu được xác định bằng các thông số: 3. Các dạng đánh dấu trên đồ thị 5/9/2013 28 Ví dụ : • x = -pi : pi/10 : pi; • y = tan(sin(x)) - sin(tan(x)); • plot(x,y,'--rs','LineWidth',2,'MarkerEdgeColor','k',... 'MarkerFaceColor','g','MarkerSize',10) Đường cong y = f(x) có các đặc tả sau : - đường vẽ là đường đứt nét(--) - khối đánh dấu hình vuông (s), đường vẽ màu đỏ(r) - đường vẽ rộng 2 point - các cạnh của khối đánh màu đen - khối đánh dấu màu green - kích thước khối đánh dấu 10 point Đặt các thông số cho trục • Ví dụ: 1. x=[0 1 2 3]; 2. y=[0 4 1 5]; 3. h=plot(x,y) • Để thấy các thuộc tính đồ họa của hàm plot ta dùng lệnh • set(h) • Bây giờ ta thay đổi thuộc tính của đồ thị: 1. set(h,’Color’, ‘r’) %dat lai mau do 2. set(h,'LineWidth',6) %dat do rong duong 3. set(h,'Marker','v','MarkerSize',6) 5/9/2013 29 Ghi nhãn lên các trục tọa độ Ví dụ 1. x=[-5:0.01:5]; 2. y1=x.^2; 3. plot(x,y1,'r--') 4. xlabel('Truc x'); 5. ylabel('Truc y'); 6. legend('y1=x^2') 7. text(-3,9,' \leftarrow x^2','FontSize',18) 8. gtext('Do thi') 5/9/2013 30 4.Vẽ nhiều hình trên 1 trục Ví dụ: Vẽ 2 hàm y1=x2 và y2=cos3x, (rad) trên cùng 1 đồ thị. Cách 1: 1. x=[-5:0.01:5]; 2. y1=x.^2; 3. y2=cos(3*x); 4. plot(x,y1,x,y2,'r--') 5. xlabel('Truc x'); 6. ylabel('Truc y'); 7. legend('y1=x^2','y2=cos 3x') Cách 2: 1. x=[0:0.01:5]; 2. y1=x.^2; 3. y2=cos(3*x); 4. grid on 5. hold on 6. plot(x,y1,'r--') 7. plot(x,y2, 'm--') 8. xlabel('Truc x'); 9. ylabel('Truc y'); 10.hold off 5.Vẽ nhiều trục • Hàm: subplot(m,n,p) subplot(mnp) • subplot(2,2,[1 3]) subplot(2,2,2) subplot(2,2,4) • subplot(2,2,1:2) subplot(2,2,3) subplot(2,2,4) x=[-5:0.01:5]; for n = 1:8 subplot(4,2,n) plot(x,sin(n*pi*x)) end 5/9/2013 31 5.Vẽ nhiều trục • Ví dụ: 1. function dieucheAM(fc,fm) 2. Ac = 1; % Carrier Amplitude 3. Am = 1; % Baseband Amplitude 4. m = Am/Ac; 5. t = linspace(0,1,100*fc); 6. c=Ac*cos(2*pi*fc*t); 7. e = (Ac + Am*cos(2*pi*fm*t)); 8. u = (Ac + Am*cos(2*pi*fm*t)).*cos(2*pi*fc*t); %DSB-AM 9. subplot(1,3,1);plot(t,e,'r');grid on 10. subplot(1,3,2);plot(t,c,'r');grid on 11. subplot(1,3,3);plot(t,u);grid on 6.Các lệnh vẽ đồ thị khác • Lệnh BAR: vẽ đồ thị dạng cột 1. Y = round(rand(5,3)*10); 2. subplot(2,2,1); bar(Y,'group') 3. title 'Group' 4. subplot(2,2,2); bar(Y,'stack') 5. title 'Stack' 6. subplot(2,2,3); barh(Y,'stack') 7. title 'Stack' 8. subplot(2,2,4) ; bar(Y,1.5) 9. title 'Width = 1.5' • Lệnh POLAR : vẽ hệ tọa độ cực 1. t = -pi:0.01:pi; 2. polar(t, sin(t)) 1 2 3 4 5 0 2 4 6 8 Group 1 2 3 4 5 0 5 10 15 20 Stack 0 5 10 15 20 1 2 3 4 5 Stack 1 2 3 4 5 0 2 4 6 8 Width = 1.5 5/9/2013 32 6.Các lệnh vẽ đồ thị khác • Lệnh POLAR : vẽ hệ tọa độ cực Ví dụ 1: t = -pi:0.01:pi; polar(t, sin(t)) Ví dụ 2: x=0:0.1:2*pi; polar(x,abs(sin(2*x).*cos(2*x))) 6.Các lệnh vẽ đồ thị khác • Lệnh STAIRS: vẽ đồ thị dạng bậc thang 1. x = -pi:0.2:pi; 2. stairs(x,sin(x)) 3. xlabeL('Truc x') 4. ylabel('y = stairs(x,sin(x)') 5. grid on -4 -3 -2 -1 0 1 2 3 4 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 Truc x y = st ai rs (x ,s in (x ) 5/9/2013 33 6.Các lệnh vẽ đồ thị khác • Lệnh STEM: phân bố lược 1. x = 0:0.1:4; 2. stem(x,exp(x)) 3. xlabeL('Truc x') 4. ylabel('y = stairs(x,sin(x)') 5. grid on 0 0.5 1 1.5 2 2.5 3 3.5 4 0 10 20 30 40 50 60 Truc x y = st ai rs (x ,s in (x ) Ví dụ 3: Soạn thảo script file có tên bai3.m để lập biểu đồ tổng số sinh viên Điện Tử - Tin học tốt nghiệp tại trường X từ năm 1996 đến 2001 với dữ liệu như sau: • % Lap bieu do tong so sinh vien Dien tu – Tin hoc tot nghiep • % 1. svdt=[38 33 36 31 60 70]; 2. svth=[48 54 120 92 110 131]; 3. nam=1996:2001; 4. subplot(211), bar(nam,svdt); 5. title('Sinh vien Dien tu tot nghiep tu 1996-2001'); 6. subplot(212), bar(nam,svth); 7. title('Sinh vien Tin hoc tot nghiep tu 1996-2001'); 8. colormap(cool(5)); Colormap  5/9/2013 34 6.Các lệnh vẽ đồ thị khác • Lệnh PIE: phân bố % hình tròn x=[20 45 15 13 7]; y=[0 0 1 0 0] % 1 để nhấn mạnh phần 15, %chọn 0 để chúng dính liền nhau. pie(x,y) 20% 45% 15% 13% 7% Lệnh ginput • fplot('sinc(x)',[-2*pi,2*pi]); • [x,y]=ginput(3) %lấy tọa độ 3 điểm trên đồ thị 5/9/2013 35 II. ĐỒ HỌA 3D • Ví dụ: • >> [x,y,z]=peaks; %hàm có phân bố Gauss • >> plot3(x,y,z) • >> mesh(x,y,z) %bề mặt dạng lưới • >> surf(x,y,z) %tô màu bề mặt • >> waterfall(x,y,z) • >> pcolor(x,y,z)%giá trị Z được thể hiện với giá trị màu tương ứng • >> contour(x,y,z) %lấy đường viền trong 2D Bài 5: SIMULINK • Simulink là một phần mềm mở rộng của MATLAB (Toolbox của Matlab) dùng để mô hình hoá, mô phỏng và phân tích một hệ thống động, thiết kế hệ thống điều khiển, thiết kế DSP, hệ thống thông tin và các ứng dụng mô phỏng khác. • Simulink được ghép bởi hai từ Simulation và Link. Simulink cho phép mô tả hệ thống tuyến tính,hệ phi tuyến, các mô hình trong miền thời gian liên tục, hay gián đoạn hoặc một hệ gồm cả liên tục và gián đoạn. 5/9/2013 36 CÁC BLOCKS LIBRARY: • Thư viện SOURCES • Thư viện Đồ thị (SINKS) • Thư viện Phần Rời Rạc (DISCRETE) • Thư viện Phần Tuyến tính (LINEAR) • Thư viện Phần Phi Tuyến (NONLINEAR) • Thư viện Phần Đầu Nối (CONECTIONS) • Thư viện BLOCKSETS và TOOLBOXES • . Các kiểu dữ liệu Simulink chấp nhận các kiểu dữ liệu sau : • double số thực với độ chính xác gấp đôi • single số thực với độ chính xác đơn • int8 số nguyên có dấu 8 bit • uint8 số nguyên không dấu 8 bit • int16 số nguyên có dấu 16 bit • uint16 số nguyên khg dấu 16 bit • int32 số nguyên có dấu 32 bit • uint32 số nguyên không dấu 32 bit 5/9/2013 37 Các bước để vẽ mô hình 1.Từ cửa sổ Matlab đánh lệnh simulink. Cửa sổ thư viện các khối sẽ xuất hiện 2.Từ cửa sổ thư viện ta nhấp chuột vào File/New/Model hoặc nhấn Ctrl+ N. 3. Chọn các Block ở các thư viện thích hợp và xây dựng mô hình sử dụng thao tác "nhấn – kéo – thả" chuột. Ví dụ 1 • Trong sơ đồ này chọn các khối từ các thư viện: + Thư viện các nguồn tín hiệu (Sources): Chọn Sin wave. + Thư viện các khối nhận tín hiệu (Sinks): Chọn Scope. + Các hàm tuyến tính (continuous): Chọn Integrator. + Commonly userd blocks: Chọn Mux. 5/9/2013 38 Ví dụ 2 • Mô phỏng một phương trình dùng để biến đổi độ Celcius thành độ Fahrenheit là : TF = (9/5)TC + 32 • Trước hết ta khảo sát các khối cần để tạo mô hình:  khối Ramp trong thư viện Sources để đưa vào tín hiệu nhiệt độ  khối Constant trong thư viện Sources để tạo hằng số 32  khối Gain trong thư viện Math để tạo ra hệ số 9/5  khối Sum trong thư viện Math để cộng hai đại lượng  khối Scope trong thư viện Sinks để hiển thị kết quả. Ví dụ 3: Mô phỏng hệ pt z1 +z2 =1 -z1+z2=1 5/9/2013 39 Ví dụ 4: Mô phỏng pt vi phân x’(t) = -2x’(t) + u(t) • Với u(t) là một sóng vuông có biên độ=1 và tần số =1 rad/sec. Ví dụ 5: Thiết kế và phân tích hệ thống 5/9/2013 40 Ví dụ 6: Mô phỏng phương trình sau Sine Wave Scope Product2 Product1 Product eu Math Function -1 Gain1 -1 Gain 80 Constant Clock 3 1.Nhập vào chuỗi số và in ra kết quả tính của: • A) tổng bình phương các số trong chuỗi? • B) giai thừa của các phần tử trong chuỗi? • C) số nguyên tố trong chuỗi? 2. Nhập chuỗi ký tự chữ thường và in ra chuỗi ký tự chữ HOA? 3. Nhập vào chuỗi số và in ra chuỗi mới với thứ tự ngược lại? 4. Vẽ đồ thị và tìm cực trị của hàm f(x)=x^3+2*x^2-1 ? 5. Tính x^n=? 5/9/2013 41 6. Viết chương trình yêu cầu Nhập liên tiếp các số và khi nhập số 0 thì dừng nhập. Tính trung bình cộng các số âm và trung bình cộng các số dương vừa nhập?

Các file đính kèm theo tài liệu này:

  • pdflap_trinh_matlab_co_ban_4694.pdf
Tài liệu liên quan