Chi tiết chương trình điều khiển

Một phần của tài liệu điều khiển cân bằng con lắc ngược sử dụng phương pháp đa thức (Trang 34 - 47)

Hình 3.10: Sơ đồ chương trình chính

Lưu đồ điều khiển của chương trình chính Hình 3.10 bao gồm ba khối chính tương tự như mục trước. Ngoài ra, khối Digital Input đóng vai trò là một khóa chuyển đổi giữa hai giải thuật điều khiển.

Khối nhận xung từ Encoder:

Khối nhận xung từ Encoder vị trí xe

Hình 3.11: Khối nhận xung từ Encoder vị trí xe

Cấu hình cho module eQEP ở Hình 3.11, trong phạm vi đề tài này ta cấu hình 3 tab General, Position Counter và Signal data types (Hình 3.12, 3.13, 3.14) như sau:

22

Tab General: Ta chọn module quản lý việc nhận xung từ Encoder vị

trí xe là module eEQP1, chế độ đếm dạng xung vuông và chiều dương quy ước là chiều cùng chiều kim đồng hồ.

Hình 3.12: Cấu hình Tab General module eEQP

Tab Position Counter: Ta chọn vào checkbox Output position counter để nhận được giá trị đếm ở ngõ ra của module, với chế độ reset được chọn là Reset on the maximum Position ta đặt giá trị đếm lên cao nhất của thanh ghi là 100000 để thuận tiện cho quá trình xử lý khi Encoder không phải reset trong suốt quá trình chạy.

23

Hình 3.13: Cấu hình Tab Position Counter module eEQP

Tab Signal data types: Để có thể lưu trữ giá trị đếm của thanh ghi ta

chọn kiểu dữ liệu cho thanh ghi này là uint32.

24

Khối nhận xung từ Ecoder đo góc lệch

Hình 3.15: Khối nhận xung từ Encoder đo góc lệch

Cấu hình cho module eEQP ở Hình 3.15 trong phạm vi đề tài ta chỉ cấu hình 3 tab General, Position Counter và Signal data types (Hình 3.16, 3.17, 3.18) như sau:

Tab General: Ta chọn module quản lý việc nhận xung từ Encoder đo góc lệch là module eEQP2, chế độ đếm dạng xung vuông và chiều dương quy ước là ngược chiều kim đồng hồ.

25

Tab Position Counter: Ta chọn vào checkbox Output position counter để ghi nhận được giá trị đếm ở ngõ ra của module, với chế độ reset được chọn là Reset on the maximum Position ta đặt giá trị đếm lên cao nhất của thanh ghi là 81920 để thuận tiện cho quá trình xử lý Encoder không phải reset trong suốt quá trình chạy.

Hình 3.17: Cấu hình Tab Position Counter module eEQP1

Tab Signal data types: Để có thể lưu trữ giá trị đếm của thanh ghi ta

26

Hình 3.18: Cấu hình Tab Signal data types module eEQP1

Bộ điều khiển

Hình 3.19: Sơ đồ chương trình bộ điều khiển

Hình 3.19 thông qua tác động của khối Digital Input, khi khối Digital Input được tác động mức cao, bộ điều khiển sẽ được thực thi.

27

Khối cho phép gửi dữ liệu lên máy tính (adsbygoogle = window.adsbygoogle || []).push({});

Hình 3.20: Khối cho phép gửi dữ liệu lên máy tính

Hình 3.21: Cấu trúc bên trong khối gửi dữ liệu lên máy tính

Khối Enable Signal (Hình 3.20) và cấu trúc bên trong khối gửi dữ liệu lên máy tính (Hình 3.21) đóng vai trò cho phép việc vẽ các biểu đồ thông qua các dữ liệu gửi lên máy tính một cách chính xác và thuận tiện cho việc quan sát việc điều khiển mô hình.

Khối chương trình chính

Hình 3.22: Khối chương trình chính

Khối chương trình chính (Hình 3.22) bao gồm 6 khối chương trình con Hình 3.23 thực hiện nhiệm vụ tính toán giá trị % xung PWM dùng để điều khiển động cơ dựa trên số xung nhận được từ hai Encoder.

28

Hình 3.23: Cấu trúc bên trong khối chương trình chính

Khối tính toán giá trị xung từ Encoder

Hình 3.24: Khối tính toán giá trị xung từ Encoder

