MATLAB Answers

Averaging Hysteresis Data - how to do it?

48 views (last 30 days)
Hi All,
below damper Force Vs Velocity for a typical 2-way adjustment damper is shown and as expected a typical hysteresis shape is obtained. We could imagine the data as the sum of 2 curves: one curve is given when the velocity goes from NEGATIVE to POSITIVE and the other is obtained when the velocity goes from POSITIVE to NEGATIVE
I want to use this damper data on my vehicle dynamics model and in order to speed up the processing time (as there are 4 dampers) I would like to extrapolate a curve with the following features
  • Only one line
  • This line should pass the middle of the two curves (a sort of average, an ideal damper with no hysteresis)
I would appreciate some suggestions on how to tackle this problem. how would you do that?
Many thanks for you help
(DATA attached)
Thanks in advance


Sign in to comment.

Accepted Answer

Mischa Kim
Mischa Kim on 4 Jan 2014
Hello Guiseppe, try to use curve fitting. In MATLAB, go to the Apps tab and find the Curve Fitting app (in the math, statistics and optimization folder). Select as X and Y data Velocity and Force, respectively. Smooth Splines will probably work pretty well, you can also adjust the smoothness/roughness of the fit.


Giuseppe Naselli
Giuseppe Naselli on 9 Jan 2014
Hi Mischa,
thanks for the hint, it works as I wanted a part 2 things listed below. (see picture)
  1. The fitting result is fine, but I wish my fitting curve to pass through zero. How can I do that?
  2. How can I create a variable (.mat, 1-column vector) which contains the fitted data?
Thanks in advance
Giuseppe Naselli
Giuseppe Naselli on 9 Jan 2014
ok so I foundthe way of creating the variable with only the fitted data
Basically I used the following script
load('Force-Velocity.mat'); % Load the data to fit
Fit_of_the_Data = fit(Velocity, Force, 'smoothingspline', 'SmoothingParam', 0.025) % Create a smoothing spline fit with the parameter I specified
Data_fitted = feval(Data_Fit,Velocity);
The Data_fitted variable is what I was looking for.
NOw the last step is to find how I can say to the command "fit" to generate a curve which goes to zero
Help please :)

Sign in to comment.

More Answers (0)

Sign in to answer this question.