Mình biết là trên thị trường dạng sản phẩm này đã có từ rất lâu rồi và có rất nhiều hãng với đủ mọi loại tính năng, mức giá khác nhau. Nhưng mình vẫn muốn tự phát triển vì có những tính năng mình muốn thì những sản phẩm trên không có hoặc quá đắt. Mình xin giải thích rõ hơn một chút về hoạt động của ECU của mình, và cái mình cần để mọi người hiểu rõ hơn:
ECU chỉ là bộ điều khiển việc cung cấp nhiên liệu thay thế cho bộ chế hòa khí trước đây. Bộ chế hòa khí chỉ có một thông số đầu vào chính để điều khiển là áp suất cổ hút. ECU có nhiều thông số đầu vào từ các cảm biến hơn nên có thể đưa ra những điều khiển phù hợp với nhiều tình huống khác nhau hơn so với bộ chế hòa khí. Với áp xuất nhiên liệu và lưu lượng đầu phun cố định thì lượng nhiên liệu cấp vào động cơ phần lớn phụ thuộc vào thời gian mở đầu phun, còn phần nhỏ là phụ thuộc vào điện áp cấp cho đầu phun và bản chất cơ khí của nó. ==> công việc chính phải điều khiển là xác định thời gian mở đầu phun. Vậy giá trị này phụ thuộc vào cái gì? Xin trả lời là nó phụ thuộc chủ yếu vào khối lượng khí mà động cơ hút được vào và giữ lại được trong xy lanh, và một số yếu tố nhỏ khác.
Chắc ở đây ai cũng hiểu là ở mỗi một loại động cơ khác nhau, ở vòng tua khác nhau thì lượng khí mà động cơ hút vào và giữ lại được trong xy lanh là khác nhau. Vậy ECU có thể đo được chính xác khối lượng không khí mà động cơ giữ lại trong xy lanh không? Câu trả lời là việc đó rất khó và cũng không quá cần thiết vì nhiên liệu vẫn cháy được trong một khoảng sai số khá lớn. Nhưng nó có thể đo tương đối chính xác ở mức đủ dùng bằng các phương pháp dự đoán. Nên mới sinh ra các map để ECU dự đoán thời gian mở đầu phun. Vậy map là gì? thực ra là map là một bảng các giá trị phụ thuộc vào một hay nhiều yếu tố đầu vào khác. Mình ví dụ trong ECU của mình có dùng map thời gian mở đầu phun phụ thuộc vào góc mở của bướm ga và tốc độ rpm của động cơ (mình dùng mô hình điều khiển alpha-n,trong đó alpha là góc mở bướm ga tính theo %, n là tốc độ rpm động cơ). Ví dụ (alpha1,n1)=(0%,1000) thì ô có hàng alpha1 và cột n1 trong map của mình là 2.2ms ; alpha2,n2)=(0%,2000) thì ô có hàng alpha2 và cột n2 trong map của mình là 2.6ms. Thì khi n thực tế của động cơ đo được =1500 thì mình sẽ nội suy tuyến tính ra được giá trị độ rộng xung phun cần thiết ứng với (0%,1500), giả sử bằng 2.4ms. Sau đó, mình nhân giá trị này với các hệ số hiệu chỉnh theo điều kiện bên ngoài (gồm có điều kiện nhiệt độ, độ ẩm, áp suất khí quyển, tốc độ mở ga nhanh hay chậm ...) để tăng thêm độ chính xác của dự đoán. Như vậy để động cơ hoạt động tốt thì các giá trị trong map chính và các map hiệu chỉnh phải phải phù hợp
==>Mình cần thử nghiệm trên động cơ thực tế để xác định ra giá trị này bằng phương pháp thử sai.
Tại sao mình lại lựa chọn phương pháp thử sai? Vì đó là cách đơn giản không cần dùng đến các loại thiết bị đo (thực ra là mình muốn nhưng không có), và con người chúng ta là một loại cảm biến tinh vi nhất biết được mình thực sự muốn gì. Nhược điểm của nó là sẽ tốn nhiều thời gian vì phải lặp đi lặp lại để xem khi thay đổi 1 thông số thì các yếu tố khác thay đổi như nào và người thực hiện cũng phải có những kiến thức và kinh nghiệm nhất định.
Một khi phần điều khiển phun nhiên liệu được giải quyết tốt, thì có thể phát triển thêm nhiều tính năng liên quan khác.