How to model a servo motor transfer function

122 views (last 30 days)
Hello! So I got into this university project on an Acrome 2D Ball-Balancing (Ball and Plate system). The servos are linked through and Arduino to the computer. I have as an input the voltage of the ball with respect to the x axis and y axis. We, as a team, are actually trying to estimate the servo transfer function. We have got a couple of measurements to start with, in particular: the angular position in radians of the servo motor at a correspondent voltage. The servo motor model is a Hitec 5485HB RC Servo Motor. Thank you in advance for any help :)

Accepted Answer

Sam Chak
Sam Chak on 24 Mar 2022
If your lab has the System Identification Toolbox, it can be used for constructing or estimating the transfer function of the servomotor from the measured input-output data.
Read the paper: Virtual Torque Sensor for Low-Cost RC Servo Motors Based on Dynamic System Identification Utilizing Parametric Constraints
Else, find the relevant codes on FileExchange that do not requires the System Identification Toolbox. For example:
  4 Comments
Mario Malizia
Mario Malizia on 31 Mar 2022
I am sorry, I got another question.
The model identification app in MatLab was very helpful, the data was measured in this way:
V(S) (input), we manually collected all the voltages given in input by a potentiometer (letting it variate) and THETA(S) as an output (angular position of the motor in rad).
We got a 1800ish datas in vector with Sampling time 0.01s and obtained a transfer function of grade 1 (1pole/no zero) with a fitting of 97.4%.
The professor however told us that the measured we have obtained was not accurate due to the fact that the system is not excited.
We hence re-executed the measurements with a sine-sweep excitation of the system and we obtained again a 2000ish data for input/output and placed it into a model.
We are having troubles though, to evaluate a new transfer function (obtaining poor results such as 27.4%ish).
Do you know how we can properly evaluate a transfer function starting from this?
Thank you very much in advance.
Sam Chak
Sam Chak on 1 Apr 2022
Technically, the transfer function of a servomotor is given by
.
but because , the transfer function is usually approximated as a 2nd-order system to describe process behavior. Perhaps, try identifying from the sine-sweep input/output data using a 2nd-order model (a process model with 1 pole and an integrator).
For more details, pleasel check:

Sign in to comment.

More Answers (0)

Categories

Find more on Linear Model Identification in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!