Bài giảng Matlab full (Đại học Bách Khoa Hà Nội)

228 1.5K 15
Bài giảng Matlab full (Đại học Bách Khoa Hà Nội)

Đ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

Lời nói đầuHệ chương trình MATLAB là một công cụ xử lý số các hệ kỹ thuật từ đơn giản đếnphức tạp. Chương trình này phù hợp với việc phân tích và tổng hợp nhanh các quátrình động lực đặc biệt trong nghiên cứu và phát triển, ngày nay Matlab đang đượcsử dụng nhiều trong công nghiệp. Matlab ngày càng có vai trò trong các trường đạihọc và cao đẳng kỹ thuật. Matlab có thể trợ giúp đắc lực các sinh viên và kỹ sưtrong việc giải quyết các vấn đề tính toán số các bài toán kỹ thuật. Đặc biệt đối vớisinh viên và kỹ sư ngành Cơ khí, điện, điện tử, cơ điện tử Matlab là một công cụkhông thể thiếu.Mục đích c a cuốn sách là cung cấp cơ s Matlab và Simulink cho các sinh viên kỹthuật từ n m thứ hai sau khi đ có các kiến thức cơ bản về toán, vật lý, cơ học kỹthuật cũng như kỹ thuật lập trình. Ngoài ra nếu có được thêm các kiến thức về kỹthuật điều khiển, xử lý dữ liệu số người đọc có thể m rộng thêm được các ứngdụng c a Matlab và Simulink.Nội dung c a cuốn sách này được phân bố trong chín chương. Các chương từ mộtđến bảy trình bày việc sử dụng các lệnh c a Matlab cho các bài toán cơ bản nhưtính toán trên v ctơ, ma trận, đ họa, giải phương trình vi phân thường, và một sốph p biến đổi tích phân như ouri r, Laplace. Chương giới thiệu về ph n imulink – một công cụ sử dụng các khối hàm để mô ph ng hệ. Trong mỗichương, sau ph n giới thiệu cách sử dụng các lệnh c a Matlab đều có những ví dụcụ thể và ph n bài tập thực hành để người học có thể tự thực hành. Trong chươngmột số bài toán kỹ thuật thường gặp trong l nh vực cơ học và kỹ thuật được trìnhbày.Cuốn sách này được biên soạn trên cơ s bài giảng c a tác giả cho sinh viên ngànhCơ điện tử Trường Đại học Kinh doanh và Công nghệ Hà nội. Tuy nhiên, cuốnsách này không chỉ là tài liệu học tập cho sinh viên các trường đại học định hướngứng dụng mà còn là tài liệu học tập cho sinh viên các trường đại học và cao đẳngkỹ thuật. Cuốn sách cũng là tài liệu bổ ích cho các kỹ sư trong công việc chuyênmôn c a họ.Trong quá trình biên soạn chúng tôi đ nhận được sự trợ giúp quý báu c a nhiềuđ ng nghiệp. Chúng tôi xin cảm ơn G .TSKH. Nguyễn V n Khang và G .T .Nguyễn hong Điền đ xem giúp bản thảo và có nhiều đề nghị cải tiến quý báu

