7. Ngày hoàn thành đồ án:
4.2.2. Phần mềm giám sát và thu thập dữ liệu
Trong quá trình thực hiện rất cần một phần mềm có khả năng làm nhiệm vụ gỡ rối chương trình trên vi điều khiển đồng thời thu thập dữ liệu đo đạc về giúp cho việc điều khiển trở nên dễ dàng hơn. Có rất nhiều ngôn ngữ lập trình có thể được sử dụng để viết phần mềm này như Visual Basic, Visual C#, MatLab. Nhưng ở đây chúng em chọn ngôn ngữ LABVIEW để thực hiện. LABVIEW và vi điều khiển được kết nối thông qua cổng COM.
a). Giới thiệu về LABVIEW
LabVIEW (viết tắt của nhóm từ Laboratory Virtual Instrumentation Engineering Workbench) là một phần mềm máy tính được phát triển bởi công ty National Instruments, Hoa kỳ [25]. LabVIEW còn được biết đến như là một ngôn ngữ lập trình với khái niệm hoàn toàn khác so với các ngôn ngữ lập trình truyền thống như ngôn ngữ C, Pascal. Bằng cách diễn đạt cú pháp thông qua các hình ảnh trực quan trong môi trường soạn thảo, LabVIEW đã được gọi với tên khác là lập trình G (viết tắt của Graphical, nghĩa là đồ họa).
LabVIEW được dùng nhiều trong các phòng thí nghiệm, lĩnh vực khoa học kỹ thuật như tự động hóa, điều khiển, điện tử, cơ điện tử, hàng không, hóa sinh, điện tử y sinh,... Hiện tại ngoài phiên bản LabVIEW cho các hệ điều hành Windows, Linux, Hãng NI đã phát triển các mô-đun LabVIEW cho máy hỗ trợ cá nhân (PDA). Các chức năng chính của LabVIEW có thể tóm tắt như sau:
- Thu thập tín hiệu từ các thiết bị bên ngoài như cảm biến nhiệt độ, hình ảnh từ webcam, vận tốc của động cơ, ...
- Giao tiếp với các thiết bị ngoại vi thông qua nhiều chuẩn giao tiếp thông qua các cổng giao tiếp: RS232, RS485, USB, PCI, Ethernet
- Mô phỏng và xử lý các tín hiệu thu nhận được để phục vụ các mục đích nghiên cứu hay mục đích của hệ thống mà người lập trình mong muốn
- Xây dựng các giao diện người dùng một cách nhanh chóng và thẩm mỹ hơn nhiều so với các ngôn ngữ khác như Visual Basic, Matlab,..
Cho phép thực hiện các thuật toán điều khiển như PID, Logic mờ (Fuzzy Logic), một cách nhanh chóng thông qua các chức năng tích hợp sẵn trong LabVIEW.
Chương 4. Triển khai phần cứng và phần mềm
b). Giao diện chương trình giám sát và thu thập dữ liệu
Hình 4.18. Giao diện chương trình giám sát và thu thập dữ liệu
c). Code chương trình thực hiện bằng ngôn ngữ LABVIEW
Kết luận
KẾT LUẬN
Sau một quá trình học tập và nghiên cứu, nhóm chúng em đã thu được những kết quả nhất định. Những kết luận sau đây là sự đánh giá tổng hợp cho toàn bộ quá trình nghiên cứu của nhóm:
Mô hình hóa hệ thống xe một bánh tự cân bằng
Đề xuất phương pháp điều khiển PD cho xe một bánh tự cân bằng
Thực hiện mô phỏng và kiểm nghiệm thuật toán lọc Kalman trên vi điều khiển dsPIC30F4011
Điều khiển động cơ BLDC sử dụng bộ điều khiển dải trễ dòng điện HCC
Xây dựng chương trình giám sát và thu thập dữ liệu. Công việc tiếp theo của nhóm là:
- Hoàn thiện code điều khiển động cơ trên vi điều khiển dsPIC30F4011 để cải thiện những vướng mắc đã trình bày trong mục 3.4.2.
- Tiến hành kiểm nghiệm khả năng đưa xe trở lại trạng thái cân bằng như phương pháp đề xuất trong mục 2.2.2
- Thử nghiệm xe chạy trên đường có người lái.
Một lần nữa nhóm chúng em xin chân thành cảm ơn sự hướng dẫn, giúp đỡ tận tình của thầy giáo TS. Nguyễn Hồng Quang, thầy giáo Nguyễn Duy Đỉnh và các thầy cô trong bộ môn Tự Động Hóa đã nhiệt tình giúp đỡ, động viên và tạo điều kiện trong quá trình chúng em làm đồ án tại phòng C9-102 cũng như trong suốt những năm học chuyên ngành vừa qua.
Em xin chân thành cảm ơn.
Hà Nội, ngày 5 tháng 06 năm 2013
Sinh viên thực hiện
Tài liệu tham khảo
TÀI LIỆU THAM KHẢO
[1] A. Kadis, D. Caldecott, A. Edwards, M. Jerbic, R. Madigan, M. Haynes, B.Cazzolato and Z. Prime, “Modelling, simulation and control of an electric unicycle”, The University of Adelaide, Australia, 2010.
[2] Nguyễn Hồng Quang, Nguyễn Hoàng Anh, “Nghiên cứu, thiết kế và chế tạo xe 2 bánh tự cân bằng”, Công trình dự thi giải thưởng “Sinh viên nghiên cứu khoa học”,2007.
[3] Nguyễn Gia Minh Thảo, Mai Tuấn Đạt, Dương Hoài Nghĩa, Nguyễn Hữu Phúc, “Nonlinear Controllers For Two – Wheeled Self – Balancing Robot”, The 2011 ASEAN Symposium Control, Ho Chi Minh City, Viet Nam, November 8-9, 2011. [4] Nguyễn Gia Minh Thảo, Mai Tuấn Đạt, Dương Hoài Nghĩa, Nguyễn Hữu Phúc,
“A PID Backstepping Controller For Two – Wheeled Self – Balancing Robot”,
IFOST 2010 Proceedings, Ulsan, South Korea, 13 – 15 October, 2010.
[5] Nguyễn Mạnh Tiến, Điều khiển robot công nghiệp, NXB Khoa Học Kỹ Thuật, 2009
[6] http://en.wikipedia.org/wiki/Inertial_measurement_unit
[7] http://web.mit.edu/scolton/www/filter.pdf
[8] http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-333-aircraft-stability and-control-fall-2004/lecture-notes/l15_filter_examp.pdf
[9] Greg Welch and Gary Bishop, “An Introduction to the Kalman Filter”, University of North Carolina at Chapel Hill, Chapel Hill, 2006.
[10] Mai Tuấn Đạt, “ Xe hai bánh tự cân bằng di chuyển trên địa hình phẳng”, Luận văn tốt nghiệp đại học chuyên ngành cơ khí, Đại học Bách Khoa HCM, 2005. [11] http://www.segway.com/
[12] http://focusdesigns.com/sbuv3/
Tài liệu tham khảo
[14] Bùi Quốc Khánh, Nguyễn Văn Liễn, Cơ sở truyền động điện, NXB Khoa Học và Kỹ Thuật, 2006.
[15] AN885, “Brushless DC Motor Fundamentals”, Microchip.
[16] B. K. Bose, Modern Power Electronics And AC Driver, Prentice Hall PTR, 2002. [17] Nguyễn Duy Đỉnh, “Đề xuất thuật toán điều khiển động cơ phát động và thuật
toán điều khiển chuyển động xe điện, thử nghiệm trên xe điện 3 bánh HUT-1”, Đồ án tốt nghiệp ngành Tự Động Hóa, Đại học Bách Khoa Hà Nội, 2009.
[18] Nguyễn Thế Năng, “Cải tiến phương pháp điều khiển “Giả vectơ” cho động cơ một chiều không chổi than”, Đồ án tốt nghiệp ngành Tự Động Hóa, Đại học Bách Khoa Hà Nội, 2012.
[19] Shane W. Colton, “Design and Prototyping Methods for Brushless Motors and Motor Control”, Massachusetts Institute of Technology, 2010.
[20] http://www.4qdtec.com/pwm-01.html
[21] DT98-2A, “Boostrap Component Selection For Control IC’s”, International Rectifier.
[22] http://www.enicycle.com/
Phụ lục
PHỤ LỤC
P1. Các bảng số liệu dùng trong mô phỏng
Bảng P1.1. Tham số mô phỏng cho động cơ
Tham số Giá trị Công suất định mức 54 [W] Tốc độ định mức 1500 [rpm] Mômen định mức 0.343 [ Nm] Số đôi cực 4 Điện áp định mức 36 [V] Dòng điện định mức 2 [A] Điện trở stator 0.8 [Ω] Điện cảm stator 2.14 [mH] Hằng số sức phản điện động 0.018 [V/rpm] Từ thông rotor 0.021486 [Wb]
Bảng P1.2. Thông số bánh và thân xe sử dụng trong mô phỏng
Tham số Giá trị
Bán kính bánh xe 0,225 [m]
Khối lượng bánh xe 8 [kg]
Chiều dài khung 0,8 [m]
Chiều rộng khung 0.3 [m]
Khối lượng khung 50 [kg]
Phụ lục
P2. Chƣơng trình khởi tạo tham số mô phỏng cân bằng xe
clear; % khung xe b=0.8; c=0.3; mf=50; rf=0.68; Jf=1/12*mf*(b.^2+c.^2); % banh xe mw=6; rw=0.225; Jw=1/2*mw*rw.^2; % Cac hang so me= mw + mf+ Jw/rw.^2; g=10; % Thong so dong co %Kt= % He so mo men
% g= % Gia toc trong truong
% Cac ma tran he so ms=me*(mf.^2*rf.^2+Jf)-mf.^2*rf.^2; k1=-mf.^2*rf.^2*g/ms; k2=(mf.^2*rf.^2+Jf)/(rw*ms); k3=me*mf*rf*g/ms; k4=-mf*rf/(rw*ms);
P3. Code thuật toán lọc Kalman mô phỏng
%Khai bao cho Kalman
accelnoise = 0.005; gyronoise = 0.001; accelnoise1 = 0.05 a = [1 -dt;0 1]; b = [dt;0]; c = [1 0];
Xhat = [0;0]; %intial estimate
R = 0.03; %meas noise cov
Q = [0.001 0; 0 0.004];%process noise cov
P = Q;%initial cov estimate error
biashat=[];%bias estimate
thetahat = [];%theta estimate
thetameas = []; theta = []; for i =1:1:length(Ua), if(i==1) U= 0; else U=Ua(i-1);
%simulate linear system
end
% Simulate the noisy measurement
Y=Ya(i);
Phụ lục
%Predict update
Xhat = a * Xhat + b * U;
% Form the Innovation vector.
Inn = Y - c * Xhat; P = a*P*a' + Q;
% Compute the covariance of the Innovation.
s = c * P * c' + R;
%Meas update
% Form the Kalman Gain matrix.
K = (P * c')/s;
% Update the state estimate.
Xhat = Xhat + K * Inn;
% Compute the covariance of the estimation error.
P = ([1 0;0 1] - K*c)*P;
% Save some parameters for plotting later.
% theta(i) = X(i); thetameas(i) = Y; thetahat(i) = Xhat(1); biashat(i) = Xhat(2); end