tieu luan so 1_hdung

23
MÔ PHỎNG CÁC ỨNG DỤNG ĐƠN GIẢN VÀ CÁC VÍ DỤ HỆ THỐNG ĐIỀU KHIỂN Từ mục 1.11 đến hết chương I quyển “Advanced Dynamic-system Simulation” Abstract Bài viết này giới thiệu vài chương trình với mục đích mô hình hoá phương trình vi phân nhỏ, bao gồm mô phỏng: bàn bi-a, một tên lửa được dẫn đường…. Trong bài viết này cũng đề cấp đến vấn đề dùng máy vi tính để mô phỏng các hệ thống rất hiệu quả và tiết kiệm chi phí, tuy nhiên nó vẫn phải được kiểm nghiệm bằng các thí nghiệm thực tế. I. Giới thiệu Bài viết này sẽ gửi tới quý vị độc giả vài chương trình mô hình hoá phương trình vi phân như: - Quỹ đạo của các phương tiện không gian - Mô hình động lực phát triển dân số. - Mô phỏng đa ghép nối nhiều lần chạy (mô phỏng Bi-a) - Mô phỏng tên lửa được dẫn đường. - Các mô hình mô phỏng trên thế giới ngày nay như sử dụng máy vi tính để mô phỏng. II. Nội dung II.1. Các ứng dụng đơn giản II.1.1 Quỹ đạo của phương tiện không gian –tích phân theo các bước thay đổi Mô phỏng quỹ đạo của phương tiện không gian như trong hình 1.2, giả sử trái đất đứng im áp dụng định luật bình phương đảo của lực vạn vật hấp dẫn với các tinh; ảnh hưởng của các hành tinh, mặt trăng và các thiên thạch tự do được bỏ qua. Với mặt trời là gốc toạ độ, định luật bình phương đảo gia tốc trong hệ trục x, y là: | 1

Upload: nguyenhongduongktdt

Post on 05-Dec-2014

136 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Tieu Luan So 1_HDung

MÔ PHỎNG CÁC ỨNG DỤNG ĐƠN GIẢN VÀ CÁC VÍ DỤ HỆ THỐNG ĐIỀU KHIỂN

Từ mục 1.11 đến hết chương I quyển “Advanced Dynamic-system Simulation”

Abstract

Bài viết này giới thiệu vài chương trình với mục đích mô hình hoá phương trình vi phân nhỏ, bao gồm mô phỏng: bàn bi-a, một tên lửa được dẫn đường…. Trong bài viết này cũng đề cấp đến vấn đề dùng máy vi tính để mô phỏng các hệ thống rất hiệu quả và tiết kiệm chi phí, tuy nhiên nó vẫn phải được kiểm nghiệm bằng các thí nghiệm thực tế.

I. Giới thiệu

Bài viết này sẽ gửi tới quý vị độc giả vài chương trình mô hình hoá phương trình vi phân như:

- Quỹ đạo của các phương tiện không gian- Mô hình động lực phát triển dân số.- Mô phỏng đa ghép nối nhiều lần chạy (mô phỏng Bi-a)- Mô phỏng tên lửa được dẫn đường.- Các mô hình mô phỏng trên thế giới ngày nay như sử dụng máy vi tính để mô phỏng.

II. Nội dung II.1. Các ứng dụng đơn giảnII.1.1 Quỹ đạo của phương tiện không gian –tích phân theo các bước thay đổi

Mô phỏng quỹ đạo của phương tiện không gian như trong hình 1.2, giả sử trái đất đứng im áp dụng định luật bình phương đảo của lực vạn vật hấp dẫn với các tinh; ảnh hưởng của các hành tinh, mặt trăng và các thiên thạch tự do được bỏ qua. Với mặt trời là gốc toạ độ, định luật bình phương đảo gia tốc trong hệ trục x, y là:

|

1

0 40 80 -1.0 -0.5 0.0 0.5 1.0

khoảng cách = 1 khoảng cách = 1xdotvs.t-> xdotvs.t->

-

0

+

-

0

+

x

xdot

Hình 1.1a. Biểu đồ thời gian và mặt phẳng pha cho các dao động theo mô hình phi tuyến

Page 2: Tieu Luan So 1_HDung

Với

 

PHƯƠNG TRÌNH VI PHÂN CỦA DUFFING------------------------------------------------------------------------------------------------------------scale = 10 | display N1 | display C8 | display Qa = 0.099 | b = 15TMAX = 30 | DT = 0.0002 | NN = 10000X = 0.02drunwrite "type go to continue" | STOPTMAX = 200 | display 0 | drunwrite " note how solution becomes periodic!"TMAX = 30 | display 1 | drun--------------------------------------------------------------DYNAMIC--------------------------------------------------------------

--

| | dispt Z, X, XDOT

Đầu tiên, cách thức thí nghiệm gọi một đoạn mô phỏng đã hiển thị trong thời gian vào ngắn, sau đó chạy trong một thời gian dài mà không cần hiển thị để được một trạng thái ổn định

2

khoảng cách =100 15 30

khoảng cách =10230 245 260

khoảng cách =10-1.0 -0.5 0.0 0.5 1.0 -1.0 -0.5 0.0 0.5 1.0

