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

MATLAB và ỨNG DỤNG TRONG KỸ THUẬT CƠ KHÍ VÀ KỸ THUẬT ĐIỆN

105 12 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề MATLAB Và ỨNG DỤNG TRONG KỸ THUẬT CƠ KHÍ VÀ KỸ THUẬT ĐIỆN
Tác giả Lại Minh Học
Trường học Trường Cao Đẳng Công Nghệ Quốc Tế Lilama2
Chuyên ngành Kỹ Thuật Cơ Khí Và Kỹ Thuật Điện
Thể loại bài giảng
Năm xuất bản 2022
Thành phố Đồng Nai
Định dạng
Số trang 105
Dung lượng 4,84 MB

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

Nội dung

Aim This unit gives learners the opportunity to develop their understanding of Ordinary Differential Equations and Partial Differential Equations (ODEs and PDEs). Learners will gain skills in algorithm design and programming techniques in MATLAB Simulink; for the modelling, simulation and analysis of dynamic engineering systems. Unit abstract Computerbased modelling and simulation of dynamic engineering systems is a key employability skill for engineering graduates. MATLABSimulink is the industry standard for this activity and it is therefore vital that learners are well versed in using MATLABSimulink to model and solve engineering problems and to simulate engineering systems. Learning outcomes 1 and 2 of this unit will develop learners’ understanding of the formulation and solution of ordinary and partial differential equations. Learning outcomes 3 and 4 then take learners through the processes, procedures and software routines on MATLAB for modelling and graphical analysis of dynamic engineering problems described by ODEs and PDEs. Learning outcome 5 introduces learners to the powerful Simulink simulation environment that enables simulation of complex interconnected dynamic engineering systems.

Trang 1

Biên soạn: LẠI MINH HỌC

BÀI GIẢNG

MÔ HÌNH HÓA VÀ MÔ PHỎNG

F/503/7343

BỘ XÂY DỰNG TRƯỜNG CAO ĐẲNG CÔNG NGHỆ QUỐC TẾ LILAMA2

Km 32 Quốc Lộ 51, Huyện Long Thành, Tỉnh Đồng Nai, Việt Nam Tel: +84 2513 558 259 Fax: +84 2513 558 711

ĐỒNG NAI, 2022

Trang 2

ThS LẠI MINH HỌC – Khoa KSTH Page 2

CHƯƠNG 1: CÁC TỐN TỬ CƠ BẢN CỦA MATLAB

1 Các phím cơ bản:

2 Các toán tử số học (Arithmetic Operators):

Toán

+ Cộng ma trận hoặc đại lượng vô hướng (các ma trận phải có cùng kích thước)

- Trừ ma trận hoặc đại lượng vô hướng (các ma trận phải có cùng kích thước)

