1. Ý nghĩa và tầm quan trọng của mô phỏngsố số
- Mô phỏng hệ thống là một trong những công cụ được sử dụng rộng rãi nhất dùng cho cơng việc phân tích, thiết kế ở nhiều lĩnh vực khác nhau. Mô phỏng trong máy tính là việc giải quyết bằng phương pháp số các hệ phương trình vi phân mơ phỏng mơ hình nghiên cứu. - Trong nhiều tài liệu đã đề cập tới các phương pháp giải bằng giải tích các phương trình vi phân. Phương pháp này rất hiệu quả trong việc phân tích các mơ hình tuyến tính (bậc 1 hoặc bậc 2). Tuy nhiên trong kỹ thuật cần có các phương pháp tinh để giải quyết 3 vấn đề chủ yếu:
- Các mơ hình phi tuyến: - Các mơ hình tuyến tính bậc cao - Các hàm kích động bất kỳ
2. Giới thiệu về các phần mềm mô phỏng
- Trước kia, các phần mềm mô phỏng với mục đích chung dùng cho kỹ sư được phát triển ở dạng thư viện được dịch trước các thuật tốn tích phân, cho phép người dùng nối kết với các chương trình FORTRAN mơ tả các hệ phương trình. Những phần mềm này thông thường cung cấp các "đầu - cuối" và bộ hậu xử lý làm giảm nhẹ gánh nặng cho người lập trình, cung cấp khả năng dễ dàng điều khiển việc thực thi q trình phân tích và xuất kết quả ở dạng đồ hoạ. Các phần mềm CSMP và ACSL thuộc loại này.
- Với sự xuất hiện của giao diện đồ hoạ, một phương pháp tiếp cận mới của các phần mềm mô phỏng, công việc mô phỏng trên máy tính đã đơn giản hơn nhiều. Trong phương pháp tiếp cận này, việc mô phỏng được thực hiện bằng cách phát triển các sơ đồ khối mô phỏng, sử dụng thư viện các khối đã được định nghĩa từ trước ví dụ như: khối tích phân, khối tổng, khối nhân hệ số... Các sơ đồ khối chứa đựng
các cấu trúc dữ liệu định nghĩa các phương trình vi phân của hệ thống.
-Các phần mềm mô phỏng thường cung cấp một số lượng lớn các khối chức năng chứa đựng các đặc tính phi tuyến thường gặp, các hàm nhiều biến và đặc biệt là các hàm do người dùng định nghĩa. Người dùng cũng có thể chọn các thuật tốn tích phân từ một danh sách do phần mềm cung cấp và có thể điều khiển nhiều khía cạnh khác nhau của thuật giải. Cuối cùng các phần mềm mô phỏng cung cấp cho chúng ta các các công cụ đồ hoạ mạnh để dễ dàng hiển thị kết quả nhận được. - Các phần mềm mô phỏng thường cung cấp một số lượng lớn các khối chức năng chứa đựng các đặc tính phi tuyến thường gặp, các hàm nhiều biến và đặc biệt là các hàm do người dùng định nghĩa. Người dùng cũng có thể chọn các thuật tốn tích phân từ một danh sách do phần mềm cung cấp và có thể điều khiển nhiều khía cạnh khác nhau của thuật giải. Cuối cùng các phần mềm mô phỏng cung cấp cho chúng ta các các công cụ đồ hoạ mạnh để dễ dàng hiển thị kết quả nhận được. - Trong thực tế chúng ta có thể sử dụng nhiều phần mềm khác nhau để tiến hành mơ phỏng trên máy tính các hệ thống động lực, tuy nhiên tất cả các công việc mơ phỏng trên máy tính đều bao hàm những cơng việc sau:
a) Xây dựng mơ hình tốn học:
- Điều này được hồn thành bằng hệ phương trình vi phân mơ tả hệ thống và thể hiện các quy luật chung về vật lý
b) Xác định giá trị các thông số của mơ hình:
- Các thơng số của mơ hình liên quan tới các giá trị mà thơng thường khơng bị thay đổi trong q trình mơ phỏng. Các thơng số cơ bản của các hệ cơ khí là khối lượng và độ cứng của lò xo. Trong thực tế các thơng số của mơ hình cũng có thể thay đổi theo thời gian, nhưng thông thường chúng thay đổi với tốc độ chậm
hơn nhiều so với các biến động lực được tính tốn trong q trình mơ phỏng.
c) Xác định các điều kiện đầu :
- Khi giải hệ phương trình bằng phương pháp giải tích chúng ta đã biết được ý nghĩa quan trọng của điều kiện đầu. Trong mô phỏng việc xác định điều kiện đầu vẫn giữ nguyên tính chất quan trọng như vậy.
d) Tín hiệu đầu vào:
-Thông thường các hệ thống phản ứng với 1 hoặc nhiều tín hiệu đầu vào, việc mơ phỏng cũng cần có u cầu như vậy
e) Xác định kết quả sẽ xuất ra: .
-Mô phỏng thường không cần chỉ định các kết quả xuất ra. Kết quả xuất ra thường là các quá trình phụ thuộc vào thời gian của các biến vật lý của hệ thống.
f) Xác định các thông số điều khiển q trình mơ phỏng:
- Các thơng số điều khiển quá trình mơ phỏng là các giá trị và các tuỳ chọn. Các giá trị này sẽ chỉ ra cách thức thực hiện các phương pháp số trong quá trình mơ phỏng. Thơng thường đó là bước thời gian, khoảng tích phân, sai số cho phép và việc lựa chọn thuật tốn tích phân.
II. Trình tự thực hiện một quá trình mơ phỏng.
1. Xây dựng cấu trúc mơ phỏng: Sơ đồ khối
- Như chúng ta đã biết, q trình tích phân là cốt lõi của q trình mơ phỏng, và các khối tích phân hình thành cơ sở trung tâm của sơ đồ khối. Chính vì vậy việc xây dựng các sơ đồ khối bắt đầu bằng việc đưa vào số lượng chính xác các khối tích phân và sử dụng thư viện các khối để xây dựng các phương trình cân bằng. Cách thức nối kết các khối trong sơ đồ tổng thể và từ đó q trình mơ phỏng có thể thay đổi tuỳ thuộc vào phần mềm được chọn.
2. Xác lập giá trị các thơng số của mơ hình
- Ngay sau khi mơ hình được xây dựng xong,
giá trị của các thông số được xác lập. Trong SIMULINK, điều này được thực hiện bằng cách
nháy đúp chuột vào biểu tượng khối và điền các thơng số thích hợp vào hộp thoại được hiện ra. Một phương án khác là chúng ta có thể nhập tên biến, và các biến này sẽ được xác lập trong môi trường của MATLAB trước khi mô phỏng. Biện pháp này hết sức hiệu quả đặc biệt trong việc nghiên cứu sự thay đổi các thông số. -Trong một số hệ phức tạp, thông số của mơ hình phân tích có thể phụ thuộc vào thời gian hoặc giá trị của biến trạng thái, khi đó chúng ta phải viết các m-file hoặc s-file để mô tả sự biến đổi đó, sau đó sử dụng khối Matlab function để gọi các chương trình con này vào chương trình mơ phỏng.
3. Xác lập các điều kiện đầu
- Việc xác lập điều kiện đầu cũng hoàn tồn giống như việc xác lập các thơng số của sơ đồ khối, có nghĩa là chúng ta sẽ nhãy đúp chuột vào khối tương ứng và nhập vào giá trị điều kiện đầu (hoặc tên biến trong môi trường MATLAB ) vào mục thích hợp trong hộp thoại hiện ra. - Trong một số trường hợp, hoạt động của hệ thống được chia ra nhiều pha, mỗi pha lại có một điều kiện đầu khác nhau (ví dụ như bài tốn va chạm). Trong trường hợp này thay cho việc đưa điều kiện đầu vào trong các khối tích phân, chúng ta đưa điều kiện đầu vào khối từ bên ngồi
4. Các kích động đưa vào hệ thống
- Trong các phần trước chúng ta đã biết, cấu trúc mô phỏng được định nghĩa bằng sơ đồ khối, giá trị các thơng số của mơ hình và điều kiện đầu. Ba thành phần này bao hàm số lượng tối thiểu các thông tin cần thiết để thực thi q trình mơ phỏng. Do vậy nếu các thông số đầu vào từ bên ngồi khơng được định nghĩa, q trình mơ phỏng sẽ chỉ đưa ra có thành phần tự do hoặc thuần nhất của nghiệm
- Simulink và các phần mềm khác cung cấp một thư viện hết sức đa dạng các kiểu kích thích từ bên ngồi. Các tín hiệu vào đơn giản như: kích
động hình sin, các sóng răng cưa, sóng chữ nhật được định nghĩa trong các thư viện khối. Các kích động khác như xung chữ nhật, có thể tạo ra bằng cách sử dụng 2 khối tín hiệu bước và 1 khối nối tổng. Khối tín hiệu bước thứ nhất xác định vị trí bắt đầu của xung, khối tín hiệu bước thứ 2 xác lập vị trí kết thúc của xung và cộng vào bước thứ nhất sau khi nhân với -1 - Cuối cùng các kích động đầu vào phức tạp cũng có thể được tạo ra từ các dữ liệu lưu trữ trong môi trường MATLAB. Điều này cho phép chúng ta sử dụng tín hiệu đầu vào từ những kết quả tính tốn từ một chương trình khác.
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. q 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