Hình 3.25: Cấu trúc bên trong khối tính toán giá trị xung từ Encoder

Hình 3.24 và Hình 3.25 thể hiện cấu trúc khối tính toán giá trị xung từ Encoder. Sau khi nhận xung từ Encoder vị trí, tùy thuộc vào giá trị xung lấy về này

29

mà ta sẽ đưa vào hai khối Gain để tính toán ra giá trị tức thời của xe ở đơn vị mm. Trong đó, giá trị khối Gain là: (19.75 x 2 x pi)/8192 và khối Gain1 là -(19.75 x 2 x pi)/8192.

Tương tự như trên, từ giá trị xung lấy về từ Encoder đo góc lệch, ta sẽ đưa vào khối Gain để tính được giá trị góc lệch tức thời so với trạng thái lúc đầu của con lắc ở đơn vị độ. Trong đó, giá trị khối PulseToDegree là: 180/4096.

Khối chuyển đổi dữ liệu và feedback

Hình 3.26: Khối chuyển đổi dữ liệu và feedback

Khối chuyển dữ liệu và feedback (Hình 3.26) đảm nhận nhiệm vụ đơn giản đó là chuyển đổi 2 giá trị tính toán được từ khối tính toán xung sang hai đơn vị đó là metre và radian, trước khi gửi về so sánh với giá trị đặt để chuyển vào bộ điều khiển.

Khối hiệu chỉnh điện áp

Khối hiệu chỉnh giá trị điện áp Hình 3.27 có vai trò tính toán ra giá trị phần tram PWM từ giá trị điện áp ở đầu ra của bộ điều khiển, đồng thời dựa vào giá trị này set, clear tương ứng GPIO 10 tương ứng với chiều chuyển động dương hay âm của xe.

30

Hình 3.27: Khối hiệu chỉnh giá trị điện áp

Khối cho phép gửi xung PWM

Hình 3.28: Khối cho phép gửi xung PWM

Khối cho phép gửi xung PWM Hình 3.28 đảm nhận chức năng kiểm tra sai lệch góc đến một giới hạn quy định mới cho phép bật xung PWM để điều khiển, đồng thời khối cũng có vai trò ngưng cấp xung PWM khi xe di chuyển đến hai vị trí giới hạn đầu và cuối nhằm đảm bảo an toàn cho mô hình trong trường hợp có sự cố xảy ra.

31

Khối hiệu chỉnh dữ liệu trước khi gửi lên máy tính

Hình 3.29: Khối hiệu chỉnh dữ liệu

Hình 3.30: Khối hiệu chỉnh dữ liệu số có dấu

Khối hiệu chỉnh dữ liệu (Hình 3.29, 3.30) có vai trò chuyển đổi các giá trị vị trí, góc lệch, điện áp thành các mã ASCII tương ứng để có thể gửi lên máy tính, thuận tiện cho việc giám sát trên máy tính. (adsbygoogle = window.adsbygoogle || []).push({});

32

Khối Poly Controller

Hình 3.31: Khối Poly Controller

Khối Poly Controller (Hình 3.31) đảm nhiệm nhận giá trị sai lệch của vị trí và góc lệch, sau đó đưa vào bộ điều khiển Poly Controller để cho ra giá trị điện áp điều khiển động cơ.

Khối nhận xung PWM

Hình 3.32: Khối nhận xung PWM

Cấu hình cho module ePWM (Hình 3.32) trong phạm vi đề tài ta chỉ cấu hình 2 tab General và ePWMA (Hình 3.33, 3.34) như sau:

33

Tab General: Ta chọn module quản lý việc nhận xung PWM là ePWM1, với chế độ đếm lên. Với việc MCU DSP TMS320F288335 hoạt động ở tần số 150MHz, ta cấu hình với Timer period là 15000.

Hình 3.33: Cấu hình Tab General module ePWM

Tab ePWMA: Ta chọn vào checkbox Enable ePWMA để cho phép việc gửi xung ePWM thông qua kênh A dưới dạng là phần tram, và giá trị phần trăm này sẽ được gán thông qua Input port từ đầu ra của bộ điều khiển.

34

Hình 3.34: Cấu hình Tab Position Counter module ePWM

Một phần của tài liệu điều khiển cân bằng con lắc ngược sử dụng phương pháp đa thức (Trang 34 - 47)