* Nhân ma trận hoặc đại lượng vô hướng (ma trận 1 phải có số cột bằng số hàng của

.\ Thực hiện chia ngược từng phần tử của 2 ma trận hoặc 2 đại lượng vô hướng (các

ma trận phải có cùng kích thước)

/ Thực hiện chia thuận 2 ma trận hoặc đại lượng vô hướng (A/B tương đương với A*inv(B))

./ Thực hiện chia thuận từng phần tử của ma trận này cho ma trận kia (các ma trận phải có cùng kích thước)

^ Lũy thừa ma trận hoặc các đại lượng vô hướng

.^ Lũy thừa từng phần tử ma trận hoặc đại lượng vô hướng (các ma trận phải có cùng kích thước)

Trang 3

Số phức Z=a+jb

Trang 4

ThS LẠI MINH HỌC – Khoa KSTH Page 4

CHƯƠNG 2 : MA TRẬN VÀ CÁC PHÉP TOÁN VỀ MA TRẬN TRONG MATLAB

2.1 Khái niệm

Các dữ liệu đưa vào xử lý trong MATLAB đều dưới dạng ma trận Ma trận A có n hàng, m cột được gọi là ma trận cỡ n  m Được ký hiệu Anm, phần tử aij của ma trận Anm là phần tử nằm ở hàng thứ i, cột j Ta chú ý một số ma trận sau:

- Ma trận đơn ( số đơn lẻ ) là ma trận 1 hàng 1 cột

- Ma trận hàng ( 1  m ) số liệu được bố trí trên một hàng

Trang 5

- Ma trận cột ( n  1) số liệu được bố trí trên 1 cột

2.1.1 Qui định để định nghĩa một ma trận trong Matlab

Tên ma trận (có thể đến 31 ký tự), bắt đầu phải bằng chữ cái sau đó có thể là số, chữ cái, các ký

tự đặc biệt Tên đặt bên trái dấu bằng, bên phải dấu bằng là các phần tử của ma trận, các phần tử của ma trận được đóng bằng dấu ngoặc vuông ([]), các phần tử trong trong cùng một hàng được cách nhau bởi ký tự trống hoặc dấu phẩy (, ), các phần tử thuộc các hàng khác nhau cách nhau bởi dấu (;)

2.1.2 Các phương pháp nhập một ma trận

+ Liệt kê trực tiếp, ví dụ lệnh:

>> A =[1 2 3; 4 5 6 ; 7 8 9]

Kết quả cho ra một ma trận có 3 hàng, 3 cột

+ Nhập thông qua lệnh input, ví dụ lệnh:

>> input('Nhap gia tri cho ma tran A = ') 

Nhap gia tri cho ma tran A = [1 23;4 5 6;7 8 9] 

>> syms sinx cosx a 

>> C = [ sinx cosx; a cosx]  cho ta ma trận:

C =

Trang 6

ThS LẠI MINH HỌC – Khoa KSTH Page 6

2.2.1 Tạo ma trận véctơ : việc tạo ma trận véc tơ được thực hiện theo công thức sau:

Biến = giới hạn đầu : bước chạy : gới hạn cuối

Trong đó: Giới hạn đầu, giới hạn cuối, bước chạy: là các số thực, bước chạy có thể dương hoặc

Chú ý : Trong trường hợp giới hạn trên, gới hạn dưới đều là các số nguyên và bước chạy bằng 1

thì ta không cần đưa bước chạy vào trong biểu thức, ví dụ:

>> C = 1:5  ta được kết quả:

Trang 7

2.2.2 Gọi các phần tử trong ma trận

MATLAB cho phép ta xử lý đến từng phần tử của ma trận, để truy cập đến từng phần tử của ma trận ta gọi chúng thông qua chỉ số của từng phần tử với các nội dung: Tên của ma trận (Chỉ số hàng, chỉ số cột), ví dụ:

Chú ý: Trong trường hợp ta muốn gọi tất cả các phần tử trong một hàng hoặc tất cả các phần tử

trong một cột ta dùng toán tử hai chấm (:), ví dụ:

>> C = A(2,:)  (xuất các phần tử thuộc dòng 2 của ma trận A)

Trang 8

ThS LẠI MINH HỌC – Khoa KSTH Page 8

4.3.1 Ma trận không (zeros): Tất cả các phần tử trong ma trận đều bằng 0

>> C = zeros (2,3)  (tạo ma trận zêro có 2 hàng, 3 cột)

0 0 0

4.3.2 Ma trận đơn vị (ones): Tất cả các phần tử trong ma trận đều bằng 1

>> C = ones (2,3) (tạo ma trận đơn vị có 2 hàng, 3 cột)

4.3.3 Ma trận ma phương Magic: Ma trận này có tổng giá trị các phần tử trên hàng = tổng giá trị

các phần tử trên cột = tổng tất cả giá trị các phần tử trên đường chéo của ma trận, ví dụ:

Trang 9

1 0 0

2.4 CÁC PHÉP TOÁN VECTOR

Trang 11

2.5.1 Phép chuyển vị: Chuyển đổi hàng thành cột và ngược lại Thực hiện phép chuyển vị bằng toán

tử dấu nháy đơn ( ' ), ví dụ:

2.5.2 Tổng, hiệu 2 ma trận: Phép cộng và trừ ma trận được thực hiện với các ma trận có cùng kích

thước, các phần tử tương ứng của 2 ma trận được cộng (hoặc trừ) với nhau theo công thức: Cij = Aij

Trang 14

Toán tử quan hệ (Relational Operators):

< So sánh nhỏ hơn

Trang 15

> So sánh lớn hơn

>= So sánh lớn hơn hoặc bằng

<= So sánh nhỏ hơn hoặc bằng

= = So sánh bằng nhau cả phần thực và phần ảo

-= So sánh bằng nhau phần ảo

a) Giải thích:

Các toán tử quan hệ thực hiện so sánh từng thành phần của 2 ma trận Chúng tạo ra một ma trận có cùng kích thước với 2 ma trận so sánh với các phần tử là 1 nếu phép so sánh là đúng và là 0 nếu phép so sánh là sai

Phép so sánh có chế độ ưu tiên sau phép toán số học nhưng trên phép toán logic

b) Ví dụ:

