1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giải bài tập tối ưu hóa và điều khiển tối ưu bằng phần mềm maple

72 697 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 6,11 MB

Nội dung

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 1

TRƯỜ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 2

PHẦ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 3

BÀ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 6

4.8 Vẽ miền ràng buộc phi tuyến

Trang 7

Sau Enter, xuất hiện giao diện, select Plot:

3-Dplot; 3-Dcontour plot; 2-Dcontour plot;

Trang 8

BÀ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 10

diff(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 11

BÀ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 13

4.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 14

Solve 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 17

2 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 19

PHẦ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 20

2 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: x0;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 21

Khi 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 22

Tì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 26

b) 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 27

1) Hàm mục tiêu phi tuyến f( )xf 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, j1, 2, ,m

Tìm nghiệm tối ưu * * *

Trang 28

Vẽ: 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 29

Ghi 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 30

Ví 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 31

1.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 32

Tools/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 34

2.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 39

Ví 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 42

PHẦ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 ff

Đ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 44

T, V: Động năng, thế năng của hệ

Áp dụng vào con lắc elliptic:

2 2

Trang 47

BÀI 2: CỰC TRỊ PHIẾM HÀM BỊ RÀNG BUỘC BỞI PT ĐẠI SỐ

Trang 49

PHẦN IV ĐIỀU KHIỂN TỐI ƯU (OPTIMAL CONTROL)

J uG x t  f x x udt

Có thể: G0 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 50

a) 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 fn thành phần cố định, 1 n thành phần tự do, 2 n1n2  : n

x t k( )fx k kf; 1, ,n1 và p t l( ) 0;fl1, ,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 55

Ghi 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,fp 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 57

4 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 fx t2 f tự do

Trang 59

Ví 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 x1fx t1( ) ;f x2fx 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

>

>

> >

> >

> > >

>

>

>

Ngày đăng: 20/01/2018, 09:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w