Hertz stiffness and Hunt and Crossley dissipation

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Sina Porsa
Posts: 99
Joined: Thu Feb 03, 2011 7:21 pm

Hertz stiffness and Hunt and Crossley dissipation

Post by Sina Porsa » Thu Oct 20, 2011 5:01 pm

Hi All,
According to this paper, in order to define a contact between two bodies I need elastic modulus and dissipation coefficients of each of the bodies(4 parameters):
http://www.stanford.edu/group/nmbl/publ ... rm2011.pdf

but in the *.osim file, I can only define 2 parameters including "stiffness" and "dissipation". Take a look at the following code:

Code: Select all

<HuntCrossleyForce::ContactParameters>
<geometry></geometry>
<stiffness>0</stiffness>
<dissipation>0</dissipation>
<static_friction>0</static_friction>
<dynamic_friction>0</dynamic_friction>
<viscous_friction>0</viscous_friction>
</HuntCrossleyForce::ContactParameters>
Does anybody have any ideas? it's confusing.

Cheers
Sina

User avatar
Michael Sherman
Posts: 807
Joined: Fri Apr 01, 2005 6:05 pm

Re: Hertz stiffness and Hunt and Crossley dissipation

Post by Michael Sherman » Thu Oct 20, 2011 8:47 pm

Hi, Sina.

You are correct that there should in general be a pair of material properties per body for stiffness and dissipation, and Simbody does take those parameters as described in the paper. OpenSim currently provides only a simplified interface, in which the stiffness and dissipation are the composite properties. Those are used for any pairs of surfaces that contact using that HuntCrossleyForce.

For now, you should compute the composite properties yourself using the method defined in Appendix A.1 in the paper you cited, and then supply the resulting stiffness and dissipation parameters in the .osim file.

For many applications the results you are interested in will not be very sensitive to the contact material parameters. As a sanity check, I strongly suggest that you do some ad hoc sensitivity studies to see how much effort you need to put in to nailing down the perfect material properties -- you might find that it is easy to get good behavior even with approximate properties.

I hope that helps -- please post again if you have further questions.

Regards,
Sherm

User avatar
Sina Porsa
Posts: 99
Joined: Thu Feb 03, 2011 7:21 pm

Re: Hertz stiffness and Hunt and Crossley dissipation

Post by Sina Porsa » Sun Oct 23, 2011 4:57 pm

Hi Sherm
Thanks for your reply, it was really helpful.
I have one other question about the mentioned paper. The paper indicates that a variety of numerical integrators are available for forward dynamics. But I do not know how should I implement these integrators in "ForwardTool"

Code: Select all

<ForwardTool>
<model_file></model_file>
<replace_force_set>false</replace_force_set>
<force_set_files></force_set_files>
<results_directory>./</results_directory>
<output_precision>8</output_precision>
<initial_time>0</initial_time>
<final_time>1</final_time>
<solve_for_equilibrium_for_auxiliary_states>false</solve_for_equilibrium_for_auxiliary_states>
<maximum_number_of_integrator_steps>20000</maximum_number_of_integrator_steps>
<maximum_integrator_step_size>1</maximum_integrator_step_size>
<minimum_integrator_step_size>1e-008</minimum_integrator_step_size>
<integrator_error_tolerance>1e-005</integrator_error_tolerance>
<Analyses>Object</Analyses>
<ControllerSet>Object</ControllerSet>
<external_loads_file></external_loads_file>
<states_file></states_file>
<use_specified_dt>false</use_specified_dt>
</ForwardTool>
Regards,
Sina

User avatar
Ajay Seth
Posts: 136
Joined: Thu Mar 15, 2007 10:39 am

Re: Hertz stiffness and Hunt and Crossley dissipation

Post by Ajay Seth » Sun Oct 23, 2011 9:48 pm

The forward tool currently does not permit users to change the integrator type. In our experience, providing more options for integrators is of little utility unless one can characterize the limitation of the existing (RungeKuttaMerson) integrator for a given problem. Often times, it is not an issue with the integrator but problems with the settings and/or the model specification that leads to poor behavior or performance.

Of course, there are cases where a stiff (implicit) integrator will work better for a particular problem where stiffness is part of the real system dynamics and not a mistake in the model. API users have access to all the integrators provided by SimTK::Simbody. You can look at the ExampleMain program under OpenSim2.4.0\sdk\APIExamples\ to see how to construct a model and simulate it via the your own main program. I believe that is what Sherm's document was referring to.

POST REPLY