thực hiện phép so sánh sau:

» x=5 % đầu tiên ta nhập x=5

x =

5

» x>=[1 2 3;4 5 6;7 8 9] %so sánh trực tiếp x (x là 5) với ma trận

ans = % rõ ràng các phầ tử 1,2,3,4,5 đều <= 5

Trang 16

1 2 3

4 5 6

7 8 9

» x==A % so sánh x và A

ans = % tất cả các phần tử đều đúng

» x=0:.001:15;

» y=4.*x+5.*x.^2+6.*exp(x);

Như vậy ta đã thiết lập được hàm số 2 x

y=4x+5x +6.e và khảo sát hàm trong khoảng từ 0 đến

15, cĩ thể khảo sát những hàm số sẵn cĩ trong Matlab

5 Ký tự đặc biệt (Special Characters):

[] Khai báo vector hoặc ma trận

Trang 17

() Thực hiện phép toán ưu tiên, khai báo các biến và các chỉ số

của vector

= Thực hiện phép gán

‘ Chuyển vị ma trận tìm lượng liên hiệp của số phức

Điểm chấm thập phân

, Phân biệt các phần tử của ma trận và các đối số trong dòng

lệnh

; Ngăn cách giữa các hàng khi khai báo ma trận

% Thông báo dòng chú thích

! Mở cửa sổ MS – DOS

khi khai báo D = 1 : 10

ta được kết quả:

D = 1 2 3 4 5 6 7 8 9 10 còn khi khai báo D = 0 : 2 :10

thì ta được kết quả:

D = 0 2 4 6 8 10 Phép tính được dựng trước, Matlab tự động tính tốn và cho kết quả sau từ ans Với hệ thống kí tự và

kí hiệu riêng matlab cho phép viết tường minh các phép tính

Ví dụ:

Trang 21

CHƯƠNG 3: MỘT SỐ ỨNG DỤNG CƠ BẢN CỦA MATLAB

3.1 Nhân 2 đa thức: Để nhân 2 đa thức, ta dùng lệnh conv, ví dụ cho 2 đa thức:

y1 = anxn + an-1xn-1 + + a0

y2 = bnxn + bn-1xn-1 + + b0

Để nhân 2 đa thức trên, ta thực hiện theo các bước sau:

+ Lập 2 ma trận hàng với tên là y1và y2 có các phần tử là các hệ số từ an đến a0 và bn đến b0giảm dần theo bậc của phương trình, hệ số nào không có thì ghi 0;

+ Nhân 2 đa thức bằng lệnh conv: y3 = conv(y1y2), ví dụ cho 2 đa thức: y 1 = x2 + 3x + 5; y2 = 3x2 + 4x ta thao tác theo các lệnh sau:

 Ví dụ: giải phương trình sau: x5

