Internal Model Control

        for

  DC Motor

Using DSP Platform

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Advisor: Dr. Dempsey

 

         By: Marcus Fair

 

  November 12, 2007

Problem Description

 

The project involves controlling a Pittman DC motor using a 32-bit TMS320F2812 digital signal processor (DSP) located on the ezdsp F2812 board. This is based on the senior mini-project where an 8015 microcontroller was used to control a Pittman DC motor using assembly language programming. However, the DSP board will play the role of the E-Mac kit. This project will be coded in Matlab and Simulink, which will be automatically converted to an assembly language in order to communicate with the DSP board. Since there will be no assembly language coding in this project more focus and energy can be put into the Control theory aspects of the design. The overall block diagram is still based on the senior mini-project so the plant is still the Pittman DC motor. The rotary encoder in the block diagram will still have the same gain value from the mini-project design. The RPM calculations that convert pulses to RPM will also have the same value since this was based off of the same DC motor values such as gear ratio. Even though the board will communicate with both the Matlab and Simulink environment, the code can also be written in C-code. The 32-bit DSP processor will allow many more algorithms such as Internal Control Model and neural network control to be investigated. The final controller will be Internal Model Control model (IMC) which is an advanced controller that can be used to minimize the effects of external disturbances. The feed-forward design will first be put together to test the experimental values of the feed-forward loop first. Then the IMC (internal Model control) design will then be implemented and then the results will be compared to feed-forward controller results.

 

Goals

1)         Learn the inputs, outputs and all of the features of the TMS320F2812 DSP and become more familiar with the hardware.

 

2)         Design DSP/motor hardware interface.

 

3)         Design software for PWM generation, velocity calculation from rotary encoder, motor direction sensing, and bidirectional motor control signals.

 

4)         Design closed-loop controllers for velocity control: Single-loop proportional, proportional plus derivative plus integral (PID), and feed-forward control test system with and without external load.

 

5)         Design and implement IMC architecture using neural networks on the physical system.

 

6)         Compare conventional controller results with the IMC method.

 

7)         Design Simulink/MATLAB graphical user interface (GUI) for controller parameter modification.

 

8)         Determine the limitations of the Simulink/TMS320F2812 DSP interface in terms of real-time execution and program memory.

Subsystem Breakdown

 

Figure 1 shows a high-level diagram of the F2812 board. The input will be through a graphical user interface in Simulink that will convert the Matlab/Simulink code using Code Composer Studio 3.0. This software sends the code to the DSP board through the parallel port. The Code composer is necessary to convert the code into a form that can be read by the DSP processor. The DSP chip is then run off of the code to produce a PWM signal that runs the Pittman Motor.

 

  Fig. 1 “Block Diagram of eZdsp F2812 connections”

 

Figure 2 shows the single-loop controller diagram that was used for the senior mini-project.

 

Fig. 2 “Single-loop Control of DC motor using DSP board”

 

 

 

The Pittman DC motor block diagram in Figure 3 consists of a transfer function that corresponds to the electrical side and another transfer function that corresponds to the mechanical side. The incoming signal to the first transfer function represents a difference of the control voltage and the feedback voltage while the output to this transfer function represents the armature current. The current is multiplied by the torque constant gain (kt) whose output is converted to torque. The torque is then multiplied by the transfer function that represents the mechanical side of the motor such as stiffness, friction, and inertia. The final output is rotational velocity. The voltage constant gain (kv) in the feedback loop converts the rotational velocity back into a voltage.   

 

Fig. 3 “Block Diagram of Pittman Motor”     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Fig. 4 shows the internal model control used in a single feedback loop configuration. The IMC loop which consists of the plant Gp and the transfer function Nc computes the difference between the outputs of the process and of the IMC. This difference represents the effect of disturbances and of a mismatch of the model. The IM architectures have been shown to have good robustness properties against disturbances.

 

Fig. 4 “Block Diagram of IMC for Disturbance Rejection” 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

References

 

eZdspTM F2812 2003 DSP Development Systems

 

http://www.spectrumdigital.com/product_info.php?&products_id=138

Reference