Phần thu nhập dữ liệu thông qua card USB 9090

Một phần của tài liệu Điều khiển hệ PENDUBOT trên nền LABVIEW (Trang 94)

3. 41 Phương pháp năng lượng

5.2 Phần thu nhập dữ liệu thông qua card USB 9090

Các chức năng của card USB HDL 9090 như thu nhập dữ liệu từ các cảm biến, chế ựộ ON/OFF, ựiều chế xung PWM, Ầ. Chức năng digital input giúp học viên dùng ứng dụng linh hoạt hơn.

Hình 5.8 Card USB 9090

Chức năng của card USB 9090 trong ứng dụng này là cho phép máy tắnh có thể giao tiếp với các thiết bị ngoại vi, hiups cho bộựiều khiển trung tâm máy tắnh có

thể thu nhập dữ liệu, xử lý và xuất tắn hiệu ựiều khiển ựạt ựược ựộ chắnh xác và ổn

ựịnh cao với những tắnh năng của nó như cho phép truy xuất dữ liệu qua cổng USB: Input: Có các chân ựếm Counter (CNT+/CNT-), Tắn hiệu vào dạng số 0-5v (DI1-DI4), Set bộựếm sung lên 5V hay ựếm xuống 0V (DIR), Nhận tắn hiệu tương tự Analog (ADC1-ADC6)

Output: có các chân Tắn hiệu ra dạng số 0-5V (DI1-DI4), Xuất tắn hiệu PWM

ựểựiều khiển (PWM1-PWM2)

Giải thắch các chân của Card USB HDL 9090:

Ký hiệu Mô tả Loại

GND Ground Ờ chân mass Nguồn

VCC Nguồn 5V lấy từ USB Nguồn

CNT+/CNT- Chân ựếm Counter Input

DI1-DI4 Tắn hiệu vào dạng số 0-5v Input

SW1-SW4 Tắn hiệu ra dạng số 0-5V output

DIR Set bộựếm sung lên 5V hay ựếm xuống 0V Input PWM1-PWM2 Xuất tắn hiệu PWM ựể ựiều khiển Output ADC1-ADC6 Nhận tắn hiệu tương tự Analog Input

Bảng 5.1 Bảng các thông số của Card USB HDL 9090

Có thể nói LabVIEW là một ngôn ngữ lập trình-mô phỏng rất mạnh mẽ. Còn rất nhiều toolkit khác mà trong giới hạn ựề tài tác giả không thể trình bày hết, với những tắnh năng vượt trội của card 9090 như tốc ựộ cao hơn 5 lần và chắnh xác hơn 4 lần với các card thế hệ cũ. Chắnh vì vậy trong phần thực hiện ựề tài này, học viên quyết ựịnh chọn card USB 9090 ựể thu nhập và xử lý dữ liệu

Trong các phần tiếp theo của ựề tài học viên sẽứng dụng LabVIEW ựể giao tiếp với thiết bị phần cứng ựể ựiều khiển hệ pendubot với Link2 tự cân bằng thẳng

CHƯƠNG 6: NG DNG LABVIEW đIU KHIN H PENDUBOT

Chương này học viên trình bày phương pháp ựiều khiển hệ Pendubot thực bằng bộựiều khiển PID cải tiến trong môi trường Labview, và thực nghiệm trên mô hình thật.

6.1 Thực nghiệm và khảo sát chương trình ựiều khiển hệ Pendubot 6.1.1 Lưu ựồ giải thuật ựiều khiển hệ Pendubot trên nền LabVIEW

Bộựiều khiển PI là sự kết hợp của hai thành phần : Thành phần tỉ lệ (P) ựưa ra giá trị Pout dựa trên giá trị sai lệch tại thời ựiểm hiện tại, thành phần tắch phân (I)

ựưa ra giá trị Iout dựa trên tắch lũy các giá trị sai lệch từ quá khứựến thời ựiểm hiện tại.

