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:
- I am not using a dedicated DC motor controller type, but a small "general purpose" RISC microcontroller
- 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).
- Introduce a closed loop from the motor, sensing the sepeed, back to the microcontroller.
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.