Trong luận văn này, tác giả sử dụng bộ điều khiển nơron mờ thích nghi trực tiếp để điều khiển cánh tay robot SCARA. Mạng nơron mờ được sử dụng trong bộ điều khiển để xấp xỉ mô hình phi tuyến cánh tay robot do các thành phần như trọng lực, lực ma sát, mômen hướng tâm, lực Coriolis,… gây ra nhằm loại bỏ các thành phần liên kết chéo trong robot. Ngoài ra, thành phần điều khiển chế độ trượt được chọn để đảm bảo cho hệ thống ổn định nhằm tăng tính bền vững cho hệ thống.
ĐIỀU KHIỂN NƠ-RON MỜ ĐỐI TƢỢNG CÁNH TAY ROBOT SCARA TP.HCM 05 – 2012 ĐIỀU KHIỂN NƠ-RON MỜ ĐỐI TƢỢNG CÁNH TAY ROBOT SCARA CHUYÊN NGÀNH : TỰ ĐỘNG HÓA MÃ SỐ : 605260 TP.HCM 05 – 2012 TÓM TẮT LUẬN VĂN Trong luận văn này, tác giả sử dụng điều khiển nơ-ron mờ thích nghi trực tiếp để điều khiển cánh tay robot SCARA Mạng nơ-ron mờ sử dụng điều khiển để xấp xỉ mô hình phi tuyến cánh tay robot thành phần trọng lực, lực ma sát, mô-men hướng tâm, lực Coriolis,… gây nhằm loại bỏ thành phần liên kết chéo robot Ngoài ra, thành phần điều khiển chế độ trượt chọn để đảm bảo cho hệ thống ổn định nhằm tăng tính bền vững cho hệ thống MỤC LỤC Chƣơng 1: Tổng quanđề tài 1.1 Giới thiệu trang 16 1.2 Phương pháp nghiên cứu trang 20 1.3 Sơ lược nội dung đề tài trang 20 Chƣơng 2: Cơ sở lý thuyết 2.1 Điều khiển mờ 2.1.1 Khái niệm điều khiển mờ trang 22 2.1.2 Điều khiển mờ trang 23 2.1.3 Phương pháp thiết kế điều khiển mờ trang 25 2.1.4 Một số điều khiển mờ thông dụng trang 27 2.2 Mạng nơ-ron nhân tạo trang 29 2.2.1 Khái niệm mạng nơron nhân tạo trang 29 2.2.2 Kết nối mạng nơron nhân tạo trang 32 2.2.3 Huấn luyện mạng nơron nhân tạo trang 33 2.2.4 Ứng dụng mạng nơron nhân tạo điều khiển trang 35 2.3 Mạng neuron mờ Singleton 2.3.1 Cấu trúc mạng trang 36 2.3.2 Huấn luyện mạng neuron mờ Singleton trang 38 Chƣơng 3: Khảo sát đối tƣợng điều khiển 3.1 Giới thiệu trang 44 3.2 Mô hình toán học cánh tay máy SCARA trang 49 3.2.1 3.2.2 Mô hình động học tay máy trang 50 3.2.1.1 Mô hình động học thuận trang 50 3.2.1.2 Mô hình động học ngược trang 50 Mô hình động lực học tay máy trang 51 3.3 Thiết kế thi công phần cứng trang 56 3.3.1 Mô hình phần cứng cánh tay máy hai khâu trang 56 3.3.2 Các thành phần hệ thống trang 58 3.3.2.1 Card giao tiếp NI 6009 USB trang 58 Chƣơng 4: 3.3.2.2 Encoder trang 61 3.3.2.3 Động DC trang 61 3.3.2.4 Mạch đếm xung encoder giao tiếp LCD trang 62 3.3.2.5 Mạch điều khiển động dùng cầu H trang 63 Điều khiển nơ-ron mờ Cánh tay robot scara 4.1Điều khiển Nơron mờ thích nghi trực tiếp (Direct Adaptive Fuzzy Neural control ) trang 64 4.2 Giải thuật thiết kế điều khiển nơron mờ thích nghi trực tiếp cho cánh tay Robot SCARA Chƣơng 5: trang 67 Kết điều khiểnnơ-ron mờ cánh tay robot scara 5.1 Mô cánh tay robot SCARA với tín hiệu góc đặt khác trang 72 5.1.1 Mô cánh tay robot SCARA với tín hiệu góc đặt số trang 73 5.1.2 Mô cánh tay robot SCARA với tín hiệu góc đặt dạng bước trang 76 5.1.3 Mô cánh tay robot SCARA với tín hiệu góc đặt dạng sóng vuông: trang 78 5.1.4 Mô cánh tay robot SCARA với tín hiệu góc đặt hình sin trang 81 5.1.5 Mô cánh tay robot SCARA với tín hiệu góc đặt có quỹ đạo đầu mút đường thẳng trang 84 5.2 Mô cánh tay robot SCARA với dạng quỹ đạo đầu mút khác trang 88 5.3 Hướng phát triển đề tài trang 91 Phụ lục Phụ lục A: Chú thích khối sơ đồ Simulink trang 92 Phụ lục B: Code chương trình mô thực matlab trang 95 Phụ lục C: Thông số kỹ thuật cánh tay trang 101 Phụ lục D: Sơ đồ nối dây card USB 6009 NI trang 103 Tài liệu tham khảo trang 104 DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT, BẢNG BIỂU, HÌNH VẼ VÀ ĐỒ THỊ DANH MỤC CÁC BIẾN, TOÁN TỬ, HÀM arg đối số làm cực tiểu hàm lim giới hạn max cực đại cực tiểu sup cận nhỏ diag ma trận chéo sgn hàm dấu DANH MỤC CÁC KÝ HIỆU A ma trận hệ thống B ma trận đầu vào C ma trận đầu I ma trận đơn vị t biến thời gian r bậc tương đốicủa hệ phi tuyến n bậc hệ phi tuyến p số ngõ vào, ngõ u véctơ tín hiệu ngõ vào điều khiển u u1 , u2 , u* t véctơ tín hiệu điều khiển hồi tiếp tuyến tính hóa lý tưởng uˆ t véctơ tín hiệu điều khiển xấp xỉ luật điều khiển hồi tiếp tuyến tính hóa lý , u p p * tưởng u t uce t tín hiệu điều khiển theo nguyên lý chắn tương đương usd t véctơ tín hiệu điều khiển chế độ điều khiển trượt u x * sai lệch uˆ x u x v t véctơ tín hiệu vào hệ thống động hồi tiếp tuyến tính hóa x véctơ biến trạng thái x x1 , y t véctơ tín hiệu ra, y t y1 t , f x véctơ đặc tính động học hệ phi tuyến MIMO ym t quỹ đạo chuẩn mong muốn V hàm Lyapunov Qu ma trận trọng số hàm Lyapunov QuT ma trận chuyển vị Qu véctơ hàm sở, 1 , i thành phần thứ i véctơ , xn n T , y p t p , nb u x sai số cấu trúc xấp xỉ ui* x mạng nơron RBF i u x hàm chặn u x i i b x hàm chặn b x b x hàm chặn b x a x véctơ đặc tính động học hệ phi tuyến MIMO dạng chuẩn b x véctơ đặc tính động học hệ phi tuyến MIMO dạng chuẩn u véctơ thông số luật điều khiển u luật thích nghi thông số sơ đồ khối hệ thống điều khiển thích nghi trực tiếp u sai số thông số ước lượng uT chuyển vị u es t sai số bám e0 t sai số ngõ d nhiễu d d1 , d , độ phân tán hàm sở T , d p p i Wij độ phân tán hàm sở thứ i véctơ trọng số kết nối trọng mạng nơ-ron DANH MỤC CÁC TỪ VIẾT TẮT MIMO Multi Input Multi Output (Nhiều đầu vào nhiều đầu ra) SISO Single Input Single Output (Một đầu vào đầu ra) ANN Artificial Neural Network (Mạng nơron nhân tạo) PID Proportional Intergral Derivative (Bộ điều khiển vi tích phân tỉ lệ) GA Genetic Algorithm (Giải thuật di truyền) DANC Direct Adaptive Neural Control (Điều khiển nơron thích nghi trực tiếp) RBF Radius Basis Function Networks (Mạng hàm sở xuyên tâm) MLP Multi Layer Perceptron (Mạng nơ-ron truyền thẳng nhiều lớp) BP Back Propagation (Thuật học lan truyền ngược) SCARA Selective Compliant Articulated Robot Arm (Tay máy mềm dẻo tùy ý) DANH MỤC CÁC HÌNH VẼ Hình 1.1: SCARA robot hãng EPSON Hình 1.2: Robot hàn hãng Fanuc Hình 1.3: Robot sơn hãng ABB Hình 2.1: Hệ bồn chứa Hình 2.2: Sơ đồ khối hệ thống điều khiển mờ (trực tiếp) Hình 2.3Bộ điều khiển mờ Hình 2.4Một điều khiển PD mờ dùng hệ quy tắc Mamdani Hình 2.5Một điều khiển PID mờ dùng hệ quy tắc Sugeno Hình 2.6Mô hình mạng nơron nhân tạo thứ i Hình 2.7Mô tả cách học có giám sát Hình 2.8: Mô tả cách học củng cố Hình 2.9: Mô tả cách học không giám sát Hình 2.10: Cấu trúc mạng Neuron Mờ Hình 2.11: Hàm liên thuộc dạng Gaussian Hình 3.1: Robot kiểu tọa độ Đề-các Cấu hình T.T.T Hình 3.2: Robot kiểu tọa độ trụ Cấu hình R.T.T Hình 3.3.1: Cấu hình R.R.R Hình 3.3.2: Cấu hình R.R.T Hình 3.4: Robot kiểu tọa góc Cấu hình R.R.T Hình 3.5: Robot kiểu SCARA Hình 3.6: Mô hình vật lý cánh tay máy hai khâu Hình 3.7: Mô hình cánh tay máy hai khâu xét hệ trục tọa độ Oxy Hình 3.8: Mô hình động DC Hình 3.9: Mô hình thiết kế tổng thể cánh tay máy hai khâu Hình 3.10: Hình chiếu cạnh bên mô hình thiết kế cánh tay máy hai khâu Hình 3.11: Hình chiếu mô hình thiết kế cánh tay máy hai khâu Hình 3.12: Hình chiếu mặt sau mô hình thiết kế cánh tay máy hai khâu Hình 3.13: Mô hình phần cứng cánh tay Robot hai bậc Hình 3.14: Card giao tiếp USB NI 6009 hãng National Instruments Hình 3.15: Sơ đồ chân card giao tiếp USB NI 6009 Hình 3.16: Encoder E40H series hãng Autonics – Hàn Quốc Hình 3.17: Sơ đồ chân đấu nối encoder Hình 3.18: Động DC loại DME-38S6HPB hãng Japan Servo Hình 3.19: Mạch giao tiếp vi điều khiển PIC 18F443- LCD encoder Hình 3.20: Mạch cầu H điều khiển động DC Hình 4.1: Hệ thống điều khiển thích nghi trực tiếp Hình 4.2: Sơ đồ hệ thống điều khiển thích nghi trực tiếp Hình 4.3: Cấu trúc mạng Neuron Mờ Hình 4.4: Hàm liên thuộc dạng Gauss với sigma = 0.1062 Hình 5.1 Sơ đồ mô simulink Hình 5.2: Kết góc đặt radian góc mô θ1 Hình 5.3: Kết góc đặt radian góc mô θ2 Hình 5.4: Kết góc đặt radian góc mô θ1 Hình 5.5: Kết góc đặt radian góc mô θ2 Hình 5.6 Sơ đồ mô simulink với tín hiệu góc dạng bước Hình 5.7: Kết góc đặt dạng bước radian góc mô θ1 Hình 5.8: Kết góc đặt dạng bước radian góc mô θ2 Hình 5.9: Kết góc đặt dạng bước radian góc mô θ1 Hình 5.10: Kết góc đặt dạng bước radian góc mô θ2 Hình 5.11 Sơ đồ mô simulink với tín hiệu góc dạng sóng vuông Hình 5.12: Kết góc đặt dạng sóng vuông biên độ radian, tần số 0.1 Hz góc mô θ1 Hình 5.13: Kết góc đặt dạng sóng vuông biên độ radian, tần số 0.1 Hz góc mô θ2 Hình 5.14: Kết góc đặt dạng sóng vuông biên độ radian, tần số 0.1 Hz góc mô θ1 Hình 5.15: Kết góc đặt dạng sóng vuông biên độ radian, tần số 0.1 Hz góc mô θ2 Hình 5.16 Sơ đồ mô simulink với tín hiệu góc dạng sóng sin Hình 5.17: Kết góc đặt dạng sóng sin biên độ radian, tần số 0.1 Hz góc mô θ1 Hình 5.18: Kết góc đặt dạng sóng sin biên độ radian, tần số 0.1 Hz góc mô θ2 Hình 5.19: Kết góc đặt dạng sóng sin biên độ radian, tần số 0.1 Hz góc mô θ1 Hình 5.20: Kết góc đặt dạng sóng sin biên độ radian, tần số 0.1 Hz góc mô θ2 Hình 5.21 Sơ đồ mô simulink với tín hiệu góc có quỹ đạo đầu mút đường thẳng (d_path_line.m) Hình 5.22: Kết góc đặt có quỹ đạo đầu mút đường thẳng (d_path_line.m) góc mô θ1 robot thi công khó khăn vấn đề tìm kiếm vật tư để gia công khí, chất lượng điều khiển hạn chế thành phần sai số khí gây nên 5.3.2 Hướng phát triển đề tài Nghiên cứu thực nghiệm thêm để tím thông số tốt cho điều khiển Đưa sơ đồ tổng quát điều khiển thích nghi hệ phi tuyến MIMO có bậc tương đối tổng quát Cấu trúc mạng nơron nhân tạo ảnh hưởng lớn đến chất lượng nhận dạng điều khiển, cấu trúc mạng đơn giản không đủ linh hoạt để nhận dạng đối tượng hay xấp xỉ hàm Ngược lại, cấu trúc mạng phức tạp có nơron dư thừa làm tăng khối lượng tính toán mạng, điều điều khiển thực làm tăng nhớ tốc độ tính toán chậm Do tùy theo đối tượng điều khiển trường hợp cụ thể cần phải có cấu trúc mạng thích hợp đối tượng thay đổi thông số hay thay đổi điều kiện làm việc cấu trúc mạng phải thay đổi nên toán học cấu trúc mạng hướng nghiên cần nghiên cứu phát triển Kết hợp GA với mạng nơ-ron để tìm trọng số tối ưu cho mạng nơ-ron GA có đặc tính tìm tối ưu hóa hàm tốt Trong luận văn chưa áp dụng được, hướng phát triển đề tài cho luận văn sau Nhúng giải thuật vào điều khiển độc lập mã nguồn sản xuất dạng thương mại để giải toán điều khiển cánh tay máy công nghiệp PHỤ LỤC *************************************************************** Phụ lục A: Chú thích khối sơ đồ Simulink 1) Khối Neural Fuzzy Controller : thực điều khiển nơ ron mờ thích nghi trực công thức 4.6, gồm khối sau: 1.1) Khối sai số bám : thực công thức es (t ) e0 (t ) k1e0 (t ) Với k1 = 110 1.2) Khối chuẩn hóa tín hiệu vào : thực tỉ lệ lại tín hiệu vào 1.3)Khối điều khiển chế độ trƣợt : thực công thức 4.16 với u 0.001 , b , b 2.5 1.4) Khối nhận dạng nơ ron mờ : thực công thức uˆ ( x) uT u ( x) 1.5) Khối ƣớc lƣợng online 2) Khối robot SCARA Robot SCARA thực công thức 4.14 thực phương trình động lực học 3) Khối command1 khối tạo quỹ đạo đầu mút mong muốn theo đường thẳng (d_path_line.m) đường tròn (d_path_circle_2) quy góc đặt , gồm khối sau: 3.1 Khối Repeating Sequence1 khối Repeating Sequence lấy tọa độ x, y tương ứng quỹ đạo mong muốn đường tròn đường thẳng 3.2 Khối Subsystem giải phương trình động học ngược chuyển đổi từ tọa độ x, y sang góc 4) Khối quy dao dat khối quy dao mo phong đầu mút mong muốn quỹ đạo mô vẽ quỹ đạo 5) Khối theta2xy_s_fun SCARAchuyển đổi từ góc giải phương trình động học thuận robot sang tọa độ x, y Phụ lục B: Code chương trình mô thực matlab Thông số vật lý động cơ: ke=0.047; KT=0.047; R=3.5; L=1.3; gr1=90; gr2=220; D=0.030; L1=0.3; L2=0.185; g=9.81; m1=0.8; m2=2.3; k1=0.5; k2=0.5; m=3.1; % % % % (V/rad/s) (Nm/A) (ohm) (mH) % (m) % (m/s^2) Thông số cánh tay robot SCARA điều khiển m=10; I1=1.8; I2=0.041; I3=0.134; L1=0.3; L2=0.185; ke=0.5; V1=5.0; V2=3.0; Td=9.1; Ke=9.5; Q(1,1)=9; Q(2,2)=9; Q(3,3)=9; Q(4,4)=9; p=.60; % % % % % (Kg) (Kg.m*m) (Kg.m*m) (Kg.m*m) (m) % (m) Khoi luong tai danh dinh Moment quan tinh canh tay Moment quan tinh canh tay Moment quan tinh cua tai Chieu dai canh tay Chieu dai canh tay % He so truyen dong cua khop % (Kg.m*m/s) He so ma sat cua khop noi % (Kg.m*m/s) He so ma sat cua khop noi kq=9.5; deltaU=09.01; Db=9.2; bb=9.2; k1=7; Thông số mạng nơ-ron sigma=0.5062;% phan tan tap mo ngo vao muy1=-2.5; muy2=-1.8; muy3=-2; muy4=-1.5; muy5=1; muy6=1.5; muy7=1.1; muy8=1.8; muy9=2.5; Hàm S-Function chuyển đổi từ góc θ1, θ2 sang tọa độ x, y function theta2xy_s_fun(block) setup(block); function setup(block) block.NumDialogPrms = 2; block.DialogPrmsTunable = {'Tunable','Tunable'}; block.NumInputPorts = 2; block.NumOutputPorts = 2; % Setup port properties to be inherited or dynamic block.SetPreCompInpPortInfoToDynamic; block.SetPreCompOutPortInfoToDynamic; % Override input port properties % block.InputPort(1).Dimensions = 1; block.InputPort(1).DatatypeID = 0; % double block.InputPort(1).Complexity = 'Real'; block.InputPort(1).DirectFeedthrough = true; block.InputPort(1).SamplingMode = 'Sample'; % block.InputPort(2).Dimensions = 1; block.InputPort(2).DatatypeID = 0; % double block.InputPort(2).Complexity = 'Real'; block.InputPort(2).DirectFeedthrough = true; block.InputPort(2).SamplingMode = 'Sample'; %%%%%%%%%%%%%% block.OutputPort(1).Complexity block.OutputPort(1).DataTypeId block.OutputPort(1).SamplingMode block.OutputPort(1).Dimensions = = = = 'Real'; 0; 'Sample'; 1; block.OutputPort(2).Complexity = 'Real'; block.OutputPort(2).DataTypeId = 0; block.OutputPort(2).SamplingMode = 'Sample'; block.OutputPort(2).Dimensions = 1; %%%%%%%%%%%%%% % Register parameters block.SampleTimes = [-1 0]; %%%%%% block.SimStateCompliance = 'DefaultSimState'; block.RegBlockMethod('PostPropagationSetup', @DoPostPropSetup); block.RegBlockMethod('InitializeConditions', @InitializeConditions); block.RegBlockMethod('Start', @Start); block.RegBlockMethod('Outputs', @Outputs); % Required block.RegBlockMethod('Update', @Update); block.RegBlockMethod('Derivatives', @Derivatives); block.RegBlockMethod('Terminate', @Terminate); % Required % %%%%%%%%%% %end setup %% function DoPostPropSetup(block) block.NumDworks = 2; block.Dwork(1).Name block.Dwork(1).Dimensions block.Dwork(1).DatatypeID block.Dwork(1).Complexity block.Dwork(1).UsedAsDiscState = = = = = 'x1'; 1; 0; % double 'Real'; % real true; block.Dwork(2).Name = 'x2'; block.Dwork(2).Dimensions = 1; block.Dwork(2).DatatypeID = 0; % double block.Dwork(2).Complexity = 'Real'; % real block.Dwork(2).UsedAsDiscState = true; %% Register all tunable parameters as runtime parameters block.AutoRegRuntimePrms; function ProcessPrms(block) block.AutoUpdateRuntimePrms; %endfunction function InitializeConditions(block) %end InitializeConditions function Start(block) block.Dwork(1).Data = 0; block.Dwork(2).Data = 0; %endfunction function Outputs(block) theta11 = block.InputPort(1).Data; theta22 = block.InputPort(2).Data; l1 = block.DialogPrm(1).Data; l2 = block.DialogPrm(2).Data; theta1 = theta11 * pi / 180; theta2 = theta22 * pi / 180; % position x = l1 * cos(theta1) + l2 * cos(theta1 + theta2); y = l1 * sin(theta1) + l2 * sin(theta1 + theta2); block.OutputPort(1).Data = x; block.OutputPort(2).Data = y; %end Outputs %% %% Update: function Update(block) block.Dwork(1).Data = block.InputPort(1).Data; block.Dwork(2).Data = block.InputPort(2).Data; %end Update function Derivatives(block) %end Derivatives function Terminate(block) %end Terminate Hàm S-Function chuyển đổi từ tọa độ x, y sang góc θ1, θ2 function xy2theta_s_fun(block) setup(block); %endfunction %% function setup(block) block.NumDialogPrms = 2; block.DialogPrmsTunable = {'Tunable','Tunable'}; % Register number of ports block.NumInputPorts = 2; block.NumOutputPorts = 2; % Setup port properties to be inherited or dynamic block.SetPreCompInpPortInfoToDynamic; block.SetPreCompOutPortInfoToDynamic; % Override input port properties % block.InputPort(1).Dimensions = 1; block.InputPort(1).DatatypeID = 0; % double block.InputPort(1).Complexity = 'Real'; block.InputPort(1).DirectFeedthrough = true; % block.InputPort(1).SamplingMode = 'frame';% , 'inherited''Sample' block.InputPort(1).SamplingMode = 'Sample';% , 'inherited''frame' % block.InputPort(2).Dimensions = 1; block.InputPort(2).DatatypeID = 0; % double block.InputPort(2).Complexity = 'Real'; block.InputPort(2).DirectFeedthrough = true; % block.InputPort(2).SamplingMode = 'frame';% , 'inherited''Sample' block.InputPort(2).SamplingMode = 'Sample';% , 'inherited''frame' %%%%%%%%%%%%%% block.OutputPort(1).Complexity block.OutputPort(1).DataTypeId = 'Real'; = 0; % block.OutputPort(1).SamplingMode = 'frame';% , 'inherited''Sample' block.OutputPort(1).SamplingMode = 'Sample';% , 'inherited' 'frame' block.OutputPort(1).Dimensions = 1; block.OutputPort(2).Complexity = 'Real'; block.OutputPort(2).DataTypeId = 0; % block.OutputPort(2).SamplingMode = 'frame';% , 'inherited''Sample' block.OutputPort(2).SamplingMode = 'Sample';% , 'inherited' 'frame' block.OutputPort(2).Dimensions = 1; %%%%%%%%%%%%%% % Register parameters block.SampleTimes = [-1 0]; %%%%%% block.SimStateCompliance = 'DefaultSimState'; %% block.RegBlockMethod('PostPropagationSetup', @DoPostPropSetup); block.RegBlockMethod('InitializeConditions', @InitializeConditions); block.RegBlockMethod('Start', @Start); block.RegBlockMethod('Outputs', @Outputs); % Required block.RegBlockMethod('Update', @Update); block.RegBlockMethod('Derivatives', @Derivatives); block.RegBlockMethod('Terminate', @Terminate); % Required % %%%%%%%%%% %end setup %% %% function DoPostPropSetup(block) block.NumDworks = 2; block.Dwork(1).Name block.Dwork(1).Dimensions block.Dwork(1).DatatypeID block.Dwork(1).Complexity block.Dwork(1).UsedAsDiscState = = = = = 'x1'; 1; 0; % double 'Real'; % real true; block.Dwork(2).Name = 'x2'; block.Dwork(2).Dimensions = 1; block.Dwork(2).DatatypeID = 0; % double block.Dwork(2).Complexity = 'Real'; % real block.Dwork(2).UsedAsDiscState = true; %% Register all tunable parameters as runtime parameters block.AutoRegRuntimePrms; function ProcessPrms(block) block.AutoUpdateRuntimePrms; %endfunction function InitializeConditions(block) %end InitializeConditions %% function Start(block) block.Dwork(1).Data = 0; block.Dwork(2).Data = 0; %endfunction %% %% function Outputs(block) x = block.InputPort(1).Data; y = block.InputPort(2).Data; l1 = block.DialogPrm(1).Data; l2 = block.DialogPrm(2).Data; tmp = x.^2 + y.^2 - l2^2; tmp1 = tmp + l1^2; tmp2 = tmp - l1^2; % theta theta1 = atan2(y, x) - atan2(sqrt(abs(4 * l1^2 * (x.^2 + y.^2) tmp1.^2)), tmp1); theta2 = atan2(sqrt(abs(4 * l1^2 * l2^2 - tmp2.^2)), tmp2); % rad to deg conversion theta1 = theta1 * 180 / pi; theta2 = theta2 * 180 / pi; block.OutputPort(1).Data = theta1; block.OutputPort(2).Data = theta2; %end Outputs %% %% Update: %% function Update(block) block.Dwork(1).Data = block.InputPort(1).Data; block.Dwork(2).Data = block.InputPort(2).Data; %end Update %% %% function Derivatives(block) %end Derivatives %% function Terminate(block) %end Terminate Hàm tạo tập mẫu đường thẳng x=zeros(1,40); y=0:1/40:1; clear Xc clear Yc clear T n = size(x); n = max(n); for i = 0:n-1, Xc(2*i+1) = x(i+1); Xc(2*i+2)= x(i+1); Yc(2*i+1) = y(i+1); Yc(2*i+2)= y(i+1); T(2*i+1) = 2*i+1*1.0; T(2*i+2) = 2*i+2*1.0; end; T = T; ka = 5; Xc_TR=Xc; Yc_TR=Yc; figure(1); plot(Xc,Yc); Hàm tạo tập mẫu đường tròn clear Xc clear Yc clear T %% lay mau f = 02; = 1/f T = 0:.05:tp; Usin = sin(2*pi*f*T); Ucos = cos(2*pi*f*T); X = T/5; Y = T*0; T=[T ]; Xc = [Usin ]/5; Yc = [Ucos ]/5; figure(1); plot(Xc,Yc); ka = T = T*.5; size_Xc=size(Xc) size_Yc=size(Yc) size_T=size(T) Phụ lục C: Thông số kỹ thuật cánh tay Thông số tay máy chính: (khớp 1) Thông số tay máy phụ: (khớp 2) Thân tay đở tay máy: Phụ lục D: Sơ đồ nối dây card USB 6009 NI 1.1 AO1 0V DIR+ DIRH1 PWMPWM+ 0V DIR+ DIRH2 PWMPWM+ AO0 USB Encoder1 24V 0V AI2 RC1 PIC 18F4550 RC2 AI1 Card USB NI 6009 Digital 1.2 Analog Motor DC1 0.2 0.1 Motor DC1 Encoder1 24V 0V *************************************************************** TÀI LIỆU THAM KHẢO Tiếng Việt [1] Bùi Công Cường, Nguyễn Doãn Phước, Hệ mờ - Mạng nơron ứng dụng, Nhà xuất Khoa học Kỹ thuật, 2006 [2] Nguyễn Thị Phương Hà, Lý thuyết điều khiển đại, Nhà xuất Đại học Quốc Gia TP.HCM, 2007 [3] Huỳnh Thái Hoàng, Lý thuyết điều khiển thông minh, Nhà xuất Đại học Quốc Gia TP.HCM, 2006 [4] Nguyễn Thiện Phúc, Robot công nghiệp, Nhà xuất Khoa học Kỹ thuật, 2006 [5] Nguyễn Doãn Phước, Lý thuyết điều khiển nâng cao, Nhà xuất Khoa học Kỹ thuật, 2005 [6] Nguyễn Thiện Thành, Bài giảng "Mạng nơ-ron nhận dạng , dự báo điều khiển", Trường Đại học Bách Khoa TP.HCM, 2006 Tiếng Anh [7] Hugang Han, Adaptive fuzzy controller for a class of nonlinear systems Vol No 4, December (2005) [8] Prabu, Surendra, Rajendra, “Advanced Dynamic Path Control of the Three Links SCARA using Adaptive Neuro Fuzzy Inference System”, Wipro Technologies, NJ, USA and Indian Institute of Technology, Roorkee, India [9] Rong – Jong Wai , “Tracking control based on neural network Strategy for robot manipulator”, ComputerScienceWeb.com, 2001 [10] Wen Yu, Alenxander S Poznyak and Edgar N.Sanchez, “Neural Adaptive Control of Two-Link Manipulator with Sliding Mode Compensation”, IEEE, 1999 [11] Wei – Yen Wang, Yih – Guang Leu, Tsu – Tina Lee Output – feedback controlof nonlinear systems using direct adaptive fuzzy – neural controller, Fuzzy Setand Systems 341-358 140 (2002) [12] http://en.wikipedia.org/wiki/SCARA [13] http://en.wikipedia.org/wiki/Inverse_kinematics ... 2.1 Điều khiển mờ 2.1.1 Khái niệm điều khiển mờ trang 22 2.1.2 Điều khiển mờ trang 23 2.1.3 Phương pháp thiết kế điều khiển mờ trang 25 2.1.4 Một số điều khiển mờ thông dụng trang 27 2.2 Mạng nơ-ron. .. gọi điều khiển mờ (FLC – Fuzzy Logic Controller) Cơ sở toán học điều khiển mờ lý thuyết tập mờ logic mờ 2.1.2 Điều khiển mờ Về nguyên tắc, hệ thống điều khiển mờ khác so với hệ thống điều khiển. .. điều khiển mờ thông dụng Ngoài điều khiển mờ trực tiếp, người ta đem ưu điểm lý thuyết điều khiển mờ kết hợp ưu điểm điều khiển PID kinh điển điều khiển PID mờ Không PID kinh điển, điều khiển