3.3.1. Thiết kế miếng gá mô tơ
Mô phỏng miếng gá trên AutoCAD:
Hình 3. 28: Miếng gá mô phỏng trên Auto CAD
Miếng gá thực tế:
Hình 3. 29: Miếng gá mô tơ thực tế
3.3.2. Thiết kế bánh răng truyền động bướm ga 3.3.2.1. Tính toán thông số bộ bánh răng 3.3.2.1. Tính toán thông số bộ bánh răng
Khoảng cách trục: a = 52mm Chọn modun: m = 2 mm Tỉ lệ: 1:2 Ta có: a = 1 2𝑚(𝑍1+ 𝑍2) = 1 2𝑚3𝑍1
64 => 52 =3 2𝑚𝑍1 =>𝑍1 = 17,3 Chọn Z1 = 17 răng, Z2= 34 răng, Đường kính vòng đỉnh: 𝑑𝑎1 = 𝑚(𝑍1+ 2) = 2. (17 + 2) = 38𝑚𝑚 𝑑𝑎2 = 𝑚(𝑍2+ 2) = 2. (34 + 2) = 72𝑚𝑚 Đường kính vòng đáy: 𝑑𝑓1 = 𝑚. (𝑍1− 2.5) = 2. (17 − 2.5) = 29𝑚𝑚 𝑑𝑓2 = 𝑚. (𝑍2− 2.5) = 2. (34 − 2.5) = 63𝑚𝑚 Đường kính vòng chia: 𝑑1 = 𝑚. 𝑍1 = 2.17 = 34𝑚𝑚 𝑑2 = 𝑚. 𝑍2 = 2.34 = 68𝑚𝑚
Chiều cao răng:
ℎ = ℎ𝑎 + ℎ𝑓 = 2.25𝑚 = 4.5𝑚𝑚
3.3.2.2. Bộ bánh răng thực tế
Hình 3. 30: Bộ bánh răng kéo bướm ga thực tế
3.3.3. Thiết kế bộ truyền đai kéo máy phát
Thiết kế puli có then hoa gắn vào trục khuỷu động cơ để kéo máy phát quay theo tỉ lệ ~3:2, có thêm bánh căng đai.
65
66
3.4. Thuật toán điều khiển
3.4.1. Tiến trình thực hiện đọc tín hiệu
Đọc tín hiệu điện áp:
Hình 3. 32: Chu trình đọc tín hiện dạng điện áp Bảng 3. 9: Bảng chuyển thang giá trị cảm biến
Tín hiệu Thang chuyển đổi
Vị trí bướm ga 0% - 100%
Mực xăng 0 (lít) – 4 (lít)
Nhiệt độ dầu động cơ 00C - 1200C
Dòng điện nạp 0 (A) – 20 (A)
Điện áp Acquy 0 (V) – 15 (V)
Đọc và tính toán tốc động cơ:
67 Truyền dữ liệu qua App Designer:
Hình 3. 34: Chu trình gửi dữ liệu
Một chu trình gửi sẽ truyền vào bộ nhớ đệm của giao tiếp một chuỗi đầy đủ các giá trị như trên. Từ đây App Designer sẽ tách chuỗi thành từng giá trị riêng biệt tương ứng với từng giá trị tín hiệu đã thu thập. Chu trình này sẽ thực hiện tuần hoàn với chu kì gửi 0.2s.
68
3.4.2. Các lưu đồ thuật toán
Thuật toán khởi động động cơ tự động:
Hình 3. 35: Lưu đồ thuật toán điều khiển mở máy
Trong đó:
Vt là giá trị điện áp tổng Acquy thu thập về.
Vy là giá trị điện áp định mức yêu cầu phải nạp có giá trị là 54V. ST là chân điều khiển relay khởi động.
toc là biến tốc độ động cơ.
toct là mức xác định tốc độ động cơ khi chưa hoạt động có giá trị 1000 vòng/phút. time là biến thời chờ khởi động.
ty là mức thời gian chờ khởi động có giá trị 5s. Thuật toán điều khiển tắt động cơ tự động:
69
Hình 3. 36: Lưu đồ thuật toán điều khiển tắt máy
Trong đó:
Vn là điện nạp được thu thập về Arduino.
Vi là điện áp định mức khi Acquy có giá trị xấp xỉ 68V (75%SOC). Time là biến đếm thời gian ngắt công tắc máy.
ty là thời gian ngắt công tắc máy có giá trị 3s.
70
Hình 3. 37: Lưu đồ thuật toán điều khiển kích từ máy phát
Trong đó:
Setpoint là giá trị góc mở bướm ga mong muốn.
Setpointy là biến xác định cho phép đếm thời gian chuẩn bị kích từ có giá trị 102. In là dòng điện nạp được thu thập về Arduino.
Iy là dòng điện định mức khi Acquy đầy có giá trị xấp xỉ 0A. Time là biến đếm thời gian bật kích từ.
timey là biến xác định thời gian bắt đầu bật kích từ có giá trị 2s.
71
Hình 3. 38: Lưu đồ thuật toán điều khiển bướm ga
Trong đó:
Setpoint là giá trị góc mở bướm ga mong muốn. OUTPUT là giá trị tính toán sau bộ PID.
72
CHƯƠNG 4: ỨNG DỤNG APP DESIGNER LẬP TRÌNH, THIẾT KẾ GIAO DIỆN HIỂN THỊ
4.1. Giới thiệu chung về App Designer 4.1.1. App Designer là gì? 4.1.1. App Designer là gì?
App Designer là giao diện đồ họa có điều khiển bởi nhiều thanh công cụ được người lập trình sẵn, cho tương tác giữa người dùng là giao diện chương trình, mỗi chương trình được người lập trình tạo sẵn giao diện thực hiện một vài chức năng được người lập trình tạo sẵn và giao tiếp với người dùng. Nó có thể tạo ra giao diện người dùng tương tự như VBA, C++… App Designer bao gồm đầy đủ các chương trình hỗ trợ thực hiện các phép toán LOGIC, mô phỏng không gian 2D, 3D, liên kết đa phương tiện.
Hình 4. 1: Sơ đồ khối App Designer
Hầu hết App Designer chỉ thực hiện lệnh người dùng thông qua các tác động của người dùng lên giao diện, người dùng không cần biết cấu trúc của chương trình vẫn có thể thực hiện được. App Designer thực hiện thông qua hàm CALLBACK, khi người dùng tác động lên giao diện bằng các cách khác nhau thì hàm CALLBACK được gọi ra để thực thi.
73
4.1.2. Phương pháp để lập trình với App Designer
Cách đơn giản là sử dụng công cụ có sẵn trong App Designer Matlab để lập trình. Ưu điểm của cách này là dễ thực hiện, các hàm FUNCTION được tự tạo sẵn.
Cách thứ hai là lập trình tự tệp Mfile bằng các hàm FUNCTION do người lập trình tự viết, nó có ưu điểm là tùy biến cao. Tuy nhiên cách này khó hơn và đòi hỏi người lập trình phải có hiểu biết sâu. Đối với những bài tập đơn giản thì ta nên sử dụng cách thứ nhất để lập trình giao diện với những công cụ được hỗ trợ sẵn trong Matlab.
Các bước cần thực hiện trước khi bắt đầu với App Designer:
Trước khi để bắt đầu lập trình ta cần phải xác định mục tiêu của chương trình là gì?
Sau đó tiến hành xác định các bước thực hiện để mô phỏng giao diện người dùng sao cho hợp lí chính xác.
Bước cuối cùng là viết chương trình và thực thi.
Khi bắt đầu với App Designer, nó tự động tạo ra các tập tin được thực hiện bởi hàm Callback function. App Designer thao tác trên những kí tự mà người dùng nhập vào chuyển sang dạng số học, nói cách khác, giao diện App Designer tương tự như những lệnh thực thi trong Comment Windows.
Tất cả các hàm Callback thực thi những lệnh chứ trong nó.
Ngoài ra, chúng ta nên sử dung chức năng HELP để tìm thêm tất cả hàm thực thi trong App Designer, cách tạo và thao tác với App Designer….
4.2. Thao tác với App Designer 4.2.1. Khởi động App Designer 4.2.1. Khởi động App Designer
Thực hiện hởi động Matlab đến APP DESIGNER như sau:
Khởi động Matlab.
Có thể mở bằng một số cách sau:
Chọn thẻ Home → New → App.
Chọn thẻ APPS → Design App.
Trong cửa sổ Command Windown gõ lệnh “appdesigner” và Enter. Ta được giao diện màn hình như sau:
74
Hình 4. 2: Giao diện mở đầu AppDesigner
4.2.2. Mô tả chức năng và giao diện App Designer
Trong giao diện trên chúng ta có thể thao tác tùy biến các ô công cụ phù hợp với mục đích sử dụng.
Bảng 4. 1: Các công cụ trong AppDesigner
Công cụ Mô tả
Align Dùng để sắp xếp các đối tượng điều khiển Inspector Thiết lập thuộc tính của các đối tượng điều
khiển. Nó cung cấp một danh sách tất cả các thuộc tính bạn có thể thiết lập và hiển thị các giá trị hiện tại của chúng
Component Object Hiển thị danh sách phân cấp của các đối tượng trong giao diện đồ họa
Run Lưu và chạy giao diện hiện tại
Phía bên trái là COMPONENT LIBRARY nhóm các biểu tượng được APP DESIGNER hỗ trợ sẵn
Button là nút nhấn, khi nhấn vào sẽ thực thi lệnh trong cấu trúc hàm callback của nó.
75
Axes là giao diện đồ họa hiển thị hình ảnh, nó có nhiều thuộc tính bao gồm: không gian 2D (theo trục đứng và trục ngang), 3D (hiển thị không gian 3 chiều).
Check Box sử dụng để đánh dấu tích (thực thi) vào và có thể check nhiều ô để thực thi.
List Box là hộp thoại danh sách các mục, cho phép người dùng chọn một hoặc nhiều mục.
Edit Field là nơi các số, kí tự có thể được nhập từ người dùng, họ có thể thay đổi.
State Button là nút nhấn có hai điều khiển, khi nhấp chuột và nhả ra, nút nhấn được giữ và lệch thực thi, khi nhấp chuột vào lần thứ hai, nút nhấn nhả ra, hủy bỏ lệnh vừa thực thi.
Radio Button Group quản lí sự lựa chọn của nút Radio Button. Radio Button giống như Check Box nhưng thường được sử dụng để tạo sự lựa chọn duy nhất, tức là một lần chỉ được chọn một trong số các nhóm nhiều nút. Khi một ô được chọn thì các ô còn lại trong nhóm bỏ chọn.
Table tạo ra một bảng tương tự Excel.
Panel tạo ra một mảng nhóm các biểu tượng lại với nhau giúp ta dễ hiểu kiểm soát và thao tác khi di chuyển.
Ngoài ra còn có một số công cụ hiển thị bằng hình ảnh như Gauge , Switch , Lamp ,….
Bên cạnh nhóm biểu tượng là các cửa sổ cho phần làm việc từ thiết kế đến lập trình gọi hàm cho giao diện đã thiết kế.
76
Hình 4. 3: Cửa sổ thiết kế đồ họa trong AppDesigner
Với tùy chọn “designer View” đưa ra cửa sổ cho phép người dùng sử dụng các biểu tượng và thiết kế một giao diện làm việc theo mục đích thích hơp.
Hình 4. 4: Cửa sổ lập trình đối tượng trong AppDesigner
Với tùy chọn “Code View” đưa người dùng tới cửa sổ viết lệnh cho giao diện đã thiết kế. Ở đây có thêm các chức năng “Callbacks” cho phép truy cập trực tiếp đến từng biểu tượng đồ họa để viết lệnh, gọi hàm. “Functions” cho phép tạo ra vùng để viết các hàm
77 riêng phục vụ nhu cầu lập trình. “Properties” tạo ra vùng để khai báo các biến trong toàn cục trong chương trình.
Và để có thể thiết kế cũng như điều chỉnh, định dạng về từng đối tượng riêng biệt, App Designer có hộp thoại Inspector thực hiện điều này.
Hình 4. 5: Hộp thoại Inspector
Bảng 4. 2: Các thuộc tính trong hôp thoại Inspector
Thuộc tính Mô tả
BackgroundColor Màu nền đối tượng
FontAngle Kiểu chữ nghiêng
FontName Kiểu chữ
FontSize Cỡ chữ
FontUnits Đơn vị kích thước font chữ.
78
ForegroundColor Màu chữ
Handle Visibility Cho dù xử lý có thể truy cập từ dòng lệnh và ảnh minh họa
BusyAction Callback thường xuyên gián đoạn
Enable Kích hoạt hoặc vô hiệu hóa các đối tượng điều khiển
Visible Điều khiển thuộc tính nhìn thấy của các đối tượng
Value Giá trị hiện thời đối tượng điều khiển
Units Đơn vị đo lường
Tag Dùng để phân biệt giữa các đối tượng
điều khiển
Style Kiểu của đối tượng điều khiển
Horizontal Alignment Căn ngang của chuỗi nhãn
Position Kích thước và vị trí đối tượng điều khiển
4.3. Thiết kế giao diện nhận và hiển thị dữ liệu trên App Designer
Với mục đích phải nhận dữ liệu liên tục từ Arduino gửi qua và hiển thị dữ liệu một cách trực quan nhất cho người xem, do đó cần phải thiết kế giao diện hiển thị đầy đủ, rõ ràng, dễ quan sát. Đồng thời các dữ liệu nhận được phải được lập trình hiển thị một cách nhanh chóng tương ứng với trạng thái hoạt động của động cơ.
4.3.1. Chu trình nhận dữ liệu trên App Designer
79
Hình 4. 6: Chu trình nhận dữ liệu
Các dữ liệu từ Arduino được gửi một cách liên tục và lưu trong bộ đệm của cổng giao tiếp. Với một lần gửi một chuỗi dữ liệu bao gồm các giá trị tín hiệu cách nhau bởi dấu “,” được truyền qua công giao tiếp và lưu vào bộ nhớ đệm cho đến khi chuỗi này được đọc. Chuỗi dữ liệu này được chuyển đổi từ mảng ASCII thành kiểu số và tách thành các tín hiệu riêng biệt phục vụ cho nhu cầu tính toán, hiển thị trên Matlab.
Sơ đồ khối chu trình thực hiện trong App Designer:
80
4.3.2. Thiết kế giao diện hiển thị 4.3.2.1. Nội dung thiết kế 4.3.2.1. Nội dung thiết kế
- Thiết kế nút điều khiển chương trình.
- Hiển thị dữ liệu trên các đồng hồ đo bao gồm các tín hiệu về tốc độ động cơ, nhiệt độ dầu động cơ và tín hiệu báo mực xăng.
- Hiển thị dữ liệu điện áp Acquy bao gồm điện áp từng Acquy, điện áp tổng và các cảnh báo tương ứng với các mức dung lượng Acquy.
- Hiển thị dữ liệu dưới dạng đồ thị trực quan để theo dõi kết quả trong quá trình thực nghiệm bao gồm tín hiệu dòng điện nạp và tín hiệu vị trí góc mở bướm ga.
4.3.2.2. Kết quả thiết kế
Các tín hiệu nhiệt độ dầu động cơ, tốc độ động cơ, mực xăng được thiết kế bằng các khối “Gauge” qua điều chỉnh thang số và màu sắc phù hợp.
Hình 4. 8: Giao diện hiển thị dạng đồng hồ và điều khiển chương trình
Bên cạnh đó có thiết kế hai nút “START”, “STOP” cho việc điều khiển bắt đầu, kết thúc giao tiếp nhận và hiển thị. Các nút được lập trình trạng thái, cho phép truy cập đúng quy trình. Bao gồm trạng thái chuẩn bị giao tiếp, chỉ sử dụng được nút “START” và trạng thái đang hoạt động quá trình giao tiếp, chỉ sử dụng được nút “STOP”.
81
Hình 4. 9: Giao diện nút điều khiển
Giao diện hiển thị điện áp Acquy tổng và điện áp từng Acquy đơn được thiết kế riêng phần cho người xem dễ phân biệt và quan sát.
Hình 4. 10: Giao diện hiển thị giá trị điện áp Acquy
Bên cạnh đó với mỗi giá trị điện áp đều được lập trình màu sắc để cảnh báo về tình trạng của Acquy. Màu vàng cho Acquy tổng thể hiện điện áp mức thấp và chuẩn bị được sạc. Màu đỏ cho các Acquy đơn cảnh báo Acquy hư hỏng, sụt áp cao, cần sửa chữa, thay thế. Màu xanh lá cho tất cả các giá trị điện áp báo Acquy đang ổn định. Các màu này được lập trình thay đổi tương ứng với giá trị điện áp thực thu thập về. Ngoài ra, mức dung lượng của Acquy còn được thể hiện qua các mức thang đo bên dưới để dễ dàng quan sát sự cân bằng dung lượng của các Acquy.
Và để đảm bảo trực quan nhất cho việc đánh giá, nhóm thiết kế một biểu đồ cho giá trị dòng điện nạp và một đồ thị cho khả năng đáp ứng của mô tơ kéo bướm ga.
82
Hình 4. 11: Giao diện hiển thị tín hiệu theo đồ thị
Tất cả các nội dung thiết kế được sắp xếp phù hợp tạo nên một giao diện tổng thể, hiển thị đầy đủ dữ liệu động cơ trong các chu trình thực nghiệm.
83
84
CHƯƠNG 5: MÔ PHỎNG VÀ ĐÁNH GIÁ KẾT QUẢ 5.1. Nội dung thực hiện
- Đặt ra các bài toán dựa trên điều kiện thực tế của mô hình và đưa ra hướng giải quyết. - Xây dựng chương trình mô phỏng Simulink dựa trên mô hình thực tế.
- Tiến hành mô phỏng chương trình với các bài toán đặt ra để đánh giá kết quả.
5.2. Tiến trình thực hiện
5.2.1. Bài toán thực tiễn và hướng giải quyết
Đối với mô hình xe E-REV sử dụng hệ thống nguồn gồm 5 Acquy mắc nối tiếp, yêu cầu của bộ điều khiển sạc là tối ưu quá trình sạc và giám sát hệ thống các Acquy. Để đáp ứng yêu cầu đó, thì cần giải quyết những bài toán dưới đây:
- Khởi động sạc. - Điện áp và dòng sạc.
- Giám sát và cân bằng Acquy. - Kết thúc sạc.
- Đánh giá quá trình sử dụng xe song song với sạc Acquy.
5.2.1.1. Thời điểm khởi động sạc
Để kéo dài tuổi thọ của Acquy, mức SOC tối thiểu khi sử dụng là khoảng 30%. Chính vì thế, để tối ưu quá trình sạc song song với sử dụng xe và bảo vệ Acquy, ta nên tiến hành khởi động sạc khi SOC trung bình của Acquy thấp hơn 40%.
85
Hình 5. 1: Lưu đồ thuật toán khởi động
5.2.1.2. Điện áp và dòng sạc
Để đảm bảo thời gian sạc thì dòng sạc phải đủ lớn và không vượt quá dòng sạc tối