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.
41 trang |
Chia sẻ: Mr Hưng | Lượt xem: 837 | Lượt tải: 0
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:
- lap_trinh_matlab_co_ban_4694.pdf