I’m looking for ways to implement the inertia of an arm support which uses counterweights to provide force at the Ulna. Currently I’ve only modeled the arm support as an uplifting force, distributed over 2 points on the Ulna. Now I want to replace it by representing the counterweight as a flat disc with no inertia in medio-lateral & anterior-posterior movement (as the weight is actually not located at the Ulna) and the proper inertia for translations up and down. I’ve made the flat disc with inertia properties and want it to be attached to predefined positions on the Ulna, but I want it to stay horizontal. I do not have luck in figuring out how to restrict the movement as most joints are constraining translations and not rotations. My attempt at fixing the disc to the Ulna with a spherical joint and fixing the disc to the ground for rotations has not been successful. The second problem would be that the disc should provide a force upwards, but I’m not certain if setting the mass as negative could be a solution.
The model runs and it seems like the movement of the disc is how I want it to be. However, it seems that the mass and inertia properties have no effect on the shoulder joint moments. For example, I would expect to see a decrease in the Shoulder Abduction moments due to the supporting force from the disc. Perhaps I incorrectly segmented the disc? The real-life situation would be with a pulley, but I tried to simplify the situation by giving the disc a negative mass.
I’ve tried to modify the Reaction folder so the forces due to the Slings inertia will be transferred, but I was unsuccessful. When I try to run Inverse Dynamics I get this error:
Macro command : InverseDynamicAnalysisSequence(8:8)> run
8.0) InverseDynamics (Operation: Main.Studies.InverseDynamicStudy.InverseDynamics):
8.0.0) PreOperation (Operation: Main.Studies.InverseDynamicStudy.InverseDynamics.PreOperation):
8.0.0.0) InitialConditions (Operation: Main.Studies.InverseDynamicStudy.InitialConditions):
8.0.0.0) …Design variables have been updated.
8.0.0.1) …Load-time positions have been re-established.
8.0.0.2) …Kinematic analysis completed. The kinematic constraints have been resolved.
8.0.0.3) …Initial conditions are fully updated.
8.0) Inverse dynamic analysis…
ERROR(OBJ.MCH.MUS4) : E:/Pro…ts/A…l/M…l/M…l/InverseDynamics.any(29) : InverseDynamicStudy.InverseDynamics : Muscle recruitment solver : solver aborted due to singular KKT matrix
If I interpret this error correctly, it means that there are not enough muscles (or strength) to solve this situation, even at a Sling weight of 0. I’m not sure to which constraint this applies and this error occurs at the initial conditions. I’ve only adjusted the Environment.any file (attached), the ArmSupport.zip you’ve sent me on 11-05-2016 still contains the model and all relevant input data.
Attached please find the modified version of your model.
What I did in the attached model is that I define an AnyKinPLine object between the global reference frame and the target disc. And I assumed that there should be a reaction force between those two points.
I think that now it is up to you regarding how you would like to determine the size of this disc, and how many contact points you would like to use between the lower arm and this disc.