Bài giảng Mô hình hóa và mô phỏng trong kỹ thuật ô tô

Tài liệu Bài giảng Mô hình hóa và mô phỏng trong kỹ thuật ô tô: BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN NÔNG VĂN VÌN BÀI GIẢNG MÔ HÌNH HÓA VÀ MÔ PHỎNG TRONG KỸ THUẬT Ô TÔ HƯNG YÊN 2014 Bìa màu xanh 1 Chương 1 KHÁI QUÁT VỀ MÔ HÌNH VÀ MÔ HÌNH HÓA HỆ THỐNG 1.1. Một số định nghĩa cơ bản - Đối tượng (object) là tất cả những sự vật, sự kiện mà hoạt động của con người có liên quan tới. - Hệ thống (System) là tập hợp các đối tượng (con người, máy móc), sự kiện mà giữa chúng có những mối quan hệ nhất định. - Trạng thái của hệ thống (State of system) là tập hợp các tham số, biến số dùng để mô tả hệ thống tại một thời điểm và trong điều kiện nhất định. - Mô hình ( Model) là một sơ đồ phản ánh đối tượng, con người dùng sơ đồ đó để nghiên cứu, thực nghiệm nhằm tìm ra quy luật hoạt động của đối tượng hay nói cách khác mô hình là đối tượng thay thế của đối tượng gốc để nghiên cứu về đối tượng gốc. - Mô hình hóa (Modeling) là thay thế đối tượng gốc bằng một mô hình nhằm các thu nhận thông tin q...

