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

giáo trình Tin hoc ky thuat

206 39 1

Đ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 206
Dung lượng 6,8 MB

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

Nội dung

BÀI 1: CƠ SỞ VỀ MATLAB Sau khi học xong bài này, người học có thể: − Lập trình cơ bản trên MatLab − Hiểu các lệnh cơ bản, cách xây dựng và thực hiện hàm trên MatLab − Biết cách vẽ các

Trang 1

ĐẠI HỌC CÔNG NGHỆ TP.HCM

TIN HỌC KỸ THUẬT

Biên soạn:

ThS Phạm Hùng Kim Khánh

Trang 2

Tin học kỹ thuật

Ấn bản 2019

Trang 3

MỤC LỤC

MỤC LỤC I HƯỚNG DẪN IV CÁC TỪ VIẾT TẮT VI

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

1.1 GIỚI THIỆU 1

1.2 CÁC VẤN ĐỀ CƠ BẢN 4

1.2.1 Các phép toán và toán tử 4

1.2.2 Khai báo biến 5

1.2.3 Các lệnh thường dùng 5

1.2.4 Lưu biến vào file và lấy nội dung biến từ file 5

1.2.5 Ma trận 6

1.2.6 Đa thức 12

1.2.7 Lập trình trong MatLab 13

1.2.8 Các file và hàm 16

1.3 ĐỒ HOẠ 22

1.3.1 Các lệnh vẽ 22

1.3.2 Tạo hình vẽ 22

1.3.3 Kiểu đường vẽ 22

1.3.4 Vẽ với hai trục y 24

1.3.5 Vẽ đường cong 3D 24

1.3.6 Vẽ nhiều trục toạ độ 25

1.3.7 Đặt các thông số cho trục 26

1.3.8 Giới hạn của trục và chia vạch trên trục 27

1.3.9 Ghi nhãn lên các trục toạ độ 27

1.3.10 Đồ hoạ đặc biệt: 31

1.3.11 Đồ hoạ 3D 36

TÓM TẮT 38

CÂU HỎI ÔN TẬP 38

BÀI 2: GIAO DIỆN ĐỒ HỌA -GUI (GRAPHIC USER INTERFACE) 41

2.1 Tạo GUI 41

2.2 Các đối tượng đồ hoạ 43

2.3 Tạo menu 45

2.4 Viết mã lệnh trong file m 46

2.5 Ví dụ tạo GUI 47

TÓM TẮT 51

CÂU HỎI ÔN TẬP 51

BÀI 3: SYMBOLIC 54

3.1 Đạo hàm và vi phân 55

3.2 Tích phân 56

Trang 4

3.3 Hàm ngược 57

3.4 Vẽ đồ thị 57

3.5 Định dạng biểu thức 59

3.6 Giải phương trình và hệ phương trình 60

3.7 Tìm giới hạn 64

TÓM TẮT 65

CÂU HỎI ÔN TẬP 66

BÀI 4: SIMULINK 67

4.1 Cơ sở về Simulink 69

4.1.1 Các khối 69

4.1.2 Các thư viện khối 73

4.1.3 Các đường 73

4.1.4 Ghi chú 74

4.1.5 Làm việc với các loại dữ liệu 74

4.1.6 Làm việc với tín hiệu phức 75

4.1.7 Tạo hệ thống con 76

4.2 Mô hình hoá 77

4.2.1 Mô hình hoá một phương trình 77

4.2.2 Mô hình hoá hệ phương trình tuyến tính 79

4.2.3 Giải phương trình bậc cao: 79

4.2.4 Mô hình hoá hệ thống liên tục đơn giản 80

4.2.5 Mô hình hoá hệ phương trình vi phân bậc cao 81

4.2.6 Mô hình hoá hệ có điều kiện đầu khác không 82

4.2.7 Mô hình hóa hệ cho bởi sơ đồ khối 84

4.2.8 Mô hình hoá hệ phi tuyến 84

4.2.9 Ví dụ 87

TÓM TẮT 90

CÂU HỎI ÔN TẬP 90

BÀI 5: CÁC TOOLBOX HỖ TRỢ 93

5.1 Communication 93

5.1.1 Hàm 93

5.1.2 Simulink 111

5.1.3 Ví dụ 122

