Design and Implementation of FPGA-based Concurrent Controller
Design and Implementation of FPGA-based Concurrent Controller
Keywords:
VHDL, FPGA, Spatan-3 kit, Xilinx, floating point, inverse kinematicsAbstract
In this paper, a concurrent motion control system is designed and implemented to control and achieve the consensus of a multi-axis structure using inverse kinematic technique. Speed and precision were the main targets. Thus a synthesizable model to support floating point calculations is presented using a combinational divider. This model is used to implement trigonometric equation using Look up Tables (LUT) and hence can easily be implemented on FPGA devices. The gate level demonstration of the entire model containing Arithmetic Logic Unit (ALU), multiplier and divider are also presented. As FPGA has a concurrent structure for high-speed arithmetic calculations, which can be utilized for parallel control of several motors, so this algorithm has improved the efficiency and has reduced execution time from 5.2 μsec to 1.4 μsec with an accuracy of ±1 to manipulator position. For more precision, the tradeoff is between accuracy and execution time. Synthesis model to support floating point division calculations up to n-bits is designed, where implementation results for floating digit 1 to 11 are given with their time lag, slices and LUT used. The test points were verified in simulation and on hardware platform which exhibits the high speed implementation of the proposed model.
References
Sánchez, D.F., D.M. Muñoz, C.H. Llanos, & J. M. Motta. FPGA implementation for direct kinematics of a spherical robot manipulator. In: Proceedings International Conferenceon ReConFigurable Computing & FPGAs, 9-11 Dec, Quintana Roo, Mexico, p. 416–421 (2009).
Saifee, M.A. Design and implementation of 2-axis circular interpolation controller in field programmable gate array (FPGA) for computer numerical control (CNC) machines and robotics. International Journal of Computer Applications 106 (13): p.1–7 (2014).
Aghdam, F.A., & S. S. Haghi. Implementation of high performance microstepping driver using FPGA with the aim of realizing accurate control on a linear motion system. Chinese Journal of Engineering: p. 1–8 (2013), DOI 10.1155/2013/425093.
Quang, N.A., Y.S. Kung, and Q.P.Ha. FPGA-based control architecture integration for multiple-axis tracking motion systems.In: Proceedings of IEEE/ SICE International Symposim on System Integration, 20-22 Dec, 2011, Kyoto, Japan, p. 591–596 (2011).
Fei, J., R. Deng, Z. Zhang, & M. Zhou. Research on embedded CNC device based on ARM and FPGA. In: International Workshop on Automobile, Power & Energy Engineering. 16: p. 818–824 (2011).
Lin, F.J., & P.H. Shen. Robust fuzzy neural network sliding-mode control for two-axis motion control system. IEEE Transaction on Industrial Electronics 53 (4): 1209–1225 (2006).
Chang, T.N., B.C.B. Cheng, & P. Sriwilaijaroen. Motion control firmware for high speed robotic systems. IEEE Transactions on Industrial Electronics 53 (5): 1713–1722 (2006).
Jose, D., P.N. Kumar, J.A. Shirley, & S. Ghayathrrie. Implementation of genetic algorithm framework for fault tolerant system on chip. Information Japan 17 (8): 3921-3945 (2014).
Chan, Y.F., M. Moallem, & W. Wang. Design and implementation of modular FPGA-based PID controllers. IEEE Transactions on Industrial Electronics 54(4): 1898–1906 (2007).
Simoni, L., M. Beschi, G. Legnani, & A. Visioli. Friction modeling with temperature effects for industrial robot manipulators. In: Proceedings of IEEE/RSJ International Conference onIntelligent Robots & Systems, 28 Sept, Hamburg, Germany, p. 3524-3529 (2015).
Park, S.W., & J.H. Oh. Hardware realization of inverse kinematics for robot manipulators. IEEE Transactions on Industrial Electronics, 41 (1): p.45–50 (1994).
Gulzar, M.J., & Zain-ul-Abdeen. Optimal pitch control design of an airplane with analysis and verification using Matlab / Simulink. Journal of the Institution of Electrical & Electronics Engineers Pakistan (76): 26-30 (2012).
Rais, M.H, & M.H.Al Mijalli. FPGA based fixed width 4×4, 6×6, 8×8 and 12×12-bit multipliers using Spartan-3AN. International Journal of Computer Science & Network Security 11(2): p. 61–68 (2011).
Pimentel, J.C.G, & H. Le-Huy. A VHDL-based methodology to develop high performance servo drivers. In: In: Proceedings of IEEE Industry Applications Conference, 8-12 Oct, Rome, Itlay, p. 1502-1512 (2000).
Kung, Y.S., K.H. Tseng, & T.Y.Tai. FPGA-based servo control IC for X-Y table. In: Proceedings of IEEE International Conference on Industrial Technology, 15-17 Dec, 2006, Mumbai, India, p. 2913-2918 (2006).
Ying-Yu, T., & Tien-Sung Kuo. Design and implementation of all FPGA-based motor control IC for permanent magnet AC servo motors. In: Proceedings of International Conference on Industrial Electronics, Control & Instrumentation, 14 Nov 1997, New Orleans, USA, p. 943–947 (1997).
Cho, J.U., Q.N. Le, & J.W. Jeon. An FPGA-based multiple-axis motion control chip. 56 (3): 856–870 (2009).
Tao, Y, H. Lin, Y. Hu, X. Zhang, & Z. Wang. Efficient implementation of CNC position controller using FPGA. IEEE International Conference on Industrial Informatics,13-16 July, Daejeon, Korea, p. 1177–1182 (2008).
Iqbal, S., S.A. Qureshi & M.M. Gulzar. Concept building through block diagram using Matlab/ Simulink. Journal of the Institution of Electrical & Electronics Engineers Pakistan (66-67): 30-34 (2010).
Pedroni, V.A. Circuit Design with VHDL. MIT Press, London, England (2004).
Fedra, Z. & J. Kolouch. VHDL procedure for combinational divider. In: Proceedings of International Conference on Telecommunication & Signal Processing, 18-20 Aug 2011, Budapst, Hungary, p. 469–471 (2011).
Yang, Y., Y. Wu, & J. Pan. Parallel dynamics computation using prefix sum operations. IEEE Robotics and Automation Letters 2 (3): 1296-1303 (2017).
Fritz, D. Spartan 3 FPGA Tutorial Design. Oklahoma State University, USA (2005).