How to model a servo motor transfer function

106 次查看(过去 30 天)
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 :)

采纳的回答

Sam Chak
Sam Chak 2022-3-24
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 个评论
Mario Malizia
Mario Malizia 2022-3-31
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 2022-4-1
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:

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Linear Model Identification 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by