5.2 Simscape Multibody 130

5.2.1 Bodies 130

5.2.2 Joints 137

5.2.3 Constraints & Drivers 147

5.2.4 Sensors & Actuators 151

5.2.5 Force & Elements 157

5.2.6 Ví dụ 158

5.3 Control System 168

5.3.1 Mô hình hệ thống 169

5.3.2 Phân tích hệ thống 173

5.3.3 PID Tuning 178

Trang 5

5.3.4 Thiết kế hệ thống điều khiển dùng Control System Designer 190

TÓM TẮT 195 TÀI LIỆU THAM KHẢO 196

Trang 6

HƯỚNG DẪN

MÔ TẢ MÔN HỌC

Môn học giới thiệu về MatLab, thiết kế giao diện và các công cụ hỗ trợ

NỘI DUNG MÔN HỌC

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

Môn học Tin học kỹ thuật đòi hỏi sinh viên có nền tảng về Tin học cơ bản

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 đủ ở nhà

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 ôn tập các bài đã học, trả lời các câu hỏi và làm đầy đủ 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 Đối với mỗi bài học, người học đọc trước mục tiêu và tóm tắt bài học, sau đó đọc nội dung bài học Kết thúc mỗi ý của bài học, người đọc trả lời câu hỏi ôn tập và kết thúc toàn bộ bài học, người đọc làm các bài tập

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

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

Trang 7

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 thực hành trong 90 phút

Trang 8

CÁC TỪ VIẾT TẮT

ADS-B - Automatic Dependent Surveillance-Broadcast

AM – Amplitude Modulation: điều biên

AWGN – Additive White Gaussian Noise: nhiễu trắng Gaussian cộng

BER – Bit error rate: tỷ số lỗi bit

BPSK – Binary Phase Shift Keying: điều chế pha nhị phân

CPFSK – Continuous Phase Frequency Shift Keying: FSK pha liên tục

CPM – Continuous Phase Modulation: điều chế pha liên tục

CRC – Cyclic Redundancy Check: kiểm tra độ dư vòng

DBPSK – Differential BPSK: BPSK vi phân

FM – Frequency Modulation: điều tần

FSK - Frequency Shift Keying

GMSK – Gaussian Minimum-Shift Keying

IMC – Internal Model Control: điều khiển mô hình nội

LQG – Linear Quadratic Gaussian: Gauss tuyến tính bậc hai

LTE – Long Term Evolution

MIMO – Multiple Input Multiple Output

OFDM - Orthogonal Frequency-Division Multiplexing: ghép kênh phân chia theo tần số trực giao

OQPSK – Offset QPSK

OVSF - Orthogonal Variable Spreading Factor: hệ số trải biến trực giao

PAM - Pulse Amplitude Modulation: điều biên xung

PID - Proportional Integral Derivative: vi tích phân tỷ lệ

PM – Phase Modulation: điều pha

QAM – Quadrature Amplitude Modulation: điều chế biên độ vuông góc

Trang 9

SER – Symbol error rate: tỷ số lỗi symbol

Trang 11

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

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

− Lập trình cơ bản trên MatLab

− Hiểu các lệnh cơ bản, cách xây dựng và thực hiện hàm trên MatLab

− Biết cách vẽ các đồ thị cơ bản 2D và 3D

1.1 GIỚI THIỆU

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

Để khởi động MATLAB ta nhấn đúp vào icon của nó trên màn hình

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

Hình 1.1 – Cửa sổ khởi động của MatLab

Trang 12

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

Hình 1.2 – 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, 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 (built-

in function), 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:

Cửa sổ lệnh

Thư mục hiện hành

Các file có trong thư

mục hiện hành

Trang 13

Cửa sổ Editor sẽ hiện ra:

Hình 1.3 – Cửa sổ Editor Sau đó nhập vào đoạn chương trình sau:

% Chuong trinh trong M-file

x= 0:pi/6:2*pi;

y=sin(x);

plot(x,y);

Lưu chương trình với tên file plot_sin.m Thực thi chương trình trên trong cửa

sổ Command window bằng dòng lệnh sau

+ Dạng Script file : tập hợp các câu lệnh viết dưới dạng liệt kê, không có biến

dữ liệu vào và biến ra

