Ứng dụng Optimization Toolbox trong Matlab để giải bài toán

Một phần của tài liệu Nghiên cứu điều khiển tối ưu cho cánh tay robot bằng phương pháp quy hoạch phi tuyến (Trang 76 - 79)

3.5.2.1.Giới thiệu Optimization Toolbox trong Matlab

Trong khi đi tìm giải pháp cho các vấn đề kỹ thuật, đôi khi ta phải tiến hành tìm cực tiểu hay cực đại cho một hàm mục tiêu nhiều chiều. Việc tìm cực trị đó thường còn bị ràng buộc bị điều kiện phụ, mô tả dưới dạng phương trình hay bất phương trình. Có nghĩa là ngay từ đầu, tập các lời giải đã bị hạn chế. Quá trình tính toán trên được gọi là quá trình tìm tối ưu dưới các điều kiện phụ (constrained optimization). Một phương pháp rất phổ biến khi đi tìm nghiệm gần đúng trong các phương trình là phương pháp bình phương sai phân bé nhất (least squares). Phương pháp này còn hay được sử dụng để tìm đường cong xấp xỉ (curve fitting). Để giải bài toán tính toán tìm tối ưu, Optimization Toolbox cung cấp cho ta nhiều thuật toán khác nhau.

Mục đích của Optimization Toolbox không phải là phân tích hay tổng hợp (thiết kế) các thuật toán tìm tối ưu, mục đích của bộ công cụ này là: Làm sao sử dụng tiện lợi các thuật toán đã biết.

1 2 3 * * * 190 * * * 200 * * * 200 * 0.8 * 115 * 0.8 * 120 * 0.8 * 130 ; ; * * * 0 * * * 0 * * * 0 * * * 1 * * * 1 * * * 1                                        E E E

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Để sử dụng Optimization Toolbox, hàm mục tiêu và các điều kiện phụ phải được khai báo dưới dạng hàm function viết thành m-File hay inline object.

Tất cả các thuật toán của Optimization Toolbox sử dụng một biến có tên là

options (thuộc loại structure) để điều khiển các bước tính toán. Nếu khi hỏi ta nhận được hai ngoặc vuông rỗng [], có biến rỗng. Nếu khi gọi ta không khai báo tham số cụ thể, lúc bấy giờ các giá trị mặc định sẽ được chọn. Hai lệnh optimgetoptimset được sử dụng để thay thế biến options. Khi nhập lệnh:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Công cụ Optimization Toolbox cung cấp rất nhiều thuật toán giúp ta tìm cực tiểu của các hàm phi tuyến. Đó chính là các công cụ tối thiểu hóa (minimization) các hàm mục tiêu khi giải quyết bài toán tìm tối ưu.

Khi giải quyết các bài toán tối ưu thường ta không chỉ quan tâm tới điểm cực tiểu của hàm mục tiêu. Hơn thế nữa, khi đi tìm cực tiểu, biến độc lập x phải thỏa mãn một số điều kiện phụ. Các điều kiện đó có thể do người sử dụng đặt ra, hoặc do các hạn chế vật lý gây nên. Các điều kiện phụ thường được mô tả dưới dạng phương trình , hoặc bất phương trình , hoặc hỗn hợp cả hai. Thuật ngữ mô tả việc tìm tối ưu dưới điều kiện phụ là constrained nonlinear optimization.

Optimization Toolbox cung cấp cho ta lệnh fmincon, nhằm tìm cực tiểu của f(x) dưới nhiếu điều kiện phụ khác nhau. Các điều kiện được phân thành điều kiện phụ phi tuyến và điều kiện phụ tuyến tính. Thuật toán fmincon tìm:

) (

minf x

x

dưới các điều kiện :

ub x lb b x A b Ax x c x c eq eq       0 ) ( 0 ) (

Trong các công thức trên cceq là các hàm vector phi tuyến, A và Aeq là các ma trận hằng, bbeq là các vector hằng, còn lbub là các giới hạn dưới và dưới hạn trên của các vector kết quả x. Lệnh gọi thuật toán có dạng sau đây:

Các điều kiện phi tuyến phải được khai báo nhờ hàm nonlcon.

Trong nonlcon, điều kiện dưới dạng bất phương trình phải được viết trước, sau đó mới đến điều kiện dưới dạng phương trình.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Độ chính xác của kết quả (đi theo là khối lượng tính toán ) có thể được tăng lên bằng việc giảm ToxlX hay TolFun trong biến options. Ngoài ra, việc lựa chọn các giá trị xuất phát có ảnh hưởng quyết định tới khả năng hội tụ của thuật toán tìm tối ưu.

Một phần của tài liệu Nghiên cứu điều khiển tối ưu cho cánh tay robot bằng phương pháp quy hoạch phi tuyến (Trang 76 - 79)