CHƯƠNG 3 MƠ HÌNH THỰC NGHIỆM – KẾT QUẢ
3.1. Giới thiệu phần mềm FPGA
Chương trình thiết kế FPGA có thể mơ phỏng dùng ModelSim, và tổng hợp file program cho FPGA dùng Quartus Web Edition. Chương trình có thể dùng ngơn ngữ VHDL hoặc Verilog để thiết kế cho FPGA Altera CycloneII.
Để mơ phỏng cần phải viết 1 chương trình testbench, testbench này sẽ tạo ra tín hiệu như clk, reset… để test module thiết kế.
Các bước thiết kế cho FPGA Altera CycloneII sử dụng ngôn ngữ Verilog:
Bước 1: Khởi động ModelSim. Menu View -> Transcript hiển thị của sổ transcript.
Hình 3.1. Màn hình hiển thị cửa sổ Transcript Bước 2: Menu File -> New -> Project để tạo project mới mô phỏng. Bước 2: Menu File -> New -> Project để tạo project mới mô phỏng.
Chọn đường dẫn (ổ đĩa D) và đặt tên cho Project Name <Color_bar> (*)tên project tùy thích như hình. Xong nhấn OK.
Chúng ta sẽ thấy trong ổ D:/Color_bar/ sẽ thấy xuất hiện folder work và file Color_bar.mpf.
Hình 3.2. Giao diện tạo file project mới Bước 3: mô phỏng module. Bước 3: mô phỏng module.
Đường dẫn D:/Color_bar/RTL: đây là nơi chứa các source RTL mà chúng ta
thiết kế.
Đường dẫn D:/Color_bar/TB: chứa các testbench, testbench sẽ tạo ra tín hiệu
rst, clk… để test source RTL của chúng ta.
Đường dẫn D:/Color_bar/sim.do: file này thực thi các command đơn
giản dùng để mô phỏng.
Trong file sim.do:
Dòng lệnh < vlog -work work ./RTL/*.v >: là dòng lệnh compile các file source bên trong D:/Coloer_bar/RTL.
Dòng lệnh <vlog -work work ./TB/*.v>: là dòng lệnh compile các file testbench bên trong D:/Coloer_bar/TB..........
Hình 3.3. Màn hình soạn thảo
Bước 4: Khi soạn chương xong chúng ta tiến hành kiểm tra. Lúc này chương trình
sẽ compile tìm lỗi thiết kế và mơ phỏng module. Nếu gặp lỗi thì phải sửa lại source chương trình hoặc testbench tùy theo nội dung lỗi đó và lặp lại dòng lệnh <do sim.do>.
Bước 5: Sau khi ModelSim thực hiện xong, sẽ xuất hiện cửa sổ chứa dạng sóng như
hình bên dưới. Chúng ta tiến hành kiểm tra xem chương trình mình thiết kế có đúng với yêu cầu. Nếu trường hợp khơng xuất hiện cửa sổ dạng sóng thì vào menu View -> Wave.
Hình 3.4. Giao diện kiểm tra dạng sóng theo u cầu
Bước 6: Sau khi mơ phỏng (simulation) xong, ta tiến hành dùng Quartus để tổng
hợp và tạo file pof, sof (configuration file) và program FPGA.
Bước 7: Khởi động Quartus.
Vào menu File -> New Project Wizard. Chọn đến đường dẫn có chứa source RTL và tên project. Xong nhấn Next.
Hình 3.6. Giao diện chọn đường dẫn chứa source RTL
Nhấn Add All để add tất cả các file source. Nhấn Next và chọn loại đang thiết kế FPGA.
Bước 8: Từ menu Processing -> Start Compilation.
Giao diện Quartus sẽ compile và tổng hợp thơng tin về thiết kế. Nếu có lỗi thì phải sửa, cịn warning phải tìm hiểu xem warning đó có ảnh hưởng gì đến thiết kế hay khơng.
Hình 3.8. Giao diện tổng hợp thiết kế Quartus
Bước 9: Thiết lập pin_out cho FPGA, tức là các ngõ vào và ngõ ra sẽ được thiết lập
ứng với chân nào của FPGA.
Từ menu Assignments -> Pin Planner.
Tại mục Location, chúng ta thiết lập tín hiệu vào ra tương ứng với chân FPGA đã thiết kế trên board.
Hình 3.10. Thiết lập vào và ra tương ứng các chân trên FPGA
Sau khi thiết lập xong, từ menu Processing trong cửa sổ chính -> Start Compilation thêm 1 lần nữa. Lúc này Quartus sẽ tạo cho bạn file color_bar.pof và color_bar.sof dùng để program FPGA.
Bước 10: cuối cùng là program cho FPGA. Từ menu Tool->Programmer. Tùy theo
cấu hình phần cứng của FPGA trên board mà có cách programe FPGA khác nhau.
3.2. Mơ phỏng thuật tốn nội suy sai số của máy phay CNC trên phần mềm
FPGA
3.2.1. Nội suy lỗi sai số nhỏ nhất đường cong
Thuật toán nội suy sai số nhỏ nhất được thực hiện dựa trên nền tảng phần mềm FPGA của ngơn ngữ lập trình VHDL. Ở đây hiển thị các dạng sóng mơ phỏng trong phần mềm ModelSim, hiển thị 2 loại phương pháp xử lý.
Tín hiệu đầu vào: CLOCK là tín hiệu đồng hồ; tín hiệu đặt; START_X, START_Y, START_Z, STOP_X, STOP_Y và STOP_Z đại diện cho tọa độ điểm bắt đầu và điểm kết thúc; START là tín hiệu bắt đầu đồng bộ hóa;
Tín hiệu đầu ra: PULSE_X, PULSE_Y và PULSE_Z là đầu ra xung nội suy.
Tín hiệu trung gian: COORDINATE_X, COORDINATE_Y, VALUE_E,
VALUE_D và VALUE_F đại diện cho cơng thức phán đốn sai lệch F (E), F (D) và Fi.
3.2.1.1. Nội suy lỗi sai số nhỏ nhất đường cong tuyến tính
Dạng sóng mơ phỏng trên mặt phẳng (X, Y) cho các mơ đun nội suy tuyến tính được hiển thị trong Hình 3.11. Điểm bắt đầu là gốc (0, 0) và tọa độ kết thúc là điểm (5, 9).
Hình 3.11. Dạng sóng nội suy đường cong tuyến tính trên mặt phẳng (X, Y)
3.2.1.2. Nội suy lỗi sai số nhỏ nhất đường trịn
Dạng sóng mơ phỏng trên mặt phẳng (X, Y) cho mơ đun nội suy cung trịn được thể hiện trong Hình 3.12.
Tín hiệu trung gian: Val_4m và Val_4n đại diện cho cơng thức phán đốn sai
lệch 4F (E) và 4F (D).
Hình 3.12. Dạng sóng nội suy đường trịn trên mặt phẳng (X, Y)
3.2.2. Nội suy sai số tốc độ và độ chính xác
Từ lý thuyết về sai số tối thiểu nhỏ nhất, sai số tối đa chỉ bằng một nửa kích thước bước tối thiểu. Để so sánh hiệu quả của phép nội suy, chúng ta đã so sánh nó với kết quả của phương pháp so sánh điểm.
Trong hình 3.13, (a) và (b) thể hiện các quỹ đạo nội suy của đường thẳng, đường tròn.
Màu vàng đại diện cho đường cong lý tưởng, màu cam đại diện cho quỹ đạo của So sánh điểm. Màu đen đại diện cho quỹ đạo của Lỗi nhỏ nhất. Sử dụng kích thước bước tối thiểu làm tiêu chuẩn tham chiếu, tốc độ có thể được biểu thị bằng tổng số bước và độ chính xác có thể được biểu thị bằng giá trị chuẩn hóa.
Y Y 5 5 4 4 3 3 2 2 1 1 1 2 3 4 5 X (a) 1 2 3 (b) 4 5 X
3.3. Kết quả thực nghiệm
Bộ điều khiển phay CNC 3 trục bao gồm MCU STM32H753 và FPGA ALTERA cyclone II EP2C20F484C74. Kích thước Min-Step của bộ điều khiển servo ở cường độ 1 μm.
Hình 3.17. Mặt sau của bộ điều khiển và các cổng kết nối
Hình 3. 19 Lắp bộ điều khiển lên máy CNC 3 trục
Hình 3.21 Lắp chạy thực nghiệm bộ điều khiển lên máy CNC 3 trục
Bảng 3.1. Sai số cơ khí máy phay CNC Okuma
Bảng sai số cơ khí máy phay CNC Okuma 5v dùng lắp bộ điều khiển
Stt Loại đo sai số Dụng cụ đo Sai số
1 Backflash trục Y Bộ mã hóa hồi tiếp cho bộ điều khiển 5%
2 Backflash trục X Bộ mã hóa hồi tiếp cho bộ điều khiển 9.5%
3 Backflash trục Z Bộ mã hóa hồi tiếp cho bộ điều khiển 1.8%
4 Đo vng góc trục X,Y Đồng hồ so mitutoyo <1%
5 Đo vng góc trục Y,Z Đồng hồ so mitutoyo 0.01/100mm
6 Đo vng góc trục X,Z Đồng hồ so mitutoyo 0.01/100mm
Hình 3.22. Nội suy đường thẳng chéo theo phương XZ, YZ
Hình 3.24. Các quỹ đạo nội suy của đường cong của thân khn
Hình 3.26. Các quỹ đạo nội suy theo đường thẳng và theo đường tròn trong mặt
Sai số trên các chi tiết chạy thực nghiệm kiểm tra giải thuật:
Hình 3.27. Mẫu số 1
Hình 3.29. Mẫu số 3
Hình 3.31. Mẫu số 5
Hình 3.33. Mẫu số 7
Hình 3.35. Mẫu số 9
Hình 3.37. Mẫu số 11
Hình 3.39. Mẫu số 13
Hình 3.41. Mẫu số 15
Hình 3.43. Mẫu số 17
Hình 3.45. Mẫu số 19
Nhận xét kết quả thực nghiệm:
+ Kết quả nội suy đường thẳng trong mặt phẳng XZ và YZ với tốc độ di chuyển dao F=1200mm/phut, đường thẳng trơn mượt được thể hiện trên Hình 3.20.
+ Hình 3.21 thể hiện kết quả nội suy các đường cong đạt được khi gia công khuôn của chai nhớt. Kết quả đạt được bề mặt trơn nhẵn và thể hiện đúng theo hình dạng thiết kế.
+ Hình 3.22 thể hiện kết quả nội suy cung tròn trong mặt phẳng YZ. Kết quả đạt được cung tròng và mép nội suy đạt chất lượng tốt, trơn nhẵn.
Các kết quả từ Hình 3.20 đến Hình 3.22 chỉ nằm ở giá trị quan sát vì khơng có thiết bị đo chính xác các mặt cong.
Bảng 3.2 Kết quả sai số của các mẫu gia cơng
Vì vậy tác giả chuyển qua chạy kiểm tra giải thuật nội suy trên mặt phẳng XY ở Hình 3.23 với các kết quả như ở Bảng 3.2.
+ Sai số trung bình gia cơng hình trịn trong dao động trong phạm vi 0,04mm. + Sai số trung bình gia cơng hình lục giác để kiểm tra nội suy theo đường thẳng chéo dao động trong phạm vi 0,02mm.
+ Sai số trung bình gia cơng hình vng để kiểm tra nội suy theo đường thẳng dao động trong phạm vi 0,01mm.
3.4. Kết luận
Trong luận văn này, một thuật toán nội suy sai số tối thiểu được cải thiện để tạo đường cong chung trong bộ điều khiển CNC đã được trình bày. Kết quả mơ phỏng và thử nghiệm cho thấy bộ điều khiển được hiện thực hóa dựa trên nền tảng phần cứng của FPGA và được kiểm nghiệm trên máy phay CNC 3 trục. Thuật toán nội suy sai số nhỏ nhất được đề xuất có tốc độ di chuyển nhanh và độ chính xác gia cơng có sai số tối đa nhỏ hơn một nửa kích thước bước, nó có thể được sử dụng rộng rãi trong các hệ thống CNC chính xác.
DANH MỤC CƠNG TRÌNH CƠNG BỐ
STT Tên cơng trình Tác giả Nơi cơng bố Năm công bố
1 An Improved Error Interpolator of Milling CNC Controller Based on FPGA Đồng tác giả Proceedings of the 2020 International Conference on Advanced Mechatronic Systems, Hanoi, Vietnam, December 10 - 13, 2020
TÀI LIỆU THAM KHẢO Tiếng Anh
[1]. M. Gao, J. Lou, J. Ye and W. Wu, FPGA-based implementation of circular interpolation, Journal of Chemical and Pharmaceutical Research, Vol.6 (2014), pp. 585-593.
[2]. Z. LiXian, S. R. Yong, G. X. Shan and L. H. Bo, High speed interpolation for micro -line trajectory and adaptive real-time look-ahead scheme in CNC machining, Science China Technological Sciences, Vol.54 (2011), pp. 1481-1495. [3]. M. A. Saifee and D. U. S. Mehta, Design and implementation of fpga Based g code compatible CNC lathe controller, International Journal of Electronics and Communication Engineering & Technology, Vol.7 (2016), pp. 87-100.
[4]. J. Balic, Model of automated computer aided NC machine tools programming, Journal of Achievements in Materials and Manufacturing Engineering, Vol. 17, Issue 1-2, 2006, pp.309-312.
[5]. S. H. Suh, S. K. Kang, D. H. Chung and Ian Stroud, Theory and Design of CNC Systems, Springer-Verlag London Limited, 2008.
Tiếng Việt
[6]. Đỗ Văn Cần - Nguyễn Phùng Quang - Đoàn Quang Vinh, “Nghiên cứu xây dựng thuật tốn nội suy đường trịn trên nền SoC”, Hội nghị toàn quốc lần 3 về điều khiển và tự động hóa - VCCA , 2015.
[7]. Nguyễn Trọng Hùng -Nguyễn Văn Võ - Phan Văn Bình, “Nghiên cứu, thuyết kế và chế tạo hệ thống điều khiển số tốc độ quay CNC theo tích hợp hai mạch vịng” , Tạp chí khoa học và cơng nghệ 51 (1) (2013) 19-28.
i i
2 i 2 i
An Improved Error Interpolator of Milling CNC Controller Based on FPGA
Hoang Giang Tran
Hiep Phat mechatronic Co. LTD,
Hochiminh City, Vietnam email: hoanggiangcktd@yahoo.com
Khac Sinh Le
Hochiminh City University of Food Industry,
Hochiminh City, Vietnam email: sinhlk@gmail.com
Huy Hung Nguyen
Faculty of Electronics and Telecommunication, Sai Gon
University,
Hochiminh City, Vietnam email: nghhung@sgu.edu.vn
Thanh Luan Bui*
Institute of Engineering, HUTECH University,
Hochiminh City, Vietnam email: buithanhluan@gmail.com
Abstract—Computer Numerical Control (CNC) machine
tools are now moving towards high precision, high speed and complex functional machining. In this paper, an improved minimum error interpolation algorithm for general curves generation in CNC controller is introduce. The algorithm is
According to the positive or negative value of deviation judgment formula in the mid-point D and E, we judge the mobile direction:
When F (E) 0 , point C (xi , yi +1) is closer to the
applicable for the curves of linear and circular. The proposed algorithm is realized on a field programmable gate array with Verilog HDL language and veriflied on three-axis milling CNC
curve. So select the direction of Y-axis.
F (E) 0
controller using FPGA. The experiment results are presented to demonstrate the effectiveness of the proposed controller.
Keywords—Milling CNC, FPGA, VHDL, Line Interpolation
I. INTRODUCTION
When F (D) 0 , point the curve.
When F (D) 0 , point
A(xi + 1, yi + 1), is closer to B (xi +1, yi ), is closer to the
There are many researches about computer numerical control (CNC) systems [2-5]. The motion trajectory of a machining tool is achieved through interpolations, and the interpolation algorithm directly affects the processing speed and accuracy. The task of the interpolation algorithm is to calculate the coordinates of intermediate points between the start point and the end point of the outline, making the motion trajectory same as the given interpolation curve [1-2]. Based on the proposed minimum error interpolation algorithm for general curves generation in CNC controller.
II. MINIMUM ERROR INTERPOLATION ALGORITHM
A. Theory of Slightest minimum error
In Fig.1, the coordinate of the current point is O (xi , yi ).
There are three mobile ways A(xi + 1, yi + 1), B (xi +1, yi ),
curve. So select the direction of X-axis.
In every step the result of deviation judgment formula needs to be recalculated, which is used to determine the mobile direction of next coordinates.
B. Line interpolation 1) Condition Description
The start point is the origin: the end coordinates is which is in the first quadrant. In the Fig.2, the coordinate of different points are defined as follows O (xi , yi ),
A(xi +1, yi +1), B (xi +1, yi ), C (xi , yi +1) and D (x +1, y + 1), E (x + 1 , y +1).
C (xi , yi +1) and D (x +1, y + 1), E (x + 1 , y +1).
i i
2 i 2 i
where ܨ is a deviation judgment formula, which is determined by the interpolation curve. Here this formula can be simply understood as the coordinates of the point error of plus or minus.
Fig.2. Linear interpolation schematic
2) Formula Derivation
Linear equations
Fig.1. Process of Slightest Min-Erro interpolation where K = Ye
Xe
y = Kx, (1)
978-1-7281-6530-1/20/$31.00/ ©2020 IEEE 104
e i e i i e e
F (D) 0
The deviation judgment formula is given by:
F = Xe y − Ye x
By substituting O, D and E into Eq. (2), it yields:
F (O) = Fi = Xe yi − Ye xi F (D) = X ( y + 1) − Y (x +1) = F + 1 X − Y () (3) (4) 2) Formula Derivation
A circle equation is given by:
x2 + y2 = R2
The deviation judgment formula is expressed by:
F = x2 + y2 − R2
By substituting O, E and D into Eq. (11), it yields:
F (O) = xi2 + yi2 − R2 F (E) = F + 2x − y + 5 (10) (11) (12) (13) 2 2 i i i 4 F (D) = F + x − 2 y + 5 (14) F (E) = X ( y +1) − Y (x + 1) = F + X − 1 Y (5) i i i 4 e i e i 2 i e
2 e When F (E) 0, point C (xi +1, yi ) is closer to the curve. By combining the theory of slightest min-errors described
in Fig. 2, it can be expressed as follows:
Hence, the direction of Y-axis is chosen. The value of derivation judgment formula is calculated by:
When F (E) 0, the point C (xi , yi +1) is closer to the Fi+1 = (xi +1)2 + yi2 − R2 = Fi + 2xi +1 (15) curve. Hence, the direction of Y-axis was selected. And the
value of the deviation judgment formula was updated: When F (E) 0
, point A( 1, 1) is closer to the
Fi+1 = Xe ( y +1) − Ye xi = Fi+ Xe (6) F (D) 0 xi + yi −
When F (E) 0
, point
A(xi +1, yi +1), is closer to the
curve. Hence, the diagonal direction (both X-axis and Y-axis) is chosen. The value of deviation judgment formula is calculated by:
curve. Hence, the diagonal direction was selected.
And the value of deviation judgment formula was Fi+1 = (xi + 1)2 + ( yi −1)2 − R2 = Fi + 2xi − 2 yi + 2 (16) updated:
Fi+1 = Xe ( y +1) − Ye (xi +1) = Fi + Xe − Ye (7)
When F (D) 0, point B (xi , yi −1) is closer to the curve.