khoảng cách =10

-

0

+

-

0

+

-

0

+

-

0

+z,x,xdotvs.t->z,x,xdotvs.t->

x,xdotx,xdot

Hình 1.1b: Chương trình mô phỏng cho hệ thống phương trình vi phân của Duffing

Page 3: Tieu Luan So 1_HDung

(TMAX = 200, hiển thị 0), và cuối cùng,chạy lần thứ ba để hiển thị giải pháp trạng thái ổn định với màn hiển thị bật lại (hiển thị 1). Mặt phẳng pha được hiển thị như sau: 

MÔ PHỎNG QUỸ ĐẠO CỦA PHƯƠNG TIỆN KHÔNG GIAN-------------------------------------------------- ------------------------------------------------ irule 15 | ERMAX = 0.0000001 | -- Gear-type integration

3

0 2 4Khoảng cách=2 y,dt vs.t->

25 DT

-

0

+

-1.0 -0.5 0.0 0.5 1.0Khoảng cách=1 x,y

-

0

+

Page 4: Tieu Luan So 1_HDung

xdot = 1.4 | dot = 0.9 | x = 0.45 | y = 0TMAX = 4 | DT = 0.0001 | NN = 10000drun--------------------------------------------------------------------------------------------------DYNAMIC

| |

Hình 1.2: Chương trình mô phỏng quỹ đạo của phương tiện không gian, hiển thị quỹ đạo, và biểu đồ lịch sử thời gian của y và DT, hiển thị các khoảng tích phân thay đổi. Để đơn giản, vấn đề này được phân đoạn vì vậy trong tất cảc các đoạn đều không ảnh hưởng nhau. Với chương trình đã được phân đoạn các hằng số hấp dẫn a = 1, ta thu được hệ phương trình vi phân đơn giản:

| |

Trong Hình 1.5 Một quỹ đạo khởi tạo xung quanh mặt trời để đạt được vận tốc tới các hành tinh bên ngoài. Điều này gồm: liên quan đến thay đổi vận tốc, và yêu cầu tích phân các khoảng nhỏ trong phần tốc độ cao của quỹ đạo sẽ làm chậm quá trình kết thúc mô phỏng. Vì lý do này, mô phỏng như sử dụng quy tắc tích phân khoảng thay đổi/bậc thay đổi ẩn (irule 15). Màn hình hiển thị thứ hai trong hình 1-5 minh họa các thay đổi tích phân – theo khoảng.

II.1.2. Mô hình động lực phát triển dân sốMô hình động lực phát triển dân số điển hình mô tả tổng dân số bằng các biến trạng thái của phương trình vi phân liên tục. Có thể có bất kỳ số lượng dân số, bao gồm cả nhóm con như tuổi tác và giới tính. Gán các đạo hàm trạng thái miêu tả tương tác của các họ dân cư khác nhau có thể là sinh, chết, dịch bệnh, và cạnh tranh hoặc ăn thịt nhau. Tương tự như các hệ thống phương trình trạng thái cũng mô tả tỷ lệ tác động của các "cư dân" của hợp chất hóa học, hoặc hỗn hợp đồng vị phóng xạ. Ví dụ kinh điển của hai họ động vật ăn thịt-con mồi được mô hình bởi phương trình vi phân Volterra-Lotka:d/dt con mồi = (a1 – a4*động vật ăn thịt)*con mồi d/dt động vật ăn thịt = (- a2 + a3 *con mồi)*động vật ăn thịt Tỷ lệ tăng dân số tỷ lệ thuận với quy mô dân số. a1 là sự khác biệt giữa tỷ lệ sinh tự nhiên và tỷ lệ chết của con mồi (ví dụ ở đây là thỏ). Con mồi này có tỷ lệ chết bổ sung: a4*động vật ăn thịt tỷ lệ thuận với số động vật ăn thịt (ví dụ ở đây là cáo). Số động vật ăn thịt có tỷ lệ tử là a2, và tỷ lệ sinh của nó a3*con mồi tỷ lệ với số con mồi, đó là nguồn cung cấp thực phẩm.

Chương trình mô phỏng trong hình 1.3 chứng minh một cách dễ dàng như trong mô hình các động lực dân số có thể thay đổi. Chúng ta thêm tỷ lệ tử động vật ăn thịt b*động vật ăn thịt để tính toán cho tác động của đám đông như số động vật ăn thịt tăng và một vài loài động vật ăn thịt lẫn nhau. Với b = 0 (không có tác động của đám đông), Ta có được giải pháp Volterra-Lotka cổ điển tuần hoàn là: thỏ tăng trưởng, cáo có thêm thực phẩm; số lượng của chúng tăng đến khi số thỏ giảm và do đó cung cấp thực phẩm của chúng không đảm bảo. Số lượng thỏ sau đó tăng trở lại, quá trình nay được lặp đi lặp lại. Nhưng khi có tác

4

Page 5: Tieu Luan So 1_HDung

động của quần thể (b> 0) sẽ giới hạn số động vật ăn thịt, và cả hai hội tụ về giá trị trạng thái ổn định.

