Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 11 - ĐH Công nghiệp TP.HCM
lượt xem 7
download
Bài giảng "Tối ưu hóa trong thiết kế cơ khí - Chương 11: Ứng dụng Matlab giải các bài toán tối ưu hóa" cung cấp cho người học các kiến thức: Thống nhất phiên bản Matlab, giới thiệu về Optimization Toolbox, cực tiểu hóa hàm một biến số,... Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 11 - ĐH Công nghiệp TP.HCM
- Trường Đại học Công nghiệp thành phố Hồ Chí Minh Khoa Công nghệ Cơ khí CHƯƠNG 11: ỨNG DỤNG MATLAB GIẢI CÁC BÀI TOÁN TỐI ƯU HÓA Thời lượng: 3 tiết
- 2 Thống nhất phiên bản MATLAB Các biến tính toán Chọn thư xong mục làm việc Trường lịch sử các câu lệnh đã dùng Trường câu lệnh
- 3 Làm quen với MATLAB Dấu >> Ký tự nhắc mặc định trong MATLAB, đầu câu lệnh >> Dấu chấm phẩy ở cuối dòng sẽ tránh việc in kết quả ra trường >> a=2; Dấu ; câu lệnh (khi ta không cần in kết quả ra cho cửa sổ ngắn gọn) >> a=… Dấu ba chấm ở cuối dòng cho phép tiếp tục code ở dòng tiếp Dấu … 2 theo help Hiển thị các thông tin chi tiết về câu lệnh mà người dùng cần >>help linprog tên_câu_lệnh sử dụng >> a=2 Chữ cái viết thường và viết hoa được phân biệt khác nhau trong MATLAB >>A=2 >>A+a MATLAB coi tất cả các biến đều ở dạng mảng (arrays) Trong MATLAB tên biến được bắt đầu từ chữ cái và có chiều >>A_a_bc_9=12 Tên biến dài tối đa 31 ký tự bao gồm chữ cái (in hoa và viết thường là khác nhau), số và dấu gạch dưới + >>2+3*6^2/4-7 Các phép - toán thông * dụng / ^ Tránh trùng >>pi với các tên pi biến tích hợp sin của hệ thống, cos như các hằng v.v.. số, tên hàm
- 4 Ma trận trong MATLAB Đối tượng Cách thực hiện Ví dụ Véctơ hàng Ngoặc vuông, Dấu cách A=[1 2 3 4] Cách 1: Ngoặc vuông và xuống dòng B=[5 2 Véctơ cột ] Cách 2: Ngoặc vuông và dấu chấm phẩy B=[5;2;3] Cách 3: Đảo véc tơ hàng thành cột bằng dấu ‘ B=[5 2 3]' Cách 1: áp dụng véc tơ hàng và cột: dấu cách A=[1 2 3 và xuống dòng 456 Ma trận [mxn] 7 8 9] Cách 2: Dấu cách và dấu chấm phẩy A=[1 2 3;4 5 6; 7 8 9] Ma trận 1 đơn vị ở - eye(m,n) – ma trận mxn eye(4) đường chéo - eye(n) – ma trận vuông kích thước n eye(3,4) Ma trận toàn 1 ones(m,n) hoặc ones(n) ones(3) Ma trận toàn 0 zeros(m,b) hoặc zeros(n) zeros(4) Tạo ra 1 dãy cấp số cộng M:icr:N 100:-7:50 M:N – khi icr=1 theo mặc định 50:100
- 5 Ma trận trong MATLAB (tiếp) Đối tượng Cách thực hiện Ví dụ Phần tử trong ma trận Dấu ngoặc tròn: A(2,3) - A(i,j) chọn phần tử hàng i, cột j của ma A(2:3,1:3) trận A - A(m1:m2,n1:n2) Chọn các phần tử từ hàng m1 đến hàng m2, cột n1 đến cột n2
- 6 Kịch bản (Scripts) Là một dạng M-file đơn giản nhất, không có biến vào và biến ra. Nó chỉ gồm một chuỗi các trình tự câu lệnh.
- 7 Hàm số (Function) function [O_1,O_2,…,O_m] = function_name (I_1,I_2,…,I_n) %----------------------------------------------------------------------- % Ở dưới ghi function body end
- 8 function [ p ] = func1( x ) %func1 of this function goes here %Detailed explanation goes here p=x^3-2*x+cos(x); end
- 9 function [x1,x2] = PTB2(a,b,c) % Ham PTB2 dung de giai phuong trinh bac 2 co dang a*x^2+b*x+c=0 % Tham bien dau vao la 3 he so a, b, c trong do a !=0 Delta = b^2-4*a*c; x1 = (-b+sqrt(Delta))/(2*a); x2 = (-b-sqrt(Delta))/(2*a); [x1 x2] end [x1, x2] = feval('PTB2',1,2,-5)
- 10 Giới thiệu về Optimization Toolbox STT Loại bài toán Hàm sử dụng Cực tiểu hóa hàm 1 biến số fminbnd 1 (Scalar Minimization) Cực tiểu hóa hàm nhiều biến số không có ràng buộc fminunc 2 (Unconstrained Minimization) fminsearch Quy hoạch tuyến tính linprog 3 (Linear Programming) Quy hoạch bậc hai quadprog 4 (Quadratic Programming) Cực tiểu hóa hàm phi tuyến với các ràng buộc 5 tuyến tính và phi tuyến fmincon (Constrained Minimization) Cực tiểu hóa nửa vô hạn 6 fseminf (Semi-Infinite Minimization)
- 11 Các thuật toán của các công cụ
- 12 Các thuật toán của các công cụ
- 13 CỰC TIỂU HÓA HÀM MỘT BIẾN SỐ f x min; a x b [x,fval,exitflag,output] = fminbnd(@Objfun,a,b,options) x – xuất ra giá trị x làm cho hàm mục tiêu đạt cực tiểu fval – xuất ra giá trị hàm mục tiêu tại điểm cực tiểu x exitflag – xuất ra giá trị để xác định điều kiện dừng tính toán, cụ thể là: • exitflag=1: có nghĩa là hàm đã hội tụ tại điểm lời giải x nếu Stopping Criteria = 'TolX‘ • exitflag=0: có nghĩa là số lượng tính hàm mục tiêu hoặc số lượng vòng lặp đã đạt ngưỡng cho phép nếu Stopping Criteria = 'MaxIter' hoặc 'MaxFunEvals' • exitflag=-1: có nghĩa là thuật toán bị dừng vì hàm đầu ra • exitflag=-2: có nghĩa là khoảng giá trị bị sai (a>b) output – xuất ra các thông tin về số vòng lặp tính toán, số lần tính hàm số, các thuật toán tại các bước tính và thông báo cuối cùng Objfun – tên của M-file xác định hàm mục tiêu a,b – giá trị 2 biên của biến x options – các thuộc tính cần thiết cho việc giải bài toán bằng hàm fminbnd, được xác định trước dòng cú pháp
- 14 CỰC TIỂU HÓA HÀM MỘT BIẾN SỐ 0.75 1 Tìm cực tiểu hàm số f x 0.65 0.65 x arctan ; x 0;0.5 1 x 2 x 1) Bước 1: Tạo 1 thư mục cho bài toán, ví dụ fminbnd1 Vào trong thư mục
- 2) Bước 2: Tạo M-file hàm mục tiêu, ví dụ Objfun.m 15 Sửa lại code của hàm function f = Objfun( x ) %OBJFUN Summary of this function goes here % Detailed explanation goes here f= 0.65 - (0.75/(1+x^2))- 0.65*x*atan(1/x); end
- 3) Bước 3: Tạo M-file Script lời giải, ví dụ Solve.m 16 clear;clc;format long;warning('off'); % Nhap mien xac dinh cua bien x: a
- 17 Current Function Value: -0.31002 -0.23 -0.24 -0.25 -0.26 Function value -0.27 -0.28 -0.29 -0.3 -0.31 -0.32 0 1 2 3 4 5 6 7 8 9 Iteration
- 18 CỰC TIỂU HÓA HÀM NHIỀU BIẾN SỐ KHÔNG RÀNG BUỘC f x min; x x1 , x2 , , xn [x,fval,exitflag,output, grad,hessian] = fminunc(@Objfun,x0,options) x – xuất ra véctơ tham biến x làm cho hàm mục tiêu đạt cực tiểu fval – xuất ra giá trị hàm mục tiêu tại điểm cực tiểu x exitflag – xuất ra giá trị để xác định điều kiện dừng tính toán, cụ thể là: • exitflag>0: có nghĩa là hàm đã hội tụ tại điểm lời giải x • exitflag=0: có nghĩa là số lượng tính hàm mục tiêu hoặc số lượng vòng lặp đã đạt ngưỡng cho phép nếu Stopping Criteria = 'MaxIter' hoặc 'MaxFunEvals' • exitflag
- 19 50 20 Tìm cực tiểu hàm số: f x f x1 , x2 x1 x2 min x1 x2 1) Bước 1: Tạo 1 thư mục cho bài toán, ví dụ MultiUncon1 2) Bước 2: Tạo M-file hàm mục tiêu, ví dụ Objfun.m function f = Objfun( x ) %OBJFUN Summary of this function goes here % Detailed explanation goes here f = x(1)*x(2) + 50/x(1) + 20/x(2); end 3) Bước 3: Tạo M-file Script lời giải, ví dụ Solvefminunc.m
- clear;clc;format long;warning('off'); 20 % Nhap vecto tham bien khoi dau: x0 = [1,1]; % Chon Algorithm (Chon mot trong so duoi day) %Alg='active-set'; %Alg='trust-region-reflective'; %Alg='interior-point'; %Alg='levenberg-marquardt'; Alg='trust-region-dogleg'; %Alg='lm-line-search'; % Chon Stopping Criteria GTN=1e-4;GTL=1e4; % Neu Stopping Criteria la sai so cua tham bien %StCr='TolX'; % Neu Stopping Criteria la sai so cua ham so StCr='TolFun'; % Neu Stopping Criteria la so luong Iterations %StCr='MaxIter'; % Neu Stopping Criteria la so luong tinh cac ham so %StCr='MaxFunEvals'; if strcmp(StCr,'MaxIter')==1 || strcmp(StCr,'MaxFunEvals')==1 GT=GTL; elseif strcmp(StCr,'TolX')==1 || strcmp(StCr,'TolFun')==1 GT=GTN; end options = optimset('Algorithm',Alg,'Display','iter',StCr,GT,'PlotFcns',@optimplotfval); [x,fval,exitflag,output, grad,hessian] = fminunc(@Objfun,x0,options)
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Tối ưu: Chương 2 - ThS. Trần Thị Thùy Nương
27 p | 251 | 59
-
Bài giảng Toán kinh tế - Chương 3: Toán tối ưu hóa sản xuất và tiêu dùng
48 p | 687 | 45
-
Bài giảng Lý thuyết tối ưu
136 p | 290 | 40
-
Bài giảng Tin học ứng dụng trong hóa học: Chương 6 - ĐH Công nghiệp TP.HCM
54 p | 155 | 27
-
Bài giảng XLSL và QHTN trong hóa - GV.ThS. Nguyễn Thị Trâm Châu
31 p | 110 | 17
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 1 - ĐH Công nghiệp TP.HCM
52 p | 166 | 13
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 9 - ĐH Công nghiệp TP.HCM
60 p | 54 | 9
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 8 - ĐH Công nghiệp TP.HCM
56 p | 48 | 9
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 4 - ĐH Công nghiệp TP.HCM
26 p | 62 | 9
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 3 - ĐH Công nghiệp TP.HCM
17 p | 68 | 9
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 5 - ĐH Công nghiệp TP.HCM
36 p | 50 | 8
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 6 - ĐH Công nghiệp TP.HCM
27 p | 40 | 8
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 7 - ĐH Công nghiệp TP.HCM
37 p | 62 | 8
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 2 - ĐH Công nghiệp TP.HCM
48 p | 71 | 8
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Hướng dẫn làm bài tập về trọng tâm vật rắn phức hợp (không dùng tích phân) - ĐH Công nghiệp TP.HCM
41 p | 58 | 7
-
Bài giảng Tối ưu hóa: Chương 2 - Trần Gia Tùng
7 p | 133 | 6
-
Bài giảng Tối ưu hóa trong thiết kế cơ khí: Chương 10 - ĐH Công nghiệp TP.HCM
57 p | 43 | 6
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn