Ðề tài: Về labview
View Single Post
Old 29-08-2009, 07:56 AM   #13
HaiAu2005
Đệ tử 9 túi
 
Tham gia ngày: May 2006
Bài gửi: 150
:
Bài toán thực hành này của bạn hay đó, hay ở chỗ bạn đang điều khiển một động cơ mua ở chợ trời, mua Encoder cũng ở chợ trời, và gắn chúng vào NI USB-6221 để điều khiển, nên cần phải lập trình cho phù hợp. Nếu bạn làm thêm nữa bạn sẽ có thể tìm được cách ước lượng các tham số cho động cơ của bạn.

Để giải quyết bài toán này, khi bạn đọc được tín hiệu từ Encoder vào một kênh của USB-6221 là tần số Hz thì bạn phải làm như sau:

Tần số > chuyển đổi sang tốc độ RPM > cần thiết có thể chuyển sang Volt (để làm được thì giải thiết là quan hệ tuyến tính, dùng khái niệm độ nhạy/sensitivity) - bạn có tín hiệu process variable bằng volt.

Tín hiệu đặt (setpoint) RPM > chuyển sang Volt

Cả hai tín hiệu này được dùng đưa vào bộ PID. Tín hiệu điều khiển đầu ra của PID thì phải đặt cho tín hiệu điều khiển hai cái giới hạn trên và dưới, dùng cổng Output Range đó (nhấn phải và chọn Create > Constant, bạn sẽ thấy hai giá trị 100 và -100, chuyển thành 10 và 0 cho thang kênh phát của USB-6221 mà bạn đã chọn).

Trong chương trình bạn cũng có thể lập trình bằng cách dùng hàm Select để lựa chọn giữa hai chế độ: Auto điều khiển tự động, và Man điều khiển bằng tay (phát tín hiệu bằng một Numerical Control trực tiếp tới Servo Amplifier để điều khiển động cơ).

Bạn có thể thử làm lại toàn bộ theo các bước sau:

1. Dùng Measurement and Automation Explorer (MAX) > Test Panels: để phát tín hiệu điều khiển động cơ, có thể cho vài giá trị từ 0 đến 10 V, rồi kiểm tra tín hiệu vào từ Encode

2. Lập trình nhận tín hiệu, đại khái giống như một cái Open-Loop controller, để bạn phát tín hiệu điều khiển động cơ, nhận tín hiệu vào chương trình, và phải làm công việc xử lý tín hiệu nữa để sao cho số đọc trong chương trình phù hợp với số đọc trên Encode (nếu có), và có được tín hiệu tốc độ là RPM. Khi chạy thử, nếu tăng điện áp lên động cơ chạy nhanh hơn thì tốc độ phải tăng lên và tất yếu không dao động ở tần số cao. Nếu tín hiệu vào có nhiều nhiễu ở tần số cao, số đo chạy nhảy lung tung thì phải thiết kế thêm bộ lọc cao tần (lowpass filter) sử dụng một hàm truyền bậc nhất với Tf (hằng số thời gian bộ lọc). Khi đã chắc chắn là cái chương trình Open-loop Controller này đã chạy tốt thì sang bước sau:

3. Lập trình (lưu chương trình với phiên bản mới) cho bộ điều khiển PID, dùng PID của PID Control Toolkit thì đơn giản rồi, cần chuyển đổi cả hai tín hiệu setpoint và process variable sang volt thì tốt hơn, đầu ra của bộ PID cần đặt hai giới hạn trên và dưới (để tránh tín hiệu quá lớn do thành phần tích phân gây ra) - hai giới hạn này cũng được dùng đề điều chỉnh thay đổi đáp ứng hệ thống - giống như việc lái xe lái tầu thủy đó, để giữ hướng tốt bằng cách lái những góc rất nhỏ bé và điều chỉnh liên tục.

4. Dùng Select để chuyển hai chế độ Auto và Man: cái này cho phép bạn sử dụng khi chạy chương trình điều khiển có thể tránh được việc thay đổi tốc độ ở giá trị lớn, chuyển sang Manual và điều chỉnh điện áp để tốc độ động cơ đạt gần tới giá trị mong muốn rồi chuyển sang Auto. Trong thực tế người ta chỉ điều chỉnh/thay đổi setpoint những giá trị nhỏ để hệ thống chạy "mượt mà" (hãy tưởng tượng khi điều khiển máy móc, thay đổi setpoint ở giá trị lớn đột ngột, điện áp tăng đột ngột, dòng tăng đột ngột > rất dễ làm hỏng thiết bị máy móc). Tín hiệu điều khiển trước khi tới USB-6221 cần được đặt giới hạn lần nữa để đảm bảo tín hiệu ra không quá lớn

5. Sau khi lập trình xong phần PID, chạy và kiểm tra chương trình đã chạy tốt chưa. Nếu tốt thì tiếp đến các bước tìm bộ khuếch đại Kp, Ti (phút) và Td (phút) phù hợp.

6. Lập thêm phần lưu dữ liệu để phân tích và viết báo cáo đồ án! (mới học LabVIEW 3 tuần, chưa thành thạo LabVIEW thì hơi khó khăn đó!).

Comments: Cần tìm hiểu thêm về
1. LabVIEW và lập trình DAQmx, data acquisition programming
2. Điều khiển PID, điều chỉnh tham số bộ điều khiển PID
3. Xử lý tín hiệu/điều hòa tín hiệu, hợp nhất đơn vị các tín hiệu giữa các phần tử (khối) trong toàn bộ hệ thống điều khiển
4. Động cơ điện/bộ điều khiển servo cho động cơ

Trang web tôi đã đưa của Finn Haugen là trang web có đầy đủ các thông tin về lập trình LabVIEW, mô phỏng, thiết kế bộ PID cho các hệ thống khác nhau, điều chỉnh (tuning) tham số PID v.v...

Đến đây tôi đã cung cấp rất đầy đủ thông tin cho bài toán của bạn. Bạn cần thực hành và làm tiếp cho đến kết quả cuối cùng. Tôi xin chấm dứt chủ đề này ở đây.

Hải Âu

thay đổi nội dung bởi: HaiAu2005, 29-08-2009 lúc 08:30 AM.
HaiAu2005 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn