This work deals with the experimental implementation of a state space controller for a DC motor that has separate winding excitation. The output to be controlled is the rotor position. Linux and RTAI-Lab are the open source tools that we use in this implementation. The control law is derived by using a model that consists in a set of ordinary differential equations. Additionally, in order to avoid several issues regarding the measurement of the state variables, we implement an experimental discrete-time state observer to estimate the transient values of the rotor speed, armature current and even the load torque. The armature voltage is defined as a function of estimated states excepting the rotor position, which is the only state variable that is measured. The real time program calculates the discrete-time state feedback including an integrator, a full order discrete-time state observer and a rotor position sensing algorithm. In our case, a set of five difference equations (fifth-order discrete time dynamical system) is computed every 0.2 milliseconds (5 kHz). Important components of the experimental set-up are: a personal computer, a National Instruments PCI-6024E data acquisition card, comedi driver library for Linux, RTAI-Lab, a custom-made power electronics converter, an incremental encoder and signal conditioning circuits for measuring the rotor position. Custom-made digital, analog and power electronics designs are fundamental components of the hardware used in this closed loop implementation.
Download paper as pdf file