I am trying to simulate the experiments in the paper "Time-Domain Passivity Control of Haptic Interfaces", Hanaford and Ryu, 2002, IEEE transactions on robotics and automation vol .18, No1 about the simulation in Fig.8 and its results are fig.9 and fig.10. I don't know an exact model of fig.9 which I can draw again in Matlab/simulink to run. I tried drawing spring and damper as in fig.6 of the same paper, but I don't know which is my input ( force, velocity or position) and also the type of signal of input (sine, step,...) to get a similar result as the paper.

I added 2 images, one is model which i drew and another is the signal of position.

I am really confused about initial condition of position . should either I choose a initial condition at Discrete-Time Integrator1, or adding a difference of 2 adders into position. In here: damping=0 ( i want to check the case without Passivity controller) k=30000 and I added initial condition to Discrete-Time Integrator1 is 50

enter image description here[![enter image description here][3]][3]


It's usually best to contact the author directly if you have a specific question about a specific paper.

The simulations are there only to illustrate the principal of the passivity observer and controller, so it makes sense they did not elaborate on them too much.

The first simulation uses velocity and position as the input and appears to have an initial position just outside the wall.

The second simulation probably has no inputs and just lets an initial condition evolve over time, with an initial position 50mm outside the wall.

Oddly, the experimental data has the exact same starting and wall position. This either indicates a meticulous attention to detail when creating the simulation or, more likely, instead of making a model of the human and haptic interface (which is complicated and problematic) they grabbed experimental data that illustrates the point they were trying to make in the paper and used that instead for the plots.

The model of Fig. 6 is the Virtual Environment and Series PC of Fig. 8. (which includes the $F=0$ when $ x(t) < 0$ nonlinearity). You will need to add models for the Human Operator and Haptic Interface to complete the model.

You will need to model the haptic interface as a non-passive system. A mass+damper with a negative coefficient would be the minimum model. They mention an active friction compensation algorithm which would behave like this to some degree.

So you would have the human (mass+spring), the device (mass+negative damper), and environment (spring+damper with dirac-delta wall boundary) all in series.

The neutral point (where the forces of the human spring and wall spring are equal) should be some distance inside the wall. The initial conditions should be outside the wall with the human spring compressed (and the wall spring at 0 deflection because of the nonlinear condition).

With the correct damping coefficients you should be able to get an oscillation.

You would need a much more complex model to get the results they claim are from simulation 2. An out-of-phase negative damping to account for sensor latency and a model of device actuator force saturation might do it. Again, my guess is that they are showing data from an experiment on the physical device rather than simulation results.

If you understand the concept of the passivity observer and passivity controller, you can move on to the next paper without fear of missing something in this one. Most of the passivity work in haptics is in response to implementation issues in real devices and the non-linearities they inflict on the previous generations shiny clean control equations. You will need to work with real haptics devices to get a good understanding of this.

EDIT: The simulink model you show is only part of the model. It would be better if you write the equation for the model. The position of the Human is different than the position of the proxy and appears to be missing (or viewed another way, the length of the spring between the human and device). The non-linearity of the wall also appears to be missing. If it helps your intuition, think of the human position as the position of the shoulder, the device (and proxy) position where the hand is, and the spring for the human is the tendons in the elbow and wrist.

  • $\begingroup$ thanks for rep, the first simulation is clear and I could conduct it well, About the second simulation, I guess the haptic interface means, I add an object with mass M into the free end of damper and spring, the human operator, it should be a input signal of force or velocity, but I dont know the type of that signal Lastly, I got a model of spring-damper system, I tried it with input signal as step and got a very different result to the paper I also sent email to the authors, but no reply $\endgroup$ – abcd Apr 25 '17 at 11:45
  • $\begingroup$ Humans are mostly passive mass+spring+dampers at the frequencies discussed in the paper (~15Hz). So there is not really an input signal. I added some info above. $\endgroup$ – hauptmech Apr 25 '17 at 23:41
  • $\begingroup$ I added my model which gave the output of position as a increasing oscillation and I am confused about how to add initial condition $\endgroup$ – abcd Apr 26 '17 at 1:59
  • $\begingroup$ Hannaford's early work was, I believe, related to the NASA JPL Handmaster, a spherical teleoperation device. His work is some of the best for stability analysis, force and impedance control. But if you look at that paper, they derive the passivity controller for a general haptic interface. Then they apply it to their Excalibur haptic interface. The theory is key here, not the specific haptic interface. $\endgroup$ – SteveO Apr 26 '17 at 3:48
  • 1
    $\begingroup$ Just a comment in case reviewing papers about those devices would help the understanding of the HI model. $\endgroup$ – SteveO Apr 26 '17 at 9:30

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.