II. Trình tự thực hiện một q trình mơ phỏng
5. Lựa chọn cách thức xuất kết quả
- Công dụng cơ bản của việc sử dụng mô phỏng máy tính là nghiên cứu phản ứng của hệ thống với các tín hiệu kích động và các điều kiện đầu. quá trình này được ngầm hiểu là việc tìm ra một hoặc nhiều biến hệ thống thơng qua kết quả của q trình mô phỏng. Các phần mềm mô phỏng cung cấp nhiều phương thức kiểm tra các kết quả của q trình mơ phỏng (màn hình, lưu trữ biến trong mơi trường làm việc, tệp dữ liệu...)
6. Điểu khiển việc thực thi quá trình mơ phỏng.
- Trong q trình mơ phỏng, sau khi xây dựng được sơ đồ mô phỏng một nhiệm vụ hết sức quan trọng của người dùng là xác lập các thông số điều khiển. Thực tế hầu hết các phần mềm mô phỏng đều cung cấp một bộ các thông số điều khiển cách thức mà phần mềm mơ phỏng giải phương trình vi phân, nếu chúng ta khơng có lựa chọn gì khác, máy sẽ chọn bộ thơng số mặc định còn nếu như chúng ta nắm vững được bản chất và ý nghĩa của các thơng số này, chúng ta có thể điều khiển các chương trình mơ phỏng thực thi theo mục đích cụ thể của mình - Đối với phần lớn các ứng dụng, 5 thông số sau sẽ điều khiển việc thực thi q trình mơ phỏng: a) Thời gian mơ phỏng:
- Thời gian mô phỏng thường được xác lập bằng các trị số: thời điểm bắt đầu (start time) và thời điểm kết thúc (stop time). Thời điểm bắt đầu là thời điểm xác lập các điều kiện đầu trong các khối tích phân mặc định có giấ trị bằng 0. - Chú ý : thời gian mô phỏng là thời gian làm việc thực tế của hệ thống không phải là thời gian cần thiết để chạy chương trình mơ phỏng. ví dụ như thời gian mơ phỏng đặt là 10 s, tuy nhiên để chạy chương trình mơ phỏng có thể mất một vài giờ.
b) Thuật tốn tích phân (thuật giải)
- Trong các chương trình mơ phỏng người ta sử dụng rất nhiều thuật giải khác nhau để giải các dạng hệ phương trình vi phân khác nhau. Một thuật giải này có thể rất hiệu quả đối với dạng phương trình này nhưng lại không thể dùng được đối với các loại phương trình khác. Để đảm bảo được độ chính xác của kết quả và tốn ít thời gian chạy máy nhất chúng ta cần phải chọn được thuật giải hợp lý nhất.
- Chúng ta có thể chọn thuật giải với bước thời gian cố định và bước thời gian thay đổi. Các thuật giải với bước thời gian thay đổi có thể biến đổi giá trị của bước thời gian trong q trình mơ phỏng, cung cấp khả năng điều khiển sai số cũng như kiểm tra việc cắt qua điểm 0 của nghiệm tìm được. Ngược lại thuật giải với bước tích phân cố định khơng thể điều khiển sai số cũng như kiểm tra việc cắt điểm 0 của nghiệm. Phần dưới đây chúng ta sẽ giới thiệu các thuật giải được dùng trong SIMULINK. Các thuật giải này cũng sẽ được dùng trong các chương trình mơ phỏng khác (có thể dưới tên gọi khác đi một chút)
Thuật giải mặc định:
- Trong Simulink nếu người dùng không chọn thuật giải, thuật giải mặc định sẽ được sử dụng tuỳ thuộc vào loại mơ hình đang phân tích: - Nếu mơ hình phân tích ở trạng thái liên tục, thuật giải ODE45 được sử dụng. ODE45 là
thuật giải đa chức năng tuy nhiên nếu hệ thống phân tích là hệ cứng và thuật giải này khơng cho được kết quả có thể chấp nhận, hãy thử dùng thuật giải ODE15S.
- Nếu mơ hình phân tích khơng ở trạng thái liên tục, SIMULINK sẽ sử dụng thuật giải với bước tích phân thay đổi có tên là "thuật rời rạc" (discrete) và hiển thị lời nhắc chỉ ra rằng thuật giải ODE45 không được sử dụng.
Các thuật giải với bước tích phân thay đổi: Trong SIMULINK chúng ta có thể lựa chọn nhiều thuật giải với bước tích phân thay đổi như: ODE45, ODE23, ODE113, ODE15S, ODE23S và thuật giải "discrete":
ODE45 là thuật giải dựa trên cơng thức Runge-Kuta bậc bốn, năm. Đó là thuật giải một bước: để tính ra y(tn) chỉ cần có giá trị nghiệm tại một thời điểm trước đó y( tn−1 ). Nói chung ODE45 là thuật giải được sử dụng nhiều nhất và được áp dụng như là phép thử đầu tiên khi chúng ta chưa chọn được thuật giải phù hợp. ODE23 cũng dựa trên cơ sở công thức Runge- Kuta(2,3). Thuật giải này có thể hiệu quả hơn thuật giải ODE45 với độ chính xác khơng yêu cầu cao và đối với hệ cứng trung bình. ODE23 cũng là thuật giải một bước.
ODE113 là thuật giải Adams-Bashforth-Moulton với bậc thay đổi. Nó có thể hiệu quả hơn thuật ODE45 ở độ chính xác tương đối cao. ODE113 là thuật giải nhiều bước có nghĩa là để xác định giá trị nghiệm ở một thời điểm cần có giá trị nghiệm tại nhiều thời điểm trước đó.
ODE15S là thuật giải dựa trên cơng thức đạo hàm số có bậc thay đổi (NDFs). Đây là công thức tương tự như công thức đạo hàm lùi (BDFs) - được biết đến với tên gọi "phương pháp Gear" nhưng hiệu quả hơn nhiều. Tương tự như thuật giải ODE113, thuật ODE15S cũng là thuật giải nhiều bước. Đối với các hệ thống "cứng", khi mà thuật giải ODE45 không sử dụng
được, hoặc sử dụng kém hiệu quả, hãy thử sử dụng ODE15S.
ODE23S được xây dựng trên cơ sở công thức Rosenbrock bậc 2, và đây là thuật giải một bước, nên nó có thể hiệu quả hơn giải thuật ODE15S khi mà u cầu về độ chính xác khơng cao. Thuật giải này cũng được dùng ở một vài hệ cứng khi mà thuật giải ODE15S tỏ ra không hiệu quả.
Ode23t áp dụng quy tắc hình thang với phép nội suy "tự do". Chúng ta sử dụng thuật giải này chỉ đối với các hệ thông tương đối cứng. Ode23tb sử dụng công thức Runge-Kuta ẩn (TR-BDF2) với giai đoạn đầu sử dụng quy tắc hình thang và giai đoạn hai sử dụng Cơng thức vi phân lùi bậc hai. Về cấu trúc cả hai bước đều sử dụng cùng một ma trận lặp. Cũng giống như thuật giải Ode23s, thuật giải này cũng hiệu quả hơn Ode15s khi yêu cầu về độ chính xác khơng cao.
Phương pháp rời rạc "Discrete" được sử dụng khi Simulink xác định được hệ thống ở trạng thái không liên tục.
Các thuật giải với bước cố định
Ode5 là phiên bản với bước cố định của thuật giải Ode45
Ode4 sử dụng công thức Runge - Kuta bậc 4 Ode3 là phiên bản với bước cố định của thuật giải Ode23
Ode2 sử dụng cơng thức tích phân của Heun, được biết đến như là cơng thức Euler cải tiến.
c) Độ lớn của bước tích phân
- Đối với các thuật giải với bước thay đổi chúng ta có thể lựa chọn giá trị lớn nhất của bước tích phân hoặc giá trị gợi ý của bước tích phân đầu tiên. Mặc định các thông số này được xác lập một cách tự động
- Đối với các thuật giải với bước cố định chúng ta có thể xác lập chiều dài bước tích phân. Mặc định là giá trị Auto.
Giá trị lớn nhất của bước tích phân:
- Giá trị mặc định được xác định theo giá trị của thời gian bắt đầu và kết thúc quá trình mơ phỏng hmax=tstop−tstart
50 Thông thường giá trị mặc định này phù hợp với phần lớn các trường hợp. Trừ khi người dùng xác định được rằng giá trị này có thể gây ra sai lệch về hình dạng kết quả chúng ta có thể xác lập lại giá trị mới
- Nếu hệ phân tích có ứng xử biến đổi theo chu kỳ hoặc gần theo chu kỳ, chúng ta có thể xác lập giá trị lớn nhất của bước tích phân theo giá trị của chu kỳ (ví dụ =1/4 chu kỳ).
Để thay đổi số lượng điểm xuất chọn điều khiển kết quả xuất ra khác (ví dụ như SIMULINK sử dụng tham số "Refine Output"
Độ lớn bước tích phân khởi tạo (Initial step size)
- Độ lớn của bước khởi tạo thông thường được các thuật giải tự xác định trên cơ sở kiểm tra trạng thái đạo hàm tại thời điểm bắt đầu phân tích. Nếu giá trị bước khởi tạo được người dùng xác lập, máy sẽ thử sử dụng giá trị này nhưng sẽ sử dụng bước nhỏ hơn nếu độ chính xác khơng đảm bảo.
Bước thời gian bé nhất
- Thông số này xác lập giới hạn dưới của bước thời gian sử dụng cho thuật toán bước thời gian tự thích nghi, nó được xác lập bởi người dùng trên cở sở của hàng loạt các nhân tố kể cả hiệu quả tính tốn. Người sử dụng cần phải chờ thời gian dài để kết thúc q trình mơ phỏng nếu như xác lập bước thời gian quá bé. d) Sai số:
- Các thuật giải nói chung đều sử dụng kỹ thuật điều khiển lỗi cục bộ chuẩn để kiểm soát lỗi tại mỗi bước tính. Trong mỗi bước tính, các thuật
giải sẽ tính ra các giá trị của biến trạng thái tại điểm cuối mỗi bước và đồng thời xác định sai số cục bộ để ước lượng sai số của các biến trạng thái này. Sau đó sẽ so sánh giá trị sai số này với sai số cho phép (là hàm số của thông số rtol- sai số tương đối và abstol - sai số tuyệt đối). Nếu giá trị sai số ước lượng lớn hơn giá trị cho phép, máy sẽ giảm giá trị bước tính và lặp lại quá trình ở trên.
Sai số tương đối:
- Xác định giá trị sai số một cách tương đối so với giá trị của biến trạng thái tại mỗi điểm tích phân. Giá trị của nó bằng tỷ số của giá trị sai số tuyệt đối và giá trị của biến trạng thái tương ứng tại điểm xét. Trong SIMULINK mặc định sai số tương đối được chọn là 0.001
Sai số tuyệt đối:
- Là giá trị ngưỡng của sai số, chỉ ra giá trị sai số cho phép khi giá trị của biến trạng thái tiến dần tới không. Trong SIMULINK, nếu chúng ta sử dụng chế độ lựa chọn sai số mặc định, giá trị sai số tuyệt đối sẽ là 10-6 .
e) Các tuỳ chọn xuất kết quả
- Các tuỳ chọn xuất kết quả điều khiển lượng dữ liệu (số điểm) sẽ được chương trình mơ phỏng đưa ra. Trong SIMULINK chúng ta có các tuỳ chọn xuất kết quả sau đây:
Refine Output (chế độ xuất dữ liệu mịn) Produce additional Output (xuất thêm dữ liệu ở các điểm bổ sung)
Produce specified Output only (xuất dữ liệu chỉ tại những điểm yêu cầu)
Refine Output :
- Sẽ làm mịn dữ liệu xuất ra bằng cách thêm vào các dữ liệu kết quả trung gian khi mà dữ liệu đưa ra bởi SIMULINK quá thô. Tuỳ chọn này sẽ cho phép người dùng nhập vào một số nguyên chỉ ra số điểm trung gian cần thêm vào giữa 2 mốc tích phân kề nhau.
- Để nhận được kết quả xuất ra mịn hơn chúng ta nên thay đổi hệ số độ mịn (refine factor) thay cho việc chia nhỏ bước tích phân. Với việc thay
đổi hệ số độ mịn, chúng ta khơng làm tăng thời gian chạy máy vì việc thay đổi này khơng ảnh hưởng tới độ lớn của bước tích phân. - Việc thay đổi độ mịn của dữ liệu xuất ra đặc biệt thích hợp và hiệu quả khi chúng ta sử dụng thuật giải ODE45 vì thuật giải này có khả năng đưa ra các bước tích phân khá lớn và như vậy nếu đưa các kết quả tích phân ra ngồi màn hình ở dạng đồ thị, chúng ta có thể nhận được hình dạng sai khác nhiều so với thực tế.
Produce additional Output:
- Lựa chọn này sẽ cho phép người dùng chỉ định chính xác các điểm trung gian cần lấy kết quả. Khi lựa chọn chế độ này, Simulink sẽ đưa ra véc tơ thời gian mà tại đó nó sẽ xuất kết quả ra. Người dùng cần phải nhập vào một biểu thức của Matlab để đưa ra các điểm thời gian bổ sung. Các kết quả bổ sung sẽ được tạo ra bằng cách sử dụng một công thức mở rộng tại các thời điểm bổ sung. Khác với việc thay đổi hệ số độ mịn, tuỳ chọn này sẽ thay đổi chiều dài bước tích phân cho phù hợp với véc tơ thời gian được bổ sung.
Produce specified Output only:
- Tuỳ chọn này sẽ yêu cầu Simulink xuất ra dữ liệu kết quả chỉ tại các thời điểm chỉ định. Nó sẽ làm thay đổi độ lớn của bước tích phân cho phù hợp với véc tơ thời gian yêu cầu. Tuỳ chọn này được dùng chủ yếu khi chúng ta cần phải so sánh các kết quả mô phỏng khác nhau để đảm bảo rằng dữ liệu xuất ra giữa các lần mô phỏng là ở cùng một thời điểm.
III. Sử dụng SIMULINK trong mô phỏng các hệ động lực hệ động lực
1. Các thao tác cơ bản
- SIMULINK là một phần mềm đồ hoạ, định hướng sơ đồ khối dùng để mô phỏng các hệ động lực. Đây là sản phẩm nằm bên trong MATLAB và sử dụng nhiều hàm của MATLAB, và cũng có thể trao đổi qua lại với mơi trường của MATLAB để tăng thêm khả năng mềm dẻo của nó.
- Với SIMULINK chúng ta có thể xây dựng mơ hình tốn học của hệ thống giống như khi ta vẽ sơ đồ khối. SIMULINK có một thư viện với nhiều khối chức năng khác nhau. Từ thư viện này ta có thể chọn các phần tử cơ sở cho mơ hình hệ thống phân tích. Thêm vào đó có nhiều cách để thêm khối chức năng vào hệ thống. Ngay sau khi mơ hình được xây dựng, ta có thể thực hiện q trình mơ phỏng theo nhiều cách khác nhau. Nhiều phương pháp tích phân có thể được sử dụng và người dùng cần định nghĩa giới hạn của bước thời gian, các tiêu chuẩn hội tụ. Các kết quả mơ phỏng có thể được hiển thị qua các khối “màn hiện sóng” của SIMULINK hoặc chuyển sang mơi trường làm việc (bộ nhớ) của MATLAB, ở đây ta có thể dùng các lệnh đồ hoạ mạnh hơn để hiển thị kết quả.
- Phần còn lại của chương này sẽ giới thiệu một cách sơ lược việc sử dụng SIMULINK để xử lý một bài tốn mơ phỏng đơn giản. Điều này rất cần thiết cho các sinh viên muốn tiếp cận với SIMULINK. Tuy nhiên để có đầy đủ kiến thức về SIMULINK cần phải tham khảo thêm trợ giúp trực tuyến của phần mềm hoặc phần hướng dẫn sử dụng khi cài đặt phần mềm
- Để xây dựng mơ hình ta phải khởi động MATLAB (nháy đúp chuột vào biểu tượng
MATLAB trên màn hình), tại dòng nhắc của MATLAB ta gõ simulink (hoặc nháy chuột vào biểu tượng simulink trên thanh cơng cụ) để kích hoạt chương trình SIMULINK, cửa sổ thư viện của simulink sẽ hiện ra. Nháy chuột vào biểu tượng “New” để mở ra cửa sổ mới xây dựng mơ hình mơ phỏng, hoặc "Open" để mở 1 file mơ phỏng trước đó (tương tự như các phần mềm chạy trong Windows).
- Việc xây dựng mơ hình bắt đầu từ việc mở thư viện các khối của simulink bằng cách nháy chuột vào mục simulink và sau đó chọn các nhóm thích hợp.
- Trong MATLAB 7.0 thư viện của Simulink phân làm 8 nhóm: Commontly Used Block,
Continuous, Discontinuities, Discrete, Logic and Bit Operations, Look-up Tables, Math Operations, Model Verification, Model-Wide Utilities, Ports & SubSystems, Signal Attributes, Signal Routing, Sinks, Source, User-Defined Functions, Additional Math & Discrete
- Các nhóm trên chứa rất nhiều khối chức năng cho phép thực hiện các phép tích tốn phân
tích động lực học trên các khối toán học chuẩn. Bao gồm từ các dạng tín hiệu đầu vào, các phép toán xử lý, các hàm chuânt, các hàm do người sử dụng tự xây dựng, cho đến quản lý các dữ liệu đầu ra.
- Các thao tác cơ bản khi thực hiện trên Simulink:
- Để Copy một khối từ thư viện vào của sổ mơ hình, hãy chọn khối, rê chuột để kéo khối đã chọn và thả vào cửa sổ mơ hình. Trong cửa sổ mơ hình, nếu muốn copy một khối, hãy ấn phím Ctrl và rê chuột kéo khối sang vị trí đặt bản copy. Để xố khối hãy chọn nó và ấn phím Delete.
- Thao tác tiếp theo là nối các khối thành mơ hình phản ánh hệ thống được mơ tả bằng tốn