How to model a servo motor transfer function

106 visualizzazioni (ultimi 30 giorni)
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 :)

Risposta accettata

Sam Chak
Sam Chak il 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 Commenti
Mario Malizia
Mario Malizia il 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 il 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:

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Linear Model Identification in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by