Công Nghệ Làm đồ án về ECU

Hạng B2
12/11/05
211
19
18
ECU có mảng số liệu (array) được cập nhật realtime từ các cảm biến, và trạng thái điều khiển của các thiết bị chấp hành, điều khiển tiếp ntn tùy thuộc vào các số liệu của hiện trạng hệ thống.
Thời điểm đánh lửa tùy vào nhiều tín hiệu lắm, vd vận tốc quay cao thì đánh lửa sớm, oxy thừa nhiều thì cũng phải điều chỉnh lượng nhiên liệu phun vào.

xác định cụ thể loại động cơ, thì có thể điều khiển mù theo bảng số liệu như bạn nói, nhưng cái bảng sẽ rất lớn, nhiều cases, do thực nghiệm mà có.

Trần Bá Trung nói:
Em cảm ơn anh nhiều, ví dụ như nếu thu được tín hiệu từ cảm biến về rồi, thì ECU sẽ dựa vào giá trị điện áp để tra bảng và thực hiện phun xăng đánh lửa, đầu tiên là tín hiệu cảm biến tốc độ và Map tra bảng lấy ra giá trị, rồi mới tới hiệu chỉnh các tín hiệu khác. Em đọc tài liệu nhiều mà chưa thấy cái em đang cần.
 
fd
Tập Lái
25/9/11
6
0
0
newdayvn nói:
ECU có mảng số liệu (array) được cập nhật realtime từ các cảm biến, và trạng thái điều khiển của các thiết bị chấp hành, điều khiển tiếp ntn tùy thuộc vào các số liệu của hiện trạng hệ thống.
Thời điểm đánh lửa tùy vào nhiều tín hiệu lắm, vd vận tốc quay cao thì đánh lửa sớm, oxy thừa nhiều thì cũng phải điều chỉnh lượng nhiên liệu phun vào.

xác định cụ thể loại động cơ, thì có thể điều khiển mù theo bảng số liệu như bạn nói, nhưng cái bảng sẽ rất lớn, nhiều cases, do thực nghiệm mà có.
Vậy bác thấy bảng phun xăng và đánh lửa của ECU chưa?
 
Hạng B2
24/2/09
239
33
0
Trần Bá Trung nói:
Em là sinh viên năm 4 SPKT tp HCM. em được nhần đồ án về việc thiết kế và lập trình ECU, thu thập tín hiệu từ các cảm biến (đã làm được), viết ECU điều khiển phun xăng đánh lửa, em đang cần bản đồ đánh lửa và phun xăng, mò cả tháng mà không biết được bao nhiêu, mong các anh trên OS giúp em có thêm thông tin và tài liệu, em sử dụng ngôn ngử lập trình LabVIEW,
Mô hình Bugi và kim phun ( đã xong).
Quan trọng nhất là giờ lập trình cho phun xăng và đánh lửa. Mong các anh giúp em, Em chân thành cảm ơn.

Kha kha ... Tưởng chạy thực tế thì mới khó, chứ chạy giả lập trên máy tính thì dễ ẹt !

Tính toán góc đánh lửa sớm : đánh lửa trước 1ms (hòa khí vừa đủ sẽ cháy nhanh nhất. Nếu hòa khí thiếu, hoặc dư xăng sẽ cháy chậm hơn nên cho cộng thêm vài chục micro giây nữa tùy theo giá trị đo được của cảm biến Oxy).

Khi máy chạy nhẹ tải (nhận biết từ cảm biến MAP), cho đánh lửa sớm hơn nhiều nhất là 6 độ (cộng thêm vào).

Tính toán lượng xăng phun: tỉ lệ nghịch với trị tuyệt đối của áp suất họng hút.
- tính thể tích xy lanh
- dựa vào cảm biến MAP có được áp suất họng hút.
- dựa vào tỉ lệ hòa khí cần có: từ 1/12 đến 1/22 theo trọng lượng (fuel/air).
- tính khối lượng không khí hút được vào xy lanh.
- tính được khối lượng xăng cần cung cấp.
- trọng lượng riêng của xăng khoảng 0.777kg/l, từ đó tính ra thể tích xăng cần có.
- phải biết thông số của đầu phun xăng: ?mL/ms (mili lít/ mili giây), từ đó biết được thời gian mở béc phun cần thiết.
- từ đó điều khiển thời gian mở của béc, sẽ nhận được lượng xăng cần thiết.
- thời điểm phun xăng: không quan trọng lắm. Nếu phun đúng thời điểm, máy sẽ đạt được công suất lớn nhất ( tất nhiên là còn tùy thuộc vào lượng xăng phun). Nếu phun sai thời điểm, thì máy chạy được hiệu suất cao hơn (do xăng có thời gian trộn đều với KK bên ngoài xy lanh).
 