- VẤN ĐỀ ĐỘNG VẬT ĂN THỊT – CON MỒI - Biểu thị ảnh hưởng của quần thể --------------------------------------------------------------------------------------------------display N1 | display C8TMAX = 2000 | DT = 0.01 | NN = 5000 | scale = 4000a1 = 0.05 | a2 = 0.01 | a3 = 2.0E-05 | a4 = 1.0E-04b = 0prey = 2000 | predator = 200 | -- initial valuesdrunrwrite " type go to see effect of predator crowding"STOPb = 1.0E-05 | drun--------------------------------------------------------------------------------------------------DYNAMIC--------------------------------------------------------------------------------------------------d/dt prey = (a1 - a4*predator)*preyd/dt predator = (- a2 + a3*prey - b*predator)*predatordispt prey, predator

II.1.3. Sự hoạt động mô phỏng đa ghép nối: mô phỏng bóng bi-a Đoạn chương trình DYNAMIC trong hình 1.4, mô hình quả bóng bi-a là một điểm (x, y) trên bàn được bao quanh bằng lớp đàn hồi tại x = a, x = - a, y = b, và y = - b. Với điểm (x, y)

5

Hình 1.3. Một mô phỏng các động lực dân số . Với b = 0 chương trình thực hiện các phương trình vi phân cổ điển Volterra-Lotka, có kết quả trạng thái cân bằng giao động tuần hoàn của động vật ăn thịt và con mồi. Các giá trị thực của mô hình b, tăng tỷ lệ tử của động vật ăn thịt do tác động quần thể, ví dụ, do kẻ thù ăn thịt đồng loại. Động vật ăn thịt và con mồi sau đó hội tụ về giá trị trạng thái ổn định không đổi.

0 1000 2000

Khoảng cách=4000 Con mồi, Đv ăn thịt vs.t->

b=0(không quần thể)

-

0

+

-0 1000 2000

Khoảng cách=4000 Con mồi, Đv ăn thịt vs.t->

b>0(Có quần thể)

0

+

Page 6: Tieu Luan So 1_HDung

bên trong bàn, gia tốc chỉ phụ thuộc vào lực ma sát không đổi và có hướng ngược với hướng của vận tốc, vì vậy ta có chương trình:d/dt x = xdot | d/dt y = ydot d/dt xdot = - lực ma sát *xdot /v | d/dtydot = - lực ma sát*ydot/v Vận tốc v thu được bằng việc gán biến đã định nghĩa:

Mô hình phương trình vi phân của bờ ngăn đàn hồi tác động cần xây dựng thành lực đàn hội và lực ma sát gây ra như quả bóng xuyên vào rào cản. Điều này không chỉ phức tạp mà còn liên quan nhiều đến gia tốc và vì vậy nó được tính từ các khoảng tích phân nhỏ. Chúng ta dễ dàng tránh những vấn đề phức tạp này bằng cách giới hạn chỉ chạy mô phỏng khi bóng chạm tới bờ ngăn, đó là, với |x|>a hoặc |y|> b:

term abs(x) – a | term abs(y) - b

DESIRE tập các bước thử nghiệm sau đó khởi động chạy mô phỏng mới với vị trí toạ độ hiện tại x, y và phản ánh các thành phần của vận tốc xdot, ydot:if abs(x) > a then xdot = – R*xdot | ydot = R*ydot

else proceedif abs(y) > b then xdot = R*xdot | ydot = – R*ydot

else proceed

Khi đó tham số R trả lại việc đo năng lượng bị hấp thụ bởi sự va chạm. Tiếp tục lặp lại quá trình này cho đến khi t>Tstop. Cú pháp chi tiết của if/then/else và repeat/until trình bày trong tập các bước thức thử nghiệm được tìm thấy trong sổ tay hướng dẫn trong đĩa CD. Hình 1.4 cho thấy các kết quả tiêu biểu như lực ma sát cuối cùng đã làm cho quả bóng bi-a dừng lại. Màn hình hiển thị 2 tuyên bố tiếp tục chương trình từ xóa màn hình hiển thị giữa lúc chạy.  

6

Hình 1.4. Mô phỏng bong bi-a. Tập các bước thử nghiệm ghép nhiều mô phỏng chạy bị giới hạn bởi sự va chạm của một hoặc bốn bờ ngăn tại x = a, x = - a, y = b, y = - b.

-1.0 -0.5 0.0 0.5 1.0Khoảng cách=1 x,y

-

0

+

Page 7: Tieu Luan So 1_HDung

- - CÁC QUẢ BI-A-------------------------------------------------------------------------------------------------- NN = 2000 | DT = 0.01TMAX = 20 | Tstop = 1000-----R = 0.9 | -- restitution parameter fric = 0.0005 | -- acceleration due to friction a = 1 | ^ b = 0.5xdot = 0.15 | ydot = 0.035 repeatdrun | display 2 | -- don't erase the display if abs(x) > a then xdot = - R * xdot | ydot = R * ydotelse proceedif abs(y) > b then xdot = R * xdot | ydot = - R * ydot else proceeduntil t > Tstop------------------- DYNAMIC-------------------------------------------------------------------------------------------------- v = sqrt(xdot^2 + ydot^2)d/dt x = xdot | d/dt y = ydotd/dt xdot = - fric * xdot/v | d/dt ydot = - fric * ydot/v term abs(x) - a | term abs(y) - bterm t - Tstop dispxy x,y Tương tự, tập các bước thử nghiệm ghép chạy rất hữu ích trong nhiều ứng dụng khác với hoạt động chuyển đổi căn bản, bao gồm mô phỏng của các mạch chuyển đổi điện tử (e).

