Chương 3 Các công cụ tốn học thơng thường của Matlab
5.3. Điều khiển các trục tọa độ
5.3.1. câu lệnh axis
Hàm axis có một số các tuỳ chọn để thay đổi tỷ lệ, hướng và tỷ lệ. Thông thường matlab xác định giá trị lớn nhất và nhỏ nhất của dữ liệu để chọn một vùng vẽ tương xứng. Lệnh axis sẽ quy định lại các giá trị này theo yêu cầu của người dùng:
axis([xmin xmax ymin ymax])
Lệnh axis cũng chấp nhận một số các từ khoá để điều khiển việc vẽ các trục:
axis square : Tạo cho toàn bộ trục x và y có cùng chiều dài
axis equal : tạo ra các khoảng chia trên trục X và Y có chiều dài như
nhau.
axis auto : Trả lại chế độ mặc định trong việc vẽ ra các trục
axis on : Viết ra tên của trục và đánh dấu các điểm chia trên trục
axis off : Huỷ bỏ việc viết ra tên của trục và đánh dấu các điểm chia trên trục
Ví dụ:
Các câu lệnh
x = 0:.025:pi/2; plot(x,tan(x),'-ro')
Sẽ sử dụng hệ số tỷ lệ tự động trên cơ sở của giá trị Ymax=tan(1.57), có giá trị >1000:
Tuy nhiên đồ thị trên không thể hiện được quan hệ hàm số một cách rõ nét. Kết quả nhận được sẽ tốt hơn nếu ta gõ lệnh:
axis([0 pi/2 0 5]) 5.3.2. Câu lệnh Grid
grid off : không vẽ ra các đường lưới grid on : vẽ ra các đường lưới
grid: Đảo ngược tình trạng hiển thị hiện thời của lưới. 5.4. Ghi chú trên đồ thị
5.4.1. Hàm xlabel, ylabel và zlabel :
Đưa vào dòng chú giải các trục x, y, z
Cú pháp:
xlabel('string') xlabel(fname)
xlabel(...,'PropertyName',PropertyValue,...) h = xlabel(...)
Mơ tả
Mỗi trục của đồ thị có thể có nhãn riêng được tạo ra bằng các lệnh xlabel, ylabel hoặc zlabel.
xlabel('string') Ghi chú cho trục x của hệ toạ độ hiện thời.
xlabel(fname) Lấy giá trị của hàm fname, với kết quả là một chuỗi, sau đó
hiển thị chuỗi đó bên cạnh trục x.
xlabel(...,'PropertName',PropertyValue,...) Cho phép chúng ta gán các thuộc tính khác nhau cho nhãn của trục x (xem phần các đặc tính của văn bản đồ hoạ). 5.4.2 Hàm title : Chèn vào dòng tên đồ thị Cú pháp: title('string') title(fname) title(...,'PropertyName',PropertyValue,...) h = title(...) Mơ tả
Chúng ta có thể dùng lệnh title để viết tiêu đề cho đồ thị:
title('string') Dùng chuỗi 'string' làm tiêu đề cho đồ thị.
title(fname) Xác định giá trị của hàm chuỗi fname và dùng nó làm tiêu đề cho
đồ thị trên cửa sổ đồ hoạ hiện thời.
title(...,'PropertyName',PropertyValue,...) Cho phép quy định các thuộc tính khác nhau cho tiêu đề của đồ thị.
5.4.3 Hàm text :
Chèn văn bản vào điểm bất kỳ trên đồ thị
Cú pháp:
text(x,y,'string') text(x,y,z,'string')
text(...'PropertyName',PropertyValue...)
Trong đó x,y là toạ độ của điểm sẽ xuất văn bản ra: 'string' là chuỗi văn bản được xuất ra.
Trong trường hợp muốn xuất ra nhiều dòng văn bản, thay cho việc đưa vào chuỗi 'string', chúng ta hãy đưa vào mảng khối với các phần tử của mảng là các dòng văn bản.
Ví dụ dưới đây sẽ tạo ra hai mảng khối, một dùng cho hàm uicontrol và mảng thứ 2 dùng cho lệnh text.
str1(1) = {'Center each line in the Uicontrol'}; str1(2) = {'Also check out the textwrap function'}; str2(1) = {'Each cell is a quoted string'};
str2(2) = {'You can specify how the string is aligned'};
str2(3) = {'You can use LaTeX symbols like \pi \chi \Xi'};
str2(4) = {'\bfOr use bold \rm\itor italic font\rm'}; str2(5) = {'\fontname{courier}Or even change fonts'}; plot(0:6,sin(0:6)) uicontrol('Style','text','Position',[80 80 250 65],... 'String',str1); text(5.75,sin(2.5),str2,'HorizontalAlignment','right' )
Kết quả nhận được như sau:
Hình 5.4. Văn bản được chèn vào đồ thị
Tất cả các biến có dữ liệu dạng chuỗi đều có thể sử dụng thay cho chuỗi 'string' trong các câu lệnh. Ví dụ như chúng ta có dữ liệu ở dạng véc tơ cột các chuỗi văn bản sau:
PersonalData = ['Jack Straw ';'489 Main St.';'Wichita KN '];
Để hiển thị các dữ liệu này trên màn hình đồ hoạ ta thực hiện các câu lệnh: text(x1,y1,['Name: ',PersonalData(1,:)])
text(x2,y2,['Address: ',PersonalData(2,:)]) text(x3,y3,['City and State: ',PersonalData(3,:)])
Nếu biến chứa dữ liệu số, ta phải chuyển nó thành dữ liệu chuỗi ví dụ: x = 21;
text(xcoord,ycoord, ['Today is the ',num2str(x),'st day.']) sẽ in ra tại toạ độ (xcoord,ycoord) dòng chữ : 'Today is the 21st day.'
5.4.5. Quy định các thuộc tính của văn bản đồ hoạ
Để quy định vị trí, cách căn chỉnh, kích cỡ và kiểu font chữ của văn bản đồ hoạ đưa ra bởi các lệnh xlabel, ylabel, zlabel, text, title ..., chúng ta có thể gán thuộc tính cho các dịng văn bản đó ở dạng :
<câu lệnh>(...., 'Property Name',<property value>...).
ở đây:
<câu lệnh> là các câu lệnh viết chữ của Matlab (xlabel, text, title ...) 'Property Name' là tên thuộc tính (cần đặt bên trong dấu ' ')
<property value> là giá trị của thuộc tính có thể là chuỗi hoặc số nguyên, số thực ...
a, Các thuộc tính của văn bản
Bảng 5.1. Các thuộc tính của văn bản
Tên thuộc tính ý nghĩa giá trị
' FontName' Cho phép quy định kiểu font chữ
Tên font chữ (dạng chuỗi)
'Position' Quy định vị trí đặt chuỗi văn bản
toạ độ x và y (z) của điểm: [ x y (z)]
'Rotation' Góc xoay của dịng văn bản Số thực chỉ góc tính bằng độ
'VerticalAlignment' Quy định kiểu căn chỉnh theo phương thẳng đứng
'Top', 'Bottom', 'Middle'
'HorizontalAlignment '
Quy định kiểu căn chỉnh theo phương ngang
'FontSize' quy định cỡ chữ số nguyên
b, Xuất các ký tự đặc biệt
Trong các chuỗi của đối số của các hàm viết chữ trong chế độ đồ hoạ ta có thể đưa vào các ký tự điều khiển để xuất ra các chữ cái hy lạp, ký hiệu toán học, và kiểu font. Các mã điều khiển được đặt sau dấu '\' ví dụ:
Bảng 5.2. Các ký tự điều khiển dùng để xuất chữ cái hy lạp và biểu tượng
Chuỗi ký tự điều khiển Biểu tượng Chuỗi ký tự điều khiển Biểu tượng Chuỗi ký tự điều khiển Biểu tượng
\alpha \upsilon \sim ~
\beta \phi \leq
\gamma \chi \infty
\delta \psi \clubsuit
\epsilon \omega \diamondsuit
\zeta \Gamma \heartsuit
\eta \Delta \spadesuit
\theta \Theta \leftrightarro
w
\vartheta \Lambda \leftarrow
\iota \Xi \uparrow
\kappa \Pi \rightarrow
\lambda \Sigma \downarrow
\mu à \Upsilon \circ º
\nu \Phi \pm ±
\xi \Psi \geq
\pi \Omega \propto
\rho \forall \partial
\sigma \exists \bullet •
\varsigma \ni \div ữ
\tau \cong \neq
\equiv \approx \aleph
\Im \Re \wp
\otimes \oplus \oslash
\cap \cup \supseteq
\supset \subseteq \subset
\int \in \o
\rfloor \lceil \nabla
\lfloor \cdot ã \ldots ...
\perp \neg ơ \prime '
\wedge \times x \0
Chúng ta có thể điều khiển trực tiếp kiểu font chữ bằng các ký tự điều khiển:
\fontname Trong trường hợp này tên font chữ sẽ phải đặt trong dấu {}. kế tiếp phần điều khiển font chữ, chúng ta có thể thêm các mã điều khiển:
\bf - kiểu chữ đậm \it - kiểu chữ nghiêng \sl - oblique font
\rm - kiểu chữ bình thường
\fontsize{fontsize} - Định nghĩa cỡ chữ.
Các chỉ số trên và dưới được định nghĩa bằng các ký tự điều khiển "_" và "^"
5.4.6. các ví dụ
Để hiển thị ngày hiện thời trên tiêu đề của đồ thị ta dùng hàm: title(date)
Để đưa vào các chuỗi số ta dùng các lệnh sau: f = 70;
c = (f--32)/1.8;
title(['Temperature is ',num2str(c),'C'])
Include a variable's value in a title and set the color of the title to yellow: n = 3;
title(['Case number #',int2str(n)],'Color','y') Include Greek symbols in a title:
title('\ite^{\omega\tau} = cos(\omega\tau) + isin(\omega\tau)') Include a superscript character in a title:
title('\alpha^2')
Include a subscript character in a title: title('X_1')
Ví dụ : đưa vào các chuỗi ký tự đặc biệt t = -pi:pi/100:pi;
y = sin(t); plot(t,y)
axis([-pi pi -1 1])
xlabel('-\pi \leq \itt \leq \pi') ylabel('sin(t)')
title('Graph of the sine function')
text(1,-1/3,'\it{Note the odd symmetry.}') Đưa ra đồ thị như hình vẽ:
Hình 5.5. Giao diện đồ thị tổng quát trong Matlab
5.4.7. Các tuỳ chọn của lệnh plot
Trong lệnh plot ta có thể đưa vào các tuỳ chọn ở dạng: plot(...,'PropertyName',PropertyValue,...)
Trong đó 'PropertyName' là tên các thuộc tính,
PropertyValue là giá trị của thuộc tính mà ta muốn gán: Dưới đây là bảng liệt kê các thuộc tính của đồ thị:
Bảng 5.3. Các thuộc tính của đồ thị
Tên thuộc tính ý nghĩa kiểu giá trị
'LineWidth' điều khiển bề dầy của nét vẽ đồ thị số nguyên 'MarkerEdgeColor' Điều khiển màu của nét vẽ biểu tượng
đánh dấu điểm
các ký tự chỉ màu ví dụ:'g','y'...
'MarkerSize' Kích thước của biểu tượng đánh dấu điểm
số nguyên
'MarkerFaceColor' Điều khiển màu của biểu tượng đánh dấu điểm các ký tự chỉ màu ví dụ:'g','y'... Ví dụ: plot(x,sin(2*x),'-mo',... 'LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','r',... 'MarkerSize',12) 5.4.8. Các lệnh viết chữ khác
a, Lệnh gtext
Cú pháp: gtext('string') h = gtext('string') Mô tả
gtext sẽ hiển thị chuỗi văn bản tại vị trí chỉ định bằng chuột trên đồ thị
b, lệnh ginput
Nhập dữ liệu của các điểm bằng chuột Cú pháp
[x,y] = ginput(n) [x,y] = ginput Description
x,y] = ginput(n) Cho phép bạn chọn n điểm bằng chuột và trả kết quả là toạ
độ x và y của các điểm chọn cho các véc tơ x và y. Bnj có thể kết thúc việc chọn điểm ngay cả khi chưa nhập đủ n điểm bằng cách ấn Enter
x,y] = ginput Cho phép chọn số điểm không hạn chế.
5.5. Các đồ thị dạng lưới và bề mặt 5.5.1. Các hàm tạo bề mặt 5.5.1. Các hàm tạo bề mặt
Matlab định nghĩa một bề mặt lưới bởi các toạ độ Z trên lưới của mặt xy. Dùng các đường thẳng để nối các điểm kề nhau. Hàm mesh và surf hiển thị các bề mặt ở
dạng 3 chiều. Mesh cung cấp các bề mặt dạng khung dây trong đó chỉ thể hiện màu ở các đường nối. Surf hiển thị màu cả đường nối và bề mặt
5.5.2. Trực quan hóa các hàm hai biến
Để hiển thị hàm 2 biến z=f(x,y), hãy tạo các ma trận x và y chứa đựng các hàng và cột lặp. Sau đó sử dụng các ma trận này để tính ra đồ thị của hàm
Hàm meshgrid chuyển phạm vi được định nghĩa bằng một véc tơ hoặc hai véc tơ x, y thành các ma trận X, Y dùng để tính ra giá trị của hàm. Các hàng của X là các bản sao của véc tơ x, các cột của Y là copy của véc tơ y.
Cú pháp: [X,Y] = meshgrid(x,y) [X,Y] = meshgrid(x) [X,Y,Z] = meshgrid(x,y,z) Thí dụ: Hàm [X,Y] = meshgrid(1:3,10:14)
Tạo hai mảng x và y sau X = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Y = 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 Hàm Mesh Cú pháp mesh(X,Y,Z) Ví dụ: [X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z) Cho ra đồ thị như hình vẽ
Hình 5.6. Đồ thị trực quan hóa hàm 2 biến
5.6. In ấn đồ thị
Tuỳ chọn Print của mênu FILE và lệnh print đều dùng để in đồ thị. Tuỳ chọn Print sẽ gọi ra hộp thoại cho phép người dùng chọn các tuỳ chọn về in ấn giống như ở cacs phần mềm khác, còn lệnh print cung cấp chúng ta các khả năng mềm dẻo hơn và cho phép điều khiển việc in đồ thị từ m. file. Kết quả có thể gửi trực tiếp ra máy in hoặc được xếp xắp trong một tệp xác định. Các định dạng đầu ra hết sức khác nhau được cung cấp ở đây (kể cả PostScript)
Thí dụ: câu lệnh sau đây ghi hình ảnh của màn hình đồ hoạ ra tệp Postscript cấp 2 có tên là magicsquare.eps:
print -depsc2 magicsquare.eps
Một điều hết sức quan trọng là cần phải biết trước khả năng của máy in trước khi dùng lệnh print. Ví dụ như tệp Postscript cấp 2 thường là gọn hơn và tơ bóng nhanh hơn khi in so với tệp Postscript cấp 1. Tuy nhiên không phải tất cả các máy in đều có khả năng làm việc với tệp Postscript cấp 2.
CHƯƠNG 6: SIMULINK
6.1. Khái niệm về SIMULINK
Simulink là một phần mềm mở rộng của MATLAB (1 Toolbox của Matlab)
dùng để mơ hình hóa, mơ phỏng và phân tích một hệ thống động. Thơng thường dù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 là thuật ngữ mô phỏng đượ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.
Để mơ hình hóa, Simulink cung cấp cho bạn một giao diện đồ họa để sử dụng và xây dựng mơ hình sử dụng thao tác “nhấn và kéo” chuột. Với giao diện đồ họa, ta có thể xây dựng mơ hình và khảo sát mơ hình một cách trực quan hơn. Đây là sự khác xa các phần mềm trước đó mà người sử dụng phải đưa vào các phương trình vi phân và các phương trình sai phân bằng một ngơn ngữ lập trình.
Điểm nhấn mạnh quan trọng trong việc mơ phỏng một q trình là việc thành lập được mơ hình. Để sử dụng tốt chương trình này, người sử dụng phải có kiến thức cơ bản về điều khiển, xây dựng mơ hình tốn học theo quan điểm của lý thuyết điều khiển và từ đó thành lập nên mơ hình của bài tốn.
6.2. Tìm hiểu về SIMULINK và các BLOCKS LIBRARY.
6.2.1. Cách khởi tạo Simulink và vẽ sơ đồ mô phỏng
Để vào Simulink trong Matlab, dùng biểu tượng trên thanh công cụ hoặc ta từ cửa sổ lệnh của Matlab đánh dòng lệnh:
>> simulink
Khi khởi động Simulink xong ta được màn hình cửa sổ Simulink. Cửa sổ này hoạt động liên kết với cửa sổ lệnh Matlab.
Ta thấy cửa sổ Simulink có nhiều khối chức năng (blocks library), trong đó có nhiều khối chức năng cụ thể.
Hình 6.1. Cách vào toolbox SIMULINK trong Matlab
Từ cửa sổ lệnh ta thấy được các khối thư viện: Khối nguồn (Sources), khối đầu đo (Sinks), khối phi tuyến (nonlinear), khối tuyến tính (Contunous), khối đầu nối (Signal Routing)…
Hình 6.2. Màn hình cửa sổ thư viện SIMULINK
Thư viện của Simulink bao gồm các khối chuẩn trên, người sử dụng cũng có thể thay đổi hay tạo ra các khối cho riêng mình. Simulink cũng giống như các phần mềm mô phỏng thiết kế mạch điện tử như: MicroSim Eval, EWB…
Để vẽ sơ đồ mô phỏng cũng như xây dựng mơ hình như thế nào. Việc xây dựng mơ hình và các thao tác để xây dựng mơ hình. Ta thử thiết kế mơ phỏng ví dụ sau (hình 6.7) để biết được việc vẽ và mơ phỏng sơ đồ:
Để vẽ được mơ hình này, ta phải làm các thao tác sau:
1.Từ cửa sổ Matlab đánh lệnh simulink. Cửa sổ thư viện các khối xuất hiện. 2.Từ cửa sổ thư viện, nhấp chuột chọn File/New/Model hoặc bấm tổ hợp phím Ctrl+ N. Màn hình cửa sổ mơ hình mới Untitled được mở ra(hình 6.2). Từ đó bắt đầu
xây dựng mơ hình
3 . Chọn các blocks ở các thư viện thích hợp:
Hình 6.3. Mơ hình phân tích sóng hình sin
Hình 6.4. Chọn vẽ một Model (Scheme) mới
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
+ Thư viện các hàm tuyến tính (Continuous): Chọn Intergrator. + Thư viện các đầu nối (Signal Routing): Chọn Mux.
Để chọn một thư viện trong Simulink ta nhấp kép vào khối (Icon) đó. Simulink sẽ hiển thị một cửa sổ chứa tất cả các khối của thư viện đó. Trong thư viện nguồn tín hiệu chứa tất cả cả khối đều là nguồn tín hiệu. Thư viện nguồn tín hiệu được trình bày như ở hình 6.5.
Người sử dụng thêm vào sơ đồ của mình bằng cách ghép khối đó từ thư viện hay từ mơ hình bất kỳ nào khác. Trong ví dụ này ta chọn khối phát sóng hình sin. Đặt con trỏ chuột, ấn và giữa phím trái chuột, kéo khối tới cửa sổ vẽ sơ đồ Untitled.
Khi di chuyển khối ta có thể thấy khối và tên của nó di chuyển cùng với con trỏ chuột.
Hình 6.5. Cửa sổ thư viện phần nguồn tín hiệu. (SOURCES)
Hình 6.6. Khối và tên di chuyển cùng khối
Khi con trỏ chuột di chuyển tới nơi bạn cần đặt khối trong sơ đồ bằng cách nhả phím chuột, một bản copy của khối đã ở trong màn hình mơ phỏng. Khi ta khơng vừa ý chỗ đặt, ta có thể di chuyển khối bằng cách như trên. Theo cách này, chép những khối còn lại vào trong màn hình mơ phỏng để tiếp tục xây dựng sơ đồ. Muốn copy tiếp một khối Sin nữa trong một sơ đồ, ta làm bằng cách giữ phím Ctrl + phím trái chuột và di
chuyển tới điểm cần đặt khối, lúc đó một khối đã được copy. Với tất cả các khối đã chép vào cửa sổ màn hình mơ phỏng sẽ được hiển thị như trên hình 6.7.
Nếu xem kỹ từng khối, chúng ta thấy dấ > ở bên phải của khối là dấu đầu nối dành cho ngõ ra của tín hiệu, cịn dấy > ở bên trái là dấu đầu nối dành cho ngõ vào. Tín hiệu đi