Đề tài Matlab - Tìm hiểu và ứng dụng giải một số bài toán kĩ thuật
mục lục
Phần 1 Giới thiệu về Matlab
1. Bắt đầu với Matlab
2. Các khái niệm cơ bản
a. Câu lệnh và biến
b. Các phép toán
c. Số dùng trong Matlab
d. Nhập số liệu từ bàn phím
e. In kết quả ra màn hình
f. Ma trận
g. Số phức và ma trận phức
3. Các hàm toán học
a. Các hàm l-ợng giác
b. Các hàm toán sơ cấp
4. Các thao tác đặc biệt trên ma trận
5. Thực hiện các phép tính trên ma trận
a. Các phép tính trên ma trận
b. Các phép tính phần tử - phần tử của ma trận
6. Các hàm thực hiện các phép tính về đa thức
7. Các hàm phân tích dữ liệu
8. Hàm của hàm
a. Hàm tích phân số
b. Hàm tìm nghiệm ph-ơng trình phi tuyến và các hàm tối -u
c. Hàm giải ph-ơng trình vi phân
9. Các toán tử điều khiển
10. Các loại file trong Matlab
11. Xử lí tín hiệu
12. Vẽ đồ thị
Phần 2 ứng dụng Matlab giải một số
bài toán kĩ thuật
1. Bài toán về mạch điện
2. Giải bài toán động học cơ cấu phẳng
3. Giải bài toán cân bằng máy
4. Tính thiết kế bộ truyền bánh răng
5. Tính sức bền trục
6. Tính dao động
a. Tính dao động hệ một bậc tự do
b. Tính dao động hệ hai bậc tự do
c. Xác định tần số dao động riêng của hệ nhiều bậc tự do
Kết luận
tài liệu tham khảo
c tiết diện nguy hiểm là A và B dựa vào các ph−ơng
trình cân bằng sau:
MB + lBC x RC = 0
(5)
MA+(-lA x R0) = 0
(6)
Để giải các ph−ơng trình véc tơ (3), (4), (5) và (6) ta đ−a ra các véc tơ
đơn vị của hệ toa độ Đề các là i, j và k và dùng hàm cross(...,...) để nhân
có h−ớng hai véc tơ. Cách làm đ−ợc thể hiện rõ trong file plkd.m d−ới
đây:
% File plkd.m
% Tinh phan luc tai khop dong va mo men uon
% Cac Vec to don vi cua he toa do De cac
I=[1 0 0]';
J=[0 1 0]';
K=[0 0 1]';
% Vec to vi tri
la=100; lb=250; lc=350; lbc=100;
La=100*I; Lb=250*I; Lc=350*I; Lbc=lbc*I;
% Luc tac dung
Pay=-1.4*J; Paz=.5*K;
Pby=-.9*J; Pbz=1.4*K;
% Tinh phan luc goi C
LcRc=-cross(La,Pay)-cross(La,Paz)-cross(Lb,Pby)-
cross(Lb,Pbz);
Rc0=LcRc/lc; % Vec to phan luc tai
goi C(chua quay)
Q=[0 0 0; 0 0 -1; 0 1 0]; % Ma tran chuyen
(quay)
Rc=-Q*Rc0 % Vec to phan luc tai
goi C
% Tinh phan luc tai goi O
R0=-(Pay+Paz+Pby+Pbz+Rc)
% Tinh mo men uon tai tiet dien B va A
Mb=-cross(Lbc,Rc)
Ma=-cross(-La,R0)
% ---------------------------------------------
Chạy ch−ơng trình plkd.m trên màn hình Command Window, kết quả
của các phản lực khớp động tại O , C và các mô men uốn tại mặt cắt A và
B nhận đ−ợc nh− sau:
Rc =
0
1.0429
-1.1429
R0 =
0
1.2571
-0.7571
Mb =
0
-114.2857
-104.2857
Ma =
0
-75.7143
-125.7143
ằ plkd
Rc =
0
1.0429
-1.1429
R0 =
0
1.2571
-0.7571
Mb =
0
-114.2857
-104.2857
Ma =
0
75.7143
125.7143
6. Tính dao động
a. Tính dao động của hệ một bậc tự do
Giả sử có hệ dao động một bậc tự do nh− hình vẽ: m kà khối l−ợng của
vật, c là độ cứng lò xo (N/m), k là hệ số cản của giảm chấn thuỷ lực
(Ns/m), còn F là lực kich thích với F=F0coswt ( F0 là biên độ của lực –
N, w là tần số góc – rad/s).
Viết ph−ơng trình định luật 2 cho vật ;
mx’’= -kx’-cx +F0coswt (1)
trong đó x, x’, x’’ lần l−ợt là chuyển vị, x
vận tốc và gia tốc của vật. k F
ta biến đổi (1) nh− sau:
c m
x’’= -kx’/m - cx/m + +F0coswt/m (2)
Đặt x1=x’, x2= x thì x1’= x’’, x2’= x1, ph−ơng trình vi phân cấp 2 trên sẽ
đ−ợc viết thành hệ hai ph−ơng trình bậc nhất với hai ẩn là x1 và x2 nh−
d−ới đây:
x1’= - kx1/m - cx2m + F0coswt/m (3)
x2’= x1
Ch−ơng trình để giải hệ (3) đ−ợc viết trong các file ml00.m và ml0.m
nh− d−ới đây:
% File ml00.m
% Chuongtrinh tinh dao dong he 1 bac tu do co
giam chan
% thuy luc chui luc kich dong dang F=F0cos(wt)
global m k c w F0
m=100; % Khoi luong vat - kg
c=10000; % Do cung lo xo - N/m
k=80; % He so can nhot Ns/m
w1=sqrt(c/m) % Tan so dao dong rieng
w=6; % Tan so luc kich dong
tc=15; % Thoi gian dao dong
x0=[0 .01 ]' ; % Dieu kien ban dau (van
toc, toa do)
F0=20 ; % Bien do luc kich dong - N
[t,x]=ode45('ml0',tc,x0);
subplot(211)
plot(t,x(:,2))
title(' TINH DAO DONG HE MOT BAC TU DO')
ylabel('Chuyen vi cua vat - cm')
grid
subplot(212)
plot(t,x(:,1))
xlabel('thoi gian -s')
ylabel('Van toc cua vat - m/s')
grid
pause
% File ml0.m
function xc=ml0(t,x)
global m k c w F0
xc=zeros(2,1);
xc(1)=-k/m*x(1)-c/m*x(2)+F01*cos(w*t)/m;
xc(2)=x(1);
Kết quả chạy ch−ơng trình cho d−ới dạng đồ thị d−ới đây:
0 5 1 0 1 5
-1
-0 .5
0
0 .5
1
TIN H D A O D O N G H E M O T B A C TU D O
C
hu
ye
n
vi
c
ua
v
at
-
cm
0 5 1 0 1 5
-0 .1
-0 .0 5
0
0 .0 5
0 .1
tho i g ia n -s
V
an
t
oc
c
ua
v
at
-
m
/s
b. Tính dao động hệ hai bậc tự do
Có hệ dao dộng hai bậc tự do nh− hình vẽ: khối l−ợng
của các vật là m1, m2, độ cứng các lò xo là c1và c2, hệ x2
F1
số cản nhớt là k1 và k2, lực kích thich đặt lên hệ là c2 k2
F1=F10sinw1t, F2=F20sinw2t.
x1
F2
c1
k1
Viết hệ ph−ơng trình định luật 2 Niu tơn cho
từng vật:
m1x1’’=- k1x1’- c1x1+k2(x2’-x1’)+c2(x2-x1) +F01sinw1t
m2x2’’= - k2 (x2’-x1’)- c2(x2 -x1)+F02sinw2t
x1’’ = - (k1+k2)x1’/m1- (c1+c2)x1/ m1+k2x2’/ m1+c2x2 / m1+ F01sinw1t/ m1
(1)
x2’’ = k2x1’/ m2 + c2x1 / m2 - k2x2’ / m2 - c2x2/ m2 + F02sinw2t/ m2
T−ơng tự nh− khi giải ph−ơng trình vi phân câp hai ở phần trên, ta cũng
đặt:
y1 = x1’, y2 = x1, y3 = x2’, y4 = x2.
(2)
Rút ra:
y1’=x1’’
(3)
y2’=y1
y3’= x2’’
y4’=y3
Thay (1) vào (3) và chú ý đến (2) ta lập đ−ợc hệ gồm bốn ph−ơng trình
vi phân tuyến tính bậc nhất. Hệ ph−ơng trình này và cách giải nó đ−ợc
cho trong file ml11.m và ml1.m ở d−ới đây.
Nhân tiện đây ta cũng thử tác dụng của giảm chấn động lực: theo lí
thuyết, nếu lực kích thích vào vật 2 bằng 0 ( F2=0), và các thông số của
bộ giảm chấn động lực gồm khối l−ợng m2 và lò xo có độ cứng c2 thoã
mãn điều kiện: c2/m2 = w1
2 ( w1 là tần số lực kích thích của lực F1 lên vật
1) thì dao động của vật chính 1 có khối l−ợng m1 đó sẽ bằng 0. Trong
ch−ơng trình ta cho F20=0, m2=10 kg, c2=510 N/m và w1= 22 /mc .
% File ml11.m
% Tinh dao dong he hai bac tu do
global m1 m2 k1 k2 c1 c2 w F10 F20
m1=100; % Khoi luong vat thu nhat - kg
c1=10000; % Do cung lo xo thu nhat - N/m
m2=10; % Khoi luong vat thu 2 - kg
c2=510; % Do cung lo xo thu 2 - N/m
k1=220; k2=0; % He so can nhot cua giam chan
- Ns/m
w20=sqrt(c2/m2)
x0=[0 .0 0 .0]'; % Dieu kien ban dau
F10=100; % Bien do luc tac dung vao
vat 1 – N
F20=0; % -- 2
w1=w20; % Tan so goc cua luc k.thich
- rad/s
[t,y]=ode45('ml1',tc,x0);
subplot(211)
plot(t,y(:,2)*100)
title('TINH DAO DONG HE HAI BAC TU DO')
ylabel('Chuyen vi cua vat 1 - cm')
grid
subplot(212)
plot(t,y(:,4)*100)
xlabel(' Thoi gian - s')
ylabel('Chuyen vi cua vat 2 - cm')
grid
pause
% File ml1.m
% Chuong trinh con tinh dao dong he hai bac tu
do
function yc=ml1(t,y)
global m1 m2 k1 k2 c1 c2 w F10 F20
yc=zeros(4,1);
yc(1)=-(k1+k2)/m1*y(1)-(c1+c2)/m1*y(2)+...
k2/m1*y(3)+c2/m1*y(4)+F10*sin(w1*t)/m1;
yc(2)= y(1);
yc(3)= k2/m2*y(1)+c2/m2*y(2)-k2/m2*y(3)-
c2/m2*y(4)+...
F20*sin(w2*t)/m2;
yc(4)= y(3);
Chạy ch−ơng trình sẽ cho kết quả d−ới dạng đồ thị sau:
0 2 4 6 8 1 0 1 2 1 4 1 6 1 8 2 0
-2
-1
0
1
2
TIN H D A O D O N G H E H A I B A C TU D O
C
hu
ye
n
vi
c
ua
v
at
1
-
c
m
0 2 4 6 8 1 0 1 2 1 4 1 6 1 8 2 0
-4 0
-2 0
0
2 0
4 0
Th o i g ia n - s
C
hu
ye
n
vi
c
ua
v
at
2
-
c
m
Ta thấy một điều thú vị là : đúng nh− dự đoán, biên độ dao động của vật
chính 1 giảm dần theo thời gian và sẽ tắt hẳn sau ít giây nữa.
c. Xác định tần số dao động riêng của hệ nhiều bậc tự do
Với hệ cơ học nhiều bậc tự do việc xác định các tần số dao động riêng
của hệ có một ý nghĩa quan trọng. Matlab giúp ta giải bài toán này không
mấy khó khăn.
Ví dụ: Có hệ gồm bốn toa xe móc nối với nhau, hãy xác định tần số dao
động riêng của hệ theo chiều dọc. Biết khối l−ợng các toa xe là m1=45T,
m2=35T, m3=40T, m4=50T, độ cứng các lò xo là c1=c2=800KNm,
c3=1000KN/m.
m1 x1 m2 x2 m3 x3 m4 x4
Để giải bài toán tr−ớc hết ta phải lập các ma trận khối l−ợng và ma trân
độ cứng nh− sau:
- Ma trận khối l−ợng:
M=diag(m1, m2, m3, m4); ( Ma trận chéo có các phần tử là các
khối l−ợng)
-Ma trận độ cứng:
c1 -c1 0 0
C = -c1 c1+c2 -c2 0
0 -c2 c2+c3 -c3
0 0 -c3 c3
- Dùng hàm eig để xác định các trị riêng và véc tơ riêng:
[ X, L] = eig( C, M);
trong đó L là ma trận đ−ờng chéo mà mỗi phần tử trên đ−ờng chéo là một
trị riêng (eigenvalue) là w1
2, w2
2, w3
2
và w4
2 . Còn w1 w2, w3 và w4 chính là
các tần số dao động riêng của hệ (rad/s).
Ma trận (hàng) của các tần số dao động riêng đ−ợc xác định nh− sau:
w = diag(sqrt(L));
Kết quả tính bằng số cụ thể nhận đ−ợc nhờ chạy ch−ơng trình trong file
tansd.m d−ới đây:
% File tánd.m
% CHUONG TRINH TINH TAN SO DAO DONG RIENG
% CUA HE NHIEU BAC TU DO
m1=45000; m2=35000;
m3=40000; m4=50000; % Khoi luong cac toa xe
c1=800000;c2=c1; % Do cung lo xo N/m.
c3=1000000;
% Ma tran khoi luong va ma tran do cung
m=[m1 m2 m3 m4];
M=diag(m);
C=[c1 -c1 0 0; -c1 c1+c2 -c2 0 ; 0 -c2 c2+c3
-c3;...
0 0 -c3 c3];
% Tinh tri rieng va vec to rieng
,L]=eig(C,M);
wb=diag(L); % Cac tri rieng
w=sqrt(wb) % Cac tan so dao dong rieng -
rad/s
Các giá trị tần số dao động riêng đ−ợc ch−ơng trình cho d−ới đây:
w =
8.6524
6.5472
0 + 0.0000i
3.2807
Ta thấy có một tần số dao động riêng bằng 0 : w3=0. Điều này về mặt lí
thuyết dao động thì hoàn toàn hợp lí vì nó t−ơng ứng vối một dạng dao
động riêng của hệ trong đó toàn hệ chuyển động nh− một vật rắn.
Kết luận
Qua hai phần nghiên cứu tìm hiểu phần mềm lập trình Matlab và ứng
dụng nó để giải một số bài toán kĩ thuật, chúng tôi thấy rằng đây là một
phần mềm rất mạnh, dễ sử dụng và rất có hiệu quả trong tính toán, đặc
biệt thích hợp cho việc nghiên cứu trong lĩnh vực khoa học kĩ thuật.
Đồng thời chúng tôi cũng thấy rõ rằng: để hiểu cặn kẽ cũng nh− sử dụng
đ−ợc hết khả năng của Matlab thì đó cũng không phải là chuyện dễ, vì
bản thân nó là một phần mềm lớn. Tuy nhiên, trong phạm vi của đề tài
nghiên cứu này, những vấn đề cơ bản và những ứng dụng phổ biến của
phần mềm đã đ−ợc trình bày và đã có những ví dụ minh hoạ cụ thể. Từ
những phần cơ bản này, ng−ời đọc qua sử dụng thực tế phần mềm sẽ có
khả năng tự tìm hiểu sâu hơn nhờ tra cứu phần Help trong máy.
Cách trình bày chúng tôi đã cố gắng sao cho ngắn gọn, dễ hiểu và thiên
về thực hành. Một trong những mục đích chính của nhóm nghiên cứu là
biến kết quả nghiên cứu này thành tài liệu để tìm hiểu và sử dụng Matlab
cho những ng−ời quan tâm, đặc biệt là cho sinh viên. Hi vọng là với tài
liệu này, ng−ời học có thể tự thực hành trên máy tính để lập các ch−ơng
trình tính toán cho bài toán của mình.
Do khuôn khổ thời gian có hạn, còn một phần thứ hai nữa của Matlab mà
chúng tôi ch−a kịp nghiên cứu: đó là phần SIMULINK. Đây là phần
mềm mô phỏng rất mạnh và hiệu quả của Matlab, cho phép giảiđ−ợc
nhiều loại bài toán phức tạp. Chúng tôi hi vọng sẽ có điều kiện nghiên
cứu tiếp trong thời gian tới.
File đính kèm:
Đề tài Matlab_Tìm hiểu và ứng dụng giải một số bài toán kĩ thuật.pdf