II.2. Các ví dụ hệ thống điều khiểnII.2.1 Một cơ cấu phụ điện với trễ trường động cơ và sự bão hoà

Động cơ của cơ cấu phụ điện sẽ điều khiển tải sao cho sự dịch chuyển ở đầu ra được xác định bởi tín hiệu đầu vào u = u(t), thường là sau một khoảng thời gian ngắn ban đầu ( hình 1.5 ). Bộ điều khiển phụ này tạo ra một điện áp điều khiển mô tơ volt-age đóng vai trò như một hàm đo lường về độ sai lệch vị trí error = x - u và tốc độ thay đổi xdot = dx/dt liên tục đo lường bằng máy đo tốc độ góc trên động cơ trục.Hình 1.5 Cho thấy một chương trình mô phỏng. Dữ liệu dạng sin đầu vào u = A*cos(w*t) giảm đến khi w = 0. Chúng ta mô hình một điều khiển tuyến tính đơn giản với:

voltage = – k*error – r*xdot (1.1)

Một vài mô hình điều khiển phi tuyến sẽ được thảo luận trong các tài liệu khác. Trong bộ điều khiển, độ lợi k và độ chống rung r là các thông số kiểm soát tích cực, nhưng khi độ lợi cao và/hoặc tốc độ chống rung thấp gây ra hiệu ứng phụ và có thể gây ra đầu ra quá lớn hoặc thậm chí dao động và không ổn định.

7

Page 8: Tieu Luan So 1_HDung

Điện áp mô tơ (1.1) tạo ra dòng điện trường I với độ trễ hơn và biểu diễn bằng: d/dt I = – B*I + g1*voltage (1.2)Kết quả mômen (torque) quay động cơ bị hạn chế bởi sự bão hoà của Từ trường mô tơ được mô tả bằng hàm hy per bolic tang giới hạn mềm:

Torque (momen) = maxtrq*tanh ( g2*I/maxtrq ) (1.3)

MÔ PHỎNG CƠ CẤU PHỤ--------------------------------------------------------------------------------------------------

scale = 2 | display N1 | display C8 | -- display TMAX = 2.5 | DT = 0.0001 | NN = 10000-------------------------------------------------------------------------------------------------- A = 0.1 | w = 1.2 | -- --- signal parameters B = 100 | maxtrq = 1.5 | -- motor parameters g1 = 10000 | g2 = 1 | R = 0.6k = 40 | r = 2 | -- -- controllerparameters-- drun--------------------------------------------------------------------------------- DYNAMIC--------------------------------------------------------------------------------- u = A * cos(w * t) | -- inputerror = x - u | -- servo error

8

Hình 1.8 Chương trình mô phỏng hoàn toàn và biểu đồ thể hiện thiệt bị điện phụ với động cơ gồm trường trễ, trường bão hoà và dữ liệu đầu vào hình sin input u = A*cos(w * t ). Bạn cũng có thể xác lập w = 0 để thu được bước hồi đáp của cơ cấu phụ

0 1.25 2.5Khoảng cách=2 x,u, mô men, lỗi vs.t

-

0

+

Mô men

Lỗi

u,x

Hình 1.5 Chương trình mô phỏng hoàn toàn và biểu đồ thể hiện thiệt bị điện phụ với động cơ gồm trường trễ, trường bão hoà và dữ liệu đầu vào hình sin input u = A*cos(w * t ). Bạn cũng có thể xác lập w = 0 để thu được bước hồi đáp của cơ cấu phụ.

Page 9: Tieu Luan So 1_HDung

-------------------------------------------------------------------------------------------------- voltage = - k * error - r * xdot | -- motor voltaged/dt I = - B * I + g1 * voltage | -- motor field delay torque = maxtrq * tanh(g2 * V/maxtrq)d/dt x = xdot | d/dt xdot = torque-R * xdot---------------------------------------- scaled stripchart displayX = 5 * x + 0.5 * scale | U = 5 * (u + scale)ERROR = 4 * error | TORQUE = 0.25 * torque - 0.5 * scale dispt X,U,TORQUE,ERROR

Hồi đáp của động cơ, bánh răng, và tải đến mô men quay (torque) thoả mãn phương trình vi phân của chuyển động.

d/dt x = xdot (1.4)d/dt xdot = (torque – R * xdot)/M

