5. Chương trình giao tiếp giữa máy tính và NI 9205
5.5.2. Chương trình thu thập dữ liệu với module NI9403
Sau đây là chương trình đọc tín hiệu Digital Input(tín hiệu số ngõ vào) và điều khiển các tín hiệu Digital Output (tín hiệu số ngỏ ra) từ thiết bị NI 9403.
80
Hình 5.34 Tín hiệu ngõ vào Digital Input
81
Hình 5.36 Chương trình thiết lập ngỏ vào igital Input
Hình 5.37 Chương trình thiết lập ngỏ ra igital Output
Chương trình trên chíp FPGA main dùng để thiết lập các ngỏ vào và ngỏ ra. Mục tiêu của nhóm dùng để thực hiện đọc tín hiệu ngỏ vào là mức cao hay mức thấp từ đó sẽ điều khiển ngỏ ra là mức cao hay mức thấp tương ứng.
82
5.5.3 Chương trình giao tiếp giữa máy tính và module NI 9403
Hình 5.38 Giao diện chương trình giao tiếp
Hình 5.39 Chương trình điều khiển việc giao tiếp giữa máy tính và thiết bị
5.5.4 Kết quả đạt được
Do trong quá trình nhóm thực hiện, CompactRIO 9076 không nhận được thiết bị NI 9403 nên kết quả việc kiểm tra và thực hiện thiết bị này nhóm còn thiếu. Rất mong giáo viên hướng dẫn và hội đồng phản biện thông cảm cho nhóm về sai sót này.
83
5.6. Điều khiển tốc độ động cơ bằng module NI 9505 trên giao diện LabVIEW 5.6.1. Kết nối phần cứng 5.6.1. Kết nối phần cứng
Hình 5.40 Kết nối phần cứng NI 9505
- Hình ảnh kết nối phần cứng trên thực hiện cho cả điều khiển tốc và vị trí động cơ.
- Cực dương (V) và âm (C) của NI 9505 kết nối với nguồn dương (24V) và nguồn âm (GND) của mô hình.
- Hai dây M+ và M- của NI 9505 kết nối với 2 dây dương và âm của động cơ.
84
Hình 5.41 Chương trình điều khiển tốc độ NI 9505
5.6.2. Tổng quan về hệ thống
- Chương trình mẫu bao gồm host VI và FPGA VI.
- Chương trình Turning Host VI:
+ Cấu hình các tham số trên FPGA như PI , điện trở motor… + Tạo xung tốc độ gửi đến FPGA khi nhấn button.
+ Phân tích setpoint-feedback và các tham số điều chỉnh cơ bản. + Ngắt kết nối NI 9505 và reset FPGA trước khi dừng.
- Chương trình Host VI:
+ Cấu hình tham số trên FPGA như PI , điện trở motor…
+ Trong vòng lặp While Loop, liên tục ghi các điểm đặt vận tốc setpoint và các phản hồi được đọc từ FPGA.
+ Ngắt kết nối NI 9505 và reset FPGA trước khi dừng.
- Chương trình FPGA:
85
Hình 5.42 Vòng lặp Status Loop
+ Velocity Loop: nhận setpoint từ Host VI và gửi đến bộ giới hạn tốc độ để tạo ra gia tốc. Sau đó sẽ gửi giá trị điểm đặt tốc độ và phản hồi tốc độ đến khối PI tạo ra giá trị điện áp mong muốn. Vòng lặp này cũng lọc những phản hồi gửi về.
Hình 5.43 Vòng lặp Velocity Loop
+ Current Loop: nhận giá trị điện áp mong muốn từ Velocity Loop. Vòng lặp này sẽ gửi giá trị điện áp mong muốn và giá trị điện áp đo được từ motor đến khối PI tạo ra chu kỳ xung PWM.
86
Hình 5.44 Vòng lặp Current Loop và PWM Loop
+ PWM Loop: chuyển chu kỳ xung thành tín hiệu số và chân tín hiệu mà NI 9505 dùng để điều khiển mạch cầu H. Vòng lặp này cũng dùng để kích hoạt Current Loop hoạt động.
+ Encoder Loop: mã hóa tín hiệu Encoder và tạo ra vị trí và vận tốc phản hồi.
87
5.6.3. Thực hiện chương trình mẫu với NI 9505
- Mở 9505 Brushed Servo (Position Setpoint) - FPGA.vi và nhấp vào nút Run để bắt đầu biên dịch FPGA. Việc biên dịch có thể mất tới một giờ.
- Để được hỗ trợ điều chỉnh động cơ của bạn và cài đặt các thông số khuếch đại (Gains) cụ thể cho hệ thống của bạn, hãy sử dụng 9505 Brushed Servo (Position Setpoint) - Host Tuning.vi và làm theo hướng dẫn trên bảng điều khiển Front Panel để thực hiện điều chỉnh thủ công.
- Mở My Computer »9505 rushed Servo (Vị trí điểm đặt) - Host.vi . Thay vào đó, nếu bạn muốn chạy VI này trên mục tiêu RT CompactRIO, bạn có thể kéo nó vào mục tiêu RT CompactRIO trong Project Explorer.
- Định cấu hình các tham số trên Motor Parameters and Drive Parameters và sau đó chạy VI.
- Nhấp vào Enable để bật NI 9505.
- Nhấp vào Start Move để bắt đầu di chuyển vị trí. i chuyển mặc định sẽ khiến động cơ của bạn di chuyển qua lại theo mô hình sóng hình sin.
88
5.6.4. Các kết quả đạt được của chương trình NI 9505
Hình 5.46 Kết quả đạt được trên chương trình Host Turning
89
5.7. Điều khiển vị trí động cơ bằng module NI 9505 trên giao diện LabVIEW
Hình 5.48 Chương trình điều khiển vị trí NI 9505
5.7.1. Tổnng quan về hệ thống
- Trong chương trình code mẫu có 2 Host VI (một chương trình dùng cho điều chỉnh và một chương trình dùng cho hoạt động) và chương trình FPGA VI.
- Chương trình Host Turning VI:
+ Điều chỉnh các tham số trên FPGA.
+ Tạo ra xung vị trí và vận tốc gửi đến FPGA khi nhấn nút Start Move. Position Setpoint được gửi đến FPGA thông qua DMA FIFO.
+ Thực hiện và phân tích Setpoint-Feedback phản hồi các thông số điều chỉnh. + Ngắt kết nối NI 9505 hoặc reset FPGA.
- Chương trình Host VI:
+ Điều chỉnh các thông số trên FPGA.
+ Trong vòng lặp While Loop, tạo ra một chu kỳ sóng hình sin khi nhấn nút Start Move. Toàn bộ số liệu sóng hình sin được đặt trong DMA FIFO.
90
+ Ngắt kết nối NI 9505 hoặc reset FPGA.
- Chương trình FPGA:
+ Status Loop: kết nối hoặc ngắt kết nối thiết bị và đọc trạng thái hoạt động của thiết bị.
Hình 5.49 Vòng lặp Status Loop
+ Position Setpoint Loop: đọc vị trí đặt (Position Setpoint) từ Position Setpoint FIFO. Giá trị Setpoint được đặt trong FIFO của Host VI.
Hình 5.50 Vòng lặp Position Setpoint Loop
+ Position Loop: nhận giá trị Setpoint từ Position Setpoint Loop và sử dụng Spline Interpolation VI dùng để tạo ra các điểm đặt trung gian, làm cho sự chuyển động mượt hơn. Setpoint-Feedback được gửi đến bộ điều khiển PI tạo ra giá trị tốc độ mong muốn.
91
Hình 5.51 Vòng lặp Position Loop
+ Velocity Loop: nhận giá trị tốc độ mong muốn từ Position Loop. Giá trị mong muốn và phản hồi được gửi đến khối PI tạo ra điện áp mong muốn.
Hình 5.52 Vòng lặp Velocity Loop
+ Current Loop: nhận giá trị điện áp mong muốn từ Velocity Loop. Giá trị điện áp mong muốn và điện áp đo được từ motor gửi đến khối PI để tạo ra chu kỳ xung PWM.
92
Hình 5.53 Vòng lặp Current Loop and PWM Loop
+ PWM Loop: biến đổi chu kỳ xung thành tín hiệu số và chân điều khiển chiều quay motor cho NI 9505 để điều khiển mạch cầu H. Đồng thời vòng lặp PWM Loop cũng kích hoạt vòng lặp Current Loop hoạt động.
+ Encoder Loop: mã hóa tín hiệu encoder và tạo ra vị trí, vận tốc phản hồi.
Hình 5.54 Vòng lặp Encoder Loop
5.7.2. Thực hiện chương trình mẫu với NI 9505
93
5.7.3. Các kết quả đạt được của chương trình NI 9505
Hình 5.55 Kết quả đạt được trên chương trình Host Turning
Hình 5.56 Kết quả đạt được trên chương trình Host
94
5.8.1. Kết nối phần cứng
Hình 5.57 Kết nối phần cứng NI 9205 và NI 9505
Cách làm tương tự như kết nối phần cứng với NI 9205 (chỉ dùng chân AI 0 để đọc tín hiệu cảm biến) và NI 9505.
Hình ảnh kết nối trên dành cho cả điều khiển tốc độ động cơ bằng module NI 9505 - module NI 9205 và điều khiển vị trí động cơ bằng module NI 9505 - NI 9205
95
5.8.2. Chương trình trên FPGA main
96 Hình 5. 59 Chư ơng t rìn h đọc tín h iệu từ NI 92 05
97
Chương trình trên sẽ đọc tín hiệu điện áp đầu vào Analog Input tại chân AI0 của NI 9205. Từ tín hiệu điện áp nhận được sẽ chuyển đổi thành giá trị điểm đặt cho vận tốc (vòng/ s).
98
Hình 5.60 Chương trình điểu khiển tốc độ NI 9505
Chương trình điều khiển tốc độ từ NI 9505 sẽ nhận giá trị điểm đặt từ NI 9205. Giá trị điểm đặt sẽ được đưa vào vòng lặp vận tốc Velocity Loop và qua khối PI tạo ra giá trị điện áp mong muốn. Vòng lặp Current Loop nhận giá trị điện áp mong muốn và điện áp phản hồi sẽ qua khối PI tạo ra tín hiệu PWM mong muốn. Tín hiệu PWM sẽ đưa vào vòng lặp PWM Loop để thực hiện hai mục đích: điều khiển chiều quay motor và điều chế xung PWM.
5.8.3. Chương trình giao tiếp máy tính và NI 9505 NI 9205
99
Hình 5.61 Cửa sổ điều chỉnh các thông số đầu vào
100 Hình 5. 63 Sơ đồ khối đ iều khiển t ốc tốc độ mo tor
101
Trong vòng lặp while loop tín hiệu điện áp đọc từ NI 9205 (Voltage AI0) sẽ được chuyển đổi thành tín hiệu vận tốc đặt (vòng/ s). Từ tín hiệu vận tốc điểm đặt sẽ truyền vào tín hiệu Velocity Setpoint cho NI 9505. Sau đó chương trình sẽ nhúng vào chương trình chạy trên chip FPGA main và điều khiển vận tốc motor. Cuối cùng, chúng ta có điểm đặt và vận tốc phản hồi sẽ xuất đồ thị cho người dùng theo dõi sự thay đổi.
5.8.4. Kết quả đạt được
Hình 5.64 Kết quả điều khiển tốc độ motor C (vòng/ s)
Giai đoạn 1: Sau khi nhập các thông số cảm biển, motor và hệ số Kp, Ki, chúng ta nhấn Enable thì motor đáp ứng giá trị điểm đặt trong thời gian đáp ứng < 0.5s và độ vọt lố < 10%.
Giai đoạn 2: Khi xoay biến trở (giá trị điểm đặt tăng) từ từ thì motor vẫn đáp ứng tốt nhưng còn dao động.
Giai đoạn 3: Khi xoay biến trở (giá trị điểm đặt giảm) nhanh thì motor vẫn đáp ứng tốt và ổn định.
Giai đoạn 4: Khi xoay biến trở (giá trị điểm đặt tăng) nhanh thì motor vẫn đáp ứng tốt và ổn định.
102
Để có thể theo dõi khả năng đáp ứng và ổn định của hệ thống thì nhóm đã lập trình thêm để xác định độ vọt lố và thời gian xác lập cho hệ thống. Sau đây là kết quả thực nghiệm được.
103
Hình 5.66 Kết quả khả năng đáp ứng của hệ thống
Nhận xét:
- Đồ thị bám tương đối tốt với giá trị điểm đặt.
- Độ vọt lố thấp ( 0.2%).
- Thời gian đáp ứng nhanh (30 mili giây).
- Sai số xác lập thấp (1%).
- Kết quả còn dao động.
Hình 5.67 Kết quả phản hồi của hệ thống
Kết luận: Bộ điều khiển đã thực hiện tốt các nhiệm vụ đặt ra: thời gian đáp ứng ( < 0,5 giây), độ vọt lố ( < 5%). Nhưng còn mặt hạn chế:
- Vẫn còn dao động nhỏ chưa thực sự ổn định 100%.
- Giá trị điểm đặt lấy từ biến trở còn nhiễu làm hệ thống đáp ứng sai số (1%).
104
5.9. Chương trình điều khiển vị trí động cơ bằng module NI 9505 và NI 9205 5.9.1. Chương trình điều khiển trên FPGA main 5.9.1. Chương trình điều khiển trên FPGA main
Hình 5.68 Chương trình quản lý điều khiển vị trí
Chương trình điều khiển trên chip FPGA main tương tự như chương trình thu thập dữ liệu từ NI 9205 và chương trình điều khiển vị trí động cơ từ NI 9505.
5.9.2. Chương trình giao tiếp giữa máy tính và NI 9505, NI 9205
105
Hình 5.69 Giao diện để thiết lập các thông số
106
Chương trình điều khiển tương tự như điều khiển vị trí của NI 9505 nhưng giá trị điểm đặt sẽ thay đổi bằng cách dùng thiết bị NI 9205 đọc giá trị biến trở trả về và tính toán ra góc mong muốn gửi về cho thiết bị NI 9505.
Hình 5. 71 Chư ơng t rìn h điều khi ển NI 95 05 v à NI 9205
107
5.9.3. Kết quả đạt được
Hình 5.72 Kết quả đạt được khi vị trí 90
Hình 5.73 Kết quả hình ảnh thực tế ở vị trí 90
Nhận xét:
- Đồ thị bám tốt với giá trị điểm đặt.
- Độ vọt lố thấp (0.7%).
- Thời gian đáp ứng nhanh (30 mili giây).
108
Hình 5.74 Kết quả thực hiện được ở vị trí 180
Hình 5.75 Kết quả hình ảnh thực tế ở vị trí 180
Nhận xét:
- Độ thị bám tốt với giá trị điểm đặt.
- Độ vọt lố thấp (2%).
- Thời gian đáp ứng nhanh (30 mili giây).
109
Hình 5.76 Kết quả thực hiện bám theo giá trị điểm đặt
Nhận xét:
- Khi xoay biến trở góc quay bám theo tốt với giá trị điểm đặt luôn thay đổi.
- Độ vọt lố thấp (3%).
- Thời gian đáp ứng nhanh (50 mili giây)
- Sai số xác lập thấp (3%).
Kết luận: Bộ điều khiển đáp ứng mong muốn đặt ra: thời gian đáp ứng ( < 0.5s), độ vọt lố hệ thống ( < 5%) và kết quả thực tế mô hình đáp ứng tương đối chính xác ( > 95%). Tuy nhiên, giá trị điểm đặt càng lớn thì độ vọt lố càng tăng, thời gian đáp ứng gần như không thay đổi và vẫn còn dao động chưa hoàn hảo. Những mặt hạn chế:
- Khi xoay biến trở giá trị điểm đặt còn nhiễu chưa hoàn toàn ổn định.
110
Chương 6. KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 6.1. Những kết quả đã đạt được
- Hoàn thành đúng thời hạn mô hình đã lên thiết kế: khung chịu lực, khung gá thiết bị, sơ đồ mạch điện đã đề ra, bố trí các cảm biến, công tắc và thiết bị. Đặc biệt sản phẩm mang tính gọn, nhẹ, dễ tháo lắp, thay thế các thiết bị và tiện cho nhu cầu di chuyển.
- Hoàn thành mô hình điều khiển tốc độ và vị trí của động cơ. Bên cạnh đó còn hỗ trợ việc đọc, ghi các tín hiệu tương tự (Analog), tín hiệu số ( igital), và đọc cảm biến dòng điện. Mô hình còn được phát triển “Từ tín hiệu của chiết áp có thể thay đổi tốc độ mong muốn của động cơ”. Kết quả đạt được như sau:
Thời gian đáp ứng hệ thống bắt đầu ổn định: < 100ms.
Độ vọt lố của hệ thống: < 1%.
Sai số trạng thái tĩnh: < 1%.
- Mô hình được thực hiện dựa trên các phần cứng có sẵn của National Instruments và phù hợp với phần lớn các thiết bị khác có sẵn ngoài thị trường, rất thuận lợi cho việc tìm kiếm và thay thế. Mô hình cũng phù hợp phần mềm LabVIEW thuận tiện cho việc học lập trình LabVIEW nói riêng và phù hợp với việc học tập và thực hành lập trình nhúng nói chung.
6.2. Những khó khăn trong quá trình thực hiện đồ án
- Thi công mô hình còn khó khăn và tốn thời gian vì khi gia công các kích thước không chính xác như bản vẽ. Khi thiết kế và tìm mua sản phẩm không tương thích nhóm bị mất thời gian trong việc tìm kiếm và thiết kế lại. Khối lượng sản phẩm còn khá nặng việc vận chuyển sẽ gây khó khăn.
- Việc tìm kiếm tài liệu, thiết bị điều khiển thích hợp với các thiết bị hãng gặp khó khăn. Đồng thời gặp khó khăn trong việc tìm kiếm các nguồn thông tin dự án hoặc chương trình điều khiển có sẵn.
- Khó khăn trong việc lập trình vì có nhiều chương trình con của hãng chúng ta phải thực hiện khuôn mẫu của hãng. Chương trình trên FPGA main khá dài và mỗi thiết bị có một cách giao tiếp đọc trạng thái riêng đồng thời việc thực hiện kết nối, điều khiển, nhúng chương trình phức tạp.
111 - Thuật toàn điều khiển tốc độ chưa thực sự tối ưu còn dao động nhỏ.