Đối với bài toán (* * *), chúng ta sử dụng “ phương pháp dùng chỉ tiêu tổng hợp” và xây xác định chỉ tiêu tổng hợp theo phương pháp phân chập tuyến tính vì bài toán (* * *) mang tính đặc thù: tùy từng trường hợp cụ thể mà vai trò của mỗi chỉ tiêu đối với chỉ tiêu
tổng hợp sẽ thay đổi, cũng có thể cả hai chỉ tiêu được xem trọng như nhau, điều đó hoàn toàn được thể hiện qua các giá trị αi.Của phương pháp này.
Như vậy bài toán (* * *) trở thành (* * * *) được phát biểu như sau : Tìm ∆ϕi1,∆ϕi2 sao cho 1 2 1 [ *( ) ^ 2] n i i i Min Ki ϕ ϕ = ∆ − ∆ ∑ (4.13) Thỏa mãn ràng buộc (1,4) 1 2 (2,4) 1 2 (3,4) 1 2 ( , ) ( , ) ( , ) o n i i o o n i i o o n i i o T px T py T pz ϕ ϕ ϕ ϕ ϕ ϕ ∆ ∆ = ∆ ∆ = ∆ ∆ = (4.14) min 1 2 max 1 2 ( ) ( ) i i i i i i f q f q ϕ ϕ ϕ ϕ ∆ − ∆ ≥ ∆ − ∆ ≤ Ràng buộc phụ 1 2 0 0 i i ϕ ϕ ∆ ≥ ∆ ≥ (4.15) (i = 1…n)
4.6 Thuật toán tối ưu giải bài toán (* * * *).
Đây là bài toán tối ưu hóa một mục tiêu, bài toán phi tuyến. Để giải chúng ta có thể sử dụng những phương pháp quy hoạch phi tuyến. Có nhiều phương pháp giải khác nhau nhưng không có phương pháp nào là vạn năng cả : mỗi phương pháp đều có một phạm vi áp dụng nhất định. Phần lớn các phương pháp này đều xây dựng trên cơ sở giải đúng dần. Chọn một phương án ban đầu xo(x1 , x2 …, xn) ∈Dcủa hàm mục tiêu f(x), tính f(x0). Do xo được chọn ngẫu nhiên nên cần phải chuyển từ x0 sang x1 gần điểm cực trị x* hơn ( 1 phép lặp ) và cứ tiếp tục như thế cho tới khi nào đạt tới độ chính xác cần thiết.
Ở bài toán (****), hàm mục tiêu (4.13) và các ràng buộc (4.14) và (4.15) đều là các hàm phi tuyến , do đó sử dụng phương pháp hàm phạt để giải .
min f(x) = m (4.16) Với các ràng buộc D={X∈H g x| ( ) 0}> bằng bài toán tìm cực tiểu không ràng buộc Rn( hoặc có ràng buộc (H) nhưng H đơn giản hơn D và ở dạng tuyến tính ) của họ hàm phụ thuộc tham số :
( , ) ( ) (1/ )* ( )
M x β = f x + β Ψ x (4.17)
Hàm Ψ( )x được chọn sao cho lời giải bài toán
minx Rn M x( , ) min{ ( ) (1/ )* ( )}β x Rn f x β x m( )β
∈ = ∈ + Ψ = (4.18) Hội tụ tới lời giải bài toán ban đầu (4.13) khi β →0
Chúng ta nêu ra một số khái niệm và định lý ( không chứng minh ) để thấy cơ sở lý luận của phương pháp :
Định nghĩa : hàm liên tục (1/ )* ( )β Ψ x xác định ∀ ∈x H được gọi là lượng phạt nếu ( )x Ψ thỏa mãn: Ψ( ) 0,( ) 0,xx = ∀ ∈x Dx H D\ Ψ > ∀ ∈ (4.19) Thường chọn 1 ( ) [min{ ( ), 0}] ^ 2 m j i x g x = Ψ =∑ (4.20) Với cách chọn đó ,(4.19) thỏa mãn :
Phương pháp này được gọi là phương pháp hàm phạt bởi vì khi x không thỏa mãn các ràng buộc D thì nó bị phạt một lượng (1/ )* ( )β Ψ x .
Giả sử yβ∈H là lời giải bài toán.
min ( , )x H x β ( , )yβ β
∈ Ψ = Ψ
Trong đó:
Ψ( , )x β =β*M x( , )β =β* ( )f x + Ψ( )x
y là nghiệm của bài toán ban đầu (4.13) min ( )x D∈ f x = f y( )
lim ( , ) 00 yβ β β → Ψ = (4.21) Và lim ( ) 00 yβ β → Ψ = (4.22) Định lý 2 : nếu a) f(x) và g(x) liên tục trên H.
b) tồn tại các lời giải y và yβ ∀ →β 0 Tồn tại tập compact Y∈Hsao cho yβ ∈H thì
lim ( )β →0 f yβ = f y( ) min ( )= x D∈ f y
c) ngoài ra, nếu phần tử y là duy nhất thì ; lim( )0 yβ y
β → =
Định lý 3 : nếu các hàm g(x) ( i = 1: n) lõm và liên tục trên tập hợp lồi đóng H, còn f(x) lồi mạnh và liên tục trên H thì
lim( )0 yβ y
β → =
Như vậy, nếu chọn Ψ( )x thỏa mãn điều kiện (4.19), đồng thời nếu tồn tại nghiệm
y và yβ của bài toán ban đầu ( bài toán cần giải ) và bài toán chuyển đổi từ bài toán ban đầu thì khi thực hiện các bước lặp để đưa β →0, nghiệm của bài toán chuyển đổi sẽ tới nghiệm của bài toán cần giải ( yβ →y)
Tức là thay vì phải giải bài toán ban đầu ( bài toán (****)) với miền ràng buộc phi tuyến D, ta chuyển qua giải bài toán chuyển đổi với miền ràng buộc tuyến tính H, đã biết phương pháp giải.
GIẢI BÀI TOÁN CHUYỂN ĐỔI.
Vấn đề còn lại ở đây là giải bài toán chuyển đổi. Bài toán được phát biểu như sau :
Tìm
min ( ,x H x βh) ( )yβ m( )βh x Rn
Với ( ,( , h)) h( ) (1/* ( , h))* ( )h* ( ) ( ) h h x M x f x x M x f x x β β β β β β Ψ = = + Ψ = + Ψ 1 ( ) m [min{ ( ), 0}] ^ 2j i x g x = Ψ =∑ x= ∆ − ∆ϕi1 ϕi2
i = 1…n ( n : là số khâu của tay máy ) Và f(x) là hàm mục tiêu của bài toán (****)
1 2 1 ( ) [ *( ) ^ 2] n i i i f x Ki ϕ ϕ = =∑ ∆ − ∆
Đây là bài toán tìm cực tiểu không ràng buộc. Chúng ta sử dụng phương pháp GRADIENT cực tiểu không ràng buộc, là phương pháp thông dụng nhất đối với dạng toán này, nó tương đối đơn giản và áp dụng được cho những lớp hàm rất rộng.
Nội dung của phương pháp gradient cực tiểu không ràng buộc :
Để giải bài toán (4.23) ta dùng phương pháp lặp để xây dựng dãy { xk } hội tụ tới điểm tối ưu x*. Giả sử ta đang ở điểm xk thuộc lân cận của điểm x*, khi đó để cho hàm mục tiêu giảm ta phải chuyển động theo hướng P làm với f’(xk) một góc tù, tức là xác định: xk+1= +xk αP Trong đó '( ), 0 k o f x P α > 〈 〉 <
( tích vô hướng của hai vector f’(x) và P ) Thật vậy, khai triển Taylor hàm f(x) ta được :
f x( )= f x( )k + 〈α f x'( ),k P〉 +(α2/ 2)〈f x P P''( kc) , 〉 Trong đó : ( ) [0 1] kc k k x x θ x x θ = + − ∈ α : bước dịch chuyển
Nếu 〈f x'( ),k P〉 <0 thì với α nhỏ ta có f(x) < f(xk), nghĩa là nếu đi theo hướng góc tù của tiếp tuyến , các vòng lặp có xu hướng đưa điểm xk tiến tới điểm tối ưu.
Việc lựa chọn hướng dịch chuyển P và độ dài bước dịch chuyển α khác nhau cho ta phương pháp cực tiểu khác nhau. Phương pháp gradient ( hay còn gọi là phương pháp tụt nhanh nhất ) có dạng :
xk+1= +xk αkf x'( ),k αk >0,k=0,1,... (4.24) Tức là chọn Pk = -f’(xk) đây là phương pháp thông dụng nhất để tìm cực tiểu, nó đơn giản, độ hội tụ cao và phạm vi sử dụng tương đối rộng.
Thuật toán xác định α k tại mỗi bước lặp
1. Chọn giá trị tùy ý α ( và cố định, ví dụ α= 1 ) xác định điểm : x x= −k α f x'( )k
2. Tính
f x( )= f x( k−α f x'( ))k 3. kiểm tra bất đẳng thức
f x( )− f x( )k ≤εα〈f x'( ),k Pk〉 = −εα|| '( ) || ^2f xk (4.25)
4. nếu (4.25) thỏa mãn thì ta chọn α là giá trị phải tìm
k
α =α
Nếu (4.25) không thỏa mãn thì ta chia α ( bằng cách nhân với số λ <1) thực hiện lại các bước 1 tới 4 cho tới lúc (4.25) thỏa mãn. Lấy xk vừa tìm được làm điểm cơ sở, thực hiện lại các bước đã trình bày trên để tìm xk+1.
Sự hội tụ của phương pháp gradient
Ta nói rằng dãy {xk} hội tụ tới điểm x* với tốc độ tuyến tính hay với tốc độ cấp số nhân ( với công bội q ) nếu bắt đầu từ một chỉ số k nào đó ta có bất đẳng thức :
1
||xk+ −x* ||≤q x|| k−x* || 0 < q < 1
Cơ sở của sự lựa chọn α như trên và sự hội tụ của thuật toán gradient cho trong định lý như sau :
Định lý 4 : giả sử hàm f(x) bị chặn dưới , gradient của nó thỏa mãn điều kiện Lipsit
|| '( )f x − f y'( ) || || ||≤ R x y− || (4.26) Với mọi x, y ∈Rn,việc chọn giá trị α k được tiến hành theo phương pháp như trên. Khi đó với bất kỳ điểm xuất phát xo quá trình lặp (4.24) có tính chất :
|| '( ) ||f xk →0 khi k→ ∞
Định lý 5 : giả sử f’’(x) là đạo hàm bậc hai liên tục của f(x), đồng thời f’’(x) thỏa mãn điều kiện :
m y|| || ^2≤ 〈f x y y''( ) , 〉 ≤M y|| || ^2 (4.27) 0< ≤m M
Với mọi x, y ∈Rn, còn dãy {xk} xây dựng theo phương pháp (4.24), trong đó αk được chọn theo phương pháp đã mô tả . Khi đó, với mọi điểm xuất phát ban đầu xo ta đều có :
xk →x f x*, ( )k → f x( *)
Trong đó, x* là điểm cực tiểu duy nhất của f(x). Đồng thời chúng ta có đánh giá như sau về tốc độ hội tụ
( ) ( *) /2 [ ( ) ( *)] || *|| k k o k k f x f x q f x f x x x Cq − ≤ → − ≤ Với C< ∞ và 0< <q 1
Qua phân tích ở trên, chúng ta xây dựng được giải thuật để giải bài toán ngược động học tay máy - bài toán vị trí như sau :
4.7 Thuật toán giải bài toán động học ngược tay máy.
Phần này, dựa vào các bước phân tích trên, chúng ta xây dựng giải thuật để giải bài toán động học ngược tay máy – bài toán vị trí, theo phương pháp “ Tối ưu hóa nhiều mục tiêu, bài toán động học ngược tay máy – bài toán vị trí “
Trên cơ sở phân tích các thông số động học, các thông số về kết cấu cũng như kết quả bài toán thuận động học tay máy đối với tay máy đang xét, xây dựng bài toán mục tiêu (****).
Xác lập giới hạn không gian làm việc K của tay máy : θimin,θimax(i=1.. )n , trong đó n là số khâu động của tay máy.
@Bước 2 :
Chia K thành lưới gồm m miền con ( ký hiệu miền con thứ n là Rn). Đối với bài toán (****), giá trị của mo cũng như phương pháp chia lưới phụ thuộc vào đặc điểm của miền ràng buộc D cũng như độ chính xác yêu cầu của bài toán. Chẳng hạn , nếu D là tập lồi thì mo = 1.
Thực hiện các bước từ bước 3 tới bước 6 cho tất cả các ô lưới, ta nhận được m giá trị cực tiểu địa phương của hàm mục tiêu fmin(1)… fmin (mo). Tìm giá trị nhỏ nhất trong các fmin (i), đấy chính là cực tiểu tuyệt đối cần tìm của hàm mục tiêu : fmintuyệtđối
@ Bước 3
Chuyển bài toán quy hoạch phi tuyến ban đầu (****) min f(x) = m
Với các ràng buộc D = {X∈D g x| ( ) 0> }bằng bài toán tìm cực tiểu không ràng buộc của họ hàm phụ thuộc tham số :
M x( , )β = f x( ) (1/ )* ( )+ β Ψ x
Hàm Ψ( )x được chọn sao cho lời giải bài toán
minx Rn M x( , ) min{ ( ) (1/ )* ( )}β x Rn f x β x
∈ = ∈ + Ψ
Hội tụ tới lời giải bài toán ban đầu khi β →0. Thường chọn: 1 ( ) [min{ ( ), 0}] ^ 2 m j i x g x = Ψ =∑
Chọn giá trị ban đầu βovà xây dựng vector βk
@ Bước 4:
@ Bước 5:
Sử dụng phương pháp gradient cực tiểu không ràng buộc để giải bài toán chuyển đổi (4.23) Tìm min ( ,x H x βh) ( )yβ m( )βh x Rn ∈ Ψ = Ψ = ∀ ∈ Với ( , ) * ( , ) * ( ) ( ) ( , ) ( ) (1/ )* ( ) h h h h h h x M x f x x M x f x x β β β β β β Ψ = = + Ψ = + Ψ 1 ( ) [min{ ( ), 0}] ^ 2 m j i x g x = Ψ =∑ x= ∆ − ∆ϕi1 ϕi2
i = 1…n (n là số bậc tự do của tay máy ) f(x) : hàm mục tiêu của bài toán (****)
Cụ thể, để giải bài toán này (min ( ,x H∈ Ψ x βh)= Ψ( )yβ ) ứng với β β= kta phải thực hiện phép lặp ở (4.24)
- chọn điểm bất kỳ xk thuộc Rn làm điểm xuất phát.
- Sử dụng phương pháp Gradient, tìm nghiệm x = yβkcủa bài toán tìm cực trị minΨ( ,x βk)
- Dùng yβk làm điểm xuất phát , tìm nghiệm x = yβ +(k 1)ứng với β β= k+1v.v… 1 '( ), 0, 0,1,...
k k k k k
x+ = +x α f x α > k=
Kết quả : nhờ phép lặp này ta nhận được dãy {xk} hội tụ tới nghiệm tối ưu xk* của bài toán mục tiêu (****).
Để thực hiện phép lặp này, chúng ta phải xác định αktại mỗi bước lặp , theo giải
thuật sau :
Thuật toán xác định αktại mỗi bước lặp:
1. chọn giá trị tùy ý α ( và cố định , ví dụ α =1), xác định điểm '( )
k k
2. tính ( ) ( k '( ))k f x = f x −α f x 3. kiểm tra bất đẳng thức ( ) ( )k '( ),k k || '( ) || ^2k f x − f x ≤εα〈f x P〉 = −εα f x (4.28) trong đó 0< <ε 1 là một hằng số chọn tùy ý và cố định 4. nếu (4.28) thỏa mãn thì ta chọn αlà trị phải tìm αk =α
Từ đó tính được αk+1 Nếu 4.28 không thỏa mãn, thì ta chia α ( bằng cách nhân với 1
λ < ) cho tới lúc (4.28) thỏa mãn
@ Bước 6 : ứng với β β= k, thực hiện “ bước 5” chúng ta nhận được xk* cụ thể: - chọn điểm bất kỳ xk thuộc Rn làm điểm xuất phát.
- Sử dụng phương pháp gradient , tìm nghiệm xk =ββkcủa bài toán cực trị min
( ,x βk) Ψ
- Dùng yβk làm điểm xuất phát , tìm nghiệm x(k+1) = yβ(k+1) ứng với β β= k+1 - Nếu vector β có m phần tử ( k = 1…m) ta nhận được tập xk* cũng có m phần
tử :
Xk* = {X1*, X2*, …, Xk*,…, Xm*}
Các phần tử trong tập xk* hội tụ đến nghiệm của bài toán mục tiêu (****) ( xét trong ô lưới thứ i (i = 1…mo)) khi β →k 0.
* * 0
k k k
x →x khiβ →β =
4.8 Giới thiệu chương trình Matlab và chương trình mô phỏng EASY-ROB.4.8.1 Chương trình tính toán Matlab. 4.8.1 Chương trình tính toán Matlab.
Matlab là một môi trường tính toán đa dụng. Matlab là chữ viết tắt của “Matrix laboratory”-thư viện ma trận. Matlab nguyên thủy được thiết kế nhằm thuận tiện cho việc tính toán trên các ma trận. Đến nay, Matlab đã được bổ sung rất nhiều chức năng và trở
Các tính toán về số và đồ họa đều có thể tiến hành một cách rất thuận lợi và dễ dàng trong môi trường Matlab. Matlab là một ngôn ngữ thủ tục, nghĩa là một tổ hợp cấu trúc chương trình với hàng loạt các hàm toán học đã được xác định trước, chính vì thế mà chương trình lập bằng Matlab rất đơn giản.
Hình 4.1 Giao diện chương trình Matlab.
Matlab cũng hỗ trợ tốt cho việc vẽ đồ thị từ 2D cho đến 3D để phục vụ cho việc thiết kế các chương trình mô phỏng hay tính toán các bài toán vẽ đồ thị trong kỹ thuật.
Hình 4.2 Đồ thị trong Matlab
Matlab cũng là một ngôn ngữ lập trình, do đó cũng có những cấu trúc tương tự như những cấu trúc ở các chương trình khác như if-while-do….
Cũng như các ngôn ngữ cấp cao khác, Matlab hỗ trợ nhiều công cụ chức năng cho phép lập trình tạo giao diện sử dụng đẹp và nhanh chóng. Ví dụ các dạng nút ẩn, cửa sổ soạn thảo, các dạng menu,….như hình 4.3
Hình 4.3 Lập trình giao diện người dùng.
4.9 Giới thiệu chương trình mô phỏng robot EASY-ROB.
Chương trình mô phỏng EASY-ROB là một chương trình chuyên về mô phỏng hoạt
động của robot, có thể mô phỏng các bài toán robot hoạt động phức tạp, hoặc có thể mô phỏng cả một dây chuyền hoạt động của robot công nghiệp. Chương trình đưa ra các mô hình robot phổ biến, và người dùng cũng có thể thiết kế ra những mô hình robot của mình bằng các công cụ vẽ 3D cơ bản.
Hình 4.4 Giao diện chương trình Easy-rob Hình 4.5 Mô hình robot Scara
CHƯƠNG 5: KẾT QUẢ TÍNH TOÁN 5.1 Mô hình:
Ngày nay yêu cầu sản xuất những sản phẩm chất lượng cao với sản lượng tối đa và
giá thành thấp nhất có thể đang là động lực thúc đẩy các nhà sản xuất đưa robot hàn vào sàn máy. Mô hình robot hàn cố định, hàn được trong mặt phẳng nằm ngang là đối tượng nghiên cứu chính của đề tài. Hình 5.1 mô tả hình dáng robot hàn trong đề tài.
Hinh 5.1 Mô hình robot Scara đang hàn.
5.2. Giải bài toán động học robot Scara. 5.2.1 Bài toán động học thuận.
5.2.1.1 Giới thiệu.
Bài toán động học thuận nhằm mô tả vị trí và hướng của phần công tác dưới dạng hàm số của các biến khớp. Bài toán này được giải khi nhập vào các thông số là các góc quay hay tịnh tiến của tay máy.
Một trong những phương pháp giải bài toán động học thuận là dùng trực tiếp hình học giải tích. Phương pháp tính toán trực tiếp này chỉ áp dụng được cho các cơ cấu đơn
giản. Để có thể giải quyết các bài toán tổng quát cần có một giải thuật chung. Một trong những giải thuật như vậy xuất phát từ quy tắc Denavit-Hartenberg (mục 2.3.2). Đó là quy tắc thiết lập hệ thống tọa độ trên các cặp khâu – khớp trên tay máy. Dựa trên hệ tọa độ này có thể mô tả các cặp bằng hệ thống các tham số, biến khớp và áp dụng một dạng phương trình tổng quát chobài toán động học tay máy.
5.2.1.2 Giải bài toán động học thuận cho robot Scara.
Bây giờ chúng ta xét tay máy 4 bậc tự do của đề tài, gắn hệ trục tọa độ như hình 4.4 + Đặt các hệ trục tọa độ zi ( = 0,1,2,3,4) trùng với phương của trục khớp động