Kinematics of Euler angles relative to a rotating frame I have a rotating body $B$ and a rotating frame $F$ whose orientations are described by the quaternions $q_B$ and $q_F$ respectively. I also have the angular velocity vectors $\omega_B$ and $\omega_F$.
I'm then interested in the Euler angles (extrinsic x-y-z) of B relative to F. That is, I convert $q_F^* q_B$ to Euler angles $\phi, \theta, \psi$.
My question is how to calculate $\dot\phi, \dot\theta, \dot\psi$ from the angular velocities. I'm currently using
$$M(\phi,\theta) = \begin{pmatrix}1&\sin\phi\tan\theta&\cos\phi\tan\theta\\
                                 0&\cos\phi&-\sin\phi\\
                                 0&\sin\phi\sec\theta&\cos\phi\sec\theta\end{pmatrix}$$
$$\begin{pmatrix}\dot\phi\\\dot\theta\\\dot\psi\end{pmatrix}=M(\phi,\theta)\omega_B$$
But clearly this isn't correct when F is rotating.
 A: First Thought (probably not the fastest)
Let us assume you have a vector space in $R^{3}$ with a quaternion defined as:
$$
\mathbf{q} = q_{F}^{*} \ q_{B} \\
 = a + b \hat{\mathbf{x}} + c \hat{\mathbf{y}} + d \hat{\mathbf{z}}
$$
where $(a, b, c, d)$ are the Euler parameters and $(\hat{\mathbf{x}}, \hat{\mathbf{y}}, \hat{\mathbf{z}})$ defines the reference unit basis set.
If we define the axis of rotation as $\mathbf{n}$ and the angle through which we rotate as $\zeta$, then the Euler parameters are defined as:
$$
a = \cos{\left( \frac{\zeta}{2} \right)} \\
b = n_{x} \ \sin{\left( \frac{\zeta}{2} \right)} \\
c = n_{y} \ \sin{\left( \frac{\zeta}{2} \right)} \\
d = n_{z} \ \sin{\left( \frac{\zeta}{2} \right)} \\
$$
Thus, if you know $\mathbf{q}$, or rather $(a, b, c, d)$, you can find $\mathbf{n}$ and $\zeta$.  Once you know the axis of rotation and the angle of rotation, you can determine the Euler angles.  First we define the cross product matrix as:
$$
  \left[ \mathbf{n} \right]_{x} = \left[
  \begin{array}{ c c c }
    0 & - n_{z} & n_{y} \\
    n_{z} & 0 & - n_{x} \\
    - n_{y} & n_{x} & 0
  \end{array} \right]
$$
and the outer product of $\mathbf{n}$ with itself given by:
$$
  \left[ \mathbf{n} \otimes \mathbf{n} \right] = \left[
  \begin{array}{ c c c }
    n_{x} \ n_{x} & n_{x} \ n_{y} & n_{x} \ n_{z} \\
    n_{y} \ n_{x} & n_{y} \ n_{y} & n_{y} \ n_{z} \\
    n_{z} \ n_{x} & n_{z} \ n_{y} & n_{z} \ n_{z}
  \end{array} \right]
$$
Then we can define the rotation matrix as:
$$
  \overleftrightarrow{\mathbf{R}} = \cos{\zeta} \ \overleftrightarrow{\mathbf{I}} + \sin{\zeta} \ \left[ \mathbf{n} \right]_{x} + \left( 1 - \cos{\zeta} \right) \ \left[ \mathbf{n} \otimes \mathbf{n} \right]
$$
where $\overleftrightarrow{\mathbf{I}}$ is the unit or identity matrix.
Second Thought (probably faster/easier)
An easier method is to follow the procedure given here.  Following that procedure, we define:
$$
  \alpha = \frac{ 2 \left( a \ b + c \ d \right) }{ 1 - 2 \left( b^{2} + c^{2} \right) } \\
  \beta = 2 \left( a \ c - d \ b \right) \\
  \gamma = \frac{ 2 \left( a \ d + b \ c \right) }{ 1 - 2 \left( c^{2} + d^{2} \right) }
$$
which gives us the Euler angles:
$$
  \phi = \tan^{-1}{ \alpha } \\
  \theta = \sin^{-1}{ \beta } \\
  \psi = \tan^{-1}{ \gamma }
$$
Since you already have $\mathbf{q}$ and you can numerically/analytically determine $(\phi, \theta, \psi)$, then I would just take the time derivative of each of these angles to find $(\dot{\phi}, \dot{\theta}, \dot{\psi})$ rather than using the angular velocities.