Last edited by a moderator:
Hạng D
10/11/08
1.335
1.679
113
TG
Hi Bác!
Để có được một map engine hoàn chỉnh để cung cấp cho khâu lập trình cần rất nhiều và rất nhiều thời gian thực nghiệm (chứ không đơn giản chút nào), với điều kiện có đủ thời gian và thiết bị dành cho công việc này và phải trên từng loại xe cụ thể chứ không thể chung chung như thế.
Tuy nhiên, Bác làm đề tài KS, mà trên mô hình thì công việc đơn giản hơn nhiều, miễn sao có phun một tí xăng, đánh lửa "chách chách ở bougie" thì có điểm rồi:D. Ngoài SPKT Bác có thể tham khảo mấy cao thủ lập trình, EX: Bá Hải, Thức, Vũ là đã OK rồi. Nhưng chắc Bá Hải hướng dẫn Bác nên khó hỏi nhỉ???:D
Nếu cần thiết Bác có thể liên hệ với em, hỗ trợ ít nhiều cho Bác tốt nghiệp cho rồi:D
Good luck!
 
Tập Lái
20/6/10
25
0
1
34
logo.gif

<h2>Ignition Control with MegaSquirt[sup]II[/sup]</h2> To provide improved engine performance, better fuel economy, and reduced exhaust emissions, MegaSquirt[sup]II[/sup] can control spark advance (timing), and this advance is programmable by the user.
For MegaSquirt[sup]II[/sup] (as for most other ignition systems), the total ignition advance is based on three factors:

Total advance = initial advance + RPM based advance + vacuum advance
In particular, MegaSquirt[sup]II[/sup] uses three variables to determine the total advance (called adv_deg).
  1. The first is the relevant value from the engine speed and load table, called ign_table(rpm,kPa), combining the RPM based advance and vacuum advance in one 12x12 table.
  2. The second is the trigger offset (adv_offset in the code), which appears to be roughly equivalent to the initial timing, but is really the difference between the trigger and next TDC in degrees (it is frequently used as the base timing in 'bypass mode' when the module is not connected to the MegaSquirt-II, and also when 'trigger rise' is set as the cranking advance).
  3. And the final value is the cold_adv_deg, an enhancement not available in many ignition systems, which is a 1x10 table based on engine coolant temperature (clt).
Note that you specify the total advance in MegaTune. That is, you calibrate the trigger offset, then put the timing you want in the MegaTune advance table. So if you have calibrated your trigger offset (suppose it is 10°), and want 25° BTDC for the advance, you put 25° in the MegaTune table (not 15° or 35°).
In the code, these factors are in tenths of a degree ([sup]1[/sup]/[sub]10[/sub]°). These values must be positive, so adv_offset sets the minimum amount of advance possible.
In general:
  • Low MAP (low engine load) = more spark advance
  • High MAP (high engine load) = less spark advance
  • Low CLT (cold engine) = more spark advance
  • High CLT (warm engine) = less spark advance
  • Low RPM = less spark advance
  • High RPM = more spark advance
The spark advance table is a 12 by 12 matrix (144 values) based on engine RPM and MAP sensor values. A further table of 10 values is used to make adjustments for engine coolant temperature.

<h3>Example Spark Advance Table</h3> [ign_table(rpm,kpa)]

KPa
130 0.0 2.0 6.0 10.0 14.0 18.0 22.0 26.0 30.0 31.0 32.0 32.0
120 0.0 3.0 7.0 11.0 15.0 19.0 23.0 27.0 31.0 32.0 33.0 33.0
110 0.0 4.0 8.0 12.0 16.0 20.0 24.0 28.0 32.0 33.0 34.0 34.0
100 0.0 6.0 10.0 14.0 18.0 22.0 26.0 30.0 36.0 36.0 36.0 36.0
90 0.0 8.0 11.0 15.0 19.0 23.0 30.0 33.0 35.0 36.0 36.0 36.0
80 2.0 8.0 12.0 16.0 20.0 24.0 30.0 34.0 35.0 36.0 36.0 36.0
70 4.0 8.0 12.0 16.0 20.0 24.0 30.0 34.0 35.0 36.0 36.0 36.0
60 6.0 10.0 14.0 18.0 22.0 26.0 31.0 34.0 35.0 36.0 36.0 36.0
50 8.0 12.0 16.0 20.0 24.0 28.0 32.0 35.0 36.0 36.0 36.0 36.0
40 8.0 14.0 18.0 22.0 26.0 30.0 34.0 36.0 38.0 38.0 39.0 40.0
30 8.0 16.0 19.0 23.0 27.0 31.0 34.0 37.0 39.0 40.0 41.0 42.0
20 8.0 16.0 20.0 24.0 28.0 32.0 34.0 38.0 41.0 44.0 46.0 46.0

RPM 500 750 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500
Spark advance entries in the 12×12 MegaTune spark table are expressed in engine degrees, and can be specified in tenths of a degree ([sup]1[/sup]/[sub]10[/sub]°). Note that they are the actual timing before top dead center (BTDC), and include any trigger offset.

<hr/>
 
Last edited by a moderator: