Induced segment power calculation

Hi all,

One interesting form of analysis used in musculoskeletal modelling is induced segment power analysis. The overall concept is similar to induced acceleration analysis, however the key outcomes relate to power, delivered to each segment (by each muscle or actuator in the model) rather than the induced accelerations. Here are a couple of the pioneering studies that have used it:

https://www.sciencedirect.com/scienc...21929001001051
https://www.sciencedirect.com/scienc...119?via%3Dihub

I am looking for the most simple way to perform such calculations. Currently, OpenSim allows relatively easy computation of induced accelerations, and I am hoping to perform some simple calculations (i.e. in R, python or MATLAB) to calculate the induced segment powers using the outputs from OpenSim's induced acceleration analysis, and have a few questions that I think this community can help with.

My current understanding is:

1. The total induced power of a segment would be the sum of the linear and induced segment powers, about the three major axis (X,Y,Z).

2. Since linear power = force X velocity, and force = mass X acceleration; then logically the induced linear power of a segment would = mass X acceleration (induced) X segment velocity

3. Since rotational power = torque X angular velocity, and torque = moment of inertia X angular acceleration; then logically the induced rotational power of a segment would = moment of inertia X angular acceleration (induced) X segment angular velocity.

Assuming that this is correct, my major point of uncertainty is how the components of each equation are to be expressed (local vs global) to make the calculations valid. My current thinking is that for the linear component, the induced acceleration (of any segment's centre of mass) and the segment's translational velocity should be expressed in the global coordinate system. For the rotational component, I am thinking that the inertia tensor, induced angular acceleration and the segment angular velocity should all be expressed in the local coordinate system (about the segment's own centre of mass). OpenSim returns the induced acceleration of each segment in the global coordinate system, but I can use a rotation matrix to transform the induced angular accelerations into the local coordinate system of each segment. My main questions are:

1. Is my understanding correct? And if not, where have I gone wrong?

2. Since I am proposing to use the inertia tensor expressed about the local reference frame (about the bodies centre of mass), does this mean that the inertia tensor does not change depending on the orientation of the segment? In other words, if you open any opensim model, each body has it's own inertia e.g. the pelvis inertia data is:

inertia_xx = 0.1028
inertia_yy = 0.0871
inertia_zz = 0.0579
inertia_xy = 0
inertia_xz = 0
inertia_yz = 0

Does this inertia tensor remain constant for all calculations, regardless if the pelvis is changing orientation throughout the analysed movement? I have seen conflicting information about this, but I am thinking that is because inertia tensors are often expressed about an "inertial" reference frame, rather than a local one relative to the body's own centre of mass.

Any help would be appreciated here.

Cheers,
Nirav