KẾT QUẢ MÔ HÌNH THỰC TẾ CON LẮC NGƯỢC KÉP
6.1 Xây dựng chương trình điều khiển trong Simulink
Xây dựng mô hình điều khiển hệ thống đã rời rạc hóa như sau:
Trong đó, các khối được thể hiện trong mô hình có ý nghĩa như sau:
Khối eQEP có tên “Con lac thu hai” có tác dụng đọc encoder gắn với con lắc thứ hai. 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 giá trị encoder đọc được về giá trị góc tương ứng với thực tế. Ở đây, học viên lấy giá trị vị trí thẳng đứng hướng lên là 0, chiều dương của góc lệch con lắc thứ hai cùng chiều với chiều quay của đồng hồ. Như vậy, phải biến đổi giá trị đọc được của encoder sao cho ở vị trí thẳng đứng hướng lên là 0, quay theo chiều kim đồng hồ thì giá trị sẽ dương, quay ngược chiều kim đồng hồ từ vị trí 0 thì giá trị đọc về là âm. Việc biến đổi này được thực hiện trong khối “xu ly goc link 2”. Vì encoder của con lắc thứ hai được gắn trên đầu trục của con lắc thứ nhất, nên để tính được góc lệch thực tế của con lắc thứ hai so với vị trí thẳng đứng hướng lên, cần cộng thêm giá trị góc hiện tại của con lắc thứ nhất. Khối “Add” được dùng để cộng hai giá trị encoder đọc được, giá trị sau khối “Add” là giá trị góc của con lắc thứ hai so với phương thẳng đứng hướng lên.
Khối eQEP có tên “Con lac thu nhat” có tác dụng đọc encoder gắn cố định trên con trượt, được gắn với con lắc thứ nhất. Do encoder loại 1024 xung/vòng, sau khi đọc từ DSP, số xung đọc được mỗi vòng là 4096 xung. Tương tự như encoder của con lắc thứ hai, ta phải biến đổi giá trị xung đọc về thành giá trị góc lệch của con lắc. Quy ước phương thẳng đứng hướng lên là giá trị 0, chiều dương cùng chiều quay đồng hồ. Ta xử lý giá trị xung DSP đọc được từ encoder thành giá trị góc của con lắc thứ nhất bằng khối xử lý “xu ly goc link 1”.
Khối SCI RCV có tên “SCI Receive” có nhiệm vụ nhận giá trị gửi về từ vi xử lý ARM Cotex M3. Vi xử lý ARM M3 có nhiệm vụ đọc encoder gắn đồng trục với động cơ, giá trị đọc được của encoder được chuyển thành ký tự, sau đó gửi lên DSP. Từ các kí tự lưu giá trị đọc được của encoder gắn trên trục động cơ, ta suy ra vị trí hiện tại của con trượt trên thanh ray. Vẫn phải chuyển đổi giá trị đọc được của
65
encoder sang giá trị thực tế của hệ thống, việc chuyển đổi này được thực hiện trong khối “xu ly goc link dong co”.
Các khối Embedded Matlab “Read”, “Read2”, “Numtochar_encoder” và “tttt” có nhiệm vụ biến các giá trị góc lệch con lắc thứ hai, con lắc thứ nhất, vị trí con trượt, đ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 “Bo dieu khien” chứa chương trình giải thuật thực hiện xuất tín hiện điều khiển động cơ khi có các tín hiệu ngõ vào tương ứng. Bên trong khối điều khiển này, các giải thuật điều khiển sẽ được đưa vào, tùy thuộc vào giải thuật đã được thiết kế ở phần trước. Các tín hiệu của khối này là:
o Ngõ vào tương ứng với giá trị các biến
trạng thái của hệ thống.
o Ngõ ra “dien ap PWM”: giá trị độ lớn độ rộng xung để điều khiển động cơ quay nhanh hay chậm.
o Ngõ ra “dao chieu dong co”: giá trị chiều quay của động cơ. Nếu “dao chieu dong co”=0 thì động cơ quay ngược kim đồng hồ (chạy nghịch). Ngược lại, nếu bằng 1 thì động cơ quay cùng chiều kim đồng hồ (chạy thuận).
o Ngõ ra “Dien ap gui len PC”: cung cấp giá trị điện áp đặt vào động cơ, được chuyển đổi để gử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 con lắc thứ nhất và thứ hai (tính theo rad), vị trí con trượt (tính theo m), vận tốc góc con lắc thứ nhất và thứ hai (tính theo rad/s), vận tốc con trượt (tính theo m/s) và đ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 (các giá trị được đưa qua khối MUX trước khi vào khối SCI Transmit.
Khối “ePWM” là một khối tạo xung. Việc điều xung này có tác dụng điều khiển động cơ kéo con trượt, thay đổi vị trí của con trượt để cân bằng hai con lắc ở phía trên.