- 2x4 + 5x2 - 1= 0, ta thao tác theo các lệnh sau:

Trang 22

-1.1606 -0.4744 0.4627

3.3 Biết nghiệm tìm lại phương trình: ( lệnh poly )

 Ví dụ: Tìm phương trình biết các nghiệm của nó là 1 và -5, ta thao tác theo các lệnh sau:

>>A = [1 – 5 ]; 

>> poly(A) 

ans =

1 4 -5

3.4 Chuyển từ phương trình hệ số sang phương trình có chứa cả tham số: (poly2sym)

 Ví dụ: chuyển phương trình có các hệ số: a4 = 1; a3 = 3; a2 = 0; a1 = -5 sang phương trình chứa tham số:

Trang 23

% Giai he phuong trinh dai so tuyen tinh

Lưu chương trình và cho chạy, ta thu được các nghiệm:

X =

11.0000

-3.0000

Trang 24

-1.0000

3.6 Giải hệ phương trình đại số phi tuyến:( Lệnh solve)

Để giải hệ phương trình đại số phi tuyến, ta dùng lệnh solve với cú pháp:

[biến 1, biến 2, …] = solve('phương trình 1', 'phương trình 2'…)

3.7 Giải hệ phương trình tham số: Để giải hệ phương trình tham số ta dùng lệnh solve với cú pháp

tương tự như trên, ví dụ cần giải hệ:

Trang 25

Thực hiện lệnh: >> [u,v] = solve('a*u^2 + v^2 = 0','u - v = 1') ta được

3.8 Giải hệ phương trình vi phân thường: ( lệnh dsolve)

- Đối với phương trình vi phân không có điều kiện đầu ta sử dụng cú pháp: >> y = dsolve('phương trình')

 Ví dụ: Giải phương trình vi phân: x' + ax + 1 = 0, ta thực hiện lệnh:

- Đối với hệ phương trình vi phân, cú pháp lệnh là:

>> [biến 1, biến 2,…] = dsolve('phương trình 1', 'phương trình 2', …)

 Ví dụ: Giải hệ phương trình:

dxydtdyxdt

Trang 26

3.9 Giải hệ phương trình vi phần theo hàm có sẵn của Matlab:

 Ví dụ: Cho hệ phường trình vi phân:

với các điều kiện đầu: y1(0) = 0; y1(0) = 1; y3(0) = 1

Chương trình mô tả phương trình vi phân dạng M-file:

function dy = rigid(t,y)

dy = zeros(3,1);

dy(1) = y(2) * y(3);

dy(2) = -y(1) * y(3);

dy(3) = -0.51 * y(1) * y(2);

Thời gian giải phương trình vi phân Tspan =[0 12], vector điều kiện đầu [0 1 1]

>>options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);

>>[t,y] = ode45('rigid',[0 12],[0 1 1],options);

Trang 28

Inv: ma trận nghịch đảo

Trang 33

CHƯƠNG 4 ĐỒ HOẠ TRONG MATLAB

1 Các lệnh vẽ: MATLAB cung cấp một loạt hàm để vẽ biểu diễn các vec tơ số liệu 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

polar đồ hoạ trong hệ toạ độ cực

loglog đồ hoạ với các trục 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

plotyy đồ hoạ với trục y cĩ nhãn ở bên trái và bên phải

x,y: vẽ giá trị x theo giá trị y

linetype: kiểu phần tử tạo nên nét vẽ bao gồm 3 thành phần:

- Thành phần thứ nhất là các ký tự chỉ màu sắc:

Ký tự Loại nét vẽ

- Đường liền nét : Đường chấm chấm

- Đường gạch chấm Đường nét đứt đoạn

- Thành phần thứ hai là các ký tự chỉ nét vẽ của đồ thị:

- Thành phần thứ ba là các ký tự chỉ loại điểm đánh dấu gồm:., o, x, +, *

Trang 35

Vẽ đồ thị dạng bậc thang

Trang 36

3 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ị

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

Trang 42