Theo sơ ựồ khối của hệ Pendubot hình 4.1, cho thấy hệ thống ựiều khiển sử

dụng hai card 9090 ựể thu thập ựữ liệu giao tiếp giữa hệ thống thực và máy tắnh. Do card 9090 chỉ có một gõ counter nên mỗi card chỉ quan tâm ựến một góc quay θ1 ,θ2 tưng ứng với vị trắ của Link1 và Link2. Do ựó học viên chỉ sử dụng bộựiều khiển PI với hồi tiếp từ góc lệch θ1 ,θ2 tưng ứng với vị trắ của Link1 và Link2 ựể giữ cho Link 2 luôn thẳng ựứng ổn ựịnh với góc Link 1 ở bất kỳ vị trắ nào. Hình 5.4, 5.5, 5.6, là lưu ựồ giải thuật ựiều khiển con lắc ngược bằng bộựiều khiển PI và bù mô- men xoay phi tuyến trên hệ thống thực.

Lưu ựồ giải thuật ựiều khiển con lắc ngược bằng bộ ựiều khiển PI và bù mô-men xoay phi tuyến trên hệ thống thực.

dt e t t . 0 ∫ 2 Hình 6.2 Hình sơđồ giải thuật Khâu I

3

Hình 6.3 Sơựồ giải thuật ựiều khiển hệ Pendubot bằng thuật toán PI Dựa vào giải thuật ựiều khiển trên thiết lập chương trình ựiều khiển trong môi trường Labview. Trong thư viện của Labview lấy các khối ựể giao tiếp giữa hai card 9090 với máy tắnh và mô hình thật Pendubot, ựể xây dựng chương trình ựiều khiển như hình 5.7

6.1.2 Trang giao diện chắnh của chương trình.

Hình 5.8 là giao diện ựiều khiển hệ thông tin Pendubot trên nền Labview.

đây là trang ựiều khiển chắnh của phần ựiều khiển, thiển thị các thông tin giao tiếp từ máy tắnh ựến mô hình hệ thống thực Pendubot, ựiều chỉnh hệ số Kp, Ki bằng phương pháp thực nghiệm lấy mẫu nhiều lần với các bộ thông số Kp, Ki khác nhau cuối cùng ựã chọn ựược các thông số mong muốn thắch hợp ựể ựiều khiển hệ

Pendubot ổn ựịnh (Sẽ ựược trình bày ơ phần tiếp theo), kết quả ựáp ứng ngõ ra của bộ PI sau khi ựã lấy giá trị dương cũng sẽựược hiện trên giao diện chắnh (File code lập trình cũng sẽựược trình bày trong phần phụ lục)

6.1.3 Chuẩn bi thực nghiệm và khảo sát chương trình nội dung thực

hiện

Hình 6.5 Giao diện ựiều khiển hệ Pendubot trên nền Labview

Giải thắch giao diện

1. Stop 2. USB card 1 3. USB card 2 4. Khởi tạo hệ thống 5. đóng băng 6. Quá giới hạn 7. E18* 8. Trượt hóa giá trị ựặt 9. E2 10. đồ thị quá ựộ 11. E1 12. E2

13. Thời gian tắnh toán 14. Hệ số trượt hóa 15. điều chỉnh Kp 16. điều chỉnh Ki 17. Vị trắ con lắc

Cấp nguồn ựiện 220V vào hệ Pendubot, thông qua các bộ nguồn xuất ra các

ựiện áp 12V cho hai encoder và hai card 9090, Motor driver, ựấu nối các cổng USB 1 và USB 2 với máy tắnh. Thiết lập các giải thuật trong labview. trình tự thực hiện như sau.

Bước 1: đấu nối dây cáp cổng USB của card USB 9090 vào máy máy tắnh. Bước 2: Trong giao diện window XP hoặc Win 7 , click phải chuột vào My computer → chọn Device manager/Manage → xem cổng giao tiếp ựã ựược thiết lập hai card USB 9090.

