1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

TH Tin học kỹ thuật matlab

38 421 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 1,4 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Môn học này dựa trên MATLAB để hỗ trợ cho các môn học trong kỹ thuật.. CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC Để học tốt môn này, người học cần thực hành theo hướng dẫn, làm các bài tập; đọc t

Trang 2

THỰC HÀNH TIN HỌC KỸ THUẬT

Ấn bản 2019

Trang 4

MỤC LỤC

MỤC LỤC 1

HƯỚNG DẪN 2

BÀI 1: CƠ SỞ VỀ MATLAB 3

1.1 MA TRẬN 6

1.2 VECTOR 7

1.3 ĐA THỨC 7

1.4 ĐỒ HOẠ 8

1.5 SCRIPT - FUNCTION 14

BÀI 2: GUI (GRAPHICAL USER INTERFACE) 19

BÀI 3: SIMULINK 24

BÀI 4: SYMBOLIC 24

TÀI LIỆU THAM KHẢO 35

Trang 5

HƯỚNG DẪN

MÔ TẢ MÔN HỌC

Thực hành tin học kỹ thuật là môn học hỗ trợ cho môn Tin học kỹ thuật Môn học này dựa trên MATLAB để hỗ trợ cho các môn học trong kỹ thuật

NỘI DUNG MÔN HỌC

− Bài 1 Cơ sở về MATLAB

YÊU CẦU MÔN HỌC

Người học phải dự học đầy đủ các buổi lên lớp và làm bài tập đầy đủ

CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC

Để học tốt môn này, người học cần thực hành theo hướng dẫn, làm các bài tập; đọc trước bài mới và tìm thêm các thông tin liên quan đến bài học

PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC

Môn học được đánh giá gồm:

− Điểm quá trình: 50% Hình thức và nội dung do giảng viên quyết định, phù hợp với quy chế đào tạo và tình hình thực tế tại nơi tổ chức học tập

− Điểm thi: 50% Hình thức bài thi trên máy tính trong 90 phút

Trang 6

BÀI 1: CƠ SỞ VỀ MATLAB

Sau khi học xong bài này, người học có thể:

− Sử dụng phần mềm MATLAB

− Thực hiện tạo các script file hay function và lưu trữ trên MATLAB

− Biết được các công cụ cơ bản trên MATLAB

MATLAB (Matrix laboratory) là phần mềm dùng để giải các bài toán kỹ thuật, đặc biệt

là các bài toán liên quan đến ma trận MATLAB cung cấp các toolboxes, tức các hàm mở rộng môi trường MATLAB để giải quyết các vấn đề đặc biệt như xử lý tín hiệu số, hệ thống điều khiển, mạng neuron, fuzzy logic, mô phỏng v.v

Cửa sổ biểu tượng của chương trình MATLAB:

Trang 7

Cửa sổ làm việc của MATLAB:

• Cửa sổ lệnh (Command window):

Là cửa sổ giao tiếp chính của MATLAB bởi đây là nơi nhập giá trị các biến, hiển thị giá trị, tính toán giá trị của biểu thức, thực thi các hàm có sẵn trong thư viện hoặc các hàm

do người dùng lập trình ra trong M-files Các lệnh được nhập sau dấu nhắc ‘>>‘ và thực thi lệnh bằng phím Enter Để mở chương trình soạn thảo trong MATLAB, gõ lệnh:

>>edit

Thư mục hiện hành

Các lệnh đã thực hiện Nút Start: chứa

các toolbox

Trang 8

Sau khi nhập vào đoạn chương trình và lưu chương trình bằng cách nhấn Ctrl+S hay nhấn vào biểu tượng Save

• Cửa sổ Command History:

Các dòng đã nhập trong Command window (các dòng này có thể là dòng nhập biến,

có thể là dòng lệnh) được giữ lại trong cửa sổ Command History và cửa sổ này cho phép

ta sử dụng lại những lệnh đó bằng cách nhấp đúp chuột lên các lệnh hay biến đó

• Cửa sổ Workspace:

Là cửa sổ thể hiện tên các biến bạn sử dụng cùng với kích thước vùng nhớ (số bytes), kiểu dữ liệu (lớp), các biến được giải phóng sau mỗi lần tắt chương trình Cửa sổ Workspace cho phép thay đổi giá trị của biến bằng cách nhấn phím chuột phải lên các