Bài 6.11: Khảo sát hàm đa thức đơn biến tìm giá trị cực trị

Trang 43

Hàm số có cực đại là 1,5132 tại x=0

Hàm số có hai cực tiểu là 1 khi x=1;

Bài 6.12: khảo sát hàm số đa biến:

» [x,y]=meshgrid(-3:0.05:3);

» u=4.*sin(pi.*x-8)-y./4;

» mesh(x,y,u)

Vẽ được đồ thị hàm số hai biến x,y trong

hệ tọa độ Oxy Mà nếu dùng các công cụ

Vận dụng Matlab vào giảng dạy chương “Dao động cơ học”

Phần kiến thức chương “Dao động cơ học” chủ yếu sử dụng mối quan hệ hàm cos, hoặc sin để khảo sát trạng thái dao động của vật Người giáo viên có thể sử dụng phần mềm Matlab để vẽ đồ thị nhằm giúp các em thấy rõ một dao động hình sin, hay còn gọi là dao động điều hòa Biểu diễn sự phụ thuộc của ly độ vào thời gian đối với dao động điều hòa và dao động tắt dần trong thời gian một vài chu kì dao động, giúp cho học sinh được trực tiếp quan sát kết quả

Kết hợp với việc lấy số liệu trực tiếp từ đồ thị bằng ginput để học sinh ghi lại và so sánh kết quả với sự tính toán trực tiếp ở ngoài

Cùng 1 lúc có thể vẽ cả 4 đồ thị phụ thuộc x(t), v(t), a(t), W(t) trong cùng một “Function” ở các hệ tọa độ khác nhau để so sánh về pha

Khi tổ chức thực hành thu được kết quả sau:

Nội dung kiến thức 1 Lập trình bằng Matlab

Phương trình dao động,

đồ thị phụ thuộc ly độ,

function daodong=lydo1(m,A,w,fi,t);

Trang 44

vận tốc, gia tốc thời gian,

ginput(1) v=-A.*w.*sin(w.*t+fi);

figure(2) plot(t,v,'-o');

a=-(A.*w.^2).*cos(w.*t+fi);

figure(3) plot(t,a,'+-');

W=0.5.*m.* v.^2;

figure(4) plot(t,W,'a');

xlabel('thoigian(s)') ylabel('dong nang(J)')

Nội dung kiến thức 2 Lập trình bằng Matlab

Khảo sát dao động của

con lắc lò xo có độ cứng

k, có khối lượng m, pha

ban đầu , biên độ A

function daodong=lydo2(k,m,A,fi,t);

w=sqrt(k./m);

x=A.*cos(w.*t+fi);

Trang 45

ginput(1) v=-A.*w.*sin(w.*t+fi);

figure(2) plot(t,v,'-o');

a=-(A.*w.^2).*cos(w.*t+fi);

figure(3) plot(t,a,'+-');

figure(1) plot(t,x,'*-');

ginput(1) v=-A.*w.*sin(w.*t+fi);

Trang 46

figure(2) plot(t,v,'-o');

a=-(A.*w.^2).*cos(w.*t+fi);

figure(3) plot(t,a,'+-');

Nội dung kiến thức 4 Lập trình bằng Matlab

Khảo sát dao động của

figure(1) plot(t,x,'*-');

xlabel('thoigian(s)') ylabel('lydo(m)');

ginput(1) v=-A.*w.*sin(w.*t+fi);

figure(2) plot(t,v,'-o');

xlabel('thoigian(s)') ylabel('vantoc(m/s)');

Trang 47

a=-(A.*w.^2).*cos(w.*t+fi);

figure(3) plot(t,a,'+-');

xlabel('thoigian (s)') ylabel('giatoc (m2/s)');

Kết quả hình ( chỉ lấy đồ thị x-t để minh họa)

Nội dung kiến thức 5 Lập trình bằng Matlab

Bài toán dao động tắt dần

ginput(1) v=-A.*w.*sin(w.*t+fi);

