Systems identification – worse performance with more data?
Mostrar comentarios más antiguos
Question
I have noticed when applying the transfer function estimator to my dataset is that I get better results when I use a single dataset rather than grouping datasets together. (I typically use a 2 poles 1 zero model with fixed delay – more complicated models seem to produce a worse result). The question is why does this happen, and/or what is the best estimation method for this sort of problem?
example result (y axis is target servo angle in degrees):


Background
I am trying to find the transfer function for a dynamixel servo motor (ax12+). Where the input, u(t), is the desired position and the output , y(t), is actual position. Based on other literature I am thinking that a relatively simple transfer function should be capable of modelling the dynamics of the motor although both the motor dynamics and the controller are unknown and other work typically uses motor voltage for u(t) rather than position setpoint.
Approach
Based on this Matlab tutorial: https://uk.mathworks.com/videos/series/data-driven-control-95931.html I copied the setpoint inputs for datasets - although in my case the input is desired position rather than voltage in. As a consequence, the non-linearities caused by friction and saturation are not really seen in my dataset. In this method 11 timeseries datasets are created (z1 – z11) which are split into training (ze) and validation sets (zv). I have plotted these datasets here:

The blue line represents the target angle and the orange is the actual angle. x axis is time and y axis is servo angle.
and the data files are available here: https://www.dropbox.com/sh/738b8s7zr7bjxt4/AAA5nQp24xLP_QrpkPbbIj0Ma?dl=0
Please excuse the long post!! any guidance for improving the servo model would be welcome!
2 comentarios
Aquatris
el 18 de Jul. de 2018
How are you grouping the datasets? Are you simply cascading them? If so, since some of your data sets do not start and end at the same positions, the algorithm might treat the difference as an additional dynamic.
Jan Stankiewicz
el 18 de Jul. de 2018
Respuestas (0)
Categorías
Más información sobre Real-Time Deployment en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!