Trang 9

k [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ]

Bài 1.2 Cho ma trận A = [2 4 1; 6 7 2; 3 5 9], sinh viên dùng các lệnh cần thiết để:

a Lấy dòng đầu tiên của ma trận A

b Tạo ma trận B bằng 2 dòng cuối cùng của A

c Tính tổng các phần tử trên các cột của A (gợi ý: tính tổng các phần tử trên cột 1: sum(A(:,1)))

Gợi ý: A.X = B → X = inv(A).B

Bài 1.4 Chứng tỏ rằng (A+B)C=AC+BC, với:

Trang 10

>>z=rand(10,1) ; tạo 10 số ngẫu nhiên phân bố đều

Bài 1.5 Cho vector x = [3 1 5 7 9 2 6], giải thích kết quả của các lệnh sau:

Trang 11

Bài 1.8 Giải phương trình x3- 2x2+4x+5=0 Kiểm chứng kết quả thu được bằng hàm

polyval Sinh viên có nhận xét gì về kết quả kiểm chứng

Bài 1.9 Lặp lại bài 1.8 cho phương trình x7-2=0

Để xác định màu và kích thước đường vẽ, ta dùng các tham số sau:

LineWidth : độ rộng đường thẳng, tính bằng số điểm

MarkerEdgeColor : màu của các cạnh của khối đánh dấu

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 tham số:

r: red m magenta g: green y: yellow

b: blue k: black c: cyan w: white

Các dạng đường thẳng xác định bằng:

- đường liền đường đứt nét

: đường chấm chấm - đường chấm gạch

Các dạng điểm đánh dấu xác định bằng:

Trang 12

+ dấu cộng điểm o vòng tròn x chữ thập * dấu sao

s hình vuông d hạt kim cương v tam giác hướng xuống

^ tam giác hướng lên < tam giác sang trái

> tam giác sang phải h lục giác p ngũ giác

Bài 1.11 Thực hiện đoạn chương trình sau và ghi nhận kết quả

>>x = -pi : pi/10 : pi;

>>y = tan(sin(x)) - sin(tan(x));

>>plot(x,y,ʹ‐‐rs’,ʹLineWidthʹ,2,ʹMarkerEdgeColorʹ,ʹkʹ, ʹMarkerFaceColorʹ,ʹgʹ,ʹMarkerSizeʹ,10)

Nếu x, y, z là 3 vector có cùng độ dài thì plot3 sẽ vẽ đường cong 3D

Bài 1.12 Thực hiện đoạn chương trình sau và ghi nhận kết quả

>>t = 0:pi/50:10*pi;

>>plot3(sin(t),cos(t),t)

>>axis square;

>>grid on

Dùng hàm subplot để vẽ nhiều trục toạ độ

Bài 1.13 Thực hiện đoạn chương trình sau và ghi nhận kết quả

Trang 13

MATLAB cung cấp các lệnh ghi nhãn lên đồ hoạ gồm:

title thêm nhãn vào đồ hoạ

xlabel thêm nhãn vào trục x

ylabel thêm nhãn vào trục y

zlabel thêm nhãn vào trục z

legend thêm chú giải vào đồ thị

text hiển thị chuỗi văn bản ở vị trí nhất định

gtext đặt văn bản lên đồ hoạ nhờ chuột

Bài 1.14 Thực hiện đoạn chương trình sau và ghi nhận kết quả

>>title(ʹ\it{Gia tri cua sin tu zero đến 2 pi}ʹ,ʹFontsizeʹ,16)

Ta có thể thêm văn bản vào bất kỳ chỗ nào trên hình vẽ nhờ hàm text

>>text(3*pi/4,sin(3*pi/4),ʹ\leftarrowsin(t)=0.707ʹ,ʹFontSizeʹ,12)

Ta có thể sử dụng đối tượng văn bản để ghi chú các trục ở vị trí bất kỳ MATLAB định

vị văn bản theo đơn vị dữ liệu trên trục Ví dụ để vẽ hàm y = Aet với A = 0.25, t = 0 đến 900 và = 0.005:

