I'm working with a brushed DC motor current, voltage, calculated rotations and measured rotations and a couple of state signals(direction of rotation and the operation state).

My objective is to approximate a function which gives the error in measurement of rotations-

H(x) = (measured rotations - calculated rotations)

Here is an example of how my data looks and the difference is determined by the difference of the signals that you see in the top subplot srefpos(measured) and slppos(calculated). The calculated rotations are already pretty accurate but there are obvious instances where it doesn't work correctly and this is the shortcoming that I am trying to improve.

The error(bottom most subplot) is my target(ideally) after removing noise and so far I have already tried-

  • Regression through Multi Layer Perceptron
  • 1D-CNN
  • LSTM and
  • Decision Trees (both simple and ensemble)

The best results I have gotten so far are with decision trees but I am not happy with the generalization achieved(performs not up to mark on test data). With the other methods I have mentioned above, the network/the algorithm doesn't even learn anything and yields a constant output of either 0 or the approximately mean of data that it has seen during training.

Based on experience can you suggest a method might yield me best results or refer me to a paper?

  • (sub-question) the target i.e., the error values fall in range -1 < error < +1, does this somehow play a crucial rule?

enter image description here

x-axis is number of samples

Edit: details about graph

  • In the $1^{st}$ subplot, srefpos is not visible because it is very close to the signal slppos. Here is a closer look of the same signal enter image description here
  • The reason why I think $2^{nd}$ subplot is important is because the motor rotations (i.e. slppos-sensorless positioning) are calculated based on the ripples in the current signal
  • The $3^{rd}$ subplot if a the difference of srefpos and slppos, but the error occured in $t_{-n}$ gets carried forward and hence I take another difference to obtain the $4^{th}$ subplot
  • The signal sampling frequency is 400 Hz(originally 4 kHz but I have down-sampled it here) and this what I meant when the x-axis represents samples(they do occur sequentially)
  • $\begingroup$ There are a few things which are not clear: where is srefpos in the first graph? it's supposed to be in orange but there's no orange point. Does the second graph matter? because it's not clear what it represents. You mention that the X axis is the number of samples: does this mean the performance of training a model with a different number of samples? Or is this a sequence of samples which happen in a particular order (in this case this might be a time series prediction problem) $\endgroup$ – Erwan Sep 26 at 23:27
  • $\begingroup$ @Erwan Thanks for taking interest. I have updated the post with details about the graph, please have a look. $\endgroup$ – sai Sep 27 at 8:01
  • $\begingroup$ Thanks for updating the question, it's a bit clearer but unfortunately I'm not sure I can help, I'm not expert with signal processing. A few general thoughts: (1) Decision Trees are robust, I mean they usually manage to obtain not great but decent performance with a wide range of problems. Since they work better than more advanced methods, it might be worth trying other simple method such as SVM or logistic regression. (2) That being said, there are probably more suitable approaches for this kind of signal prediction. I don't know enough about this but ideally if you find a task which has ... $\endgroup$ – Erwan Sep 27 at 11:53
  • $\begingroup$ ... similar characteristics (from a ML point of view) it would be useful to see which method they use. (3) I doubt it's very relevant but would detecting the points where there is a change of regime help? if yes you might be interested in looking at change point detection methods. $\endgroup$ – Erwan Sep 27 at 11:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.