Cách tạo một chương trình FPGA Project

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 72)

Hoàn thành các bước sau để tạo một FPGA Project:

ước 1: Mở ứng dụng LabVIEW => Create Project.

63

Hình 5.6 Chọn LabVIEW Project

ước 3: Chọn CompactRIO Embedded System.

Hình 5.7 Chọn CompactRIO Embedded System

ước 4: Chọn Discover existing system.

ước 5: Chọn IP Link Sever của bộ CompactRIO.

64

Hình 5.8 Chọn Finish

ước 7: Lưu lại chương trình File => Save.

5.2.3. Hướng dẫn Built Compile Xilinx Tools

- Mở ứng dụng LabVIEW mà laptop chúng ta đã cài đặt sẵn: - Chọn Create Project => LabVIEW FPGA Project.

- Ở mục FPGA Target, click chuột phải chọn New => VI, dùng để tạo mới một VI. Sau đó chúng ta sẽ Save VI lại và Save Project Explorer.

- Kế tiếp, ta click chuột phải vào Build Specifications, chọn New, chọn Compilation để tiến hành biên dịch chương trình.

65

Hình 5.9 Chọn Build Specifications

- Cửa sổ My Compilation Properties hiện lên lựa chọn Source Files => Chọn VI chúng ta vừa tạo => Top-Level VI => Build.

Hình 5.10 Chọn Select File for Compilation - Sau đó lựa chọn Compile Sever.

66

Hình 5.11 Chọn Select Compile Server - Mất vài phút (hoặc có thể vài tiếng) đợi Compile => Close.

Hình 5.12 Thông báo Successfull Compilation

5.2.4. Hướng dẫn Disable Sleep Mode và Enable Drive

Để thiết bị NI 9505 có thể thực hiện giao tiếp được với FPGA.VI chúng ta phải tắt chế độ Sleep Mode và Enable Drive thiết bị NI 9505. Thực hiện các bước như sau:

67

- Tạo một FPGA Interface Mode và lưu lại.

- Trong Block Diagram, kéo thả Sleep trong Project Explorer vào, và tìm kiếm FPGA I/O Method Node kéo thả vào.

- Khối Sleep chọn Create => Constant => False. Khối FPGA I/O Method Node chọn Select Item => Mod 3, Select Method => Enable rive. Sau đó Build chương trình.

- Build xong chọn Close.

5.3. Thu thập dữ liệu cảm biến với module NI 9205 5.3.1. Kết nối phần cứng 5.3.1. Kết nối phần cứng

Hình 5.13 Kết nối phần cứng với NI 9205

Kết nối AI 0, AI 1, AI 2 của NI 9205 tương ứng với các chiết áp từ trái sang phải, COM nối với GND của mô hình.

ACS 712, mắc nối tiếp từ nguồn ra (dùng để đo dòng cho hệ thống). Cấp dương (5V), âm (GND) từ mô hình cho ACS 712, chân tín hiệu được nối với AI 3 của NI 9205.

5.3.2. Chương trình thu thập dữ liệu với NI 9205

68 Hình 5. 14 Chư ơng t rìn h đ ọc Anal og Input NI 9205

69 Hình 5. 16 Sơ đ ồ kh ối c ủa chư ơng trìn h

70

5.3.3. Chương trình giao tiếp giữa máy tính và NI 9205

Hình 5.17 Cửa sổ hiển thị đọc Analog AI0

71

Hình 5.19 Cửa sổ hiện thị đọc Analog AI3

Hình 5.20 Sơ đồ khối chương trình đọc tín hiệu Analog Input 0

Thông qua chương trình điều khiển trên FPGA main sẽ đọc tín hiệu Analog Input tại chân 0 của NI 9205 sau đó sẽ hiển thị giá trị điện áp đọc được tại chân đó. Chương trình giao tiếp sẽ nhận giá trị FPGA main gửi về và chuyển đổi thành giá trị điểm đặt vận tốc (vị trí) tương ứng. Các tín hiệu Analog Input 1 2 3 (cảm biến dòng ACS 712) cũng tương tự.

72 Hình 5. 21 Sơ đ ồ kh ối c hư ơng trình đ ọc tín h iệ u Analog 5.3.4. Kết quả đạt được

73

Hình 5.22 Kết quả đọc tín hiệu Analog AI0

74

Hình 5.24 Kết quả đọc tín hiệu Analog AI3

5.4. Thu thập dữ liệu cảm biến với module NI 9234 5.4.1. Kết nối phần cứng 5.4.1. Kết nối phần cứng

75

Sử dụng cảm biến có chui tròn để kết nối. Nhóm chúng em dùng que đo của máy Hantek để kết nối. Cực dương của cảm biến sẽ kết nối với chiết áp đầu tiên từ trái sang phải, cực dương kết nối với cực âm (GND) mô hình.

5.4.2. Chương trình mẫu thực hiện với NI 9234

- Mở phần mềm LabVIEW => Create Project => LabVIEW FPGA Project.

- Tìm kiếm file Example: Help => Find Example => Search => Search NI 9234 => Chọn NI 9234 Getting Started.

Hình 5.26 Tìm kiếm chương trình NI 92 4

- Add file và chương trình mẫu vào LabVIEW FPGA Project vừa tạo => Save.

76 - Mở file FPGA.VI và Run:

Hình 5. 28 Sơ đồ khối NI 92 4 F PGA.v i

77

Hình 5.29 Cửa sổ hiển thị chương trình NI 92 4 + Đặt cấu hình ngõ vào NI 9234.

+ Đặt tốc độ đọc dữ liệu NI 9234. + Run.

- Mở file NI 9234 Getting Started (Host).VI

Hình 5.30 Cửa sổ hiển thị giao tiếp máy tính và NI 9234 + Lựa chọn RIO Device => FPGA target.

+ Cấu hình ngỏ vào NI 9234. + Cài đặt tốc độ đọc dữ liệu + Run.

78

5.4.3. Kết quả đạt được của chương trình NI 9234

Hình 5.31 Kết quả đạt được từ đọc tín hiệu NI 92 4

5.5. Thu thập dữ liệu tín hiệu với module NI 9403 5.5.1. Kết nối phần cứng 5.5.1. Kết nối phần cứng

Hình 5.32 Kết nối phần cứng NI 940

79

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

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.

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 72)

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

(137 trang)