Với M là quán tính của động cơ, bánh răng, và tải, và R > 0 là thông số chống rung của động cơ. Để cho tiện, torque và R đều được định mức sao cho M = 1Mô phỏng chương trình trong hình 1.5 xác lập hệ thống thông số và mô hình cơ cấu phụ với hai biến xác định gán trong (1.1) và ( 1.4 ) và ba trạng thái trong phương trình vi phân (1.2 ) và ( 1.6 ). Nhà thiết kế hệ thống điều khiển có thể tính toán trên mô hình toán học để quan sát dữ liệu phụ nhập vào, đầu ra, lỗi, và mô men động cơ trong khi họ điều chỉnh thông số điều khiển và thông số động cơ. Sự kết hợp thông số mong muốn trong một số trường hợp tạo ra lỗi servo nhỏ. Chúng ta có thể sử dụng thí nghiệm khác nhau nhập vào u(t) giống với dữ liệu nhập vào cho ứng dụng dự định, chẳng hạn, bước dữ liệu nhập vào, độ dốc, sin ( hoặc nhiễu). Mô phỏng phải được lặp lại với các biên độ đầu vào khác nhau, vì trường bão hòa làm mô hình của chúng ta trở lên phi tuyến.Những thực nghiệm với sự trợ giúp của máy tính như thế sẽ cho chúng ta cảm thấy trực giác về kiểm soát vấn đề và có thể nhanh chóng cho biết không ổn định hay lỗi thiết kế. Dù vậy để ra được quyết định đúng, chúng ta phải định rõ và tính toán bằng số các lỗi đo lườn. Đây là các hàm tiêu biểu xác định bởi toàn bộ thời gian lịch sử của x lỗi phụ x(t) - u (t) đầu vào đã cho u(t). Ví dụ, người ta có ghi lại tối đa các lỗi tuyệt đối hay lỗi bình phương.. Thông thường các lỗi đo được thường xảy ra trong một khoảng thời gian (lỗi) nhất định và chúng ta xác định các lỗi đó như là một biến thêm vào với giá trị ban đầu bằng 0. Ví dụ:d/dt IAE = abs(x – u) (IAE, integral absolute error)

d/dt ISE = (x – u)2 (ISE, integral squared error) d/dt ITAE = t * abs(x – u)d/dt ISTAE = t2 * abs(x – u)

Với ISE/TMAX trung bình lỗi bình phương

Bây giờ chúng ta có thể thay đổi thông số thiết kế cho đến khi các lỗi đo được thoả mãn giới hạn có thể chấp nhận được, hoặc cho đến lỗi càng nhỏ càng tốt. Chúng ta cũng có thể muốn nghiên cứu ảnh hưởng của hệ thống điều khiển lên hệ thống cần điều khiển, chẳng hạn, để giảm thiểu sự tăng tốc quá mức của tàu vũ trụ.

9

Page 10: Tieu Luan So 1_HDung

II.2.2. Hệ thống điều khiển đáp tần

Các thí nghiệm mô phỏng có thể khảo sát hệ thống đáp tần với đầu vào hình sin khác nhau. Đối với hệ thống điều khiển tuyến tính, người ta có thể thay thế mô phỏng hồi đáp xung và lập một tập các giao thức thử nghiệm để tính biển đổi Fourier của nó. Tập các bước thực nghiệm DESIRE có thể thực hiện phép biến đổi Fourier nhanh và làm việc với số phức cho đáp tần và đồ thi quỹ đạo gốc. Trong CD chỉ ra một số ví dụ đơn giản.

II.2.3. Mô phỏng của tên lửa dẫn đường đơn giảna. Một ngư lôi được dẫn đườngHình 1.6a cho thấy tên lửa theo đuổi mục tiêu. Vấn đề là cần tính toán sao cho TMAX = 1, và khoảng cách với đơn vị là 1000 foot (1foot = 30,4cm). x và y là các toạ độ đề các của tâm quả tên lửa trong trường lực hấp dẫn. u và v là vận tốc thành phần dọc và thẳng đứng đến trục ngư lôi. phi là độ dốc đường bay, và rudder là độ lệch điều khiển - bề mặt. Mục tiêu di chuyển trên đường thẳng vận tốc không đổi.Tên lửa cụ thể của chúng ta sẽ là ngư lôi dẫn đường. Ở nước, lực rẽ nước và lực ép hai bên (của nước) xấp xỉ tỉ lệ với bình phương của u (u2). Gia tốc dọc và thẳng đứng đến trục dọc của ngư lôi xấp xỉ bởi:

(d/dt) u = (thrust – drag)/mass = UT a2*u2

(d/dt) v = b1*u2 sin + b2*u*phidot + b3*v*rudderPhương trình quay - chệch hướng là:(d/dt) phi = phidot

(d/dt) phidot = c1*u2*sin + c2*u*phidot + c3*u2*rudderTrong đó c1 và c2 là hệ số thuỷ động lực - và momem chống rung - tức thời, và c3 là hệ số mômen điều khiển bánh lái, tất cả chia cho momen quán tính của ngư lôiChong chóng ổn định đảm bảo rằng góc tấn công g2 giữa trục dọc và tốc độ véc - tơ nhỏ đến nỗi:sin = tan = v/uVà phương trình của chuyển động cho đoạn chương trình DYNAMIC của ta trở thành:

(d/dt) u = UT – a2 * u2

(d/dt) v = u * (b1 * v + b2 * phidot + b3 * rudder)(d/dt) phidot = u * (c1 * v + c2 * phidot + c3 * rudder) (d/dt) phi = phidot(d/dt) x = u * cos(phi) – v * sin(phi) (d/dt) y = u * sin(phi) + v * cos(phi)

