Hi, I'm looking for some theoretical help on a PID controller
for speed in a DC Motor. It is a small 9V DC motor from Radio Shack,
and I've been told of the type known as "Sensorless DC Motor" (?).
My restrictions in this project are as follows:
1. I am not using a dedicated DC motor controller type, but a small
"general purpose" RISC microcontroller
2. Use the microcontroller to generate a PWM that will be applied
to the driver of the motor. (This is no problem, already tested
as an open loop case, operator controlled through buttons).
3. Introduce a closed loop from the motor, sensing the sepeed, back to
From the algorithmic (software) point of view, I think that I have
envisioned the subroutines and major points which I must be aware of.
I also have most of the hardware idea, except for the point 3 above.
Of course, everything can be changed if convenient.
As a dummy in the field of DC motors, and close to dummy in PID control,
I will appreciate any help in the following big problems I have here:
a) How do I sense the speed so as to send the signal to the controller?
I first thought that the voltage at the DC motor would be fine; those
experts in DC motors will surely know already I was wrong. I tried
then measuring the current, but I am not sure of the results and
I have not been able to make a connection, if there is any.
b) How can I derive a good circuit model for the DC that could be of
some help? It seems the best would be an RLC series subcircuit,
together with a voltage source. But there has been some contradiction
among the people I've consulted (and who could not help me with
the first question completely).
c) How should I proceed to tune the PID coefficients? At first, I
thought of looking at the motor, but I have serious doubts, since
what I am controlling is the timer for the pwm signal really.....
unless there is something wrong with this concept.
I thank you in advance.
- posted 18 years ago