(có file Simulink (.mdl) đi kèm)
TĨM TẮT ĐỀ TÀI
Đề tài “Ứng dụng Matlab trong mơ phỏng điều khiển hệ thống nhiên liệu”
nhằm tạo ra một chương trình điều khiển phun nhiên liệu trên động cơ Wave 110cc Fi
bằng Matlab để phục vụ cho quá trình học tập và nghiên cứu hộp điều khiển sau này.
Trong đề tài này chúng ta đã tìm hiểu được:
- Nguyên lý hoạt động của các cảm biến.
- Ứng dụng Stateflow trong Simulink.
- Phương trình dịng khí nạp.
- Các chế độ phun ( lean or rich mixtures).
- Tính tốn bù nhiên liệu và độ trễ.
2
MỤC LỤC
3
DANH MỤC CÁC HÌNH ẢNH
4
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1.
Lý do chọn đề tài
Trong thời kỳ cạnh tranh công nghệ, các nhà sản suất ô tô không ngừng
nghiên cứu và cho ra các sản phẩm mới, kéo theo đó là sự phát triển mạnh mẽ của
các ứng dụng, phần mềm trong thiết kế và mô phỏng. Trước khi đưa một sản phẩm
ra thị trường, các sản phẩm mẫu sẽ phải trải qua các bài kiểm định trong thực tế
cũng như trong phịng thí nghiệm dựa trên sự tính tốn cùng sự hỗ trợ của các phần
mềm, qua đó giúp tiết kiệm thời gian, chi phí và hạn chế những rủ ro khi thực hiện.
Và để có được những sản phẩm mẫu với độ chính xác cao cần có những cơng cụ hỗ
trợ như ESP, AVL, Labview,…. Và Matlab - một phần mềm chuyên dụng cho các
kỹ sư, là một trong những phần mềm mô phỏng phổ biến giúp đáp ứng được yêu
cầu này. Bên cạnh đó sự ra đời của hộp điều khiển (ECU - Electronic Control Unit)
trên ơ tơ nói chung và xe máy nói riêng là bộ phận trung tâm điều khiển góc đánh
lửa sớm cũng như thời gian phun và thời điểm phun nhiên liệu, vì vậy nhóm chúng
em chọn đề tài “Ứng dụng Matlab trong mô phỏng hệ thống điều khiển nhiên
liệu” với mục đích hỗ trợ tính tốn và tinh chỉnh các thông sô trên nhằm đạt được
công suất tối ưu của động cơ.
1.2. Mục tiêu và nhiệm vụ của đề tài
1.2.1. Mục tiêu
Mục tiêu của đề tài này là tạo ra chương mình mơ phỏng bằng Matlab để
điều khiển hệ thống nhiên liệu trên động cơ xăng 1 xy-lanh.
1.2.2. Nhiệm vụ
Tìm hiểu nguyên lý hoạt động của các cảm biến, các thuật toán trong điều
khiển, các phương trình khí nạp, ứng dụng Stateslow. Sau đó viết chương trình mơ
phỏng và đánh giá mơ phỏng so với thực tế.
1.3. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu trong đề tài này là động cơ Wave RSX 110 Fi (động
cơ xăng 1 xylanh).
Phạm vi nghiên cứu: Thiết kế chương trình mơ phỏng điều khiển phun nhiên
liệu dựa trên các yêu cầu sau:
- Mô phỏng các cảm biến trên xe Wave RSX 110 Fi.
- Ứng dụng Control logic trong Stateflow.
- Hiển thị trong Dashboard.
- Các thông số đầu vào có thể thay đổi được.
5
1.4.
Phương pháp nghiên cứu
Để đề tài được hoàn thành chúng em đã kết hợp nhiều phương pháp nghiên
cứu, đặc biệt là phương pháp tham khảo tài liệu. Thu nhập tài liệu từ Internet, thư
viện. Học hỏi kinh nghiệm từ giảng viên hướng dẫn, từ đó có cơ sở và tìm ra những
ý tưởng mới để hoàn thành đề cương cho đề tài.
6
CHƯƠNG 2: TỔNG QUAN VỀ MATLAB VÀ SIMULINK
2.1.
Tổng quan về Matlab
MATLAB là một mơi trường tính tốn số và lập trình, được thiết kế bởi cơng
ty MathWorks. MATLAB cho phép tính tốn số với ma trận, vẽ đồ thị hàm số hay
biểu đồ thơng tin, thực hiện thuật tốn, tạo các giao diện người dùng và liên kết với
những chương trình máy tính viết trên nhiều ngơn ngữ lập trình khác. MATLAB
giúp đơn giản hóa việc giải quyết các bài tốn tính tốn kĩ thuật so với các ngơn ngữ
lập trình truyền thống như C, C++. MATLAB được sử dụng trong nhiều lĩnh vực,
bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường
kiểm tra, phân tích mơ hình tài chính, hay tính toán sinh học. Với hàng triệu kĩ sư
và nhà khoa học làm việc trong môi trường công nghiệp cũng như ở mơi trường hàn
lâm, MATLAB là ngơn ngữ của tính tốn khoa học.
Toolbox là một cơng cụ rất quan trong trong MATLAB nó là cơng cụ để
phân tích, thiết kế, mơ phỏng. Ta có thể tìm một số toolbox trong mơi trường làm
việc của nó như: Logic mờ, Simulink, mạng nơ-ron. Hệ thống MATLAB được chia
ra 5 hệ thống giao diện chính, bao gồm:
- Mơi trường phát triển
Đây là nơi chứa các công cụ, các phương tiện giúp ta sử dụng các lệnh và các
file, ta có thể liệt kê như sau:
• Desktop
• Command Window
• Command History
• Browser for viewing help
- Thư viện các hàm toán học
Bao gồm các hàm tính tốn từ đơn giản đến phức tạp, các phép tính như ma
trận, tuyến tính, ma trận nghịc đảo, trị riêng, chuyển đổi Furier, Laplace.
- Ngơn ngữ MATLAB
Đó là ngơn ngữ bậc cao về ma trận và mảng, các dòng lệnh các hàm cấu trúc
dữ liệu đầu vào có thể lập trình hướng đối tượng.
- Đồ hoạ trong MATLAB
Bao gồm các đồ hoạ 2D và 3D, cung cấp giao diện tương tác giữ người và
máy tính.
- Giao tiếp với các ngơn ngữ khác
MATLAB có thể cho phép tương tác với các ngôn ngữ khác như C, Fortran.
7
Chương trình MATLAB là một chương trình viết cho máy tính PC nhằm hỗ
trợ cho các tính tốn khoa học và kỹ thuật với các phần tử cơ bản là ma trận trên
máy tính cá nhân do cơng ty “ The MATHWORKS” viết ra.
Thuật ngữ MATLAB có được là do hai từ MATRIX và LABORATORY
ghép lại. Chương trình này hiện đang được sử dụng nhiều trong nghiên cứu các vấn
đề tính tốn của các bài tốn kỹ thuật như: Lý thuyết điều khiển tự động, kỹ thuật
thống kê xác suất, xử lý số các tín hiệu, phân tích dữ liệu, dự báo chuỗi quan sát,
v.v…
MATLAB được điều khiển bởi các tập lệnh, tác động qua bàn phím. Nó cũng
cho phép một khả năng lập trình với cú pháp thơng dịch lệnh – còn gọi là Script file.
Các lệnh hay bộ lệnh của MATLAB lên đến số hàng trăm và ngày càng được mở
rộng bởi các phần TOOLS BOX (thư viện trợ giúp) hay thông qua các hàm ứng
dụng được sử dụng từ người sử dụng. MATLAB có hơn 25 TOOLS BOX để trợ
giúp cho việc khảo sát những vấn đề có liên quan trên. TOOLS BOX SIMULINK là
phần mở rộng của MATLAB, sử dụng để mô phỏng các hệ thống động học một
cách nhanh chóng và tiện lợi.
Việc khởi động MATLAB trên mỗi hệ thống khác nhau. Trong môi trường
WINDOWS hay MACINTOSH, chương trình thường được khởi động thơng qua
việc nhắp chuột trên các icon hay còn gọi là biểu tượng. Cịn với mơi trường UNIX,
MS-DOS, việc khởi động thơng qua dòng lệnh: \MATLAB↲
Giao diện của MATLAB sử dụng hai cử sổ: cửa sổ lệnh (Command window)
và cửa sổ đồ thị (Figure window)
Hình 2.1: Giao diện cửa sổ lệnh của Matlab khi khởi động
8
Cửa sổ lệnh dùng để đưa lệnh và dữ liệu vào đồng thời in ra kết quả.
Cửa sổ đồ thị trợ giúp cho việc truy xuất đồ họa để thể hiện những lệnh hay
kết quả đầu ra dưới dạng đồ họa.
Hình 2.2: Giao diện cửa sổ đồ thị của Matlab
MATLAB được điều khiển bằng những câu lệnh được kết hợp theo một trật
tự nhất định và gọi đó là chương trình. Chương trình chứa nhiều câu lệnh và những
hàm chức năng để giải những bài toán lớn hơn.
Các câu lệnh trong MATLAB rất mạnh và có những vấn đề chỉ cần một câu
lệnh là đủ giải quyết bài tốn. Mơ phỏng trong MATLAB sẽ cho ta hình ảnh tọa độ
khơng gian hai chiều (2D) và ba chiều (3D).
2.2. Tổng quan về Matlab Simulink
2.2.1. Giới thiệu về Simulink
Simulink được coi là phần mở rộng của Matlab. Simulink được dùng để mô
phỏng các hệ động học, các hệ tuyến tính, phi tuyến, các mơ hình trong thời gian
liên tục hoặc gián đoạn. Đặc điểm nổi bật của Simulink lập trình ở dạng sơ đồ cấu
trúc, sử dụng các đối tượng đồ họa. Loại lập trình hướng đối tượng này có ưu điểm
là tính trực quan, dễ viết và hình dung nhất là đối với những người lập trình khơng
chun nghiệp. Simulink cung cấp giao diện đồ họa để xây dựng mơ hình ở dạng sơ
đồ khối. Bằng thao tác “nhấn và kéo chuột” người sử dụng có thể kéo các khối
chuẩn trong thư viện của Simulink ra vùng làm việc của mình để xây dựng mơ hình
mơ phỏng.
9
Hình 2.3: Giao diện làm việc của Simulink
Người sử dụng có thể thay đổi hoặc tạo ra khối riêng của mình và bổ sung
vào thư viện như là một khối ứng dụng mới. Simulink bao gồm các thư viện sau:
thư viện các khối nguồn tín hiệu (Sources), thư viện các khối xuất và hiển thị dữ
liệu (Sink), thư viện các khối tính tốn (Math Operations), thư viện Continuous và
nhiều thư viện khác, tùy theo yêu cầu sử dụng mà chọn các khối khác nhau.
10
Hình 2.4: Thư viện trong Simulink
Mơ hình trong Simulink được xây dựng theo kiểu phân cấp điều đó cho phép
người sử dụng có thể xây dựng mơ hình theo hướng từ dưới lên trên hoặc từ trên
xuống dưới. Dùng chức năng tạo “mặt nạ” (Mask) của Simulink người ta có thể xây
dựng các hệ con bằng cách tạo hộp thoại và biểu tượng mới cho khối. Ứng dụng
quan trọng của mặt nạ là tạo ra hộp thoại để tiếp nhận thơng số của các khối trong
hệ con, ngồi ra mặt nạ cịn làm cho mơ hình đơn giản, rõ ràng và bảo vệ nội dung
của khối khỏi sự xâm nhập của người lạ. Khi thực hiện mô phỏng bằng Simulink
người sử dụng có thể quan sát hệ thống ở mức tổng quan, vừa có thể xem xét chi
tiết hoạt động của từng khối bằng cách nháy đúp chuột vào khối đó. Các khối Scope
và khối hiển thị khác (lấy trong thư viện Sinks) cho phép người sử dụng quan sát
kết quả trong khi đang chạy mô phỏng. Hơn nữa người sử dụng cịn có thể trực tiếp
11
thay đổi thông số trong khi đang chạy mô phỏng để biết được ảnh hưởng của các
thơng số đó đối với kết quả của mơ phỏng.
Simulink có một đặc tính quan trọng là khi xây dựng mơ hình dạng sơ đồ
khối thì Simulink tự động tạo ra một M.file (function) cho mơ hình đó. Hàm này
được gọi là Sfunction. Cũng giống như các hàm khác của Matlab, hàm S-function là
một file mở, người sử dụng có thể truy nhập vào và soạn thảo. Lệnh để mở một Sfunction là sfun. Điều đó có nghĩa là có thể soạn thảo chương trình mơ phỏng mà
khơng cần thơng qua dao diện đồ thị. Mặt khác, Simulink cho phép chuyển đổi từ Sfunction sang sơ đồ khối và ngược lại. Như vậy rất thuận tiện cho người sử dụng.
Hiện nay Matlab Simulink được ứng dụng rộng rãi trong nhiều lĩnh vực nhất
là các lĩnh vực liên quan đến việc tính tốn các giá trị bằng các biểu thức tốn học
hay mơ phỏng một hệ thống nào đó thơng qua việc tính tốn các thơng số của
chúng. Trong ngành động cơ nói riêng thì Simulink được ứng dụng nhiều trong việc
mô phỏng các hệ thống động lực. Simulink có thể coi là một phần mềm đồ họa,
định hướng dùng sơ đồ khố i để mô phỏng các hệ thống động lực. Đây là sản phẩm
bên trong của Matlab và sử dụng nhiều hàm của Matlab và cũng có thể trao đổi qua
lại với mơi trường của Matlab để tăng thêm khả năng mềm dẻo của nó. Ngồi ra
Matlab Simulink cịn được sử dụng nhiều trong các lĩnh vực mô phỏng khác như
trong điện tử, trong cơ học, trong toán học… Hiện nay người ta bắt đầu nghiên cứu
để sử dụng Matlab trong tất cả các lĩnh vực có nhu cầu tính tốn, lấy kết quả, xử lý
kết quả, mô phỏng…
12
2.2.2. Giới thiệu một số khối cơ bản
2.2.2.1. Thư viện Sources
Đây là nhóm bao gồm các khối phát và nhận tín hiệu. Nó bao gồm các khối
như: Band Limited White Noise, Constant,Step, Clock,…
Hình 2.5: Các khối trong thư viện Sources
13
a. Step:
Phát ra dạng sóng có tính chất hàm bước:
Hình 2.6: Khối Step
Những thông số: thời gian chuyển đổi (steptime), giá trị đầu, giá trị cuối.
Thời gian chuyển đổi có thể âm và điều kiện đầu có thể lớn hơn giá trị cuối 1
đơn vị.
b. Constant:
Hình 2.7: Khối Constant
14
Phát ra giá trị hằng số thực hoặc phức. Hằng số đó có thể là vector hay ma
trận, tùy theo cách khai báo tham số Constant Value và ô Interpret vector parameter
as 1-D có được chọn khơng.
c. From Workspace:
Hình 2.8: Khối From Workspace
Đọc dữ liệu từ ma trận Matlab. Ma trận này phải chứa ít nhất hai cột, cột đầu
tiên phải là vector thời gian.
15
d. From File:
Hình 2.9: Khối From File
Đọc dữ liệu từ một file. Dữ liệu phải giống như một ma trận, mỗi cột phải có
giá trị của n ngõ vào tại thời điểm cho trước. Sau đó, hàng thứ nhất là một vector
thời gian.
16
2.2.2.2.
Thư viện Sinks
Hình 2.10: Các khối trong thư viện Sinks
a. Scope:
Hình 2.11: Khối Scope
Hiển thị dạng tín hiệu trong suốt thời gian mô phỏng (giống như
Oscilloscope)
Những thông số: Phạm vi trục ngang (thời gian) và trục dọc. Trục ngang có
thể cuộn ở mỗi phạm vi.
17
b. To File:
Hình 2.12: Khối To File
Dữ liệu xuất ra ở đây là một ma trận, hàng đầu tiên là một vector thời gian,
những cột khác là biến ngõ ra.
18
c. To Workspace:
Hình 2.13: Khối To Workspace
Đầu ra là một ma trận với mỗi một cột ma trận đại diện cho mỗi giá trị dữ
liệu khác nhau được truyền đến Matlab cho đến khi kết thúc mô phỏng. Nếu sự mô
phỏng cần số bước lớn hơn giá trị maximum một đơn vị thì khối này chỉ lưu giá trị
n cuối cùng, với n là giá trị lấy mẫu maximum đã quy định.
19
d. XY Graph
Hình 2.14: Khối XY Graph
Dữ liệu xuất ra có dạng đồ thị và hai tín hiệu sẽ được vẽ trên cửa sổ đồ họa
của Matlab.
20
2.2.2.3. Thư viện Math
Đây là nhóm tuyến tính trong miền thời gian và Laplace.
Hình 2.15: Các khối trong thư viện Math Operations
a. Sum:
Hình 2.16: Khối Sum
Ngõ ra tổng (hiệu) các ngõ vào. Số dấu sẽ cho biết số ngõ vào của khối.
21
b. Gain:
Hình 2.17: Khối Gain
Khối Gain có tác dụng khuyếch đại tín hiệu đầu vào bằng biểu thức khai báo
tại ô Gain, biểu thức đó có thể chỉ là một số hay 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
tố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 mà
trận hay nhân từng phần tử.
22
c. Product:
Hình 2.18: Khối Product
Khối Product thực hiện phép nhân từng phần tử hay phép nhân mà 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 giá trị
đặt của tham số.
23
d. Minmax:
Hình 2.19: Khối Minmax
Khối này dùng để tách giá trị lớn nhất, nhỏ nhất của giá trị đầu vào.
e. Khối Divide:
Hình 2.20: Khối Divide
Khối Divide thực hiện phép chia từng phần tử hay phép chia mà trận.
24
2.2.2.4.
Thư viện Ports và Subsystem
Hình 2.21: Các khối trong thư viện Ports và Subsystem
a. Subsystem:
Hình 2.22: Khối Subsystem
Khối subsystem được sử dụng để tạo hệ thống con trong khuôn khổ của một
mơ hình Simulink. Việc ghép với mơ hình thuộc các tầng ghép trên được thực hiện
nhờ khối Inport và Outport. Số lượng đầu vào và ra của khối subsystem phụ thuộc
số lượng khối Inport và Outport.
b. Khối Inpot và Output:
Hình 2.23: Khối Inpot và Output
25