+ Dạng function: có biến dữ liệu vào và biến ra

Trang 14

Ví dụ 1.1: Đoạn chương trình giải phương trình bậc 2:

Trang 15

+ Trong quá trình nhập nếu các phần tử trên một hàng dài quá ta có thể xuống dòng bằng toán tử ba chấm ( .)

1.2.2 Khai báo biến

- Phân biệt chữ hoa và chữ thường

- Không cần phải khai báo kiểu biến

- Tên biến phải bắt đầu bằng ký tự và không được có khoảng trắng

- Không đặt tên trùng với các tên đặc biệt của MatLab

- Để khai báo biến toàn cục (sử dụng được trong tất cả chương trình con), phải dùng thêm từ khoá global phía trước

1.2.3 Các lệnh thường dùng

help tên_hàm % tham khảo help của hàm

lookfor ‘chuỗi’ %Tìm kiếm

clc % Xoá màn hình

clear tên_biến % Xoá biến

clear all %Xoá tất cả các biến

clf %Xoá figure

save % Lưu biến vào file

load % Lấy nội dung của biến từ file

who % liệt kê các biến trong bộ nhớ

whos % liệt kê chi tiết các biến trong bộ nhớ

which

what

1.2.4 Lưu biến vào file và lấy nội dung biến từ file

Dùng lệnh save để lưu nội dung các biến trong MatLab vào file

Trang 16

% Lưu tất cả các biến vào file test.mat:

Khi dùng lệnh save, tất cả các biến trong file cũ sẽ bị mất Để giữ lại dữ liệu

cũ, ta dùng thêm thông số -append

p = rand(1, 10);

q = ones(10);

Dùng lệnh load để lấy nội dung các biến đã lưu vào file

Trang 17

• Tạo ma trận nhờ hàm tự tạo

Khi nhập ma trận từ bàn phím ta phải tuân theo các quy định sau:

• Ngăn cách các phần tử của ma trận bằng dấu “,” hay khoảng trắng

Trang 18

1.2.5.3 Toán tử “:”

Toán tử “:” là một toán tử quan trọng của MATLAB Nó xuất hiện ở nhiều dạng khác nhau Biểu thức 1:10 là một vector hàng chứa 10 số nguyên từ 1 đến 10 1:10

Trang 19

1.2.5.4 Tạo ma trận bằng hàm có sẵn

MATLAB cung cấp một số hàm để tạo các ma trận cơ bản:

• linspace: tạo một vector có giá trị cách đều nhau

a = linspace(1,5,15) % Tạo vector a từ 1 – 5, có 15 phần tử

a =1.0000 1.2857 1.5714 1.8571 2.1429 2.4286 2.7143 3.0000 3.2857 3.5714 3.8571 4.1429 4.4286 4.7143 5.0000

• zeros: tạo ra ma trận mà các phần tử đều là 0

Trang 23

Ví dụ 1.4:Ta xét chương trình đoán tuổi như sau:

disp(‘Xin chao! Han hanh duoc lam quen’); %Xuất chuỗi ra màn hình

x = fix(30*rand);

disp(‘Tuoi toi trong khoang 0 ‐ 30’);

g = input(‘Xin nhap tuoi cua ban: ‘);

Trang 24

Vòng lặp for dùng khi biết trước số lần lặp Cú pháp như sau:

for <chỉ số>=<giá trị đầu>:<mức tăng>:<giá trị cuối>

Ví dụ 1.6: Xây dựng chương trình đoán số:

Trang 25

n = 7;

t = 1;

for k = 1:1:7

num = int2str(n); % Chuyển từ số nguyên thành string

disp([ʹBan co quyen du doan ʹ num ʹ lanʹ]);

disp(ʹSo can doan nam trong khoang 0 ‐ 100ʹ);

g = input(ʹNhap so ma ban doan: ʹ);

Trang 26

Trên cửa sổ editor, nhập đoạn mã và lưu vào một file 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

Trang 27

end

y = sum(x)/m;

Từ ví dụ trên ta thấy một hàm gồm các phần cơ bản sau :

• Một dòng định nghĩa hàm: function y = tb(x) gồm từ khoá function, đối số trả về y, tên hàm tb và đối số vào x