pdf71 trang | Chia sẻ: putihuynh11 | Lượt xem: 781 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Mô hình hóa và mô phỏng trong kỹ thuật ô tô, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN NÔNG VĂN VÌN BÀI GIẢNG MÔ HÌNH HÓA VÀ MÔ PHỎNG TRONG KỸ THUẬT Ô TÔ HƯNG YÊN 2014 Bìa màu xanh 1 Chương 1 KHÁI QUÁT VỀ MÔ HÌNH VÀ MÔ HÌNH HÓA HỆ THỐNG 1.1. Một số định nghĩa cơ bản - Đối tượng (object) là tất cả những sự vật, sự kiện mà hoạt động của con người có liên quan tới. - Hệ thống (System) là tập hợp các đối tượng (con người, máy móc), sự kiện mà giữa chúng có những mối quan hệ nhất định. - Trạng thái của hệ thống (State of system) là tập hợp các tham số, biến số dùng để mô tả hệ thống tại một thời điểm và trong điều kiện nhất định. - Mô hình ( Model) là một sơ đồ phản ánh đối tượng, con người dùng sơ đồ đó để nghiên cứu, thực nghiệm nhằm tìm ra quy luật hoạt động của đối tượng hay nói cách khác mô hình là đối tượng thay thế của đối tượng gốc để nghiên cứu về đối tượng gốc. - Mô hình hóa (Modeling) là thay thế đối tượng gốc bằng một mô hình nhằm các thu nhận thông tin quan trọng về đối tượng bằng cách tiến hành các thực nghiệm trên mô hình. Lý thuyết xây dựng mô hình và nghiên cứu mô hình để hiểu biết về đối tượng gốc gọi lý thuyết mô hình hóa. Nếu các quá trình xảy ra trong mô hình đồng nhất (theo các chỉ tiêu định trước) với các quá trình xảy ra trong đối tượng gốc thì người ta nói rằng mô hình đồng nhất với đối tượng. Lúc này người ta có thể tiến hành các thực nghiệm trên mô hình để thu nhận thông tin về đối tượng. - Mô phỏng (Simulation, Imitation) là phương pháp mô hình hóa dựa trên việc xây dựng mô hình số (Numerical model) và dùng phương pháp số (Numerical method) để tìm các lời giải. Chính vì vậy máy tính số là công cụ hữu hiệu và duy nhất để thực hiện việc mô phỏng hệ thống. Lý thuyết cũng như thực nghiệm đã chứng minh rằng, chỉ có thể xây dựng được mô hình gần đúng với đối tượng mà thôi, vì trong quá trình mô hình hóa bao giờ cũng phải chấp nhận một số giả thiết nhằm giảm bớt độ phức tạp của mô hình, để mô hình có thể ứng dụng thuận tiện trong thực tế. Mặc dù vậy, mô hình hóa luôn luôn là một phương pháp hữu hiệu để con người nghiên cứu đối tượng, nhận biết các quá trình, các quy luật tự nhiên. Đặc biệt, ngày nay với sự trợ giúp đắc lực của khoa học kỹ thuật, nhất là khoa học máy tính và công nghệ thông tin, người ta đã phát triển các phương pháp mô hình hóa cho phép xây dựng các mô hình ngày càng gần với đối tượng nghiên cứu, đồng thời việc thu nhận, lựa chọn, xử lý các thông tin về mô hình rất thuận tiện, nhanh chóng và chính xác. Chính vì vậy, mô hình hóa là một phương pháp nghiên cứu khoa học mà tất cả những người làm khoa học, đặc biệt là các kỹ sư đều phải nghiên cứu và ứng dụng vào thực tiễn 2 hoạt động của mình. 1.2. Mô hình hóa hệ thống 1.2.1. Vai trò của phương pháp mô hình hóa hệ thống a) Khi nghiên cứu trên hệ thống thực gặp nhiều khó khăn do nhiều nguyên nhân gây ra như sau: - Giá thành nghiên cứu trên hệ thống thực quá đắt. Ví dụ: Nghiên cứu kết cấu tối ưu, độ bền, khả năng chống dao động của ô tô, tàu thủy, máy bay,... người ta phải tác động vào đối tượng nghiên cứu các lực đủ lớn đến mức có thể phá hủy đối tượng để từ đó đánh giá các chỉ tiêu kỹ thuật đã đề ra. Như vậy, giá thành nghiên cứu sẽ rất đắt. Bằng cách mô hình hóa trên máy tính ta dễ dàng xác định được kết cấu tối ưu của các thiết bị nói trên. - Nghiên cứu trên hệ thống thực đòi hỏi thời gian quá dài. Ví dụ: Nghiên cứu đánh giá độ tin cậy, đánh giá tuổi thọ trung bình của hệ thống kỹ thuật (thông thường tuổi thọ trung bình của hệ thống kỹ thuật khoảng 30  40 năm), hoặc nghiên cứu quá trình phát triển dân số trong khoảng thời gian 20  50 năm,. Nếu chờ đợi quãng thời gian dài như vậy mới có kết quả nghiên cứu thì không còn tính thời sự nữa. Bằng cách mô phỏng hệ thống và cho “hệ thống” vận hành tương đương với khoảng thời gian nghiên cứu người ta có thể đánh giá được các chỉ tiêu kỹ thuật cần thiết của hệ thống. - Nghiên cứu trên hệ thực ảnh hưởng đến sản xuất hoặc gây nguy hiểm cho người và thiết bị. Ví dụ: Nghiên cứu quá trình cháy trong lò hơi của nhà máy nhiệt điện, trong lò luyện clanhke của nhà máy xi măng. người ta phải thay đổi chế độ cấp nhiên liệu (than, dầu), tăng giảm sản lượng gió cấp, thay đổi áp suất trong lò,. Việc làm các thí nghiệm như vậy sẽ cản trở việc sản xuất bình thường, trong nhiều trường hợp có thể xảy ra cháy, nổ gây nguy hiểm cho người và thiết bị. Bằng cách mô phỏng hệ thống, người ta có thể cho hệ thống “vận hành” với các bộ thông số, các chế độ vận hành khác nhau để tìm ra lời giải tối ưu. -Trong một số trường hợp không cho phép làm thực nghiệm trên hệ thốngthực. Ví dụ: Nghiên cứu các hệ thống làm việc ở môi trường độc hại, nguy hiểm, dưới hầm sâu, dưới đáy biển, hoặc nghiên cứu trên cơ thể người,. Trong những trường hợp này dùng phương pháp mô phỏng là giải pháp duy nhất để nghiên cứu hệ thống. b) Phương pháp mô hình hóa cho phép đánh giá độ nhạy của hệ thống khi thay đổi tham số hoặc cấu trúc của hệ thống cũng như đánh giá phản ứng của hệ thống khi thay đổi tín hiệu điều khiển. Những số liệu này dùng để thiết kế hệ thống hoặc lựa chọn thông số tối ưu để vận hành hệ thống. 3 c) Phương pháp mô hình hóa cho phép nghiên cứu hệ thống ngay cả khi chưa có hệ thống thực Trong trường hợp này, khi chưa có hệ thống thực thì việc nghiên cứu trên mô hình là giải pháp duy nhất để đánh giá các chỉ tiêu kỹ thuật của hệ thống, lựa chọn cấu trúc và thông số tối ưu của hệ thống. đồng thời mô hình cũng được dùng để đào tạo và huấn luyện. Trong những trường hợp này dùng phương pháp mô phỏng mô hình hóa là giải pháp duy nhất để nghiên cứu hệ thống. 1.2.2. Phân loại mô hình hóa hệ thống Có thể căn cứ vào nhiều dấu hiệu khác nhau để phân loại mô hình. Hình 1.1 biểu diễn một cách phân loại mô hình điển hình. Theo cách này mô hình chia thành hai nhóm: mô hình vật lý và mô hình toán học hay còn gọi là mô hình trừu tượng. - Mô hình vật lý là mô hình được cấu tạo bởi các phần tử vật lý. Các thuộc tính của đối tượng phản ánh các định luật vật lý xảy ra trong mô hình. Nhóm mô hình vật lý được chia thành mô hình thu nhỏ và mô hình tương tự. Mô hình vật lý thu nhỏ có cấu tạo giống đối tượng thực nhưng có kích thước nhỏ hơn cho phù hợp với điều kiện của phòng thí nghiệm. Ví dụ, người ta chế tạo lò hơi của nhà máy nhiệt điện có kích thước nhỏ đặt trong phòng thí nghiệm để nghiên cứu các chế độ thủy văn của đập thủy điện. Ưu điểm của loại mô hình này là các quá trình vật lý xảy ra trong mô hình giống như trong đối tượng thực, có thể đo lường quan sát các đại lượng vật lý một cách trực quan với độ chính xác cao. Nhược điểm của mô hình vật lý thu nhỏ là giá thành đắt, vì vậy chỉ sử dụng khi thực sự cần thiết. - Mô hình vật lý tương tự được cấu tạo bằng các phần tử vật lý không giống với đối tượng thực nhưng các quá trình xảy ra trong mô hình tương đương với quá trình xảy ra trong đối tượng thực. Ví dụ, có thể nghiên cứu quá trình dao động của con lắc đơn bằng mô hình tương tự là mạch dao động R-L-C vì quá trình dao động điều hòa trong mạch R-L-C hoàn toàn tương tự quá trình dao động điều hòa của con lắc đơn, hoặc người ta có thể nghiên cứu đường dây tải điện bằng mô 4 hình tương tự là mạng bốn cực R-L-C. Ưu điểm của loại mô hình này là giá thành rẻ, cho phép chúng ta nghiên cứu một số đặc tính chủ yếu của đối tượng thực. - Mô hình toán học thuộc loại mô hình trừu tượng. Các thuộc tính được phản ánh bằng các biểu thức, phương trình toán học. Mô hình toán học được chia thành mô hình giải tích và mô hình số. Mô hình giải tích được xây dựng bởi các biểu thức giải tích. Ưu điểm của loại mô hình là cho ta kết quả rõ ràng, tổng quát. Nhược điểm của mô hình giải tích là thường phải chấp nhận một số giả thiết đơn giản hóa để có thể biểu diễn đối tượng thực bằng các biểu thức giải tích, vì vậy loại mô hình này chủ yếu được dùng cho các hệ tiền định và tuyến tính. - Mô hình số được xây dựng theo phương pháp số tức là bằng các chương trình chạy trên máy tính số. Ngày nay, nhờ sự phát triển của kỹ thuật máy tính và công nghệ thông tin, người ta đã xây dựng được các mô hình số có thể mô phỏng được quá trình hoạt động của đối tượng thực. Những mô hình loại này được gọi là mô hình mô phỏng. Ưu điểm của mô hình mô phỏng là có thể mô tả các yếu tố ngẫu nhiên và tính phi tuyến của đối tượng thực, do đó mô hình càng gần với đối tượng thực. Ngày này, mô hình mô phỏng được ứng dụng rất rộng rãi. Có thể căn cứ vào các đặc tính khác nhau để phân loại mô hình như: mô hình tĩnh và mô hình động, mô hình tiền định và mô hình ngẫu nhiên, mô hình tuyến tính và mô hình phi tuyến, mô hình có thông số tập trung, mô hình có thông số dải, mô hình liên tục, mô hình gián đoạn, . Mô hình phải đạt được hai tính chất cơ bản sau: Tính đồng nhất: mô hình phải đồng nhất với đối tượng mà nó phản ánh theo những tiêu chuẩn định trước. Tính thực dụng: Có khả năng sử dụng mô hình để nghiên cứu đối tượng. Rõ ràng, để tăng tính đồng nhất trong mô hình phải đưa vào nhiều yếu tố phản ánh đầy đủ các mặt của đối tượng. Nhưng như vậy nhiều khi mô hình trở nên quá phức tạp và cồng kềnh đến nỗi không thể dùng để tính toán được nghĩa là mất đi tính chất thực dụng của mô hình. Nếu quá chú trọng tính thực dụng, xây dựng mô hình quá đơn giản thì sai lệch giữa mô hình và đối tượng thực sẽ lớn, điều đó sẽ dẫn đến kết quả nghiên cứu không chính xác. Vì vậy, tùy thuộc vào mục đích nghiên cứu mà người ta lựa chọn tính đồng nhất và tính thực dụng của mô hình một cách thích hợp. 1.3. Phương pháp mô phỏng 1.3.1. Sơ đồ khối Các mô hình sơ đồ khối gồm hai đối tượng, các đường dây tín hiệu và các khối. Chức năng của đường dây tín hiệu là truyền dẫn tín hiệu, hoặc giá trị, từ điểm gốc ban đầu của nó (thường là một khối) tới điểm kết thúc (thường là một khối khác). Hướng của dòng tín hiệu được xác định bởi mũi tên trên đường tín 5 hiệu. Một hướng chỉ được xác định cho một đường tín hiệu, toàn bộ các tín hiệu truyền trên các nhánh khác phải theo hướng riêng. Mỗi khối là một thành phần xử lý để tác động tới tín hiệu và tham số đầu vào để tạo ra tín hiệu đầu ra. Bởi vì các khối chức năng có thể là phi tuyến cũng như tuyến tính nên tập hợp các khối chức năng riêng về thực tế là không giới hạn và hầu như không bao giờ có sự giống nhau giữa các nhà cung cấp về ngôn ngữ của khối chức năng. Tuynhiên, một sơ đồ ba khối cơ bản phải được thiết lập để các ngôn ngữ sơ đồ khối có điểm chung. Các khối này là nút cộng, khối khuếch đại và bộ tích phân. Một hệ thống kết hợp chặt chẽ ba khối đó được mô tả như Hình 1.2. Hình 1.2: Ví dụ về một hệ thống 3 khối 1.2.3. Bản chất của phương pháp mô phỏng Phương pháp mô phỏng có thể định nghĩa như sau: “Mô phỏng là quá trình xây dựng mô hình toán học của hệ thống thực và sau đó tiến hành tính toán thực nghiệm trên mô hình để mô tả, giải thích và dự đoán hành vi của hệ thống thực”. Theo định nghĩa này, có ba điểm cơ bản mà mô phỏng phải đạt được. Thứ nhất là phải có mô hình toán học tốt tức là mô hình có tính đồng nhất cao với hệ thực đòng thời mô hình được mô tả rõ ràng thuận tiện cho người sử dụng. Thứ hai là mô hình cần phải có khả năng làm thực nghiệm trên mô hình tức là có khả năng thực hiện các chương trình máy tính để xác định các thông tin về hệ thực. Cuối cùng là khả năng dự đoán hành vi của hệ thực tức là có thể mô tả sự phát triển của hệ thực theo thời gian. Phương pháp mô phỏng được đề xuất vào những năm 80 của thế kỷ 20, từ đó đến nay phương pháp mô phỏng đã được nghiên cứu, hoàn thiện, và ứng dụng thành công vào nhiều lĩnh vực khác nhau như lĩnh vực khoa học kỹ thuật, khoa học xã hội, kinh tế, y tế,... Sau đây trình bày một số lĩnh vực mà phương pháp mô phỏng đã được ứng dụng và phát huy được ưu thế của mình. - Phân tích và thiết kế hệ thống sản xuất, lập kế hoạch sản xuất. - Đánh giá phẩn cứng, phần mềm của hệ thống máy tính. - Quản lý và xác định chính sách sự trữ mua sắm vật tư của hệ thống kho vật tư, nguyên liệu. - Phân tích và đánh giá hệ thống phòng thủ quân sự, xác định chiến lược phòng 6 thủ, tấn công. - Phân tích và thiết kế hệ thống thông tin liên lạc, đánh giá khả năng làm việc của mạng thông tin. - Phân tích và thiết kế các hệ thống giao thông như đường sắt, đường bộ, hàng không, cảng biển. - Đánh giá, phân tích và thiết kế các cơ sở dịch vụ như bệnh viện, bưu điện, nhà hàng, siêu thị. - Phân tích hệ thống kinh tế, tài chính. Phương pháp mô phỏng được ứng dụng vào các giai đoạn khác nhau của việc nghiên cứu, thiết kế và vận hành các hệ thống như sau: + Phương pháp mô phỏng được ứng dụng vào giai đoạn nghiên cứu, khảo sát hệ thống trước khi tiến hành thiết kế nhằm xác định độ nhạy của hệ thống đối với sự thay đổi cấu trúc và tham số của hệ thống. + Phương pháp mô phỏng được ứng dụng vào giai đoạn thiết kế hệ thống để phân tích và tổng hợp các phương án thiết kế hệ thống, lựa chọn cấu trúc hệ thống thỏa mãn các chỉ tiêu cho trước. + Phương pháp mô phỏng được ứng dụng vào giai đoạn vận hành hệ thống để đánh giá khả năng hoạt động, giải bài toán vận hành tối ưu, chẩn đoán các trang thái đặc biệt của hệ thống. Quá trình mô hình hóa được tiến hành như sau: Gọi hệ thống được mô phỏng là S. Bước thứ nhất người ta mô hình hóa hệ thống S với các mối quan hệ nội tại của nó. Để thuận tiện trong việc mô hình hóa, người ta thường chia hệ S thành nhiều hệ con theo các tiêu chí nào đó S = S1, S2, S3, ... , Sn. Tiếp đến người ta mô tả toán học các hệ con cùng các quan hệ giữa chúng. Thông thường giữa các hệ con có mối quan hệ trao đổi năng lượng và trao đổi thông tin. Bước thứ hai người ta mô hình hóa môi trường xung quanh E, nơi hệ thống S làm việc, với các mối quan hệ tác động qua lại giữa S và E. Khi đã có mô hình của S và E, người ta tiến hành các thực nghiệm trên mô hình, tức là cho S và E làm việc ở một điều kiện xác định nào đó. Kết quả người ta thu đươc một bộ thông số của hệ thống, hay thường gọi là xác định được một điểm làm việc của hệ thống. Các thực nghiệm đó được lặp lại nhiều lần và kết quả mô phỏng được đánh giá theo xác suất thống kê. Kết quả mô phỏng càng chính xác nếu số lần thực nghiệm, còn gọi là bước mô phỏng càng lớn. về lý thuyết bước mô phỏng là hữu hạn nhưng phải đủ lớn và phụ thuộc vào yêu cầu của độ chính xác. Hình 1.3 trình bày quá trình nghiên cứu bằng phương pháp mô phỏng và quan hệ giữa hệ thống thực với kết quả mô phỏng. 7 Hình 1.3. Quá trình nghiên cứu bằng phương pháp mô phỏng Nhìn vào hình 1.3 ta thấy rằng để nghiên cứu hệ thống thực ta phải tiến hành mô hình hóa tức là xây dựng mô hình mô phỏng. Khi có mô hình mô phỏng sẽ tiến hành làm các thực nghiệm trên mô hình để thu được các kết quả mô phỏng. Thông thường kết quả mô phỏng có tính trừu tượng của toán học nên phải thông qua xử lý mới thu được các thông tin kết luận về hệ thống thực. Sau đó dùng các thông tin và kết luận trên để hiệu chỉnh hệ thực theo mục đích nghiên cứu đã đề ra. Các bước nghiên cứu mô phỏng Khi tiến hành nghiên cứu mô phỏng thông thường phải thực hiện qua 10 bước như được biểu diễn bởi lưu đồ như hình 1.4. Bước 1: Xây dựng mục tiêu mô phỏng và kế hoạch nghiên cứu. Điều quan trọng trước tiên là phải xác định rõ mục tiêu nghiên cứu mô phỏng. Mục tiêu đó được thể hiện bằng các chỉ tiêu đánh giá, bằng hệ thống các câu hỏi cần được trả lời. Bước 2: Thu thập dữ liệu và xác định mô hình nguyên lý. Tùy theo mục tiêu mô phỏng mà người ta thu thập các thông tin, các dữ liệu tuơng ứng của hệ thống S và môi trường E. Trên cơ sở đó xây dựng mô hình nguyên lý Mnl, mô hình nguyên lý phản ánh bản chất của hệ thống S. Bước 3: Hợp thức hóa mô hinh nguyên lý Mnl Hợp thức hóa mô hình nguyên lý là kiểm tra tính đúng đắn, hợp lý của mô hình. Mô hình nguyên lý phải phản ánh đúng bản chất của hệ thống S và môi trường E nhưng đồng thời cũng phải tiện dụng, không quá phức tạp cồng kềnh. Nếu mô hình nguyên lý Mnl không đạt phải thu thập thêm thông tin, dữ liệu để tiến hành xây dựng lại mô hình. Bước 4: Xây dựng mô hình mô phỏng Mmp trên máy tính. Mô hình mô phỏng Mmp là những chương trình chạy trên máy tính. Các chương trình này được viết bằng các ngôn ngữ thông dụng như FORTRAN, PASCAL, C ++, hoặc các ngôn ngữ chuyên dụng để mô phỏng như GPSS, SIMSCRIPT,... 8 Hình 1.4 Các bước nghiên cứu mô phỏng Bước 5: Chạy thử Sau khi cài đặt chương trình, người ta tiến hành chạy thử xem mô hình mô phỏng có phản ánh đúng các đặc tính của hệ thống S và môi trường E hay không. Ở giai đoạn này cũng tiến hành sửa chữa các lỗi về lập trình. Bước 6: Kiểm chứng mô hình Sau khi chạy thử người ta có thể kiểm chứng và đánh giá mô hình mô phỏng có đạt yêu cầu hay không, nếu không phải quay lại từ bước 2. Bước 7: Lập kế hoạch thử nghiệm Ở bước này người ta phải xác định số lần thử nghiệm, thời gian mô phỏng của từng bộ phận hoặc toàn bộ mô hình. Căn cứ vào kết quả mô phỏng (ở bước 9), người ta tiến hành hiệu chỉnh kế hoạch thử nghiệm để đạt được kết quả với độ chính xác theo yêu cầu. Bước 8: Thử nghiệm mô phỏng 9 Cho chương trình chạy thử nghiệm theo kế hoạch đã được lập ở bước 7. Đây là bước thực hiện việc mô phỏng, các kết quả lấy ra từ bước này. Bước 9: Xử lý kết quả Thử nghiệm mô phỏng thường cho nhiều dữ liệu có tính thống kê xác suất. vì vậy, để có kết quả cuối cùng với độ chính xác theo yêu cầu, cần phải thực hiện việc xử lý các kết quả trung gian. Bước xử lý kết quả đóng vai trò quan trọng trong quá trình mô phỏng. Bước 10: Sử dụng và lưu trữ kết quả. Sử dụng kết quả mô phỏng vào mục đích đã định và lưu giữ dưới dạng các tài liệu để có thể sử dụng nhiều lần. 1 Chương 2. PHƯƠNG PHÁP SỐ VÀ PHẦN MỀM MÔ PHỎNG 2.1. Phương pháp số giải phương trình vi phân thường Có một số phương pháp gải gần các phương trình vi phân, trong đó phương pháp RungeKutta 4 được sử dụng phổ biến nhất trong các bài toán kỹ thuật. 2.1.1. Giải phương trình vi phân tuyến tính cấp 1 bằng phương pháp RungeKutta 4 0 0 ' ( , ) [ , ] ( ) y f x y x a b y x y     (2.1) Thuật toán RungeKutta 4 tính từng bước như sau: Gọi bước b a h n   , các điểm tính toán xi = ai + ih, i = 0, , n, x0 = xa , xn = xb. Ta có: 1 1 2 3 4 1 ( 2 2 ) 6 i iy y k k k k      (2.2) Trong đó: 1 2 1 3 2 4 3 ( , ); 1 ( ; ); 2 2 1 ( ; ); 2 2 ( ; ). i i i i i i i i k hf x y h k hf x y k h k hf x y k k hf x h y k           Các số liệu vào gồm: a  cận dưới; b  cận trên; n  số điểm tính toán; x0, y0  sơ kiện bài toán (hay điều kiện đầu). 2.1.1. 1. Giải hệ n phương trình vi phân tuyến tính cấp 1 Hệ phương trình vi phân tuyến tính cấp 1 có dạng: ' 1 1 1 ' 1 1 ( ) ( , ( ), ... , ( )) ....... ( ) ( , ( ), ... , ( )) n n n y x g x y x y x y x g x y x y x       (2.3.) Hay viết ở dạng đơn giản hơn: 2 ' 1 1 1 ' 1 1 ( , , ... , ) ....... ( , , ... , ) n n n y g x y y y g x y y       (2.4) Trong đó: y1, , yn là các hàm số của biến số x; ' ' 1, ... , ny y là các đạo hàm của các hàm yi(x) với 1,i n . Để giải hệ này chúng tâ đưa về dạng chuẩn với điều kiện đầu: ' ( , ) [ , ] ( )a a y g x y x a b y Y     (2.5) Có nhiều phương pháp giải hệ phương trình này, trong đó phương pháp RungeKutta được sử dụng phổ biến hơn cả trong các bài toán kỹ thuật. Nghiệm của hệ phương trình vi phân (2.5) là một véc tơ Y1, , Yn bao gồm các trị số gần đúng y(x1), , y(xn) của nghiệm chính xác y tại n điểm x1 < x2 < < xn trong đoạn [a, b] . Điều kiện đầu x0 = a. Bước tính hi = xi+1  xi với i = 0, , n1 Ví dụ: giải hệ 2 phương trình vi phân cấp 1 ' ( , , ) ' ( , , ) y f x y z z g x y z    (2.6) Trong đó : y và z là các hàm của biến số x: y =y(x); z = z(x). Điều kiện đầu: y(0) = y0 ; z(0) = z0. Sử dụng phương pháp RungeKutta 4 để giải phương trình trên như sau: 1 2 1 1 3 2 2 4 3 3 ( , , ); 1 1 ( ; ; ); 2 2 2 1 1 ( ; ; ); 2 2 2 ( ; ; ); i i i i i i i i i i i i k hf x y z h k hf x y k z l h k hf x y k z l k hf x h y k z l              1 2 1 1 3 2 2 4 3 3 ( , , ); 1 1 ( ; ; ); 2 2 2 1 1 ( ; ; ); 2 2 2 ( ; ; ). i i i i i i i i i i i i l hg x y z h l hg x y k z l h l hg x y k z l l hg x h y k z l              1 1 2 3 4 1 ( 2 2 ) 6 i iy y k k k k      ; 1 1 2 3 4 1 ( 2 2 ) 6 i iz z l l l l      2.1.1.2. Giải phương trình vi phân tuyến tính bậc cao Một phương trình vi phân bậc cao có thể đưa về một hệ phương trình vi phân cấp 1. Phương trình vi phân bậc n sẽ tương ứng với hệ n phương trình vi phân bậc 1. Ví dụ 1: Giải phương trình vi phân cấp 2: " ' 0y y y   hoặc " ' ( , , ')y y y f x y y    (2.7) 3 Trong đó: y là hàm số của biến số x và y’ là đạo hàm bậc nhất của hàm y theo x Đặt: 1 2; ' ;y y y y  Khi đó ta có hệ 2 phương trình vi phân bậc 1: ' 1 2 ' 2 ; " ( , , ') y y y y f x y y      (2.8) Điều kiện đầu là: y(0) = y0 ; ' 0'(0)y y . Giải hệ phương trình (2.8) ta tìm được nghiệm của phương trình vi phân (2.7) là y(x) và đạo hàm bậc nhấy y’(x). Ví dụ 2 : Gải phương trình vi phân cấp 3 ''' '' ' 0y axy by cy    hoặc ''' '' ' ( , , ', ")y ay by cy f x y y y     (2.9) Trong đó: y, y’, y’’ là hàm của biến số x và các đạo hàm của nó Đặt: 1 2 3; ' ; "y y y y y y   Khi đó ta có hệ 3 phương trình vi phân cấp 1: ' 1 2 ' 2 3 ' 3 3 2 1 ;y y y y y axy by cy          (2.10) Các điều kiện đầy là: ' ' '0 0 0(0) ; '(0) ; "(0)y y y y y y   . Giải hệ phương trình vi phân cấp 1 (2.10) ta tìm được nghiệm của phương trình vi phân cấp 3 (2.9) Đối với các phương trình vi phân cấp cao hơn cũng được giải một cách tương tự. 2.1,1.3. Giải hệ phương trình vi phân bậc cao Để giải một hệ phương trình vi phân bậc cao, ta chuyển các phương trình bậc cao của hệ về một hệ phương trình vi phân cấp 1 tương ứng. Tập hợp lại ta có một hệ phương trình mới là hệ phương trình vi phân cấp 1. Giải hệ phương trình vi phân cấp 1 ta sẽ nhận được các nghiệm của hệ phương trình vi phân bậc cao. Ví dụ 1. Cho hệ 2 phương trình vi phân bậc 2 : " ' ' 0 " ' 0 y y z y z z z y          (2.11) Đặt : y= y1 ; y’ = y2 ; z = y3 ; z’ = y4 . Ta có : 4 ' 1 2 ' 2 2 4 1 ' 3 4 ' 4 4 3 1 ; " ; ; " y y y y y y y y y y z y y y                 (2.12) Điều kiện đầu : ' 1 0 2 0 ' 3 0 4 0 (0) ; (0) (0) ; (0) y y y y y z y z     . (2.13) Giải hệ phương trình (2.12) với điều kiện đầu (2.13) ta nhận được nghiệm của hệ phương trình vi phân cấp 2 (2.11). Ví dụ 2 : Cho hệ phương trình vi phân : " ' 2 ' y y z y z z y         (2.14) Các nghiệm cần tìm là : y, y’ và z theo biên số x. Đặt : y= y1 ; y’ = y2 ; z = y3 . Ta có : ' 1 2 ' 2 2 3 1 ' 3 3 1 ; 2 ; y y y y y y y y y            (2.15) Điều kiện đầu : y1(0) = y0 ; ' 2 0 3 0(0) ; (0)y y y z  . Giải hệ phương trình (2.15) với điều kiện đầu ta tìm được các nghiệm của hệ phương trình (2.14) là : y(x), y’(x) và z(x). 2.1.2. Giải phương trình vi phân bằng biến đổi Laplace 2.1.2.1. Phép biến đổi Laplace a. Định nghĩa : Cho f(t) là hàm xác định với mọi t  0, biến đổi Laplace của f(t) là:   0 ( ) ( ) ( ). stF s f t f t e dt    L (2.16) Trong đó: s: là biến phức (biến Laplace) s =  + j L : là toán tử biến đổi Laplace F(s): là ảnh của hàm f(t) qua phép biến đổi laplace Biến đổi Laplace tồn tại khi tích phân ở biểu thức ở biểu thức định nghĩa (2.1) hội tụ. b. Tính chất của phép biến đổi Laplace 5  Tính tuyến tính: Nếu hàm f1(t) có biến đổi Laplace là L{f1(t)} = F1(s) và hàm f2(t) có là L{f2(t)} = F2(s)   1 1 2 2 1 1 2 2 ( ) ( ) ( ) ( ) a f t a f t a F s a F s  L (2.17)  Ảnh của đạo hàm: Nếu hàm f(t) có biến đổi Laplace là L{f(t)} = F(s) thì: ( ) ( ) (0 ) df t sF s f dt        L (2.18) Trong đó f(o+) là điều kiện đầu. Nếu điều kiện đầu bằng 0 thì: ( ) ( ) df t sF s dt       L (2.19)  Ảnh của tích phân: Nếu hàm f(t) có biến đổi Laplace là L{f(t)} = F(s) thì: 0 ( ) ( ) t F s f d s           L (2.20)  Định lý chậm trễ Nếu f(t) được làm trễ một khoảng thời gian T, ta có f(t-T), khi đó:    ( ) . ( ) Ts Tsf t T e f t e .F(s)   L L (2.21)  Định lý giá trị cuối Nếu hàm f(t) có biến đổi Laplace là L{f(t)} = F(s) thì: 0 lim ( ) lim ( ) t s f t sF s    (2.22) c. Biến đổi Laplace của một số hàm cơ bản Khi khảo sát hệ thống tự động người ta thường đặt tín hiệu vào là các tín hiệu f(t-T) T t f(t) t 0 6 cơ bản Các tín hiệu cơ bản là: hàm nấc, hàm mũ, hàm sin  Hàm xung đơn vị (hàm dirac) Hàm xung đơn vị thường được sử dụng để mô tả nhiễu tác động vào hệ thống 0 0 ( ) 0 khi t t khi t       thỏa mãn ( ) 1t dt    Theo định nghĩa:   0 0 0 0 0 0 ( ) ( ). ( ). ( ). 1 st stt t e dt t e dt t e dt              L (2.23)  ( ) 1 t  L  Hàm nấc đơn vị Trong các hệ thống điều khiển ổn định hóa, tín hiệu vào có dạng hàm nấc đơn vị Theo định nghĩa phép biến đổi Laplace:   0 0 0 0 1 ( ) ( ). st st st e e eu t u t e dt e dt s s s s                    L (2.24)   1 u(t) s  L  Hàm dốc đơn vị Hàm dốc đơn vị thường sử dụng làm tín hiệu vào để khảo sát hệ thống điều (t) 0 t u(t) 1 0 t 7 khiển theo dõi Theo định nghĩa phép biến đổi Laplace:   2 2 0 0 0 . 1 ( ) ( ). . st st st st t e ef t f t e dt t e dt s s s                 L   2 1 f(t) s  L (2.25)  Hàm mũ 0 ( ) . ( ) 0 0 at at e khi tf t e u t khi t         (2.26) Theo định nghĩa phép biến đổi Laplace:   ( ) ( ) 0 0 0 1 ( ) . a s t at st a s t ef t e e dt e dt s a s a                    L   1 f(t) s a    L (2.27)  Hàm sin sin t 0 ( ) (sin ). ( ) 0 0 khi t f t t u t khi t        (2.28) Từ công thức Euler ta có: sin 2. j t j te e t j      f(t) 0 t 1 f(t) 1 0 t f(t) 1 0 t 1 8 Theo định nghĩa phép biến đổi ta có:   2 2 0 1 1 1 (sin ). ( ) . 2 2 j t j t ste et u t e dt j j s j s j s                     L   2 2 f(t) s      L (2.29) Bảng 2.1. Biến đổi Laplace của một số hàm thông dụng TT Hàm Hàm gốc (miền t) Hàm ảnh (miền s) 1 trễ lý tưởng 1a xung đơn vị 2 trễ mũ n với dịch chuyển tần số 2a mũ n (cho số nguyên n) 2a.2 bậc thang đơn vị 2b bậc thang đơn vị có trễ 2c dốc 2d mũ n với dịch chuyển tần số 2d.1 suy giảm hàm mũ 3 tiệm cận hàm mũ 4 sine 5 cosine 6 hàm sine suy giảm theo hàm mũ 7 hàm cosine suy giảm theo hàm mũ 8 logarith tự nhiên 9 2.1.2.2. Phép biến đổi Laplace ngược Biến đổi Laplace ngược của hàm ảnh F(s) là một hàm f(t) liên tục trên [0, +]  ( ) ( )L f t F s (2.30) Ký hiệu phép biến đổi Laplace ngược là  1( ) ( )f t L F s (2.31)   0 ( ) ( ) ( )stL f t f t e dt F s    (2.32) 2.1.2.3 Hàm truyền đạt Định nghĩa: Quan hệ giữa tín hiệu vào và tín hiệu ra của hệ thống tuyến tính bất biến lên tục đều có thể mô tả bởi phương trình vi phân hệ số hằng: 1 0 1 11 1 0 1 11 ( ) ( ) ( ) ... ( ) ( ) ( ) ( ) ... ( ) n n n nn n m m m mm m d y t d y t dy t a a a a c t dtdt dt d x t d x t dx t b b b b u t dtdt dt               (2.33) Trong đó các hệ số ai = (0 n) và bj= (0 m) là thông số của hệ thống (a0 0; b0  0); n là bậc của hệ thống. Hệ thống được gọi là hợp thức nếu n  m, hệ thống được gọi là không hợp thức nếu n < m. chỉ có các hệ thống mới tồn tại trong thực tế. Khảo sát hệ thống dựa vào phương trình vi phân (2.31 rất khó khăn, nhờ vào phép biến đổi Laplace ta khảo sat hệ thống một cách dễ dàng. Giả sử điều kiện đầu bằng 0, biến đổi Laplace hai vế phương trình (2.31) ta được: 1 0 1 1 1 0 1 1 ( ... ) ( ) ( ... ) ( ) n n n n m m m m a s a s a s a C s b s b s b s b R s               1 0 1 1 1 0 1 1 ...( ) ( ) ... m m m m n n n n b s b s b s bY s X s a s a s a s a               Hệ thống x(t) y(t) Tín hiệu vào Tín hiệu ra 10 1 0 1 11 1 0 1 11 ( ) ( ) ( ) ... ( ) ( ) ( ) ( ) ... ( ) n n n nn n m m m mm m d y t d y t dy t a a a a c t dtdt dt d x t d x t dx t b b b b u t dtdt dt               (2.34) 1 0 1 1 1 0 1 1 ( ... ) ( ) ( ... ) ( ) n n n n m m m m a s a s a s a Y s b s b s b s b R s               1 0 1 1 1 0 1 1 ...( ) ( ) ... m m m m n n n n b s b s b s bY s X s a s a s a s a               Đặt: 1 0 1 1 1 0 1 1 ...( ) ( ) ( ) ... m m m m n n n n b s b s b s bY s G s X s a s a s a s a               (2.35) G(s) là hàm truyền của hệ thống Định nghĩa: Hàm truyền của hệ thống là tỉ số giữa biến đổi Laplace của tín hiệu ra và biến đổi Laplace của tín hiệu vào khi điều kiện ban đầu bằng 0 Hàm truyền không phụ thuộc vào tín hiệu ra và tín hiệu vào mà chỉ phụ thuộc vào bậc và thông số của hệ thống. Do đó ta có thể dùng hàm truyền để mô tả hệ thống. 2.1.2.4 Ứng dụng giải phương trình vi phân bằng phép biến đổi Laplace Để giải phương trình hoặc hệ phương trình vi phân với hàm cần tìm là y(t) cùng với các điều kiện ban đầu: 1. Lấy biến đổi Laplace hai vế của phương trình đã cho thu được phương trình theo Y(s). 2. Giải phương trình tìm Y(s). 3. Lấy biến đổi Laplace ngược tìm y(t).       2 ( ) ( ) '( ) ( ) (0) "( ) ( ) (0) '(0) ..................................... L y t Y s L y t sY s y L y t s Y s sy y       1. Biến đổi Laplace phương trình vi phân 1 1 1 1 ... ... n n m m n n m m d y d y dy d x d x dx dt dtdt dt dt dt             ( ) ( )L y t Y s 11 ( ) (0) dy L sY s y dt        2 2 2 ( ) (0) (0) d y dy L s Y s sy dtdt         3 2 3 2 2 2 ( ) (0) (0) (0) d y dy d y L s Y s s y dtdt dt          . . . . .. .. . . . . . . . . . . . . . . . . . . . . .. . . . . . . .. ... .. 2 1 1 2 3 0 2 1 ( ) (0) (0) ..... . n n n n n n n n d y dy d y d y L s Y s s y s s s dtdt dt dt                 2. Một số ví dụ Ví dụ 1 : Giải phương trình vi phân y’(t)+2y(t)=1 với điều kiện đầu y(0) = 4. Giải    '( ) 2 ( ) 1 1 4 1 ( ) (0) 2 ( ) ( ) ( 2) L y t y t L s sY s y Y s Y s s s s          Phân tích thành tổng các phân thức tối giản : 1 7 ( ) 2 2( 2) Y s s s    Biến đổi Laplace ncjta được : 2 1 7 ( ) 2 2 ty t e  + 7/(2*exp(2*t)) + 1/2 Ví dụ 2 : Giải phương trình vi phân : "( ) 4 ( ) 9.y t y t t  với điều kiện đầu : y(0)=0 ; y’(0) = 7. Giải : 1-Biến đổi Laplace hai vế :    "( ) 4 ( ) 9 .L y t y t L t  2 2 9 [ ( ) (0) '(0)] 4 ( )s Y s sy y Y s s      2-Thay điều kiện đầu : 2 2 2 2 2 9 7 9 ( ) 7 4 ( ) ( ) ( 4) s s Y s Y s Y s s s s        3-Phân tích Y(s) thành phân thức tối giản : 2 2 9 / 4 19 / 4 ( ) 4 Y s s s    4-Biến đổi Laplace ngược ta nhận được : 9 19 ( ) sin 2 4 8 y t t t  Ví dụ 3: Giải phương trình vi phân "( ) 3 '( ) 2 ( ) 4 12. ty t y t y t t e    với điều kiện đầu: y(0)=6; y’(0)= -1 Giải: 1- Biến đổi Laplace hai vế: 12 2 2 4 12 ( ) (0) '(0) 3 ( ) 3 (0) 2 ( ) 1 s Y s sy y sY s y Y s ss         2- Thay điều kiện đầu: 2 2 2 4 12 ( ) 6 1 3 ( ) 3*6 2 ( ) 1 3 2 2 3 2 ( ) 1 1 2 s Y s s sY s Y s ss Y s s s s ss                  3- Biến đổi Laplace ngược ta được : 2( ) 3 2 2 3 2t t ty t t e e e     Ví dụ 4 : Giải hệ phương trình vi phân : '( ) 2 ( ) 3 ( ) 0 '( ) 2 ( ) ( ) 0 x t x t y t y t x t y t        với điều kiện đầu x(0)=8 ; y(0)=3 Giải :     '( ) 2 ( ) 3 ( ) 0 '( ) 2 ( ) ( ) 0 L x t x t y t L y t x t y t          ( ) (0) 2 ( ) 3 ( ) 0 ( ) (0) 2 ( ) ( ) 0 sX t x X s Y s sY s y X s Y s          Giải hệ phương trình trên ta được : 2 2 8 17 ( ) 3 4 3 22 ( ) 3 4 s X s s s s Y s s s            5 3 ( ) 1 4 5 2 ( ) 1 4 X s s s Y s s s             Biến đổi Laplace ngược : 4 4 ( ) 5 3 ( ) 5 2 t t t t x t e e y t e e         2.2. Ứng dụng Matlab để giải phương trình vi phân 2.2.1. Giải phương trình vi phân bằng lệnh dsolve Cú pháp : dsolve('eq1','eq2',...,'cond1','cond2',...,'v') (2.36) Trong đó: eq1, eq2, là các phương trình vi phân theo hàm thời gian t; cond1, cond2, là các điều kiện đầu của các phương trình vi phân. v  thay biến t bằng biến s. Ví dụ 1: Giải phương trình vi phân ( ) dx ax t dt   Lệnh: x = dsolve('Dx = -a*x') Kết qủa: x = C4*exp(t) - sin(t)/2 - cos(t)/2 Lưu ý:  Chữ D là ký hiệu cho phép lây vi phân theo biến số thời gian t 13  Biến số thời gian t là biến biến mặc nhận trong Matlab. Nếu muốn thay bằng biến khác ta phải khai báo ngay trong dòng lệnh Ví dụ 2: Giải phương trình 2 2 1 dy y dt        theo biến s Lệnh: y = dsolve('(Dy)^2 + y^2 = 1', 's') ans = 1 -1 cosh(C7 + s*i) cosh(C11 - s*i) Ví dụ 3: Giải phương trình vi phân theo điều kiện biên ( ) dy ay t dt  với điều kiện đầu y(0) = b. Lệnh: y = dsolve('Dy = a*y', 'y(0) = b') ans = b*exp(a*t) Giai phương trình 2 2d y a y dt   với điều kiện / 0a dy dt   Lệnh y = dsolve('D2y = -a^2*y', 'y(0) = 1', 'Dy(pi/a) = 0') ans = (1/exp(a*t*i))/2 + exp(a*t*i)/2 Ví dụ 3: Giải hệ phương trình dx y dt dy x dt       Lệnh: z = dsolve('Dx = y', 'Dy = -x') Kết quả: x =C20*cos(t) + C19*sin(t) y = C19*cos(t) - C20*sin(t) Lệnh dsolve cho kết quả nghiệm bằng chữ, là nghiệm chính xác. Qua đó thể hiện được mối quan hệ giữa các tham số, biến số với hàm số. Tuy nhiên, đối với các hàm phức tạp hoặc hệ gồm nhiều phương trình thì hệ nghiệm (hay công thức nghiệm) có thể rất phức tạp, khong có ý nghĩa phân tích trực tiếp. Trong những trường hợp này, sử dụng phương pháp số giải gần đúng phương trình vi phân trên máy tính sẽ có tính ưu việt hơn, tốc độ xử lý nhanh. 2.2.2. Giải phương trình vi phân thường bằng lệnh ode Để thuận tiện cho việc áp dụng phương pháp số để giải phương trình vi phân, trong Matlab đã xây dựng thành các mô đun (cac chương trình con). Mô đun ODE dùng để giải các phương trình vi phân toàn phần, sử dụng rất hiệu quả. Mô đun ODE được xây dựng thành nhiều phiên bản nhằm đáp ứng tốt hơn các 14 yêu cầu sử dụng tính toán, bao gồm : ode23, ode45, ode113, ode15s, ode23s, ode23t, ode23tb. Phạm vi ứng dụng của các phiên bản ODE được giới thiệu ở phụ lục 1 hoặc và trong phần trợ giúp của Matlab. Trong phạm vi tài liệu này chỉ giới thiệu một số ứng dụng của ode45, được sử dụng phổ biến nhất trong các bài toán kỹ thuật. Thuật toán trong ode45 là sử dụng phương pháp RungeKutta4 Cú pháp: dạng đơn giản nhất [T , Y] = ode45(‘odefun’, Tspan , Y0) (2.37) Trong đó : odefun  tên hàm định nghĩa thuật toán của ode45, do người sử dụng tự xây dựng theo bài toán cần giải. Tspan  khoảng thời gian khảo sat, [s] ; Y0  điều kiện đầu; options  khai báo các điều kiện và yêu cầu tính toán: dạng bài toán, sai số tính toán, các số liệu cần đưa ra, Các kết quả đưa ra thông qua các biến đầu ra (vế trái): T  vec tơ thời gian khảo sat, [s]; Y ma trận nghiệm, gồm các vec tơ giá trị của các biến trạng thái. Hàm định nghĩa thuật toan odefun là một chương trình con. Chương trình con này có thể ghi thành một file riêng hoặc ghép vào file của chương trình chính. Để minh họa cách sử dụng ode45 ta hãy xét một số ví dụ sau. Ví dụ 1: Giải hệ phương trình vi phân sau ' 1 2 3 1 ' 2 1 3 2 ' 3 1 2 3 (0) 0 (0) 1 0.51 (0) 1 y y y y y y y y y y y y            Để giải hệ phương trình trê, trước hết ta viết chương trình con để mô tả thuật toán như sau. function dy = Hamode(t,y) dy = zeros(3,1); % a column vector dy(1) = y(2) * y(3); dy(2) = -y(1) * y(3); dy(3) = -0.51 * y(1) * y(2); Tên hàm do ta tự đặt, ở đây là “Hamode”. Tên file của hàm là Hamode.m. Trong chương trình chính, ta sử dụng dòng lệnh sau để gọi chương trình con ra tính với thời giam khảo sat là 12 s và điều kiện đầu của các biến khảo sat y1, y2, y3 tại t = 0 là [ 0, 1, 1]: [T,Y] = ode45(‘Hamoe’, [0 12], [0 1 1]); Để trình bày kết quả bằng đồ thị, ta sử dụng dòng lệnh: plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.') 15 Kết quả thể hiện trên đồ thị Ví dụ 2 : Giải phương trình vi phân cấp 2 4 " 6 ' 5 0y y y   với điều kiện đầu y(0)=0 , y’(0) = 1. Có thể viết lại phương trình trên như sau : 4 ' 6 " 5 y y y    Đưa phương trình vi phân cấp 2 về hệ phương trình vi phân cấp 1 : Đặt y = y1 ; y’ = y2 ' 1 2 ' 2 1 2 4 6 " 5 y y y y y y          Viết lại điều kiện đầu : y1(0)= y(0)=0 , y2(0) = y’(0) = 1. Viết chương trình con như sau : function yout = Hamode2(t,y,y0) yout = [ y(2); (-4*y(2)- 6*y(1))/5]; Chương trình chính [T,Y] = ode45('Hamode2', [ 0 12], [0 1]); plot(T,Y(:,1),'b') ; plot(T,Y(:,2),'.r') grid on ; xlabel('t,s') ; ylabel('y, dy/dt') ; legend('y','dy/dt') y1 y2 y3 t, s 16 2.3. MatlabSimulink 2.3.1. Giới thiệu chung về MatlabSimulink Simulink là phần mềm mở rộng của MATLAB(1 Toolbox của Matlab). Simulink là thuật ngữ được ghép bởi hai từ Simulation và Link Simulink dùng để mô hình hóa, mô phỏng và phân tích một hệ thống động, dùng để thiết kế hệ thống điều khiển, thiết kế DSP, hệ thống thông tin và các ứng dụng mô phỏng khác. Simulink cho phép mô tả hệ thống tuyến tính,hệ phi tuyến, các mô hình trong miền thời gian liên tục, hay gián đoạn hoặc một hệ gồm cả liên tục và gián đoạn... Giao diện đồ họa của Simulink cho phép thể hiện hệ thống dưới dạng sơ đồ tín hiệu với các khối chức năng. 2.3.2. Khởi tạo Simulink Trên cửa sổ Comman Window cuar Matlab, ta viết câu lênh: >> simulink 17 Hình 2.1. Khởi động simulink Nhấn phím Enter sẽ xuất hiện cửa sổ Simulink như hình 2.1. Cách vẽ sơ đồ mô phỏng simulink Bước 1: Từ cửa sổ thư viện ta nhấp chuột vào File/New/Model hoặc nhấn Ctrl+ N. Bước 2: -Chọn thư viện thích hợp :Ta nhấp (Click) vào khối(icon). -Đặt con trỏ chuột lên khối, ấn và giữ phím trái chuột, kéo khối tới cửa sổ vẽ sơ đồ Untitled. Ví dụ lần lượt ta chọn modun Hàm sin, modun tich phân Integrate và modun hiện thị Scope để thực hiện một sơ đồ mô phỏng. Hình 2.2. Sơ đồ thư viện của Simulink 18 Bước 3: -Khi con trỏ chuột di chuyển tới nơi, nhả phím chuột đểđặt khối trong sơ đồ. Bước 4: -Thực hiện lắp ghép sơ đồ mô phỏng. Chạy chương trình mô phỏng trên ta nhận được đồ thị kết quả 19 2.3. Các khối chức năng trong phần mềm MatlabSimulink Tất cả các khối chức năng đều được xây dựng theo một mẫu giống nhau nhau. Mỗi khối có một hay nhiều đầu vào/ra (trừ trường hợp ngoại lệ: các ở trung tâm hình khối hĩnh chữ nhật có biểu tửợng (hàm truyền đạt, đồ thị đặc tính hay tên fíles...) thể hiện đặc điểm riêng của khối. Người sử dụng có thể tùy ý thay đồi tên của khối, tuy nhiên mỗi tên chỉ được dùng một lần duy nhất trong phạm vi cửa sổ của màn hình mô phỏng. Khi nháy kép phím chuột trái trực tiếp vào khối ta sẽ mở cửa số tham số Block Parameters (trừ các khối Scope, Slider Gain. Subsystem) và có the nhập thủ công các tham số đặc trưng của khối. Nen muốn định dạne lại khối ta click chuột phải vào khối -> format -> xoay khối, ẩn hoặc hiện tên khối, tạo bóng mờ, đảo chiều khối; hoặc thay đổi font chừ, màu nền hay màu của khối. Simulink phân biệt (không phụ thuộc vào thư viện con) hai loại thuộc khối chức năng: Khối ảo (Virtual) và khối thực 'not Virtual). Các khối thực đóng vai trò quyết định khi chạy mô phỏng mô hình Simulink. Việc thểm bớt một khối thực sẽ lảm thay đối đặc tính động học của hệ thống đang được mô hình Sim.ulink mô tả (ví dụ như khối tích phân Inlergrator hay hàm truyền đạt Trans/er Fcn cửa thư viện Contỉnuous, khối Sum hay khối Product'* của thư viện con Math). Ngược lại, khối ảo không có khả năng thay đổi đặc tính của hệ thống, chúng chỉ làm thay đổi diện mạo của mô hình Simulink (khối Mux, Demux hay enahle thuộc thư viện Signal Routing; và Ports & Subsystems). Sau đây là các khối chức năng có sẵn và hay sử dụng trong thư viện của Matlab Simulink: a. Thu viện Commomlỵ used blocks Thư viện này bao gồm các khối thường dùng trong việc xây dựng mô 20 hình, thiết lập thông số đầu vào và đầu ra, phục vụ mô phỏng. Khối Bus selecton: Ta có thề sử dụng khối Bus selector đẻ tái tạo lại các tín hiệu từ một Bus tín hiệu, đồng thời gom chúng lại thành các tín hiệu riêng rẽ ban đầu. Khối Constant: Khối Constanl tạo nên một hằng số (không phụ thuộc vào thời gian) thực hoặc phức. Hằng số có thể là scalar, vectơ hay ma trận, tùy theo cách khai báo tham số Constant Value và ô Intẻpret vectơ parameter as I-D có được chọn không. Nếu ô đó được chọn, ta có thể khai báo tham số Constant Vulue là vectơ hàng hay cột với kích cỡ [1 x n] hay [n x 1] dưới dạng ma trận. Nếu ô đó không được chọn, các vectơ hàng hay côt đó chỉ được sử dụng như vectơ với chiều dài n, tức là tín hiệu I -D. Khối Data Type Omversion Khối Demux: Khối Demux có tác dụng ngược lại với Mux: tách t ín hiệu được chập lại từ nhiều tín hiệu riêng rẽ trở lại thành tín hiệu riêng rẽ mới. Khối Demux làm việc theo chế độ vectơ (Bus selection mode = off) hay chế độ Bus (Bus selection mode = on). Khối Discrete-Time Integrator: Khối Discrete  Time Integrator (tích phân gián đoạn) về cở bản cũng như khối Inteụrator (tích phân liên tục). Bên cạnh chu kỳ trích mẫu ta còn phái chọn cho mỗi khối thuật toán tích phân (tích phân Euler tiến, tích phân Euler lùi hay tích phân hình thang). Sau khi đã chọn thuật toán tích phân. Biểu tửợng (Icon) của khối lại thay đổi tửởng ứng. Khối Gain: Khối Gain có tác dụng khuếch đại tín hiệu đầu vào (định dạng 1-D hay 2-D) bằng biếu thức khai báo tại ô Gain, biểu thức đó có thể chỉ là một số hay là một biến. Nếu là biến, biến đó phải tồn tại trong môi trường Matlab Workspace.Chỉ khi ấv Simulink mới có thể tính toán được Hình 2.3. Các khối của thư viện Commonly Used Blocks 21 với biến. Nhờ thay đôi uiá trị của tham số Multiplication ta có thể xác định: phép nhân của biến vào với Gain được thực hiện theo phưởng thức nhân ma trận hay nhân từng phân tử. Khối lntegrator: Khối Integrator lấv tích phân tín hiệu đầu vào của khối. Giá trị ban đầu được khai báo trực tiếp tại hộp thoại Block Parameter hoặc thông qua chọn giá trị internal tại ô ỉnitial condition source đê sau đó điền giá trị ban đầu lấy từ nguồn bên ngoài khối. Đầu ra của khối Integrator có thể được một tín hiệu bên ngoài lặp về (reset) một ííiá trị ban đầu. Tại ô External reset ta có thể chọn dạng tín hiệu reset (ví dụ: rising có nghĩa là sườn lên). Khi chọn External reset một trong các giá trị thì khối Inteurator sẽ tự động thêm một đầu vào dành cho tín hiệu reset. Nếu cần chặn biến độ tín hiệu ở đầu ra, ta kích hoạt ô Limit output và khai báo giá trị tối đa dòng (Upper hay Lower) saturation limit. Kích hoạt ô Show saturation port ta có thể lẩy được tín hiệu bão hoà tửởng ứng (1: tại đầu ra khi có bão hoà dưởng. 1: khi có bão hoà âm, 0: cho các giá trị lưng chừng giữa hai ngưỡng bão hoà). Nếu kích hoạt ô Show State port, trên biểu tửợng của khối sẽ xuất hiện thêm một đầu ra (State port ) cho phép trích tín hiệu trạng thái của khối Integrator. Biến trạng thái của khối thực chất đồng nhất về giá trị với biến đầu ra, tuy nhiên Simulink tính hai biến đó (biến ra và biển trạng thải) tại những thời điếm ít nhiều có khác nhau. Nếu mô hình Simulink có chứa các biến trạng thái rất chênh lệch nhau về kích cỡ giá trị thì khi đó nê khai báo tham số Absolute tolerance riêng rẽ thêm cho từng khối Integrator của mô hình. Khối Logical Operator: Khối Logical Operator thực hiện kết hợp các biến vào khối theo hàm logic đã chọn ở ô Operator. Biến ra sẽ nhận các giá trị 1 (TRUE  đúng) hay 0 (FALSE  sai). Nếu các biển có định dạng vectơ (tín hiệu 1-D) hay ma trận (tín hiệu 2-D), các phần tử của chúnu sẽ được kết hợp theo hàm Logic đã chọn, và ở đầu ra sẽ xuẩt hiện một vectơ hay ma trận. Khối Relational Operator: Khối Relational Operator thực hiện hiện kết hợp hai tín hiệu đầu vào thành một toán tử so sánh đã chọn tại ô Operator. Biến ra sẽ nhận các giá trị 1 (TRUE) hay 0 (PALSE). Khối Mux: Các khối Mux có tác dụng như một bộ chập kênh (multiplexer), có tín hiệu chập các tín hiệu 1-D riêng rẽ (tức là: các tín hiệu Scalar hay vectơ) thành một vectơ tín hiệu mới. Nếu như một trong số các tín hiệu riêng rẽ là 2-D (ma trận tín hiệu), khi ấy chỉ có thể tập hợp các tín hiệu riêng rẽ thành Bus tín hiệu. Tại ô number of inputs ta có thể khai háo tên, kích cỡ và số lượng tín hiệu vào. Kối In1 và Out1: Inport và Outport là các khối đầu vào và đầu ra của một mô hình mô phỏng. Tại hộp thoại Block Parameters ta có thể điền và o ô Port Number số thứ tự của khối, Simulink tự động đánh số các khối Inport và Outport một cách độc lập với nhau, bẳt đầu từ 1. Khi ta bổ sung thêm 22 khối thì khối mới sẽ nhận số thứ tự kế tiếp. Khi xoá một khối nào dó, các khối lại được tự động đánh số mới. Trong hộp thoại Block Parameters của Inport, ta còn có ô Port Width dùng để khai báo bề rộng của tín hiệu vào. Thông qua các ô Inport và Outport thuộc tầng trên cùng (không phải thuộc các hệ thống con), ta có thể cát vào hay lấy số liệu ra khỏi môi trường Workspace. Để làm điều đó ta phải kích hoạt ô Input và Output ở trang Workspace I/0 của hộp thoại Sirnuỉation Parameters và khai báo tên các biến cần lấy số liệu vào, hay tên của các biến mà ta sẽ gửi số liệu tới. Khối Product: Khối Product thực hiện phép nhân từng phần tứ hay phép nhân ma trận, cũng như phép chia giữa các tín hiệu (dạng 1 -D hay 2-D) của khối phụ thuộc vào oiá trị đặt của tham số Multiplication và Number of inputs. Khối Scope: Nhờ khối Scope ta có thế hiển thị các tín hiệu của qúa trình mô phỏng. Nếu mở cửa sổ Scope sẵn từ trước khi bắt đầu quá trình mô phởng, ta có thể theo dõi trực tiêp diễn biến tín hiệu. Khối Subsystem: Khối Subsystem được sử dụng để tạo hệ thống con trong khuôn khổ của một chương trình Simulink. Việc ghép với mô hình thuộc các tầng cấp trên được thực hiện nhờ khối Inport (cho tín hiệu vào) và Outport (cho tín hiệu ra), số lượng đầu vào/ra của khối Subsystem phụ thuộc vào số lượng khối Inport và Outport. Đầu vào/ra của khối được đặt theo tên mặc định của các khối Inport và Outport. Nếu chọn Format/Hide Port Labels trên menue của cửa sổ khối Subsystem, ta có thể ngăn chặn được cách đặt tên kể trên và chủ động đặt cho Inport và Outport các tên phù hợp hởn với ý nghĩa vật lý của chúng. Khối Sum: Đầu ra của khối Sum là tổng các tín hiệu đầu vào. Nếu các tín hiệu là scalar, tín hiệu tổng cũng là scalar. Nếu đầu vào có nhiều tín hiệu hỗn hợp, Sum tính tống của từng phần tử. Ví dụ nếu tín hiệu vào bao gồm ba tín hiệu: l, sin(x) và [4 4 5 ổ], tín hiệu ra sẽ GÓ dạng;: [5 + sin(x), Hình 2.4. Màn hình khối Scope 23 5 + sin(x), 6 + sin(x), 7 + sin(x)]. Nếu khối Sum chỉ có một đầu vào dạng vectơ, khi ấy các phân tử của vectơ sẽ được cộng thành scalar. Khối Switch: Khối Switch có tác đụng chuyển mạch, đưa tín hiệu từ đầu vào 1 hoặc 3 tới đầu ra. Tín hiệu điều khiển chuyến mạch được đưa tới vào đầu 2 (đầu vào ở' giữa). Ngưỡng giá trị điều khiển chuyển mạch được khai báo bằng tham số Threshold, khi tín hiệu điều khiển  Threshold đầu ra được nói vào đầu 1. Khi tín hiệu điều khiển  Threshtìld đầu ra được nối với đầu 3. b. Thư viện Continuous Khối Derivative: Phép tính đạo hàm tín hiệu đầu vào được thực hiện nhờ khối Derivative. Tín hiệu tìm được ở đầu ra có dạng u/t, với  là biến thiên của đại lượng cần tính kế từ bước tích phân liền trước đó. Giá trị ban đầu của biến ra là 0. Khối Integrator: Khối Inteyrator lấy tích phân tín hiệu đầu vào của khối. Giá trị ban đầu được khai báo trực tiếp tại hộp thoại Block Parameter hoặc thông qua chọn giá trị internal tại ô Initial condition source để sau đó điền giá trị ban đầu lấy từ nguồn bên ngoài khối. State-space: Khối State-Space là mô hình trạng thái của một hệ tuyến tính, được mô tả bởi hệ phượng trình sau: X = Ax + Bu Y= Cx + Du Bậc của hệ do kích cỡ của ma trận trạng thái A quyết định. Nếu Nx là biến số trạng thái, Nu là biến số vào và Ny là biến số ra, các tham số của hệ Hình 2.5. Các khối của thư viện Continuous 24 phải có kích cỡ như sau: A(Nx x Nx), BCNx x Nu), C(Ny x Ny) và D(Ny x Nu). Khai báo như vậy ta sẽ quyết định Nu là bề rộng của vectơ tin hiệu vào và Ny là bê rộng của vectơ tín hiệu ra. Transíer Function: Nhờ khối Transfer Fcn ta có thể mô hình hoá hàm truyền đạt của một hệ tuyến tính. Khối Transfer Fcn có đặc điểm hoàn toàn tương đương với lệnh tf(num.den) của Conirol System Toolbox. Tham số của khối là các hệ số của đa thức tử số (Sumerator) và mẫu số (Denomimitor), khai báo theo thứ tự mũ của s giảm dần. Bậc của mẫu số phải lớn hơn hoặc bằngì bậc của tử số. Tại ô Numerator ta cũng cỏ thể khai báo ma trận. Bề rộng của vectơ tín hiệu ra sẽ tùy thuộc vào số dòng của ma trận đã được khai. Các tín hiệu vào chỉ được chấp nhận lả Scalar. Khối Zero-Pole: Ngược lại với Transfer Fcn, khổi Zero-Pole sẽ tạo nên các tham số Zero, Poles và Gain một hàm truyền đạt dưới dạng hệ số hoá theo điểm không, điểm cực (m = số lượng điểm không, n = số lượng điểm cực). Sổ lượng điếm cực phải lớn hơn hoặc bàng sổ điểm khống. Các điểm không, điểm cực phức phải là liên hợp. Khối Zero -Pole tương đương với lệnh zpk(z, p, k) cứa Control System Tooìbox. Khối Transport Delay: Khối Transport Delav làm trễ tín hiệu vào khoảng thời gian > 0 khai báo tại ô Time Deỉay trước khi xuất tới đầu ra. Chỉ đến khi thời gian mô phỏng băt đầu vượt quá thời gian trễ (so với lúc bắt đầu mô phỏng), khối Transport Delay mới xuất giá trị khai tại Initial input tới đầu ra. c. Thư viện Discrete Thư viện Discrete phục vụ mô phỏng động học các hệ thống gián đoạn về thời gian. Các khối phục vụ xuất, nhập số liệu, các hàm mô tả được sử dụng bình thường trong hệ gỉán đoạn. Các khối này có thế tự động nhận thừa kế chu kỳ trích mẫu của các khối nối phía trước chúng. Tât cả các khối thuộc thư viện đều có một khâu trích mẫu ở đầu vào. 25 Khối Unit Delay: Khối Unit Delay có tác dụng trích mẫu tín hiệu vào và cất lưu giữ giá trị thu được trong một chu kỳ trích mẫu. Vì vậv, khối có đặc điểm như một phân tử cở bản của hệ gián đoạn. Khối có thể được sử dụng như một khâu quá độ từ tần số trích mẫu thấp sang tần số trích mẫu cao. Discrete - Time Integrator: Khối Discrete - Time Integrator (tích phân gián đoạn) về cở bản cũng như khối Integrator (tích phân liên tục). Bêncạnh chu kỳ trích mẫu ta còn phải chọn cho mỗi khối thuật toán tích phân(tích phân Euler tiến, tích phân Euler lùi haytích phân hình thang). Sau khiđã chọn thuật toán tích phân, biểu tửợng (Icon) của khối lại thay đổi tương ứng. Discreíe Fỉlter (seaSar): Khối Discrete Pilter là một khối lọc có hàm truvền đạt được Matlab quy định sẵn cỏ dạng như sau: 1 11 1 1 1 2 3 1 1 1 1 1 1 2 3 1 ...( ) ( ) ( ) ( ) ( ) ... m m n n b b z b z b zy z B z H z x z A z a a z a z a z                        Các hệ số của đa thức tử số và mẫu số được khai báo theo trình tự số mũ của z giảm dân. băt đầu từ hệ số của z0. Bằng khối Discrete Pilter ta có thể cài đặt một cách rât dê dàng các khâu lọc digital đã mô tả. Discreíe Transíer Function (scalar): Khối Discrete Transfer Function có đặc điểm giống như khối Discrete Filter nhưng hàm truyền đạt khác với Discrete Filter, nó mô tả hàm truvền đạt như sau: Hình 2.6. Các khối của thư viện Discrete 26 1 2 1 2 3 1 1 2 1 2 3 1 ...( ) ( ) ( ) ... m m m m n n n n b z b z b z bB z H z A z a z a z a z a                 Các hệ số của z giảm dần, bắt đầu từ m (tử số) và n (mẫu số). Nếu ta khai báo chiều dài của hai vectơ hệ số tử và mẫu số như nhau bằng cách bổ sung vào vectơ ngắnn hơn các hệ sổ với giá trị 0. Khi ấy khối Discrete Transfer Function sẽ hoạt động như khối Discrete Filter. Discrete Zero-poIe (scalar): Trong khối Discrete Zero-Pole, thay vì phải khai báo các hệ số, ta khai báo điềm cực - điểm không của hàm truvền đạt và một hệ số khuêch đại. Discrete State Space: Khối Discrete State Space mô tả một hệ thống gián đoạn bằng mô hình trạng thái. Khối có đặc điểm giống như khối St ate Space của các hệ liên tục. Zero-Order Hold: Khối Zero-Order Hold trích mẫu tín hiệu đầu vào và giữ giá trị thu được đến thời điểm trích mẫu tiêp theo. Nên sử dụng khối Zero-Order hold trong các hệ trích mẫu chưa có một trong các khối gián đoạn được miêu tả ở trên (tức là nhữrm khối có sẵn khâu giữ chậm bậc 0). Khi chọn bước tích phân cứng, có thể sử đụng khối zero-order Hold tại các vị trí chuyển từ tần sổ trích mẫu cao sang tàn sổ trích mẫu thấp. Memory: Khối Memory xuất ở đầu ra giá trị của đầu vào thuộc bước tích phân vừa qua. Nói cách khác khối Memory có đặc điêm của một khâu giữ chậm bậc 0, lưu giữ tín hiệu trong khoảng thời gian một bước tính. Khi mô phỏng với od15s và ode113 (cả hai đều là phường pháp tích phân đa bước) ta không nên sử dung khối Memory. d. Thư viện Discontinuouities Backlash: Khối Backlash mô phỏng lại đặc tính của một hệ thống có Hình 2.7. Các khối của thư viện Discontinuties 27 độ rơ. Độ rơ thường xuất hiện trong các kết cấu cơ khí có chứa hộp số, đó chính là độ rơ lắc giữa hai bánh răng ăn khớp nhau cua hộp số. Độ rơ lắc thường xuyên xuất hiện do gia công thiếu chính xác hay do hao mòn vật liệu. Tham số Deadhand width khai báo bề rộng của độ rơ (đôi xứng đầu ra). Khối Raíe Limỉter và Saturation: Khối Rate Limiter giới hạn đạo hàm bậc nhât của tín hiệu đầu vào tại các tham số Rissing slew rate (giới hạn khỉ tín hiệu vào tăng) và Falling slew rate (giới hạn khí tín hiệu vào giảm). Khối saturation giới hạn giá trị tối đa của tín hiệu vào về phía dương {Upper limit) và phía âm (Lower limit). Quantizer: Khối Quantizer chuyển tín hiệu ở đầu vào của khối manh tín hiệu có dạng bậc thang. Chiêu cao của bậc do tham số Ouantization interval quyết định. Tại thời điểm tích phân thứ I- tín hiệu ra y(i) được tính từ tham số Quantization interval q và tín hiệu vào u(i). Đồng thời sử dụng hàm làm tròn round của MatLab theo: ( ) ( ) . u i y i q round q        Dead Zone: Bằng khối Dead Zone ta có thể mô phỏng các đối Urcyno vói đặc điểm: Tín hiệu ra có ziá tri 0 trong một khoảng (khoáng liệt) nhất định của tín hiệu vào. Giớỉ hạn' dưới và trên khoảng liệt do các tham số Start of dead zone và End of dea Z0ne quyết định. Nếu tín hiệu vào có gía trị nawmg trong khoảng bị chăn bởi hai giá trị đó, tín hiệu ra sẽ nhận giá trị 0. Kh i tín hiệu vào u  End of dead zone, tín hiệu ra = = u  Start of dead zone. Khi tín hiệu vào u  End of dead zone, tín hiệu ra y = u  Èn of dead zone. Coulomb & Viscous Friction: Coulomb & Viscous Friction mò phỏng một hệ có ma sát dính và ma sát trượt. Các dạng ma sát này thường hay tồn tại trong các hệ thống cơ khí có chuyển động tịnh tiến hay chuyển động quay trong. Relay: Tuỷ theo tín hiệu vào (tín hiệu điều khiển), khối Relay có tác dụng chuyển đổi tín hiệu ra giữa hai giá trị Output when on và Out put when off. Relay sẽ đóng mạch (trạng thái ‘on’) nếu tín hiệu vào u  Switch on point,và tín hiệu ra y = Output when on. Relay giữ nguyên trạng thái nếu tín hiệu ra y = Output when off Giá trị Sìvitch on point luôn phải được chọn lớn hơn hoặc bằng giá trị Switch off point. Khi Switch on point > Switch off oint, khối Relay mô phỏng đường đặc tính Hysteresis. Khi Switch on point , khói Relay mô phỏng một công tắc chuyển mạch. Khối Hit Crossing: Khối Hit Crossing có tác dụng phát hiện thời điểm tín hiệu đầu vào đi qua giá trị khai tại Hit Crossing offset theo hướng khai tại Hit Crossing direction. Nếu ta chọn Show output port, tại thời điêm Crossing đầu ra sẽ nhận giá trị là 1, còn lại là 0. Nếu tại trang Advance của hộp thoại Simuỉation Parameters ta đặt Boolean logic signals = off. tín hiệu ra sẽ là double, ngoài ra là Boolean. 28 e. Thư viện Math Operations Thư viện con Math Operation có một số khối với chức năng ghép toán học với các tín hiệu khác nhau. Bên cạnh các khối đơn giản nhằm cộng hay nhân tín hiệu, trong Math còn có nhiều hàm toán khác như lượng giác, logic đã được chuẩn bị sẵn. Sau đây là một sổ khối cở bản của Math Operation: Khối Sum: Đầu ra của khối Sum là tong các tín hiệu đầu vào. Nếu các tín hiệu là scalar, tín hiệu tổn cũng là scalar. Nếu đầu vào có nhiều tín hiệu hồn hợp, Sum tính tổng của từng phần tử. Ví dụ nếu tín hiệu vào bao gồm ba tín hiệu: 1, sin(x) và [4 4 5 6], tín hiệu ra sẽ có dạng: [5+sin(x), 5+sin(x) 6+sin(x), 7+sín(x)]. Nếu khối Sum chỉ có một đầu vào dạng vectơ, khi ấy các phần tử của vectow sẽ được cộng thành scalar. Ví dụ ở đầu vào chỉ tồn tại vectow [4 4 5 6] thì ở đầu ra sẽ xuất hiện gia strij 19. Tại ô List of signs ta có thể khai báo cực tính và số lượng đầu vào bằng cách viết một chuỗi các dấu +, , Khối Product thực hiện phép nhân từng phần tử hay phép nhân ma trận, cũng như phép chia giữa các tín hiệu (dạng 1-D ha 2-D) của khối phụ thuộc vào giả trị đặt của tham số Multiplication và Numher of inputs. Hình 2.8. Các khối của thư viện Math Operations 29 Khối Dot Product tính tích scalar (vô hướng) của các vectơ đầu vào. Giá trị đầu ra của khối tương ứng với với lệnh Matlab y = sum(conj(u1). *u2). Math Functiora và Trigonometric Function Trong khối Math Function có một khối lượng khá lớn hàm toán đã được chuẩn bị sẵn tại ô Functions cho phép ta chọn lựa theo nhu cầu sử dụng. Tửởng tự, khối Trigonometric fimction có tất cả các hàm lượng giác quan trọng. Cả hai khối Math function và Triuonometric Punction đều có thể xử lý tín hiệu 2D. Gain, Slider Gain Khối Gain có tác dụng khuêch đại tín hiệu đầu vào (định dạnu 1 -D hay 2-D) băng biểu thức khai báo tại ô Gain. biểu thức đó có thể chỉ là một số hay là một biến. Nếu là biến, biến đó phải tôn tại trong môi trường Matlab Workspace, chỉ khi ây Simulink mới có thể tính toán được với biến. Nhờ thay đôi giá trị của tham số Multiplication ta có thể xác định: phép nhân của biến vào với Gain được thực hiện theo phương thức nhân ma trận hay nhân từng phần tử. Khối Slider Gain cho phép người sử dụng thay đôi hệ số khuếch đại scalar trong quá trình mô phỏng. Khi nháv kép chuột trái vào khối – cửa số Slider Gain hiện ra cho phép thay đổi hệ số khuếch đại trong khoảng low ... high. Algehraie Constraint: Khối Aluebraie Constraint cưỡng tín hiệu vào của khối về 0 và xuất ở đầu ra của khối giá trị của biến z (là giá trị ứng với khi đầu vào là 0). Tuy nhiên, biến ra phải có tác động ngược lại đầu vào thông qua một vòng hồi tiếp thích hợp. Tại ô dành cho tham số Initial guess ta có thể khai báo một giá trị khởi đầu cho thuật toán vòng quẩn đại số. Bằng cách lựa chọn khéo léo Initiall gưess ta có thế cải thiện độ chính xác, thậm chí là cách làm duy nhât trong một vài trườnu hợp gay cấn (critical case). f. Thư viện Ports <& Subsystems Hệ thống con (Subsysíem) tạo điều kiện cho người sử dụng phân loại, giảm số lượng các khối trong một cửa số. Có hai cách để tạo hệ thổng con: Hình 2.9. Màn hình khối Slider Gain 30 Cách 1: Dùng chuột đánh dấu tât cả các khối (thuộc mô hình hệ thông lớn) mà ta muốn gom lại với nhau. Cần chú ý là đánh dấu cả vào đường tín hiệu kèm theo. Saụ đó chọn Create Subsystem thuộc menn Edit. Các khổỉ* được đánh dấu sẽ được Simulink thay thể bằng một khối mới Subsystem. Cách 2: Dùng khối Subsystem có sẵn trong thư viện sau đó nháy chuột kép vào để mở tạo hệ thống con. Khối Subsvstem: Khối Subsystem được sử dụng để tạo hệ thống con trong khuôn khổ của một chương trình Simulink. Việc ghép với mô hình thuộc các tầng cấp trên được thực hiện nhờ khối Inport (cho tín hiệu vào) và Output (cho tín hiệu ra). Số đầu vào/ra của khối Subsystem phụ thuộc vào số lượng khối Inport và Outport. Đầu vào/ra của khối được đặt theo tên mặc định của các khối Inport và Outport. Nếu chọn Format/Hide Port Labels trên menu của cứa sổ khối Subsystem, ta có thể ngăn chặn được cách đặt tên kể trên và chủ động đặt cho Inport và Outport các tên phù hợp hơn với ý nghĩa vật lý của chúng Khối Inport và Outport: Inport và Ouport là các khối đầu vào và đầu ra của một mô hình mô phỏng. Tại hộp thoại Block Parameters ta có thể điền vào ô Por Number số thứ tự của khối. Simuuuk tự động đánh số các khối Inport và Outport một cách độc lập với nhau, bắt đầu từ 1. Khỉ ta bổ sung thêm khối thì khối mới sẽ nhận số thứ tự kế tiếp. Khi xoá một khối nào đó, các khối lại được tự động đánh số mới. Trong hộp thoại Block Parameters của Inport, ta còn có ô Port Wide dùng để khai báo bề rộng của tín hiệu vào. Thông qua các ô Inport và Outport thuộc tầngtrên cùng (không thuộc các hệ thống con), ta có thể cất vào hay lấy số liệu ra khói môi trườnu Workspace. Đê làm điều đó ta phải kích hoạt ô Iĩnput và Output ở trang Wor kspace I/O của hộp thoại Simulation Parameters và khai báo tên các biến cần lây số liệu vào, hay tên của các biến mà ta sẽ gửi số liệu tới. Khối Enable và Trigger: Hai phần tử Enable và Trigger nhằm mục đích tạo cho các hệ con Subsystem có khả năng khởi động có điều kiện. Trong một hệ con chỉ có thể sử dụng một khối Enable và Trigẹer. Khi được gán một trong hai khối đó, tại khối Subsystem sẽ xuất hiện thêm một đầu vào đặc biệt, nơi mà tín hiệu Enable (cho phép kích hoạt) hay Triger (xung kích hoạt) được đưa tớii. Các hệ con có khối Enable được gọi là hệ (đã được) cho phép. Hê con đó sẽ được kích hoạt tại những bước tích phân có phát ra tín hiệu Enable vói giá trị dương. Tham số States when enabling cho biết cần đặt giá trị ban đầu cho biến trạng thái như thể nào (xoá về không hay giữ nguyên giá trị cuối cùng) trước khi được kích hoạt. Tham số Show output port gán cho khối Enable thêm một đầu ra, tạo điêu kiện xử lý hay sử dụng tiêp tín hiệu Enable. Các hệ con có khối Tritiger gọi là hệ được kích hoạt bằng xung. Việc kích hoạt này diễn ra ở sườn dương (Trigger type: rising) hay sườn âm (Trigger type: falling), hay cả bai sưòn (eilhei) của xung kích hoạt. Nếu 31 Trigger type được chọn là function-call, ta có cơ hội chú động tạo xung kích hoạt nhờ một S-function do ta tự viết. Các khối Enabỉe và Trigger là các khối ảo có điêu kiện. g. Thư viện Sources Các khối chuẩn ở trong Sources bao gồm các nguồn phát tín hiệu, các khối cho phép nhập số liệu từ một file hay từ Matlab Workspace. Sau đây là một vài khối thường dùng trong thư viện này. Constant: Khối constant tạo nên một hằng số(không phụ thuộc vảo thời gian) thực hoặc phức. Hằng số có thể là scalar. vectơ hay ma trận; tùy theo cách khai báo tham số Constant Value vào ô Interpret vectơ pa rameter as l-D có được chọn khônụ. Nếu ô đó được chọn, ta có thể khai báo tham số Constant Value lả vectơ hàng hay cột với kích cờ [l x n] hay [n x 1] dưới dạng ma trận. Nếu ô đó không được chọn, các vectơ hàng hay cột đó chỉ được sử dụng như vectơ với chiêu dài n, tức là tín hiệu 1-D. Clock và Digital Clock: Đâv là bộ hai loại đồng hồ khác nhau mà Simulink đã thiêt kê sẵn nhăm phục vụ cho các quá trình cần thiêt phải theo dõi thời gian chạy và tính toán theo thời gian chạv của mô hình Simullink. From Workspace: Khối From Workspace có nhiệm vụ lấy dữ liệu từ Hình 2.10. Các khối của thư viện Sources 32 cửa số Matlab Workspace đê cung cấp cho mô hình Simulink. Các số liệu lấy vảo phải có dạng của biểu thức Matlab,khai báo tại dòng lệnh Data. Nếu số liệu lấy vào là scalar hay vectơ, khi ấy biểu thức ở Data phải là một ma trận với vectow thư nhất là vectow thời gian có giá trị tăng dần, gán cho vectow (hay ma trận) các giá trị tín hiệu lấy vào. From file: Bằng khối số liệu Prom tìlc ta có thể lây số liệu từ một Mat-file có sẵn. Mat-File có thể là kết qủa của một lần mô phỏng trước đó, đã được tạo ra và cất đi từ khối To file tạo nên (mảng hay ma trận) được khối From file đọc lại mà không cần qua xử lý. Signal Generrator và Pulse Generator: Bằng Signal Generator có thể tạo ra tín hiệu kích thích khác nhau (hình sin, hình răng cưa...), Pulse Generator tạo ra chuỗi xung hình chừ nhật. Biến độ và tân số có thể khai báo tùy ý. Đôi với Pulse Gcnerator ta còn có thể chọn tỷ lệ cho bề rộng xung (tính bằng % cho cả một chu kỳ) Repeating Sequence: Khối Repeatinụ Sequence cho phép ta tạo nên một tín hiệu tuần hoàn tùy ý. Tham số Time value phải là một vcetơ thời gian với các giá trị đơn điệu tăng. Vectơ biến ra Output value phải có kích cỡ (chiều dài) phù hợp với. chiều dài của tham số Time value. Giá trị lớn nhất của vectơ thời uian quyêt dịnh chu kỳ lặp ỉại (chu kỷ tuần hoàn) cua vectơ biến ra. Sine Wave: Khối Sine Wave dùng để tạo tín hiệu hình sin cho cả hai loại mô hình: Liên tục (tham số Sample time = 0) và gián đoạn (tham số Sample time = 1). Tín hiệu đầu ra y phụ thuộc vào ba tham số chọn: Aniplitude, Frequency và Phase trên cở sở quan hệ: *sin( * )y Amplitude Frequency time phase  Vì thứ nguyên của Phase là [rad], ta có thể khai háo <gía trị trực tiêp của phase là một hệ số nào đó nhân với . Hình 2.11. Các khối của thư viện Sinks 33 h. Thư viện Sinks Khối Scope: Nhờ khối Scope ta có thể hiến thị các tín hiệu của quá trình mô phỏng. Nếu mở cửa số Scope sẵn từ trước khi bất đầu quá trình mô phỏng, ta có thể theo dõi trực tiêp diễn biến tín hiệu. Khối XY Graph: XY Graph biểu diễn hai tín hiệu đầu vào scalar trên hệ trục tọa độ dưới dạng đồ họa (Figure) Matlab. Đầu vào thứ nhất (bên trên) tương ứng với trục x, đầu vào thứ hai tương ứng với trục y. Trong hộp thoại paramelers có thể đặt giới hạn cho các trục. Khối To Workspace: Khối Workspace gửi số liệu ở đầu vào của khối tới môi trường Matlab Workspace dưới dạng Array, Structure hay structure \vith lime và lấy chuỗi kí tự tại Variable ncune đế đặt cho tập số liệu được ghi. Khối To Fìle: Khối To file cất tập số liệu (mảng, Array hay ma trận) ở đầu vào của khối cùng với vectơ thời gian dưới dạng Mat-File. Số liệu do khối To File cất có thể được khối From Fìle đọc trực tiếp mà không cần xử lý gì. Để khối From Workspace đọc được mảng ta phải tiến hành chuyến vị (Transpose) chuyển vị cho mảng. Trong hộp thoại Block Parameters của khối To File ta có thể đặt tên cho Mat-File và Array. Các tham số Decimation và sample, time có tác dụng khai báo giống như khối To Workspace. i. Thư viện Signal Routing Hình 2.12. Các khối của thư viện Signal Routing 34 Khối Mux và Demux: Các khối Mux có tác dụng như một bộ chập kênh (multiplexer), có tín hiệu chập các tín hiệu l-D riêng rẽ (tức là: các tín hiệu Scalar hay vectơ) thành một vectơ tín hiệu mới. Nếu như một trong số các tín hiệu riêmg rẽ là 2-D (ma trận tín hiệu), khi ây chi có thể tập hợp các tín hiệu riêng rẽ thành Bus tín hiệu. Tại ỏ numher of inputs ta có thể khai báo tên, kích cỡ và số lượng tín liiệu vào. Khối Demux có tác dụnu nmrợc lại với Mux: lách tín hiệu được chập lại từ nhiêu tín hiệu riêniĩ rẽ trở lại thành tín hiệu ricnu rẽ mói. Khỏi Dcmux làm việc theo chế độ vectơ (Bus selection modc -- of0 hay che độ Bus (Bus selection mode = on). Mux và Demux luôn là khối ảo. Swtch, Manual Switch và Multỉport Switch: Khối Swvitch cỏ tác dụng chuyên mạch, đưa tín hiệu từ đầu vào l hoặc 3 tới đầu ra. Tín hiệu điêu khiển chuyên mạch được đưa tới đầu 2 (đầu vào ớ giữa). Nếu giá trị điều khiển chuyển mạch được khai báo bằng tham số Threshold, khi tín hiệu điều khiển > Threshold đầu ra được nối vào đầu 1. Khi tín hiệu điều khiên < Threshold, đầu ra được nôi vởi đầu 3. Đối với khối Manual Switch, việc lựa chọn đầu vào để nối với đầu ra ra được thực hiện bằng cách nháy kép chuột trái tại đầu vào cần nối. Khối Multiport Svvitch có đầu vào điều khiển nằmtrên cùng. Đầu vào được chọn phụ thuộc vào giá trị làm tròn của tín hiệu điều khiên. Bus Selector và Selector: Các tín hiệu do khối Mux chập lại. có thể được tách không chỉ bằng khối Demux. Ta có thể sử dụng khối Bus Selector đê tái tạo lại các tín hiệu từ một Bus tín hiệu, đồng thời gom chúng lại thành các tín hiệu riêng rẽ ban đầu. Khối Selector cho ta khả năng còn linh hoạt hơn Bus Selector: khả năng tách ra khỏi tín hiệu 1-D (vectơ) hay 2-D (ma trận) các phần tử riêng lẻ để rôi sau đó gom chúng lại thành một tín hiệu 1-D hay 2-D mới. k. Thu viện User-Defìned Functions Function: Bằng khối Fcn ta có thể khai báo một hàm của biến vào dưới dạng một biểu thức viết theo phong cách của ngôn ngữ lập trình C. Nếu viết u. đó là tín hiệu vảo scalar hay chi là phần tử đầu tiên của vectơ tín hiệu vào. Nếu viêt u(i) hay u[j], đó là phần tử thứ i của tín hiệu vào dạng vectơ (tín hiệu 1 -D). 35 Biểu thức toán được phép chứa số, các hàm toán, các toán tử số học, toán tử logic hay toán tử so sánh, các dâu ngoặc vuông,ngoặc đơn, các biến đã được định nụhĩa trong môi trường Matlab Workspace. Trình tự ưu tiên các phép tính tuân thủ theo đúng ngôn ngữ lập trình C. Các phép tính ma trận không được Fcn hỗ trợ. Matlab Function: Khối Matlab Function là một dạng mở rộng của khoisa Fcn. Tại ô Matlab Function ta có thể khai báo một biểu thức toán hay một hàm Matlab (viêt dưới dạng mfile) của một biến đầu vào. Điều cần chú ý là bề rộng của tín hiệu do Matlab xuất ra phải tương ứng với Output width cuar khối Matlab Fcn, Việc tính toán bằng khối Matlab Fcn tốn rất nhiều thời gian bởi vì mỗi bước Matlab lại phải phân tích cú pháp, chính vì thế nên không nên dùng Matlb Fcn nếu không cần thiết hoặc có thể thay được bằng các khối khác. SFunction : Khối S-Function tạo điêu kiện cho việc sử dụng hàm S (S-Function) hoặc viết dưới dạng Matlab Script (m-fỉe). hoặc dưới dạng ngôn ngữ C vào một số sơ đồ khối của Simuiink. Tên của S -tunction dược khai báo tại ô S-Function name. l. Thư viên Look-Up Table Hình 2.13. Các khối của thư viện UserDefined Functions 36 Look-Up Table và Look-Up Table (2-D): Khối Look-Up íabie tạo tínhiệu ra từ tín hiệu vào cở sở íhôníỉ tin cât tro nu một banu tra ( Vector of ịnpuí values X Veclor ofouỉput valiies). Nếu giá trị hiện tại của tín hiệu vào trùng với một giá trị thuộc Vector of input values, ụiá trị tửởnu ứnu" trong bánu thuộc Vector of output values sẽ được đira tới đầu ra. Nếu ui á trị vào nàm giữa hai giá trị thì Simuỉink sẽ thực hiện phép nội suy uiá trị tửởnu ínm. Ncu giá trị là lớn hởn hay bẻ hởn giá trị ở Vector of inpul values thì Simulink sẽ thực hiện việc ngoại Súy hai uỉá irị đầu liên và cuối cùn ụ. Khối Look-Up table (2-D) cho phép ta tạo nên một bủng tra hai chiều. Băng tham số Table ta khai báo một ma trận cất các ụiá trị đầu ra. Muổn tim được giá trị của đầu ra ta cần phải biêt Rovv đê tìm hànu và Co ỉ um dể tìm cột của ô giá trị trong ma trận. Tín hiệu đặt ở đầu vào phía trên được so với Rovv, còn tín hiệu đặt ở đầu vào phía dưói được so với Column . 1.3. TẠO MỚI MỘT KHỐI ĐỂ MÔ PHỎNG TRONG MATLAB SIMULINK Simulink gân như chỉ có thể sử dụng được nhờ chuột. Bằng cách nháy kép phím chuột trái vào một trong số các thư viện con thuộc cửa số của thư viện chính Library ta có thể thu được một cửa số mới có chứa các khối thuộc thư viện con đó. Hoặc cũng có thể thu được kết quả tương tự băng cách nháy kép chuột trái vào nhánh của thư viện con, nằm ở phần bên phải của cửa số truv cập Library Browser. Từ các khối chứa trong thư viện con ta có thể xây dựng được lưu đô tín hiệu mong muôn. Đê tạo định dạng (Format) và soạn thảo ta có các chức năn sau đây : Sao chép: Bằng cách gắp và thả Drag & Drop nhờ phím chuột ta có thể chép một khối từ thư viện con (cũng như một cửa số khác ngoài thư viện). Di chuvển: Ta có thể dễ dàng di chuyên một khối trong phạm vi cửa số đó nhờ phím trái chuột, giữ khối chọn và di chuột. Đánh dấu: Bằng cách nháy chuột trái vào khối ta cố thể đảnh dấu, lựa chọn từng khối, hoặc kéo chuột đê đánh dấu nhiều khối cùng một lúc Hình 2.14. Các khối của thư viện Look-Up Table 37 khi giữ phím trái. Xóa: có thể xóa các đường nối hay các khối đã được đánh dấu bằng cách giọi lệnh Menu Edit/cỉear hoặc chọn phím delete trên bàn phím. Tạo hệ thống con (Subsystem): Bằng cách đánh đấu nhiều khối có quan hệ chức năng, sau đó gom chúng lại thông qua Menu Edit/Create Subsvstem ta có thể tạo một hệ thống con mới. Nôi hai khối: Dùng phím trái chuột nháy vào đầu ra của một khối, sau đó di mũi tên của chuột (vẫn nhấn cliuột) tới đầu vào cần nối, sau đó thả tay hai khối sẽ được nối với nhau. Di chuyên đường nối: Để lưu đô tín hiệu thoáng vả dễ theo dõi, nhiêu khi phải di chuvền, bô trí lại vị trí đường nối. Khi nháv chọn bằng phím trái chuột ta có thể di chuyên tùy ý các điểm nối hoặc di chuyên song song từng đường. Tạo vectơ đường nôi: Để dễ phân biệt giữa đường nôi đơn vả đường nối tín hiệu dạng vectơ, ma trận hoặc mảng ta có thể chọn menu Format/Wỉde nonsealar lines để tăng bề dày của đường nối. Chỉ thị kích cỡ và dạng dữ liệu cua tín hiệu : Lệnh chọn qua menu Pormat/sitinal dimensions sẽ hiện thị kích cỡ của tín hiệu đi qua đường nối. Lệnh menu Format/Port data types chỉ thị thêm loại dữ liệu của tín hiệu qua đường nối. Định dạng( Format ) cho một khối: Sau khi nháy chuột phải vào một khối, cửa số định dạnd khối sẽ m' ra. Tại mục Format ta có thể lựa chọn kiểu và kích cõ chữ, cũng như vị trí khối, có thể lật và xoay khối. Hai mục Foreground Color và Background Color cho phép ta tự đặt chê độ màu bao quanh cũng như màu nền của khối. Định dạng cho đường nối : Sau khi nháy chuột phải vào một đường nối,cửa sổ định dạng đường (của cả đường dẫn tới đường nối) sẽ mở ra. Tại đây ta các lệnh cho phép cắt bỏ, chép (Copy) hoặc xóa đường nối. Hộp đối thoại (Dialog Box) về đặc tính của khối (Block Properties): Hoặc đi theo menu của cửa số mô phỏng Edit/Propcrties, hoặc chọn mục Properties của cừa số định dạng khối, ta sẽ thu được hộp thoại đối thoại, cho phép đặt một vài tham số tông quát về đặc tính của khối. Hộp đôi thoại về đặc tính của tín hiệu (Signal Properties): Có thể tới hộp thoại Signal Properties của một đường nối (của tín hiệu) hoặc bằng cách nháy chuột đánhdấu đường nổi trên cửa số mô phóng, sau đó đi theo menu Edit/ Signal Properties, hoặc chọn signal Properties từ cửa số định dạng đường.. 1.4. MÔ PHỎNG MỘT KHỐI TRONG MATLAB SIMULINK Sau khi đã hoàn thành các bước như lâv các phân tử, kết nổi giữa các phần tử, khai báo các thông số vào cho các phần tử ta băt đầu cho chạy mô 38 phỏng. Quá trình mô phỏng của Simuỉink được khởi động thông, qua menu Siimỉlation/Start. Trong khi mô phỏng có thể chọn Sinmlaíion/Pause đê tạm ngừng hay Sitmdation/Stop để ngừng hẳn quá trình mô phỏng. Thêm vào đó ta có thể điều khiểnn quá trình mô phỏng bằng các dòng lệnh viết tại cửa sổ lệnh (Command Window) của Matlab. Điều này đặc biệt có ý nghĩa khi ta muốn tự động hoá toàn bộ quá trình mô phỏng, không muốn khởi động, ngừng hay xử lý... bằng tay. Đó là lệnh set_param và sim. Lệnh set_param được gọi như sau: set_param (‘sys’, ‘SimulationStatus.’cmd’) Trong lệnh trên, mô hình mô phỏng có tên sys sẽ được khởi động khi cmd = start, hay khi dừng lại cmd=stop. Sau khoảng thời gian nghỉ pause, ta ra lệnh tiếp tục mô phỏng bằng continue. Nếu chọn cmd = update, mô hìnhsẽ được cập nhật mới. Có thể kiêm tra tình trạng mô hình mô phỏng của sys bằng lệnh: get_param (‘sys’, ‘SimulationStatus'). Bên cạnh tác dụng điều khiển quá trình mỏ phỏng, có thể sử dụng setparam lập các tham số của khối, các tham số mô phỏng. Lệnh sim được gọi như sau: [t.x.y] = sim(‘model’) Nếu muốn chuyến giao cả tham số mô phỏng, ta gọi: [t.x.y] = sim( ‘moder’, timespan.options.ut) Bằng lệnh trên ta chủ động được quá trình đặt tham số mô phỏng từ môi trường Matlab (mà thông thường phải thực hiện tại các trang Solver và Workspace I/0 của hộp thoại Simulation Parameters). Vế trái lệnh gồm các vectơ thời gian t, ma trận biến trạng thái X và ma trận biến ra y của mô hình. Các tham sổ cùa sim có ý nghĩa như sau: model là tên của mô hình Simulink, timespan viết dưới dạng [tStart tfìnal] định nụhĩa thời điêm bắt đầu và thời điêm dừng mô phỏng. Tham số ut cho phép đọc tập số liệu đã có vào trong khối Inport, có tác dụng tương tự như khi khai ô Input thuộc trang Workspace I/O của hộp thoại Simulation Parameters. Bằng options ta chuyenr giao cho mô hình các tham số mô phỏng quan trọng như thuật toán và bước tích phân, sai số, các điều kiện xuất số liệu .. Việc tạo cấu trúc tham số options (định dạng Structrure) được thực hiện bằng lệnh: options = simset (propertv.value....) Với lệnh trên, các tham số đã đặt trong hộp thoại Simulation parameters sẽ không bị thay đối mà chỉ bị vô hiệu hóa khi lệnh sim khởi động quá trình mô phỏng băng lệnh: struct = simset (‘moder) Ta sẽ thu được trọn vẹn bộ tham số options đã được khai báo nhờ kênh simset hay nhờ hộp thoại Simulation Parameters. 2.3.3. Ứng dụng simuink để giải phương trình vi phân 39 Ví dụ 1: Giải hệ phương trình vi phân cấp 1 ' 1 2 3 1 ' 2 1 3 2 ' 3 1 2 3 (0) 0 (0) 1 0.51 (0) 1 y y y y y y y y y y y y            Sơ đồ mô phỏng trong Simulink HE PHUONG TRINH VI PHAN CAp 1 Scope3 Product2 Product1 Product 1 s Integrator2 1 s Integrator1 1 s Integrator -1 Gain1 -0.5 Gain y 1 y 1 y 1 y 1 y 2 y 2 y 2 y 3 y 3 y 3 y 3 Kết quả mô phỏng Ví dụ 2a: Giải hương trình vi phân cấp 2 2 1y y y  & & 40 PHUONG TRINH VI PHAN CAp 2 y y(t) (dich chuyen) 1 u dy/dt (Van toc) ddy/dt2 (gia toc) 1 c 1 b Scope3 1 s Integrator1 1 s Integrator Add 1/2 1/a dy dyddy y Ví dụ 2b: Giải phương trình vi phân cấp 2 với hàm kich thích là hàm điều hòa 2 siny y y t  & & 41 PHUONG TRINH VI PHAN CAp 2 y y(t) (dich chuyen) dy/dt (Van toc) ddy/dt2 (gia toc) 1 c 1 b Sine Wave Scope3 1 s Integrator1 1 s Integrator Add 1/2 1/a dy dyddy y Ví dụ 3. Giải hệ phương trình vi phân cấp 2 1 2 2 1 2 1 2 3 10 2 3 2 20 2 y y y y y y y         & & & & 42 HE PTVP CAp 2 y3 2 u2 3 u1 2 d1 2 c2 1 c1 20 b2 10 b1 1 s Integrator33 1 s Integrator23 1 s Integrator1 1 s Integrator Add1 Add 1/2 1/a2 1/3 1/a1 dy 1 dy 1ddy 1 dy 2 dy 2ddy 2 y 2 y 2 y 2 y 1 y 1 Kết quả mô phỏng: Ví dụ 3: Mô phỏng dao động của hệ khối lươnglò xo . Phương trình vi phân dao động có dạng: my ky f & 43 Sơ đồ mô phỏng Simulink với m=2; k=3; f=sint : Sine Wave Scope 1 s Integrator1 1 s Integrator 3 Gain1 1/2 Gain Kết quả mô phỏng như đồ thị sau Sơ đồ mô phỏng Simulink với m=2; k=3; Hàm kích thích 0 0 1 0 khi t f khi t     44 Step Scope 1 s Integrator1 1 s Integrator 3 Gain1 1/2 Gain Kết quả: 1 Chương 3 MÔ PHỎNG CÁC HỆ THỐNG TRÊN Ô TÔ 3.1. Mô phỏng dao động ô tô ¼ 3.1.1. Mô hình vật lý Mô hình dao động ô tô ¼ được thể hiện trên hình 3.1. 3.1.2. Phương trình vi phân dao động Hệ phương trình vi phân dao động của ô tô ¼ được thành lập theo phương pháp D’Lambe: 1 1 1 1 1( ) ( )F c q z k q z   & & 2 2 1 2 2 1 2( ) ( )F c z z k z z   & & 1) Khi tính đến thế năng trong trường: 1 1 1 2 1 2 2 2 2 .m z F F m g m z F m g       & & 1 1 1 1 1 1 2 1 2 2 1 2 1 2 2 2 1 2 2 1 2 2 . [ ( ) ( )] [ ( ) ( )] [ ( ) ( )] m z k q z c q z k z z c z z m g m z k z z c z z m g                && & & & & & & (3.1) 2) Khi khảo sát dao động xung quanh vị trí cân bằng tĩnh 1 1 1 2 2 2 2 .m z F F m z F     & & Hình 3.1. Mô hình phẳng dao động ô tô 1/4 F1 F2 m1 m2 k1 c1 z1 q q k2 c2 z2 0 0 F2 2 1 1 1 1 1 1 2 1 2 2 1 2 2 2 2 1 2 2 1 2 . [ ( ) ( )] [ ( ) ( )] [ ( ) ( )] m z k q z c q z k z z c z z m z k z z c z z              && & & & & & & (2) 3. Hàm mấp mô mặt đường: 0 sin( )q q t 3.1.3.Mô hình mô phỏng dao động trong Matlab Simulink 1) Sơ đồ mô phỏng như hình 3.2 Dao ®éng « t« _Model_1/4 fi leData= Data_daodong_1p4.m fi leDoc = Model_daodong_1p4.doc fileName= Model_daodong_1p4.mdl (Dao ®éng xung quanh vÞ trÝ c©n b»ng tÜnh) k2*(dz1 - dz2)+c2*(z1-z2) c2(z1-z2) Sine Wave Scope4 Scope3 Scope2 1 s Integrator3 1 s Integrator2 1 s Integrator1 1 s Integrator c1 Gain5 k1 Gain4 c2 Gain3 k2 Gain2 1/m2 Gain1 1/m1 Gain du/dt Derivative z1 z1 dz1 dz1ddz2 ddz2 q dz2 z2 Hình 3.2. Sơ đồ mô phỏng dao động ô tô 1/4 2) Số liệu đầu vào : Các số liệu đầu vào được nhập từ file Matlab %=============================== % fileName= Data_model_1p4.m %=============================== clc; clear all; global q0 k1 k2 c1 c2 m1 m2 w m1= 100; % kg m2= 400; % kg k1= 1000; % Ns/m` k2= 1000; % Ns/m c1= 45000; % N/m c2= 35000; % N/m g= 9.81 ; % m/s^2 w = 3; % 1/s (tan so) q0= 0.2; % m (Bien do z10=(m1+m2)*g/c1; % Bien dang ban dau loxo z20=m2*g/c2; open A_Molel_daodong_1p4 3 sim('A_Molel_daodong_1p4') %========================================== % giai bang ODE x0= [0; 0; 0;0]; [t,Y]= ode45('f_model_1p4',[0 10],x0); z1 = Y(:,1); Vz1= Y(:,2); z2 = Y(:,3); Vz2= Y(:,4); figure(1), hold on plot(t,z1,'r') plot(t,Vz1,'r') plot(t,z2,'--k') plot(t,Vz2,'--k','linewidth',1.5) grid on legend('z1', 'Vz1', 'z2', 'Vz2') title('Dao dong 1/4') xlabel('t,s') 3) Kết quả mô phỏng 4 3.2. Mô phỏng dao động ô tô 1/2 3.2.1. Mô hình vật lý Mô hình dao động của ô tô theo phương thẳng đứng trong mặt phẳng đối xứng dọc (thường được gọi là mô hình dao động ½) được thể hiện trên hình 3.3. Mô hình này chỉ xét sự dao động của cơ hệ xung quanh vị trí cân bằng tĩnh. Các ký hiệu trên mô hình: M  khối lượng được treo (thân xe), kg ; Iy  mô men quán tính của khối lượng được đối với trục ngang y đi qua trọng tâm 0, kgm2; m  khối lượng không được treo, kg; FT  lực tác dụng của hệ thống treo lên thân xe, N; cT  độ cứng của hệ thống treo (nhíp), N/m; kT  hệ số cản giảm chấn của hệ thống treo, Ns/m; FL  lực tác dụng của bánh xe lên khối lượng không được treo, N; cL  độ cứng của lốp theo phương hướng kính, N/m; kL  hệ số cản giảm chấn của lốp theo phương hướng kính, Ns/m q  độ cao mấp mô mặt đường tại điểm tiếp xúc với bánh xe , m; Các chỉ số của các thông số: chỉ số 1 ký hiệu cho cầu trước, chỉ số 2 ký hiệu cho cầu sau. Lưu ý: Do chỉ xét dao động xung quanh vị trí cân bằng tĩnh nên trên mô hình 5 không thể hiện các lực trọng trường Mg, m1g và m2g. Chọn hệ tọa độ khảo sát:  Đối với khối lượng được treo: Khối lượng được treo M thực hiện chuyển động song phẳng, vừa chuyển động lên xuống theo trục z, vừa xoay quanh trục ngang y. Chọn hệ tọa độ x0z , gốc tọa độ đặt tại trọng tâm 0, z là dịch chuyển tương đối so với vị trí cân bằng tĩnh,   góc xoay thân xe quanh trục y đi qua trọng tâm. Tại thời điểm ban đầu t = 0 thì z (0)= 0; (0) = 0. Xét dao động góc  nhỏ, khi đó có thể giả thiết tọa độ x của các điểm là hàng số. Điểm A đặt trên cầu trước có tọa độ là xA = a = const, za = za(t),  = (t). Điểm B đặt trên cầu sau, có xB = b, zb = zb(t);  (t).  Đối với các khối lượng không được treo: chỉ thực hiện chuyển động lên xuống the phương thẳng đứng. Chọn gốc tọa độ tại trọng tâm của khối lượng không được treo khi cơ hệ ở vị trí cân bằng tĩnh: 1 ký hiệu cho cầu trước, 2 ký hiệu cho cầu sau. 3.2.2. Phương trình vi phân dao động của ô tô Dựa theo mô hình vật lý và sử dụng phương pháp D’lambe ta có thể thành lập được các phương trình vi phân dao động cho các khối lượng như sau:  Đối với khối lượng được treo (Thân xe): Hình 3.3. Mô hình dao động ô tô 1/2 z x y   FL1 FT1 m1 kL1 cL1 z1 q1 q1 kT1 cT1 x FT1 M, Iy  z 0 A B FT2 FT2 z2 m2 FL2 q2 q2 kL2 cL2 a b L kT2 cT2 za zb 6 1 2 1 2 T T y T T Mz F F J F a F b       & & (1)  Đối với khối lượng không được treo: 1 1 1 1 2 2 2 2 L T L T m z F F m z F F     & & (2) Như vậy hệ phương trình vi phân dao động của ô tô có dạng: 1 2 1 2 1 1 1 1 2 2 2 2 T T y T T L T L T Mz F F J F a F b m z F F m z F F              & & & & (3) 3. 2.3. Xác định các lực thành phần a. Các phương trình liên kết hình học và động hoc Xét dao động với góc xoay nhỏ, ta có thể tính gần đúng sin  . Quan hệ hình học và động học của điểm A và điểm B với trọng tâm được thể hiện qua các phương trình liên kết sau đây:  Quan hệ hình học: a b z z a z z b       (4)  Quan hệ vận tốc: a b z z a z z b       && & && & (5)  Quan hệ gia tốc: a b z z a z z b       && & && & (6) b. Lực đàn hồi của hệ thống treo cầu trước 1 1 1 1 1( ) ( )T T a T aF c z z k z z   & & (7) c. Lực đàn hồi của hệ thống treo cầu sau 2 2 2 2 2( ) ( )T T b T bF c z z k z z   & & (8) d. Lực đàn hồi của lốp trước 1 1 1 1 1 1 1( ) ( )L L LF c q z k q z   & & (9) e. Lực đàn hồi của lốp sau 2 2 2 2 2 2 2( ) ( )L L LF c q z k q z   & & (10) 3. 2.4. Phương trình mô tả biên dạng mặt đường Trong thực tế, ô tô có thể chuyển động trên các biên dạng mặt đường khác nhau, thường là các dạng mặt đường ngẫu nhiên. Để đơn giản hóa trong quá trình nghiên cứu các bài toán động lực học của ô tô, thường người ta giả thiết biên dạng mặt đường biến đổi theo các hàm định trị (hàm toán học xác định): hàm xung đơn vi, hàm bậc thang đơn vị, hàm bậc nửa sin, hàm điều hòa hình sin. Trong phạm vi tiểu luận này, chúng tôi chỉ khảo sát trường hợp biên dạng mặt 7 đường là hàm điều hòa hình sin (Hình 2). Biên dạng mặt đường có thể biểu diễn theo hàm thời gian:  Đối với cầu trước: 0 sin( )q q t (11)  Đối với cầu sau: 0( ) sin( ) L q t q t V   (12) Trong đó: 0 2 V S     tần số góc, rad/s; q0  biên độ mấp mô mặt đường , m; V  vận tốc chuyển động của ô tô, m/s; L  khoảng cách từ cầu trước đến cầu sau, m; S0  bước sóng biên dạng mặt đường, m . 3.2.5 Xây dựng mô hình mô phỏng dao động ô tô 1/2 bằng MatlabSimulink 3.2.5.1. Xây dựng mô hình tổng thể mô phỏng dao động ô tô 1/2 Phương trình vi phân dao động (3) có thể giải và mô phỏng kết quả bằng ngôn ngữ Simulink với sơ đồ khối tổng thể như hình 3. Mô hình được chia thành 4 mô đun: 1 Mô đun giải hệ phương trình vi phân dao động 2 Mô đun hiện thị các điều kiện khảo sat 3 Mô đun hiện thị các kết quả khảo sat bằng đồ thị 4 Mô đun tính toán chỉ tiêu đánh giá độ êm dịu chuyển động Hình 3.4. Biên dạng mặt đường hình sin t q 0 S0 q0 S T 8 Model dao ®éng « t« 1/2 Xe tai GAZ-66 VE DO THI Transport Delay In 1 In 2 Than xe Sine Wave In 1 O u t1 Lop truoc q 2 F L 2 Lop sau GIA TOC BINH PHUONG TRUNG BINH DIEU KIEN KHAO SAT In 1 F T 1 Cau truoc F L 2 F T 2 Cau sau FT1 FT2 FL1 FL2 q1 q1 q2 3.2.5.2. Sơ đồ các khối chức năng a. Khối model lốp trước. (Luc tac dong len Cau truoc) Model Lèp tr-íc 1 Out1 q1 Goto kL1 cL1 dz1 z1 du/dt 1 In1 q1 FL1 b. Khối model lốp sau 9 Model Lèp sau (Luc tac dong len Cau Sau) 1 FL2 kL2 cL2 dz2 z2 du/dt 1 q2 FL2 q2 c. Khối model cầu trước. Model CÇu tr-íc Luc tac dong cua banh xe len Cau truoc (Luc tac dong len Than xe) 1 FT1 1 s Integrator1 1 s Integrator dz1 Goto1 z1 Goto 1/m1 cT1 kT1 zA dzA 1 In1 ddz1 dz1 dz1z1 z1 FT1 FT1 FL1 d. Khối model Cầu sau (Luc tac dong len diem B Than xe)Luc tac dong cua banh xe len Cau sau Model CÇu sau 1 FT2 1 s Integrator1 1 s Integrator dz2 Goto1 z2 Goto 1/m2 cT2 kT2 zB dzB 1 FL2 FL2 FT2 FT2 z2 z2 dz2 dz2ddz1 f. Khối model thân xe 10 Mô hình toán: 1 2 1 2 T T y T T Mz F F J F a F b       & & Model Th©n xe CAC MO HINH LIEN KET Lien ket hinh hoc Lien ket van toc Lien ket gia toc 1 s Integrator3 1 s Integrator2 1 s Integrator1 1 s Integrator ddzB ddfi ddzA ddz dzB dzA zB zA dfi dz fi Goto1 z Goto b a b a b a b a 1/Iy 1/M ddz dfi dfi dz dz fi fi z ddfi ddfi ddz z 2 In2 1 In1 ddz dz z df iddf i f i FT1 FT1 FT1 FT2 FT2 FT2 zA zB dzA dzB ddzA ddzB g. Mô đun hiển thị các đồ thị kết quả mô phỏng Mô đun này cho hiện thị các đồ thị kết quả chính theo hàm thời gian: 1 Gia tốc 2( / )z m s& , vận tốc ( / )z m s& và dịch chuyển z (m) của trọng tâm thân xe ứng với điều kiện khảo sát đã cho. 2 Gia tốc xoay 2( / ),rad s& vận tốc xoay ( / )rad s& và góc xoay  (độ) của thân xe theo hàm thời gian ứng với điều kiện khảo sát đã cho. 3 Gia tốc dao động của các điểm trên thân xe: 2( / )z m s& của trọng tâm, 2( / )az m s& của điểm A (lắp ghế ngồi trong buồng lai) và 2( / )bz m s& của cầu sau ứng với điều kiện khảo sat đã cho. Các thông số trên là một trong các cơ sở để phân tích và đánh giá quá trình dao động của ô tô. 11 Khèi vÏ ®å thÞ Scope q1 ddzB ddzA q1 fi dfi ddzB ddfi q1 ddz ddzA ddz From Gia toc trong tam Gia toc diem A Gia toc diem B Song map mo ddz ddzA ddzB q1 ddf i df i f i q1 h. Mô đun tính toán chỉ tiêu đánh giá độ êm dịu chuyển động Độ êm dịu chuyển động được đánh giá theo chỉ tiêu gia tốc bình phương trung bình:  Đối với trọng tâm: 2 2_ 0 1 ( ) ( / ) T RMS Ta z t dt m s T  &  Đối với điểm A (buồng lái): 2 2_ 0 1 ( ) ( / ) T RMS A aa z t dt m s T  &  Đối với điểm B (cầu sau): 2 2_ 0 1 ( ) ( / ) T RMS B ba z t dt m s T  & Khối tính toán RMS gia tốc thể hiện trên simulink: Các kết quả thể hiện bằng số trên khối simulink sau; 12 TÝnh Gia tèc b×nh ph-¬ng trung b×nh RMS(m/s2) RMS- Trong tam RMS- Cau truoc RMS- Cau sau In1 Out1 RMS-Gia tocT In1 Out1 RMS-Gia tocB In1 Out1 RMS-Gia tocA ddzB ddzA ddz 3.932 Display3 2.284 Display1 2.941 Display i. Mô đun hiện thị điều kiện khảo sat §iÒu kiÖn kh¶o s¸t 0.05 10 3 0.9259 Display2 q0 s0 V0 f Dieu kien khao sat 3.2.5.3. Ví dụ mô phỏng a. Các thông số kỹ thuật của xe mô phỏng Xe mô phỏng là ô tô tải 2 cầu GAZ66 với các thông số kỹ thuật như Bảng 3.1 Bảng 3.1 Các thông số vào của mô hình dao động của ô tô GAZ-66 STT Tên gọi Ký hiệu Giá trị Đơn vị 1 Khối lượng xe khi đầy tải Ma 5970 kg 2 Khối lượng phân bố lên cầutrước M1 2930 kg 3 Khối lượng phân bố lên cầu sau M2 3040 kg 4 Khối lượng cầu trước mc1 340 kg 5 Khối lượng cầu sau m2 260 kg 6 Chiều dài cơ sở L 3,3 m 7 Khoảng cách từ trọng tâm tới tâm cầu trước a 1,73 m 8 Khoảng cách từ trọng tâm tới tâm cầu sau b 1,57 m 13 9 Bán kính quán tính khối lượng phần treo đối với trục ngang y khi xe đầy tải Y 1.45 m 10 Mô men quán tính khối lượng phần treo đối với trục ngang Jy 12060 kgm 2 11 Độ cứng của phần tử đàn hồi trước C1 100000 N/m 12 Độ cứng của phần tử đàn hồi sau C2 106000 N/m 13 Hệ số cản giảm chấn (nén/trả) Kn/Kt 2400/7800 N.sec/m 14 Độ cứng hướng kính của lốp trước CL1 430000 N/m 15 Độ cứng hướng kính của lốp sau CL2 430000 N/m 16 Độ võng tĩnh của treo trước khi dầy xe tải ft1 0.11 m 17 Độ võng tĩnh của treo sau khi xe đầy tải ft2 0.115 m b. Nhập các thông số đầu vào mô hình mô phỏng Để nhập các thông số đầu vào của mô hình mô phỏng ta co thể nhập trực tiếp trên mô hình Simulink hoặc nhập từ môi trường Matlab. Ở đây ta nhập từ môi trường Matlab. Code của chương trình Matlab được ghi trong Mfile với nội dung như sau: %====================================================================== % fleName = Model_Daodong_Oto_1p2_OK2b.mdl % fileData= Data_daodong_Oto_GAZ66.m (Xe tai GAZ66) % %====================================================================== clc clear all % SO LIEU DAU VAO: Xe tai GAZ66 %===================================================================== Xe=' Oto tai GAZ-66'; % CAU TRUOC m1 = 340 ; % khoi luomg cau truoc (kg) cL1= 430000 ; % he so cung Lop truoc (N/m) kL1= 0 ; % he so giam chan Lop truoc (Ns/m) cT1= 100000 ; % he so cung loxo cau truoc (N/m) kT1= 7800 ; % he so giam chan cau truoc (Ns/m) % CAU SAU m2 = 260 ; % khoi luongcau sau (kg) cL2= 430000; % he so cung Lop cau sau (N/m) kL2= 0 ; % he so giam chan cau sau (Ns/m) cT2= 106000; % he so cung loxo cau sau (N/m) kT2= 7800; % he so giam chan cau sau (Ns/m) % THAN XE Iy= 12060 ; % mo men quan tinh doi voi truc y (kgm^2) M = 5970 ; %[kg]= Khoi luong g = 0*9.81 ; % gia toc trong truong (m/s^2) a = 1.73; % khoang cach tu trong tam den cau truoc (m) b = 1.57; % khoang cach tu trong tam den cau sau (m) L = a + b; % chieu dai co so 14 %================================================================= % DIEU KIEN KHAO SAT %----------------------------------------------------------------- V0= 10 ; %km/h V= V0/3.6; % m/s q0= 0.05 ; % chieu cao map mo = bien do hinh sin (m) s0= 3 ; % Buoc song (m) w = 2*pi*V/s0; % tan so goc thay doi song mat duong (1/s) f= w/(2*pi); % Tan so dao dong tinh theo Hz %================================================================= % Chay Mo phong truc tiep tai day %open Model_daodong_Oto_GAZ_66_OK %sim('Model_daodong_Oto_GAZ_66_OK') open Model_Daodong_Oto_1p2_OK2b sim('Model_Daodong_Oto_1p2_OK2b') %================================================================ c. Kết quả mô phỏng dao động của ô tô tải GAZ66 với mô hình 1/2 15 16 17 TÀI LIỆU THAM KHẢO [1]. Vũ Đức Lập (1994), Dao động ô tô, Học viện kỹ thuật quân sự. [2]. Nguyễn Phùng Quang (2006), Matlab & Simulink, Nhà xuất bản Khoa học Kỹ thuật, Hà Nội [3]. Vũ Quang Thập (2014), Ứng dụng phần mềm Mtalab Simulink giải các bài toán động lực học trên ô tô, Nhà xuất bản khoa học và Kỹ thuật, Hà Nội [4]. Rajesh Rajamani (2006), Vehicle Dynamics and Control, Springer New York [5]. Rajesh Rajamani (2008), Vehicle Dynamics , Springer New York

Các file đính kèm theo tài liệu này:

  • pdf03200036_0239_1984520.pdf