Chương trình thu thập dữ liệu với module NI9403

Một phần của tài liệu Nghiên cứu, thiết kế, chế tạo mô hình giảng dạy labview sử dụng compact RIO đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 89)

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ỏ.

Một phần của tài liệu Nghiên cứu, thiết kế, chế tạo mô hình giảng dạy labview sử dụng compact RIO đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 89)

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

(137 trang)