Trang 14

{\itt}=300’,ʹFontSize’,14) Tham số HorizontalAlignment và VerticalAlignment định vị văn bản so với các toạ độ

x, y, z đã cho

Để thêm các công thức toán học, ta dùng dạng LaTeX

Bài 1.15 Thực hiện ghi các công thức toán học sau:

1

2 / 0

( ) ( )

N

j kn N n

Trang 15

Bài 1.16 Thực hiện đoạn chương trình sau và ghi nhận kết quả

Hàm mesh và surf tạo ra mặt 3D từ ma trận dữ liệu Gọi ma trận dữ liệu là z mà mỗi

phần tử của nó z(i,j) xác định tung độ của mặt thì mesh(z) tạo ra một lưới có màu thể hiện mặt z còn surf(z) tạo ra một mặt có màu z

Bước thứ nhất để thể hiện hàm 2 biến z=f(x,y) là tạo ma trận x và y chứa các toạ độ trong miền xác định của hàm Hàm meshgrid sẽ biến đổi vùng xác định bởi 2 vector x và

y thành ma trận x và y Sau đó ta dùng ma trận này để đánh giá hàm

>>hold on %giu hinh, mac nhien la hold off

>>y2=sin(x.^2); %luy thua tung phan tu

>>plot(x,y2,’k’) %duong ve co mau den

>>axis([0 4*pi –1.25 1.25]) %dinh lai toa do hien thi

Ta có thể đặt nhãn cho các trục cũng như tiêu đề cho đồ thị:

>>xlabel(‘Time’)

>>ylabel(‘Amplitude’)

>>title(‘y1=sinx.cos2x and y2=sin(x^2)’)

>>legend(‘sinx.cos2x’,’sinx^2’)

Bài 1.18 Thực hiện như bài 1.17 nhưng dùng các hàm semilogx, semilogy, loglog

thay thế cho plot

Trang 16

Bài 1.19.Thực hiện như bài 1.17 cho hàm số y = 𝑒−𝑥

Gợi ý: x = rcos, y = rsin

MATLAB cung cấp nhiều hàm vẽ đồ thị 3D, chẳng hạn: plot3 - dùng để vẽ các đường trong không gian 3 chiều; mesh và surf - dùng để vẽ vật thể 3D

Trang 17

i = i + 1;

end plot(f)

Nhấn Save để lưu đoạn mã lệnh này và đặt tên là fibo.m Đây chính là một script file

Để thực hiện các mã chứa trong file fibo.m từ cửa sổ lệnh ta nhập:

>>fibo

Và nhấn enter Kết quả MATLAB sẽ vẽ ra đồ thị của chuỗi Fibonacci

Bài 1.27 Nhập đoạn chương trình sau trên cửa sổ Editor:

Trang 18

Lưu lại với tên tb.m

% Trong do: x1,x2 la nghiem

% a, b, c la 3 he so cua phuong trinh

if nargin<3 error('Error! Nhap 3 he so cua phuong trinh') elseif a==0

x1=-c/b;

x2=[];

else delta = b^2 - 4*a*c;

Bài 1.29 Xây dựng hàm vdcongdb(a,m,method) để vẽ một số đường cong trong

hệ tọa độ cực, với a là bán kính và m là số đường cong vẽ trên cùng trục tọa độ Trường hợp này hàm không trả về giá trị

Trang 19

Tuỳ theo giá trị của tham số ‘method’ mà ta vẽ đồ thị tương ứng:

Nếu method = ’Becnulli’: Vẽ đường Becnulli: 𝑟 = 𝑎√|2𝑐𝑜𝑠2𝜃|

Nếu method = ’Astroit’: Vẽ đường Astroit: 𝑟 = 𝑎√|1 −𝑠𝑖𝑛3𝜃

4 |

Nếu method = ‘Xoanoc’: Vẽ đường xoắn ốc: r = cosθ +1

Nội dung hàm như sau:

function vdcongdb(a,m,method)

% Ve duong cong trong toa do cuc: vdcongdb(a,m,method)

% method = 'Becnulli' - Ve duong Lemniscat Becnulli:

Trang 20