TRƯỜNG ĐẠI HỌC BÁCH KHOA NỘI VIỆN CƠ KHÍ – BỘ MÔN CƠ HỌC ỨNG DỤNG TS Nguyễn Quang Hoàng C MATLAB SIMULINK Nội 2010 ii Lời nói đầu Hệ chương trình MATLAB cơng cụ xử lý số hệ kỹ thuật từ đơn giản đến phức tạp Chương trình phù hợp với việc phân tích tổng hợp nhanh q trình động lực đặc biệt nghiên cứu phát triển, ngày Matlab sử dụng nhiều công nghiệp Matlab ngày có vai trò trường đại học cao đẳng kỹ thuật Matlab trợ giúp đắc lực sinh viên kỹ sư việc giải vấn đề tính tốn số toán kỹ thuật Đặc biệt sinh viên kỹ sư ngành Cơ khí, điện, điện tử, điện tử Matlab công cụ thiếu Mục đích c a sách cung cấp s Matlab Simulink cho sinh viên kỹ thuật từ n m thứ hai sau đ có kiến thức toán, vật lý, học kỹ thuật kỹ thuật lập trình Ngồi có thêm kiến thức kỹ thuật điều khiển, xử lý liệu số người đọc m rộng thêm ứng dụng c a Matlab Simulink Nội dung c a sách phân bố chín chương Các chương từ đến bảy trình bày việc sử dụng lệnh c a Matlab cho tốn tính toán v ctơ, ma trận, đ họa, giải phương trình vi phân thường, số ph p biến đổi tích phân ouri r, Laplace Chương giới thiệu ph n imulink – công cụ sử dụng khối hàm để mô ph ng hệ Trong chương, sau ph n giới thiệu cách sử dụng lệnh c a Matlab có ví dụ cụ thể ph n tập thực hành để người học tự thực hành Trong chương số toán kỹ thuật thường gặp l nh vực học kỹ thuật trình bày Cuốn sách biên soạn s giảng c a tác giả cho sinh viên ngành Cơ điện tử Trường Đại học Kinh doanh Công nghệ nội Tuy nhiên, sách không tài liệu học tập cho sinh viên trường đại học định hướng ứng dụng mà tài liệu học tập cho sinh viên trường đại học cao đẳng kỹ thuật Cuốn sách tài liệu bổ ích cho kỹ sư công việc chuyên môn c a họ Trong q trình biên soạn chúng tơi đ nhận trợ giúp quý báu c a nhiều đ ng nghiệp Chúng xin cảm ơn G TSKH Nguyễn V n Khang G T Nguyễn hong Điền đ xem giúp thảo có nhiều đề nghị cải tiến quý báu iii Mặc dù đ cố gắng nhiều, chắn không tránh kh i sai sót, tác giả mong muốn nhận góp ý c a bạn đ ng nghiệp c a m sinh viên để có điều kiện sửa chữa, hoàn thiện l n tái sau Mọi ý kiến đóng góp xin gửi địa c a tác giả: T Nguyễn uang Hoàng, Bộ môn Cơ học ứng dụng, Trường Đại học Bách khoa Nội E-mail: hoangnq-dam@mail.hut.edu.vn, T l 04.3 046 10 ăm 2010 Tác giả iv M Lời nói đ u iii 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 11 12 12 13 Matlab gì? Giao diện người sử dụng Các ph p tính số học Tốn tử gán Các định ngh a toán học ố phức Xử lý lỗi gõ lệnh Kết thúc phiên làm việc với Matlab Bài tập thực hành , 2.1 V ctơ ph p tính v ctơ Nhập v ctơ Các ph p tính cộng trừ hai v cto cỡ Tạo v ctơ cỡ lớn từ biến sẵn có Tạo v ctơ có ph n tử cách Các đặc trưng c a v ctơ Tích vơ hướng tích có hướng hai v ctơ Tham chiếu đến ph n tử v ctơ Một số hàm định sẵn cho v ctơ 2.2 Biểu diễn đa thức b ng v ctơ Nhập đa thức Các ph p tính đa thức h p nhân đa thức Phép chia đa thức h p cộng trừ đa thức Không điểm hay nghiệm c a phương trình đa thức Xây dựng đa thức từ không điểm cho trước Giá trị c a đa thức điểm Đạo hàm đa thức 2.3 Ma trận ph p tính ma trận Nhập ma trận 15 15 16 17 18 19 21 22 23 23 23 24 24 25 25 26 26 26 27 28 28 v Nhân ma trận với số, ph p cộng trừ hai ma trận Chuyển vị ma trận h p nhân ma trận Một số ph p tính khác Các ma trận đặc biệt Tham chiếu đến ph n tử c a ma trận Ma trận khối h p nhân mảng hai ma trận cỡ Tính định thức giải hệ phương trình đại số tuyến tính Tìm hạng c a ma trận Tìm ma trận nghịch đảo tựa nghịch đảo Trị riêng v ctơ riêng c a ma trận vng hân tích ma trận vng A thành tích ma trận 2.4 Bài tập thực hành 28 29 29 30 31 33 35 36 37 39 41 46 47 51 3.1 Các kiểu liệu Kiểu v ctơ ma trận Chuỗi ký tự (ký tự, xâu - string) Kiểu ô, mảng (C ll-Array) Kiểu cấu trúc 3.2 oạn thảo Script file Matlab Scripts Các hàm, MATLAB - Function 3.3 Các vòng lặp rẽ nhánh Vòng lặp OR Vòng lặp WHILE Lệnh if, cấu trúc if - else - end Cấu trúc switch-case 3.4 Các Mat-File 3.5 Bài tập thực hành 53 53 54 54 54 56 57 60 62 62 63 65 66 71 71 Đồ ọ 4.1 Đ họa 2D Đặt màu kiểu đường cho đ thị Một số tùy chọn vẽ đ thị 2D Vẽ nhiều đ thị hệ trục 73 76 77 79 vi Thêm thích Các lệnh axis Đặt giới hạn miền vẽ với lệnh axis Lệnh ubplots Vẽ đ thị xếp ch ng lệnh linspace Đ thị th o tọa độ cực Đ thị với thang chia Logarith Đ thị c a liệu rời rạc Vẽ biểu đ với lệnh contour – vẽ đường đ ng mức Thêm thích đ thị Vẽ đ thị hàm có điểm khơng xác định 4.2 Các lệnh vẽ không gian – 3D 4.3 Bài tập thực hành 5.1 5.2 5.3 5.3 ị ó đ Mịn hóa b ng đa thức Mịn hóa b ng hàm e mũ Nội suy đa thức Bài tập thực hành 81 82 83 84 87 89 92 96 101 101 103 113 115 120 122 125 P â 6.1 Giải phương trình vi phân bậc với od 23 od 45 6.2 Giải phương trình vi phân bậc hai 6.3 Bài tập thực hành 127 133 139 ế đổ í â 7.1 h p biến đối Laplac 7.2 h p biến đổi Laplac ngược 7.3 p dụng Laplac giải phương trình vi phân 7.4 h p biến đổi ouri r 7.5 h p biến đổi ouri r ngược 7.6 h p biến đổi ouri r tín hiệu rời rạc 7.7 h p biến đổi ouri r nhanh (FFT) 7.8 Bài tập thực hành 141 143 145 148 151 151 152 154 Gớ ệu ề S u 8.1 Khái niệm simulink 157 k vii 8.2 Nguyên lý hoạt động việc thực hành simulink Kh i động simulink Các khối simulink 8.3 Một số ví dụ đơn giản Mơ hình hóa phương trình b ng sơ đ khối Mơ ph ng q trình động học Mơ hình hóa hệ động lực liên tục đơn giản Mô tả hệ dao động bậc tự Mô ph ng số tay máy bậc tự 8.4 Đơn giản sơ đ simulink Đơn giản sơ đ simulink b ng khối cn Đơn giản sơ đ simulink b ng khối subsyst m Kết hợp simulink script fil (m-file) 8.5 Xử lý kết mô ph ng 8.6 Bài tập thực hành 9.1 9.2 9.3 9.4 9.5 9.6 9.7 g G k u Bài toán hệ Hệ t nh định Hệ siêu t nh Bài toán uốn phẳng c a d m Bài toán qu đạo chuyển động c a viên đạn Bài tốn bắn trúng đích Bài toán dao động Con lắc đơn Con lắc đơn dây tr o đàn h i Con lắc k p Dao động nh c a lắc lliptic Hệ dao động ba bậc tự hân tích động học cấu hân tích động học cấu bốn khâu lề Bài tốn động học ngược rơbốt Tài liệu tham khảo viii 159 159 160 164 164 166 168 169 171 174 174 175 177 184 185 189 189 191 193 199 203 206 206 208 211 213 214 216 218 221 225 Chương Môi trường Matlab 1.1 Matlab gì? MATLAB viết tắt từ “MATrix LABoratory”, cơng cụ tính tốn số mơ số, công cụ phát triển dựa thư viện hàm tính tốn số viết ngơn ngữ lập trình FORTRAN Matlab có giao diện thân thiện với người sử dụng Một định nghĩa khác: Matlab phần mềm đa tính tốn số, thể số liệu hình ảnh trực quan ngơn ngữ đa cung cấp môi trường linh hoạt cho việc tính tốn kỹ thuật Matlab bao gồm nhiều công cụ để: - thu thập liệu (Data acquisition) - phân tích xử lý liệu (Data analysis and exploration) - hiển thị hình ảnh trực quan xử lý hình ảnh (Visualization and image processing) - tạo mẫu phát triển thuật toán (Algorithm prototyping and development) - mơ hình hóa mơ (Modeling and simulation) - lập trình phát triển ứng dụng (Programming and application development) Matlab chạy hầu hết hệ máy tính: máy tính sách tay - Labtop, máy tính cá nhân PC, đến hệ thống siêu máy tính (super computer) Matlab điều khiển tập lệnh, tác động qua bàn phím cửa sổ điều khiển Nó cho phép khả lập trình với cú pháp thơng dịch lệnh – gọi m-file Các lệnh hay lệnh Matlab lên đến số hàng trăm ngày mở rộng nhờ thư viện trợ giúp hay người sử dụng tạo Để khởi động Matlab môi trường Windows bạn cần nháy đúp chuột vào biểu tượng Matlab có hình - Desktop Các lệnh Matlab mạnh hiệu quả, cho phép giải loại toán khác đặc biệt xử lý liệu có cấu trúc kiểu véctơ ma trận Trong phiên mới, người ta đưa việc tính tốn ký tự vào phần mềm Matlab 1.2 Giao diện người sử dụng Giao diện Matlab sau kích hoạt thể hình 1-1 dạng tương tự tùy theo lựa chọn người sử dụng (bằng lựa chọn khác mục Desktop cho ta dạng giao diện tương ứng) Hình 1-1 Cửa số giao diện Matlab Các phần tử giao diện gồm: Cửa sổ lệnh (Command Window) Cửa sổ ghi lại lệnh thực (Command History) Cửa sổ cho biết thư mục thời (Current Directory) danh sách biến sử dụng (Workspace) Thanh đường dẫn thư mục thời, cho phép chọn thư mục thời Thanh Shortcut Nút Start M_q = [m1*l1^2+m2*l1^2, m2*l1*l2*cos(q1-q2); m2*l1*l2*cos(q1-q2), m2*l2^2 ]; C_q = [ 0, m2*l1*l2*sin(q1-q2)*qd2; -m2*l1*l2*sin(q1-q2)*qd1, 0]; g_q = [g*l1*sin(q1)*(m1+m2); g*m2*l2*sin(q2)]; ydot = zeros(4,1); qdot = qd; qd_dot = inv(M_q)*(-C_q*qd - g_q); ydot = [qdot; qd_dot]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % main program global m1 m2 l1 l2 m1 = 0.25; l1 = 0.5; m2 = 0.25; l2 = 0.5; t_start = 0; t_end = 6.0; q10 = 10; q20 = 12; y1 = q10*pi/180; y2 = q20*pi/180; y3 = 0; y4 = 0; y0 = [y1 y2 y3 y4]'; [t,y] = ode45('conlactoan_kep',[0: 0.01: t_end],y0); plot(t, y(:,1),'k-', t, y(:,2),'k ', 'linewidth',1), grid on legend('q_1','q_2'), xlabel('t [s]') axis([0 t_end -0.3 0.3]); Chạy chương trình với điều kiện đầu khác cho ta kết hình 9-26 9-27 0.3 0.2 -0.2 0.1 -0.4 y [m] -0.1 -0.6 -0.2 -0.8 t [s] q1 q2 -1 -0.4 -0.2 x [m] 0.2 Hình 9-26 Kết mơ với điều kiện ñầu q10 = 10; q20 = 12; 212 0.3 0.2 - 0.2 0.1 - 0.4 y [m] - 0.1 - 0.6 - 0.8 - 0.2 -1 t [s] q1 q2 - 0.4 - 0.2 x [m] 0.2 Hình 9-27 Kết mơ với ñiều kiện ñầu q10 = 10; q20 = -12; Dao ñộng nhỏ lắc elliptic Xét lắc elliptic hình 9-28 Xe A có khối lượng m1 chuyển động đường ngang, lò xo có độ cứng c Dây AB có chiều dài l, khối lượng khơng đáng kể ln căng Tải trọng coi chất điểm có khối lượng m2 Biết x = lò xo khơng bị biến dạng Sử dụng phương trình Lagrange loại 2, ta nhận phương trình vi phân chuyển ñộng: (m1 + m2 )xɺɺ + m2lϕɺɺ cos ϕ − m2lϕɺ sin ϕ + cx = 0, m2l 2ϕɺɺ + m2lxɺɺ cos ϕ + m2gl sin ϕ = x m1 c A l ϕ m2 B Hình 9-28 Trường hợp xét xét dao động nhỏ, coi sin ϕ ≈ ϕ, cos ϕ ≈ bỏ qua số hạng phi tuyến ϕɺ , ta nhận phương trình vi phân dao động nhỏ (m1 + m2 )xɺɺ + m2l ϕɺɺ + cx = 0, m2l xɺɺ + m2l 2ϕɺɺ + m2glϕ = hay dạng ma trận   x  0 m1 + m2 m2l   xɺɺ c + =        m2l  ϕɺɺ  m2gl  ϕ     m2l  Từ ñây ta sử dụng Matlab tìm tần số dao động riêng dạng dao ñộng riêng 213 function Daodongnho_enliptic m1 = 50; m2 = 40; % kg l = 5; % m g = 9.81; % m/s^2 c = 2000; % N/m M = [m1 + m2, C = [c, m2*l; m2*l m2*l^2]; 0; 0, m2*g*l]; n = size(M,1); [V, D] = eig(C,M); for i=1:n ome(i)=sqrt(D(i,i)); end ome, v1 = V(:,1), v2 = V(:,2) x = [0:1:n]; subplot(2,1,1) plot(x, [0; V(:,1)],'k-','linewidth',1), grid on, ylabel('v_1') subplot(2,1,2) plot(x,[0; V(:,2)],'k-','linewidth',1), grid on, ylabel('v_2') Các tần số riêng dạng dao ñộng riêng v1 = -0.0062 -0.0303 v2 = -0.1413 0.0297 v1 -0.02 -0.04 0.5 1.5 1.5 0.2 v2 ome = 1.3727 6.4535 0 -0.2 0.5 Hình 9-29 Các dạng dao ñộng riêng Hệ dao ñộng ba bậc tự Cho hệ dao ñộng ba bậc tự hình 9-30 Các lò xo tuyến tính có độ cứng ci , khối lượng vật nặng mi , ( i = 1, 2, ) Gọi x i dịch chuyển khối lượng kể từ vị trí mà lò xo khơng bị biến dạng Áp dụng phương pháp tách vật (hoặc phương trình Lagrange loại 2) nhận phương trình vi phân chuyển động dạng ma trận sau: ɺɺ + Cx = p , x = [x x x ]T Mx 214 với m1 m1g  0     M =  m2  , p = m2g    m g  0 m3      c1 + c2 + c3 + c5 −c3 −c5    C= −c3 −c4  , c3 + c4  −c5 −c4 c + c5    c1 c2 x1 m1 g c3 c5 x2 Cho biết thông số hệ: c1 = c2 = c3 = 10 N/mm, c4 = c5 = N/mm , m2 c4 m3 x3 Hình 9-30 m1g = m 3g = 98.1 N, m2g = m 3g Tìm vị trí cân tĩnh hệ, cách giải hệ phương trình đại số tuyến tính để tìm biến dạng lò xo Cx = p Tìm tần số dao ñộng riêng dạng dao ñộng riêng hệ từ phương trình dao ñộng tự ɺɺ + Cx = Mx Bài toán ñược giải Matlab m-file sau: function Daodon_3DOF m1 = 10; m2 = 5; m3 = m1; % kg c1 = 10000; % N/m c2 = c1; c3 = c1; c4 = 5000; c5 = c4; g = 9.81; % m/s^2 M = diag([m1, m2, m3]); C = [ c1+c2+c3+c5, -c3, -c5; -c3, c3+c4, -c4; -c5, -c4, c4+c5]; p = g*[m1; m2; m3]; x0 = inv(C)*p % tinh dan tinh cua cac lo xo n = size(M,1); [V, D] = eig(C,M); for i=1:n ome(i)=sqrt(D(i,i)); end ome' v1 = V(:,1) v2 = V(:,2) v3 = V(:,3) 215 x = [0:1:n]; subplot(3,1,1) plot(x,[0; V(:,1)],'k-','linewidth',1), grid on, ylabel('v_1') subplot(3,1,2) plot(x,[0; V(:,2)],'k-','linewidth',1), grid on, ylabel('v_2') subplot(3,1,3) plot(x,[0; V(:,3)],'k-','linewidth',1), grid on, ylabel('v_3') ðộ dãn tĩnh lò xo x0 = 0.0123 0.0201 0.0260 Các tần số dao ñộng riêng 0.4 v1 ome = 21.2572 48.5851 68.4662 0.2 0 0.5 Các véctơ dạng riêng v1 = -0.5 v2 = 3 v2 0.1053 0.1875 0.2671 0.5 v3 0.1756 0.2847 -0.1692 v3 = -0.2410 0.2895 -0.0066 -0.5 Hình 9-31 Các dạng dao động riêng 9.6 Phân tích động học cấu Bài tốn phân tích động học cấu dựa phương trình liên kết thường dẫn đến việc giải hệ phương trình đại số phi tuyến Sau trình bày việc giải hệ phương trình đại số phi tuyến phương pháp Newton-Raphson Bài tốn: cần tìm nghiệm x thỏa mãn hệ phương trình đại số phi tuyến f (x) = 0, f ∈ Rn , x ∈ Rn hay viết dạng hệ n phương trình fk (x 1, x , , x n ) = 0, 216 k = 1, 2, , n ðể thiết lập bước tính, trước hết ta khai triển Taylor hàm f (x) lân cận x ∂f (x )δ x + O(δ x)2 ∂x = f (x ) + J(x )δ x + O(δ x)2 f (x + δ x) = f (x ) + với J(x ) ma trận Jacobi ñược xác ñịnh ñiểm x  ∂f1  ∂x  ∂f  ∂f J(x ) = (x ) =  ∂x ∂x   ∂f  n  ∂x ∂f1 ∂x ∂f2 ∂x ∂fn ∂x ∂f1  ∂x n  ∂f2   ∂x n  (x )  ∂fn   ∂x n  Giả sử x xấp xỉ ban ñầu nghiệm cần tìm ñể (x + δ x) giá trị gần nghiệm (chính xác hơn), ta cho f (x + δ x) = Từ nhận hệ phương trình đại số tuyến tính δ x J(x )δ x = −f (x ) suy δ x = − J−1 (x ) ⋅ f (x0 ) Lấy giá trị x1 = x + δ x xấp xỉ gần ñúng nghiệm Lặp lại nhiều lần công việc trên, phương pháp hội tụ cho ta nghiệm hệ phương trình đại số phi tuyến Thuật giải Bước Khởi gán k = , chọn xấp xỉ ban ñầu x(0) Bước Tính f (x(k ) ) Nếu || f (x(k ) ) || < ε dừng, khơng tiếp tục từ Bước Tính ma trận Jacobi x(k ) , tức J(x(k ) ) Bước Giải J(x(k ) )δ x = −f (x(k ) ) để tìm δ x(k ) Bước Lấy x(k +1) = x(k ) + δ x Bước Tăng k , k = k + Nếu k > M với M số bước lặp chọn trước, dừng Nếu không, tiếp tục từ Bước Trong thuật giải ta khỏi vòng lặp hai tình Khi khơng đạt độ xác cần thiết, ta buộc phải kết thúc sau số bước lặp định (bước 6) Q trình lặp kết thúc tốt ta đạt độ xác chọn trước (bước 2) Chú ý ñây ta chọn ñiều kiện dừng cách xét chuẩn Euclide vectơ f Cũng thay điều kiện ñiều kiện khác 217 || δ x || < ε Sự thành công phương pháp phụ thuộc vào việc chọn xấp xỉ ban ñầu Nếu chọn ñược ñiểm xuất phát tốt, phương pháp hội tụ nhanh Ngược lại, khó đốn yêu cầu thuật toán phải dừng lại sau số bước lặp ñịnh Khi áp dụng phương pháp Newton-Raphson để giải tốn, ngồi việc nhập hàm f (x) vào, u cầu phải có ma trận Jacobi J(x) Trong trường hợp việc ñạo hàm ∂fi / ∂x j gặp khó khăn, khó thực ñược ta sử dụng xấp xỉ sau ñây ñể tính ma trận jacobi f (x + e j h ) − fi (x) ∂fi ≈ i ∂x j h với h bước nhỏ e j véctơ ñơn vị theo hướng trục x j Phân tích động học cấu bốn khâu lề Cho cấu khâu lề OABC hình 932 Các kích thước cấu OA = l2, AB = l3, BC = l4, dx dy Hãy viết phương trình liên kết cho cấu, từ giải tốn vị trí cấu phương pháp NewtonRaphson Cho biết q1 = q10 + Ωt , xác định góc ϕ3 (t ) ϕ4 (t ) thời ñiểm tk , k = 1, 2, 3, ứng với góc quay OA, q1 = q10 + Ωtk Cho biết thông số cấu l1 = 0.20, l2 = 0.60, l = 0.40, dx = 0.45, dy = 0.12 m y B q2 A q3 q1 dy C O x dx Hình 9-32 Từ hình vẽ ta viết phương trình liên kết f1(q1, q , q ) = l1 cos q1 +l2 cos q − dx − l cos q = f2 (q1, q , q ) = l1 sin q1 + l2 sin q − dy − l sin q = Tính ma trận jacobi  −l2 sin q l sin q   −l1 sin q1  Jq23 =  , Jq1 =   l cos q −l cos q l cos q1      ðạo hàm phương trình liên kết theo thời gian cho ta phương trình để giải tốn vận tốc gia tốc: Jq23 qɺ 23 + Jq1qɺ1 = ⇒ qɺ 23 = − Jq−231 Jq1qɺ1 ɺɺ23 = − Jq−231 (Jɺ q23 qɺ 23 + Jq1qɺɺ1 + Jɺ q1qɺ1 ) Jq23 ɺɺ q 23 + Jɺ q23 qɺ 23 + Jq1qɺɺ1 + Jɺ q1qɺ1 = ⇒ q 218 với  −qɺ2l2 cos q qɺ3l cos q   −l1 cos q1  Jɺ q23 =  , Jɺ q1 =  qɺ  −qɺ l sin q qɺ3l sin q −l sin q1   22    Triển khai Matlab với m-file Các phương trình liên kết function f = bkbl_ ptlk(q1, q2, q3) global l1 l2 l3 dx dy f1 = l1*cos(q1) + l2*cos(q2) - l3*cos(q3) - dx; f2 = l1*sin(q1) + l2*sin(q2) - l3*sin(q3) - dy; f=[f1; f2]; Các ma trận Jacobi function [J1, J23] = bkbl_Jacob(q1,q2,q3) global l1 l2 l3 dx dy J1 = [-l1*sin(q1); l1*cos(q1)]; J23 = [-l2*sin(q2), l3*sin(q3); l2*cos(q2), -l3*cos(q3)]; ðạo hàm ma trận Jacobi function [dJ1, dJ23] = bkbl_Jacdot(q1,q2,q3, dq1, dq2,dq3) global l1 l2 l3 dx dy dJ1 = -l1*dq1*[cos(q1); sin(q1)]; dJ23 = [-dq2*l2*cos(q2), dq3*l3*cos(q3); -dq3*l2*sin(q2), dq3*l3*sin(q3)]; Chương trình function bkbl_main global l1 l2 l3 dx dy l1 = 0.12; l2 = 0.70; l3 = 0.40; dx = 0.50; dy = 0.10; %cho goc cua tay quay OA q10 = 0.5; % rad omega = 1.0; % rad/s t = linspace(0, 5*pi/omega, 360); a(1) = 0.2; b(1) = 0.542; % chon xap xi ban dau cho q2, q3 for i=1:length(t) q1(i)= q10+omega*t(i); dq1(i) = omega; ddq1(i) = 0; f = ptlk_bkbl(q1(i), a(1), b(1)); k = 1; while (norm(f,2) > 1.0e-10 && k < 30) [J1, J23] = Jacob_bkbl(q1(i), a(1), b(1)); deltax = inv(J23)*(-f); a(2) = a(1)+deltax(1); 219 b(2) = b(1)+deltax(2); a(1) = a(2); b(1) = b(2); f = ptlk_bkbl(q1(i), a(1), b(1)); k = k+1; end q2(i)=a(1); q3(i)=b(1); % van toc [J1, J23] = Jacob_bkbl(q1(i), q2(i), q3(i)); dq23 = -inv(J23)*J1*dq1(i); dq2(i) = dq23(1); dq3(i) = dq23(2); % gia toc [dJ1, dJ23] = Jacdot_bkbl(q1(i),q2(i),q3(i),dq1(i),dq2(i),dq3(i)); ddq23 = -inv(J23)*(dJ23*dq23 + J1*ddq1(i) + dJ1*dq1(i)); ddq2(i) = ddq23(1); ddq3(i) = ddq23(2); end figure(1) plot(t,q2,'k-', t, dq2,'k ', 'linewidth',1), grid on xlabel('t [s]'), legend('q_2', 'dq_2') axis([0 max(t) -0.5 1.1]) figure(2) plot(t,q3,'k-', t, dq3,'k ', 'linewidth',1), grid on xlabel('t [s]'), legend('q_3', 'dq_3') axis([0 max(t) -0.8 2.2]) x0 = 0; y0 = 0; r = 0.005; figure(3), hold on plot(x0,y0,'o-','linewidth',1), plot(dx,dy,'o-','linewidth',1) for i = 1:5:length(t)/2 x1(i) = l1*cos(q1(i)); x2(i) = x1(i) + l2*cos(q2(i)); y1(i) = l1*sin(q1(i)); y2(i) = y1(i) + l2*sin(q2(i)); x4(i) = dx; x3(i) = dx + l3*cos(q3(i)); y4(i) = dy; y3(i) = dy + l3*sin(q3(i)); x_day = [x0, x1(i), x2(i), x3(i), x4(i), x0]; y_day = [y0, y1(i), y2(i), y3(i), y4(i), y0]; plot(x_day, y_day, 'k-','linewidth',1), grid on, axis equal tam1 = [x1(i), y1(i)]; vehinhtron(tam1,r); tam2 = [x2(i), y2(i)]; vehinhtron(tam2,r); end axis([-0.2 0.8 -0.2 0.6]) ðồ thị góc q , q ñạo hàm qɺ2 , qɺ3 ñược thể hình 933 Cấu hình cấu số vị trí hình 9-34 220 0.5 0 - 0.5 10 15 10 15 t [s] t [s] q2 q3 dq2 dq3 Hình 9-33 ðồ thị góc q2 q3 theo thời gian 0.6 0.5 0.4 0.3 0.2 0.1 -0.1 -0.2 -0.2 0.2 0.4 0.6 0.8 Hình 9-34 Cấu hình cấu bốn khâu lề 9.7 Bài tốn động học ngược rơbốt Trong tốn động học ngược rơbốt, ta cần xác ñịnh góc khớp – hay tọa ñộ khớp – muốn bàn kẹp rơbốt vị trí mong muốn Trong phần ta xét tay máy hai bậc tự phẳng có sơ đồ hình 9-35 Cần tìm tọa độ suy rộng q1, q để bàn kẹp E vị trí mong muốn cho trước x E , yE Biết chiều dài khâu OA = L1 = 0.50 m , AE = L2 = 0.70 m ðối với tốn này, rơbốt có cấu trúc đơn giản, ta giải phương pháp hình học, cách giải tam giác OAE biết chiều dài ba cạnh 221 Ở ta sử dụng phương pháp giải hệ phương trình phi tuyến, để giải tốn này, lẽ phương pháp mở rộng dễ dàng cho rơbốt có số bậc tự lớn có cấu trúc phức tạp Mối liên hệ tọa ñộ ñiểm E với tọa ñộ suy rộng ñược xác ñịnh x E = l1 cos q1 + l2 cos(q1 − q ) E q2 yE A q1 O yE = l1 sin q1 + l2 sin(q1 − q ) xE Hình 9-35 ðây hệ hai phương trình phi tuyến hai ẩn q1, q Phương pháp Newton-Raphson ñược sử dụng ñể giải hệ này, với ma trận Jacobi sau  −l1 sin q1 Jq =   l1 cos q1 l2 sin(q1 − q )  −l2 cos(q1 − q )  Triển khai Matlab với m-file sau: Phương trình liên kết function f = taymay2dof_bkbl(q1, q2, xE, yE) global l1 l2 f1 = l1*cos(q1) + l2*cos(q1 - q2) - xE; f2 = l1*sin(q1) + l2*sin(q1 - q2) - yE; f=[f1; f2]; Ma trận Jacobi function Jq = taymay2dof_Jacob(q1, q2) global l1 l2 Jq = [-l1*sin(q1), l2*sin(q1 - q2); l1*cos(q1), -l2*cos(q1 - q2)]; Chương trình function taymay2dof_main global l1 l2 l1 = 0.50; l2 = 0.70; n = 20; % so diem chia xE = linspace(1.1, 0.1, n); yE = linspace(0.1, 1.1, n); a(1) = 0.5; b(1) = 0.2; % chon xap xi ban dau cho q1, q2 for i=1:n f = taymay2dof_ptlk(a(1), b(1), xE(i), yE(i)); k = 1; while (norm(f,2) > 1.0e-10 && k < 30) 222 Jq dq a(2) a(1) f k = = = = = = taymay2dof_Jacob(a(1), b(1)); inv(Jq)*(-f); a(1)+dq(1); b(2) = b(1)+dq(2); a(2); b(1) = b(2); taymay2dof_ptlk(a(1), b(1), xE(i), yE(i)); k+1; end q1(i) = a(1); q2(i) = b(1); end k = 1:1:n; figure(1) plot(k, q1,'k-', k, q2,'k ', 'linewidth',1), grid on legend('q_1', 'q_2'), xlabel('k = n'), ylabel('[rad]') axis([0 n+1 2.1]) figure(2) x0 = 0; y0 = 0; plot(x0,y0,'o-','linewidth',1), hold on for i = 1:n xA(i) = l1*cos(q1(i)); xE(i) = xA(i)+l2*cos(q1(i)-q2(i)); yA(i) = l1*sin(q1(i)); yE(i) = yA(i)+l2*sin(q1(i)-q2(i)); x_day = [x0, xA(i), xE(i)]; y_day = [y0, yA(i), yE(i)]; plot(x_day, y_day, 'k-','linewidth',1), grid on, axis equal end Chạy chương trình cho ta kết bảng 9-5 ðồ thị góc khớp cấu hình tương ứng rơbốt đưa hình 9-36 0.8 y [m] [rad] 1.5 0.6 0.4 0.2 q1 0.5 q2 0 10 k = n 15 20 -0.2 0.5 x [m] Hình 9-36 ðồ thị tọa độ q1, q cấu hình rơbốt 223 Bảng 9-5 Kết tính tốn tốn động học ngược 224 k Cho trước xE [m] yE [m] Giải tìm q1 [rad] q2 [rad] 1.1000 0.1000 0.5701 0.8152 1.0474 0.1526 0.7334 0.9965 0.9947 0.2053 0.8806 1.1411 0.9421 0.2579 1.0181 1.2600 0.8895 0.3105 1.1488 1.3584 0.8368 0.3632 1.2738 1.4387 0.7842 0.4158 1.3931 1.5024 0.7316 0.4684 1.5063 1.5499 0.6789 0.5211 1.6123 1.5816 10 0.6263 0.5737 1.7098 1.5974 11 0.5737 0.6263 1.7974 1.5974 12 0.5211 0.6789 1.8739 1.5816 13 0.4684 0.7316 1.9380 1.5499 14 0.4158 0.7842 1.9889 1.5024 15 0.3632 0.8368 2.0257 1.4387 16 0.3105 0.8895 2.0478 1.3584 17 0.2579 0.9421 2.0545 1.2600 18 0.2053 0.9947 2.0444 1.1411 19 0.1526 1.0474 2.0148 0.9965 20 0.1000 1.1000 1.9596 0.8152 Tài liệu tham khảo [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Ottmar Beucher: Matlab und Simulink: Grundlegende Einführung für Studenten und Ingenierure in der Praxis Pearson Studium Verlag; Auflage (2006) Helmut Bode: MATLAB-Simulink Analyse und Simulation dynamischer Systeme Springer Verlag, 2006 Jörg Kahlert: Simulation technischer Systeme: Eine beispielorientierte Einführung Vieweg & Sohn-Verlag, Wiesbaden, 2004 Jaan Kiusalaas: Numerical Methods in Engineering with MATLAB Cambridge University Press, 2005 David McMahon: MATLAB Demystified - A Self-Teaching Guide McGrawHill, 2007 John H Mathews, Kurtis D Fink: Numerical methods using MATLAB Ed Prentice Hall 1999 Dieter Pietruszka: MATLAB in der Ingenieurpraxis Modellbildung, Berechnung und Simulation Ed Vieweg+Teubner Verlag, 2006 L.F Shampine, I Gladwell, S Thomson: Solving ODEs with Matlab Cambridge University Press, 2003 Won Young Yang, Wenwu Cao, Tae-Sang Chung, John Morris: Applied Numerical Methods Using Matlab John Wiley & Sons, Inc., 2005 D Gross, W Hauger, W Schnell, J Schröder: Technische Mechanik, Band 1: Statik (8 Auflage) Springer - Verlag, Berlin 2004 D Gross, W Hauger, W Schnell, J Schröder: Technische Mechanik, Band 2: Elastostatik (8 Auflage) Springer -Verlag, Berlin 2005 D Gross, W Hauger, W Schnell, J Schröder: Technische Mechanik, Band 3: Kinetik (8 Auflage) Springer -Verlag, Berlin 2004 Dankert/Dankert: Technische Mechanik: Statik, Festigkeitslehre, Kinematik/Kinetik (3 Auflage) Teubner B.G 2004 R.C Hibbele: Engineering Mechanics –Strength of Materials (10.Edition) Prentice Hall, Upper Saddle River , New Jersey 2004 Nguyễn Hồng Hải Nguyễn Việt Anh: Lập trình Matlab ứng dụng NXB Khoa học Kỹ thuật, Nội 2006 Nguyễn Văn Khang: Dao ñộng kỹ thuật (in lần 4) NXB Khoa học Kỹ thuật, Nội 2005 ðinh Văn Phong: Phương pháp số học Nhà xuất Khoa học Kỹ thuật, 1999 225 [18] Nguyễn Phùng Quang: Matlab & Simulink dành cho kỹ sư ñiều khiển tự ñộng NXB Khoa học Kỹ thuật, Nội 2006 [19] ðỗ Sanh: Cơ học kỹ thuật, tập tập Nhà xuất Giáo dục, nội 2008 [20] Phạm Thị Ngọc Yến, Ngơ Hữu Tình, Lê Tấn Hùng Nguyễn Thị Lan Hương: Cơ sở Matlab & ứng dụng NXB Khoa học Kỹ thuật, Nội, 2007 [21] Lê Quang Minh, Nguyễn Văn Vượng: Sức bền vật liệu, Tập 1,2,3 NXB Giáo dục, nội 1997 [22] ðặng Việt Cương, Nguyễn Nhật Thăng, Nhữ Phương Mai: Sức bền vật liệu, tập NXB Khoa Học Kỹ Thuật, 2002 [23] Phạm Minh Hồng: Maple tốn ứng dụng NXB Khoa học Kỹ thuật, 2008 226 ... asinh cos cosd cosh acos acosd acosh Hàm Hàm Hàm Hàm Hàm Hàm Hàm Hàm sin sin cos cos cos cos cos cos ngược cho kết độ Hyperbolic ngược tan tand atan Hàm Hàm Hàm Hàm tang, Tangent tang với đối số... Hyperbolic tang ngược, arctang atand atan2 atanh cot cotd coth acot acotd acoth Hàm Hàm Hàm Hàm Hàm Hàm Hàm Hàm Hàm tang ngược cho kết độ tang ngược cho kết từ –pi ñến pi tang Hyperbolic ngược... 8.6 Bài tập thực hành 9.1 9.2 9.3 9.4 9.5 9.6 9.7 g G k u Bài toán hệ Hệ t nh định Hệ siêu t nh Bài toán uốn phẳng c a d m Bài toán qu đạo chuyển động c a viên đạn Bài toán bắn trúng đích Bài

Ngày đăng: 15/12/2017, 15:35

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan