Tài liệu được biên soạn phục vụ cho sinh viên trong quá trình học môn tối ưu hóa ứng dụng , các bài tập được biên soạn chi tiết và thực hiện trên phần mềm Maple. MAPLE của hãng Maplesoft (Canada) là một phần mềm KHKT, thích hợp với SV cácngành KHKT và kỹ sư. MAPLE dễ sử dụng, cho phép đối thoại trực tiếp với người sử dụngchỉ với một số ít câu lệnh đơn giản. Đặc biệt, MAPLE rất mạnh trong tính toán bằng chữ.Có thể cài đặt MAPLE từ CD, USB hoặc download từ http:www. maplesoft.com
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
BỘ MÔN CƠ HỌC ỨNG DỤNG PGS.TS Nguyễn Nhật Lệ -***** -
GIẢI BÀI TOÁN TỐI ƯU HÓA VÀ ĐIỀU KHIỂN TỐI ƯU
BẰNG PHẦN MỀM MAPLE
(Dùng cho sinh viên)
Hướng dẫn sử dụng MAPLE
Tối ưu hóa
Điều khiển tối ưu
OPT 15
Trang 2PHẦN I HƯỚNG DẪN SỬ DỤNG MAPLE -
Mở đầu
MAPLE của hãng Maplesoft (Canada) là một phần mềm KHKT, thích hợp với SV các ngành KHKT và kỹ sư MAPLE dễ sử dụng, cho phép đối thoại trực tiếp với người sử dụng chỉ với một số ít câu lệnh đơn giản Đặc biệt, MAPLE rất mạnh trong tính toán bằng chữ
Có thể cài đặt MAPLE từ CD, USB hoặc download từ:
Trước tiên, NSD click chuột vào biểu tượng [> trên thanh công cụ để tạo ra dấu > ở đầu dòng
Sau dấu >, NSD viết các câu lệnh từ bàn phím Sau khi viết xong lệnh, ấn Enter, MAPLE thực hiện ngay các lệnh trong phạm vi > Quá trình đối thoại giữa NSD và MAPLE tiếp tục theo lệnh của NSD
Có thể thay Enter bằng cách click chuột vào phím ! trên thanh công cụ
Cuối cùng, để thực hiện toàn bộ các lệnh của chương trình, NSD click chuột vào phím !!!
trên thanh công cụ
Tra cứu chủ đề: Hai cách:
a) Tại trang làm việc: dấu ? chủ đề, Enter:
Trang 3BÀI 1: BIỂU THỨC, HÀM SỐ, ĐỒ THỊ
1 Cách viết các lệnh
Dấu > để bắt đầu câu lệnh, nhóm lệnh hoặc chèn thêm dòng Ấn Shift + Enter để xuống dòng trong phạm vi >
Dấu # để ghi chú hoặc khóa câu lệnh
Dấu ; hoặc dấu : để kết thúc câu lệnh Khi dùng dấu ; kết quả thực hiện được hiển thị Khi dùng dấu : kết quả không hiển thị
Dấu := để gán giá trị hoặc biểu thức
Dấu [ ] để ghi chỉ số dưới
> # Vi du
> restart:
> a1:=10; a2:=20;b5:=8; #Khong dung chiso
a[1]:=10;a[2]:=20;b[5]:=8; #Dung chi so
> subs(x=a,b=5,BT); # Thay x=a,b=5 vao BT
> simplify(BT); # Đon gian BT
> value(BT); # Đanh gia BT
> evalf(BT,m); # Gia tri thap phan cua BT voi m chu so
Trang 4> assign(%); # Lay ket qua vua tinh đuoc sat tren
> simplify(%); # Don gian BT sat tren
> convert(BT,trig);# Bien doi luong giac BT
abs(x) : Gia tri tuyet đoi
sign(x) : Ham dau
sin(x); cos(x): Ham sin; cos
tan(x); cot(x) : Ham tg; ctg
arcsin(x);arcs(x): Ham arsin; arcos
Trang 5># Ham tung khuc
>f:=piecewise((0<=x and x<4),2*x^2,(4<=x and x<=6),
Trang 64.8 Vẽ miền ràng buộc phi tuyến
Trang 7Sau Enter, xuất hiện giao diện, select Plot:
3-Dplot; 3-Dcontour plot; 2-Dcontour plot;
Trang 8BÀI 3: ĐẠI SỐ TUYẾN TÍNH
Gói lệnh: with(linalg) hoặc with(LinearAlgebra)
Trang 9>a21:=A[2,1]; # phan tu a(2,1)
>d:=det(A); # đinh thuc
>A1:=transpose(A);# chuyen vi
>A2:=inverse(A); # nghich đao
>A3:=diag(a,b,c); # duong cheo
> A:=[]; # matran rong
> vk:=row(A,k); # dong k cua matran A
> vk:=col(A,k); # cot k cua matran A
> P:=augment(A,B,C);# ghep ma tran theo hang
# A,B,C cung so hang
> Q:=stackmatrix(A,B,C);# ghep ma tran theo cot
# A,B,C cung so cot
2 Tích vô hướng, tích vectơ của hai vectơ
> v1:=[5,7,9];v2:=[4,8,10];
> M:=dotprod(v1,v2); # tich vo huong
> N:=crossprod(v1,v2); # tich vecto
> lambda:=evalf(Eigenvals(B2)); # Gia tri rieng
> C1:=evalm(A2+B1);C2:=evalm(A2-B1); # Tong, hieu matran
> C3:=multiply(A2,B2); C3:=evalm(A2&*B2);# Tich matran
> C4:=multiply(A1,v); # Tich matran va vectơ
4 Lập phương trình Ax = b từ hệ phương trình và ngược lại
Trang 10diff(f(x),x); # đao ham cap 1
dif(f(x),x,x); # đao ham cap 2
diff(f(x),x$k);# đao ham cap k
Trang 11BÀI 5: GIẢI PHƯƠNG TRÌNH VI PHÂN THƯỜNG
1 Cách viết các đại lượng phụ thuộc thời gian t và đạo hàm theo t
Sau mũi tên là cách viết trong trong MAPLE:
odeplot(nghiem,[t,x(t)],t=0 tf); % đo thi theo t
odeplot(nghiem,[x(t),D(x)(t)],t=0 tf);% đo thi quy đao pha Khi không cóoptions,nghiệm có dạng giải tích
Khi vẽ đồ thị nghiệm, options là numeric
Trang 12> nghiem(1);
>odeplot(nghiem,[[t,x(t),style=line],[t,D(x)(t),
style=point]],t=0 tf,thickness=2,title="DO THI x(t),D(x)(t)");
> odeplot(nghiem,[x(t),D(x)(t)],numpoints=1000,title="QUY DAO PHA");
nghiem proc (x_rkf45) end proc
> #THOI GIAN VE DO THI:
> tf:=1.5;
> # VE CAC LOAI DO THI:
>odeplot(nghiem,[[t,x(t),thickness=2],[t,D(x)(t),thickness=1]], t=0 tf,legend=["x","Dx"],title="DO THI x(t),D(x)(t)");
odeplot(nghiem,[x(t),D(x)(t)],numpoints=300,title="QUY DAO PHA x-Dx");
>odeplot(nghiem,[[t,phi(t),thickness=2],[t,D(phi)(t),thickness= 1]],t=0 tf,legend=["phi","Dphi"],title="DO THI
phi(t),D(phi)(t)");
odeplot(nghiem,[phi(t),D(phi)(t)],numpoints=300,title="QUY DAO PHA phi-Dphi");
> # XAC DINH TAP NGHIEM VA TACH NGHIEM TAI THOI DIEM t1:
> t1:=1;nghiem(t1);
> nghiem(t1)[1];nghiem(t1)[2]; nghiem(t1)[3];…
> # SAVE:HE_PTVP
Trang 134.Vẽ nghiệm của PTVP với nhiều điều kiện đầu, biến độc lập là thời gian t
> # Ve nghiem 3D
>DEplot3d({PT1,PT2},[x1(t),x2(t)],t=0 tf,DKD,stepsize=0.02, linecolor=blue,title="QUY DAO 3D");
> #SAVE:PTVP_3
5 Giải PTVP bằng ODE Analyser Assistant
(ODE: Ordinary Differential Equation)
Để dễ dàng, nên soạn thảo PTVP trước sau đó dùng lệnh:
Sau khi Enter, xuất hiện giao diện Lần lượt chọn:
Edit ở ô Condition để soạn điều kiện đầu Soạn xong, chọn Add/Done
Edit ở ô Parameters để soạn các thông số Soạn xong, chọn Add/Done
Trang 14Solve Numerically để lấy nghiệm dưới dạng số
Solve Symbolically để lấy nghiệm dưới dạng chữ
Trang 15> # KIEM TRA SO LIEU
> if (a<0) or (a>100) then
print("CHO LAI a")
Trang 172 Lập trình giải trực tiếp: Giải phương trình bậc hai
elif Delta = 0 then
print("PT co nghiem kep");
3 Lập chương trình con bằng chu trình (procedure)
3.1 Khai báo một chu trình:
ten:=proc(các tham số cách nhau dấu phảy)
global các biến toàn cục, cách nhau dấu phảy
local các biến cục bộ, cách nhau dấu phảy
Trang 19PHẦN II TỐI ƯU HÓA (Optimization) -
BÀI 1: QUY HOẠCH TUYẾN TÍNH, QUY HOẠCH PHI TUYẾN
Trang 202 QUY HOẠCH TUYẾN TÍNH (Linear Programming)
Cho: 1) Hàm mục tiêu có dạng tuyến tính
3) Biên của các biến: x0;lb x ub
bd: Các biên của biến
Trong MAPLE dạng mặc định là f min Khi f max: options là maximize
Trang 21Khi có 2 biến, có thể giải bằng phương pháp vẽ
1 Vẽ miền ràng buộc và đường mức
2 Tìm nghiệm tối ưu
Trang 22Tìm nghiệm tối ưu trong các trường hợp:
a) Nghiệm có giá trị không âm,
b) Nghiệm có giá trị không âm, nguyên
c) Nghiệm có giá trị 0 hoặc 1 (binary)
Giải ví dụ 1.2 b bằng MAPLE
> restart:with(Optimiation)
Trang 23> # QUY HOACH TUYEN TINH
3 QUY HOACH PHI TUYẾN KHÔNG RÀNG BUỘC
(Unconstrained Nonlinear Programming)
Trang 24>#OK
3.2 Xác định điểm dừng (stationary point)
1) Điểm dừng x là nghiệm của phương trình f( ) 0x
Trang 25>
>
Trang 26b) Dùng Method of Steepest Descent hoặc Newton Method:
Xem Các bài toán cơ bản TƯH và ĐKTƯ, trang 78,79
4 QUY HOẠCH PHI TUYẾN BỊ RÀNG BUỘC
(Constrained Nonlinear Programming)
Cho:
Trang 271) Hàm mục tiêu phi tuyến f( )x f x x( , , , )1 2 x n
2) Các ràng buộc g x j( ) phi tuyến hoặc tuyến tính, j1, 2, ,m
Tìm nghiệm tối ưu * * *
Trang 28Vẽ: mặt f miên Ràng buôc contour f gradient f; , ;
Tìm nghiệm tối ưu và giá trị tương ứng của hàm mục tiêu /
Trang 29Ghi chú: Vẽ miền ràng buộc phi tuyến: Xem phần I, bài 1, mục 4.8
5 Giải bài toán Tối ưu hóa bằng giao diện Optimization Assistant
Trên thanh công cụ của MAPLE, chọn:
Tools/Assistants/Optimization
Trên màn hình xuất hiện giao diện Optimization Assistant
Chọn Edit để soạn thảo
Objective Function: Soạn xong, chọn Done
Constraints and Bounds: Soạn xong, chọn Add
Solve, Plot: Giải, vẽ đồ thi
Trang 30Ví dụ 1.5 được giải bằng giao diện như dưới đây
BÀI 2: PHÂN TÍCH VÀ HỒI QUY SỐ LIỆU
Khi thí nghiệm, quan sát,…trước tiên phải phân tích số liệu thu được, sau đó hồi quy số liệu,
nghĩa là tìm dạng giải tích của quan hệ số liệu
1 PHÂN TÍCH SỐ LIỆU (Data Analysis)
1.1 Một số đặc trưng (quantities) dùng để phân tích tập số liệu
1) Trung bình (Mean)
2) Trung vị (Median)
3) Độ trải (Range)
4) Độ lệch trung bình (Mean deviation)
5) Trung bình cắt xén (Trimmed mean)
6) Phân vị (Percentile)
7) Phương sai (Variance)
8) Độ nhọn (Kurtosis)
9) Hệ số bất đối xứng (Skewness)
Trang 311.2 Một số biểu đồ số liệu
1) Biểu đồ tần suất dạng đường (Frequency)
2) Biểu đồ tần suất dạng cột (Histogram)
3) Biểu đồ mật độ phân bố (Kernel Density Plot)
4) Biểu đồ hộp (Box Plot)
5) Biểu đồ bánh (Pie chart)
Tìm các đặc trưng của tập số liệu và vẽ biểu đồ bằng giao diện
Giải ví dụ 2.1 bằng giao diện của MAPLE
> restart:
> with(Statistics):
>X:=Vector([2.1,2.2,2.0,3.2,1.9,2.7,3.2,3.7,2.6,1.7,1.3,2.3,1 5,4.3,1.5,1.8,1.9,2.3,1.7,2.2]);
>#Phan tich v1: Chon Datasets 1;
Có thể: Trên thanh công cụ của MAPLE, chọn:
Trang 32Tools/Assistants/DataAnalysis
2 HỒI QUY SỐ LIỆU (Data Regression)
Số liệu thực nghiệm, quan sát, được ghi dưới dạng véctơ X và Y Chọn hàm mẫu f(x) chứa các hệ số a ; j 0,1, 2, , nj Hãy tìm ajsao cho tổng bình phương sai số giữa f(x) và Y(X)
là nhỏ nhất Hàm f(x) với các hệ số aj xác định – được gọi là hàm hồi quy Thay thế đường
cong số liệu Y(X) bởi đường cong f(x) – được gọi là mềm hóa đường cong (curve fitting)
2.1 Hồi quy một biến
2.1.1 Hồi quy tuyến tính (Linear Regression)
Hàm hồi quy f(x) tuyến tính đối với các hệ số aj (không phải là tuyến tính đối với x)
Một số dạng của hàm hồi quy tuyến tính một biến:
Trang 342.1.2 Hồi quy phi tuyến (Nonlinear Programming) một biến
Hàm hồi quy f(x) là phi tuyến đối với các hệ số cần xác định
Trang 36>
2.1.3 Giải hồi quy 1 biến bằng giao diện CurveFitting (Mịn hóa đường cong)
Trên thanh công cụ của Maple chọn:
> Tools/Assistants/CurveFitting
Sau khi xuất hiện giao diện: Cho X và f(X) Chọn Fit Curve
Enter an expression in x: Cho dạng của hàm hồi quy
Plot: Vẽ đồ thị số liệu và hàm hồi quy
2.2 Hồi quy nhiều biến
Hồi quy bội có dạng:
Trang 39Ví dụ 2.5: Hồi quy theo biến mã
Khi thí nghiệm tối ưu thường dùng biến mã X thay cho biến thực Z theo công thức:
Trang 42PHẦN III CỰC TRỊ PHIẾM HÀM
-
BÀI 1: CỰC TRỊ PHIẾM HÀM KHÔNG BỊ RÀNG BUỘC
Mục tiêu dưới dạng phiếm hàm (functional), biến độc lập là x
Điều kiện biên: y( ) = y ;y( ) yx0 0 x f f
Điều kiện cần để cực trị phiếm hàm:
Hàm y(x) phải thỏa mãn phương trình Euler-Lagrange:
Trang 44T, V: Động năng, thế năng của hệ
Áp dụng vào con lắc elliptic:
2 2
Trang 47BÀI 2: CỰC TRỊ PHIẾM HÀM BỊ RÀNG BUỘC BỞI PT ĐẠI SỐ
Trang 49PHẦN IV ĐIỀU KHIỂN TỐI ƯU (OPTIMAL CONTROL)
J u G x t f x x u dt
Có thể: G0 hoặc f0 0
Thời gian điều khiển tf : cho trước hoặc chưa cho trước
PTVP trạng thái: x f x u ( , )
Điều kiện đầu: x(0) = x0
Điều kiện cuối:
* tự do: x(tf ) không bị ràng buộc (a)
Tổng quát: ( ) min ( )H u H u (2)
Khi dùng (1) không cho quan hệ u* = u(x,p) thì dùng (2)
Tính chất của hàm Hamilton H:
Trang 50a) Khi t f cố định, x t( )f tự do hoặc chưa xác định:
( , , )H x u p const t; [0, ]t f (3)
b) Khi t f tự do, x t( )f cố định:
( , , ) 0;H x u p t[0, ]t f (4)
5) Điều kiện hoành (Transversality Condition): Xác định p(tf)
a) Khi t f cố định cho trước (fixed final time)
6) Giải hệ PTVP (PT trạng thái, PT liên hợp, PT mục tiêu) với điều kiện biên gồm:
* Điều kiện đầu: x(0), (0) 0z
* Điều kiện cuối của x(tf) : Phụ thuộc (a), (b), (c)
* Điều kiện hoành (d), (e)
Nếu trong x( )t f có n thành phần cố định, 1 n thành phần tự do, 2 n1n2 : n
x t k( )f x k kf; 1, ,n1 và p t l( ) 0;f l1, ,n2
* Điều kiện (f) dùng để xác định thời gian điều khiển tf khi thời gian cuối tự do
Chú ý: Số điều kiện biên phải bằng số PTVP của hệ
2 Một số phương pháp giải bài toán ĐKTƯ:
Boundary Value Problem (BVP)
Shooting method
Gradiend method (lặp điều khiển: trang 236 và 319 Các bài toán cơ bản TUH) Khi không có phần mềm chuyên dụng có thể dùng MATLAB, MAPLE để giải
BÀI 2: MỘT SỐ VÍ DỤ
1 Thời gian điều khiển cố định, trạng thái cuối cố định
Giải PTVP với điều kiện biên (BVP)
Ví dụ 1 :
Phiếm hàm mục tiêu:
Trang 54>
> > >
>
>
>
>
Trang 55Ghi chú:
Nếu cho đầu cuối x t1( ), ( )f x t2 f tự do (free end point) thì điều kiện biên là:
x1(0) 2, (0) 1 x2 p t1( ) 0,f p t2( ) 0f
3 Thời gian cuối cố định, trạng thái cuối chưa xác định
Vận tốc tương đối V r a u1 a.cos( ); u2 a.sin( ); a const
Trang 574 Thời gian cuối tự do (free final time)
Điều kiện biên:x1(0) 0, (0) 0, ( ) 1, ( ) x2 x t1 f x t2 f tự do
Trang 59Ví dụ 5 : TAY MÁY
Xylanh: Khối lượng m 1 , mômen quán tính J O , độ dài a, mômen ngẫu lực M.
Pitông: Khối lượng m 2 , mômen quán tình J C2 , độ dài b, lực F .
1 Dùng PT Lagrange, lập PTVP trạng thái đối với , S Đưa về hệ PTVP cấp 1
2 Lập PTVP của hệ điều khiển
3 Giải hệ PTVP của hệ điều khiển Xác định mục tiêu tối ưu J*
4 Vẽ các đồ thị: Điều khiển tối ưu, trạng thái tối ưu, quỹ đạo pha, qũy đạo B
Trang 63>
PT chuyển động của ô tô
Trang 64>
>
>
>
> >
> > > > > >
>
Trang 65
Phương pháp bắn (Shooting method)
Điều kiện đầu : x10 4,x20 0
Điều kiện cuối: x1c 0,x2c 0
Các bước của Shooting method:
1) Giả thiết thời điểm chuyển đổi t t s1, s2 t f và u có dạng bangbang control như hình vẽ
2) Giải PTVP với Điều kiện đầu, nhận được x1f x t1( ) ;f x2f x t2( )f
6) Hiệu chỉnh thời điểm chuyển đổi: t sj t sj .Del; const, tự chọn
7) Tiến hành lặp cho tới khi: norm F( ) ; :sai số, tự chọn
Trang 67>
Trang 68
-
> >
>
>
Trang 69>
(Linear Quadratic Regulator Problem)
Tuyến tính hóa hệ PTVP- Giải PT đại số Riccati- Mô phỏng hệ mở- Mô phỏng hệ đóng Giải ví dụ 8 bằng Maple:
Trang 70>
>
> >
> >
> > >
>
>
>