Bài 1.30 Xây dựng hàm dudoan() để dự đoán kết quả sau mỗi lần tung một xúc

xắc đồng nhất, 6 mặt Nội dung hàm như sau:

function dudoan()

% Du doan ket qua sau moi lan tung ngau nhien mot xuc xac 6 mat

% Chuong trinh lap lai cho den khi nguoi su dung khong doan tiep tiep = 'y'; sai=0; dung=0;

disp('Chao mung ban den voi chuong trinh du doan xuc xac!') while(lower(tiep)=='y')

doan=input('Moi ban du doan ket qua (1-6):');

kqua=tungxx;

if (doan ~= kqua) disp('Xin loi, ban da doan sai!') sai=sai+1;

else

Trang 21

disp('Xin chuc mung!') dung=dung+1;

end tiep=input('Ban muon choi tiep(''y''/''n''):');

end disp(['Dung ' num2str(dung) ' trong tong so ' num2str(sai+dung) ' lan doan'])

% subfunction - function mat = tungxx()

Bài 1.32 Viết function giaimach(E1,E2,J,R1,R2,C,R3) xuất ra công suất trên E1,

E2, J; dòng điện trên R3

Viết script md1 nhập các giá trị E1, E2, J, R1, R2, C, R3; dùng function giaimach để

tính và xuất ra các giá trị công suất trên E1, E2, J; dòng điện trên R3

E1 R1

C

R3

BA

J

E2 R2

Trang 22

BÀI 2: GUI (GRAPHICAL USER INTERFACE)

Sau khi học xong bài này, người học có thể:

− Dùng GUI để thiết kế giao diện

− Viết chương trình cho các nút lệnh

Bài 2.1 Khởi động cửa sổ tạo GUI bằng cách chọn Start > MatLab > GUIDE (GUI Builder)

Hay gõ lệnh:

>>guide

Cửa sổ GUIDE Quick Start xuất hiện, ta chọn Blank GUI

Trang 23

Thiết kế giao diện sau:

Đối tượng Thông số

Nút nhấn String: Convert

Tag: pushbuttonConvert

3 Radio Button String: Celcius, Rankine, Kelvin

Value: 1.0, 0.0, 0.0 Tag: radiobuttonC, radiobuttonR, radiobuttonK

Static text String: Fahrenheit degree

Static text String: Celcius degree

Tag: text2

Trang 24

Đối tượng Thông số

Slider Max: 9032

Min: -459.4 SliderStep: [0.001 0.1]

Nhấn Save để lưu giao diện, cửa sổ Editor cho giao diện sẽ mở ra

Mã lệnh cho các đối tượng:

function pushbuttonConvert_Callback(hObject, eventdata, handles)

Trang 25

set(handles.radiobuttonC,'Value',0);

set(handles.text2,'String','Kelvin degree');

Kiểm tra kết quả

Bài 2.2 Thiết kế cửa sổ như hình vẽ:

Viết chương trình theo yêu cầu: khi nhấn nút Draw, vẽ hình y = xn nếu chọn chế

độ vẽ 2D và vẽ hình z = xn + yn nếu chọn chế độ vẽ 3D (giá trị n chỉ chấp nhận nếu 2 

n  10)

Bài 2.3 Thiết kế cửa sổ như hình vẽ:

Trang 26

Viết chương trình theo yêu cầu: Khi nhấn nút Ve, vẽ đồ thị hàm số tuỳ theo hàm số

được chọn:

- Chọn sin: vẽ hàm số y = Biên độ*sin(x)

- Chọn sinc: vẽ hàm số y = Biên độ*sinc(x)

- Chọn sa: vẽ hàm số y = Biên độ*sin(x)/x

- Chọn sa^2: vẽ hàm số y = Biên độ*(sin(x)/x)2

Giá trị biên độ chỉ cho phép nếu thoả mãn: 0.1  biên độ  1

Bài 2.4 Thiết kế cửa sổ như hình vẽ:

Bài 2.5 Thiết kế cửa sổ thực hiện cho bài 1.31

Trang 27

BÀI 3: SYMBOLIC

Sau khi học xong bài này, người học có thể:

− Sử dụng Symbolic Toolbox để tính toán tích phân, đạo hàm, giới hạn

