CHƯƠNG 4 : MÔ PHỎNG HỆ PENDUBOT BẰNG MATLAB
5.4 Thiết kế chương trình điều khiển Pendubot
5.4.4 Khối truyền tín hiệu hiển thị lên máy tính (SCI transfer data to PC)
Khối này nhận tín hiệu từ các khối đọc xung và khối điều khiển giải thuật từ đó chuyển các giá trị nhận được thành mã ASCII truyền lên máy tính thơng qua
giao thức SCI/UART. Các giá trị truyền thành dạng frame truyền chuỗi và kết thúc ký tự xuống dịng.
Trên máy tính một chương trình windows form sẽ nhận các giá trị được gửi lên từ board điều khiển, hiển thị và vẽ đồ thị online. Vì các yêu cầu ngắt trong chương trình windows form nên việc hiển thị thực hiện với chu kỳ 50ms, nhưng các đồ thị đáp ứng và phản ánh đúng các giá trị đo đạc.
5.4.5 Chương trình điều khiển swing up dung phương pháp điều khiển hồi tiếp tuyến tính hóa riêng phần và giữ cân bằng hệ Pendubot dùng phương pháp điều khiển LQR
5.4.5.1 Chương trình thực tế của bộ điều khiển
Bộ điều khiển hồi tiếp tiếp tuyến tính hóa riêng phần sẽ điều khiển hệ
pendubot swing-up từ vị trí cân bằng hướng xuống / 2 0 0 0 tới vị trí cân
bằng khơng ổn định hướng lên / 2 0 0 0
Bộ điều khiển LQR sẽ điều khiển hệ pendubot giữ cân bằng nếu các góc nằm
trong tầm điều khiển sau: 1
7 7 q và 2 7 7 q . Nếu các góc nằm ngồi
giới hạn trên thì bộ điều khiển sẽ cho hệ thống Swing-up lại. Xây dựng mơ hình điều khiển hệ thống đã rời rạc hóa như sau:
Hình 5.25 Chương trình điều khiển hệ Pendubot thực tế
Trong đó các khối được thể hiện trong mơ hình có ý nghĩa như sau:
+ Khối eQEP1, có tác dụng đọc encoder gắn trên đọc cơ. Do encoder đọc
được từ giá trị 0 đến giá trị tràn do ta đặt rồi quay về giá trị 0 (khơng có giá trị <0 để xác định được góc âm) nên ta phải biến đổi quay về giá trị encoder đọc được giá trị góc tương ứng với thực tế. Do encoder loại 400 xung/vòng, sau khi đọc từ DSP, số xung đọc được mỗi vòng là 1600 xung. Ở đây học viên lấy giá trị thẳng đứng là
2
, chiều dương của góc lệch của link1 cùng chiều kim đồng hồ. Như vậy ta biến đổi sao cho vị trí thẳng đứng hướng lên là
2
, quaytheo chiều kim đồng hồ thì giá trị dương, ngược kim đồng hồ là giá trị âm. Việc biến đổi này được thực hiện trong
khối xu ly goc link1. Sau khi tín hiệu từ encoder đưa về được xử lý xong, chuyển
qua bộ “goc link1 thanh radian” chuyên đổi sang dạng radian (vì trong định dạng của ta là radian).
+ Khối eQEP2 có tác dụng đọc encoder gắn trên link2.
+ Các khối Embedded matlab “read2” có nhiệm vụ biến các giá trị góc lệch link1, link2, điện áp đặt vào động cơ thành các ký tự mã ASCII truyền lên cổng COM của máy tính, dùng cho việc thu thập dữ liệu
+ Các khối Embedded matlab “LQR balance control”, “Swing up Feedback control” “lua chon bo dieu khien” chứa chương trình giải thuật thực hiện xuất tín hiệu điều khiển động cơ khi có tín hiệu tương ứng. Các tín hiệu của khối này là:
- Ngõ vào (q1, q1_dot, q2, q2_dot) tương tướng với các giá trị biến trạng thái hệ thống.
- Ngõ ra “u” giá trị độ lớn độ rộng xung để điều khiển động cơ quay chậm hay nhanh.
- Ngõ ra “sign u” giá trị chiều quay của động cơ. Nếu “sign u” = 0 thì động cơ quay ngược kim đồng hồ. Ngược lại nếu “sign u” = 1 thì động cơ quay cùng chiều kim đồng hồ
- Ngõ ra “dien ap gui len” cung cấp giá trị điện áp đặt vào động cơ được chuyển đổi lên máy tính để thu thập giá trị của hệ thống.
+ Khối “SCI Transmit” có nhiệm vụ đưa các giá trị góc lệch của link1 và link2, vận tốc góc link1, link2 (tính theo rad), điện áp cấp cho động cơ (tính theo v). Tất cả các giá trị tham số được thu thập thông qua cổng COM.
+ Khối ePWM là khơi tạo xung. Việc điều xung này có tác dụng điều khiển động cơ thay đổi moment để cân bằng link1 và link2 ở tại vị trí cân bằng trên.