Implementation of PSO PID controller for SCARA robotic manipulator using FPGA

number: 
3154
إنجليزية
Degree: 
Author: 
Ahmed Ali Ahmed Mohammed
Supervisor: 
Dr. Firas Abdullah Thweny
year: 
2013
Abstract:

Field Programmable Gate Array (FPGA) controller utilizes the high speed hardwired logic of the FPGA to enhance the computation capability and relieve the computing load on the Digital System Processing (DSP). The control algorithm is partitioned into a linear portion and a nonlinear portion. The linearportion with position/velocity feedback represents the major control loop and is implemented in the FPGA. Proportional-Integral-Derivative (PID) controllers are applied in the industry from the 1980's due to their relatively simple structure and reliability. As the three parameters of the PID controller codetermine the controller’s response, many strategies are presented to tune these parameters. Such strategies vary between conventional tuning methods and application of modern optimization algorithms. Particle Swarm Optimization (PSO) algorithm is used to tune the PID gains for all drivers from the FPGA controller itself.The robot type that the work aims to drive and control is an IVAX® manipulator manufactured by FeedBack Company as a Selectively Compliant Assembly Robot Arm (SCARA) which has four degree of freedom working in a cylindrical 3D space. In this work the implemented controller system of the IVAX® robot manipulator is introduced on FPGA Spartan 3 AN development kit to control. FPGA controller consists of three main components: user interface, sequencing module, PID and PSO controllers. IVAX robot manipulator has four joint drivers each one equipped with DC motor driver and a shaft encoder as a feedback system. The system can do its pre-assigned job user independently by configuring the controller programmable read only memory (PROM) with the right job sequence written in Xilinx Pico Blaze assembly language as a User File Program (UFP). Also the system can be operated from PC graphical user interface (GUI), terminal command line interface (CLI) or the available screen and keyboard directly connected to the Spartan 3AN development kit. Forward kinematics and Inverse kinematics equations has been formed from algebraic methods and then transferred to the FPGA as a two separate modules.The controller firmware section is formed as a Very High Speed Integrated Circuits (VHSIC). VHSIC Hardware Description Language (VHDL) is used to describe the modules of the controller system and connect them all as a multiple input multiple output (MIMO) system stored on the FPGA. K constant Coded Programmable State Machine version three (KCPSM3) Pico Blaze microcontroller was used for timing and sequencing the job of the robot manipulator. This microcontroller is the link between simple assembly language from the user side and the complex VHDL side of the controller itself. As a result of this work it was found that PID controller is suitable to control IVAX manipulator joints drivers from FPGA Spartan 3AN kit (providing less than 1% overshoot and less than two seconds settling time) and cost less logic gates(Less than 2000 slice 35% of the Spartan 3AN available space) than the Fuzzy controller. PSO algorithm is found to be suitable for PID gains optimization, and Spartan 3AN development kit can handle PID controller modules, PSO algorithm module, forward and inverse kinematics module, keyboard and LCD controller's modules, flash PROM controller modules and KCPSM3 sequencing all on one FPGA.