Kết quả thí nghiệm trên mô hình như sau:
Con lắc cân bằng được nhưng còn dao động. Xe còn dao động xung quanh vị trí đặt.
35
CHƯƠNG 4
KẾT LUẬN VÀ ĐỀ NGHỊ
Với kết quả thu được từ thực tế điều khiển, luận văn đã đạt được những yêu cầu mục tiêu như sau:
Xây dựng được bộ điều khiển dùng Phương pháp đa thức bằng công cụ MATLAB – Simulink và mô phỏng điều khiển hệ con lắc ngược thành công với mô hình toán.
Kiểm chứng thuật toán với mô hình thật cho kết quả chưa tốt vì chưa giữ được vị trí xe tại một vị trí xác định, con lắc giữ được cân bằng trong 1 phút 48 giây, biên độ dao động khoảng 0.05 rad.
Việc lựa chọn thông số cho bộ điều khiển phải trãi qua bước tuyến tính hóa mô hình toán của hệ thống con lắc ngược. Các thông số của bộ điều khiển tìm được chưa thật sự chính xác, nên việc điều khiển chưa thật sự tốt.
Kiến nghị về hướng phát triển:
Do việc xác định các thông số của bộ điều khiển chưa thật sự chính xác nên việc kết hợp giữa phương pháp đa thức và giải thuật mờ là một hướng phát triển khả quan để tìm bộ điều khiển tốt hơn nhằm điều khiển mô hình tốt hơn. Với phương pháp đa thức, bộ điều khiển được thiết kế sẽ cho đáp ứng nhanh và không vọt lố. Và với bộ điều khiển được thiết kế dùng giải thuật mờ sẽ tạo nên bộ điều khiển tốt và linh hoạt hơn đối với những loại thông tin chưa đầy đủ và thiếu chính xác.
36
TÀI LIỆU THAM KHẢO
[1] J. Yi, N. Yubazaki. Stabilization fuzzy control of inverted pendulum
systems. Artificial Intelligence in Engineering 14 (2000) 153–163.
Technology Research Center, Mycom, Inc., 12, S. Shimobano, Saga Hirosawa, Ukyo, Kyoto 616-8303, Japan.
[2] Sudeep Sharma, Vijay Kumar, Raj Kumar. Intelligent Control of Fuzzy Logic Systems. Intelligent Systems and Applications, Electronics & Computer Engineering Department, IIT Roorkee, Roorkee, Hardwar, 2012. [3] Đặng Hải Đăng, Nguyễn Ngô Phong. Điều khiển thời gian thực con lắc ngược sử dụng thuật toán PD mờ. Luận văn tốt nghiệp đại học Trường Đại học Cần Thơ. Cần Thơ, 2012.
[4] Yue Qiao, Lin Zhou, Chengbin Ma. Polynomial-Method-based SIMO Controller Design for A Double Inverted Pendulum. Univ. of Michigan- Shanghai Jiao Tong.
[5] S.Manabe. Importance of Coefficient Diagram in polynomial method.
Proceeding of the 42nd IEEE Conference on Decision and Control, Maui, Hawaii USA, pp. 3489-3494, 2003.
[6] K. S. R. Hirokawa and S. Manabe. Autopilot design for a missile with reaction-jet using coefficient diagram method. Proceeding of AIAA Guidance, Navigation and Control Conference, Montreal, Canada, pp. 1C8, 2001.
[7] Youngchol Kim, Keunsik Kim and Shunji Manabe. Sensitivity of
response to charactistic ratios. Proceeding of the 2014 American Control Conference, Boston, Massachusetts June 30 – July 2, 2004.
[8] Nguyễn Văn Khanh, Nguyễn Vĩnh Hảo, Nguyễn Ngô Phong. Điều khiển cân bằng con lắc ngược sử dụng bộ điều khiển cuốn chiếu. Tạp chí Khoa học Trường Đại Học Cần Thơ, 31, 2014.
[9] TMS320F28335 Experimenter Kit.
37
PHỤ LỤC A: TỔNG QUAN VỀ MẠCH ĐIỆN
1. Sơ đồ kết nối mạch điện
Hình A.1: Sơ đồ khối kết nối mạch điện
Phần mạch điện điều khiển [3] trong luận văn được kết nối như Hình A.1 và mỗi board có nhiệm vụ cụ thể như sau:
Board điều khiển trung tâm có nhiệm vụ nhận xung encoder đã chuyển đổi, thực hiện các phép chuyển đổi tương ứng để xác định được vị trí xe và góc lệch con lắc. Sau đó đưa vào bộ điều khiển để xác định được điện áp điều khiển phù hợp.
Mạch chuyển mức logic có nhiệm vụ nhận xung từ hai encoder, chuyển sang mức điện áp phù hợp để đưa vào board điều khiển trung tâm.
Board điều khiển công suất động cơ có nhiệm vụ nhận tín hiệu điều khiển PWM từ board điều khiển trung tâm, cũng như hướng chuyển động để tạo giá trị điện áp tương ứng cấp cho động cơ.
Giao tiếp máy tính (RS232)
Board điều khiển trung tâm
Mạch công suất điều khiển động cơ
Động cơ Mạch chuyển mức logic Encoder xác định vị trí xe Encoder xác định góc lệch Nguồn cấp 12V Nguồn cấp24V
38
2. Mạch điều khiển trung tâm
Mạch điểu khiển trung tâm (Hình A.2) được sử dụng đó là Docking TMS320F28335 được tích hợp sẵn dòng vi điều khiển DSP tương ứng. Trong đề tài luận văn, 2 dây tín hiệu A, B của encoder vị trí được kết nối vào các GPIO 20, 21; 2 dây tín hiệu A, B của encoder góc lệch được kết nối vào các GPIO 24, 25. Sau khi thực hiện các phép tính toán, bộ điều khiển sẽ xuất tín hiệu PWM và hướng thông qua các GPIO 0 và GPIO 10 sang board công suất điều khiển động cơ.
Hình A.2: Mạch điều khiển trung tâm [9]
USB Docking Station
USB Docking Station là một board mạch chủ có khả năng tương thích với các dạng khác nhau của dòng F28xx Control Card của hang TI. Thông qua việc kết nối giữa Docking Station (Hình A.3) và Control Card (Hình A.4), tất cả các chức năng của vi điều khiển TMS320F28335 (Hình A.5) có thể được truy cập một cách dễ dàng. Đồng thời, ở hai phía của rảnh kết nối DIMM100 có hỗ trợ các rảnh để thuận tiện cho việc mở rộng các kết nối của board.
Các đặc tính quan trọng của Docking Station gồm: Hỗ trợ kết nối USB.
39 Các khu vực nguồn 5V, 3.3V.
Tất cả các headers pin kết nối đều được chú dẫn rõ rang.
Hình A.3: USB Docking Station [9]
F28335 Delfino Family Control Card
Control Card là các Card ở dạng plug in có khả năng kết nối nhanh chóng với các Docking Station mà không cần phải cấu hình. F28335 Control Card hỗ trợ việc truy cập tất cả các chức năng của vi điều khiển TMS320F28335 một cách dễ dàng, chính xác, đáng tin cậy thông qua việc loại bỏ các tín hiệu nhiễu từ môi trường.
Hình A.4: F28335 Delfino Family Control Card [9] Các đặc tính quan trọng của Control Card:
Kích thước nhỏ 90 mm x 25 mm. Hoạt động ở mức điện áp 5V.
Hỗ trợ các bộ lộc nhiễu tại các port ADC. Hỗ trợ giao tiếp R232.
40
Vi điều khiển TMS320F28335:
TMS320F28335 thuộc dòng vi điều khiển 32 bits C2000 của hang TI. Vi điều khiển này được sử dụng chủ yếu trong các ứng dụng thời gian thực thông qua khả năng tính toán đã được tối ưu hóa giúp nâng cao độ chính xác, độ tin cậy của hệ thống.
Hình A.5: Vi điều khiển TMS320F28335 [9] Các đặc tính kỹ thuật của vi điều khiển TMS320F28335:
Tần số hoạt động tối đa là 150MHz.
Nguồn 1.9V/1.8V cho vi xử lí, 3.3V cho I/O. 32 bit CPU có tốc độ xử lý nhanh.
6 kênh DMA Controller phục vụ cho ADC, McBSP, ePWM, XINTF, SARAM.
256K x 16 Flash bộ nhớ RAM dữ liệu. 34K x 16 SARAM.
8K x 16 bộ nhớ ROM dữ liệu không mất khi mất nguồn. 128 bit mã bảo vệ bộ nhớ dữ liệu.
18 đầu ra PWM. 2 đầu vào encoder. 8 Timer 32 bit. 9 Timer 16 bit. 2 CAN Module. 3 UART Module. 2 McBSP Module.
Mức dòng cho các chân I/O là 4 mA. 16 kênh ADC 12 bit.
41
3. Mạch chuyển mức logic
Mạch chuyển mức logic (Hình A.6) sử dụng cầu chia điện thế với yêu cầu chuyển mức điện áp ngõ ra của encoder 6V thành 3V để chuyển xung nhận được đưa vào board điều khiển trung tâm, giá trị điện trở sử dụng cho cầu chia điện thế là 3.3K Ohm.
Hình A.6: Mạch chuyển mức logic
4. Mạch công suất điều khiển động cơ
Mạch công suất điều khiển động cơ (Hình A.7) sử dụng opto xung 6N137 và IC LMD18200T. Trong luận văn này, sau khi nhận tín hiệu từ hai GPIO 0 và GPIO 10 được kết nối tương ứng vào các cổng PWM và DIR, board sẽ tạo ra điện áp tương ứng để điều khiển động cơ.
42
PHỤ LỤC B: PHẦN LẬP TRÌNH
1. Chương trình mô phỏng và lập trình MATLAB R2013a [3]
Simulink là một công cụ trong MATLAB dùng để mô hình, mô phỏng và phân tích các hệ thống với môi trường giao diện sử dụng đồ họa. Việc xây dựng mô hình được đơn giản hóa bằng các hoạt động nhấp chuột và kéo thả. Simulink bao gồm một thư viện công cụ đảm bảo cho việc phân hệ tuyến tính và phi tuyến. Simulink là một phần quan trọng của MATLAB và có thể chuyển đổi dễ dàng qua lại trong quá trình lập trình.
Khởi động Simulink
Để có thể làm việc với Simulink, trước hết ta phải khởi động MATLAB. Từ cửa sổ làm việc của MATLAB ta chỉ cần nhấn vào biểu tượng Simulink hay trong cửa sổ Command Window để khởi động chương trình này .
Hình B.1: Khởi động Simulink
Sau khi khởi động chương trình Simulink, ta có giao diện như sau:
43
Hình B.2 là giao diện chính của Simulink, Simulink phân biệt hai loại khối chức năng: khối ảo và khối thực. Các khối thực đóng vai trò quyết định trong khi chạy mô phỏng Simulink. Việc thêm hay bớt một khối thực sẽ thay đổi đặc tính động học của hệ thống mà Simulink đang mô tả. Ngược lại, các khối ảo chỉ có nhiệm vụ thay đổi diện mạo của mô hình Simulink như khối Mux hay Demux,…
Các thao tác cơ bản với Simulink:
Tạo mới: từ cửa sổ thư viện (Library) hay từ cửa sổ truy cập thư
viện (Library Browser) ta có thể tạo ra các cửa sổ mô phỏng mới bằng cách đi theo menu File/New/Model.
Sao chép: bằng cách “Drap and Drop” bằng chuột phải là có thể
sao chép một khối từ các thư viện.
Di chuyển: ta có thể di chuyển các khối hoặc các đường nối trong
phạm vi cửa sổ làm việc bằng phím chuột trái.
Xóa: có thể xóa các khối hoặc các đường nối đã đánh dấu bằng
cách ấn phím delete hoặc theo menu Edit/Clear.
Nối hai khối: dùng phím chuột trái nháy vào đầu ra của một khối,
sau đó di chuyển mũi tên của chuột đến điểm cần nối. Sau khi thả ngón tay khỏi chuột, đường nối tự động được tạo ra.
Định dạng cho một khối: sau khi nháy phím chuột phải vào một
khối, cửa sổ định dạng khối được tạo ra. Tại cửa sổ Format ta có thể lựa chọn kiểu và kích cở chữ, có thể lật hay xoay khối. Hai mục Foreground Color và Background cho phép ta đặt màu nền của đường viền và màu nền của khối.
Tín hiệu và các loại dữ liệu Làm việc với tín hiệu
Trong Simulink phân loại ba kiểu kích cở dữ liệu: Tín hiệu đơn.
Vector tín hiệu: còn gọi là tín hiệu 1-D, vì kích cỡ của tín hiệu chỉ được xác định theo một chiều với độ dài n.
Ma trận tín hiệu: còn được gọi là tín hiệu 2-D, vì kích cỡ của tín hiệu được xác định theo hai chiều [m x n].
44
Làm việc với các loại dữ liệu
Mỗi tín hiệu thuộc sơ đồ cấu trúc Simulink đều được gán cho một kiểu dữ liệu. Simulink hỗ trợ các kiểu dữ liệu sau:
Double: chính xác cao, dấu phẩy động. Single: chính xác vừa, dấu phẩy động.
Int8, uint8, int16, uint16, int32, uint32: số nguyên 8, 16, 32 bit có dấu hoặc không dấu.
Boolean: biến logic 0 hoặc 1.
Loại dữ liệu mặc định sẵn của Simulink đó là double. Khả năng khai báo, xác định số liệu của tín hiệu cũng như tham số thuộc các khối chức năng trong Simulink có ý nghĩa đặc biệt quan trọng đối với các ứng dụng chạy trong thời gian thực do nhu cầu về bộ nhớ và khả năng tính toán sẽ ảnh hưởng đến đáp ứng của hệ thống
Khai báo tham số cho mô phỏng và build code
Trước khi tiến hành mô phỏng, ta cũng phải tiến hành khai báo các tham số thông qua hộp thoại Configuration Parameters. Tại đây tất cả các tham số đều đã có mang một giá trị mặc định sẵn, ta chỉ chỉnh lại một số tham số tùy thuộc vào đặc tính của hệ thống đang mô phỏng.
Hình B.3: Giao diện cửa sổ Configuration Parameters
Hộp thoại Configuration Parameter (Hình B.3) bao gồm chính Tab, trong phạm vi của đề tài chỉ hiệu chỉnh thông số tại tab Solver.
45
Tại tab Solver ta có thể chỉnh định các thông số như: Thời điểm bắt đầu và kết thúc mô phỏng.
Thuật toán để giải phương trình vi phân. Giám sát các sai số.
Sau khi chỉnh định các thông số mô phỏng, ta có thể tiến hành việc mô phỏng thông qua thanh công cụ ở giao diện chính (Hình B.4).
Hình B.4: Phím Run
Để build code nạp vào phần cứng, ta cấu hình tab Code Generation/Coder Target như Hình B.5 và Hình B.6:
46
Hình B.6: Chọn phần cứng tương ứng
2. Chương trình biên dịch Code Composer Studio Version 5 2.1 Tổng quan về CCSv5
CCSv5 là môi trường tích hợp được TI xây dựng nhằm hỗ trợ người lập trình trong việc tiếp cận và phát triển các ứng dụng có liên quan đến sản phẩm của TI. CCSv5 bao gồm một công cụ hoàn chỉnh dùng để phát triển cũng như chỉnh sửa các hệ thống nhúng đó là:
Trình biên dịch cho các thiết bị của TI. Trình soạn thảo code.
Môi trường xây dụng các dự án, debug cũng như các hệ điều hành thời gian thực,…
Code Composer Studio được xây dựng dựa trên nền tảng framework mã nguồn mở Eclipse. CCS đã kết hợp những ưu điểm của nền tảng Eclipse với khả năng debug được phát triển riêng biệt bởi TI nhằm tạo nhiều thuận lợi cho người lập trình phát triển các ứng dụng nhúng. IDE này có giao diện thân thiện với người dùng thông qua hệ thống thanh công cụ quen thuộc giúp người lập trình nhanh chóng thích nghi.
47
Hình B.7: Giao diện chính của CCSv5
2.2 Một số đặc tính của CCSv5
Resource Explorer: hỗ trợ người dùng thực hiện một cách nhanh chóng các tác vụ quen thuộc như tạo các project như mới, truy cập đến các ví dụ ứng dụng từ phần mềm hỗ trợ đi kèm Control Suite.
Complier: CCS bao gồm trình biên dịch C/C++ tương thích
cho các thiết bị nhúng của hang TI. Trong đó, complier cho dòng vi điều khiển thời gian thực C2000 được hang phát triển một cách mạnh mẽ với cách tính năng giảm thiểu kích thước của file biên dịch nhằm hỗ trợ người lập trình trong việc phát triển các ứng dụng lớn liên quan đến thời gian thực.
System Analyzer: là một công cụ được phát triển nhằm cung
cấp kiểm soát cách thực thi của các đoạn mã code trong các ứng dụng thời gian thực. Đồng thời, System Analyzer cũng cho phép thu thập các thông tin và đưa ra các đánh giá về các thiết bị phần mềm và phần cứng tương ứng.
Image Analyzer: CCS hỗ trợ người lập trình xem các dữ liệu,
biến, hình ảnh và đoạn video ở định dạng tốt nhất.
Scripting: Trong một số ứng dụng có một số tác vụ cần được
kiểm tra liên tục trong khoảng thời gian dài mà không có sự tương tác của người dùng. Để thực hiện các tác vụ như thế, CCS cho phép việc tự động thực hiện liên tục các đoạn mã này để có thể đưa ra các đánh giá chính xác.
48
Trong phạm vi đề tài, CCS chỉ đóng vai trò trung gian giữa phần lập trình Simulink và board điều khiển TMS320F28335. CCS có nhiệm vụ load các đoạn mã tạo ra bởi cấu trúc Simulink và kết nối với board điều khiển để thực hiện các đoạn code này.
2.3 Phương pháp kết nối CCSv5 với TMS320F28335
Để CCS có thể giao tiếp được với board TMS320F28335 ta cần thực hiện những bước co bản sau:
Truy cập Tab Target Configuration: từ cửa sổ giao diện chính, chọn menu View/Target Configuration như Hình B.8:
Hình B.8: Cửa sổ Target Configuration
Tạo file target configuration: từ cửa sổ target configuration chọn User Defined/New Target Configuration như Hình B.9:
49
Cấu hình file target configuration: sau khi tạo được file target configuration nháy kép vào file này ta được cửa sổ cấu hình như Hình B.10 lần lượt lựa chọn kết nối và dạng của board điều khiển.
Hình B.10: Cửa sổ cấu hình file Target Configuration