10

Trục dọc

Vận tốc

uv

2

phi

đường mục tiêu

đường ngư lôi

0

khoảng cách = 2

-1.0 -0.5 0.0 0.5 1.0-

+

Hình 1.6a Ngư lôi dẫn đường theo dấu mục tiêu tốc độ không đổi. Psi góc mục tiêu, không vẽ trên hình ở đây, là góc giữa đường ngang và đường nối giữa ngư lôi và mục tiêu.

Page 11: Tieu Luan So 1_HDung

Góc mục tiêu psi là góc giữa đường ngang trong hình 1.6a và đểm giao giữa ngư lôi và mục tiêu. Toạ độ Mục tiêu xt, yt, bình phương khoảng cách đến - mục tiêu dd, và psi góc mục tiêu được cho bởi các phương trình:xt = xt0 + vxt * t yt = yt0 + vyt * t

psi = arctan((yt – y)/(xt – x)) dd = (x – xt)2 + (y – yt)2

Chúng ta hướng ngư lôi đến mục tiêu bằng cách tính giá trị ban đầu của phi bằng psi. Giá trị ban đầu của u và v được xác lập tới 0.Ta điều khiển bánh lái để giữ ngư lôi hướng về phía đích. Dẫn đường theo cách đơn giản như vậy chỉ làm việc với mục tiêu tốc độ thấp trừ khi ban đầu nó ở gần hay lớn hơn một chút đằng sau mục tiêu (xem trong hình 1.7).

-- MÔ PHỎNG NGƯ LÔI ĐƯỢC DẪN ĐƯỜNG-- (x, y): ngư lôi, (xt, yt): mục tiêu--------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------irule 4 | ERMAX = 0.1 | -- variable-step RK4display N1 | display C8 | display R | scale = 2DT = 0.00001 | TMAX = 2 | NN = 20000--------------------------------------------------------------------------------------------------UC = 8 | -- torpedo parametersa1 = 0.8155 | a2 = 0.8155UT = a1 * UC^2b1 = - 15.701 | b2 = - 0.23229 | b3 = 0c1 = - 303.801 | c2 = - 44.866 | c3 = 500--------

11

khoảng cách = 1.5

Đuôi lái dd

lỗi

phi

0 0.15 0.3-

+

0

Hình 1.6 b. Thời gian lịch sử của lệch bánh lái ngư lôi, lỗi phi - psi, gócphi và bình phương khoảng cách đến mục tiêu

Page 12: Tieu Luan So 1_HDung

gain = 300 | rumax = 0.25 | -- control parametersRR = 0.01 | rr = RR^2 | -- distance to targetDD = 100 * rr--------vxt = 0.1 | vyt = - 0.5 | -- target velocity vectorx = - 2 | y = 0 | -- initial valuesxt0 = 1 | yt0 = 2rudder = 0phi = atan2(yt0 - y, xt0 - x) | -- first aim at targetdrunrDYNAMIC--------------------------------------------------------------------------------------------------xt = xt0 + vxt * t | yt = yt0 + vyt * t | -- targetpsi = atan2(yt - y, xt - x) | -- target angledd = (x - xt)^2 + (y - yt)^2 | -- squared distance------------------------d/dt u = UT - a2 * u^2 | -- state equationsd/dt v = u * (b1 * v + b2 * phidot + b3 * rudder)d/dt phidot = u * (c1 * v + c2 * phidot + c3 * rudder)d/dt phi = phidotd/dt x = u * cos(phi) - v * sin(phi)d/dt y = u * sin(phi) + v * cos(phi)--error = (phi-psi) | -- controlstep | -- this is needed for sat()rudder = - rumax * sat(gain * error)--term rr - dd | -- terminate when close--------------------------------------------------------------------------------------------------DISPXY x, y, xt, yt | -- draw 2 xy plots

Hệ thống dẫn đường bằng các cảm biến âm thanh đơn giản psi và dd và thúc đẩy độ lệch điều khiển - bề mặt bánh lái (rudder) được thực hiện như sau:error = (phi – psi) rudder = – rumax * sat(gain*error)Ta sẽ tăng độ lợi điều khiển khi ngư lôi (torpedo) đến gần đích bằng cách thiết lập:gain = gain0 + A*tTa chấm dứt quá trình tăng tốc trên khi ngư lôi (torpedo) tiến sát với mục tiêu, nơi psi có xu hướng để thay đổi nhanh chóng. Phương trình thứ hai đảm bảo rằng giá trị tuyệt đối của độ lệch điều khiển - bề mặt không vượt quá rumax.

b. Toàn bộ chương trình mô phỏng

Hình 1.6c liệt kê toàn bộ chương trình điều khiển ngư lôi đã sử dụng trong hình 1.6a và b. Cách thức thí nghiệm, trước tiên chọn chế độ tích hợp, màn hình màu, và khoảng cách màn

12

Hình 1.6c Toàn bộ chương trình mô phỏng ngư lôi được dẫn đường

Page 13: Tieu Luan So 1_HDung