Bước 3: Quay về giao diện chắnh của Labview, ngay vị trắ 2 và 3 chọn cổng giao tiếp hai card USB 9090 ựã chọn ở bước 2.

Bước 4: Tại vị trắ 4 chọ khởi tạo hệ thống Bước 5: Chọn ựiều chỉnh thông số Kp, Ki

Bước 6: Xác ựịnh thông số trượt hóa, thời gian tắnh toán Bước 7: Vị trắ 5 chọn ựóng băng

Bước 8: trương trình hoạt ựộng

Bước 9: Dừng chương trình nhấn nút Stop vị trắ 1

để tắnh ựược các khâu P và khâu I, học viên ựầu tiên chuẩn bị các thuật ngữ,

ựịnh nghĩa các ựại lượng thông số cho phương pháp tắnh toán xác ựịnh các góc α 1 và α 2 tương ứng theo hình hình vẽ 5.10 sao cho khi chạy chương trình và khởi tạo hệ thống , xác ựịnh các thông số Kp Ki thắch hợp bằng phương pháp thực nghiệm

của Ziegler Ờ Nichols. để chương trình ựưa ra ựáp ứng tốt nhất khi tác ựộng một lực nhỏ bất ở các hướng khác nhau trên Link 2 cân bằng thẳng ựứng (θ 2 = 0o) ở vị trắ bất kỳựối với Link 1 thay ựổi vị trắ bất kỳ ( θ 1 # 0o). Các góc θ 2 θ1 ựược xác ựịnh bởi số xung phát ra từ hai encoder 1 và encoder 2.

Hình 6.6 Biểu ựiễn Link 2 cân bằng thẳng ựứng (θ 2 = 0o) ở vị trắ bất kỳựối với Link 1 thay ựổi vị trắ bất kỳ ( θ 1 # 0o).

6.2 Nhận dạng và ựiều khiển hệ Pendubot trên nền Labview 6.2.1 Khởi tạo hệ thống

Giao diện khởi tạo hệ thống

Thuật toán của chương trình labview thực hiện việc khởi tạo hệ thống

Hình 6.8 Thuật toán của chương trình labview thực hiện việc khởi tạo hệ

thống

Giải thắch:

- Thanh ghi: Mặc ựịnh ựây là một ựường hầm truyền dữ liệu giá trị hiện tại vị trắ 1 theo hình 5.12 cũng chắnh là giá trị chắnh nó tại vị trắ 2, các giá trị tại hai vị

trắ này luôn cập nhật liên tục sau một thời vòng lập .

- Vòng lập: Là một khoảng thời gian chạy hết chương trình của một vòng lập.

- Khởi tao hệ thống: Bước này ựầu tiên cho chạy chương trình, khởi tạo ựể

xác ựịnh cho giá trị E1, E2

- đọc giá trị Encoder E1: đầu tiên cắm card USB 1 vào ựể máy nhận tắn hiệu ựầu vào của E1. Do E1 không phải lúc nào là một giá trị nhất ựịnh do phụ

thuộc vào góc quay lúc ban ựầu, do vậy ựưa giá trị ban ựâu E1 vào thanh ghi 1. Mục

ựắch là biến giá trị bất kỳ của E1 thành một giá trị bằng 0o .

đặt: Giá trị E1 hiện tại là E1Ỗ

Giá trị E1 sau khi hệ thống chạy chương trình có vóng lặp ựầu là E1ỖỖ

- Thuật toán tắnh giá trị H

H = E1Ỗ Ờ E1ỖỖ

Hình 6.9 Thuật toán tắnh giá trị H

- đọc giá trị Encoder E2: Cắm card USB 2 vào ựể máy nhận tắn hiệu ựầu vào của E2. Do E2 không phải lúc nào là một giá trị nhất ựịnh do phụ thuộc vào góc quay lúc ban ựầu, do vậy ựưa giá trị ban ựâu E2 vào thanh ghi 3. Mục ựắch là biến giá trị bất kỳ của E1 thành một giá trị bằng 0o.

Hình 6.10 đọc giá trị Encoder E2

- Thuật toán khởi tạo hệ thống: để nhận biết ựược các các góc θ2 θ1

nguyên lý chung là dùng cảm biến encoder E1 và E2 , dựa vào chu kỳ xung của E1 và E2 ta nhận biết ựược các góc θ 2 θ1 .

Encoder 1 có giá trị mới E1* nhờ công tắc khởi tạo hệ thống, ựể khởi tạo ra giá trị E1* và thanh nghi 2 vậy ta xác ựịnh ựược góc θ1.

+ Khối công tắc khởi tạo hệ thống

+ Hàm select

Nhờ khối công tắc khởi tạo hệ thống ta có công thức sau sau

      + = = * E1 ) ' E1' - (E1' 0 ' E1' - E1' * 1 E false S true S = =

Hình 6.11 Giải thuật khởi tạo ra giá trị encoder 1 E1*

Tương tự Encoder 2 có giá trị mới E2* nhờ công tắc khởi tạo hệ thống, ựể

khởi tạo ra giá trị E2* vào thanh nghi 4 vậy ta xác ựịnh ựược góc θ2. Với

Với Với Với

      + = = * E2 ) ' E2' - (E2' 0 ' E2' - E2' * 2 E false S true S = =

Hình 6.12 Giải thuật khởi tạo ra giá trị encoder 2 E2*

6.2.2 Giá trị ựặt, Trượt hóa giá trị ựặt

Lúc khởi tạo giá trị ựặt là bằng 0 nhưng khi chương trình chạy thì giá trị ựặt luôn biến thiên, và góc ựo θ 2 của Link 2 so với phương thẳng ựứng Link 1 ựo ựó góc θ 2 luôn biến thiên khi Link 1thay ựổi một góc θ1 .

Chương trình thuật toán labview thực hiện trượt hóa giá trị ựặt

Hình 6.13 Chương trình thuật toán labview thực hiện trượt hóa giá trịựặt

Trượt hóa giá trị ựặt: Do giá trị ựặt liên tục luôn bằng 0 nhưng do hệ thống làm việc liên tục do ựó ta phải trượt hóa ựể giá trị ựặt không thay ựối tùy vào góc quay θ1 do ựó giá trịựặt sẽ biến thiên.

Thuật toán trượt hóa giá trị ựặt E2*

Hình 6.14 Thuật toán trượt hóa giá trị ựặt E2*

Phương trình trượt hóa giá trị dặt

D= (0 +( θ2 *4)) (Xung)

đối với ựiều khiển PID bình thường thì ựặc tắnh giá trị ựặt thường cố ựịnh D=const , với ựiều khiển PI hệ Pendubot thì giá trị ựặt D thường thay ựổi theo vị trắ

ựứng của Link 2 so với Link 1 góc θ2 luôn biến thiên. Do ựó ta phải trượt hóa giá trị ựặt thì hệ thống mới ổn ựịnh ựược và tắnh ựược sai lệch hệ thống e.

6.2.3 Tắnh sai lệch hệ thống và nhận giá tri Kp:

Hình 6.15 Thuật toán tắnh sai lệch hệ thống e Phương trình tắnh sai lệch hệ thống

e(t) = D Ờ E1*

6.2.4 Nhập giá trị Kp:

Giá trị Kp hằng số tỉ lệ, học viên thực hiện bằng phương pháp phương pháp thứ hai của Ziegler Ờ Nichols. điều ựặc biệt là phương pháp này không sử dụng mô hình toán học của ựối tượng ựiều khiển, ngay cả mô hình xấp xỉ gần ựúng, kết quả

lựa chọn Kp trong khoảng 0.5 ựến 0.8.

6.2.5 Tắnh khâu P:

Khâu P tạo ra tắn hiệu ựiều khiển tỉ lệ với giá trị của sai lệch. Việc này ựược thực hiện bằng cách nhân sai lệch e với hằng số KP Ờ gọi là hằng số tỉ lệ. Khâu P

ựược tắnh dựa trên công thức: P =Kp*e(t) Giao ựiện ựiều khiển khâu P

Chương trình thuật toán labview thực hiện tắnh khâu P

Hình 6.17 Chương trình thuật toán labview thực hiện tắnh Khâu P

Kết Luận: P controller có giá trị hữu dụng là 0-500 tương ựương với 0%

ựến 100% duty circle của PWM (hoặc tương ựương 0V ựến 24V sau khi ựi qua bộ

công suất Ờ tuyến tắnh).

6.2.5 Tắnh khâu I:

Khâu I cộng thêm tổng các sai số trước ựó vào giá trị ựiều khiển. Việc tắnh tổng các sai sốựược thực hiện liên tục cho ựến khi giá trịựạt ựược bằng với giá trị ựặt, và kết quả là khi hệ cân bằng thì sai số bằng 0.

Chương trình thuật toán labview thực hiện tắnh khâu I

Hình 6.18 Chương trình thuật toán labview thực hiện tắnh khâu I Giải thắch: chương trình thuật toán tắnh khâu I

1. Nhận giá trị Ki:

2. Nhập giá trị sai lệch e(t) là giá trị ựặt (giá trị kỳ vọng muốn góc θ2 giữa Link 2 với phương thẳng ựứng Link 1), trừựi giá trịựo ựược E1

3. Thời gian lấy mẫu ựặt dt = 0,002 thời gian chạy hết chương trình vòng lặp

ựược ựo bằng lấy mẫu, do thời gian lấy mẫu ựặt 10ms = 0,0001 quá lớn nên phải chọn Ki quá nhỏ do ựó học viên chọn thời gian lấy mẫu dt = 0.002 ựể chọn thông số ựể chỉnh ựịnh Ki lớn nhờ giải thuật toán sau.

Hinh 6.19 Giải thuật thời gian lấy mẫu

4. Khâu I ựược tắnh theo công thức: Giải thuật trong hình trình bày phương pháp tắnh toán khâu I, và giao diện nhập dữ liệu.

Hình 6.20 Giao diện nhập dữ liệu nhập giá trị Ki và tắnh Khâu I

Hình 6.21 Giải thuật trình bày phương pháp tắnh toán khâu I.

Tắnh : e dt

t t.

0

Thông qua thanh ghi 5 tắnh tổng T0 : Tổng (To) = ∑ (∆S) Tắnh ∆S: ∆S = e(t).dt (giá trị tức thời )

Tắnh khâu tắch phân: I = Ki . = Ki. e dt t

t.

0 ∫

Kết luận: I controller có giá trị hữu dụng là 0-500 tương ựương với 0% ựến 100% duty circle của PWM (hoặc tương ựương 0V ựến 12V sau khi ựi qua bộ công suất Ờ tuyến tắnh).

6.3.6 đóng băng ỘChức năng tắch phân Ộ

Ta xét lúc ựầu chạy chương trình: + 0 là thời gian lúc bắt ựầu chạy. + t là lúc thời gian tắt chương trình.

Do ựó khi chương trình tắnh lâu thì tạo ra trị e rất lớn với thời gian kéo dài sẽ

làm cho giá trị u(t) của khâu PI rất lớn và ựiện áp rất lớn dẫn tới mất ổn ựịnh ựộng cơ DC và hệ thống bị hư hại. Do ựó phải dùng chức năng ựóng băng tắch phân ựể

chống chàn giá trị e.

Hình 6.22 Khối Giải thuật trình bày phương pháp ựóng băng tắch phân. - Khối In range coerce (trong khoảng). Dựa vào mô hình thực học viên thực

Một phần của tài liệu Điều khiển hệ PENDUBOT trên nền LABVIEW (Trang 94)

Tải bản đầy đủ (PDF)

(125 trang)