To obtain the unknown parameters you can follow two procedures (That I can think of, right now): automatic parameter identification (Matlab's identification toolbox is very handy here), or manually by using the response of the motor (speed) to the step/ramp impulse (voltage).
For automatic identification, you design different voltage stimuli to the motor, record the speed, save both in a file, and then input that file to Matlab (command: ident). Matlab will find a transfer function that describes closely the input/output data you entered. Check this: http://www.mathworks.com/videos/data-driven-control-system-identification-70897.html
For manual procedure I would recommend this: http://www.hindawi.com/journals/mse/2012/189757/
Indeed, I have used both. Matlab have worked pretty well for me lately. I used it to get the transfer function of a out-of-the-box DC motor because I needed a speed control system.
Using the transfer function exported from the Matlab Ident GUI, I could get a good estimate of the L, Jm, km and kb. You could use a LRC meter to get the value of R and L, and then from the transfer function inertia (J) and motor constants (k).
What is your application or idea, what do you have in mind?
I am intended to control the DC motor via adaptive control system, implemented on FPGA
The motor is attached to optical encoder to measure its speed
The speed of the motor is controlled by using PWM
However, in order to use the adaptive controller, I must have a precise DC motor model to use it as a reference in the control algorithm, (As you know)
And I want to have any DC motor with known parameter to obtain its transfer function
Using the transfer function exported from the Matlab Ident GUI, I could get a good estimate of the L, Jm, km and kb. You could use a LRC meter to get the value of R and L, and then from the transfer function inertia (J) and motor constants (k).
did you do it in your work? or you already bought DC motor with known parameters?
I did not have the parameters nor the TF of my motor. So I have to identify its parameters. However, if you want a DC motor with parameters known I would recommend Maxon motors (Expensive but precise and high quality). I think you can get the parameters from their datasheets.
One though: Would it be nice that you adaptive controller "evolves" or "adapts" to the DC motor despite not knowing the precise parameters?, You could run the adaptive controller with the approximated TF given by Matlab (for instance). Then, your FPGA controller could be used with different motors without having to identify each motor every time.
Hesham as I understand matters you want to use voltage and speed for eventual adaptive control.
For practical purposes you may easily measure, voltage, current and speed and use these in Simulink to identify the parameters. make sure when you do this that you place limits on Ra,La, Km, J & B all of which cannot be negative and which have physical limits based on the power output of any DC machine. You will find that these vary within well defined range amongst various manufacturers. The Jl and Bl for the load might be vastly different.
Once you have done this then you may try use the voltage and speed alone. But what may I ask prevents you from measuring current. I ask as you provide no indication of motor size?
please look at this paper: "ERDAL, H., DOĞAN, B. & BULDU, A. (2011). Realtime parameter estimation, calibration and simulation of a DC motor .. TTEM - Technics Technologies Education Management. Sayı 3. Cilt 6 sf 606-614"
Actually all the practical measurement and identification methods are based on both electrical and mechanical differential equations of a brished motor at some working points (for w=0, v=0 and v=constant) then try to find a practical way to memic these situations and measure the RPM, voltage, current, armature inductance and resistance using multimeters and tachometer. Of course, to measure voltage and current you need an aquisition circuit with high side current measurement capability (that you can build yourself using ADC inputs of a microcontroller with an adequate interface circuit for sensing the current)
I use DC Motor Toshiba DGM-204 and didn't find the parameter of the motor. So, I decide to estimate its parameter using least square method. But, I really confused about how to get the output data if I use an incremental rotary encoder? How to convert pulse signal into voltage ?