• Dòng kế tiếp là dòng trợ giúp đầu tiên Vì đây là dòng văn bản nên nó phải đặt sau % Nó xuất hiện khi ta nhập lệnh help <tên hàm> Phần văn bản này giúp người dùng hiểu tác dụng của hàm

• Thân hàm chứa mã MATLAB

• Các lời giải thích dùng để cho chương trình sáng rõ Nó được đặt sau dấu % Cần chú ý là tên hàm phải bắt đầu bằng ký tự và cùng tên với file chứa hàm Tên hàm là tb thì tên file cũng là tb.m

biến nào đó của hàm ta cần khai báo nó là global

Nếu hàm có nhiều thông số ngõ vào và ngõ ra thì khai báo như sau:

function [y1,y2,y3] = tb(x1,x2,x3)

Lưu ý rằng trong một file m có thể có nhiều hàm nhưng hàm đầu tiên phải có tên trùng với tên file

1.2.8.3 Điều khiển vào và ra:

disp(a): hiển thị nội dung của mảng a hay văn bản

a = [1 2 3];

disp(a)

Trang 28

format short % 5 digit

format long % 15 digit

format short e % 5 digit + số mũ

format long e % 15 digit + số mũ

format hex % Dạng số hex

format + %Hiển thị +, - và blank với các giá trị dương, âm và 0 input: nhập dữ liệu

x = input(ʹCho tri cua bien x :ʹ)

Cho tri cua bien x :4

x = 4

1.2.8.4 Các hàm toán học cơ bản:

exp(x) hàm mũ cơ số e (ex)

sqrt(x) căn bậc hai của x

log(x) logarit cơ số e

log10(x) logarit cơ số 10

abs(x) module của số phức x (giá trị tuyệt đối của số thực)

angle(x) argument của số phức a

conj(x) số phức liên hợp của x

imag(x) phần ảo của x

Trang 29

sign(x) dấu của x

1.2.8.5 Các phép toán trên hàm toán học

Biểu diễn hàm toán học:

MATLAB biểu diễn các hàm toán học bằng cách dùng các biểu thức đặt trong M-file Ví dụ để khảo sát hàm:

Trang 30

Cách thứ hai để biểu diễn một hàm toán học trên dòng lệnh là tạo ra một đối tượng inline từ một biểu thức chuỗi Ví dụ ta có thể nhập từ dòng lệnh như sau:

Trang 31

Hàm fzero dùng để tìm điểm zero của hàm một biến

Ví dụ 1.9: Tìm giá trị không của hàm lân cận giá trị -0.2 ta viết :

f=inline(ʹ1./((x‐0.3).^2+0.01)+1./(x.^2+0.04)‐6ʹ);

a = fzero(f,-0.2)

a = -0.443585269991057

Trang 32

1.3 ĐỒ HOẠ

1.3.1 Các lệnh vẽ

MATLAB cung cấp một loạt hàm để vẽ biểu diễn các vector cũng như giải thích

và in các đường cong này

plot: đồ họa 2-D với số liệu 2 trục vô hướng và tuyến tính

plot3: đồ họa 3-D với số liệu 2 trục vô hướng và tuyến tính

loglog: đồ hoạ với các trục x, y ở dạng logarit

semilogx: đồ hoạ với trục x logarit và trục y tuyến tính

semilogy: đồ hoạ với trục y logarit và trục x tuyến tính

polar: vẽ đồ thị dạng tọa độ cực

1.3.2 Tạo hình vẽ

Hàm plot có các dạng khác nhau phụ thuộc vào các đối số đưa vào Nếu y là một vector thì plot(y) tạo ra một đường quan hệ giữa các giá trị của y và chỉ số của nó Nếu ta có 2 vector x và y thì plot(x,y) tạo ra đồ thị quan hệ giữa x và y

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

Trang 33

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

Màu được xác định bằng các tham số:

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

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

Ví dụ 1.10:

Hình 1.5 – Vẽ hàm số tan(sin(x)) – sin(tan(x))

Trang 34

x = -pi : pi/10 : pi; y = tan(sin(x)) - sin(tan(x));

Lệnh plotyy cho phép tạo một đồ thị có hai trục y Ta cũng có thể dùng plotyy

để cho giá trị trên hai trục y có kiểu khác nhau nhằm tiện so sánh