hình, rồi xác lập giá trị ban đầu của bước tích phân DT, thời gian chạy mô phỏng TMAX, và số điểm lấy mẫu NN.Cách thức thí nghiệm tiếp theo là thiết lập các thông số ngư lôi, phối hợp mục tiêu ban đầu, và các thành phần vận tốc mục tiêu. Cuối cùng, chúng ta xác định các giá trị ban đầu cho các biến trạng thái x, y, và phi. Giá trị ban đầu của các biến trạng thái còn lại u, v, và phidot được cho mặc định là không.

Đoạn chương trình DYNAMIC theo sau dòng DYNAMIC bắt đầu với việc gán các biến đã được định nghĩa. Chúng ta định rõ mục tiêu phối hợp xt, yt như là hàm của thời gian rồi suy ra góc mục tiêu và các biến số điều khiển error và rudder. Đoạn DYNAMIC kế tiếp liệt kê các phương trình vi phân trạng thái và lệnh kết thúc.term rr – ddKhi tên lửa gần mục tiêu với RR = sqrt(rr) thì các quá trình mô phỏng kết thúc. Nếu không thế, quả bắn đã lỗi, và tiếp tục tục chạy tới t = TMAX. Độ lệch bánh lái rudder được giới hạn trong khoảng -rumax và rumax với hàm giới hạn sat(), cái mà kế tiếp step trình bày chắc chắn tích phân đúng.Cuối cùng, lệnh hiển thị DISPXY x.y, xt, yt gọi ra hiển thị đồng thời tên lửa và mục tiêu đường đi (y đối với x và yt đối với xt). Các báo cáo hiển thị thay thế khác có thể vẽ đồ thị thời gian của phi, psi, erro, và rudder (Hình 1.6b ). Chương trình mô phỏng có thể được tải từ một tập tin hoặc một cửa sổ trình soạn thảo (editor window). Khi lệnh run được nhập vào các hiện thị kết quả giải pháp sẽ xuất hiện .

II.3. Các nghiên cứu mô phỏng hiện tại trên thế giới

Mô phỏng như ví dụ ngư lôi cung cấp một số hiểu biết và rất tốt cho công việc giảng dạy và học. Nhưng kỹ thuật - thiết kế mô phỏng đòi hỏi nhiều vấn đề hơn mà hơn mà cuốn sách đang giải quyết. Sự kiện, kết quả chính của một vài mô hình chạy sẽ được có nhiều câu hỏi hơn là câu trả lời: một sự kiện bắt đầu nhìn thấy còn khoảng bao nhiêu nữa thì có để biết? Đây là chỉ có một vài câu hỏi có thể xảy ra:- Tên lửa có thể tìm được mục tiêu từ các hướng đi khác nhau?- Chuyện gì sẽ xảy ra nếu ta tăng tốc độ của mục tiêu?- Có thể thiết kế được cải thiện với phương tiện khác hoặc các tham số hệ thống-điều khiển?- Dung sai của giá trị tham số được chấp nhận là gì?

13

-1.0 -0.5 0.0 0.5 1.0

0 -0.5 0.0 0.5 1.0

- -0.5 0.0 0.5 1.0

+ -0.5 0.0 0.5 1.0

-1.0 -0.5 0.0 0.5 1.0

0 -0.5 0.0 0.5 1.0

- -0.5 0.0 0.5 1.0

+ -0.5 0.0 0.5 1.0khoảng cách= 1.5 khoảng cách= 1.5

x,y, xt, yt x,y, xt, yt

(a) (b)

Hình 1.7: Các nghiên cứu đa lần chạy (multirun) đưa ra kết quả của ngư lôi bắn vào mục tiêu tốc độ thấp (a) và tốc độ cao xuất hiện theo các hướng khác nhau (b). Nó là sự kiện nổi bật, kiểu dẫn đường theo đuổi mục tiêu nguyên thuỷ được mô tả trong phần này có thể đạt được tốc độ mục tiêu cao ngay khi mục tiêu đường đi đằng trước của tên lửa hoặc đằng sau nó.

Page 14: Tieu Luan So 1_HDung

Chúng ta sẽ yêu cầu dõ dàng hơn các nghiên cứu mô phỏng đa lần chạy (multirun). Hình 1.7 đưa ra một ví dụ đơn giản, nhưng trong thực tế chúng ta phải kết hợp các kết quả để tìm ra sự thật của các vấn đề như đã liệt kê. Nó sinh ra vấn đề rằng một vấn đề đơn giản như quả ngư lôi (torpedo) có thể cần hơn nghìn quá trình chạy mô phỏng. Một dự án lớn có thể sinh ra một khối lượng khổng lồ các dữ liệu mô phỏng. Định giá sự thong minh và hiệu quả của mỗi kết quả là một ngành nghệ thuật hơn là một ngành khoa học. Đố chính là mục đích đặc biệt của cuốn sách này để trình bày kỹ thuật đã có hang nghìn thí nghiệm trong vài phút và đưa ra các kết quả theo nhiều cách khác nhau.Mô phỏng trên máy tính (computer) rất thuận tiện, và rẻ hơn rất nhiều so với các thí nghiệm thực. Nhưng các mô hình thiết kế khoa học trở lên vô nghĩa trừ khi chúng được xác nhận bằng các thí nghiệm vật lý thực tế. Rất nhiều nguyên mẫu đáng giá thất bại đầu tiên đã chỉ ra các mô hình bị đơn giản hoá quá mức (sự cẩu thả, ví dụ: sự uốn cong thân tên lửa, nhiên liệu lỏng). Các nghiên cứu mô phỏng cố gắng để tiên đoán trước các sự cố của thiết kế và chọn các điều kiện kiểm tra mà là tói thiểu hoá cho chi phí kiểm tra.