figure(2) plot(t,v,'-o');

a=-(A.*w.^2).*cos(w.*t+fi);

figure(3) plot(t,a,'+-');

figure(4) plot(t,x,v,a);

Trang 48

x10=A1.*cos(fi1);

x20=A2.*cos(fi2);

x0=x10+x20;

A=max(x) fi0=acos(x0./max(x))

Trang 49

2 Vận dụng Matlab vào giảng dạy chương “Sóng cơ học”,và kiến thức phần trộn sóng điện từ

Như các đồng chí đã biết sóng cơ học là các dao động được lan truyền trong môi trường vật chất Tại một thời điểm t=t0 nhất định thì các phần tử vật chất được sắp xếp theo một dạng hình sin trong không gian Vậy chúng ta hãy cùng nhau khảo sát hình dạng, li độ cũng như bước song bằng phần mềm Matlab

Nội dung kiến thức 8 Lập trình bằng Matlab

Trang 50

M=ginput(1);x1=M(1);

N=ginput(1);x2=N(1);

L=x2-x1 v=L.*w./(2.*pi);

figure(2) meshz(x,y,u);

figure(2) meshc(x,y,u);

Trang 51

Nội dung kiến thức 10 Lập trình bằng Matlab

Giao thoa sóng, vẽ hình đồ họa

để chứng minh tập hợp những

điểm dao động cực đại và

những điểm dao động cực tiểu

figure(2) meshz(x,y,um);

Trang 52

» L=0.8;

» t=2;

»

song3(A,w,x1,y1,x2,y2,x,y,L,t)

Nội dung kiến thức 11 Lập trình bằng Matlab

Giao thoa sóng trên dây (sóng

dừng) x là tọa độ của điểm

dao động trên dây, x1, x2 tọa

độ hai đầu dây (x1≤x≤x2) thỏa

Nội dung kiến thức 12 Lập trình bằng Matlab

Bài toán về sóng vô tuyến

Ghép một sóng cơ vào một

function songvotuyen=song4(w1,w2,A1,A2,t);

Trang 53

sóng cao tần x1=A1.*cos(w1.*t);

x2=A2.*cos(w2.*t);

x=x1.*x2;

figure(1) plot(t,x) ylabel('lydotonghop(cm)') xlabel('thoigian(s)')

Vận dụng Matlab trong giảng dạy chương “Dòng điện xoay chiều”

Ở chương III, kiến thức không nhiều, hầu như chúng ta tập trung kiến thức vào mạch RLC mắc nối tiếp

Bài toán về công suất tiêu thụ điện năng, và giá trị hiệu dụng được giải như sau:

Nội dung kiến thức 13 Lập trình bằng Matlab

Bài toán về công suất: function giatri=hieudung(U0,I0,w,fi,delt,t)

Trang 54

Kết luận: Như vậy bằng việc sử dụng hàm gần đúng, với

độ chia nhỏ chính xác 5.10-6, matlab đã tính cho chúng ta giá trị công suất thực của mạch điện Sai số là 0,005% - sai

số rất nhỏ Như vậy có thể kết luận

T

0 0 0

Nội dung kiến thức 14 Lập trình bằng Matlab

Giá trị cực đại Vẽ đồ thị

cống suất phu thuộc vao

điện dung C của tụ điện, rồi

từ đó dùng hàm ginput để

function giatri=cucdai(R,L,C,U) ZL=100.*pi.*L;

ZC=1e6./(100.*pi.*C);

Trang 55

tìm giá trị cực đại, và điện

dung C làm cho công suất

đạt cực đại

Chương trình bên trái lập

cho công suất toàn mạch

po=ginput(1) Pmax=po(2) C=po(1)

Nội dung kiến thức 15 Lập trình bằng Matlab

Bài 1: Cho mạch điện như

hình vẽ R, L không đổi , C

function hieudienthe=cucdai1(R,L,C,U);

Ngày đăng: 14/02/2022, 20:55

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w