Hình 2 .41 Cầu chì 200A
Hình 2.53 Giao diện phần mềm Arduino IDE
2.4.2. Giới thiệu bo mạch Arduino Mega 2560 R3
Bo mạch Arduino Mega 2560 R3 là một bo mạch vi xử lý. Arduino Mega 2560 là phiên bản nâng cấp của Arduino Mega hay còn gọi là Arduino Mega 1280. Sự khác biệt lớn nhất với Arduino Mega 1280 chính là chip nhân. Arduino Mega 2560 phiên bản hiện đang được sử dụng rộng rãi và ứng dụng nhiều hơn. Với chip ATmega2560 có bộ nhớ flash memory 256 KB, 8KB cho bộ nhớ SRAM, 4 KB cho bộ nhớ EEPROM. Giúp cho người dùng thêm khả năng viết những chương trình phức tạp và điều khiển các thiết bị lớn hơn như máy in 3D, điều khiển robot và các hệ thống trên ô tô
Arduino Mega2560 là một vi điều khiển bằng cách sử dụng ATmega2560.Bao gồm: - 54 chân digital (15 có thể được sử dụng như các chân PWM)
38 - 4 UARTs (cổng nối tiếp phần cứng)
- 1 thạch anh 16 MHz - 1 cổng kết nối USB - 1 jack cắm điện - 1 đầu ICSP - 1 nút reset Hình 2.54. Bo mạch ARDUINO MEGA 2560 R3
2.5. Giải thuật tính tốn bộ điều khiển PID
Một bộ điều khiển PID (Proportional Integral Derivative) là một cơ chế phản hồi vòng điều khiển (bộ điều khiển) tổng quát được sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp. Bộ điều khiển PID là bộ điều khiển được sử dụng nhiều nhất trong các bộ điều khiển phản hồi. Bộ điều khiển PID sẽ tính tốn giá trị "sai số" là hiệu số giữa giá trị đo thông số biến đổi và giá trị đặt mong muốn. Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách điều chỉnh giá trị điều khiển đầu vào. Trong trường hợp khơng có kiến thức cơ bản (mơ hình tốn học) về hệ thống điều khiển thì bộ điều khiển PID là sẽ bộ điều khiển tốt nhất. Tuy nhiên, để đạt được kết quả tốt nhất, các thơng số PID sử dụng trong tính tốn phải điều chỉnh theo tính chất của hệ thống-trong khi kiểu điều khiển là giống nhau, các thông số phải phụ thuộc vào đặc thù của hệ thống.
39 Hình 2.55. Sơ đồ khối của bộ điều khiển PID
Setpoint (Giá trị đặt) là giá trị mong muốn đạt được tại ngõ ra của đối tượng điều khiển. Process variable (Biến q trình) là tín hiệu hồi tiếp mà bộ điều khiển nhận được từ đối tượng điều khiển. Control variable (biến điều khiển) là giá trị ngõ ra của bộ điều khiển. Error là giá trị sai lệch giữa giá trị đặt và giá trị hiện tại ở ngõ ra của đối tượng điều khiển và bộ điều khiển PID ln đưa ra tín hiệu điều khiển CV dựa trên giá trị của error. Output là giá trị ngõ ra của đối tượng điều khiển.
Hoạt động của khâu P (khâu tỷ lệ):
Hình 2.56. Hoạt động của khâu tỷ lệ
Khâu này ln đưa ra tín hiệu điều khiển luôn tỉ lệ với giá trị sai lệch. Hàm truyền của bộ điều khiển P: 𝐾(𝑠) = 𝐾𝑝
Hàm truyền đặc tính thời gian: 𝑌(𝑠) = 𝐾𝑝𝐺(𝑠)𝐸(𝑠) Hàm truyền sai số hệ thống: 𝐸(𝑠) = 𝑅(𝑠)
1+𝐾𝑝𝐺(𝑠)𝐻(𝑠)
Kp càng lớn thì tốc độ đáp ứng càng nhanh. Kp càng lớn thì sai số xác lập càng nhỏ. Kp tăng quá lớn thì vọt lố càng cao, nếu tăng nữa thì hệ thống mất ổn định và dao động không tắt dần.
40
Hoạt động của khâu D ( khâu vi phân):
Hình 2.57. Hoạt động của khâu D
Đây là khâu ln đưa ra tín hiệu điều khiển tỉ lệ với tốc độ thay đổi của giá tri sai lệch.
Hàm truyền của bộ điều khiển D: 𝐾(𝑠) = 𝐾𝑑𝑠
Hàm truyền đặc tính thời gian: 𝑌(𝑠) = 𝐾𝑑𝐺(𝑠)𝐸(𝑠)𝑠 Hàm truyền sai số hệ thống: 𝐸(𝑠) = 𝑅(𝑠)
1+𝑠 𝐾𝑑𝐺(𝑠)𝐻(𝑠)
Khâu vi phân khơng thể sử dụng một mình mà phải sử dụng kết hợp với khâu P hoặc khâu I. Kd càng lớn thì độ vọt lố càng nhỏ. Kd càng lớn thì đáp ứng quá độ càng nhanh. Khâu D rất nhạy với nhiễu tần số cao do hệ số khuếch đại tại tần số cao.
Hoạt động của khâu I (khâu tích phân ):
Hình 2.58. Hoạt động của khâu I
Là khâu đưa ra tín hiệu điều khiển dựa trên giá trị của sai lệch và thời gian xảy ra sai lệch. Hàm truyền của bộ điều khiển D: 𝐾(𝑠) =𝐾𝑖
𝑠
Hàm truyền đặc tính thời gian: 𝑌(𝑠) = 𝐾𝑖𝐺(𝑠)𝐸(𝑠) 𝑠
Hàm truyền sai số hệ thống: 𝐸(𝑠) = 𝑠 𝑅(𝑠) 1+𝐾𝑖𝐺(𝑠)𝐻(𝑠)
Ki càng lớn thì đáp ứng quá độ càng chậm. Ki càng lớn thì sai số xác lập càng nhỏ. Đặc biệt hệ số khuếch đại của khâu tích phân bằng vơ cùng khi tần số bằng 0, triệt tiêu sai số xác lập với hàm nấc. Ki càng lớn độ vọt lố càng cao.
Bộ điều khiển PID là sự kết hợp của các khâu P,I,D do đó khắc phục được nhược điểm của mỗi khâu riêng lẻ.
Như vậy , ngõ ra của bộ điều khiển PID thể hiện qua hàm truyền: 𝐾(𝑠) = 𝐾𝑝+𝐾𝑖
41
CHƯƠNG 3. NGHIÊN CỨU THUẬT TOÁN HỆ THỐNG ĐIỀU KHIỂN GA TỰ ĐỘNG VÀ ỨNG DỤNG PHẦN MỀM ARDUINO IDE
TRONG LẬP TRÌNH CCS ECU
3.1. Thuật tốn hệ thống điều khiển ga tự động trên xe điện ZERO
3.1.1. Giới thiệu thuật toán hệ thống điều khiển ga tự động trên xe điện ZERO
CCS ECU là một hệ thống kiểm sốt phản hồi trên xe ơ tơ điện. Mục đích của CCS là duy trì tốc độ xe khơng đổi mặc dù có những xáo trộn bên ngồi, chẳng hạn như thay đổi về gió hoặc điều kiện mặt đường. Điều này được thực hiện bằng cách đo tốc độ xe, so sánh với tốc độ cài đặt và tự động điều chỉnh tín hiệu bàn đạp tăng tốc theo quy luật điều khiển PID.
Hình 3.1. Sơ đồ xe điện ZERO tích hợp hệ thống điều khiển ga tự động
Bo mạch Arduino Mega 2560 là bộ xử lí của CCS ECU. Cơng tắc điều khiển dùng để vận hành hệ thống điều khiển ga tự động. Thuật tốn điều khiển chính là một vịng lặp vơ tận với các nhiệm vụ xử lí các tín hiệu đầu vào, tính tốn dựa trên chúng để cho ra tín hiệu đầu ra cần thiết là tín hiệu vị trí bàn đạp tăng tốc mới và tín hiệu cơng tắc bàn đạp tăng tốc đến hộp tín hiệu và an tồn.
42
3.1.2. Lưu đồ thuật toán hệ thống điều khiển ga tự động trên xe điện ZERO
43 Hình 3.3. Lưu đồ thuật tốn hệ thống điều khiển ga tự động (tiếp theo)
44 Khi giá trị SET = 0, xe sẽ ở chế độ điều khiển bình thường với tốc độ xe hồn tồn dựa vào bàn đạp tăng tốc do người lái điều khiển và CCS ECU sẽ ngắt bộ điều khiển PID. CCS ECU sẽ nhận các tín hiệu từ cơng tắc điều khiển, cơng tắc bàn đạp phanh, cảm biến vị trí chân ga, công tắc đâm đụng, công tắc tiến lùi để quyết định các chế độ của hệ thống điều khiển ga tự động như chức năng bật tắt CCS ECU, chức năng cài đặt tốc độ, chức năng tăng giảm tốc độ, chức năng hủy, chức năng phục hồi tốc độ cài đặt và chức năng hoạt bộ điều khiển PID.
Một phần quan trọng của thuật tốn là kích hoạt bộ điều khiển PID để điều khiển tín hiệu vị trí bàn đạp tăng tốc. Việc cài đặt thông số cho bộ điều khiển PID dựa vào thực nghiệm để chọn những thông số phù hợp nhất đảm bảo nhu cầu chính là xe đạt tới tốc độ mong muốn nhanh, êm dịu và mượt mà. Khâu tỷ lệ (Proportional) của bộ điều khiển PID điều chỉnh tín hiệu điện áp dựa trên sự sai số (ERROR = Vset – Vxe hoặc ERROR = Vset1 - Vxe) giữa tốc độ thực tế của xe (Vxe) và tốc độ mong muốn của xe (Vset hoặc Vset1). Nếu giá trị ERROR dương (Vset > Vxe), bộ điều khiển PID sẽ tăng điện áp tín hiệu vị trí bàn đạp tăng tốc để tăng tốc và ngược lại, nếu giá trị ERROR dương (Vset < Vxe), bộ điều khiển PID sẽ giảm điện áp tín hiệu vị trí bàn đạp tăng tốc để giảm tốc. Do đó, khi xe càng gần tốc độ mong muốn, gia tốc xe càng giảm. Khâu tích phân (Integral) của bộ điều khiển PID có chức năng cân bằng nhanh giá trị ERROR về 0 và khâu vi phân (Derivative) được áp dụng vào những thay đổi nhỏ của tốc độ. Các giá trị hằng số Kp, Ki, Kd ban đầu được chọn theo bảng 3.1. Khi xử lí, các hằng số trên có thể được liên tục thay đổi để đảm bảo yêu cầu nhu cầu chính đã đề ra.
Bảng 3.1. Các giá trị hằng số Kp, Ki, Kd ban đầu Chức năng Chức năng Hằng số Cài đặt tốc độ Tăng tốc theo nấc Tăng tốc liên tục Giảm tốc theo nấc Giảm tốc liên tục Kp 1.5 1.5 0.13 1.5 0.13 Ki 0.000035 0.000035 0.000035 0.000035 0.000035 Kd 2 2 0.13 2 0.13
45
3.2. Ứng dụng phần mềm Arduino IDE trong lập trình CCS ECU 3.2.1. Code đọc tín hiệu các cơng tắc, cảm biến 3.2.1. Code đọc tín hiệu các cơng tắc, cảm biến
Các tín hiệu được nhận về Arduino có các chân analog và các chân digital. Chân analog được dùng để đọc tín hiệu của cảm biến vị trí bàn đạp tăng tốc và mạch nhận tín hiệu cụm cơng tắc điều khiển. Tín hiệu điện áp thu thập từ chân analog sẽ chuyển đổi tín hiệu điện áp từ 0V đến 5V thành dãy giá trị từ 0 đến 1023. Chân digital được dùng để đọc tín hiệu của mạch đo tốc độ động cơ và mạch đọc tín hiệu các cơng tắc. Tín hiệu điện áp thu thập từ chân digital sẽ chuyển đổi tín hiệu điện áp xấp xỉ 0V là giá trị 0 và tín hiệu điện áp từ 3.3V trở lên là giá trị 1. Bên cạnh đó, đối với tín hiệu từ mạch đo tốc độ động cơ sẽ sử dụng chân digital số 2 có hỗ trợ ngắt để tính tốn tốc độ động cơ.
- Lưu đồ và code đọc tín hiệu chân analog trong chương trình Arduino IDE:
Hình 3.4. Lưu đồ đọc tín hiệu chân analog
bientro = analogRead (A0); // đọc tín hiệu cảm biến vị trí bàn đạp tăng tốc qua chân A0 i = map (bientro,0,1023,0,255); // chuyển đổi giá trị thành dãy giá trị 0 đến 255
- Lưu đồ và code đọc tín hiệu chân digital trong chương trình Ardiuno IDE:
Hình 3.5. Lưu đồ đọc tín hiệu chân digital
th_damdung = digitalRead (22);// đọc tín hiệu cơng tắc đâm đụng qua chân digital 22 - Lưu đồ và code đọc tốc độ động cơ trong chương trình Ardiuno IDE:
Hình 3.6. Lưu đồ đọc tốc độ động cơ void xung() {//chương trình ngắt void xung() {//chương trình ngắt
xung1s++; }
void setup() {
pinMode (2, INPUT_PULLUP); // khai báo chân ngắt
46 }
Void loop(){
time_vt = millis() - time_vt2; if (time_vt >= 500)
{
noInterrupts();// tạm dừng chương trình ngắt vantoc = xung1s * ((Chuvi / 0.5) * 3.6); time_vt2 = millis();
xung1s = 0; // xóa xung đếm được trong vịng 1s
dieukien_PID = 1;// tín hiệu điều kiện để kích hoạt PID time_vt = 0;
interrupts();// tiếp tục chương trình ngắt }
}
3.2.2. Code xử lí tín hiệu cơng tắc điều khiển và điều khiển chế độ thực hiện
Dựa vào tín hiệu chân analog A1, A2 được đọc từ mạch tín hiệu cụm cơng tắc, ta bắt đầu so sánh các giá trị tương ứng và điều kiện hoạt động với các chức năng như CRUISE, SET, CANCEL, RESUME, ACCELERATE, COAST. Khi tín hiệu thõa các điều điều kiện, từ đó các biến điều khiển controlCode được thay đổi theo các giá trị 0,1,2,3 tương ứng với các chế độ điều khiển lần lượt là điều khiển bình thường, điều khiển ga tự động theo tốc độ cài đặt trước bằng hàm điều khiển PID, điều khiển ga tự động với tốc độ giảm dần bằng hàm điều khiển PID, điều khiển ga tự động tăng dần bằng hàm điều khiển PID.
47 - Lưu đồ thuật toán điều khiển bật tắt hệ thống điều khiển ga tự động
Hình 3.7. Lưu đồ thuật tốn điều khiển bật tắt hệ thống điều khiển ga tự động - Lưu đồ thuật toán điều khiển các chức năng của hệ thống - Lưu đồ thuật toán điều khiển các chức năng của hệ thống
48 - Lưu đồ thuật toán điều khiển chế độ điều khiển:
49 - Lưu đồ thuật toán điều khiển PID
50
Chương 4. THIẾT KẾ HỆ THỐNG CRUISE CONTROL 4.1. Nghiên cứu, đo đạc các chi tiết và thiết bị 4.1. Nghiên cứu, đo đạc các chi tiết và thiết bị
4.1.1. Cụm cơng tắc điều khiển hệ thống Cruise Control
Hình 4.1. Cụm cơng tắc điều khiển trên xe ZERO
Cụm công tắc trên xe ZERO thuộc loại cần gạt với các chế độ: ON-OFF, RES/ACC(RESUME/ACCELERATION), SET/COAST và CANCEL.
- Chế độ ON/OFF: nút bấm ở đầu cần gạt, tiếp điểm khơng có giá trị điện trở. - Chế độ CANCEL: gạt lên hướng về phía vơ-lăng, giá trị điện trở là khoảng 418Ω. - Chế độ SET/COAST: gạt xuống, giá trị điện trở khoảng 198Ω.
- Chế độ RES/ACC: gạt lên về phía trước xe, giá trị điện trở khoảng 68Ω.
Sau khi đo các giá trị điện trở của các chế độ, tiến hành thu thập tín hiệu của cụm cơng tắc để cung cấp dữ liệu cho phần lập trình. Thiết kế sơ đồ mạch điện và vị trí lắp đặt cụm cơng tắc điều khiển trên xe điện ZERO.
51
4.1.2. Board Arduino Mega 2560 và IC hạ áp dùng LM2596
Hình 4.3. Board Arduino Mega 2560
Board Arduino Mega 2560 R3 là mạch xử lý chính của hệ thống. Sử dụng Board Arduino Mega 2560 có lợi thế hơn rất nhiều so với Board Arduino UNO thơng thường. Với mục đích sử dụng nhiều chân để thu thập tín hiệu đầu vào, ngoại vi và bộ nhớ nhiều hơn, giúp việc xử lý nhiều thơng tin tín hiệu được hiệu quả hơn.
Hình 4.4. Module hạ áp DC-DC LM2596 3A
Để bảo vệ mạch Arduino Mega 2560 hoạt động ổn định và an toàn, mạch hạ áp LM2596 3A được dùng để giảm nguồn 12V DC của xe xuống 9V DC trước khi đưa nguồn cấp vào Board Arduino bằng giắc trịn. IC LM358 có điện áp đầu vào khoảng 3V-30V DC và có thể điều chỉnh điện áp đầu ra từ 1.5V-30V DC với dịng đáp ứng tối đa là 3A, cơng suất 15W.
52
4.1.3. Cảm biến tốc độ động cơ xe điện ZERO
Hình 4.5. Cảm biến điện từ Hình 4.6. Cảm biến tốc độ trên xe điện ZERO Xe điện ZERO sử dụng cảm biến điện từ làm cảm biến tốc độ, với nguyên lý khi có Xe điện ZERO sử dụng cảm biến điện từ làm cảm biến tốc độ, với nguyên lý khi có Xe điện ZERO sử dụng cảm biến điện từ làm cảm biến tốc độ, với nguyên lý khi có kim loại đi qua đầu cảm biến, tín hiệu trả về là tín hiệu điện áp được hiển thị dưới dạng xung hình Sin. Thơng qua thiết bị đo HANTEK PC-OSCILLOSCOPE 6022BE, dùng để đo và hiển thị tín hiệu lên máy tính qua cổng USB, thiết bị đo Hantek có 2 cổng đo tín hiệu Analog Oscilloscope với tần số tối đa 20MHz, độ chính xác cao, cùng phần mềm Hantek6022BE hỗ trợ hiển thị độ thị, tín hiệu đã đo được hiển thị bên dưới
53
Hình 4.8 Tín hiệu từ cảm biến tốc độ ở dải tốc độ cao
4.1.4. Cảm biến vị trí bàn đạp tăng tốc
Cảm biến vị trí bàn đạp tăng tốc trên xe điện ZERO sử dụng loại tuyến tính 3 chân: 5V, GND và chân tín hiệu. Bên cạnh cảm biến có kết hợp một cơng tắc bàn đạp tăng tốc loại cơng tắc hành trình 3 chân.
Hình 4.9. Sơ đồ cảm biến vị trí bàn đạp tăng tốc trên xe điện ZERO
Khi chưa tác động bàn đạp tăng tốc, giá trị điện trở ở hai đầu 5V và GND vào khoảng 2kΩ. Đo giá trị điện trở giữa chân tín hiệu và chân 5V, điện trở khi chưa tác động bàn đạp tăng tốc khoảng 2kΩ, điện trở càng giảm khi bàn đạp tăng tốc càng được tác động sâu, đồng nghĩa điện áp ở chân tín hiệu cũng tăng tuyến tính từ 0V đến gần 5V.
54 Hình 4.10. Cảm biến vị trí và cơng tắc bàn đạp tăng tốc xe ZERO