III. Kết luậnSau khi đọc bài viết này bạn đã bước đầu nắm bắt được khái niệm về mô phỏng, một chương trình mô phỏng đơn giản như mô phỏng quỹ đạo các phương tiện không gian, mô phỏng tên lửa được dẫn đường, mô phỏng viên bi-a ….. Đồng thời bài viết cũng giới thiệu ngắn gọn các phương pháp mô phỏng hiện tại, mô phỏng trên máy tính và tính phức tạp, yêu cầu kiểm nghiệm thực tế của một chương trình mô phỏng để có thể biến các kết quả mô phỏng vào cuộc sống.

IV. Tài liệu tham khảo 1. U. M. Asher and L. Petzold, Computer Methods for Ordinary DifferentialEquations and Differential-Algebraic Equations, SIAM Press, New York, 1998.2. H. Elmquist, Dymola User’s Manual, DynaSim A.B., Lund, Sweden, 2004.3. L. Petzold, A Description of DASSL, a Differential-Algebraic-Equation Solver, inScientific Computing (R. S. Stepleman, ed.), North Holland, Amsterdam, 1989.4. J. Stoer, et al. Introduction to Numerical Analysis, Springer, New York, 20025. G. A. Korn and J. V. Wait, Digital Continuous-System Simulation, Prentice-Hall, Englewood Cliffs, NJ, 1978.6. M. M. Tiller, Introduction to Physical Modeling with Modelica, KluwerAcademic Publishers (now Springer), New York, 2004.7. P. Fritzon, Principles of Object-Oriented Modeling and Simulation withModelica 2.1,Wiley, New York, 2004.8. DYMOLA Manual, Dynasim A.B., Lund, Sweden, 2005.9. G. A. Korn, Interactive Dynamic System Simulation with Microsoft Windows,Taylor and Francis, London, 1998.10. F. Cellier and E. Kofman, Continuous-System Simulation, Springer, New York,2006.11. C. W. Gear, DIFSUB, Algorithm 407, Communications in ACM, 14, No. 3, 3/7,1971.12. G. K. Gupta et al., A review of recent developments in solving ODEs,

14

Page 15: Tieu Luan So 1_HDung

Computing Surveys, 17, March 1985, pp. 5–47.13. E. Hairer et al., Solving Ordinary Differential Equations (2 vols.), Springer,Berlin, 1987.14. A. C. Hindmarsh, LSODE and LSODI, ACM/SIGNUM Newsletter, 15, No. 4,1980.15. J. D. Lambert, Numerical Methods for Ordinary Differential Equations: TheInitial-Value Problem,Wiley, New York, 1991.16. W. E. Schiesser, A Comparative Study of Merson-type Runge-Kutta Algorithms,Report, Chemical Engineering Department, Lehigh University, Bethlehem, PA,1980.17. L. F. Shampine and H. A. Watts, Software for Ordinary Differential Equations,in Mathematical Software (L. R. Crowell, ed.), Prentice-Hall, EnglewoodCliffs, NJ, 1984.18. J. C. Butcher, The Numerical Analysis of Ordinary Differential Equations,Wiley, Chichester, UK, 1980.19. P. Garnell, Guided Weapon Control Systems, 2nd Ed., Brassey’s DefencePublishers, London, 1980.20. J. H. Blakelock, Automatic Control of Aircraft and Missiles, Wiley, New York,1990.21. R. G. Cottrell, Optimal intercept guidance, AIAA J. 9, 1971, 1414–1415.22. R. M. Howe, in Hybrid Computation (W. J. Karplus and G. A. Bekey, eds.),Wiley, New York, 1968.23. Granino A.korn, Advanced Dynamic-system Simulation, Wiley-IntersciencevA Jone Wiley & Song, Inc., Publication 2007

MỤC LỤC

Abstract 1

I. Giới thiệu 1

II. Nội dung 1

II.1. Các ứng dụng đơn giản 1

II.1.1. Quỹ đạo của phương tiện không gian –tích phân theo các bước thay đổi 1

II.1.2. Mô hình động lực phát triển dân số 4

II.1.3. Sự hoạt động mô phỏng đa ghép nối: mô phỏng bóng bi-a 6

II.2. Các ví dụ hệ thống điều khiển 8

II.2.1. Một cơ cấu phụ điện với trễ trường động cơ và sự bão hoà 8

II.2.2. Hệ thống điều khiển đáp tần 10

II.2.3. Mô phỏng của tên lửa dẫn đường đơn giản 10

II.3. Các nghiên cứu mô phỏng hiện tại trên thế giới. 14

15

Page 16: Tieu Luan So 1_HDung

III. Kết luận 14

IV. Tài liệu tham khảo 15

16