Bài 3.1 Dùng hàm diff để xác định đạo hàm của một hàm số

Trang 28

Bài 3.5 Dùng hàm finverse để tìm hàm ngược

Bài 3.7 Tính và vẽ đạo hàm của hàm số y = sinx3

Bài 3.8 Vẽ mặt có phương trình sau:

Bài 3.10 Giải phương trình: 𝑒𝑥 = 𝑥

Bài 3.11 Giải hệ phương trình: { 𝑥2𝑠𝑖𝑛𝑥2− 𝑦 = 7

𝑥 − 𝑦 = 2

Trang 29

Bài 3.12 Dùng hàm dsolve giải phương trình và hệ phương trình vi phân

>>[f,s] = dsolve ('Dz=3*z+4*y', 'Dy=-4*z+3*y' , 'z(0)=0','y(0)=1','x')

Bài 3.13 Giải phương trình y’’ + 3y’ - 4y = e-4x +xe-x

Bài 3.14 Giải phương trình y’’ - 3y’ + 2y = 3x +5sin2x với điều kiện đầu y(0) = 1 và

y’(0) = 1

Bài 3.15 Giải hệ phương trình:

với ngõ vào V là hàm bước (hàm heaviside(x))

Bài 3.16 Giải phương trình với ngõ vào F(t) là hàm bước

Bài 3.17 Giải hệ phương trình:

Trang 30

BÀI 4: SIMULINK

Sau khi học xong bài này, người học có thể:

− Sử dụng Simulink

− Dùng Simulink để mô hình hóa hệ thống

Bài 4.1 Mô phỏng tín hiệu AM: 𝑉𝐴𝑀(𝑡) = 𝑉Ω𝑐𝑜𝑠Ω𝑡𝑐𝑜𝑠𝜔0𝑡

Khởi động Simulink bằng cách gõ lệnh Simulink từ Command Window hay chọn

Simulink Library

Chọn New để tạo mô hình mới

Trang 31

Kéo và thả khối Signal Generator (trong thư viện Simulink > Sources) vào cửa sổ

thiết kế

Thêm các khối và nối liên kết như hình

Trang 32

Double-click vào khối Signal Generator và chọn thông số về biên độ, tần số

Trang 33

Khối Sine Wave:

Trang 34

Khối Power Spectral Density

Vào menu Simulation > Model Configuration Parameters

Trang 35

Chọn các thông số như hình:

Nhấn Run chạy mô phỏng

Bài 4.2 Mô phỏng tín hiệu AM: 𝑉𝐴𝑀(𝑡) = (𝑉0+ 𝑉𝛺𝑐𝑜𝑠𝛺𝑡)𝑐𝑜𝑠𝜔0𝑡

- Khối Sine Wave: Amplitude = 1

- Khối Constant: Constant Value = 1

Bài 4.3 Giải hệ phương trình: { 𝑧1+ 𝑧2= 1

−𝑧1+ 𝑧2 = 1

Bài 4.4 Giải phương trình: x2 + 3x + 1 = 0

Bài 4.5 Giải phương trình: x′(t) = −2x(t) + u(t)

Bài 4.6 Mô phỏng hệ thống v' = (u – bv)/m

f

Trang 36

Bài 4.7 Mô phỏng hệ thống điều khiển tốc độ động cơ DC

Trang 37

Bài 4.8 Mô phỏng hệ thống sau:

Bài 4.9 Mô phỏng hệ thống sau:

b1 = 350 (hệ số chống rung của hệ thống giảm xóc)

b2 = 15000 (hệ số chống rung của bánh xe)

w: ngõ vào (ảnh hưởng do mặt đường)

u: ngõ vào (lực điều khiển)

x1, x2: ngõ ra (vị trí của xe)

Trang 38

TÀI LIỆU THAM KHẢO

1 Phạm Hùng Kim Khánh Tin học kỹ thuật ĐH Công nghệ TPHCM

2 Sanjit K Mitra Digital Signal Processing Laboratory using MatLab

3 Academic and Research Computing Text formatting with LaTex 2007

4 The Mathworks Inc R2018b Documentation

Ngày đăng: 24/10/2020, 10:41

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w