DC Motor Speed C Bcontrol
DC Motor Speed C Bcontrol
DC Motor Speed C Bcontrol
H.U.W. Ratnayake
I. INTRODUCTION
Within industrial factory environment and in the field of
automobiles, high-performance advanced dc motor applications
are wildly used because of their reliability and ease of control
due to the decoupled nature of the field and armature magneto
motive forces. To achieve the optimum performance and
efficiency from a dc motor application or a system it needs to
control the speed and the position of the motor shaft accurately
[1-4]. In that case for optimum performance and efficiency of
an industrial redundant dynamic system (a dc motor Controlled
machine), the controller should have the ability to respond
quickly, recover quickly due to sudden load changes and to
robustly perform during the system parameter variations [5].
Traditional motor controllers or classical motor control
methods such as PID (Proportional-Integral-Derivative)
dc Servo Motor
Mechanism
Host-PC
Function Generator to
generate desired trajectories
DAQ System
dc Motor Driver
Fuzzy Controller
(1)
cek = ek e(k 1)
(2)
board) into the system data base and to plot the desired speed
and the actual speed behavior of the dc motor in real-time as
given in Figures Fig. 8 - Fig. 16. The error correction due to
time varying uncertainties is made by the fuzzy logic
controller. Based on this amount of error correction and the
desired speed the controller drives the dc motor through the
motor driver.
III. HARDWARE AGENT OF THE SYSTEM
The fuzzy logic controller and the DAQ system was
implemented on two separate Arduino Due boards as
mentioned in section I. Table I shows some of the important
specifications of this Arduino Due board and Fig. 3 shows the
Arduino Due board [7].
A. Fuzzy Logic Controller
The fuzzy logic controller is developed on a separate
Arduino Due microcontroller board. To control the dc motor
speed accurately within a minimum steady state error, the most
accurate information such as the desired speed and actual speed
of the dc motor into the fuzzy controller board (Arduino Due)
needs to be fed, and based on these information, the decision of
the fuzzy controller should be accurately generated and fed into
the dc motor driver to drive the servo motor mechanism in an
efficient way.
TABLE I.
Microcontroller
Operating Voltage
Input Voltage (recommended)
Input Voltage (limits)
Digital I/O Pins
Analog Input Pins
Analog Outputs Pins
Total DC Output Current on all I/O
lines
DC Current for 3.3V Pin
DC Current for 5V Pin
Flash Memory
SRAM
Clock Speed
AT91SAM3X8E
3.3V
7-12V
6-16V
54 (of which 12 provide
PWM output)
12
2 (DAC)
130 mA
800 mA
800 mA
512 KB all available for
the user applications
96 KB (two banks: 64KB
and 32KB)
84 MHz
the
the
the
the
(3)
aforementioned fuzzy rules. For each fuzzy rule and for each
related input (error and the changing error) the FIE produce or
generate outputs and these multiple outputs are converted into a
crisp output by the defuzzification process which was used as
the PWM value in the Arduino Due board to drive the dc motor
through the dc motor driver for every sampling instant k.
ce
e
NB
NM
NS
ZE
PS
PM
PB
NB
NM
NS
ZE
PS
PM
PB
PB
PB
PB
PM
PM
PS
ZE
PB
PM
PM
PS
PS
PS
NS
PB
PM
PS
ZE
ZE
NS
NS
PS
PS
ZE
ZE
ZE
NS
NM
PS
PS
ZE
ZE
NS
NS
NB
PS
ZE
NS
NS
NS
NS
NB
ZE
NS
NS
NS
NM
NM
NB
CoA =
f ( x) xdx
X min
X max
(4)
f ( x)dx
X min
ACKNOWLEDGMENT
This work is supported by The Open University of Sri
Lanka and we thank O. A. P. C. Oruthota for providing motor
drive unit.
RESULTS OF THE FUZZY LOGIC CONTROLLER
Without Fuzzy
Controller
REFERENCES
[1]
[2]
[3]
[4]
TABLE III.
Ts
Tr
Ts
Tr
0.40
0.25
1.75
0.025
0.125
0.500
0.010
0.010
0.125
0.02
0.01
0.01
[5]
[6]
[7]
[8]