Trang 35

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

Hình 1.7 – Vẽ đồ thị 3D

1.3.6 Vẽ nhiều trục toạ độ

Hình 1.8 – Vẽ nhiều trục toạ độ Dùng hàm subplot để vẽ nhiều trục toạ độ

subplot(2,3,5) %2,3: xác định có 2 hàng, 3 cột

Trang 36

% 5: chọn trục thứ 5 (đếm từ trái sang phải, trên xuống dưới)

Trang 37

axes tạo một trục toạ độ mới với các đặc tính được mô tả

get và set cho phép xác định và đặt các thuộc tính của trục toạ độ đang có gca trở về trục toạ độ cũ

1.3.8 Giới hạn của trục và chia vạch trên trục

MATLAB chọn các giới hạn trên trục toạ độ và khoảng cách đánh dấu dựa trên

số liệu dùng để vẽ Dùng lệnh axis có thể đặt lại giới hạn này Cú pháp của lệnh: axis[xmin , xmax , ymin , ymax]

x = 0:0.025:pi/2;

plot(x,tan(x),ʹ‐roʹ);

axis([0 pi/2 0 5]);

MATLAB chia vạch trên trục dựa trên phạm vi dữ liệu và chia đều Ta có thể

mô tả cách chia nhờ thông số xtick và ytick bằng một vector tăng dần

1.3.9 Ghi nhãn lên các trục toạ độ

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ị

Trang 38

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

x = -pi:.1:pi; y = sin(x);

plot(x,y);

xlabel(ʹt = 0 to 2\piʹ,ʹFontsizeʹ,16);

ylabel(ʹsin(t)ʹ,ʹFontsizeʹ,16);

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

Để thêm ghi chú tại điểm t = 300 ta viết :

text(300,.25*exp(‐.005*300), ’\bullet\leftarrow \fontname{times} 0.25{\ite}^{‐0.005{\itt}} at, {\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 ký tự đặc biệt, ta dùng format dạng Tex:

Trang 39

\bf — đậm

\it — nghiêng

\fontname{fontname} — xác định tên font

\fontsize{fontsize} — xác định kích thước font

\color(colorSpec) — xác định màu chữ

Các chỉ số trên và dưới thực hiện bằng ^ và _

title('\ite^{i\omega_0\tau} = cos(\omega_0\tau) + i sin( \omega_0

\tau)') Kết quả: 𝑒𝑖𝜔 0 𝜏 = cos(𝜔0𝜏) + 𝑖𝑠𝑖𝑛(𝜔0𝜏)

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

Trang 40

text('position',[.2 3], 'fontsize',14, 'interpreter','latex', 'string',['$$\left[ {\matrix{\cos(\phi) & -\sin(\phi) \cr \sin(\phi)

& \cos(\phi) \cr}} \right] \left[ \matrix{x \cr y} \right]$$']);

\int_0^\infty\!\!{e^{-st}f(t)dt}$$']);

'string','$$e = \sum_{k=0}^\infty {1 \over {k!} } $$');

'string',['$$m \ddot y = -m g + C_D \cdot {1 \over 2}\rho {\dot y}^2

Trang 43

set(h2,ʹYAxisLocationʹ,ʹrightʹ,ʹColorʹ,ʹnoneʹ,ʹXTickLabelʹ,[]) set(h2,ʹXLimʹ,get(h1,ʹXLimʹ),ʹLayerʹ,ʹtopʹ)

Để ghi chú lên đồ thị ta viết:

text(11,380,ʹMat doʹ,ʹRotationʹ,‐‐55,ʹFontSizeʹ,16)

ylabel(ʹTCE Mat do (PPM)ʹ)

title(ʹXep chong do thiʹ,ʹFontSizeʹ,16)

c Đồ hoạ vùng:

Hàm area hiển thị đường cong tạo từ một vector hay từ một cột của ma trận

Nó vẽ các giá trị của một cột của ma trận thành một đường cong riêng và tô đầy vùng không gian giữa các đường cong và trục x

y = [5 2 1;6 7 3;8 6 3;5 5 5;1 5 8];

area(Y)

Hình 1.13 – Hiển thị đồ thị dạng vùng

d Đồ thị pie:

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

TỪ KHÓA LIÊN QUAN

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

w